changeset 274:ca9a9ec9c1c1 r21-0b35

Import from CVS: tag r21-0b35
author cvs
date Mon, 13 Aug 2007 10:29:42 +0200
parents 411aac7253ef
children a68ae4439f57
files CHANGES-beta ChangeLog INSTALL Makefile.in PROBLEMS configure configure.in configure.usage etc/NEWS lib-src/config.values.in lisp/ChangeLog lisp/code-files.el lisp/code-process.el lisp/dump-paths.el lisp/files.el lisp/find-paths.el lisp/info.el lisp/list-mode.el lisp/loadup.el lisp/obsolete.el lisp/package-admin.el lisp/package-get-base.el lisp/packages.el lisp/process.el lisp/setup-paths.el lisp/startup.el lisp/x-toolbar.el man/xemacs-faq.texi nt/ChangeLog nt/config.h nt/xemacs.mak src/ChangeLog src/Makefile.in.in src/alloc.c src/bytecode.c src/callproc.c src/config.h.in src/console-msw.h src/depend src/emacs.c src/event-msw.c src/events.c src/fileio.c src/fns.c src/frame-msw.c src/frame-x.c src/glyphs-x.c src/hpplay.c src/insdel.c src/lstream.c src/m/ibmrs6000.inp src/m/powerpc.h src/nt.c src/ntproc.c src/paths.h.in src/paths.h.in.in src/process-nt.c src/process-unix.c src/process.h src/ralloc.c src/redisplay.c src/regex.c src/s/windowsnt.h src/signal.c src/symsinit.h src/sysdep.c src/sysdep.h src/sysproc.h src/unexelf.c src/unexelfsgi.c src/unexfreebsd.c src/window.c version.sh
diffstat 73 files changed, 4927 insertions(+), 2523 deletions(-) [+]
line wrap: on
line diff
--- a/CHANGES-beta	Mon Aug 13 10:28:54 2007 +0200
+++ b/CHANGES-beta	Mon Aug 13 10:29:42 2007 +0200
@@ -1,4 +1,25 @@
 							-*- indented-text -*-
+to 21.0 beta35 "Peacock Goat"
+-- info fixes from Oscar Figueiredo
+-- Various fixes from Hrvoje Niksic
+-- More clean up patches from Martin Buchholz
+-- MS Windows processes patches from Kirill Katsnelson
+-- path searching patches from Michael Sperber
+-- clean up patches from Martin Buchholz
+-- Various fixes from Hrvoje Niksic
+-- BSD fixes from IENAGA Kazuyuki
+-- glyphs-x.c cleanup from Colin Rafferty
+-- MS windows fixes from Kirill Katsnelson
+-- toolbar clean up from Jeff Miller
+-- Hunt the Wumpus 64 bit cleanness patches from Oliver Graf
+-- miscellaneous bug fixes
+-- info updates from Oscar Figueiredo
+-- Various patches from Andreas Jaegar, Olivier Galibert, Karl Hegbloom,
+   and Amir Katz
+-- FAQ update from Christian Nybø
+-- miscellaneous fixes from Martin Buchholz
+-- package-get-base.el updated
+
 to 21.0 beta34 "Oberhasli"
 -- defsymbol cleanup from Martin Buchholz
 -- miscellaneous patches from Martin Buchholz
--- a/ChangeLog	Mon Aug 13 10:28:54 2007 +0200
+++ b/ChangeLog	Mon Aug 13 10:29:42 2007 +0200
@@ -1,3 +1,41 @@
+1998-04-10  SL Baur  <steve@altair.xemacs.org>
+
+	* XEmacs 21.0-beta35 is released.
+
+1998-04-10  Michael Sperber [Mr. Preprocessor]  <sperber@informatik.uni-tuebingen.de>
+
+	* etc/NEWS: Documented that Info-default-directory-list and
+	site-directory are gone.
+
+	* configure.usage: Clarified --package-path documentation.
+
+1998-04-07  Michael Sperber [Mr. Preprocessor]  <sperber@informatik.uni-tuebingen.de>
+
+	* configure.in: Now generates src/paths.h from src/paths.h.in.in.
+	Removed defaults for infopath and package-path.
+
+	* Makefile.in (src/paths.h): ... is now generated from
+	src/paths.h.in.in.  Moved generation of paths.h to configure.
+
+	* paths.h.in: Removed.
+
+	* paths.h.in.in: Created.
+
+1998-04-06  Martin Buchholz  <martin@xemacs.org>
+
+	* configure.in: png was still being used if png_version < 0.96
+
+	* configure.in: Fixed magic to handle AIX, X11R6, and gcc.
+
+1998-04-05  Amir J. Katz  <amir@ndsoft.com>
+
+	* INSTALL (Rationale): Offix support comment is wrong. To disable,
+	one must use --with-offix=no and not --without-offix
+
+1998-04-05  SL Baur  <steve@altair.xemacs.org>
+
+	* configure.in (CPP): ppc.ldscript sits in $srcdir/src not $srcdir.
+
 1998-04-04  SL Baur  <steve@altair.xemacs.org>
 
 	* XEmacs 21.0-beta34 is released.
--- a/INSTALL	Mon Aug 13 10:28:54 2007 +0200
+++ b/INSTALL	Mon Aug 13 10:29:42 2007 +0200
@@ -263,7 +263,7 @@
 The `--with-offix' option allows you to enable or disable OffiX drag
 and drop support.  This requires no external library support, so if
 X11 support is available, then this option defaults to `yes'.  OffiX
-support can be explicitly disabled via the `--without-offix' option.
+support can be explicitly disabled via the `--with-offix=no' option.
 
 The `--external-widget' option specifies that XEmacs should be built
 with support for being used as a widget by other X11 applications.
--- a/Makefile.in	Mon Aug 13 10:28:54 2007 +0200
+++ b/Makefile.in	Mon Aug 13 10:29:42 2007 +0200
@@ -117,14 +117,9 @@
 ## system, it is inappropriate to imply that it is part of XEmacs.
 infodir=@infodir@
 
-## This is set to 'yes' if the user specified the --infodir flag at
-## configuration time.
-infodir_user_defined=@infodir_user_defined@
-
 ## Document me.
 ## See callproc.c for code which references this.
 infopath=@infopath@
-infopath_user_defined=@infopath_user_defined@
 
 ## Where to find the source code.  The source code for XEmacs's C kernel is
 ## expected to be in ${srcdir}/src, and the source code for XEmacs's
@@ -148,18 +143,6 @@
 ## themselves in separate directories.
 lispdir=@lispdir@
 
-## This is set to 'yes' if the user specified the --lispdir or
-## --datadir flag at configuration time.
-lispdir_user_defined=@lispdir_user_defined@
-
-## Where packages are found.
-package_path=@package_path@
-
-## This is set to 'yes' if the user specified the --package_path
-## at configuration time.
-package_path_user_defined=@package_path_user_defined@
-
-
 ## Directory XEmacs should search for lisp files specific
 ## to this site (i.e. customizations), before consulting
 ## ${lispdir}.
@@ -183,19 +166,11 @@
 ## at once.
 etcdir=@etcdir@
 
-## This is set to 'yes' if the user specified the --etcdir or
-## --datadir flag at configuration time.
-etcdir_user_defined=@etcdir_user_defined@
-
 ## Where to create and expect the locking directory, where
 ## the XEmacs locking code keeps track of which files are
 ## currently being edited.
 lockdir=@lockdir@
 
-## This is set to 'yes' if the user specified the --lockdir or
-## --statedir flag at configuration time.
-lockdir_user_defined=@lockdir_user_defined@
-
 ## Where to put executables to be run by XEmacs rather than
 ## the user.  This path usually includes the XEmacs version
 ## and configuration name, so that multiple configurations
@@ -203,10 +178,6 @@
 ## once.
 archlibdir=@archlibdir@
 
-## This is set to 'yes' if the user specified any of --exec-prefix,
-## --libdir or --archlibdir at configuration time.
-archlibdir_user_defined=@archlibdir_user_defined@
-
 ## ==================== Utility Programs for the Build ====================
 
 ## Allow the user to specify the install program.
@@ -259,10 +230,21 @@
 dist: all-elc info
 
 ## Convenience target for XEmacs maintainers
-## Updates configure from configure.in and updates config.values.in
-configure: configure.in
-	autoconf
-	/bin/sh lib-src/config.values.sh
+## Updates some rarely generated files:
+## - configure from configure.in
+## - config.values.in from configure
+## - src/depend from src/*.[ch]
+.PHONY: config configure depend
+config: configure depend
+configure: ${srcdir}/configure
+${srcdir}/configure: ${srcdir}/configure.in
+	cd ${srcdir} && autoconf
+	cd ${srcdir} && /bin/sh lib-src/config.values.sh
+
+depend ${srcdir}/src/depend:
+	cd ${srcdir}/src && \
+		perl ./make-src-depend > depend.tmp && \
+		$(RM) depend && mv depend.tmp depend
 
 ## Build XEmacs and recompile out-of-date and missing .elc files along
 ## the way.
@@ -295,50 +277,6 @@
 		-l finder -f finder-compile-keywords )
 	@echo "Building finder database ...(done)"
 
-## We force the rebuilding of src/paths.h because the user might give
-## different values for the various directories.  Since we use
-## move-if-change, src/paths.h only actually changes if the user did
-## something notable, so the only unnecessary work we do is in building
-## src/paths.h.tmp, which isn't much.  Note that sed is not in /bin on
-## 386bsd.
-src/paths.h: Makefile ${srcdir}/src/paths.h.in FRC.src.paths.h
-	@echo "Producing \`src/paths.h' from \`src/paths.h.in'."
-	@$(RM) src/paths.h.tmp
-	@cp ${srcdir}/src/paths.h.in src/paths.h.tmp
-	@-chmod 0644 src/paths.h.tmp
-	@(echo '#define PATH_PREFIX "${prefix}"'; \
-	 if test "${lispdir_user_defined}" = "yes"; \
-	   then echo    '#define PATH_LOADSEARCH "${lispdir}"'; \
-	   else echo '/* #define PATH_LOADSEARCH "${lispdir}" */'; \
-	 fi; \
-	 if test "${package_path_user_defined}" = "yes"; \
-	   then echo    '#define PATH_PACKAGEPATH "${package_path}"'; \
-	   else echo '/* #define PATH_PACKAGEPATH "${package_path}" */'; \
-	 fi; \
-	 if test "${sitelispdir_user_defined}" = "yes"; \
-	   then echo    '#define PATH_SITE "${sitelispdir}"'; \
-	   else echo '/* #define PATH_SITE "${sitelispdir}" */'; \
-	 fi; \
-	 if test "${archlibdir_user_defined}" = "yes"; \
-	   then echo    '#define PATH_EXEC "${archlibdir}"'; \
-	   else echo '/* #define PATH_EXEC "${archlibdir}" */'; \
-	 fi; \
-	 if test "${etcdir_user_defined}" = "yes"; \
-	   then echo    '#define PATH_DATA "${etcdir}"'; \
-	   else echo '/* #define PATH_DATA "${etcdir}" */'; \
-	 fi; \
-	 if test "${lockdir_user_defined}" = "yes"; \
-	   then echo    '#define PATH_LOCK "${lockdir}"'; \
-	   else echo '/* #define PATH_LOCK "${lockdir}" */'; \
-	 fi; \
-	 if test "${infodir_user_defined}" = "yes"; \
-	   then echo    '#define PATH_INFO "${infodir}"'; \
-	   else echo '/* #define PATH_INFO "${infodir}" */'; \
-	fi; \
-	echo    '#define PATH_INFOPATH "${infopath}"'; \
-	) >> src/paths.h.tmp; \
-	sh ${srcdir}/move-if-change src/paths.h.tmp src/paths.h
-
 ## We have to force the building of Emacs.ad.h as well in order to get it
 ## updated correctly when VPATH is being used.  Since we use move-if-change,
 ## it will only actually change if the user modified ${etcdir}/Emacs.ad.
@@ -392,6 +330,9 @@
 src/config.h: ${srcdir}/src/config.h.in
 	./config.status && touch $@
 
+src/paths.h: ${srcdir}/src/paths.h.in.in
+	./config.status && touch $@
+
 lwlib/config.h: ${srcdir}/lwlib/config.h.in
 	./config.status && touch $@
 
--- a/PROBLEMS	Mon Aug 13 10:28:54 2007 +0200
+++ b/PROBLEMS	Mon Aug 13 10:29:42 2007 +0200
@@ -199,6 +199,19 @@
 
 Compiler fixes in Irix 6.0.1 should eliminate this problem.
 
+** Coredumping in Irix 6.2
+
+Pete Forman <gsez020@compo.bedford.waii.com> writes:
+A problem noted by myself and others (I've lost the references) was
+that XEmacs coredumped when the cut or copy toolbar buttons were
+pressed.  This has been fixed by loading the SGI patchset (Feb 98)
+without having to recompile XEmacs.
+
+My versions are XEmacs 20.3 (problem first noted in 19.15) and IRIX
+6.2, compiled using -n32.  I'd guess that the relevant individual
+patch was "SG0002580: multiple fixes for X libraries".  SGI recommends
+that the complete patch set be installed rather than parts of it.
+
 ** 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 10:28:54 2007 +0200
+++ b/configure	Mon Aug 13 10:29:42 2007 +0200
@@ -218,21 +218,14 @@
 libdir='${exec_prefix}/lib'
 mandir='${prefix}/man/man1'
 infodir='${datadir}/xemacs-${version}/info'
-infodir_user_defined='no'
-infopath='/usr/local/lib/texmf/doc/info:/usr/local/lib/texmf/info:/usr/lib/texmf/doc/info:/usr/lib/texmf/info:/usr/local/info:/usr/info'
+infopath=''
 lispdir='${datadir}/xemacs-${version}/lisp'
-lispdir_user_defined='no'
 sitelispdir='${datadir}/xemacs/site-lisp'
-sitelispdir_user_defined='no'
 pkgdir='${datadir}/xemacs-${version}/lisp'
-package_path='~/.xemacs::${datadir}/xemacs-${version}/mule-packages:${datadir}/xemacs/mule-packages:${datadir}/xemacs-${version}/packages:${datadir}/xemacs/packages'
-package_path_user_defined='no'
+package_path=''
 etcdir='${datadir}/xemacs-${version}/etc'
-etcdir_user_defined='no'
 lockdir='${statedir}/xemacs/lock'
-lockdir_user_defined='no'
 archlibdir='${libdir}/xemacs-${version}/${configuration}'
-archlibdir_user_defined='no'
 with_site_lisp='no'
 with_menubars=''
 with_scrollbars=''
@@ -289,14 +282,14 @@
         ;;
       esac
 
+            optname="$opt"
+      opt="`echo '' $opt | sed -e 's:^ ::' | tr - _`"
+
             case "${valomitted}-${opt}" in yes-without_* )
 	opt=`echo $opt | sed 's/without/with/'`
 	valomitted="no" val="no" ;;
       esac
 
-            optname="$opt"
-      opt="`echo '' $opt | sed -e 's:^ ::' | tr - _`"
-
             case "$opt" in
 
       	run_in_place	| \
@@ -552,14 +545,78 @@
 	   eval "$opt=\"$val\""
 
                                                        case "$opt" in
-             lispdir ) lispdir_user_defined=yes ;;
-             sitelispdir ) sitelispdir_user_defined=yes ;;
-             etcdir  )  etcdir_user_defined=yes ;;
-             infodir ) infodir_user_defined=yes ;;
-             package_path ) package_path_user_defined=yes ;;
-             datadir ) lispdir_user_defined=yes etcdir_user_defined=yes ;;
-             statedir | lockdir ) lockdir_user_defined=yes ;;
-             exec_prefix | libdir | archlibdir ) archlibdir_user_defined=yes ;;
+             lispdir ) { test "$extra_verbose" = "yes" && cat << \EOF
+    Defining LISPDIR_USER_DEFINED
+EOF
+cat >> confdefs.h <<\EOF
+#define LISPDIR_USER_DEFINED 1
+EOF
+}
+ ;;
+             sitelispdir ) { test "$extra_verbose" = "yes" && cat << \EOF
+    Defining SITELISPDIR_USER_DEFINED
+EOF
+cat >> confdefs.h <<\EOF
+#define SITELISPDIR_USER_DEFINED 1
+EOF
+}
+ ;;
+             etcdir  )  { test "$extra_verbose" = "yes" && cat << \EOF
+    Defining ETCDIR_USER_DEFINED
+EOF
+cat >> confdefs.h <<\EOF
+#define ETCDIR_USER_DEFINED 1
+EOF
+}
+ ;;
+             infodir ) { test "$extra_verbose" = "yes" && cat << \EOF
+    Defining INFODIR_USER_DEFINED
+EOF
+cat >> confdefs.h <<\EOF
+#define INFODIR_USER_DEFINED 1
+EOF
+}
+ ;;
+             infopath ) { test "$extra_verbose" = "yes" && cat << \EOF
+    Defining INFOPATH_USER_DEFINED
+EOF
+cat >> confdefs.h <<\EOF
+#define INFOPATH_USER_DEFINED 1
+EOF
+}
+ ;;
+             package_path ) { test "$extra_verbose" = "yes" && cat << \EOF
+    Defining PACKAGE_PATH_USER_DEFINED
+EOF
+cat >> confdefs.h <<\EOF
+#define PACKAGE_PATH_USER_DEFINED 1
+EOF
+}
+ ;;
+             datadir ) { test "$extra_verbose" = "yes" && cat << \EOF
+    Defining ETCDIR_USER_DEFINED
+EOF
+cat >> confdefs.h <<\EOF
+#define ETCDIR_USER_DEFINED 1
+EOF
+}
+ ;;
+             statedir | lockdir ) { test "$extra_verbose" = "yes" && cat << \EOF
+    Defining LOCKDIR_USER_DEFINED
+EOF
+cat >> confdefs.h <<\EOF
+#define LOCKDIR_USER_DEFINED 1
+EOF
+}
+ ;;
+             exec_prefix | libdir | archlibdir ) { test "$extra_verbose" = "yes" && cat << \EOF
+    Defining ARCHLIBDIR_USER_DEFINED
+EOF
+cat >> confdefs.h <<\EOF
+#define ARCHLIBDIR_USER_DEFINED 1
+EOF
+}
+ ;;
            esac
 	;;
 
@@ -604,7 +661,6 @@
 test -n "$libs"     && LIBS="$libs"
 test -n "$ldflags"  && LDFLAGS="$ldflags"
 
-
 eval set x "$quoted_arguments"; shift
 
 test "$extra_verbose" = "yes" && verbose=yes
@@ -670,7 +726,7 @@
 
 if test -z "$configuration"; then
   echo $ac_n "checking "host system type"""... $ac_c" 1>&6
-echo "configure:674: checking "host system type"" >&5
+echo "configure:730: checking "host system type"" >&5
     if configuration=`${CONFIG_SHELL-/bin/sh} $srcdir/config.guess | \
     sed 's/^\([^-][^-]*-[^-][^-]*-[^-][^-]*\)-.*$/\1/'` ; then
     echo "$ac_t""$configuration" 1>&6
@@ -684,7 +740,7 @@
 fi
 
 echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:688: checking whether ln -s works" >&5
+echo "configure:744: checking whether ln -s works" >&5
 
 rm -f conftestdata
 if ln -s X conftestdata 2>/dev/null
@@ -861,7 +917,7 @@
 
 
 echo "checking "the configuration name"" 1>&6
-echo "configure:865: checking "the configuration name"" >&5
+echo "configure:921: checking "the configuration name"" >&5
 internal_configuration=`echo $configuration | sed 's/-\(workshop\)//'`
 if canonical=`$srcdir/config.sub "$internal_configuration"` ; then : ; else
   exit $?
@@ -1325,7 +1381,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:1329: checking for $ac_word" >&5
+echo "configure:1385: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -1351,7 +1407,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:1355: checking for $ac_word" >&5
+echo "configure:1411: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -1396,7 +1452,7 @@
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1400: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1456: 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'
@@ -1408,11 +1464,11 @@
 cross_compiling=no
 
 cat > conftest.$ac_ext <<EOF
-#line 1412 "configure"
+#line 1468 "configure"
 #include "confdefs.h"
 main(){return(0);}
 EOF
-if { (eval echo configure:1416: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1472: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
@@ -1432,19 +1488,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:1436: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1492: 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:1441: checking whether we are using GNU C" >&5
+echo "configure:1497: 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:1448: \"$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:1504: \"$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
@@ -1458,7 +1514,7 @@
   ac_save_CFLAGS="$CFLAGS"
   CFLAGS=
   echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1462: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1518: checking whether ${CC-cc} accepts -g" >&5
 
 echo 'void f(){}' > conftest.c
 if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
@@ -1487,7 +1543,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:1491: checking for $ac_word" >&5
+echo "configure:1547: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -1513,7 +1569,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:1517: checking for $ac_word" >&5
+echo "configure:1573: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -1558,7 +1614,7 @@
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1562: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1618: 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'
@@ -1570,11 +1626,11 @@
 cross_compiling=no
 
 cat > conftest.$ac_ext <<EOF
-#line 1574 "configure"
+#line 1630 "configure"
 #include "confdefs.h"
 main(){return(0);}
 EOF
-if { (eval echo configure:1578: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1634: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
@@ -1594,19 +1650,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:1598: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1654: 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:1603: checking whether we are using GNU C" >&5
+echo "configure:1659: 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:1610: \"$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:1666: \"$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
@@ -1620,7 +1676,7 @@
   ac_save_CFLAGS="$CFLAGS"
   CFLAGS=
   echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1624: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1680: checking whether ${CC-cc} accepts -g" >&5
 
 echo 'void f(){}' > conftest.c
 if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
@@ -1649,7 +1705,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:1653: checking for $ac_word" >&5
+echo "configure:1709: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -1675,7 +1731,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:1679: checking for $ac_word" >&5
+echo "configure:1735: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -1720,7 +1776,7 @@
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1724: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1780: 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'
@@ -1732,11 +1788,11 @@
 cross_compiling=no
 
 cat > conftest.$ac_ext <<EOF
-#line 1736 "configure"
+#line 1792 "configure"
 #include "confdefs.h"
 main(){return(0);}
 EOF
-if { (eval echo configure:1740: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1796: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
@@ -1756,19 +1812,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:1760: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1816: 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:1765: checking whether we are using GNU C" >&5
+echo "configure:1821: 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:1772: \"$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:1828: \"$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
@@ -1782,7 +1838,7 @@
   ac_save_CFLAGS="$CFLAGS"
   CFLAGS=
   echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1786: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1842: checking whether ${CC-cc} accepts -g" >&5
 
 echo 'void f(){}' > conftest.c
 if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
@@ -1815,7 +1871,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:1819: checking how to run the C preprocessor" >&5
+echo "configure:1875: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -1828,13 +1884,13 @@
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 1832 "configure"
+#line 1888 "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:1838: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1894: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   :
@@ -1845,13 +1901,13 @@
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 1849 "configure"
+#line 1905 "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:1855: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1911: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   :
@@ -1874,9 +1930,9 @@
 
 
 echo $ac_n "checking for AIX""... $ac_c" 1>&6
-echo "configure:1878: checking for AIX" >&5
-cat > conftest.$ac_ext <<EOF
-#line 1880 "configure"
+echo "configure:1934: checking for AIX" >&5
+cat > conftest.$ac_ext <<EOF
+#line 1936 "configure"
 #include "confdefs.h"
 #ifdef _AIX
   yes
@@ -1903,9 +1959,9 @@
 
 
 echo $ac_n "checking for GNU libc""... $ac_c" 1>&6
-echo "configure:1907: checking for GNU libc" >&5
-cat > conftest.$ac_ext <<EOF
-#line 1909 "configure"
+echo "configure:1963: checking for GNU libc" >&5
+cat > conftest.$ac_ext <<EOF
+#line 1965 "configure"
 #include "confdefs.h"
 #include <features.h>
 int main() {
@@ -1917,7 +1973,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:1921: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1977: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   have_glibc=yes
 else
@@ -1938,9 +1994,9 @@
 
 
 echo $ac_n "checking whether we are using SunPro C""... $ac_c" 1>&6
-echo "configure:1942: checking whether we are using SunPro C" >&5
-cat > conftest.$ac_ext <<EOF
-#line 1944 "configure"
+echo "configure:1998: checking whether we are using SunPro C" >&5
+cat > conftest.$ac_ext <<EOF
+#line 2000 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -1951,7 +2007,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:1955: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2011: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   __sunpro_c=yes
 else
@@ -2214,7 +2270,7 @@
  fi
 
 echo $ac_n "checking for dynodump""... $ac_c" 1>&6
-echo "configure:2218: checking for dynodump" >&5
+echo "configure:2274: checking for dynodump" >&5
 if test "$unexec" != "unexsol2.o"; then
   echo "$ac_t""no" 1>&6
 else
@@ -2238,7 +2294,7 @@
 fi
 
 
-test "$machine$opsys" = "powerpclinux" && start_flags="-T $srcdir/ppc.ldscript"
+test "$machine$opsys" = "powerpclinux" && start_flags="-T $srcdir/src/ppc.ldscript"
 
 if test "$unexec" = "unexaix.o"; then
   if   test "$dynamic" = "no"; then
@@ -2314,7 +2370,7 @@
 
 if test "$add_runtime_path" = "yes"; then
       echo $ac_n "checking "for runtime libraries flag"""... $ac_c" 1>&6
-echo "configure:2318: checking "for runtime libraries flag"" >&5
+echo "configure:2374: checking "for runtime libraries flag"" >&5
   dash_r=""
   for try_dash_r in "-R" "-R " "-rpath "; do
     xe_check_libs="${try_dash_r}/no/such/file-or-directory"
@@ -2332,14 +2388,14 @@
   done
 fi
     cat > conftest.$ac_ext <<EOF
-#line 2336 "configure"
-#include "confdefs.h"
-
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:2343: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+#line 2392 "configure"
+#include "confdefs.h"
+
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:2399: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   dash_r="$try_dash_r"
 else
@@ -2439,10 +2495,10 @@
 fi
 after_morecore_hook_exists=yes
 echo $ac_n "checking for malloc_get_state""... $ac_c" 1>&6
-echo "configure:2443: checking for malloc_get_state" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 2446 "configure"
+echo "configure:2499: checking for malloc_get_state" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 2502 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char malloc_get_state(); below.  */
@@ -2465,7 +2521,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:2469: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2525: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_malloc_get_state=yes"
 else
@@ -2485,10 +2541,10 @@
 fi
 
 echo $ac_n "checking for malloc_set_state""... $ac_c" 1>&6
-echo "configure:2489: checking for malloc_set_state" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 2492 "configure"
+echo "configure:2545: checking for malloc_set_state" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 2548 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char malloc_set_state(); below.  */
@@ -2511,7 +2567,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:2515: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2571: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_malloc_set_state=yes"
 else
@@ -2531,16 +2587,16 @@
 fi
 
 echo $ac_n "checking whether __after_morecore_hook exists""... $ac_c" 1>&6
-echo "configure:2535: checking whether __after_morecore_hook exists" >&5
-cat > conftest.$ac_ext <<EOF
-#line 2537 "configure"
+echo "configure:2591: checking whether __after_morecore_hook exists" >&5
+cat > conftest.$ac_ext <<EOF
+#line 2593 "configure"
 #include "confdefs.h"
 extern void (* __after_morecore_hook)();
 int main() {
 __after_morecore_hook = 0
 ; return 0; }
 EOF
-if { (eval echo configure:2544: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2600: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -2599,7 +2655,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:2603: checking for $ac_word" >&5
+echo "configure:2659: checking for $ac_word" >&5
 
 if test -n "$RANLIB"; then
   ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
@@ -2652,7 +2708,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:2656: checking for a BSD compatible install" >&5
+echo "configure:2712: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
 
   IFS="${IFS= 	}"; ac_save_IFS="$IFS"; IFS="${IFS}:"
@@ -2703,7 +2759,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:2707: checking for $ac_word" >&5
+echo "configure:2763: checking for $ac_word" >&5
 
 if test -n "$YACC"; then
   ac_cv_prog_YACC="$YACC" # Let the user override the test.
@@ -2734,15 +2790,15 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2738: checking for $ac_hdr" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 2741 "configure"
+echo "configure:2794: checking for $ac_hdr" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 2797 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2746: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2802: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2775,15 +2831,15 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2779: checking for $ac_hdr" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 2782 "configure"
+echo "configure:2835: checking for $ac_hdr" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 2838 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2787: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2843: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2816,15 +2872,15 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2820: checking for $ac_hdr" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 2823 "configure"
+echo "configure:2876: checking for $ac_hdr" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 2879 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2828: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2884: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2854,10 +2910,10 @@
 done
 
 echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
-echo "configure:2858: checking for sys/wait.h that is POSIX.1 compatible" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 2861 "configure"
+echo "configure:2914: checking for sys/wait.h that is POSIX.1 compatible" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 2917 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/wait.h>
@@ -2873,7 +2929,7 @@
 s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
 ; return 0; }
 EOF
-if { (eval echo configure:2877: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2933: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_sys_wait_h=yes
 else
@@ -2897,10 +2953,10 @@
 fi
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:2901: checking for ANSI C header files" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 2904 "configure"
+echo "configure:2957: checking for ANSI C header files" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 2960 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -2908,7 +2964,7 @@
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2912: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2968: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2925,7 +2981,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 2929 "configure"
+#line 2985 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -2943,7 +2999,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 2947 "configure"
+#line 3003 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -2961,7 +3017,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 2965 "configure"
+#line 3021 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -2972,7 +3028,7 @@
 exit (0); }
 
 EOF
-if { (eval echo configure:2976: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:3032: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
 then
   :
 else
@@ -2997,10 +3053,10 @@
 fi
 
 echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:3001: checking whether time.h and sys/time.h may both be included" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3004 "configure"
+echo "configure:3057: checking whether time.h and sys/time.h may both be included" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3060 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
@@ -3009,7 +3065,7 @@
 struct tm *tp;
 ; return 0; }
 EOF
-if { (eval echo configure:3013: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3069: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_time=yes
 else
@@ -3033,10 +3089,10 @@
 fi
 
 echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6
-echo "configure:3037: checking for sys_siglist declaration in signal.h or unistd.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3040 "configure"
+echo "configure:3093: checking for sys_siglist declaration in signal.h or unistd.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3096 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -3048,7 +3104,7 @@
 char *msg = *(sys_siglist + 1);
 ; return 0; }
 EOF
-if { (eval echo configure:3052: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3108: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_decl_sys_siglist=yes
 else
@@ -3073,9 +3129,9 @@
 
 
 echo $ac_n "checking for struct utimbuf""... $ac_c" 1>&6
-echo "configure:3077: checking for struct utimbuf" >&5
-cat > conftest.$ac_ext <<EOF
-#line 3079 "configure"
+echo "configure:3133: checking for struct utimbuf" >&5
+cat > conftest.$ac_ext <<EOF
+#line 3135 "configure"
 #include "confdefs.h"
 #ifdef TIME_WITH_SYS_TIME
 #include <sys/time.h>
@@ -3094,7 +3150,7 @@
 static struct utimbuf x; x.actime = x.modtime;
 ; return 0; }
 EOF
-if { (eval echo configure:3098: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3154: \"$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
@@ -3114,10 +3170,10 @@
 rm -f conftest*
 
 echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:3118: checking return type of signal handlers" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3121 "configure"
+echo "configure:3174: checking return type of signal handlers" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3177 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -3134,7 +3190,7 @@
 int i;
 ; return 0; }
 EOF
-if { (eval echo configure:3138: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3194: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_type_signal=void
 else
@@ -3156,10 +3212,10 @@
 
 
 echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:3160: checking for size_t" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3163 "configure"
+echo "configure:3216: checking for size_t" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3219 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3190,10 +3246,10 @@
 fi
 
 echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:3194: checking for pid_t" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3197 "configure"
+echo "configure:3250: checking for pid_t" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3253 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3224,10 +3280,10 @@
 fi
 
 echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:3228: checking for uid_t in sys/types.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3231 "configure"
+echo "configure:3284: checking for uid_t in sys/types.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3287 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 EOF
@@ -3263,10 +3319,10 @@
 fi
 
 echo $ac_n "checking for mode_t""... $ac_c" 1>&6
-echo "configure:3267: checking for mode_t" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3270 "configure"
+echo "configure:3323: checking for mode_t" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3326 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3297,10 +3353,10 @@
 fi
 
 echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:3301: checking for off_t" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3304 "configure"
+echo "configure:3357: checking for off_t" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3360 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3332,9 +3388,9 @@
 
 
 echo $ac_n "checking for struct timeval""... $ac_c" 1>&6
-echo "configure:3336: checking for struct timeval" >&5
-cat > conftest.$ac_ext <<EOF
-#line 3338 "configure"
+echo "configure:3392: checking for struct timeval" >&5
+cat > conftest.$ac_ext <<EOF
+#line 3394 "configure"
 #include "confdefs.h"
 #ifdef TIME_WITH_SYS_TIME
 #include <sys/time.h>
@@ -3350,7 +3406,7 @@
 static struct timeval x; x.tv_sec = x.tv_usec;
 ; return 0; }
 EOF
-if { (eval echo configure:3354: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3410: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
   HAVE_TIMEVAL=yes
@@ -3372,10 +3428,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:3376: checking whether struct tm is in sys/time.h or time.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3379 "configure"
+echo "configure:3432: checking whether struct tm is in sys/time.h or time.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3435 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <time.h>
@@ -3383,7 +3439,7 @@
 struct tm *tp; tp->tm_sec;
 ; return 0; }
 EOF
-if { (eval echo configure:3387: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3443: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_struct_tm=time.h
 else
@@ -3407,10 +3463,10 @@
 fi
 
 echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6
-echo "configure:3411: checking for tm_zone in struct tm" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3414 "configure"
+echo "configure:3467: checking for tm_zone in struct tm" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3470 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <$ac_cv_struct_tm>
@@ -3418,7 +3474,7 @@
 struct tm tm; tm.tm_zone;
 ; return 0; }
 EOF
-if { (eval echo configure:3422: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3478: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_struct_tm_zone=yes
 else
@@ -3441,10 +3497,10 @@
 
 else
   echo $ac_n "checking for tzname""... $ac_c" 1>&6
-echo "configure:3445: checking for tzname" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3448 "configure"
+echo "configure:3501: checking for tzname" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3504 "configure"
 #include "confdefs.h"
 #include <time.h>
 #ifndef tzname /* For SGI.  */
@@ -3454,7 +3510,7 @@
 atoi(*tzname);
 ; return 0; }
 EOF
-if { (eval echo configure:3458: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3514: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   ac_cv_var_tzname=yes
 else
@@ -3480,10 +3536,10 @@
 
 
 echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:3484: checking for working const" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3487 "configure"
+echo "configure:3540: checking for working const" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3543 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -3532,7 +3588,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:3536: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3592: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_const=yes
 else
@@ -3557,7 +3613,7 @@
 
 
 echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:3561: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:3617: checking whether ${MAKE-make} sets \${MAKE}" >&5
 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
 
 cat > conftestmake <<\EOF
@@ -3582,12 +3638,12 @@
 
 
 echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
-echo "configure:3586: checking whether byte ordering is bigendian" >&5
+echo "configure:3642: 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 3591 "configure"
+#line 3647 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -3598,11 +3654,11 @@
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:3602: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3658: \"$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 3606 "configure"
+#line 3662 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -3613,7 +3669,7 @@
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:3617: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3673: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_bigendian=yes
 else
@@ -3630,7 +3686,7 @@
 rm -f conftest*
 if test $ac_cv_c_bigendian = unknown; then
 cat > conftest.$ac_ext <<EOF
-#line 3634 "configure"
+#line 3690 "configure"
 #include "confdefs.h"
 main () {
   /* Are we little or big endian?  From Harbison&Steele.  */
@@ -3643,7 +3699,7 @@
   exit (u.c[sizeof (long) - 1] == 1);
 }
 EOF
-if { (eval echo configure:3647: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:3703: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
 then
   ac_cv_c_bigendian=no
 else
@@ -3669,10 +3725,10 @@
 
 
 echo $ac_n "checking size of short""... $ac_c" 1>&6
-echo "configure:3673: checking size of short" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3676 "configure"
+echo "configure:3729: checking size of short" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3732 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -3683,7 +3739,7 @@
   exit(0);
 }
 EOF
-if { (eval echo configure:3687: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:3743: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
 then
   ac_cv_sizeof_short=`cat conftestval`
 else
@@ -3710,10 +3766,10 @@
   exit 1
 fi
 echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:3714: checking size of int" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3717 "configure"
+echo "configure:3770: checking size of int" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3773 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -3724,7 +3780,7 @@
   exit(0);
 }
 EOF
-if { (eval echo configure:3728: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:3784: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
 then
   ac_cv_sizeof_int=`cat conftestval`
 else
@@ -3745,10 +3801,10 @@
 
 
 echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:3749: checking size of long" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3752 "configure"
+echo "configure:3805: checking size of long" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3808 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -3759,7 +3815,7 @@
   exit(0);
 }
 EOF
-if { (eval echo configure:3763: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:3819: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
 then
   ac_cv_sizeof_long=`cat conftestval`
 else
@@ -3780,10 +3836,10 @@
 
 
 echo $ac_n "checking size of long long""... $ac_c" 1>&6
-echo "configure:3784: checking size of long long" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3787 "configure"
+echo "configure:3840: checking size of long long" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3843 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -3794,7 +3850,7 @@
   exit(0);
 }
 EOF
-if { (eval echo configure:3798: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:3854: \"$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
@@ -3815,10 +3871,10 @@
 
 
 echo $ac_n "checking size of void *""... $ac_c" 1>&6
-echo "configure:3819: checking size of void *" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3822 "configure"
+echo "configure:3875: checking size of void *" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3878 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -3829,7 +3885,7 @@
   exit(0);
 }
 EOF
-if { (eval echo configure:3833: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:3889: \"$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
@@ -3851,7 +3907,7 @@
 
 
 echo $ac_n "checking for long file names""... $ac_c" 1>&6
-echo "configure:3855: checking for long file names" >&5
+echo "configure:3911: 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:
@@ -3898,12 +3954,12 @@
 
 
 echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6
-echo "configure:3902: checking for sin in -lm" >&5
+echo "configure:3958: 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 3907 "configure"
+#line 3963 "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
@@ -3914,7 +3970,7 @@
 sin()
 ; return 0; }
 EOF
-if { (eval echo configure:3918: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3974: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3956,14 +4012,14 @@
 
 
 cat > conftest.$ac_ext <<EOF
-#line 3960 "configure"
+#line 4016 "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:3967: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4023: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_INVERSE_HYPERBOLIC
@@ -3980,7 +4036,7 @@
 rm -f conftest*
 
 echo "checking type of mail spool file locking" 1>&6
-echo "configure:3984: checking type of mail spool file locking" >&5
+echo "configure:4040: checking type of mail spool file locking" >&5
 test -z "$mail_locking" -a "$mail_use_flock" = "yes" && mail_locking=flock
 test -z "$mail_locking" -a "$mail_use_lockf" = "yes" && mail_locking=lockf
 if   test "$mail_locking" = "lockf"; then { test "$extra_verbose" = "yes" && cat << \EOF
@@ -4004,12 +4060,12 @@
 
 
 echo $ac_n "checking for kstat_open in -lkstat""... $ac_c" 1>&6
-echo "configure:4008: checking for kstat_open in -lkstat" >&5
+echo "configure:4064: 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 4013 "configure"
+#line 4069 "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
@@ -4020,7 +4076,7 @@
 kstat_open()
 ; return 0; }
 EOF
-if { (eval echo configure:4024: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4080: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4054,12 +4110,12 @@
 
 
 echo $ac_n "checking for kvm_read in -lkvm""... $ac_c" 1>&6
-echo "configure:4058: checking for kvm_read in -lkvm" >&5
+echo "configure:4114: 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 4063 "configure"
+#line 4119 "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
@@ -4070,7 +4126,7 @@
 kvm_read()
 ; return 0; }
 EOF
-if { (eval echo configure:4074: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4130: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4104,12 +4160,12 @@
 
 
 echo $ac_n "checking for cma_open in -lpthreads""... $ac_c" 1>&6
-echo "configure:4108: checking for cma_open in -lpthreads" >&5
+echo "configure:4164: 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 4113 "configure"
+#line 4169 "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
@@ -4120,7 +4176,7 @@
 cma_open()
 ; return 0; }
 EOF
-if { (eval echo configure:4124: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4180: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4156,7 +4212,7 @@
 fi
 
 echo $ac_n "checking whether the -xildoff compiler flag is required""... $ac_c" 1>&6
-echo "configure:4160: checking whether the -xildoff compiler flag is required" >&5
+echo "configure:4216: 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;
@@ -4167,7 +4223,7 @@
 
 if test "$opsys" = "sol2" && test "$OS_RELEASE" -ge 56; then
   echo $ac_n "checking for \"-z ignore\" linker flag""... $ac_c" 1>&6
-echo "configure:4171: checking for \"-z ignore\" linker flag" >&5
+echo "configure:4227: 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 ;;
@@ -4177,7 +4233,7 @@
 
 
 echo "checking "for specified window system"" 1>&6
-echo "configure:4181: checking "for specified window system"" >&5
+echo "configure:4237: checking "for specified window system"" >&5
 
 if test "$with_x11" != "no"; then
     test "$x_includes $x_libraries" != "NONE NONE" && \
@@ -4210,7 +4266,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:4214: checking for X" >&5
+echo "configure:4270: checking for X" >&5
 
 # Check whether --with-x or --without-x was given.
 if test "${with_x+set}" = set; then
@@ -4270,12 +4326,12 @@
 
   # First, try using that file with no special directory specified.
 cat > conftest.$ac_ext <<EOF
-#line 4274 "configure"
+#line 4330 "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:4279: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4335: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4344,14 +4400,14 @@
   ac_save_LIBS="$LIBS"
   LIBS="-l$x_direct_test_library $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4348 "configure"
+#line 4404 "configure"
 #include "confdefs.h"
 
 int main() {
 ${x_direct_test_function}()
 ; return 0; }
 EOF
-if { (eval echo configure:4355: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4411: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   LIBS="$ac_save_LIBS"
 # We can link X programs with no special library path.
@@ -4460,17 +4516,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:4464: checking whether -R must be followed by a space" >&5
+echo "configure:4520: 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 4467 "configure"
-#include "confdefs.h"
-
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:4474: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+#line 4523 "configure"
+#include "confdefs.h"
+
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:4530: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   ac_R_nospace=yes
 else
@@ -4486,14 +4542,14 @@
       else
 	LIBS="$ac_xsave_LIBS -R $x_libraries"
 	cat > conftest.$ac_ext <<EOF
-#line 4490 "configure"
-#include "confdefs.h"
-
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:4497: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+#line 4546 "configure"
+#include "confdefs.h"
+
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:4553: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   ac_R_space=yes
 else
@@ -4529,12 +4585,12 @@
 else
 
 echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6
-echo "configure:4533: checking for dnet_ntoa in -ldnet" >&5
+echo "configure:4589: 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 4538 "configure"
+#line 4594 "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
@@ -4545,7 +4601,7 @@
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:4549: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4605: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4569,12 +4625,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:4573: checking for dnet_ntoa in -ldnet_stub" >&5
+echo "configure:4629: 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 4578 "configure"
+#line 4634 "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
@@ -4585,7 +4641,7 @@
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:4589: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4645: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4614,10 +4670,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:4618: checking for gethostbyname" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 4621 "configure"
+echo "configure:4674: checking for gethostbyname" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 4677 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char gethostbyname(); below.  */
@@ -4640,7 +4696,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:4644: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4700: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_gethostbyname=yes"
 else
@@ -4661,12 +4717,12 @@
     if test $ac_cv_func_gethostbyname = no; then
       
 echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:4665: checking for gethostbyname in -lnsl" >&5
+echo "configure:4721: 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 4670 "configure"
+#line 4726 "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
@@ -4677,7 +4733,7 @@
 gethostbyname()
 ; return 0; }
 EOF
-if { (eval echo configure:4681: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4707,10 +4763,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:4711: checking for connect" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 4714 "configure"
+echo "configure:4767: checking for connect" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 4770 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char connect(); below.  */
@@ -4733,7 +4789,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:4737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4793: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_connect=yes"
 else
@@ -4756,12 +4812,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:4760: checking "$xe_msg_checking"" >&5
+echo "configure:4816: 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 4765 "configure"
+#line 4821 "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
@@ -4772,7 +4828,7 @@
 connect()
 ; return 0; }
 EOF
-if { (eval echo configure:4776: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4832: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4796,10 +4852,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:4800: checking for remove" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 4803 "configure"
+echo "configure:4856: checking for remove" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 4859 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char remove(); below.  */
@@ -4822,7 +4878,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:4826: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4882: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_remove=yes"
 else
@@ -4843,12 +4899,12 @@
     if test $ac_cv_func_remove = no; then
       
 echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
-echo "configure:4847: checking for remove in -lposix" >&5
+echo "configure:4903: 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 4852 "configure"
+#line 4908 "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
@@ -4859,7 +4915,7 @@
 remove()
 ; return 0; }
 EOF
-if { (eval echo configure:4863: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4919: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4883,10 +4939,10 @@
 
     # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
     echo $ac_n "checking for shmat""... $ac_c" 1>&6
-echo "configure:4887: checking for shmat" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 4890 "configure"
+echo "configure:4943: checking for shmat" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 4946 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char shmat(); below.  */
@@ -4909,7 +4965,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:4913: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4969: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_shmat=yes"
 else
@@ -4930,12 +4986,12 @@
     if test $ac_cv_func_shmat = no; then
       
 echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
-echo "configure:4934: checking for shmat in -lipc" >&5
+echo "configure:4990: 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 4939 "configure"
+#line 4995 "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
@@ -4946,7 +5002,7 @@
 shmat()
 ; return 0; }
 EOF
-if { (eval echo configure:4950: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5006: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4980,12 +5036,12 @@
   #  --interran@uluru.Stanford.EDU, kb@cs.umb.edu.
   
 echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6
-echo "configure:4984: checking for IceConnectionNumber in -lICE" >&5
+echo "configure:5040: checking for IceConnectionNumber in -lICE" >&5
 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lICE "
 cat > conftest.$ac_ext <<EOF
-#line 4989 "configure"
+#line 5045 "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
@@ -4996,7 +5052,7 @@
 IceConnectionNumber()
 ; return 0; }
 EOF
-if { (eval echo configure:5000: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5056: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5163,7 +5219,7 @@
 
 
     echo "checking for X defines extracted by xmkmf" 1>&6
-echo "configure:5167: checking for X defines extracted by xmkmf" >&5
+echo "configure:5223: checking for X defines extracted by xmkmf" >&5
   rm -fr conftestdir
   if mkdir conftestdir; then
     cd conftestdir
@@ -5195,15 +5251,15 @@
 
     ac_safe=`echo "X11/Intrinsic.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Intrinsic.h""... $ac_c" 1>&6
-echo "configure:5199: checking for X11/Intrinsic.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 5202 "configure"
+echo "configure:5255: checking for X11/Intrinsic.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 5258 "configure"
 #include "confdefs.h"
 #include <X11/Intrinsic.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5207: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5263: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -5227,12 +5283,12 @@
 
       
 echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6
-echo "configure:5231: checking for XOpenDisplay in -lX11" >&5
+echo "configure:5287: 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 5236 "configure"
+#line 5292 "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
@@ -5243,7 +5299,7 @@
 XOpenDisplay()
 ; return 0; }
 EOF
-if { (eval echo configure:5247: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5303: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5268,12 +5324,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:5272: checking "$xe_msg_checking"" >&5
+echo "configure:5328: 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 5277 "configure"
+#line 5333 "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
@@ -5284,7 +5340,7 @@
 XGetFontProperty()
 ; return 0; }
 EOF
-if { (eval echo configure:5288: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5344: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5311,12 +5367,12 @@
 
     
 echo $ac_n "checking for XShapeSelectInput in -lXext""... $ac_c" 1>&6
-echo "configure:5315: checking for XShapeSelectInput in -lXext" >&5
+echo "configure:5371: 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 5320 "configure"
+#line 5376 "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
@@ -5327,7 +5383,7 @@
 XShapeSelectInput()
 ; return 0; }
 EOF
-if { (eval echo configure:5331: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5387: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5350,12 +5406,12 @@
 
     
 echo $ac_n "checking for XtOpenDisplay in -lXt""... $ac_c" 1>&6
-echo "configure:5354: checking for XtOpenDisplay in -lXt" >&5
+echo "configure:5410: 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 5359 "configure"
+#line 5415 "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
@@ -5366,7 +5422,7 @@
 XtOpenDisplay()
 ; return 0; }
 EOF
-if { (eval echo configure:5370: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5426: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5389,14 +5445,14 @@
 
 
   echo $ac_n "checking the version of X11 being used""... $ac_c" 1>&6
-echo "configure:5393: checking the version of X11 being used" >&5
+echo "configure:5449: checking the version of X11 being used" >&5
   cat > conftest.$ac_ext <<EOF
-#line 5395 "configure"
+#line 5451 "configure"
 #include "confdefs.h"
 #include <X11/Intrinsic.h>
     int main(int c, char *v[]) { return c>1 ? XlibSpecificationRelease : 0; }
 EOF
-if { (eval echo configure:5400: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:5456: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
 then
   ./conftest foobar; x11_release=$?
 else
@@ -5420,15 +5476,15 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5424: checking for $ac_hdr" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 5427 "configure"
+echo "configure:5480: checking for $ac_hdr" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 5483 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5432: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5488: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -5459,7 +5515,7 @@
 
 
     echo $ac_n "checking for XFree86""... $ac_c" 1>&6
-echo "configure:5463: checking for XFree86" >&5
+echo "configure:5519: checking for XFree86" >&5
   if test -d "/usr/X386/include" -o \
           -f "/etc/XF86Config"    -o \
 	  -f "/etc/X11/XF86Config" -o \
@@ -5479,12 +5535,12 @@
 
     test -z "$with_xmu" && { 
 echo $ac_n "checking for XmuReadBitmapDataFromFile in -lXmu""... $ac_c" 1>&6
-echo "configure:5483: checking for XmuReadBitmapDataFromFile in -lXmu" >&5
+echo "configure:5539: 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 5488 "configure"
+#line 5544 "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
@@ -5495,7 +5551,7 @@
 XmuReadBitmapDataFromFile()
 ; return 0; }
 EOF
-if { (eval echo configure:5499: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5555: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5534,19 +5590,19 @@
 
       
 echo $ac_n "checking for main in -lXbsd""... $ac_c" 1>&6
-echo "configure:5538: checking for main in -lXbsd" >&5
+echo "configure:5594: 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 5543 "configure"
+#line 5599 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:5550: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5606: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5568,36 +5624,37 @@
 
 
     if test "$unexec" = "unexaix.o" -a "$x11_release" = "6"; then
-        case "$CC" in
-      "xlc" ) CC="xlc_r" ;;
-      "xlC" ) CC="xlC_r" ;;
-      "cc"  ) CC="cc_r" ;;
-      "gcc" )
-        X_CFLAGS="-mthreads $X_CFLAGS" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-mthreads\" to \$X_CFLAGS"; fi
-        libs_x="-mthreads $libs_x" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-mthreads\" to \$libs_x"; fi
-	;;
-    esac
+        if test "$GCC" = "yes"; then
+      X_CFLAGS="-mthreads $X_CFLAGS" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-mthreads\" to \$X_CFLAGS"; fi
+      libs_x="-mthreads $libs_x" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-mthreads\" to \$libs_x"; fi
+    else
+      case "$CC" in
+        "xlc" ) CC="xlc_r" ;;
+        "xlC" ) CC="xlC_r" ;;
+        "cc"  ) CC="cc_r" ;;
+      esac
+    fi
   fi
 
 fi 
 if test "$with_msw" != "no"; then
   echo "checking for MS-Windows" 1>&6
-echo "configure:5586: checking for MS-Windows" >&5
+echo "configure:5643: checking for MS-Windows" >&5
   
 echo $ac_n "checking for main in -lgdi32""... $ac_c" 1>&6
-echo "configure:5589: checking for main in -lgdi32" >&5
+echo "configure:5646: 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 5594 "configure"
+#line 5651 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:5601: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5706,7 +5763,7 @@
 esac
 
 echo "checking for session-management option" 1>&6
-echo "configure:5710: checking for session-management option" >&5;
+echo "configure:5767: checking for session-management option" >&5;
 if test "$with_session" != "no"; then
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_SESSION
@@ -5721,15 +5778,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:5725: checking for X11/Xauth.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 5728 "configure"
+echo "configure:5782: checking for X11/Xauth.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 5785 "configure"
 #include "confdefs.h"
 #include <X11/Xauth.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5733: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5790: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -5752,12 +5809,12 @@
  }
 test -z "$with_xauth" && { 
 echo $ac_n "checking for XauGetAuthByAddr in -lXau""... $ac_c" 1>&6
-echo "configure:5756: checking for XauGetAuthByAddr in -lXau" >&5
+echo "configure:5813: 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 5761 "configure"
+#line 5818 "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
@@ -5768,7 +5825,7 @@
 XauGetAuthByAddr()
 ; return 0; }
 EOF
-if { (eval echo configure:5772: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5829: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5822,25 +5879,25 @@
 EOF
 }
 
-  extra_objs="$extra_objs offix.o" &&  if test "$extra_verbose" = "yes"; then
-   echo "    xemacs will be linked with \"offix.o\""
- fi
-fi
+  dnd_objs="$dnd_objs offix.o" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"offix.o\" to \$dnd_objs"; fi
+fi
+
+
 
 test "$with_cde" = "yes" && with_tooltalk=yes # CDE requires tooltalk
 if test "$with_tooltalk" != "no" ; then
       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:5836: checking for ${dir}tt_c.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 5839 "configure"
+echo "configure:5893: checking for ${dir}tt_c.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 5896 "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:5844: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5901: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -5869,12 +5926,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:5873: checking "$xe_msg_checking"" >&5
+echo "configure:5930: 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 5878 "configure"
+#line 5935 "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
@@ -5885,7 +5942,7 @@
 tt_message_create()
 ; return 0; }
 EOF
-if { (eval echo configure:5889: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5946: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5934,15 +5991,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:5938: checking for Dt/Dt.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 5941 "configure"
+echo "configure:5995: checking for Dt/Dt.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 5998 "configure"
 #include "confdefs.h"
 #include <Dt/Dt.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5946: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6003: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -5965,12 +6022,12 @@
  }
 test -z "$with_cde" && { 
 echo $ac_n "checking for DtDndDragStart in -lDtSvc""... $ac_c" 1>&6
-echo "configure:5969: checking for DtDndDragStart in -lDtSvc" >&5
+echo "configure:6026: 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 5974 "configure"
+#line 6031 "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
@@ -5981,7 +6038,7 @@
 DtDndDragStart()
 ; return 0; }
 EOF
-if { (eval echo configure:5985: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6042: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6018,18 +6075,18 @@
 fi
 
 echo "checking for LDAP" 1>&6
-echo "configure:6022: checking for LDAP" >&5
+echo "configure:6079: 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:6025: checking for ldap.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 6028 "configure"
+echo "configure:6082: checking for ldap.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 6085 "configure"
 #include "confdefs.h"
 #include <ldap.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6033: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6090: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6052,15 +6109,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:6056: checking for lber.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 6059 "configure"
+echo "configure:6113: checking for lber.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 6116 "configure"
 #include "confdefs.h"
 #include <lber.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6064: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6121: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6086,12 +6143,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:6090: checking "$xe_msg_checking"" >&5
+echo "configure:6147: 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 6095 "configure"
+#line 6152 "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
@@ -6102,7 +6159,7 @@
 ldap_open()
 ; return 0; }
 EOF
-if { (eval echo configure:6106: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6163: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6125,12 +6182,12 @@
  }
   test "$with_umich_ldap" = "no" && { 
 echo $ac_n "checking for ldap_set_option in -lldap10""... $ac_c" 1>&6
-echo "configure:6129: checking for ldap_set_option in -lldap10" >&5
+echo "configure:6186: checking for ldap_set_option in -lldap10" >&5
 ac_lib_var=`echo ldap10'_'ldap_set_option | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lldap10 "
 cat > conftest.$ac_ext <<EOF
-#line 6134 "configure"
+#line 6191 "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
@@ -6141,7 +6198,7 @@
 ldap_set_option()
 ; return 0; }
 EOF
-if { (eval echo configure:6145: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6202: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6206,17 +6263,17 @@
 if test "$with_x11" = "yes"; then
 
   echo "checking for X11 graphics libraries" 1>&6
-echo "configure:6210: checking for X11 graphics libraries" >&5
+echo "configure:6267: checking for X11 graphics libraries" >&5
 
       if test "$with_png $with_tiff" != "no no"; then
     
 echo $ac_n "checking for inflate in -lc""... $ac_c" 1>&6
-echo "configure:6215: checking for inflate in -lc" >&5
+echo "configure:6272: 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 6220 "configure"
+#line 6277 "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
@@ -6227,7 +6284,7 @@
 inflate()
 ; return 0; }
 EOF
-if { (eval echo configure:6231: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6288: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6246,12 +6303,12 @@
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for inflate in -lz""... $ac_c" 1>&6
-echo "configure:6250: checking for inflate in -lz" >&5
+echo "configure:6307: 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 6255 "configure"
+#line 6312 "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
@@ -6262,7 +6319,7 @@
 inflate()
 ; return 0; }
 EOF
-if { (eval echo configure:6266: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6323: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6281,12 +6338,12 @@
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for inflate in -lgz""... $ac_c" 1>&6
-echo "configure:6285: checking for inflate in -lgz" >&5
+echo "configure:6342: 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 6290 "configure"
+#line 6347 "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
@@ -6297,7 +6354,7 @@
 inflate()
 ; return 0; }
 EOF
-if { (eval echo configure:6301: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6358: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6327,10 +6384,10 @@
 
     if test -z "$with_xpm"; then
     echo $ac_n "checking for Xpm - no older than 3.4f""... $ac_c" 1>&6
-echo "configure:6331: checking for Xpm - no older than 3.4f" >&5
+echo "configure:6388: checking for Xpm - no older than 3.4f" >&5
     xe_check_libs=-lXpm
     cat > conftest.$ac_ext <<EOF
-#line 6334 "configure"
+#line 6391 "configure"
 #include "confdefs.h"
 #include <X11/xpm.h>
     int main(int c, char **v) {
@@ -6338,7 +6395,7 @@
       XpmIncludeVersion != XpmLibraryVersion() ? 1 :
       XpmIncludeVersion < 30406 ? 2 : 0 ;}
 EOF
-if { (eval echo configure:6342: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:6399: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
 then
   ./conftest dummy_arg; xpm_status=$?;
       if test "$?" = "0"; then
@@ -6382,15 +6439,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:6386: checking for compface.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 6389 "configure"
+echo "configure:6443: checking for compface.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 6446 "configure"
 #include "confdefs.h"
 #include <compface.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6394: \"$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`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6413,12 +6470,12 @@
  }
   test -z "$with_xface" && { 
 echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6
-echo "configure:6417: checking for UnGenFace in -lcompface" >&5
+echo "configure:6474: 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 6422 "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
@@ -6429,7 +6486,7 @@
 UnGenFace()
 ; return 0; }
 EOF
-if { (eval echo configure:6433: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6490: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6464,18 +6521,18 @@
   fi
 
     echo $ac_n "checking for giflib - no older than 3.1""... $ac_c" 1>&6
-echo "configure:6468: checking for giflib - no older than 3.1" >&5
+echo "configure:6525: checking for giflib - no older than 3.1" >&5
   test -z "$with_gif" && { ac_safe=`echo "gif_lib.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for gif_lib.h""... $ac_c" 1>&6
-echo "configure:6471: checking for gif_lib.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 6474 "configure"
+echo "configure:6528: checking for gif_lib.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 6531 "configure"
 #include "confdefs.h"
 #include <gif_lib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6479: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6536: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6498,12 +6555,12 @@
  }
   test -z "$with_gif" && { 
 echo $ac_n "checking for GetGifError in -lgif""... $ac_c" 1>&6
-echo "configure:6502: checking for GetGifError in -lgif" >&5
+echo "configure:6559: checking for GetGifError in -lgif" >&5
 ac_lib_var=`echo gif'_'GetGifError | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lgif "
 cat > conftest.$ac_ext <<EOF
-#line 6507 "configure"
+#line 6564 "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
@@ -6514,7 +6571,7 @@
 GetGifError()
 ; return 0; }
 EOF
-if { (eval echo configure:6518: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6575: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6550,15 +6607,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:6554: checking for jpeglib.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 6557 "configure"
+echo "configure:6611: checking for jpeglib.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 6614 "configure"
 #include "confdefs.h"
 #include <jpeglib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6562: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6619: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6581,12 +6638,12 @@
  }
   test -z "$with_jpeg" && { 
 echo $ac_n "checking for jpeg_destroy_decompress in -ljpeg""... $ac_c" 1>&6
-echo "configure:6585: checking for jpeg_destroy_decompress in -ljpeg" >&5
+echo "configure:6642: 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 6590 "configure"
+#line 6647 "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
@@ -6597,7 +6654,7 @@
 jpeg_destroy_decompress()
 ; return 0; }
 EOF
-if { (eval echo configure:6601: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6633,9 +6690,9 @@
 
     if test -z "$with_png"; then
     echo $ac_n "checking for png.h - no older than 0.96""... $ac_c" 1>&6
-echo "configure:6637: checking for png.h - no older than 0.96" >&5
+echo "configure:6694: checking for png.h - no older than 0.96" >&5
     cat > conftest.$ac_ext <<EOF
-#line 6639 "configure"
+#line 6696 "configure"
 #include "confdefs.h"
 #include <png.h>
 #if PNG_LIBPNG_VER >= 96
@@ -6649,16 +6706,16 @@
   echo "$ac_t""yes" 1>&6
 else
   rm -rf conftest*
-  echo "$ac_t""no" 1>&6; have_png=no
+  echo "$ac_t""no" 1>&6; with_png=no
 fi
 rm -f conftest*
 
   fi
   test -z "$with_png" && { echo $ac_n "checking for pow""... $ac_c" 1>&6
-echo "configure:6659: checking for pow" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 6662 "configure"
+echo "configure:6716: checking for pow" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 6719 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char pow(); below.  */
@@ -6681,7 +6738,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:6685: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6742: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_pow=yes"
 else
@@ -6702,12 +6759,12 @@
  }
   test -z "$with_png" && { 
 echo $ac_n "checking for png_read_image in -lpng""... $ac_c" 1>&6
-echo "configure:6706: checking for png_read_image in -lpng" >&5
+echo "configure:6763: 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 6711 "configure"
+#line 6768 "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 +6775,7 @@
 png_read_image()
 ; return 0; }
 EOF
-if { (eval echo configure:6722: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6779: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6754,15 +6811,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:6758: checking for tiffio.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 6761 "configure"
+echo "configure:6815: checking for tiffio.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 6818 "configure"
 #include "confdefs.h"
 #include <tiffio.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6766: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6823: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6785,12 +6842,12 @@
  }
   test -z "$with_tiff" && { 
 echo $ac_n "checking for TIFFReadScanline in -ltiff""... $ac_c" 1>&6
-echo "configure:6789: checking for TIFFReadScanline in -ltiff" >&5
+echo "configure:6846: checking for TIFFReadScanline in -ltiff" >&5
 ac_lib_var=`echo tiff'_'TIFFReadScanline | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ltiff "
 cat > conftest.$ac_ext <<EOF
-#line 6794 "configure"
+#line 6851 "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
@@ -6801,7 +6858,7 @@
 TIFFReadScanline()
 ; return 0; }
 EOF
-if { (eval echo configure:6805: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6862: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6837,12 +6894,12 @@
 
     
 echo $ac_n "checking for XawScrollbarSetThumb in -lXaw""... $ac_c" 1>&6
-echo "configure:6841: checking for XawScrollbarSetThumb in -lXaw" >&5
+echo "configure:6898: checking for XawScrollbarSetThumb in -lXaw" >&5
 ac_lib_var=`echo Xaw'_'XawScrollbarSetThumb | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXaw "
 cat > conftest.$ac_ext <<EOF
-#line 6846 "configure"
+#line 6903 "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
@@ -6853,7 +6910,7 @@
 XawScrollbarSetThumb()
 ; return 0; }
 EOF
-if { (eval echo configure:6857: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6914: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6877,15 +6934,15 @@
                     
     ac_safe=`echo "Xm/Xm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for Xm/Xm.h""... $ac_c" 1>&6
-echo "configure:6881: checking for Xm/Xm.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 6884 "configure"
+echo "configure:6938: checking for Xm/Xm.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 6941 "configure"
 #include "confdefs.h"
 #include <Xm/Xm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6889: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6946: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6902,12 +6959,12 @@
   echo "$ac_t""yes" 1>&6
   
 echo $ac_n "checking for XmStringFree in -lXm""... $ac_c" 1>&6
-echo "configure:6906: checking for XmStringFree in -lXm" >&5
+echo "configure:6963: 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 6911 "configure"
+#line 6968 "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
@@ -6918,7 +6975,7 @@
 XmStringFree()
 ; return 0; }
 EOF
-if { (eval echo configure:6922: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6979: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6947,9 +7004,9 @@
 
   if test "$have_motif" = "yes"; then
         echo $ac_n "checking for Lesstif""... $ac_c" 1>&6
-echo "configure:6951: checking for Lesstif" >&5
+echo "configure:7008: checking for Lesstif" >&5
     cat > conftest.$ac_ext <<EOF
-#line 6953 "configure"
+#line 7010 "configure"
 #include "confdefs.h"
 #include <Xm/Xm.h>
 #ifdef LESSTIF_VERSION
@@ -7233,7 +7290,7 @@
 
 if test "$with_mule" = "yes" ; then
   echo "checking for Mule-related features" 1>&6
-echo "configure:7237: checking for Mule-related features" >&5
+echo "configure:7294: checking for Mule-related features" >&5
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining MULE
 EOF
@@ -7258,15 +7315,15 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:7262: checking for $ac_hdr" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 7265 "configure"
+echo "configure:7319: checking for $ac_hdr" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 7322 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7270: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7327: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7297,12 +7354,12 @@
 
   
 echo $ac_n "checking for strerror in -lintl""... $ac_c" 1>&6
-echo "configure:7301: checking for strerror in -lintl" >&5
+echo "configure:7358: 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 7306 "configure"
+#line 7363 "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
@@ -7313,7 +7370,7 @@
 strerror()
 ; return 0; }
 EOF
-if { (eval echo configure:7317: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7374: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7346,19 +7403,19 @@
 
 
   echo "checking for Mule input methods" 1>&6
-echo "configure:7350: checking for Mule input methods" >&5
+echo "configure:7407: checking for Mule input methods" >&5
         case "$with_xim" in "" | "yes" )
     echo "checking for XIM" 1>&6
-echo "configure:7353: checking for XIM" >&5
+echo "configure:7410: checking for XIM" >&5
         if test "$have_lesstif" = "yes"; then with_xim=xlib
     else 
 echo $ac_n "checking for XmImMbLookupString in -lXm""... $ac_c" 1>&6
-echo "configure:7357: checking for XmImMbLookupString in -lXm" >&5
+echo "configure:7414: 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 7362 "configure"
+#line 7419 "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
@@ -7369,7 +7426,7 @@
 XmImMbLookupString()
 ; return 0; }
 EOF
-if { (eval echo configure:7373: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7430: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7435,15 +7492,15 @@
 
     if test "$with_xfs" = "yes" ; then
     echo "checking for XFontSet" 1>&6
-echo "configure:7439: checking for XFontSet" >&5
+echo "configure:7496: checking for XFontSet" >&5
     
 echo $ac_n "checking for XmbDrawString in -lX11""... $ac_c" 1>&6
-echo "configure:7442: checking for XmbDrawString in -lX11" >&5
+echo "configure:7499: 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 7447 "configure"
+#line 7504 "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
@@ -7454,7 +7511,7 @@
 XmbDrawString()
 ; return 0; }
 EOF
-if { (eval echo configure:7458: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7515: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7494,15 +7551,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:7498: checking for wnn/jllib.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 7501 "configure"
+echo "configure:7555: checking for wnn/jllib.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 7558 "configure"
 #include "confdefs.h"
 #include <wnn/jllib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7506: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7563: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7527,10 +7584,10 @@
     for ac_func in crypt
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7531: checking for $ac_func" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 7534 "configure"
+echo "configure:7588: checking for $ac_func" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 7591 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -7553,7 +7610,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:7557: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7614: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -7582,12 +7639,12 @@
 
     test "$ac_cv_func_crypt" != "yes" && { 
 echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
-echo "configure:7586: checking for crypt in -lcrypt" >&5
+echo "configure:7643: 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 7591 "configure"
+#line 7648 "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
@@ -7598,7 +7655,7 @@
 crypt()
 ; return 0; }
 EOF
-if { (eval echo configure:7602: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7659: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7632,12 +7689,12 @@
   fi
     test -z "$with_wnn" && { 
 echo $ac_n "checking for jl_dic_list_e in -lwnn""... $ac_c" 1>&6
-echo "configure:7636: checking for jl_dic_list_e in -lwnn" >&5
+echo "configure:7693: 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 7641 "configure"
+#line 7698 "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
@@ -7648,7 +7705,7 @@
 jl_dic_list_e()
 ; return 0; }
 EOF
-if { (eval echo configure:7652: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7709: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7685,12 +7742,12 @@
  fi
     
 echo $ac_n "checking for jl_fi_dic_list in -lwnn""... $ac_c" 1>&6
-echo "configure:7689: checking for jl_fi_dic_list in -lwnn" >&5
+echo "configure:7746: checking for jl_fi_dic_list in -lwnn" >&5
 ac_lib_var=`echo wnn'_'jl_fi_dic_list | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lwnn "
 cat > conftest.$ac_ext <<EOF
-#line 7694 "configure"
+#line 7751 "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
@@ -7701,7 +7758,7 @@
 jl_fi_dic_list()
 ; return 0; }
 EOF
-if { (eval echo configure:7705: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7762: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7735,15 +7792,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:7739: checking for canna/jrkanji.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 7742 "configure"
+echo "configure:7796: checking for canna/jrkanji.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 7799 "configure"
 #include "confdefs.h"
 #include <canna/jrkanji.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7747: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7804: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7770,15 +7827,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:7774: checking for canna/jrkanji.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 7777 "configure"
+echo "configure:7831: checking for canna/jrkanji.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 7834 "configure"
 #include "confdefs.h"
 #include <canna/jrkanji.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7782: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7839: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7806,15 +7863,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:7810: checking for canna/RK.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 7813 "configure"
+echo "configure:7867: checking for canna/RK.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 7870 "configure"
 #include "confdefs.h"
 #include <canna/RK.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7818: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7875: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7837,12 +7894,12 @@
  }
   test -z "$with_canna" && { 
 echo $ac_n "checking for RkBgnBun in -lRKC""... $ac_c" 1>&6
-echo "configure:7841: checking for RkBgnBun in -lRKC" >&5
+echo "configure:7898: 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 7846 "configure"
+#line 7903 "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
@@ -7853,7 +7910,7 @@
 RkBgnBun()
 ; return 0; }
 EOF
-if { (eval echo configure:7857: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7914: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7876,12 +7933,12 @@
  }
   test -z "$with_canna" && { 
 echo $ac_n "checking for jrKanjiControl in -lcanna""... $ac_c" 1>&6
-echo "configure:7880: checking for jrKanjiControl in -lcanna" >&5
+echo "configure:7937: 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 7885 "configure"
+#line 7942 "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
@@ -7892,7 +7949,7 @@
 jrKanjiControl()
 ; return 0; }
 EOF
-if { (eval echo configure:7896: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7953: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7941,12 +7998,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:7945: checking for layout_object_getvalue in -li18n" >&5
+echo "configure:8002: 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 7950 "configure"
+#line 8007 "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
@@ -7957,7 +8014,7 @@
 layout_object_getvalue()
 ; return 0; }
 EOF
-if { (eval echo configure:7961: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8018: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8043,10 +8100,10 @@
 for ac_func in cbrt closedir dup2 eaccess fmod fpathconf frexp ftime gethostname getpagesize gettimeofday getcwd getwd logb lrand48 matherr mkdir mktime perror poll random rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask snprintf strcasecmp strerror tzset ulimit usleep utimes waitpid vsnprintf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8047: checking for $ac_func" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8050 "configure"
+echo "configure:8104: checking for $ac_func" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8107 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -8069,7 +8126,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:8073: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8130: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -8106,10 +8163,10 @@
     for ac_func in realpath
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8110: checking for $ac_func" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8113 "configure"
+echo "configure:8167: checking for $ac_func" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8170 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -8132,7 +8189,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:8136: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8193: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -8165,16 +8222,16 @@
 esac
 
 echo $ac_n "checking whether netdb declares h_errno""... $ac_c" 1>&6
-echo "configure:8169: checking whether netdb declares h_errno" >&5
-cat > conftest.$ac_ext <<EOF
-#line 8171 "configure"
+echo "configure:8226: checking whether netdb declares h_errno" >&5
+cat > conftest.$ac_ext <<EOF
+#line 8228 "configure"
 #include "confdefs.h"
 #include <netdb.h>
 int main() {
 return h_errno;
 ; return 0; }
 EOF
-if { (eval echo configure:8178: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8235: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
    { test "$extra_verbose" = "yes" && cat << \EOF
@@ -8194,16 +8251,16 @@
 rm -f conftest*
 
 echo $ac_n "checking for sigsetjmp""... $ac_c" 1>&6
-echo "configure:8198: checking for sigsetjmp" >&5
-cat > conftest.$ac_ext <<EOF
-#line 8200 "configure"
+echo "configure:8255: checking for sigsetjmp" >&5
+cat > conftest.$ac_ext <<EOF
+#line 8257 "configure"
 #include "confdefs.h"
 #include <setjmp.h>
 int main() {
 sigjmp_buf bar; sigsetjmp (bar, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:8207: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8264: \"$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
@@ -8223,11 +8280,11 @@
 rm -f conftest*
 
 echo $ac_n "checking whether localtime caches TZ""... $ac_c" 1>&6
-echo "configure:8227: checking whether localtime caches TZ" >&5
+echo "configure:8284: checking whether localtime caches TZ" >&5
 
 if test "$ac_cv_func_tzset" = "yes"; then
 cat > conftest.$ac_ext <<EOF
-#line 8231 "configure"
+#line 8288 "configure"
 #include "confdefs.h"
 #include <time.h>
 #if STDC_HEADERS
@@ -8262,7 +8319,7 @@
   exit (0);
 }
 EOF
-if { (eval echo configure:8266: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:8323: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
 then
   emacs_cv_localtime_cache=no
 else
@@ -8290,10 +8347,10 @@
 fi
 
 if test "$HAVE_TIMEVAL" = "yes"; then
-echo $ac_n "checking whether gettimeofday cannot accept two arguments""... $ac_c" 1>&6
-echo "configure:8295: checking whether gettimeofday cannot accept two arguments" >&5
-cat > conftest.$ac_ext <<EOF
-#line 8297 "configure"
+echo $ac_n "checking whether gettimeofday accepts one or two arguments""... $ac_c" 1>&6
+echo "configure:8352: checking whether gettimeofday accepts one or two arguments" >&5
+cat > conftest.$ac_ext <<EOF
+#line 8354 "configure"
 #include "confdefs.h"
 
 #ifdef TIME_WITH_SYS_TIME
@@ -8315,14 +8372,14 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:8319: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
+if { (eval echo configure:8376: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  echo "$ac_t""two" 1>&6
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  echo "$ac_t""one" 1>&6
    { test "$extra_verbose" = "yes" && cat << \EOF
     Defining GETTIMEOFDAY_ONE_ARGUMENT
 EOF
@@ -8337,19 +8394,19 @@
 
 
 echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:8341: checking for inline" >&5
+echo "configure:8398: checking for inline" >&5
 
 ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat > conftest.$ac_ext <<EOF
-#line 8346 "configure"
+#line 8403 "configure"
 #include "confdefs.h"
 
 int main() {
 } $ac_kw foo() {
 ; return 0; }
 EOF
-if { (eval echo configure:8353: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8410: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_inline=$ac_kw; break
 else
@@ -8399,17 +8456,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:8403: checking for working alloca.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8406 "configure"
+echo "configure:8460: checking for working alloca.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8463 "configure"
 #include "confdefs.h"
 #include <alloca.h>
 int main() {
 char *p = alloca(2 * sizeof(int));
 ; return 0; }
 EOF
-if { (eval echo configure:8413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8470: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   ac_cv_header_alloca_h=yes
 else
@@ -8433,10 +8490,10 @@
 fi
 
 echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:8437: checking for alloca" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8440 "configure"
+echo "configure:8494: checking for alloca" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8497 "configure"
 #include "confdefs.h"
 
 #ifdef __GNUC__
@@ -8459,7 +8516,7 @@
 char *p = (char *) alloca(1);
 ; return 0; }
 EOF
-if { (eval echo configure:8463: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8520: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   ac_cv_func_alloca_works=yes
 else
@@ -8498,10 +8555,10 @@
 
 
 echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:8502: checking whether alloca needs Cray hooks" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8505 "configure"
+echo "configure:8559: checking whether alloca needs Cray hooks" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8562 "configure"
 #include "confdefs.h"
 #if defined(CRAY) && ! defined(CRAY2)
 webecray
@@ -8525,10 +8582,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:8529: checking for $ac_func" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8532 "configure"
+echo "configure:8586: checking for $ac_func" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8589 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -8551,7 +8608,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:8555: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8612: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -8581,10 +8638,10 @@
 fi
 
 echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:8585: checking stack direction for C alloca" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8588 "configure"
+echo "configure:8642: checking stack direction for C alloca" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8645 "configure"
 #include "confdefs.h"
 find_stack_direction ()
 {
@@ -8603,7 +8660,7 @@
   exit (find_stack_direction() < 0);
 }
 EOF
-if { (eval echo configure:8607: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:8664: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
 then
   ac_cv_c_stack_direction=1
 else
@@ -8631,15 +8688,15 @@
 
 ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for vfork.h""... $ac_c" 1>&6
-echo "configure:8635: checking for vfork.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8638 "configure"
+echo "configure:8692: checking for vfork.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8695 "configure"
 #include "confdefs.h"
 #include <vfork.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8643: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8700: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8667,10 +8724,10 @@
 fi
 
 echo $ac_n "checking for working vfork""... $ac_c" 1>&6
-echo "configure:8671: checking for working vfork" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8674 "configure"
+echo "configure:8728: checking for working vfork" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8731 "configure"
 #include "confdefs.h"
 /* Thanks to Paul Eggert for this test.  */
 #include <stdio.h>
@@ -8765,7 +8822,7 @@
   }
 }
 EOF
-if { (eval echo configure:8769: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:8826: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
 then
   ac_cv_func_vfork_works=yes
 else
@@ -8790,10 +8847,10 @@
 
 
 echo $ac_n "checking for working strcoll""... $ac_c" 1>&6
-echo "configure:8794: checking for working strcoll" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8797 "configure"
+echo "configure:8851: checking for working strcoll" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8854 "configure"
 #include "confdefs.h"
 #include <string.h>
 main ()
@@ -8803,7 +8860,7 @@
 	strcoll ("123", "456") >= 0);
 }
 EOF
-if { (eval echo configure:8807: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:8864: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
 then
   ac_cv_func_strcoll_works=yes
 else
@@ -8830,10 +8887,10 @@
 for ac_func in getpgrp
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8834: checking for $ac_func" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8837 "configure"
+echo "configure:8891: checking for $ac_func" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8894 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -8856,7 +8913,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:8860: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8917: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -8884,10 +8941,10 @@
 done
 
 echo $ac_n "checking whether getpgrp takes no argument""... $ac_c" 1>&6
-echo "configure:8888: checking whether getpgrp takes no argument" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8891 "configure"
+echo "configure:8945: checking whether getpgrp takes no argument" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8948 "configure"
 #include "confdefs.h"
 
 /*
@@ -8942,7 +8999,7 @@
 }
 
 EOF
-if { (eval echo configure:8946: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:9003: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
 then
   ac_cv_func_getpgrp_void=yes
 else
@@ -8968,10 +9025,10 @@
 
 
 echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:8972: checking for working mmap" >&5
+echo "configure:9029: checking for working mmap" >&5
 case "$opsys" in ultrix* ) have_mmap=no ;; *)
 cat > conftest.$ac_ext <<EOF
-#line 8975 "configure"
+#line 9032 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <unistd.h>
@@ -9004,7 +9061,7 @@
   return 1;
 }
 EOF
-if { (eval echo configure:9008: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:9065: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
 then
   have_mmap=yes
 else
@@ -9038,15 +9095,15 @@
 
 ac_safe=`echo "termios.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for termios.h""... $ac_c" 1>&6
-echo "configure:9042: checking for termios.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9045 "configure"
+echo "configure:9099: checking for termios.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9102 "configure"
 #include "confdefs.h"
 #include <termios.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9050: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9107: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9089,15 +9146,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:9093: checking for termio.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9096 "configure"
+echo "configure:9150: checking for termio.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9153 "configure"
 #include "confdefs.h"
 #include <termio.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9101: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9158: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9129,10 +9186,10 @@
 
 
 echo $ac_n "checking for socket""... $ac_c" 1>&6
-echo "configure:9133: checking for socket" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9136 "configure"
+echo "configure:9190: checking for socket" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9193 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char socket(); below.  */
@@ -9155,7 +9212,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:9159: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:9216: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_socket=yes"
 else
@@ -9170,15 +9227,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:9174: checking for netinet/in.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9177 "configure"
+echo "configure:9231: checking for netinet/in.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9234 "configure"
 #include "confdefs.h"
 #include <netinet/in.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9182: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9239: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9195,15 +9252,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:9199: checking for arpa/inet.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9202 "configure"
+echo "configure:9256: checking for arpa/inet.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9259 "configure"
 #include "confdefs.h"
 #include <arpa/inet.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9207: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9264: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9228,9 +9285,9 @@
 }
 
       echo $ac_n "checking "for sun_len member in struct sockaddr_un"""... $ac_c" 1>&6
-echo "configure:9232: checking "for sun_len member in struct sockaddr_un"" >&5
+echo "configure:9289: checking "for sun_len member in struct sockaddr_un"" >&5
       cat > conftest.$ac_ext <<EOF
-#line 9234 "configure"
+#line 9291 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -9241,7 +9298,7 @@
 static struct sockaddr_un x; x.sun_len = 1;
 ; return 0; }
 EOF
-if { (eval echo configure:9245: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:9302: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6; { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_SOCKADDR_SUN_LEN
@@ -9259,9 +9316,9 @@
 fi
 rm -f conftest*
       echo $ac_n "checking "for ip_mreq struct in netinet/in.h"""... $ac_c" 1>&6
-echo "configure:9263: checking "for ip_mreq struct in netinet/in.h"" >&5
+echo "configure:9320: checking "for ip_mreq struct in netinet/in.h"" >&5
       cat > conftest.$ac_ext <<EOF
-#line 9265 "configure"
+#line 9322 "configure"
 #include "confdefs.h"
 
 #include <netinet/in.h>
@@ -9270,7 +9327,7 @@
 static struct ip_mreq x;
 ; return 0; }
 EOF
-if { (eval echo configure:9274: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:9331: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6; { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_MULTICAST
@@ -9301,10 +9358,10 @@
 
 
 echo $ac_n "checking for msgget""... $ac_c" 1>&6
-echo "configure:9305: checking for msgget" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9308 "configure"
+echo "configure:9362: checking for msgget" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9365 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char msgget(); below.  */
@@ -9327,7 +9384,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:9331: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:9388: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_msgget=yes"
 else
@@ -9342,15 +9399,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:9346: checking for sys/ipc.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9349 "configure"
+echo "configure:9403: checking for sys/ipc.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9406 "configure"
 #include "confdefs.h"
 #include <sys/ipc.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9354: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9411: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9367,15 +9424,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:9371: checking for sys/msg.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9374 "configure"
+echo "configure:9428: checking for sys/msg.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9431 "configure"
 #include "confdefs.h"
 #include <sys/msg.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:9436: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9413,15 +9470,15 @@
 
 ac_safe=`echo "dirent.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for dirent.h""... $ac_c" 1>&6
-echo "configure:9417: checking for dirent.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9420 "configure"
+echo "configure:9474: checking for dirent.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9477 "configure"
 #include "confdefs.h"
 #include <dirent.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9425: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9482: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9448,15 +9505,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:9452: checking for sys/dir.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9455 "configure"
+echo "configure:9509: checking for sys/dir.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9512 "configure"
 #include "confdefs.h"
 #include <sys/dir.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9460: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9517: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9489,15 +9546,15 @@
 
 ac_safe=`echo "nlist.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for nlist.h""... $ac_c" 1>&6
-echo "configure:9493: checking for nlist.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9496 "configure"
+echo "configure:9550: checking for nlist.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9553 "configure"
 #include "confdefs.h"
 #include <nlist.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9501: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9558: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9527,7 +9584,7 @@
 
 
 echo "checking "for sound support"" 1>&6
-echo "configure:9531: checking "for sound support"" >&5
+echo "configure:9588: checking "for sound support"" >&5
 case "$with_sound" in
   native | both ) with_native_sound=yes;;
   nas    | no   ) with_native_sound=no;;
@@ -9538,15 +9595,15 @@
     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:9542: checking for multimedia/audio_device.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9545 "configure"
+echo "configure:9599: checking for multimedia/audio_device.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9602 "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:9550: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9607: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9594,12 +9651,12 @@
       if test -z "$native_sound_lib"; then
         
 echo $ac_n "checking for ALopenport in -laudio""... $ac_c" 1>&6
-echo "configure:9598: checking for ALopenport in -laudio" >&5
+echo "configure:9655: 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 9603 "configure"
+#line 9660 "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
@@ -9610,7 +9667,7 @@
 ALopenport()
 ; return 0; }
 EOF
-if { (eval echo configure:9614: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:9671: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9641,12 +9698,12 @@
       if test -z "$native_sound_lib"; then
 	
 echo $ac_n "checking for AOpenAudio in -lAlib""... $ac_c" 1>&6
-echo "configure:9645: checking for AOpenAudio in -lAlib" >&5
+echo "configure:9702: 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 9650 "configure"
+#line 9707 "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
@@ -9657,7 +9714,7 @@
 AOpenAudio()
 ; return 0; }
 EOF
-if { (eval echo configure:9661: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:9718: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9695,15 +9752,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:9699: checking for ${dir}/soundcard.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9702 "configure"
+echo "configure:9756: checking for ${dir}/soundcard.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9759 "configure"
 #include "confdefs.h"
 #include <${dir}/soundcard.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9707: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9764: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9773,7 +9830,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 9777 "configure"
+#line 9834 "configure"
 #include "confdefs.h"
 #include <audio/Xtutil.h>
 EOF
@@ -9800,7 +9857,7 @@
 
 if test "$with_tty" = "yes"  ; then
   echo "checking for TTY-related features" 1>&6
-echo "configure:9804: checking for TTY-related features" >&5
+echo "configure:9861: checking for TTY-related features" >&5
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_TTY
 EOF
@@ -9816,12 +9873,12 @@
     if test -z "$with_ncurses"; then
     
 echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6
-echo "configure:9820: checking for tgetent in -lncurses" >&5
+echo "configure:9877: 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 9825 "configure"
+#line 9882 "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
@@ -9832,7 +9889,7 @@
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:9836: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:9893: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9865,15 +9922,15 @@
 
     ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6
-echo "configure:9869: checking for ncurses/curses.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9872 "configure"
+echo "configure:9926: checking for ncurses/curses.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9929 "configure"
 #include "confdefs.h"
 #include <ncurses/curses.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9877: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9934: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9895,15 +9952,15 @@
 
     ac_safe=`echo "ncurses/term.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ncurses/term.h""... $ac_c" 1>&6
-echo "configure:9899: checking for ncurses/term.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9902 "configure"
+echo "configure:9956: checking for ncurses/term.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9959 "configure"
 #include "confdefs.h"
 #include <ncurses/term.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9907: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9964: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9933,15 +9990,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:9937: checking for ncurses/curses.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9940 "configure"
+echo "configure:9994: checking for ncurses/curses.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9997 "configure"
 #include "confdefs.h"
 #include <ncurses/curses.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9945: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10002: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9976,12 +10033,12 @@
 	for lib in curses termlib termcap; do
 	  
 echo $ac_n "checking for tgetent in -l$lib""... $ac_c" 1>&6
-echo "configure:9980: checking for tgetent in -l$lib" >&5
+echo "configure:10037: 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 9985 "configure"
+#line 10042 "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
@@ -9992,7 +10049,7 @@
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:9996: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10023,12 +10080,12 @@
       else
 	
 echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6
-echo "configure:10027: checking for tgetent in -lcurses" >&5
+echo "configure:10084: 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 10032 "configure"
+#line 10089 "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
@@ -10039,7 +10096,7 @@
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:10043: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10100: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10057,12 +10114,12 @@
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6
-echo "configure:10061: checking for tgetent in -ltermcap" >&5
+echo "configure:10118: 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 10066 "configure"
+#line 10123 "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
@@ -10073,7 +10130,7 @@
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:10077: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10134: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10121,15 +10178,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:10125: checking for gpm.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10128 "configure"
+echo "configure:10182: checking for gpm.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10185 "configure"
 #include "confdefs.h"
 #include <gpm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10133: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10190: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -10152,12 +10209,12 @@
  }
   test -z "$with_gpm" && { 
 echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
-echo "configure:10156: checking for Gpm_Open in -lgpm" >&5
+echo "configure:10213: 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 10161 "configure"
+#line 10218 "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
@@ -10168,7 +10225,7 @@
 Gpm_Open()
 ; return 0; }
 EOF
-if { (eval echo configure:10172: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10229: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10217,22 +10274,22 @@
 
 
 echo "checking for database support" 1>&6
-echo "configure:10221: checking for database support" >&5
+echo "configure:10278: checking for database support" >&5
 
 if test "$with_database_gnudbm" != "no"; then
   for ac_hdr in ndbm.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:10228: checking for $ac_hdr" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10231 "configure"
+echo "configure:10285: checking for $ac_hdr" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10288 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10236: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10293: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -10264,12 +10321,12 @@
   if test "$have_ndbm_h" = "yes"; then
     
 echo $ac_n "checking for dbm_open in -lgdbm""... $ac_c" 1>&6
-echo "configure:10268: checking for dbm_open in -lgdbm" >&5
+echo "configure:10325: 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 10273 "configure"
+#line 10330 "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
@@ -10280,7 +10337,7 @@
 dbm_open()
 ; return 0; }
 EOF
-if { (eval echo configure:10284: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10341: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10303,10 +10360,10 @@
   fi
   if test "$with_database_gnudbm" != "yes"; then
     echo $ac_n "checking for dbm_open""... $ac_c" 1>&6
-echo "configure:10307: checking for dbm_open" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10310 "configure"
+echo "configure:10364: checking for dbm_open" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10367 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char dbm_open(); below.  */
@@ -10329,7 +10386,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:10333: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10390: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_dbm_open=yes"
 else
@@ -10365,10 +10422,10 @@
 
 if test "$with_database_dbm" != "no"; then
   echo $ac_n "checking for dbm_open""... $ac_c" 1>&6
-echo "configure:10369: checking for dbm_open" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10372 "configure"
+echo "configure:10426: checking for dbm_open" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10429 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char dbm_open(); below.  */
@@ -10391,7 +10448,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:10395: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10452: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_dbm_open=yes"
 else
@@ -10412,12 +10469,12 @@
   if test "$need_libdbm" != "no"; then
     
 echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6
-echo "configure:10416: checking for dbm_open in -ldbm" >&5
+echo "configure:10473: 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 10421 "configure"
+#line 10478 "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
@@ -10428,7 +10485,7 @@
 dbm_open()
 ; return 0; }
 EOF
-if { (eval echo configure:10432: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10465,10 +10522,10 @@
 
 if test "$with_database_berkdb" != "no"; then
   echo $ac_n "checking for dbopen""... $ac_c" 1>&6
-echo "configure:10469: checking for dbopen" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10472 "configure"
+echo "configure:10526: checking for dbopen" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10529 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char dbopen(); below.  */
@@ -10491,7 +10548,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:10495: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10552: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_dbopen=yes"
 else
@@ -10512,12 +10569,12 @@
   if test "$need_libdb" != "no"; then
     
 echo $ac_n "checking for dbopen in -ldb""... $ac_c" 1>&6
-echo "configure:10516: checking for dbopen in -ldb" >&5
+echo "configure:10573: checking for dbopen in -ldb" >&5
 ac_lib_var=`echo db'_'dbopen | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldb "
 cat > conftest.$ac_ext <<EOF
-#line 10521 "configure"
+#line 10578 "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
@@ -10528,7 +10585,7 @@
 dbopen()
 ; return 0; }
 EOF
-if { (eval echo configure:10532: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10589: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10552,7 +10609,7 @@
   if test "$with_database_berkdb" = "yes"; then
     for path in "db/db.h" "db.h"; do
 cat > conftest.$ac_ext <<EOF
-#line 10556 "configure"
+#line 10613 "configure"
 #include "confdefs.h"
 #ifdef HAVE_INTTYPES_H
 #define __BIT_TYPES_DEFINED__
@@ -10570,7 +10627,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:10574: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10631: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   db_h_path="$path"; break
 else
@@ -10621,12 +10678,12 @@
 if test "$with_socks" = "yes"; then
   
 echo $ac_n "checking for SOCKSinit in -lsocks""... $ac_c" 1>&6
-echo "configure:10625: checking for SOCKSinit in -lsocks" >&5
+echo "configure:10682: 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 10630 "configure"
+#line 10687 "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
@@ -10637,7 +10694,7 @@
 SOCKSinit()
 ; return 0; }
 EOF
-if { (eval echo configure:10641: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10698: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10694,15 +10751,15 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:10698: checking for $ac_hdr" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10701 "configure"
+echo "configure:10755: checking for $ac_hdr" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10758 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10706: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10763: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -10733,12 +10790,12 @@
 
 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { 
 echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:10737: checking for dlopen in -ldl" >&5
+echo "configure:10794: 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 10742 "configure"
+#line 10799 "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
@@ -10749,7 +10806,7 @@
 dlopen()
 ; return 0; }
 EOF
-if { (eval echo configure:10753: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10810: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10778,12 +10835,12 @@
  }
 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { 
 echo $ac_n "checking for _dlopen in -lc""... $ac_c" 1>&6
-echo "configure:10782: checking for _dlopen in -lc" >&5
+echo "configure:10839: 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 10787 "configure"
+#line 10844 "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
@@ -10794,7 +10851,7 @@
 _dlopen()
 ; return 0; }
 EOF
-if { (eval echo configure:10798: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10855: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10823,12 +10880,12 @@
  }
 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { 
 echo $ac_n "checking for dlopen in -lc""... $ac_c" 1>&6
-echo "configure:10827: checking for dlopen in -lc" >&5
+echo "configure:10884: 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 10832 "configure"
+#line 10889 "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
@@ -10839,7 +10896,7 @@
 dlopen()
 ; return 0; }
 EOF
-if { (eval echo configure:10843: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10868,12 +10925,12 @@
  }
 test -z "$with_shlib" && { 
 echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
-echo "configure:10872: checking for shl_load in -ldld" >&5
+echo "configure:10929: 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 10877 "configure"
+#line 10934 "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
@@ -10884,7 +10941,7 @@
 shl_load()
 ; return 0; }
 EOF
-if { (eval echo configure:10888: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10945: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10913,12 +10970,12 @@
  }
 test -z "$with_shlib" && { 
 echo $ac_n "checking for dld_init in -ldld""... $ac_c" 1>&6
-echo "configure:10917: checking for dld_init in -ldld" >&5
+echo "configure:10974: 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 10922 "configure"
+#line 10979 "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
@@ -10929,7 +10986,7 @@
 dld_init()
 ; return 0; }
 EOF
-if { (eval echo configure:10933: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10990: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10979,7 +11036,7 @@
 dll_oflags="-o "
 
 echo $ac_n "checking how to build a shared library""... $ac_c" 1>&6
-echo "configure:10983: checking how to build a shared library" >&5
+echo "configure:11040: checking how to build a shared library" >&5
 case `uname -rs` in
 	UNIX_SV*|UNIX_System_V*)
 		dll_lflags="-G"
@@ -11076,11 +11133,11 @@
 fi
 
 cat > conftest.$ac_ext <<EOF
-#line 11080 "configure"
+#line 11137 "configure"
 #include "confdefs.h"
 int main(int c,char *v[]){return 0;}
 EOF
-if { (eval echo configure:11084: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:11141: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
 then
   :
 else
@@ -11247,16 +11304,90 @@
 
 
 
-
-
-
-
-
-
-
-
-
-
+INFODIR=$infodir
+while true; do
+  case "$INFODIR" in
+    *\$* ) eval "INFODIR=$INFODIR" ;;
+    *) break ;;
+  esac
+done
+
+
+
+
+INFOPATH=$infopath
+while true; do
+  case "$INFOPATH" in
+    *\$* ) eval "INFOPATH=$INFOPATH" ;;
+    *) break ;;
+  esac
+done
+
+
+
+
+PACKAGE_PATH=$package_path
+while true; do
+  case "$PACKAGE_PATH" in
+    *\$* ) eval "PACKAGE_PATH=$PACKAGE_PATH" ;;
+    *) break ;;
+  esac
+done
+
+
+
+
+LISPDIR=$lispdir
+while true; do
+  case "$LISPDIR" in
+    *\$* ) eval "LISPDIR=$LISPDIR" ;;
+    *) break ;;
+  esac
+done
+
+
+
+
+SITELISPDIR=$sitelispdir
+while true; do
+  case "$SITELISPDIR" in
+    *\$* ) eval "SITELISPDIR=$SITELISPDIR" ;;
+    *) break ;;
+  esac
+done
+
+
+
+
+ETCDIR=$etcdir
+while true; do
+  case "$ETCDIR" in
+    *\$* ) eval "ETCDIR=$ETCDIR" ;;
+    *) break ;;
+  esac
+done
+
+
+
+
+LOCKDIR=$lockdir
+while true; do
+  case "$LOCKDIR" in
+    *\$* ) eval "LOCKDIR=$LOCKDIR" ;;
+    *) break ;;
+  esac
+done
+
+
+
+
+ARCHLIBDIR=$archlibdir
+while true; do
+  case "$ARCHLIBDIR" in
+    *\$* ) eval "ARCHLIBDIR=$ARCHLIBDIR" ;;
+    *) break ;;
+  esac
+done
 
 
 
@@ -11663,7 +11794,7 @@
     file="src/Makefile.in:src/Makefile.in.in:src/depend"
   ac_output_files="${ac_output_files+$ac_output_files }$file"
 done
-ac_output_files="$ac_output_files lib-src/config.values"
+ac_output_files="$ac_output_files src/paths.h.in lib-src/config.values"
 
 trap '' 1 2 15
 
@@ -11720,7 +11851,7 @@
 ac_given_srcdir=$srcdir
 ac_given_INSTALL="$INSTALL"
 
-trap 'rm -fr `echo "$ac_output_files src/config.h lwlib/config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+trap 'rm -fr `echo "$ac_output_files src/config.h src/paths.h lwlib/config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
 EOF
 cat >> $CONFIG_STATUS <<EOF
 
@@ -11769,6 +11900,7 @@
 s%@X_LIBS@%$X_LIBS%g
 s%@X_EXTRA_LIBS@%$X_EXTRA_LIBS%g
 s%@libs_xauth@%$libs_xauth%g
+s%@dnd_objs@%$dnd_objs%g
 s%@lwlib_objs@%$lwlib_objs%g
 s%@ALLOCA@%$ALLOCA%g
 s%@dll_ld@%$dll_ld%g
@@ -11785,20 +11917,29 @@
 s%@srcdir@%$srcdir%g
 s%@pkgdir@%$pkgdir%g
 s%@statedir@%$statedir%g
-s%@infodir_user_defined@%$infodir_user_defined%g
+s%@INFODIR_USER_DEFINED@%$INFODIR_USER_DEFINED%g
+s%@INFODIR@%$INFODIR%g
 s%@infopath@%$infopath%g
+s%@INFOPATH_USER_DEFINED@%$INFOPATH_USER_DEFINED%g
+s%@INFOPATH@%$INFOPATH%g
 s%@package_path@%$package_path%g
-s%@package_path_user_defined@%$package_path_user_defined%g
+s%@PACKAGE_PATH_USER_DEFINED@%$PACKAGE_PATH_USER_DEFINED%g
+s%@PACKAGE_PATH@%$PACKAGE_PATH%g
 s%@lispdir@%$lispdir%g
-s%@lispdir_user_defined@%$lispdir_user_defined%g
+s%@LISPDIR_USER_DEFINED@%$LISPDIR_USER_DEFINED%g
+s%@LISPDIR@%$LISPDIR%g
 s%@sitelispdir@%$sitelispdir%g
-s%@sitelispdir_user_defined@%$sitelispdir_user_defined%g
+s%@SITELISPDIR_USER_DEFINED@%$SITELISPDIR_USER_DEFINED%g
+s%@SITELISPDIR@%$SITELISPDIR%g
 s%@etcdir@%$etcdir%g
-s%@etcdir_user_defined@%$etcdir_user_defined%g
+s%@ETCDIR_USER_DEFINED@%$ETCDIR_USER_DEFINED%g
+s%@ETCDIR@%$ETCDIR%g
 s%@lockdir@%$lockdir%g
-s%@lockdir_user_defined@%$lockdir_user_defined%g
+s%@LOCKDIR_USER_DEFINED@%$LOCKDIR_USER_DEFINED%g
+s%@LOCKDIR@%$LOCKDIR%g
 s%@archlibdir@%$archlibdir%g
-s%@archlibdir_user_defined@%$archlibdir_user_defined%g
+s%@ARCHLIBDIR_USER_DEFINED@%$ARCHLIBDIR_USER_DEFINED%g
+s%@ARCHLIBDIR@%$ARCHLIBDIR%g
 s%@docdir@%$docdir%g
 s%@bitmapdir@%$bitmapdir%g
 s%@extra_objs@%$extra_objs%g
@@ -11941,7 +12082,7 @@
 if test "${CONFIG_HEADERS+set}" != set; then
 EOF
 cat >> $CONFIG_STATUS <<EOF
-  CONFIG_HEADERS="src/config.h lwlib/config.h"
+  CONFIG_HEADERS="src/config.h src/paths.h lwlib/config.h"
 EOF
 cat >> $CONFIG_STATUS <<\EOF
 fi
--- a/configure.in	Mon Aug 13 10:28:54 2007 +0200
+++ b/configure.in	Mon Aug 13 10:29:42 2007 +0200
@@ -289,7 +289,7 @@
 ac_max_here_lines=12
 ])dnl
 AC_INIT(src/lisp.h)dnl
-AC_CONFIG_HEADER(src/config.h lwlib/config.h)
+AC_CONFIG_HEADER(src/config.h src/paths.h lwlib/config.h)
 dnl Remove any more than one leading "." element from the path name.
 dnl If we do not remove them, then another "./" will be prepended to
 dnl the file name each time we use config.status, and the program name
@@ -324,24 +324,14 @@
 libdir='${exec_prefix}/lib'
 mandir='${prefix}/man/man1'
 infodir='${datadir}/xemacs-${version}/info'
-infodir_user_defined='no'
-dnl BETA NOTE: ! Will you please add to this list?  Nonexistent dirs
-dnl are dropped from the list at runtime, so it is safe to add
-dnl directories to this list that you don't have at home.
-infopath='/usr/local/lib/texmf/doc/info:/usr/local/lib/texmf/info:/usr/lib/texmf/doc/info:/usr/lib/texmf/info:/usr/local/info:/usr/info'
+infopath=''
 lispdir='${datadir}/xemacs-${version}/lisp'
-lispdir_user_defined='no'
 sitelispdir='${datadir}/xemacs/site-lisp'
-sitelispdir_user_defined='no'
 pkgdir='${datadir}/xemacs-${version}/lisp'
-package_path='~/.xemacs::${datadir}/xemacs-${version}/mule-packages:${datadir}/xemacs/mule-packages:${datadir}/xemacs-${version}/packages:${datadir}/xemacs/packages'
-package_path_user_defined='no'
+package_path=''
 etcdir='${datadir}/xemacs-${version}/etc'
-etcdir_user_defined='no'
 lockdir='${statedir}/xemacs/lock'
-lockdir_user_defined='no'
 archlibdir='${libdir}/xemacs-${version}/${configuration}'
-archlibdir_user_defined='no'
 with_site_lisp='no'
 with_menubars=''
 with_scrollbars=''
@@ -433,16 +423,16 @@
         ;;
       esac
 
+      dnl translate "-" in option string to "_"
+      optname="$opt"
+      opt="`echo '' $opt | sed -e 's:^ ::' | tr - _`"
+
       dnl Support --without-FOO as a synonym for --with-FOO=no
       case "${valomitted}-${opt}" in yes-without_* )
 	opt=`echo $opt | sed 's/without/with/'`
 	valomitted="no" val="no" ;;
       esac
 
-      dnl translate "-" in option string to "_"
-      optname="$opt"
-      opt="`echo '' $opt | sed -e 's:^ ::' | tr - _`"
-
       dnl Process the option.
       case "$opt" in
 
@@ -706,14 +696,15 @@
            dnl of etcdir and lispdir.  Changing statedir will change the
            dnl default value of lockdir.
            case "$opt" in
-             lispdir ) lispdir_user_defined=yes ;;
-             sitelispdir ) sitelispdir_user_defined=yes ;;
-             etcdir  )  etcdir_user_defined=yes ;;
-             infodir ) infodir_user_defined=yes ;;
-             package_path ) package_path_user_defined=yes ;;
-             datadir ) lispdir_user_defined=yes etcdir_user_defined=yes ;;
-             statedir | lockdir ) lockdir_user_defined=yes ;;
-             exec_prefix | libdir | archlibdir ) archlibdir_user_defined=yes ;;
+             lispdir ) AC_DEFINE(LISPDIR_USER_DEFINED) ;;
+             sitelispdir ) AC_DEFINE(SITELISPDIR_USER_DEFINED) ;;
+             etcdir  )  AC_DEFINE(ETCDIR_USER_DEFINED) ;;
+             infodir ) AC_DEFINE(INFODIR_USER_DEFINED) ;;
+             infopath ) AC_DEFINE(INFOPATH_USER_DEFINED) ;;
+             package_path ) AC_DEFINE(PACKAGE_PATH_USER_DEFINED) ;;
+             datadir ) AC_DEFINE(ETCDIR_USER_DEFINED) ;;
+             statedir | lockdir ) AC_DEFINE(LOCKDIR_USER_DEFINED) ;;
+             exec_prefix | libdir | archlibdir ) AC_DEFINE(ARCHLIBDIR_USER_DEFINED) ;;
            esac
 	;;
 
@@ -763,11 +754,6 @@
 test -n "$libs"     && LIBS="$libs"
 test -n "$ldflags"  && LDFLAGS="$ldflags"
 
-dnl Personal settings shouldn't affect the configuration process.
-dnl if test "$infopath_user_defined" = "no" -a -n "$INFOPATH" ; then
-dnl   infopath="$INFOPATH"
-dnl fi
-
 dnl Get the arguments back.  See the diatribe on Shell Magic above.
 eval set x "$quoted_arguments"; shift
 
@@ -1746,7 +1732,7 @@
 dnl Feed s&m crud to src/Makefile
 
 dnl Linux/powerpc needs the following magic for some reason
-test "$machine$opsys" = "powerpclinux" && start_flags="-T $srcdir/ppc.ldscript"
+test "$machine$opsys" = "powerpclinux" && start_flags="-T $srcdir/src/ppc.ldscript"
 
 if test "$unexec" = "unexaix.o"; then
 dnl AIX needs various hacks to make static linking work.
@@ -2341,15 +2327,16 @@
   dnl Problem with the MIT distribution of X on AIX
   if test "$unexec" = "unexaix.o" -a "$x11_release" = "6"; then
     dnl X11R6 requires thread-safe code on AIX for some reason
-    case "$CC" in
-      "xlc" ) CC="xlc_r" ;;
-      "xlC" ) CC="xlC_r" ;;
-      "cc"  ) CC="cc_r" ;;
-      "gcc" )
-        XE_PREPEND(-mthreads, X_CFLAGS)
-        XE_PREPEND(-mthreads, libs_x)
-	;;
-    esac
+    if test "$GCC" = "yes"; then
+      XE_PREPEND(-mthreads, X_CFLAGS)
+      XE_PREPEND(-mthreads, libs_x)
+    else
+      case "$CC" in
+        "xlc" ) CC="xlc_r" ;;
+        "xlC" ) CC="xlC_r" ;;
+        "cc"  ) CC="cc_r" ;;
+      esac
+    fi
   fi
 
 fi dnl $with_x11 = yes
@@ -2467,9 +2454,11 @@
 test -z "$with_offix" && with_offix=yes
 if test "$with_offix" = "yes"; then
   AC_DEFINE(HAVE_OFFIX_DND)
-  XE_ADD_OBJS(offix.o)
+  XE_APPEND(offix.o, dnd_objs)
 fi
 
+AC_SUBST(dnd_objs)
+
 dnl Autodetect tooltalk
 test "$with_cde" = "yes" && with_tooltalk=yes # CDE requires tooltalk
 if test "$with_tooltalk" != "no" ; then
@@ -2617,7 +2606,7 @@
 #if PNG_LIBPNG_VER >= 96
 yes
 #endif
-], [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no); have_png=no])
+], [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no); with_png=no])
   fi
   test -z "$with_png" && { AC_CHECK_FUNC(pow,                  ,with_png=no) }
   test -z "$with_png" && { AC_CHECK_LIB(png, png_read_image,[:],with_png=no) }
@@ -3487,11 +3476,11 @@
 dnl There are no more compile tests; remove the core they created.
 rm -f core
 
-dnl -------------------------------------
-dnl Substitute into Makefile and config.h
-dnl -------------------------------------
-
-dnl what sort of things to edit into Makefile and config.h.
+dnl ----------------------------------------------
+dnl Substitute into Makefile, config.h and paths.h
+dnl ----------------------------------------------
+
+dnl what sort of things to edit into Makefile, config.h and paths.h
 dnl configuration here uncanonicalized to avoid exceeding size limits.
 
 AC_SUBST(version)
@@ -3506,21 +3495,96 @@
 AC_SUBST(statedir)
 AC_SUBST(libdir)
 AC_SUBST(mandir)
+
 AC_SUBST(infodir)
-AC_SUBST(infodir_user_defined)
+AC_SUBST(INFODIR_USER_DEFINED)
+dnl Yo, Stephen Bourne!  I want to marry you!
+INFODIR=$infodir
+while true; do
+  case "$INFODIR" in
+    *\$* ) eval "INFODIR=$INFODIR" ;;
+    *) break ;;
+  esac
+done
+AC_SUBST(INFODIR)
+
 AC_SUBST(infopath)
+AC_SUBST(INFOPATH_USER_DEFINED)
+INFOPATH=$infopath
+while true; do
+  case "$INFOPATH" in
+    *\$* ) eval "INFOPATH=$INFOPATH" ;;
+    *) break ;;
+  esac
+done
+AC_SUBST(INFOPATH)
+
 AC_SUBST(package_path)
-AC_SUBST(package_path_user_defined)
+AC_SUBST(PACKAGE_PATH_USER_DEFINED)
+PACKAGE_PATH=$package_path
+while true; do
+  case "$PACKAGE_PATH" in
+    *\$* ) eval "PACKAGE_PATH=$PACKAGE_PATH" ;;
+    *) break ;;
+  esac
+done
+AC_SUBST(PACKAGE_PATH)
+
 AC_SUBST(lispdir)
-AC_SUBST(lispdir_user_defined)
+AC_SUBST(LISPDIR_USER_DEFINED)
+LISPDIR=$lispdir
+while true; do
+  case "$LISPDIR" in
+    *\$* ) eval "LISPDIR=$LISPDIR" ;;
+    *) break ;;
+  esac
+done
+AC_SUBST(LISPDIR)
+
 AC_SUBST(sitelispdir)
-AC_SUBST(sitelispdir_user_defined)
+AC_SUBST(SITELISPDIR_USER_DEFINED)
+SITELISPDIR=$sitelispdir
+while true; do
+  case "$SITELISPDIR" in
+    *\$* ) eval "SITELISPDIR=$SITELISPDIR" ;;
+    *) break ;;
+  esac
+done
+AC_SUBST(SITELISPDIR)
+
 AC_SUBST(etcdir)
-AC_SUBST(etcdir_user_defined)
+AC_SUBST(ETCDIR_USER_DEFINED)
+ETCDIR=$etcdir
+while true; do
+  case "$ETCDIR" in
+    *\$* ) eval "ETCDIR=$ETCDIR" ;;
+    *) break ;;
+  esac
+done
+AC_SUBST(ETCDIR)
+
 AC_SUBST(lockdir)
-AC_SUBST(lockdir_user_defined)
+AC_SUBST(LOCKDIR_USER_DEFINED)
+LOCKDIR=$lockdir
+while true; do
+  case "$LOCKDIR" in
+    *\$* ) eval "LOCKDIR=$LOCKDIR" ;;
+    *) break ;;
+  esac
+done
+AC_SUBST(LOCKDIR)
+
 AC_SUBST(archlibdir)
-AC_SUBST(archlibdir_user_defined)
+AC_SUBST(ARCHLIBDIR_USER_DEFINED)
+ARCHLIBDIR=$archlibdir
+while true; do
+  case "$ARCHLIBDIR" in
+    *\$* ) eval "ARCHLIBDIR=$ARCHLIBDIR" ;;
+    *) break ;;
+  esac
+done
+AC_SUBST(ARCHLIBDIR)
+
 AC_SUBST(docdir)
 AC_SUBST(bitmapdir)
 AC_SUBST(extra_objs)
@@ -3772,7 +3836,7 @@
     file="src/Makefile.in:src/Makefile.in.in:src/depend"
   ac_output_files="${ac_output_files+$ac_output_files }$file"
 done
-ac_output_files="$ac_output_files lib-src/config.values"
+ac_output_files="$ac_output_files src/paths.h.in lib-src/config.values"
 
 AC_OUTPUT($ac_output_files,
 [for dir in $MAKE_SUBDIR; do
--- a/configure.usage	Mon Aug 13 10:28:54 2007 +0200
+++ b/configure.usage	Mon Aug 13 10:29:42 2007 +0200
@@ -133,18 +133,21 @@
 --with-site-lisp        Allow for a site-lisp directory in the XEmacs hierarchy 
 			searched before the installation packages.
 --package-path=PATH     Directories to search for packages to dump with xemacs.
-                        Defaults to
-   `~/.xemacs::/usr/local/lib/xemacs-${version}/mule-packages:/usr/local/lib/xemacs/mule-packages:/usr/local/lib/xemacs-${version}/packages:/usr/local/lib/xemacs/packages'.
-	                Components before the double colon (::) will not
-                        be seen at dump time.  They will also show up
-                        as the first thing in the various paths.
+                        PATH splits into three parts separated
+                        by double colons (::), an early, a late, and a last part,
+                        corresponding to their position in the various
+                        system paths:  The early part is always first, 
+                        the late part somewhere in the middle, and the 
+                        last part at the very back.
+                        Only the late part gets seen at dump time.
+                        If PATH has only one component, that component 
+                        is late.
+                        If PATH has two components, the first is
+                        early, the second is late.
 --infodir=DIR		Directory to install the XEmacs Info manuals and dir in.
-    Defaults to: `'.
 --infopath=PATH		Directories to search for Info documents, info dir
 			and localdir files in case run-time searching
                         for them fails.
-    Defaults to the value of:
-    `/usr/local/lib/texmf/doc/info:/usr/local/lib/texmf/info:/usr/lib/texmf/doc/info:/usr/lib/texmf/info:/usr/local/info:/usr/info'.
 
 Internationalization options:
 
--- a/etc/NEWS	Mon Aug 13 10:28:54 2007 +0200
+++ b/etc/NEWS	Mon Aug 13 10:29:42 2007 +0200
@@ -29,12 +29,12 @@
     particular version is implied, "Emacs" will be used.
 
 
-* Changes in XEmacs 20.5
+* Changes in XEmacs 21.0
 ========================
 
 ** XEmacs has been unbundled into constituent installable packages.
-
-#### Document me, please.
+See the file `etc/PACKAGES' in the distribution for a full
+description.
 
 ** Using the new `-private' option, you can make XEmacs use a private
 colormap.
@@ -74,18 +74,6 @@
 customization buffer shows all the customizable options for which
 Emacs versions of changes are recorded.
 
-** defcustom now accepts the keyword `:version'.  Use this to specify
-in which version of Emacs a certain variable's default value changed.
-For example,
-
-   (defcustom foo-max 34 "*Maximum number of foo's allowed."
-     :type 'integer
-     :group 'foo
-     :version "20.5")
-
-This information is used to control the customize-changed-options
-command.
-
 ** The new command `add-log-convert' can be used to convert the
 old-style (pre-20.3) ChangeLog buffers to new style, for
 consistency.  A reminder: if you wish to revert to old-style
@@ -94,6 +82,8 @@
 
 ** XEmacs/Mule (internationalization) changes.
 
+*** Mule support now works on TTY's.  #### What, where, how?
+
 *** Egg/SJ3 input method is now officially supported.  Quail and
 Egg/Skk have been available through the generalized Leim since 20.3.
 
@@ -115,13 +105,14 @@
 use the new mode, Paragraph Indent Text mode.
 
 
-* Lisp and internal changes in XEmacs 20.5
+* Lisp and internal changes in XEmacs 21.0
 ==========================================
 
-** There is initial support for 31-bit integers in elisp (normally,
-integers are only 28 bits wide on 32-bit machines.)  Compile with
--DUSE_MINIMAL_TAGBITS to test.  With this change, the maximum buffer
-size on 32-bit machines is bumped from 128M to 1G.
+** It is now possible to build XEmacs with support for 31-bit Lisp
+integers (normally, Lisp integers are only 28 bits wide on 32-bit
+machines.)  Configure with --use-minimal-tagbits to test.  With this
+change, the maximum buffer size on 32-bit machines is bumped from 128M
+to 1G.  This setting will be the default in a future XEmacs version.
 
 ** The XEmacs hashtables now have a consistent read/print syntax.
 This means that a hashtable will be readably printed in a
@@ -161,12 +152,42 @@
 ** The new `lwarn' function, analogous to `lmessage', allows printing
 a formatted warning, with a non-default CLASS or LABEL.
 
+** Specifiers and symbols whose value is a specifier are now allowed
+as modeline specifications.  #### Provide an example.
+
+** defcustom now accepts the keyword `:version'.  Use this to specify
+in which version of Emacs a certain variable's default value changed.
+For example,
+
+   (defcustom foo-max 34 "*Maximum number of foo's allowed."
+     :type 'integer
+     :group 'foo
+     :version "20.5")
+
+This information is used to control the customize-changed-options
+command.
+
 ** The line number tracking in modeline is now efficient, even for
 very large buffers.  This is achieved by caching the line numbers of
 recent buffer positions, and reusing them.  This cache is used only in
 the buffers where `line-number-mode' is in effect.
 
-** When the new GNU Malloc aka Doug Lea Malloc is available, it will be used.
+** When the new GNU Malloc aka Doug Lea Malloc is available, it will
+be used.  This should result in better performance on Linux systems
+with libc6.
+
+** The code XEmacs uses to assemble its various paths into the directory
+   hierarchy has been completely rewritten to support the package system.
+
+*** Since site-lisp is now off by default, the variable `site-directory'
+    is now obsolete.  Code that depends on its value is probably wrong.
+    In a default setup, it is set to nil.
+
+*** `Info-default-directory-list' is obsolete.
+    It never served any useful function anyway.
+
+    If you want to change the path which XEmacs uses to search for
+    info files, set `Info-directory-list' instead.
 
 
 * Changes in XEmacs 20.4
--- a/lib-src/config.values.in	Mon Aug 13 10:28:54 2007 +0200
+++ b/lib-src/config.values.in	Mon Aug 13 10:29:42 2007 +0200
@@ -16,23 +16,39 @@
 ;;; (These are used in Makefiles)
 
 ALLOCA "@ALLOCA@"
+ARCHLIBDIR "@ARCHLIBDIR@"
+ARCHLIBDIR_USER_DEFINED "@ARCHLIBDIR_USER_DEFINED@"
 CC "@CC@"
 CFLAGS "@CFLAGS@"
 CPP "@CPP@"
 CPPFLAGS "@CPPFLAGS@"
 CXXFLAGS "@CXXFLAGS@"
 DEFS "@DEFS@"
+ETCDIR "@ETCDIR@"
+ETCDIR_USER_DEFINED "@ETCDIR_USER_DEFINED@"
+INFODIR "@INFODIR@"
+INFODIR_USER_DEFINED "@INFODIR_USER_DEFINED@"
+INFOPATH "@INFOPATH@"
+INFOPATH_USER_DEFINED "@INFOPATH_USER_DEFINED@"
 INSTALL "@INSTALL@"
 INSTALL_ARCH_DEP_SUBDIR "@INSTALL_ARCH_DEP_SUBDIR@"
 INSTALL_DATA "@INSTALL_DATA@"
 INSTALL_PROGRAM "@INSTALL_PROGRAM@"
 LDFLAGS "@LDFLAGS@"
 LIBS "@LIBS@"
+LISPDIR "@LISPDIR@"
+LISPDIR_USER_DEFINED "@LISPDIR_USER_DEFINED@"
 LN_S "@LN_S@"
+LOCKDIR "@LOCKDIR@"
+LOCKDIR_USER_DEFINED "@LOCKDIR_USER_DEFINED@"
 MAKE_SUBDIR "@MAKE_SUBDIR@"
+PACKAGE_PATH "@PACKAGE_PATH@"
+PACKAGE_PATH_USER_DEFINED "@PACKAGE_PATH_USER_DEFINED@"
 RANLIB "@RANLIB@"
 RECURSIVE_MAKE "@RECURSIVE_MAKE@"
 SET_MAKE "@SET_MAKE@"
+SITELISPDIR "@SITELISPDIR@"
+SITELISPDIR_USER_DEFINED "@SITELISPDIR_USER_DEFINED@"
 SRC_SUBDIR_DEPS "@SRC_SUBDIR_DEPS@"
 SUBDIR_MAKEFILES "@SUBDIR_MAKEFILES@"
 X_CFLAGS "@X_CFLAGS@"
@@ -41,7 +57,6 @@
 X_PRE_LIBS "@X_PRE_LIBS@"
 YACC "@YACC@"
 archlibdir "@archlibdir@"
-archlibdir_user_defined "@archlibdir_user_defined@"
 bindir "@bindir@"
 bitmapdir "@bitmapdir@"
 blddir "@blddir@"
@@ -56,15 +71,14 @@
 dll_ld "@dll_ld@"
 dll_lflags "@dll_lflags@"
 dll_oflags "@dll_oflags@"
+dnd_objs "@dnd_objs@"
 docdir "@docdir@"
 dynodump_arch "@dynodump_arch@"
 etcdir "@etcdir@"
-etcdir_user_defined "@etcdir_user_defined@"
 exec_prefix "@exec_prefix@"
 extra_objs "@extra_objs@"
 includedir "@includedir@"
 infodir "@infodir@"
-infodir_user_defined "@infodir_user_defined@"
 infopath "@infopath@"
 internal_makefile_list "@internal_makefile_list@"
 ld "@ld@"
@@ -81,10 +95,8 @@
 libexecdir "@libexecdir@"
 libs_xauth "@libs_xauth@"
 lispdir "@lispdir@"
-lispdir_user_defined "@lispdir_user_defined@"
 localstatedir "@localstatedir@"
 lockdir "@lockdir@"
-lockdir_user_defined "@lockdir_user_defined@"
 lwlib_objs "@lwlib_objs@"
 machfile "@machfile@"
 mandir "@mandir@"
@@ -92,14 +104,12 @@
 oldincludedir "@oldincludedir@"
 opsysfile "@opsysfile@"
 package_path "@package_path@"
-package_path_user_defined "@package_path_user_defined@"
 pkgdir "@pkgdir@"
 prefix "@prefix@"
 program_transform_name "@program_transform_name@"
 sbindir "@sbindir@"
 sharedstatedir "@sharedstatedir@"
 sitelispdir "@sitelispdir@"
-sitelispdir_user_defined "@sitelispdir_user_defined@"
 sound_cflags "@sound_cflags@"
 srcdir "@srcdir@"
 start_files "@start_files@"
--- a/lisp/ChangeLog	Mon Aug 13 10:28:54 2007 +0200
+++ b/lisp/ChangeLog	Mon Aug 13 10:29:42 2007 +0200
@@ -1,3 +1,92 @@
+1998-04-10  Kirill M. Katsnelson  <kkm@kis.ru>
+
+	* code-process.el (start-process): Fallback to 'undecided instead
+	of 'binary for process input coding stream.
+
+	* process.el (start-process): Docstring fix.
+
+1998-04-09  Oscar Figueiredo  <Oscar.Figueiredo@di.epfl.ch>
+
+	* info.el (Info-insert-dir): Do not insert temporary dir files
+	in Info-dir-file-attributes
+	(Info-build-dir-anew): Ensure temporary buffer is not read-only
+	(Info-rebuild-dir): Ditto.
+
+1998-04-09  Michael Sperber [Mr. Preprocessor]  <sperber@informatik.uni-tuebingen.de>
+
+	* obsolete.el: Added obsoleteness declarations for
+	`site-directory' and `Info-default-directory-list'.
+
+1998-04-08  Michael Sperber [Mr. Preprocessor]  <sperber@informatik.uni-tuebingen.de>
+
+	* find-paths.el (paths-find-emacs-root): Only look at the
+	executable at the end of the symlink chain for determining the
+	Emacs root.
+
+1998-04-07  Michael Sperber [Mr. Preprocessor]  <sperber@informatik.uni-tuebingen.de>
+
+	* setup-paths.el (paths-construct-info-path): Changed construction
+	to cater to gone default in configure.
+
+	* find-paths.el (paths-uniq-append): Added.
+
+	* packages.el: Rewritten package path construction once again.
+
+	* dump-paths.el, startup.el: Removed package-path as a global
+	variable.
+
+	* package-admin.el (package-admin-add-single-file-package): 
+	(package-admin-add-binary-package): Changed package-path to
+	late-packages.
+
+	* packages.el (packages-split-path): Split path at "/" rather than
+	nil according to change in emacs.c.
+
+1998-04-06  Michael Sperber [Mr. Preprocessor]  <sperber@informatik.uni-tuebingen.de>
+
+	* setup-paths.el (paths-construct-info-path): Changed info path
+	order so that directories come out right.
+	(paths-find-lock-directory): Fixed bug: It used to think
+	configure-lock-directory is a path.
+
+1998-04-06  Jeff Miller <jmiller@smart.net>
+
+	* x-toolbar.el:  Added toolbar-vector-xxxxxx defvars.  Modified
+	initial-toolbar-spec to use new toolbar-vector-xxxxxx defvars.  This
+	eases the use of toolbar-add/kill-item functions. 
+
+1998-04-07  Kirill M. Katsnelson  <kkm@kis.ru>
+
+	* code-files.el (file-coding-system-alist): Commented out
+	loaddefs.el magical treatment.
+
+1998-04-06  Oscar Figueiredo  <Oscar.Figueiredo@di.epfl.ch>
+
+	* info.el (Info-rebuild-outdated-dir): Added new option
+	`conservative' and made it the default
+	(Info-rebuild-dir): Appropriately parse multi-line description
+	strings, and multi-section dir files. Issue warning when dir
+	is rebuilt as temporary
+	(Info-build-dir-anew): Issue warning when dir is built as 
+	temporary
+
+1998-04-04  Kirill M. Katsnelson  <kkm@kis.ru>
+ 
+	* list-mode.el (list-mode-map): Bind highlight motion commands to
+	standard keys left, right, C-b and C-f.
+
+1998-03-29  Karl M. Hegbloom  <karlheg@bittersweet.inetarena.com>
+
+	* files.el (auto-mode-alist): allow .sc for Scheme->C
+
+1998-04-06  SL Baur  <steve@altair.xemacs.org>
+
+	* loadup.el (pureload): Don't quote (garbage-collect).
+
+1998-04-04  SL Baur  <steve@altair.xemacs.org>
+
+	* package-get-base.el: Updated.
+
 1998-04-04  Hrvoje Niksic  <hniksic@srce.hr>
 
 	* isearch-mode.el (isearch-just-started): New variable.
--- a/lisp/code-files.el	Mon Aug 13 10:28:54 2007 +0200
+++ b/lisp/code-files.el	Mon Aug 13 10:29:42 2007 +0200
@@ -58,7 +58,8 @@
 
 (defvar file-coding-system-alist
   '(("\\.elc$" . (binary . binary))
-    ("loaddefs.el$" . (binary . binary))
+;; This must not be neccessary, slb suggests -kkm
+;;  ("loaddefs.el$" . (binary . binary))
     ("\\.tar$" . (binary . binary))
     ("\\.\\(tif\\|tiff\\)$" . (binary . binary))
     ("\\.png$" . (binary . binary))
--- a/lisp/code-process.el	Mon Aug 13 10:28:54 2007 +0200
+++ b/lisp/code-process.el	Mon Aug 13 10:29:42 2007 +0200
@@ -184,7 +184,7 @@
 	     (setq cs-r ret
 		   cs-w ret))))
     (let ((coding-system-for-read
-	   (or coding-system-for-read cs-r))
+	   (or coding-system-for-read cs-r 'undecided))
 	  (coding-system-for-write
 	   (or coding-system-for-write cs-w)))
       (apply 'start-process-internal name buffer program program-args)
--- a/lisp/dump-paths.el	Mon Aug 13 10:28:54 2007 +0200
+++ b/lisp/dump-paths.el	Mon Aug 13 10:29:42 2007 +0200
@@ -32,9 +32,7 @@
 (let ((roots (paths-find-emacs-roots invocation-directory
 				     invocation-name)))
 
-  (setq package-path (packages-find-package-path roots))
-
-  (let ((stuff (packages-find-packages package-path inhibit-package-init)))
+  (let ((stuff (packages-find-packages roots inhibit-package-init)))
     (setq late-packages (car (cdr stuff))))
 
   (setq late-package-load-path (packages-find-package-load-path late-packages))
--- a/lisp/files.el	Mon Aug 13 10:28:54 2007 +0200
+++ b/lisp/files.el	Mon Aug 13 10:29:42 2007 +0200
@@ -1219,7 +1219,7 @@
     ("\\.[sS]\\'" . asm-mode)
     ("[Cc]hange.?[Ll]og?\\(.[0-9]+\\)?\\'" . change-log-mode)
     ("\\$CHANGE_LOG\\$\\.TXT" . change-log-mode)
-    ("\\.scm\\(\\.[0-9]*\\)?\\'" . scheme-mode)
+    ("\\.scm?\\(?:\\.[0-9]*\\)?\\'" . scheme-mode)
     ("\\.e\\'" . eiffel-mode)
     ("\\.mss\\'" . scribe-mode)
     ("\\.m\\([mes]\\|an\\)\\'" . nroff-mode)
--- a/lisp/find-paths.el	Mon Aug 13 10:28:54 2007 +0200
+++ b/lisp/find-paths.el	Mon Aug 13 10:29:42 2007 +0200
@@ -81,26 +81,30 @@
     (file-directory-p (concat directory "lisp"))
     (file-directory-p (concat directory "src")))))
 
+(defun paths-chase-symlink (file-name)
+  "Chase a symlink until the bitter end."
+      (let ((maybe-symlink (file-symlink-p file-name)))
+	(if maybe-symlink
+	    (let* ((directory (file-name-directory file-name))
+		   (destination (expand-file-name maybe-symlink directory)))
+	      (paths-chase-symlink destination))
+	  file-name)))
+
 (defun paths-find-emacs-root
   (invocation-directory invocation-name)
   "Find the run-time root of XEmacs."
-  (let ((maybe-root-1 (file-name-as-directory
-		       (expand-file-name ".." invocation-directory)))
-	(maybe-root-2 (file-name-as-directory
-		       (expand-file-name "../.." invocation-directory))))
-    (cond
-     ((paths-emacs-root-p maybe-root-1)
-      maybe-root-1)
-     ((paths-emacs-root-p maybe-root-2)
-      maybe-root-2)
-     (t
-      (let ((maybe-symlink (file-symlink-p (concat invocation-directory
-						   invocation-name))))
-	(if maybe-symlink
-	    (let* ((symlink (expand-file-name maybe-symlink invocation-directory))
-		   (directory (file-name-directory symlink)))
-	      (paths-find-emacs-root directory invocation-name))
-	  nil))))))
+  (let* ((executable-file-name (paths-chase-symlink
+				(concat invocation-directory
+					invocation-name)))
+	 (executable-directory (file-name-directory executable-file-name))
+	 (maybe-root-1 (file-name-as-directory
+			(expand-file-name ".." executable-directory)))
+	 (maybe-root-2 (file-name-as-directory
+			(expand-file-name "../.." executable-directory))))
+    (or (and (paths-emacs-root-p maybe-root-1)
+	     maybe-root-1)
+	(and (paths-emacs-root-p maybe-root-2)
+	     maybe-root-2))))
 
 (defun paths-construct-emacs-directory (root suffix base)
   "Construct a directory name within the XEmacs hierarchy."
@@ -213,6 +217,16 @@
       (setq directories (cdr directories)))
     (reverse reverse-directories)))
 
+(defun paths-uniq-append (list-1 list-2)
+  "Append LIST-1 and LIST-2, omitting duplicates."
+  (let ((reverse-survivors '()))
+    (while list-2
+      (if (null (member (car list-2) list-1))
+	  (setq reverse-survivors (cons (car list-2) reverse-survivors)))
+      (setq list-2 (cdr list-2)))
+    (append list-1
+	    (reverse reverse-survivors))))
+
 (defun paths-find-site-path (roots base &optional envvar default)
   "Find a path underneath the site hierarchy."
   (paths-find-emacs-path roots "lib/xemacs/" base envvar default))
--- a/lisp/info.el	Mon Aug 13 10:28:54 2007 +0200
+++ b/lisp/info.el	Mon Aug 13 10:29:42 2007 +0200
@@ -387,15 +387,17 @@
   :type '(repeat directory)
   :group 'info)
 
-(defcustom Info-rebuild-outdated-dir 'ask
+(defcustom Info-rebuild-outdated-dir 'conservative
   "*What to do if the `dir' or `localdir' file needs to be (re)built.
 Possible values are:
 `never' never (re)build the `dir' or `localdir' file
 `always' automatically (re)builds when needed
-`ask' asks the user before  (re)building"
+`ask' asks the user before (re)building
+`conservative' asks the user before overwriting existing files"
   :type '(choice (const :tag "never" never)
 		 (const :tag "always" always)
-		 (const :tag "ask" ask))
+		 (const :tag "ask" ask)
+		 (const :tag "conservative" conservative))
   :group 'info)
 
 (defvar Info-emacs-info-file-name "xemacs.info"
@@ -502,6 +504,9 @@
 
 ")
 
+(defvar Info-no-description-string "[No description available]"
+  "Description string for info files that have none")
+
 ;;;###autoload
 (defun info (&optional file)
   "Enter Info, the documentation browser.
@@ -814,9 +819,7 @@
 		      (cons truename
 			    (cons (directory-file-name truename)
 				  dirs-done)))
-		(if (not (string= truename
-				  (file-truename (car Info-directory-list))))
-		    (Info-maybe-update-dir file))
+		(Info-maybe-update-dir file)
 		(setq attrs (file-attributes file))
 		(if (or (setq buf (find-buffer-visiting file))
 			attrs)
@@ -833,9 +836,10 @@
 		      (if (string-match "localdir" (buffer-name))
 			  (setq lbuffers (cons (current-buffer) lbuffers))
 			(setq buffers (cons (current-buffer) buffers)))
-		      (setq Info-dir-file-attributes
-			    (cons (cons file attrs)
-				  Info-dir-file-attributes))))))
+		      (if attrs
+			  (setq Info-dir-file-attributes
+				(cons (cons file attrs)
+				      Info-dir-file-attributes)))))))
 	  (or (cdr dirs) (setq Info-dir-contents-directory (car dirs)))
 	  (setq dirs (cdr dirs))))
       
@@ -974,11 +978,15 @@
     (if (not (find-buffer-visiting file))
 	(if (not (file-exists-p file))
 	    (if (or (eq Info-rebuild-outdated-dir 'always)
+		    (and (eq Info-rebuild-outdated-dir 'conservative)
+			 (not (file-writable-p file)))
 		    (and (eq Info-rebuild-outdated-dir 'ask)
 			 (y-or-n-p (format "No dir file in %s. Rebuild now ? " (file-name-directory file)))))
 		(Info-build-dir-anew (file-name-directory file) (not (file-writable-p file))))
 	  (if (Info-dir-outdated-p file)
 	      (if (or (eq Info-rebuild-outdated-dir 'always)
+		      (and (eq Info-rebuild-outdated-dir 'conservative)
+			   (not (file-writable-p file)))
 		      (and (eq Info-rebuild-outdated-dir 'ask)
 			   (y-or-n-p (format "%s is outdated. Rebuild now ? " file))))
 		  (Info-rebuild-dir file (not (file-writable-p file)))))))))
@@ -988,7 +996,7 @@
 
 (defun Info-dir-outdated-p (file)
   "Return non-nil if dir or localdir is outdated.
-dir or localdir are outdated when an *.info file in the same
+dir or localdir are outdated when a *.info file in the same
 directory has been modified more recently."
   (let ((dir-mod-time (nth 5 (file-attributes file)))
 	f-mod-time
@@ -1012,9 +1020,9 @@
 		      t))
     Info-dir-newer-info-files))
 
-(defun Info-extract-dir-entries-from (file)
-  "Extract dir entries from the info FILE.
-dir entries are delimited by the markers `START-INFO-DIR-ENTRY'
+(defun Info-extract-dir-entry-from (file)
+  "Extract the dir entry from the info FILE.
+The dir entry is delimited by the markers `START-INFO-DIR-ENTRY'
 and `END-INFO-DIR-ENTRY'"
   (save-excursion
     (set-buffer (get-buffer-create " *Info-tmp*"))
@@ -1027,29 +1035,83 @@
 	  (setq beg (point))
 	  (unless (null (re-search-forward "^END-INFO-DIR-ENTRY" nil t))
 	    (goto-char (match-beginning 0))
-	    (buffer-substring beg (point))))))))
+	    (car (Info-parse-dir-entries beg (point)))))))))
+
+;; Parse dir entries contained between BEG and END into a list of the form
+;; (filename topic node (description-line-1 description-line-2 ...))
+(defun Info-parse-dir-entries (beg end)
+  (let (entry entries)
+    (save-excursion
+      (save-restriction
+	(narrow-to-region beg end)
+	(goto-char beg)
+	(while (re-search-forward "^\\* \\([^:]+\\):\\([ \t]*(\\(.*\\))\\w*\\.\\|:\\)" nil t)
+	  (setq entry (list (match-string 2)
+			    (match-string 1)
+			    (downcase (or (match-string 3)
+					  (match-string 1)))))
+	  (setq entry (cons (nreverse 
+			     (cdr 
+			      (nreverse 
+			       (split-string (buffer-substring (re-search-forward "[ \t]*" nil t)
+							       (or (and (re-search-forward "^[^ \t]" nil t)
+									(goto-char (match-beginning 0)))
+								   (point-max)))
+					     "[ \t]*\n[ \t]*"))))
+			    entry))
+	  (setq entries (cons (nreverse entry) entries)))))
+    (nreverse entries)))
+
+(defun Info-dump-dir-entries (entries)
+  (let ((tab-width 8)
+	(description-col 0)
+	len)
+    (mapcar '(lambda (e)
+	       (setq e (cdr e))		; Drop filename
+	       (setq len (length (concat (car e)
+					 (car (cdr e)))))
+	       (if (> len description-col)
+		   (setq description-col len)))
+	    entries)
+    (setq description-col (+ 5 description-col)) 
+    (mapcar '(lambda (e)
+	       (setq e (cdr e))		; Drop filename
+	       (insert "* " (car e) ":" (car (cdr e)))
+	       (setq e (car (cdr (cdr e))))
+	       (while e
+		 (indent-to-column description-col)
+		 (insert (car e) "\n")
+		 (setq e (cdr e))))
+	    entries)))
+
 
 (defun Info-build-dir-anew (directory to-temp)
   "Build a new info dir file in DIRECTORY"
   (save-excursion
-    (let ((dirfile (expand-file-name "dir" directory)))
+    (let ((dirfile (expand-file-name "dir" directory))
+	  (info-files 
+	   (directory-files directory
+			    'fullname
+			    ".*\\.info\\(.gz\\|.Z\\|-z\\|.zip\\)?$"
+			    nil
+			    t)))
       (if to-temp
-	  (message "Creating temporary dir...")
+	  (display-warning 'info (format "Missing info dir file in %s" directory) 'notice)
 	(message "Creating %s..." dirfile))
-      (set-buffer (find-file-noselect dirfile))
+      (set-buffer (find-file-noselect dirfile t))
+      (setq buffer-read-only nil)
       (erase-buffer)
       (insert Info-dir-prologue
-	      "Info files in " directory "\n\n")
-      (mapcar 
-       '(lambda (f)
-	  (insert (or (Info-extract-dir-entries-from f)
-		    (format "* %s::\t[No description available]\n"
-			    (file-name-sans-extension (file-name-nondirectory f))))))
-       (directory-files directory
-			'fullname
-			".*\\.info\\(.gz\\|.Z\\|-z\\|.zip\\)?$"
-			nil
-			t))
+	      "Info files in " directory ":\n\n")
+      (Info-dump-dir-entries 
+       (mapcar 
+	'(lambda (f)
+	   (or (Info-extract-dir-entry-from f)
+	       (list 'dummy
+		     (file-name-sans-extension (file-name-nondirectory f))
+		     ":"
+		     (list Info-no-description-string))))
+	info-files))
       (if to-temp
 	  (set-buffer-modified-p nil)
 	(save-buffer))
@@ -1057,75 +1119,82 @@
 	  (message "Creating temporary dir...done")
 	(message "Creating %s...done" dirfile)))))
 
-(defvar Info-dir-entry-matcher "^\\* \\([^:]+\\):\\([ \t]*(\\(.*\\))\\w*\\.\\|:\\)[ \t]+\\(.*\\)$")
-
-(defun Info-parse-dir-entry (entry)
-  (string-match Info-dir-entry-matcher entry)
-  (list (match-string 1 entry) (match-string 2 entry) (match-string 4 entry)))
 
 (defun Info-rebuild-dir (file to-temp)
   "Update an existing info dir file after info files have been modified"
   (save-excursion
-    (let (dir-contents
-	  dir-entry
-	  file-dir-entry)
-      (set-buffer (find-file-noselect file))
-      (if to-temp
-	  (message "Rebuilding temporary dir...")
-	(message "Rebuilding %s..." file))
-      (setq buffer-read-only nil)
-      (goto-char (point-min))
-      (search-forward "\^_")
-      (re-search-forward "^\\* Menu:.*$" nil t)
-      (narrow-to-region (or (and (re-search-forward Info-dir-entry-matcher nil t)
-				 (match-beginning 0))
-			    (point))
-			(point-max))
-      (goto-char (point-min))
-      (while (re-search-forward Info-dir-entry-matcher nil t)
-	(setq dir-contents (cons (list (downcase (or (match-string 3)
-						     (match-string 1)))
-				       (match-string 1)
-				       (match-string 2)
-				       (match-string 4))
-				 dir-contents)))
-      (mapcar '(lambda (file)
-		 (setq dir-entry (assoc (downcase
+    (save-restriction
+      (let (dir-section-contents dir-full-contents
+	    dir-entry
+	    file-dir-entry
+	    mark next-section
+	    not-first-section)
+	(set-buffer (find-file-noselect file t))
+	(setq buffer-read-only nil)
+	(if to-temp
+	    (display-warning 'info (format "Outdated info dir file: %s" file) 'notice)
+	  (message "Rebuilding %s..." file))
+	(catch 'done
+	  (setq buffer-read-only nil)
+	  (goto-char (point-min))
+	  (unless (and (search-forward "\^_")
+		       (re-search-forward "^\\* Menu:.*$" nil t)
+		       (setq mark (and (re-search-forward "^\\* " nil t)
+				       (match-beginning 0))))
+	    (throw 'done nil))
+	  (setq dir-full-contents (Info-parse-dir-entries mark (point-max)))
+	  (setq next-section (or (and (re-search-forward "^[^* \t].*:[ \t]*$" nil t)
+				      (match-beginning 0))
+				 (point-max)))
+	  (while next-section
+	    (narrow-to-region mark next-section)
+	    (setq dir-section-contents (nreverse (Info-parse-dir-entries (point-min)
+									 (point-max))))
+	    (mapcar '(lambda (file)
+		       (setq dir-entry (assoc (downcase
+					       (file-name-sans-extension
+						(file-name-nondirectory file)))
+					      dir-section-contents)
+			     file-dir-entry (Info-extract-dir-entry-from file))
+		       (if dir-entry
+			   (if file-dir-entry
+			       ;; A dir entry in the info file takes precedence over an
+			       ;; existing entry in the dir file
+			       (setcdr dir-entry (cdr file-dir-entry)))
+			 (unless (or not-first-section
+				     (assoc (downcase
 					 (file-name-sans-extension
 					  (file-name-nondirectory file)))
-					dir-contents)
-		       file-dir-entry (Info-extract-dir-entries-from file))
-		 (if dir-entry
-		     (if file-dir-entry
-			 ;; A dir entry in the info file takes precedence over an
-			 ;; existing entry in the dir file
-			 (setcdr dir-entry (Info-parse-dir-entry file-dir-entry)))
-		   (if file-dir-entry
-		       (setq dir-contents (cons (cons 'dummy (Info-parse-dir-entry file-dir-entry))
-						dir-contents))
-		     (setq dir-contents (cons (list 'dummy
-						    (capitalize (file-name-sans-extension
-								 (file-name-nondirectory file)))
-						    ":"
-						    "[No description available]") 
-					      dir-contents)))))
-	      Info-dir-newer-info-files)
-      (delete-region (point-min) (point-max))
-      (mapcar '(lambda (entry)
-		 (setq entry (cdr entry))
-		 (insert (format "* %s:"
-				 (car entry)))
-		 (setq entry (cdr entry))
-		 (insert (car entry))
-		 (insert "\t" (car (cdr entry)) "\n"))
-	      (nreverse dir-contents))
-      (widen)
-      (if to-temp
-	  (set-buffer-modified-p nil)
-	(save-buffer))
-      (if to-temp
-	  (message "Rebuilding temporary dir...done")
-	(message "Rebuilding %s...done" file)))))
+					dir-full-contents))
+			   (if file-dir-entry
+			       (setq dir-section-contents (cons file-dir-entry
+								dir-section-contents))
+			     (setq dir-section-contents 
+				   (cons (list 'dummy
+					       (capitalize (file-name-sans-extension
+							    (file-name-nondirectory file)))
+					       ":"
+					       (list Info-no-description-string)) 
+					 dir-section-contents))))))
+		    Info-dir-newer-info-files)
+	    (delete-region (point-min) (point-max))
+	    (Info-dump-dir-entries (nreverse dir-section-contents))
+	    (widen)
+	    (if (= next-section (point-max))
+		(setq next-section nil)
+	      (or (setq mark (and (re-search-forward "^\\* " nil t)
+				  (match-beginning 0)))
+		  (throw 'done nil))
+	      (setq next-section (or (and (re-search-forward "^[^* \t].*:[ \t]*$" nil t)
+					  (match-beginning 0))
+				     (point-max))))
+	    (setq not-first-section t)))
+	(if to-temp
+	    (set-buffer-modified-p nil)
+	  (save-buffer))
+	(if to-temp
+	    (message "Rebuilding temporary dir...done")
+	  (message "Rebuilding %s...done" file))))))
       
 
 (defun Info-history-add (file node point)
--- a/lisp/list-mode.el	Mon Aug 13 10:28:54 2007 +0200
+++ b/lisp/list-mode.el	Mon Aug 13 10:29:42 2007 +0200
@@ -44,10 +44,24 @@
       (define-key map 'button2up 'list-mode-item-mouse-selected)
       (define-key map 'button2 'undefined)
       (define-key map "\C-m" 'list-mode-item-keyboard-selected)
-      (substitute-key-definition 'forward-char 'next-list-mode-item map
-				 global-map)
-      (substitute-key-definition 'backward-char 'previous-list-mode-item map
-				 global-map)))
+;;
+;; The following calls to `substitute-key-definition' losed because
+;; they were based on an incorrect assumption that `forward-char' and
+;; `backward-char' are bound to keys in the global map. This might not
+;; be the case if a user binds motion keys to different functions,
+;; and was not actually the case since 20.5 beta 28 or around.
+;;
+;;    (substitute-key-definition 'forward-char 'next-list-mode-item map
+;;				 global-map)
+;;    (substitute-key-definition 'backward-char 'previous-list-mode-item map
+;;				 global-map)
+;;
+;; We bind standard keys to motion commands instead.
+;;
+      (dolist (key '(kp-right right (control ?f)))
+	(define-key map key 'next-list-mode-item))
+      (dolist (key '(kp-left left (control ?b)))
+	(define-key map key 'previous-list-mode-item))))
 
 (defun list-mode ()
   "Major mode for buffer containing lists of items."
--- a/lisp/loadup.el	Mon Aug 13 10:28:54 2007 +0200
+++ b/lisp/loadup.el	Mon Aug 13 10:29:42 2007 +0200
@@ -60,7 +60,7 @@
 	;; has been found.  At this point, enough of XEmacs has been
 	;; initialized that we can start dumping "standard" lisp.
 	;; Dumped lisp from external packages is added when we search
-	;; the `package-path'.
+	;; the package path.
 	;; #### This code is duplicated in two other places.
 	(let ((temp-path (expand-file-name "." (car load-path))))
 	  (setq source-directory temp-path)
@@ -87,7 +87,7 @@
 	    (if full-path
 		(prog1
 		  (load full-path)
-		  '(garbage-collect))
+		  (garbage-collect))
 	      (external-debugging-output (format "\nLoad file %s: not found\n"
 						 file))
 	      ;; Uncomment in case of trouble
--- a/lisp/obsolete.el	Mon Aug 13 10:28:54 2007 +0200
+++ b/lisp/obsolete.el	Mon Aug 13 10:29:42 2007 +0200
@@ -314,6 +314,18 @@
 (define-obsolete-variable-alias 'after-write-file-hooks 'after-save-hook)
 (define-obsolete-function-alias 'truename 'file-truename)
 
+;;;;;;;;;;;;;;;;;;;;;;;;;;;; paths
+
+(defvar site-directory nil
+  "This used to be the location of the site-lisp directory.")
+(make-obsolete-variable 'site-directory "call paths-find-site-lisp-directory instead.")
+
+(defvar Info-default-directory-list nil
+  "This used to be the initial value of Info-directory-list.
+If you want to change the locations where XEmacs looks for info files,
+set Info-directory-list.")
+(make-obsolete-variable 'Info-default-directory-list 'Info-directory-list)
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;; hooks
 
 (make-obsolete-variable 'auto-fill-hook 'auto-fill-function)
--- a/lisp/package-admin.el	Mon Aug 13 10:28:54 2007 +0200
+++ b/lisp/package-admin.el	Mon Aug 13 10:29:42 2007 +0200
@@ -44,10 +44,10 @@
 `file' should be the full path to the lisp file to install.
 `destdir' should be a simple directory name.
 The optional `pkg-dir' can be used to override the default package hierarchy
-\(last package-path)."
+\(car \(last late-packages))."
   (interactive "fLisp File: \nsDestination: ")
   (when (null pkg-dir)
-    (setq pkg-dir (cadr package-path)))
+    (setq pkg-dir (car (last late-packages))))
   (let ((destination (concat pkg-dir "/lisp/" destdir))
 	(buf (get-buffer-create package-admin-temp-buffer)))
     (call-process "add-little-package.sh"
@@ -62,10 +62,10 @@
   "Install a pre-bytecompiled XEmacs package into package hierarchy."
   (interactive "fPackage tarball: ")
   (when (null pkg-dir)
-    (when (or (not (listp package-path))
-	      (not package-path))
+    (when (or (not (listp late-packages))
+	      (not late-packages))
       (error "No package path"))
-    (setq pkg-dir (car (last package-path))))
+    (setq pkg-dir (car (last late-packages))))
 
   (let ((buf (get-buffer-create package-admin-temp-buffer)))
     (call-process "add-big-package.sh"
--- a/lisp/package-get-base.el	Mon Aug 13 10:28:54 2007 +0200
+++ b/lisp/package-get-base.el	Mon Aug 13 10:29:42 2007 +0200
@@ -1,21 +1,21 @@
 (setq package-get-base
 '((eudc
   (standards-version 1.0
-   version "1.01"
-   author-version "1.0"
-   date "1998-03-15"
-   build-date "1998-03-22"
+   version "1.02"
+   author-version "1.02"
+   date "1998-03-24"
+   build-date "1998-04-04"
    maintainer "Oscar Figueiredo <Oscar.Figueiredo@epfl.ch>"
    distribution stable
    priority low
    category "comm"
    dump nil
    description "Emacs Unified Directory Client."
-   filename "eudc-1.01-pkg.tar.gz"
-   md5sum "c5b44d0c33a6232c8e2095e30259b870"
-   size 28687
+   filename "eudc-1.02-pkg.tar.gz"
+   md5sum "d2bf22f6d9587303b62736e31af23faf"
+   size 36621
    provides (eudc eudc-ldap eudc-ph)
-   requires (xemacs-base)
+   requires (fsf-compat xemacs-base)
    type regular
 ))
 (footnote
@@ -23,7 +23,7 @@
    version "1.02"
    author-version "0.18"
    date "1998-01-24"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "SL Baur <steve@xemacs.org>"
    distribution stable
    priority low
@@ -31,8 +31,8 @@
    dump nil
    description "Footnoting in mail message editing modes."
    filename "footnote-1.02-pkg.tar.gz"
-   md5sum "460a7309abcb52bc6fce3c80cfcdf1d9"
-   size 18045
+   md5sum "145e79418bac020596e7bc66654aab4f"
+   size 18065
    provides (footnote)
    requires (mail-lib xemacs-base)
    type regular
@@ -42,7 +42,7 @@
    version "1.02"
    author-version "3.101"
    date "1998-01-24"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority high
@@ -50,27 +50,27 @@
    dump nil
    description "XEmacs bug reports."
    filename "gnats-1.02-pkg.tar.gz"
-   md5sum "0cd0ab1a2c7dfc61b043948bc98f43d9"
-   size 126338
+   md5sum "67b301b42b9edad9fe22dce5b5dd29ac"
+   size 126358
    provides (gnats gnats-admin send-pr)
    requires (mail-lib xemacs-base)
    type regular
 ))
 (gnus
   (standards-version 1.0
-   version "1.11"
-   author-version "5.6.3"
-   date "1998-03-19"
-   build-date "1998-03-20"
+   version "1.12"
+   author-version "5.6.4"
+   date "1998-03-31"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority medium
    category "comm"
    dump nil
    description "The Gnus Newsreader and Mailreader."
-   filename "gnus-1.11-pkg.tar.gz"
-   md5sum "13d451110a73a55cd8537a9d38909b66"
-   size 1650283
+   filename "gnus-1.12-pkg.tar.gz"
+   md5sum "3dba6b7965a8b7e3db944c8b0d09b484"
+   size 1650833
    provides (gnus message)
    requires (gnus w3 mh-e mailcrypt rmail mail-lib xemacs-base)
    type regular
@@ -80,7 +80,7 @@
    version "1.03"
    author-version "3.4"
    date "1998-01-24"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
@@ -88,8 +88,8 @@
    dump nil
    description "Support for messaging encryption with PGP."
    filename "mailcrypt-1.03-pkg.tar.gz"
-   md5sum "78c26e92be2b302d462045527c5d46ed"
-   size 66823
+   md5sum "c7b308a44833254d3d457f460f3592ba"
+   size 66834
    provides (mailcrypt)
    requires (gnus vm mail-lib xemacs-base)
    type regular
@@ -97,9 +97,9 @@
 (mh-e
   (standards-version 1.0
    version "1.04"
-   author-version "20.5b29"
+   author-version "21.0b35"
    date "1998-01-24"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution contrib
    priority low
@@ -107,28 +107,28 @@
    dump nil
    description "Front end support for MH."
    filename "mh-e-1.04-pkg.tar.gz"
-   md5sum "5ecad7b26355ed5adcf2b1ecee9a9c95"
-   size 128977
+   md5sum "4b28aec34185ae94734cd5be3e36dc4d"
+   size 129010
    provides (mh-e)
    requires (mail-lib xemacs-base)
    type regular
 ))
 (net-utils
   (standards-version 1.0
-   version "1.02"
-   author-version "20.5b29"
-   date "1998-01-24"
-   build-date "1998-02-27"
+   version "1.04"
+   author-version "21.0b35"
+   date "1998-03-30"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
    category "comm"
    dump nil
    description "Miscellaneous Networking Utilities."
-   filename "net-utils-1.02-pkg.tar.gz"
-   md5sum "48d2bd98d8b26f2ad4c451982807d960"
-   size 48559
-   provides (ilisp-browse-cltl2 emacsbug feedmail metamail rcompile shadowfile webjump webster-www)
+   filename "net-utils-1.04-pkg.tar.gz"
+   md5sum "9aea3b824c54ebe69bbf3f7f83c0f4f4"
+   size 81591
+   provides (ilisp-browse-cltl2 emacsbug feedmail metamail net-utils rcompile shadowfile webjump webster-www)
    requires (w3 efs mail-lib xemacs-base)
    type single
 ))
@@ -137,7 +137,7 @@
    version "1.02"
    author-version "2.6"
    date "1998-01-24"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
@@ -145,8 +145,8 @@
    dump nil
    description "LDAP support."
    filename "ph-1.02-pkg.tar.gz"
-   md5sum "753a88169b747db3a449f60255d38cf2"
-   size 27548
+   md5sum "83a6feef756065a093450fa000d2724a"
+   size 27567
    provides (ph)
    requires (xemacs-base)
    type regular
@@ -154,9 +154,9 @@
 (rmail
   (standards-version 1.0
    version "1.02"
-   author-version "20.5b29"
+   author-version "21.0b35"
    date "1998-01-24"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution contrib
    priority low
@@ -164,8 +164,8 @@
    dump nil
    description "An obsolete Emacs mailer."
    filename "rmail-1.02-pkg.tar.gz"
-   md5sum "d385c1d48a41899ec5436669c422699f"
-   size 83574
+   md5sum "fc0b4a884c59a00ab1830276c56c5bf0"
+   size 83586
    provides (rmail rmailsum)
    requires (tm apel mail-lib xemacs-base)
    type regular
@@ -175,7 +175,7 @@
    version "1.05"
    author-version "3.55x"
    date "1998-02-11"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
@@ -183,8 +183,8 @@
    dump nil
    description "An Emacs citation tool for News & Mail messages."
    filename "supercite-1.05-pkg.tar.gz"
-   md5sum "34e772eff70739d2d25f282b71264428"
-   size 90161
+   md5sum "de8676b20143e985ab2b7c46f82218dc"
+   size 90162
    provides (supercite)
    requires (mail-lib xemacs-base)
    type regular
@@ -192,9 +192,9 @@
 (tm
   (standards-version 1.0
    version "1.04"
-   author-version "20.5b29"
+   author-version "21.0b35"
    date "1998-01-25"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
@@ -202,7 +202,7 @@
    dump nil
    description "Emacs MIME support."
    filename "tm-1.04-pkg.tar.gz"
-   md5sum "f52c4e83a3c2b9a33ffec67668cd2dff"
+   md5sum "35fb54b645164dc27fc33f9bb2f9718f"
    size 252091
    provides (tm tm-edit tm-view mime-setup)
    requires (gnus mh-e rmail vm mailcrypt mail-lib apel xemacs-base)
@@ -213,7 +213,7 @@
    version "1.06"
    author-version "6.41"
    date "1998-02-17"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority medium
@@ -221,8 +221,8 @@
    dump t
    description "An Emacs mailer."
    filename "vm-1.06-pkg.tar.gz"
-   md5sum "7a9e4f7943fa74752bd677ac1d26fc6f"
-   size 506117
+   md5sum "e38e76e531a8e818a29e3231b26b0e8d"
+   size 506233
    provides (vm)
    requires (mail-lib xemacs-base)
    type regular
@@ -232,7 +232,7 @@
    version "1.04"
    author-version "4.0pre16"
    date "1998-03-07"
-   build-date "1998-03-08"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution experimental
    priority high
@@ -240,8 +240,8 @@
    dump nil
    description "A Web browser."
    filename "w3-1.04-pkg.tar.gz"
-   md5sum "41efc75e9ea1cc6287e5e86d89cb3572"
-   size 584497
+   md5sum "d8e742ce7e806e14dcfab27b0e6ae767"
+   size 584488
    provides (w3 url)
    requires (w3 mail-lib xemacs-base)
    type regular
@@ -249,9 +249,9 @@
 (cookie
   (standards-version 1.0
    version "1.06"
-   author-version "20.5b29"
+   author-version "21.0b35"
    date "1998-02-01"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
@@ -259,8 +259,8 @@
    dump nil
    description "Spook and Yow (Zippy quotes)."
    filename "cookie-1.06-pkg.tar.gz"
-   md5sum "528a9773c0e84394d3cc04fdc2f5304e"
-   size 34107
+   md5sum "317920a2e78fb5bc49f6647dca605cb6"
+   size 34122
    provides (cookie1 yow)
    requires (xemacs-base)
    type regular
@@ -270,7 +270,7 @@
    version "1.02"
    author-version "1.0"
    date "1998-01-24"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
@@ -278,56 +278,56 @@
    dump nil
    description "Tetris, Sokoban, and Snake."
    filename "games-1.02-pkg.tar.gz"
-   md5sum "d9c68af0f2e98e80b5dade3508d4d1bf"
-   size 29267
+   md5sum "2d14ef7a300f8d49343cccaa89b1f463"
+   size 29281
    provides (gamegrid snake tetris sokoban)
    requires (xemacs-base)
    type regular
 ))
 (mine
   (standards-version 1.0
-   version "1.04"
-   author-version "1.8"
-   date "1998-01-24"
-   build-date "1998-02-27"
+   version "1.05"
+   author-version "1.8x1"
+   date "1998-03-31"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
    category "games"
    dump nil
    description "Minehunt Game."
-   filename "mine-1.04-pkg.tar.gz"
-   md5sum "59b117b2d0b581f67f09db288d82263d"
-   size 67519
+   filename "mine-1.05-pkg.tar.gz"
+   md5sum "330cd395304f600487b748d466993e06"
+   size 67568
    provides (xmine)
    requires (xemacs-base)
    type regular
 ))
 (misc-games
   (standards-version 1.0
-   version "1.05"
-   author-version "20.5b29"
-   date "1998-01-24"
-   build-date "1998-02-27"
+   version "1.06"
+   author-version "21.0b35"
+   date "1998-03-22"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
    category "games"
    dump nil
    description "Other amusements and diversions."
-   filename "misc-games-1.05-pkg.tar.gz"
-   md5sum "cafe2c566a63f7b049ead69e27326cd1"
-   size 163192
-   provides (decipher gomoku hanoi life)
+   filename "misc-games-1.06-pkg.tar.gz"
+   md5sum "48d883e7e6092c227b476386ece41672"
+   size 165586
+   provides (decipher gomoku hanoi life morse rot13)
    requires (xemacs-base)
    type single
 ))
 (Sun
   (standards-version 1.0
    version "1.05"
-   author-version "20.5b30"
+   author-version "21.0b35"
    date "1998-03-06"
-   build-date "1998-03-08"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution sun
    priority low
@@ -335,29 +335,29 @@
    dump t
    description "Support for Sparcworks."
    filename "Sun-1.05-pkg.tar.gz"
-   md5sum "d6c701e221c32cdbf2874eb68cc4def0"
-   size 63782
+   md5sum "70a776046ea5b12d08ca7276484f6139"
+   size 63826
    provides (sccs eos-browser eos-common eos-debugger eos-debugger eos-editor eos-init eos-load eos-menubar eos-toolbar sunpro)
    requires (cc-mode xemacs-base)
    type regular
 ))
 (apel
   (standards-version 1.0
-   version "1.03"
+   version "1.04"
    author-version "3.3"
    date "1998-01-24"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution mule
    priority high
    category "libs"
    dump nil
    description "A Portable Emacs Library.  Used by XEmacs MIME support."
-   filename "apel-1.03-pkg.tar.gz"
-   md5sum "8122f0fd87cc0fd5d2c15fbd9d9ee10d"
-   size 34609
+   filename "apel-1.04-pkg.tar.gz"
+   md5sum "7082f6eaa80bfef9e655e1c603ff68d3"
+   size 34597
    provides (atype emu-20 emu-e19 emu-x20 emu-xemacs emu file-detect filename install mule-caesar path-util richtext std11-parse std11 tinyrich)
-   requires (xemacs-base)
+   requires (fsf-compat xemacs-base)
    type regular
 ))
 (dired
@@ -365,7 +365,7 @@
    version "1.0"
    author-version "7.9"
    date "1998-02-17"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "Mike Sperber <sperber@informatik.uni-tuebingen.de>"
    distribution stable
    priority medium
@@ -373,8 +373,8 @@
    dump nil
    description "Manage file systems."
    filename "dired-1.0-pkg.tar.gz"
-   md5sum "e81b83bc45d46ea06e82b8118ab0fbc7"
-   size 187313
+   md5sum "9d0fab9ce63853d8a44d95fe8f87ad29"
+   size 187355
    provides (diff dired)
    requires (xemacs-base)
    type regular
@@ -382,9 +382,9 @@
 (edebug
   (standards-version 1.0
    version "1.04"
-   author-version "21.0b31"
+   author-version "21.0b35"
    date "1998-03-12"
-   build-date "1998-03-20"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
@@ -392,8 +392,8 @@
    dump nil
    description "An Emacs Lisp debugger."
    filename "edebug-1.04-pkg.tar.gz"
-   md5sum "ac269699ffcfba6396f1cd27e3c2bbed"
-   size 118166
+   md5sum "d4a46e9bee361d60cb079731e5b152e9"
+   size 118141
    provides (edebug cl-read cust-print eval-reg cl-specs)
    requires (xemacs-base)
    type regular
@@ -403,7 +403,7 @@
    version "1.08"
    author-version "1.16x1"
    date "1998-03-21"
-   build-date "1998-03-21"
+   build-date "1998-04-04"
    maintainer "Mike Sperber <sperber@informatik.uni-tuebingen.de>"
    distribution stable
    priority medium
@@ -411,27 +411,46 @@
    dump nil
    description "Treat files on remote systems the same as local files."
    filename "efs-1.08-pkg.tar.gz"
-   md5sum "1c650947f5c9011455327602a2e7f25b"
-   size 358151
+   md5sum "1ec45851fe72d06d32a6f941877ae544"
+   size 347544
    provides (efs)
    requires (xemacs-base vm dired)
    type regular
 ))
+(fsf-compat
+  (standards-version 1.0
+   version "1.0"
+   author-version "21.0b35"
+   date "1998-03-25"
+   build-date "1998-04-04"
+   maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
+   distribution mule
+   priority high
+   category "libs"
+   dump nil
+   description "FSF Emacs compatibility files."
+   filename "fsf-compat-1.0-pkg.tar.gz"
+   md5sum "813d839e6907a1e0b4a1226ca4340e0b"
+   size 16103
+   provides (overlay thingatpt timer)
+   requires ()
+   type single
+))
 (mail-lib
   (standards-version 1.0
-   version "1.08"
-   author-version "21.0b31"
-   date "S and SLB."
-   build-date "1998-03-22"
+   version "1.09"
+   author-version "21.0b35"
+   date "1998-03-22"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority medium
    category "libs"
    dump nil
    description "Fundamental lisp files for providing email support."
-   filename "mail-lib-1.08-pkg.tar.gz"
-   md5sum "e0c4144f55c0d4b40d24125692420c97"
-   size 119632
+   filename "mail-lib-1.09-pkg.tar.gz"
+   md5sum "17c0038a1e441add44faaeb0e8dd7941"
+   size 119331
    provides (browse-url highlight-headers mail-abbrevs mail-extr mail-utils reporter rfc822 rmail-mini rmailout sendmail smtpmail)
    requires (xemacs-base)
    type single
@@ -439,9 +458,9 @@
 (tooltalk
   (standards-version 1.0
    version "1.04"
-   author-version "20.5b29"
+   author-version "21.0b35"
    date "1998-01-24"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution contrib
    priority low
@@ -449,37 +468,37 @@
    dump t
    description "Support for building with Tooltalk."
    filename "tooltalk-1.04-pkg.tar.gz"
-   md5sum "56c6ff17e4144bf7e8086ee62a9551c5"
-   size 9235
+   md5sum "60ea390c4aa203ea26d66ddb2f3ad99f"
+   size 9245
    provides ()
    requires ()
    type regular
 ))
 (xemacs-base
   (standards-version 1.0
-   version "1.15"
-   author-version "20.5b30"
-   date "1998-03-04"
-   build-date "1998-03-08"
+   version "1.17"
+   author-version "21.0b35"
+   date "1998-04-04"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution mule
    priority high
    category "libs"
    dump nil
    description "Fundamental XEmacs support, you almost certainly need this."
-   filename "xemacs-base-1.15-pkg.tar.gz"
-   md5sum "0b8aaecdcd8ce5070ad4c66310e0f42d"
-   size 384120
-   provides (add-log advice annotations assoc case-table chistory comint-xemacs comint compile debug ebuff-menu echistory edmacro ehelp electric enriched env facemenu helper imenu iso-syntax macros novice outline overlay passwd pp regi ring shell skeleton sort thing time-stamp timezone xbm-button xpm-button)
+   filename "xemacs-base-1.17-pkg.tar.gz"
+   md5sum "e610fb980cae1ef459df0e9611ad92e8"
+   size 417610
+   provides (add-log advice annotations assoc case-table chistory comint-xemacs comint compile debug ebuff-menu echistory edmacro ehelp electric enriched env facemenu ffap helper imenu iso-syntax macros novice outline overlay passwd pp regi ring shell skeleton sort thing time-stamp timezone xbm-button xpm-button)
    requires ()
    type regular
 ))
 (xemacs-devel
   (standards-version 1.0
    version "1.10"
-   author-version "21.0b31"
+   author-version "21.0b35"
    date "1998-03-09"
-   build-date "1998-03-20"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority medium
@@ -487,8 +506,8 @@
    dump nil
    description "Emacs Lisp developer support."
    filename "xemacs-devel-1.10-pkg.tar.gz"
-   md5sum "4f9d605e05c24d1219ed74f3f3553b89"
-   size 76390
+   md5sum "3dab1194f0ba1807ac06f710b057d86c"
+   size 76359
    provides (docref eldoc elp find-func hide-copyleft ielm regexp-opt trace)
    requires (xemacs-base)
    type single
@@ -515,9 +534,9 @@
 (egg-its
   (standards-version 1.0
    version "1.04"
-   author-version "20.5b29"
+   author-version "21.0b35"
    date "1998-01-24"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution mule
    priority high
@@ -525,37 +544,37 @@
    dump t
    description "Wnn (4.2 and 6) support.  SJ3 support."
    filename "egg-its-1.04-pkg.tar.gz"
-   md5sum "5d531d513111576d4e0367abf7c2aa3c"
-   size 260075
+   md5sum "a5bccad96425d89d9a590580c14fddee"
+   size 259362
    provides ()
    requires (leim mule-base xemacs-base)
    type regular
 ))
 (leim
   (standards-version 1.0
-   version "1.05"
-   author-version "20.5b29"
+   version "1.06"
+   author-version "21.0b35"
    date "1998-02-06"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution mule
    priority medium
    category "mule"
    dump nil
    description "Quail.  All non-English and non-Japanese language support."
-   filename "leim-1.05-pkg.tar.gz"
-   md5sum "3c846cdbe34e946f0ca0fd371f149b84"
-   size 1743902
+   filename "leim-1.06-pkg.tar.gz"
+   md5sum "fe4649250d6882b828a0e408e9c4d010"
+   size 1743964
    provides ()
-   requires (mule-base xemacs-base)
+   requires (mule-base fsf-compat xemacs-base)
    type regular
 ))
 (locale
   (standards-version 1.0
    version "1.04"
-   author-version "20.5b30"
+   author-version "21.0b35"
    date "1998-03-01"
-   build-date "1998-03-08"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution mule
    priority high
@@ -563,29 +582,29 @@
    dump nil
    description "Localized menubars and localized splash screens."
    filename "locale-1.04-pkg.tar.gz"
-   md5sum "897687db6df1450d83576511da728db1"
-   size 35573
+   md5sum "5d6dd1391ac017f4f210a810db2541cb"
+   size 34651
    provides ()
    requires (mule-base)
    type regular
 ))
 (mule-base
   (standards-version 1.0
-   version "1.11"
-   author-version "21.0b31"
+   version "1.12"
+   author-version "21.0b35"
    date "1998-03-13"
-   build-date "1998-03-22"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution mule
    priority high
    category "mule"
    dump t
    description "Basic Mule support, required for building with Mule."
-   filename "mule-base-1.11-pkg.tar.gz"
-   md5sum "370c0a3dc8569beded926950c5e447f4"
-   size 487578
+   filename "mule-base-1.12-pkg.tar.gz"
+   md5sum "336cc78d33b94190b3ae2ed1dc44b9f4"
+   size 487519
    provides (canna-leim canna char-table china-util cyril-util isearch-ext japan-util ccl can-n-egg mule-help)
-   requires (xemacs-base)
+   requires (fsf-compat xemacs-base)
    type regular
 ))
 (skk
@@ -593,7 +612,7 @@
    version "1.03"
    author-version "10.38"
    date "1998-01-24"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution mule
    priority medium
@@ -601,8 +620,8 @@
    dump t
    description "Japanese Language Input Method."
    filename "skk-1.03-pkg.tar.gz"
-   md5sum "f5a459223e78f146959a4c44795b7830"
-   size 1466964
+   md5sum "84341a8fd04ff28542c428b7413d0996"
+   size 1466996
    provides (skk skk-tut)
    requires (viper mule-base xemacs-base)
    type regular
@@ -612,7 +631,7 @@
    version "1.03"
    author-version "2.02fX1"
    date "1998-03-03"
-   build-date "1998-03-22"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
@@ -620,8 +639,8 @@
    dump nil
    description "Emacs calculator"
    filename "calc-1.03-pkg.tar.gz"
-   md5sum "842bee3ddff8695683917d92afd2b401"
-   size 1158637
+   md5sum "ea536d7e82fb24812614d4984be9e0fe"
+   size 1158896
    provides (calc)
    requires ()
    type regular
@@ -629,9 +648,9 @@
 (calendar
   (standards-version 1.0
    version "1.03"
-   author-version "20.5b29"
+   author-version "21.0b35"
    date "1998-01-25"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
@@ -639,27 +658,27 @@
    dump nil
    description "Calendar and diary support."
    filename "calendar-1.03-pkg.tar.gz"
-   md5sum "c1688fe7c3228dd369a096d7c47cb51c"
-   size 168688
+   md5sum "6d36eec11379155801304020b0c3ccf3"
+   size 168747
    provides (appt cal-dst cal-french cal-mayan cal-x cal-xemacs calendar diary-ins diary-lib holidays lunar solar)
    requires (xemacs-base)
    type regular
 ))
 (edit-utils
   (standards-version 1.0
-   version "1.14"
-   author-version "21.0b31"
-   date "1998-03-19"
-   build-date "1998-03-20"
+   version "1.16"
+   author-version "21.0b35"
+   date "1998-03-23"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority high
    category "oa"
    dump nil
    description "Miscellaneous editor extensions, you probably need this."
-   filename "edit-utils-1.14-pkg.tar.gz"
-   md5sum "dfa29846f0dfc07b5f4a22ce93efe996"
-   size 557068
+   filename "edit-utils-1.16-pkg.tar.gz"
+   md5sum "795df69759eda984202e932a11afa340"
+   size 552434
    provides (abbrevlist atomic-extents avoid backup-dir balloon-help big-menubar blink-cursor blink-paren bookmark compare-w completion dabbrev desktop detached-minibuf edit-toolbar fast-lock file-part floating-toolbar flow-ctrl foldout func-menu hippie-exp icomplete id-select info-look iswitchb lazy-lock lazy-shot live-icon man mic-paren paren popper mode-motion+ outl-mouse page-ext blink-paren paren permanent-buffers recent-files redo reportmail rsz-minibuf saveconfsavehist saveplace scroll-in-place tempo toolbar-utils tree-menu uniquify where-was-i-db)
    requires (xemacs-base)
    type single
@@ -669,7 +688,7 @@
    version "1.05"
    author-version "2.10"
    date "1998-01-25"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution contrib
    priority low
@@ -677,8 +696,8 @@
    dump nil
    description "Forms editing support (obsolete, use Widget instead)."
    filename "forms-1.05-pkg.tar.gz"
-   md5sum "fbf0d97c78f304cf4cb8212490c58a25"
-   size 39853
+   md5sum "b5628009e9cc195df0cb3ec067800f68"
+   size 39867
    provides (forms forms-mode)
    requires ()
    type regular
@@ -686,9 +705,9 @@
 (frame-icon
   (standards-version 1.0
    version "1.02"
-   author-version "20.5b29"
+   author-version "21.0b35"
    date "1998-02-26"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution contrib
    priority low
@@ -696,8 +715,8 @@
    dump nil
    description "Set up mode-specific icons for each frame under XEmacs"
    filename "frame-icon-1.02-pkg.tar.gz"
-   md5sum "5878c2f4fed7546265bf93b381f9aa83"
-   size 33563
+   md5sum "82d098425df2fd7e3a7e7d16c9a9e12b"
+   size 33568
    provides (forms forms-mode)
    requires ()
    type regular
@@ -707,7 +726,7 @@
    version "1.05"
    author-version "5.9"
    date "1998-01-25"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
@@ -715,47 +734,47 @@
    dump nil
    description "HTML editing."
    filename "hm--html-menus-1.05-pkg.tar.gz"
-   md5sum "544597bdddd4b2e138bf6f26a8ecb2b8"
-   size 134645
+   md5sum "46bf51078423bbe8f934b0b0ce980aca"
+   size 134687
    provides (adapt hm--date hm--html-configuration hm--html-drag-and-drop hm--html-indentation hm--html-keys hm--html-menu hm--html-mode hm--html-not-standard hm--html html-view tmpl-minor-mode)
    requires (xemacs-base)
    type regular
 ))
 (ispell
   (standards-version 1.0
-   version "1.07"
-   author-version "3.0"
-   date "1998-03-21"
-   build-date "1998-03-22"
+   version "1.08"
+   author-version "3.0x1"
+   date "1998-04-01"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
    category "oa"
    dump nil
    description "Spell-checking with GNU ispell."
-   filename "ispell-1.07-pkg.tar.gz"
-   md5sum "7c366f560ccde1c513e3cbcfea739a1e"
-   size 64455
+   filename "ispell-1.08-pkg.tar.gz"
+   md5sum "54cd76987a472eca72c24592a10756d6"
+   size 64990
    provides (ispell)
    requires ()
    type regular
 ))
 (pc
   (standards-version 1.0
-   version "1.07"
-   author-version "20.5b29"
-   date "1998-02-25"
-   build-date "1998-02-27"
+   version "1.08"
+   author-version "21.0b35"
+   date "1998-03-22"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
    category "oa"
    dump nil
    description "PC style interface emulation."
-   filename "pc-1.07-pkg.tar.gz"
-   md5sum "c5e92917cbe06e156f8ba08c36cae217"
-   size 12155
-   provides (delbs pc-select pending-del s-region)
+   filename "pc-1.08-pkg.tar.gz"
+   md5sum "1d170e2a7cc2483e4f002afa99482d15"
+   size 15535
+   provides (delbs fusion pc-select pending-del s-region)
    requires (xemacs-base)
    type regular
 ))
@@ -764,7 +783,7 @@
    version "1.06"
    author-version "1.01"
    date "1998-03-20"
-   build-date "1998-03-22"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority medium
@@ -772,8 +791,8 @@
    dump nil
    description "Validated HTML/SGML editing."
    filename "psgml-1.06-pkg.tar.gz"
-   md5sum "9dfb79a1f9532a0725f0d8a8aafb863b"
-   size 418577
+   md5sum "97c4a41f501629201c35de44c0568c83"
+   size 418630
    provides (psgml sgml)
    requires (edit-utils)
    type regular
@@ -781,9 +800,9 @@
 (sgml
   (standards-version 1.0
    version "1.01"
-   author-version "20.5b29"
+   author-version "21.0b35"
    date "1998-01-25"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution contrib
    priority low
@@ -791,8 +810,8 @@
    dump nil
    description "SGML/Linuxdoc-SGML editing."
    filename "sgml-1.01-pkg.tar.gz"
-   md5sum "a9377edae67887eec79458909e143f4a"
-   size 26872
+   md5sum "4e7039730eb4399c09b1a85d1758381c"
+   size 26874
    provides (sgml linuxdoc-sgml)
    requires (xemacs-base)
    type regular
@@ -802,7 +821,7 @@
    version "1.05"
    author-version "0.3"
    date "1998-01-25"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution experimental
    priority low
@@ -810,8 +829,8 @@
    dump nil
    description "User interface tool."
    filename "slider-1.05-pkg.tar.gz"
-   md5sum "10632105a03c6c186168b7e9746c6074"
-   size 12123
+   md5sum "67b376e5b886a78f5094eb13c61ff8ec"
+   size 12116
    provides (slider color-selector)
    requires ()
    type regular
@@ -821,7 +840,7 @@
    version "1.05"
    author-version "0.6.2"
    date "1998-02-07"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
@@ -829,8 +848,8 @@
    dump nil
    description "??? Document me."
    filename "speedbar-1.05-pkg.tar.gz"
-   md5sum "122c2b1676a2d9cd0cb5dbdb2c787514"
-   size 95006
+   md5sum "8a988bada9d09dac0e934f0859f88613"
+   size 95018
    provides (speedbar)
    requires (xemacs-base)
    type regular
@@ -838,9 +857,9 @@
 (strokes
   (standards-version 1.0
    version "1.01"
-   author-version "20.5b29"
+   author-version "21.0b35"
    date "1998-01-25"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority medium
@@ -848,29 +867,29 @@
    dump nil
    description "Mouse enhancement utility."
    filename "strokes-1.01-pkg.tar.gz"
-   md5sum "38979b99949b221fe85c0845a922aa9e"
-   size 43723
+   md5sum "a160a62e0570fc69f3c03b6ee1693fcd"
+   size 43743
    provides (strokes)
    requires (text-modes edit-utils mail-lib xemacs-base)
    type regular
 ))
 (text-modes
   (standards-version 1.0
-   version "1.05"
-   author-version "20.5b29"
-   date "1998-02-26"
-   build-date "1998-02-27"
+   version "1.07"
+   author-version "21.0b35"
+   date "1998-03-25"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority high
    category "oa"
    dump nil
    description "Miscellaneous support for editing text files."
-   filename "text-modes-1.05-pkg.tar.gz"
-   md5sum "bf46fbc87327b7512932aa4374bcf1f9"
-   size 106135
-   provides (autoinsert crontab-edit filladapt image-mode iso-acc iso-ascii iso-cvt iso-insert iso-swed swedish tabify whitespace-mode winmgr-mode xpm-mode xrdb-mode)
-   requires (xemacs-base)
+   filename "text-modes-1.07-pkg.tar.gz"
+   md5sum "a9a674d12ba0aebc83fb6a0ea998fff8"
+   size 171607
+   provides (autoinsert crontab-edit filladapt fold-isearch folding image-mode iso-acc iso-ascii iso-cvt iso-insert iso-swed swedish tabify whitespace-mode winmgr-mode xpm-mode xrdb-mode)
+   requires (fsf-compat xemacs-base)
    type regular
 ))
 (time
@@ -878,7 +897,7 @@
    version "1.03"
    author-version "1.17"
    date "1998-01-25"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority medium
@@ -886,8 +905,8 @@
    dump nil
    description "Display time & date on the modeline."
    filename "time-1.03-pkg.tar.gz"
-   md5sum "47dcbd05b3b7b6982f2f1a42475de338"
-   size 20091
+   md5sum "319c60e36fc0e51000323e22e8955f32"
+   size 20087
    provides (time)
    requires (xemacs-base)
    type regular
@@ -895,9 +914,9 @@
 (eterm
   (standards-version 1.0
    version "1.03"
-   author-version "20.5b29"
+   author-version "21.0b35"
    date "1998-01-24"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority medium
@@ -905,8 +924,8 @@
    dump nil
    description "Terminal emulation."
    filename "eterm-1.03-pkg.tar.gz"
-   md5sum "4314f3f85e2ac035c356d99df910231c"
-   size 102100
+   md5sum "2aa35f7f492facc7bccea1053cb2975c"
+   size 102144
    provides (eterm)
    requires (xemacs-base)
    type regular
@@ -914,9 +933,9 @@
 (igrep
   (standards-version 1.0
    version "1.01"
-   author-version "20.5b29"
+   author-version "21.0b35"
    date "1998-01-24"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
@@ -924,8 +943,8 @@
    dump nil
    description "Enhanced front-end for Grep."
    filename "igrep-1.01-pkg.tar.gz"
-   md5sum "d1e1224ed2547cb28d17064e46dcad48"
-   size 13961
+   md5sum "e50e3a5ac2d6ca5eea67d7f664dee406"
+   size 13971
    provides (igrep)
    requires (dired xemacs-base)
    type regular
@@ -935,7 +954,7 @@
    version "1.03"
    author-version "5.8"
    date "1998-01-24"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
@@ -943,8 +962,8 @@
    dump nil
    description "Front-end for Inferior Lisp."
    filename "ilisp-1.03-pkg.tar.gz"
-   md5sum "62c1e14eaca07d6ed5c00cba517c3b26"
-   size 223412
+   md5sum "638983fd9403ce9a512f8adbe7d8d66b"
+   size 223413
    provides (ilisp completer)
    requires (xemacs-base)
    type regular
@@ -952,9 +971,9 @@
 (os-utils
   (standards-version 1.0
    version "1.06"
-   author-version "20.5b29"
+   author-version "21.0b35"
    date "1998-02-21"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority medium
@@ -962,8 +981,8 @@
    dump nil
    description "Miscellaneous O/S utilities."
    filename "os-utils-1.06-pkg.tar.gz"
-   md5sum "c2b8aec12884057993b11b19868cd1d8"
-   size 224310
+   md5sum "43db6a9e28ac5626850a2aabb2511ab3"
+   size 228053
    provides (archive-mode background crypt crypt++ inf-lisp jka-compr lpr mchat ps-print tar-mode telnet terminal uncompress)
    requires (xemacs-base)
    type single
@@ -973,7 +992,7 @@
    version "1.03"
    author-version "2.4"
    date "1998-01-24"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
@@ -981,8 +1000,8 @@
    dump nil
    description "A Unix process browsing tool."
    filename "view-process-1.03-pkg.tar.gz"
-   md5sum "9e9567a768184a0aeea90bbdadf15f08"
-   size 59864
+   md5sum "96bcf35e325034ee3c37563fecfe623d"
+   size 59886
    provides (view-process-mode)
    requires (xemacs-base)
    type regular
@@ -992,7 +1011,7 @@
    version "1.03"
    author-version "2.27"
    date "1998-01-24"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
@@ -1000,46 +1019,46 @@
    dump nil
    description "Ada language support."
    filename "ada-1.03-pkg.tar.gz"
-   md5sum "4626ea66734003692b32b86fa7fa4fe8"
-   size 54305
+   md5sum "661f8c0ac17fe447f8cc0e54f753704d"
+   size 54323
    provides (ada-mode ada-stmt)
    requires ()
    type regular
 ))
 (c-support
   (standards-version 1.0
-   version "1.06"
-   author-version "21.0b31"
-   date "1998-03-21"
-   build-date "1998-03-22"
+   version "1.07"
+   author-version "21.0b35"
+   date "1998-03-25"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution contrib
    priority low
    category "prog"
    dump nil
    description "Basic single-file add-ons for editing C code."
-   filename "c-support-1.06-pkg.tar.gz"
-   md5sum "358de6577a1e5405e9b065b9661427d1"
-   size 41866
-   provides (c-comment-edit cmacexp hideif hideshow)
+   filename "c-support-1.07-pkg.tar.gz"
+   md5sum "771e606d76e18922efb6559e101c7ecf"
+   size 68651
+   provides (c-comment-edit cmacexp ctypes hideif hideshow)
    requires (cc-mode xemacs-base)
    type regular
 ))
 (cc-mode
   (standards-version 1.0
-   version "1.09"
+   version "1.10"
    author-version "5.22"
    date "1998-03-05"
-   build-date "1998-03-16"
+   build-date "1998-04-04"
    maintainer "Barry Warsaw <cc-mode-help@python.org>"
    distribution stable
    priority medium
    category "prog"
    dump nil
    description "C, C++ and Java language support."
-   filename "cc-mode-1.09-pkg.tar.gz"
-   md5sum "1682c56b515ea634e1b21b10321bcced"
-   size 151206
+   filename "cc-mode-1.10-pkg.tar.gz"
+   md5sum "cbedfe4372993f1a98c9824840a64cff"
+   size 150896
    provides (cc-mode)
    requires (xemacs-base)
    type regular
@@ -1047,9 +1066,9 @@
 (debug
   (standards-version 1.0
    version "1.01"
-   author-version "20.5b29"
+   author-version "21.0b35"
    date "1998-01-24"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution contrib
    priority low
@@ -1057,8 +1076,8 @@
    dump nil
    description "GUD, gdb, dbx debugging support."
    filename "debug-1.01-pkg.tar.gz"
-   md5sum "dab66c6b6fc130a9bf4a6e6794014971"
-   size 87152
+   md5sum "b36126702924e2822387957b5db68827"
+   size 87176
    provides ()
    requires (xemacs-base)
    type regular
@@ -1068,7 +1087,7 @@
    version "1.06"
    author-version "2.70.1"
    date "1998-02-25"
-   build-date "1998-03-22"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority medium
@@ -1076,8 +1095,8 @@
    dump nil
    description "Interface over GNU patch."
    filename "ediff-1.06-pkg.tar.gz"
-   md5sum "4c604cf4b004557659252ba82b8a27a9"
-   size 244441
+   md5sum "1bad29a3f9a6e28c34afc1f155ffdb05"
+   size 244476
    provides (ediff)
    requires (pcl-cvs dired xemacs-base)
    type regular
@@ -1085,9 +1104,9 @@
 (emerge
   (standards-version 1.0
    version "1.01"
-   author-version "20.5b29"
+   author-version "21.0b35"
    date "1998-01-24"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
@@ -1095,7 +1114,7 @@
    dump nil
    description "Another interface over GNU patch."
    filename "emerge-1.01-pkg.tar.gz"
-   md5sum "59f3d69e46bf05f1f1f8cd26e6caac43"
+   md5sum "8c112dda38c9274792d72f0583c9415b"
    size 60905
    provides (emerge)
    requires ()
@@ -1104,9 +1123,9 @@
 (pcl-cvs
   (standards-version 1.0
    version "1.03"
-   author-version "20.5b29"
+   author-version "21.0b35"
    date "1998-01-24"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
@@ -1114,8 +1133,8 @@
    dump nil
    description "CVS frontend."
    filename "pcl-cvs-1.03-pkg.tar.gz"
-   md5sum "e077c161d2013314bb98d94fc50efa7f"
-   size 134541
+   md5sum "5d538ca24b26958463898ec80e0bac4b"
+   size 134577
    provides (pcl-cvs dll elib-node generic-sc)
    requires (xemacs-base)
    type regular
@@ -1123,9 +1142,9 @@
 (prog-modes
   (standards-version 1.0
    version "1.04"
-   author-version "20.5b29"
+   author-version "21.0b35"
    date "1998-02-08"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority medium
@@ -1133,8 +1152,8 @@
    dump nil
    description "Support for various programming languages."
    filename "prog-modes-1.04-pkg.tar.gz"
-   md5sum "82d3259204008efa69d7eab20db7a80b"
-   size 535354
+   md5sum "ab211a10361e9485c502b7c466131640"
+   size 535455
    provides (autoconf-mode cperl-mode eiffel3 f90 fortran ksh-mode m4-mode makefile perl-mode postscript python-mode rexx-mode simula-mode tcl teco verilog-mod)
    requires (mail-lib xemacs-base)
    type regular
@@ -1142,9 +1161,9 @@
 (scheme
   (standards-version 1.0
    version "1.02"
-   author-version "20.5b29"
+   author-version "21.0b35"
    date "1998-01-24"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution contrib
    priority low
@@ -1152,8 +1171,8 @@
    dump nil
    description "Front-end support for Inferior Scheme."
    filename "scheme-1.02-pkg.tar.gz"
-   md5sum "b23c568e5939392f054119f9c6eee981"
-   size 34801
+   md5sum "f79ca713130470b1040b19b94e2d8087"
+   size 34812
    provides (scheme xscheme cmuscheme)
    requires (xemacs-base)
    type regular
@@ -1163,7 +1182,7 @@
    version "1.04"
    author-version "2.0e"
    date "1998-01-24"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
@@ -1171,8 +1190,8 @@
    dump nil
    description "Support for editing shell scripts."
    filename "sh-script-1.04-pkg.tar.gz"
-   md5sum "d3840b34d0b92b57257b4170d8fa33a5"
-   size 33617
+   md5sum "7e14483d0732a83b1f5e32f059f76b04"
+   size 33630
    provides (sh-script executable)
    requires (xemacs-base)
    type regular
@@ -1180,9 +1199,9 @@
 (vc-cc
   (standards-version 1.0
    version "1.03"
-   author-version "20.5b29"
+   author-version "21.0b35"
    date "1998-01-24"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution contrib
    priority low
@@ -1190,8 +1209,8 @@
    dump t
    description "Version Control for ClearCase (UnFree) systems."
    filename "vc-cc-1.03-pkg.tar.gz"
-   md5sum "b9d346ff0e29fdb75bf0309c5b25d869"
-   size 96057
+   md5sum "fbdd450eb5db37a1fd76829b9b93ebc2"
+   size 96065
    provides (vc)
    requires (dired xemacs-base)
    type regular
@@ -1199,9 +1218,9 @@
 (vc
   (standards-version 1.0
    version "1.06"
-   author-version "21.0b31"
+   author-version "21.0b35"
    date "1998-03-20"
-   build-date "1998-03-22"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
@@ -1209,8 +1228,8 @@
    dump t
    description "Version Control for Free systems."
    filename "vc-1.06-pkg.tar.gz"
-   md5sum "04519e6a475308de47da52f3cb927e68"
-   size 74601
+   md5sum "875822474ef43fcb0ad83521279acb7c"
+   size 74620
    provides (vc)
    requires (dired xemacs-base)
    type regular
@@ -1220,7 +1239,7 @@
    version "1.03"
    author-version "2.74"
    date "1998-01-24"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
@@ -1228,8 +1247,8 @@
    dump nil
    description "Support for VHDL."
    filename "vhdl-1.03-pkg.tar.gz"
-   md5sum "0edc086261a9e0526704e99400d100e2"
-   size 54064
+   md5sum "2d04e2bc20fe2f105238ad65b6a73969"
+   size 54083
    provides (vhdl-mode)
    requires ()
    type regular
@@ -1239,7 +1258,7 @@
    version "1.06"
    author-version "9.7p"
    date "1998-02-25"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority medium
@@ -1247,8 +1266,8 @@
    dump nil
    description "Basic TeX/LaTeX support."
    filename "auctex-1.06-pkg.tar.gz"
-   md5sum "e6ed0053066ca0c49251d1f85dc31fc1"
-   size 304695
+   md5sum "bdd76782a4b9e02b0cecc51ebace3ed8"
+   size 304787
    provides (auc-old bib-cite font-latex latex multi-prompt tex-buf tex-info tex-jp tex-site tex)
    requires (xemacs-base)
    type regular
@@ -1258,7 +1277,7 @@
    version "1.03"
    author-version "1.31"
    date "1998-01-24"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
@@ -1266,8 +1285,8 @@
    dump nil
    description "Crisp/Brief emulation."
    filename "crisp-1.03-pkg.tar.gz"
-   md5sum "7d1e952213bd159dd11957daff005083"
-   size 9054
+   md5sum "422b7bcbb0b0097a0f3688e0f475e3b5"
+   size 9059
    provides (crisp scroll-lock)
    requires ()
    type regular
@@ -1275,9 +1294,9 @@
 (edt
   (standards-version 1.0
    version "1.03"
-   author-version "20.5b29"
+   author-version "21.0b35"
    date "1998-01-24"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution contrib
    priority low
@@ -1285,37 +1304,37 @@
    dump nil
    description "DEC EDIT/EDT emulation."
    filename "edt-1.03-pkg.tar.gz"
-   md5sum "93715876897a4f0bfcf66eed73010c2c"
-   size 46019
+   md5sum "30c7aa5a4b6a5822f30976a947d422a4"
+   size 46031
    provides (edt)
    requires (xemacs-base)
    type regular
 ))
 (reftex
   (standards-version 1.0
-   version "1.03"
+   version "1.04"
    author-version "3.22"
    date "1998-03-21"
-   build-date "1998-03-22"
+   build-date "1998-04-04"
    maintainer "Carsten Dominik <dominik@strw.LeidenUniv.nl>"
    distribution stable
    priority medium
    category "wp"
    dump nil
    description "Emacs support for LaTeX cross-references, citations.."
-   filename "reftex-1.03-pkg.tar.gz"
-   md5sum "7e650c64e653631b1cb8c14975af6941"
-   size 141804
+   filename "reftex-1.04-pkg.tar.gz"
+   md5sum "817a50763a3e909449a93780f662723c"
+   size 141810
    provides (reftex)
-   requires (xemacs-base)
+   requires (fsf-compat xemacs-base)
    type regular
 ))
 (texinfo
   (standards-version 1.0
    version "1.06"
-   author-version "20.5b30"
+   author-version "21.0b35"
    date "1998-03-03"
-   build-date "1998-03-08"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority high
@@ -1323,8 +1342,8 @@
    dump nil
    description "XEmacs TeXinfo support."
    filename "texinfo-1.06-pkg.tar.gz"
-   md5sum "60579a4364d996cb65b85e62f9c2bf47"
-   size 125816
+   md5sum "4fa94b9ade9864cc915032157a921a4c"
+   size 125853
    provides (makeinfo tex-mode texinfmt texinfo texnfo-tex texnfo-upd)
    requires (xemacs-base)
    type regular
@@ -1332,9 +1351,9 @@
 (textools
   (standards-version 1.0
    version "1.04"
-   author-version "20.5b29"
+   author-version "21.0b35"
    date "1998-02-17"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stabl
    priority medium
@@ -1342,8 +1361,8 @@
    dump nil
    description "Miscellaneous TeX support."
    filename "textools-1.04-pkg.tar.gz"
-   md5sum "b18c912373db3b8ae4ad9c472c33128b"
-   size 78953
+   md5sum "2e90b7dfd81c0b5748ac09b3db86e2c8"
+   size 78964
    provides (bib-mode bibtex refer-to-bibtex)
    requires (xemacs-base)
    type single
@@ -1351,9 +1370,9 @@
 (tpu
   (standards-version 1.0
    version "1.04"
-   author-version "20.5b29"
+   author-version "21.0b35"
    date "1998-01-24"
-   build-date "1998-02-27"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution mule
    priority high
@@ -1361,8 +1380,8 @@
    dump nil
    description "DEC EDIT/TPU support."
    filename "tpu-1.04-pkg.tar.gz"
-   md5sum "08968507b0879b85c2d56e49bc69b379"
-   size 57407
+   md5sum "f45c9f761d6a88b2d3bdb4a4af2abf25"
+   size 57425
    provides (tpu)
    requires ()
    type regular
@@ -1372,7 +1391,7 @@
    version "1.06"
    author-version "3.02"
    date "1998-02-25"
-   build-date "1998-03-22"
+   build-date "1998-04-04"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
@@ -1380,8 +1399,8 @@
    dump nil
    description "VI emulation support."
    filename "viper-1.06-pkg.tar.gz"
-   md5sum "d868d8e027ae6e86b77a9737acab6885"
-   size 261257
+   md5sum "23528829ed5464cafb97fd3f278b41aa"
+   size 261321
    provides (viper)
    requires (xemacs-base)
    type regular
--- a/lisp/packages.el	Mon Aug 13 10:28:54 2007 +0200
+++ b/lisp/packages.el	Mon Aug 13 10:29:42 2007 +0200
@@ -75,6 +75,23 @@
 (defvar last-package-load-path nil
   "Load path for packages last in the load path.")
 
+(defvar package-locations
+  (list
+   (list "~/.xemacs"         'early #'(lambda () t))
+   (list "mule-packages"     'late  #'(lambda () (featurep 'mule)))
+   (list "packages"          'late  #'(lambda () t))
+   (list "infodock-packages" 'late  #'(lambda () (featurep 'infodock))))
+  "Locations of the various package directories.
+This is a list each of whose elements describes one directory.
+A directory description is a three-element list.
+The first element is either an absolute path or a subdirectory
+in the XEmacs hierarchy.
+The second component is one of the symbols EARLY, LATE, LAST,
+depending on the load-path segment the hierarchy is supposed to
+show up in.
+The third component is a thunk which, if it returns NIL, causes
+the directory to be ignored.")
+
 (defun package-get-key-1 (info key)
   "Locate keyword `key' in list."
   (cond ((null info)
@@ -298,52 +315,13 @@
 
 ;; Path setup
 
-(defun packages-find-package-path (roots)
-  "Construct the package path underneath installation roots ROOTS."
-  (let ((envvar-value (getenv "EMACSPACKAGEPATH")))
-    (if envvar-value
-	(decode-path-internal envvar-value)
-      (let ((site-base-directory (paths-find-site-directory roots "packages"))
-	    (version-base-directory (paths-find-version-directory roots "packages")))
-	(if (or site-base-directory version-base-directory)
-	    (let ((site-mule-directory
-		   (and (featurep 'mule)
-			(paths-find-site-directory roots
-						   "mule-packages")))
-		  (version-mule-directory
-		   (and (featurep 'mule)
-			(paths-find-version-directory roots
-						      "mule-packages")))
-		  ;; There needs to be a cleverer way of doing this
-		  (site-infodock-directory
-		   (and (featurep 'infodock)
-			(paths-find-site-directory roots
-						   "infodock-packages")))
-		  (version-infodock-directory
-		   (and (featurep 'infodock)
-			(paths-find-version-directory roots
-						      "infodock-packages"))))
-	      (append '("~/.xemacs/")
-		      '(nil)
-		      (and version-infodock-directory
-			   (null (string-equal version-infodock-directory
-					       site-infodock-directory))
-			   (list version-infodock-directory))
-		      (and site-infodock-directory
-			   (list site-infodock-directory))
-		      (and version-mule-directory
-			   (null (string-equal version-mule-directory
-					      site-mule-directory))
-			   (list version-mule-directory))
-		      (and site-mule-directory
-			   (list site-mule-directory))
-		      (and version-base-directory
-			   (null (string-equal version-base-directory
-					      site-base-directory))
-			   (list version-base-directory))
-		      (and site-base-directory
-			   (list site-base-directory))))
-	  configure-package-path)))))
+(defun packages-find-package-directories (roots base)
+  "Find a set of package directories."
+  (let ((version-directory (paths-find-version-directory roots base))
+	(site-directory (paths-find-site-directory roots base)))
+    (paths-uniq-append
+     (and version-directory (list version-directory))
+     (and site-directory (list site-directory)))))
 
 (defvar packages-special-bases '("etc" "info" "lisp" "lib-src" "bin")
   "Special subdirectories of packages.")
@@ -355,35 +333,82 @@
 				     packages-special-bases)))
 
 (defun packages-split-path (path)
-  "Split PATH at NIL, return pair with two components.
+  "Split PATH at \"/\", return pair with two components.
 The second component is shared with PATH."
   (let ((reverse-tail '())
 	(rest path))
-    (while (and rest (null (null (car rest))))
+    (while (and rest (null (string-equal "/" (car rest))))
       (setq reverse-tail (cons (car rest) reverse-tail))
       (setq rest (cdr rest)))
     (if (null rest)
 	(cons path nil)
       (cons (nreverse reverse-tail) (cdr rest)))))
 
-(defun packages-find-packages (package-path &optional inhibit)
-  "Search for all packages in PACKAGE-PATH.
-PACKAGE-PATH may distinguish (by NIL-separation) between early,
-late and last packages.
-If INHIBIT is non-NIL, return empty paths.
+(defun packages-split-package-path (package-path)
+  "Split up PACKAGE-PATH into early, late and last components.
+The separation is by \"/\" components.
 This returns (LIST EARLY-PACKAGES LATE-PACKAGES LAST-PACKAGES)."
+  ;; When in doubt, it's late
+  (let* ((stuff (packages-split-path package-path))
+	 (early (and (cdr stuff) (car stuff)))
+	 (late+last (or (cdr stuff) (car stuff)))
+	 (stuff (packages-split-path late+last))
+	 (late (car stuff))
+	 (last (cdr stuff)))
+    (list (packages-find-packages-in-directories early)
+	  (packages-find-packages-in-directories late)
+	  (packages-find-packages-in-directories last))))
+
+(defun packages-deconstruct (list consumer)
+  "Deconstruct LIST and feed it to CONSUMER."
+  (apply consumer list))
+
+(defun packages-find-packages-by-name (roots name)
+  "Find a package hierarchy by its name."
+  (packages-find-packages-in-directories
+   (if (and (file-name-absolute-p name)
+	    (file-name-directory (expand-file-name name)))
+       (list (file-name-as-directory (expand-file-name name)))
+    (packages-find-package-directories roots name))))
+
+(defun packages-find-packages-at-time
+  (roots package-locations time &optional default)
+  "Find packages at given time.
+For the format of PACKAGE-LOCATIONS, see the global variable of the same name.
+TIME is either 'EARLY, 'LATE, or 'LAST.
+DEFAULT is a default list of packages."
+  (let ((packages '()))
+    (while package-locations
+      (packages-deconstruct 
+       (car package-locations)
+       #'(lambda (name a-time thunk)
+	   (if (and (eq time a-time)
+		    (funcall thunk))
+	       (setq packages
+		     (nconc packages
+			    (packages-find-packages-by-name roots name))))))
+      (setq package-locations (cdr package-locations)))
+    (paths-uniq-append packages
+		       default)))
+
+(defun packages-find-packages (roots &optional inhibit)
+  "Find the packages."
   (if inhibit
       (list '() '() '())
-    ;; When in doubt, it's late
-    (let* ((stuff (packages-split-path package-path))
-	   (early (and (cdr stuff) (car stuff)))
-	   (late+last (or (cdr stuff) (car stuff)))
-	   (stuff (packages-split-path late+last))
-	   (late (car stuff))
-	   (last (cdr stuff)))
-      (list (packages-find-packages-in-directories early)
-	    (packages-find-packages-in-directories late)
-	    (packages-find-packages-in-directories last)))))
+    (let ((envvar-value (getenv "EMACSPACKAGEPATH")))
+      (if envvar-value
+	  (packages-split-package-path envvar-value)
+	(packages-deconstruct
+	 (packages-split-package-path configure-package-path)
+	 #'(lambda (configure-early-packages
+		    configure-late-packages
+		    configure-last-packages)
+	     (list (packages-find-packages-at-time roots package-locations 'early
+						   configure-early-packages)
+		   (packages-find-packages-at-time roots package-locations 'late
+						   configure-late-packages)
+		   (packages-find-packages-at-time roots package-locations 'last
+						   configure-last-packages))))))))
 
 (defun packages-find-package-library-path (packages suffixes)
   "Construct a path into a component of the packages hierarchy.
--- a/lisp/process.el	Mon Aug 13 10:28:54 2007 +0200
+++ b/lisp/process.el	Mon Aug 13 10:29:42 2007 +0200
@@ -304,9 +304,7 @@
  BUFFER may be also nil, meaning that this process is not associated
  with any buffer
 Third arg is program file name.  It is searched for as in the shell.
-Remaining arguments are strings to give program as arguments.
-INCODE and OUTCODE specify the coding-system objects used in input/output
- from/to the process."
+Remaining arguments are strings to give program as arguments."
   (apply 'start-process-internal name buffer program program-args))
 
 (defun open-network-stream (name buffer host service)
--- a/lisp/setup-paths.el	Mon Aug 13 10:28:54 2007 +0200
+++ b/lisp/setup-paths.el	Mon Aug 13 10:29:42 2007 +0200
@@ -76,20 +76,24 @@
 
 (defun paths-construct-info-path (roots early-packages late-packages last-packages)
   "Construct the info path."
-  (append
-   (packages-find-package-info-path early-packages)
-   (packages-find-package-info-path late-packages)
-   (let ((info-directory
-	  (paths-find-version-directory roots "info"
-					nil
-					configure-info-directory)))
-     (and info-directory
-	  (list info-directory)))
-   (packages-find-package-info-path last-packages)
-   (let ((info-path-envval (getenv "INFOPATH")))
-     (if info-path-envval
-	 (decode-path-internal info-path-envval)
-       (paths-directories-which-exist configure-info-path)))))
+  (let ((info-path-envval (getenv "INFOPATH")))
+    (paths-uniq-append
+     (append
+      (let ((info-directory
+	     (paths-find-version-directory roots "info"
+					   nil
+					   configure-info-directory)))
+	(and info-directory
+	     (list info-directory)))
+      (packages-find-package-info-path early-packages)
+      (packages-find-package-info-path late-packages)
+      (packages-find-package-info-path last-packages)
+      (and info-path-envval
+	   (decode-path-internal info-path-envval)))
+     (and (not info-path-envval)
+	  (paths-uniq-append
+	   (paths-directories-which-exist configure-info-path)
+	   (paths-directories-which-exist '("/usr/local/info/" "/usr/info/")))))))
 
 (defun paths-find-doc-directory (roots)
   "Find the documentation directory."
@@ -97,7 +101,7 @@
 
 (defun paths-find-lock-directory (roots)
   "Find the lock directory."
-  (paths-find-site-path roots "lock" "EMACSLOCKDIR" configure-lock-directory))
+  (paths-find-site-directory roots "lock" "EMACSLOCKDIR" configure-lock-directory))
 
 (defun paths-find-superlock-file (lock-directory)
   "Find the superlock file."
--- a/lisp/startup.el	Mon Aug 13 10:28:54 2007 +0200
+++ b/lisp/startup.el	Mon Aug 13 10:29:42 2007 +0200
@@ -345,6 +345,7 @@
 		 stream))
 	(princ (format "\nexec-directory is %S" exec-directory) stream)
 	(princ (format "\ndata-directory is %S" data-directory) stream)
+	(princ (format "\ndata-directory-list is %S" data-directory-list) stream)
 	(princ (format "\ndoc-directory is %S" doc-directory) stream)
 	(princ (format "\nload-path is %S" load-path) stream)
 	(princ "\n\n" stream)))
@@ -1016,13 +1017,11 @@
 If INHIBIT-SITE-LISP is non-NIL, don't do site-lisp.
 It's idempotent, so call this as often as you like!"
 
-  (setq package-path (packages-find-package-path roots))
-
   (apply #'(lambda (early late last)
 	     (setq early-packages early)
 	     (setq late-packages late)
 	     (setq last-packages last))
-	 (packages-find-packages package-path inhibit-packages))
+	 (packages-find-packages roots inhibit-packages))
 
   (setq early-package-load-path (packages-find-package-load-path early-packages))
   (setq late-package-load-path (packages-find-package-load-path late-packages))
--- a/lisp/x-toolbar.el	Mon Aug 13 10:28:54 2007 +0200
+++ b/lisp/x-toolbar.el	Mon Aug 13 10:29:42 2007 +0200
@@ -463,8 +463,69 @@
    icon-list  )
   )
 
+(defvar toolbar-vector-open 
+  [toolbar-file-icon            toolbar-open	t       "Open a file"]
+  "Define the vector for the \"Open\" toolbar button")
+
+(defvar toolbar-vector-dired
+  [toolbar-folder-icon	        toolbar-dired	t	"View directory"]
+  "Define the vector for the \"Dired\" toolbar button")
+
+(defvar toolbar-vector-save
+  [toolbar-disk-icon		toolbar-save	t	"Save buffer"]
+  "Define the vector for the \"Save\" toolbar button")
+
+(defvar toolbar-vector-print
+  [toolbar-printer-icon	        toolbar-print	t	"Print buffer"]
+  "Define the vector for the \"Printer\" toolbar button")
+
+(defvar toolbar-vector-cut
+  [toolbar-cut-icon		toolbar-cut	t	"Kill region"]
+  "Define the vector for the \"Cut\" toolbar button")
+
+(defvar toolbar-vector-copy
+  [toolbar-copy-icon		toolbar-copy	t	"Copy region"]
+  "Define the vector for the \"Copy\" toolbar button")
+
+(defvar toolbar-vector-paste
+  [toolbar-paste-icon		toolbar-paste	t	"Paste from clipboard"]
+  "Define the vector for the \"Paste\" toolbar button")
+
+(defvar toolbar-vector-undo
+  [toolbar-undo-icon		toolbar-undo	t	"Undo edit"]
+  "Define the vector for the \"Undo\" toolbar button")
+
+(defvar toolbar-vector-spell
+  [toolbar-spell-icon		toolbar-ispell	t	"Spellcheck"]
+  "Define the vector for the \"Spell\" toolbar button")
+
+(defvar toolbar-vector-replace
+  [toolbar-replace-icon	        toolbar-replace	t	"Replace text"]  
+  "Define the vector for the \"Replace\" toolbar button")
+
+(defvar toolbar-vector-mail
+  [toolbar-mail-icon		toolbar-mail	t	"Mail"]
+  "Define the vector for the \"Mail\" toolbar button")
+
+(defvar toolbar-vector-info
+  [toolbar-info-icon		toolbar-info	t	"Information"]
+  "Define the vector for the \"Info\" toolbar button")
+
+(defvar toolbar-vector-compile
+  [toolbar-compile-icon	        toolbar-compile	t	"Compile"]
+  "Define the vector for the \"Compile\" toolbar button")
+
+(defvar toolbar-vector-debug
+  [toolbar-debug-icon		toolbar-debug	t	"Debug"]
+  "Define the vector for the \"Debug\" toolbar button")
+
+(defvar toolbar-vector-news
+  [toolbar-news-icon		toolbar-news	t	"News"]
+  "Define the vector for the \"News\" toolbar button")
+
 (defvar initial-toolbar-spec
-  '(;;[toolbar-last-win-icon	pop-window-configuration
+  (list
+    ;;[toolbar-last-win-icon	pop-window-configuration
     ;;(frame-property (selected-frame)
     ;;		'window-config-stack) t	"Most recent window config"]
     ;; #### Illicit knowledge?
@@ -478,23 +539,22 @@
     ;;(frame-property (selected-frame)
     ;;	'window-config-unpop-stack) t "Undo \"Most recent window config\""]
     ;; #### Illicit knowledge?
-
-    [toolbar-file-icon		toolbar-open	t	"Open a file"]
-    [toolbar-folder-icon	toolbar-dired	t	"View directory"]
-    [toolbar-disk-icon		toolbar-save	t	"Save buffer"]
-    [toolbar-printer-icon	toolbar-print	t	"Print buffer"]
-    [toolbar-cut-icon		toolbar-cut	t	"Kill region"]
-    [toolbar-copy-icon		toolbar-copy	t	"Copy region"]
-    [toolbar-paste-icon		toolbar-paste	t	"Paste from clipboard"]
-    [toolbar-undo-icon		toolbar-undo	t	"Undo edit"]
-    [toolbar-spell-icon		toolbar-ispell	t	"Spellcheck"]
-    [toolbar-replace-icon	toolbar-replace	t	"Replace text"]
-    [toolbar-mail-icon		toolbar-mail	t	"Mail"]
-    [toolbar-info-icon		toolbar-info	t	"Information"]
-    [toolbar-compile-icon	toolbar-compile	t	"Compile"]
-    [toolbar-debug-icon		toolbar-debug	t	"Debug"]
-    [toolbar-news-icon		toolbar-news	t	"News"]
-)
+    toolbar-vector-open
+    toolbar-vector-dired
+    toolbar-vector-save
+    toolbar-vector-print
+    toolbar-vector-cut
+    toolbar-vector-copy
+    toolbar-vector-paste
+    toolbar-vector-undo
+    toolbar-vector-spell
+    toolbar-vector-replace
+    toolbar-vector-mail
+    toolbar-vector-info
+    toolbar-vector-compile
+    toolbar-vector-debug
+    toolbar-vector-news
+    )
   "The initial toolbar for a buffer.")
 
 (defun x-init-toolbar-from-resources (locale)
--- a/man/xemacs-faq.texi	Mon Aug 13 10:28:54 2007 +0200
+++ b/man/xemacs-faq.texi	Mon Aug 13 10:29:42 2007 +0200
@@ -4,17 +4,18 @@
 @settitle Frequently asked questions about XEmacs
 @setchapternewpage off
 @c %**end of header
-
+@finalout
 @titlepage
 @title XEmacs FAQ
 @subtitle Frequently asked questions about XEmacs
-@subtitle Last Modified: 1997-12-04 02:05:05 EET
+@subtitle Last Modified: $Date: 1998/04/07 05:39:30 $
 @sp 1
 @author Tony Rossini <arossini@@stat.sc.edu>
 @author Ben Wing <wing@@666.com>
 @author Chuck Thompson <cthomp@@xemacs.org>
 @author Steve Baur <steve@@xemacs.org>
 @author Andreas Kaempf <andreas@@sccon.com>
+@author Christian Nyb@o{} <chr@@mediascience.no>
 @page
 @end titlepage
 
@@ -32,10 +33,14 @@
 FITNESS FOR A PARTICULAR PURPOSE.
 
 If you have a Web browser, the official hypertext version is at
-<URL:http://www.sccon.com/~andreas/xemacs-faq.html> and also at
-<URL:http://www.xemacs.org/faq/xemacs-faq.html>.  This version is much
-nicer than the unofficial hypertext versions that are archived at
-Utrecht, Oxford, Smart Pages, and other FAQ archives.
+@iftex 
+@* 
+@end iftex 
+@uref{http://www.xemacs.org/faq/xemacs-faq.html}.  
+
+This version is somewhat nicer than the unofficial hypertext versions
+that are archived at Utrecht, Oxford, Smart Pages, and other FAQ
+archives.
 
 @menu
 * Introduction::        Introduction, Policy, Credits.
@@ -56,10 +61,10 @@
 * Q1.0.3::      Where can I find it?
 * Q1.0.4::      Why Another Version of Emacs?
 * Q1.0.5::      Why Haven't XEmacs and GNU Emacs Merged?
-* Q1.0.6::      Where can I get help?
+* Q1.0.6::      Where can I get help?  
 * Q1.0.7::      Where is the mailing list archived?
 * Q1.0.8::      How do you pronounce XEmacs?
-* Q1.0.9::      What does XEmacs look like?
+* Q1.0.9::      What does XEmacs look like? 
 * Q1.0.10::     Is there a port of XEmacs to Microsoft ('95 or NT)?
 * Q1.0.11::     Is there a port of XEmacs to the Macintosh?
 * Q1.0.12::     Is there a port of XEmacs to NextStep?
@@ -73,17 +78,17 @@
 
 Credits:
 * Q1.2.1::      Who wrote XEmacs?
-* Q1.2.2::      Who contributed to this version of the FAQ?
-* Q1.2.3::      Who contributed to the FAQ in the past?
+* Q1.2.2::      Who contributed to this version of the FAQ? 
+* Q1.2.3::      Who contributed to the FAQ in the past? 
 
 Internationalization:
-* Q1.3.1::      What is the status of XEmacs v20?
+* Q1.3.1::      What is the status of XEmacs v20? 
 * Q1.3.2::      What is the status of Asian-language support, aka @var{mule}?
 * Q1.3.3::      How do I type non-ASCII characters?
 * Q1.3.4::      Can XEmacs messages come out in a different language?
 * Q1.3.5::      Please explain the various input methods in MULE/XEmacs 20.0
 * Q1.3.6::      How do I portably code for MULE/XEmacs 20.0?
-* Q1.3.7::      How about Cyrillic Modes?
+* Q1.3.7::      How about Cyrillic Modes? 
 
 Getting Started:
 * Q1.4.1::      What is a @file{.emacs} and is there a sample one?
@@ -96,20 +101,20 @@
 
 Installation and Trouble Shooting
 
-* Q2.0.1::      Running XEmacs without installing.
-* Q2.0.2::      XEmacs is too big.
+* Q2.0.1::      Running XEmacs without installing. 
+* Q2.0.2::      XEmacs is too big. 
 * Q2.0.3::      Compiling XEmacs with Netaudio.
 * Q2.0.4::      Problems with Linux and ncurses.
 * Q2.0.5::      Do I need X11 to run XEmacs?
 * Q2.0.6::      I'm having strange crashes.  What do I do?
 * Q2.0.7::      Libraries in non-standard locations.
 * Q2.0.8::      can't resolve symbol _h_errno
-* Q2.0.9::      Where do I find external libraries?
+* Q2.0.9::      Where do I find external libraries? 
 * Q2.0.10::     After I run configure I find a coredump, is something wrong?
 * Q2.0.11::     XEmacs can't resolve host names.
-* Q2.0.12::     Why can't I strip XEmacs?
+* Q2.0.12::     Why can't I strip XEmacs? 
 * Q2.0.13::     Can't link XEmacs on Solaris with Gcc.
-* Q2.0.14::     Make on HP/UX 9 fails after linking temacs
+* Q2.0.14::     Make on HP/UX 9 fails after linking temacs 
 
 Trouble Shooting:
 * Q2.1.1::      XEmacs just crashed on me!
@@ -138,13 +143,13 @@
 
 Customization and Options
 
-* Q3.0.1::      What version of Emacs am I running?
+* Q3.0.1::      What version of Emacs am I running? 
 * Q3.0.2::      How do I evaluate Elisp expressions?
 * Q3.0.3::      @code{(setq tab-width 6)} behaves oddly.
 * Q3.0.4::      How can I add directories to the @code{load-path}?
 * Q3.0.5::      How to check if a lisp function is defined?
 * Q3.0.6::      Can I force the output of @code{(face-list)} to a buffer?
-* Q3.0.7::      Font selections don't get saved after @code{Save Options}.
+* Q3.0.7::      Font selections don't get saved after @code{Save Options}. 
 * Q3.0.8::      How do I make a single minibuffer frame?
 * Q3.0.9::      What is @code{Customize}?
 
@@ -156,13 +161,13 @@
 * Q3.1.5::      How can I get the icon to just say @samp{XEmacs}?
 * Q3.1.6::      How can I have the window title area display the full path?
 * Q3.1.7::      @samp{xemacs -name junk} doesn't work?
-* Q3.1.8::      @samp{-iconic} doesn't work.
+* Q3.1.8::      @samp{-iconic} it doesn't work.
 
 Textual Fonts & Colors:
 * Q3.2.1::      How can I set color options from @file{.emacs}?
 * Q3.2.2::      How do I set the text, menu and modeline fonts?
 * Q3.2.3::      How can I set the colors when highlighting a region?
-* Q3.2.4::      How can I limit color map usage?
+* Q3.2.4::      How can I limit color map usage? 
 * Q3.2.5::      My tty supports color, but XEmacs doesn't use them.
 
 The Modeline:
@@ -173,7 +178,7 @@
 * Q3.3.5::      How can one change the modeline color based on the mode used?
 
 3.4 Multiple Device Support:
-* Q3.4.1::      How do I open a frame on another screen of my multi-headed display?
+* Q3.4.1::      How do I open a frame on another screen of my multi-headed display?  
 * Q3.4.2::      Can I really connect to a running XEmacs after calling up over a modem?  How?
 
 3.5 The Keyboard:
@@ -182,7 +187,7 @@
 * Q3.5.3::      How do I bind C-. and C-; to scroll one line up and down?
 * Q3.5.4::      Globally binding @kbd{Delete}?
 * Q3.5.5::      Scrolling one line at a time.
-* Q3.5.6::      How to map @kbd{Help} key alone on Sun type4 keyboard?
+* Q3.5.6::      How to map @kbd{Help} key alone on Sun type4 keyboard? 
 * Q3.5.7::      How can you type in special characters in XEmacs?
 * Q3.5.8::      Why does @code{(global-set-key [delete-forward] 'delete-char)} complain?
 * Q3.5.9::      How do I make the Delete key delete forward?
@@ -217,7 +222,7 @@
 * Q3.9.4::      How can I get automatic horizontal scrolling?
 
 Text Selections:
-* Q3.10.1::     How can I turn off or change highlighted selections?
+* Q3.10.1::     How can I turn off or change highlighted selections? 
 * Q3.10.2::     How do I get that typing on an active region removes it?
 * Q3.10.3::     Can I turn off the highlight during isearch?
 * Q3.10.4::     How do I turn off highlighting after @kbd{C-x C-p} (mark-page)?
@@ -244,7 +249,7 @@
 * Q4.1.3::      Is it true that W3 supports style sheets and tables?
 
 Reading Netnews and Mail with Gnus:
-* Q4.2.1::      GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus, Quassia Gnus, argh!
+* Q4.2.1::      GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus, Quassia Gnus, argh! 
 * Q4.2.2::      [This question intentionally left blank]
 * Q4.2.3::      How do I make Gnus stay within a single frame?
 * Q4.2.4::      How do I customize the From: line?
@@ -257,7 +262,7 @@
 * Q4.3.5::      Where do I find pstogif (required by tm)?
 
 Sparcworks, EOS, and WorkShop:
-* Q4.4.1::      What is SPARCworks, EOS, and WorkShop
+* Q4.4.1::      What is SPARCworks, EOS, and WorkShop 
 
 Energize:
 * Q4.5.1::      What is/was Energize?
@@ -283,8 +288,8 @@
 * Q5.0.7::      Telnet from shell filters too much.
 * Q5.0.8::      Why does edt emulation not work?
 * Q5.0.9::      How can I emulate VI and use it as my default mode?
-* Q5.0.10::     [This question intentionally left blank]
-* Q5.0.11::     Filladapt doesn't work in 19.15?
+* Q5.0.10::     [This question intentionally left blank] 
+* Q5.0.11::     Filladapt doesn't work in 19.15? 
 * Q5.0.12::     How do I disable gnuserv from opening a new frame?
 * Q5.0.13::     How do I start gnuserv so that each subsequent XEmacs is a client?
 * Q5.0.14::     Strange things are happening in Shell Mode.
@@ -293,6 +298,7 @@
 * Q5.0.17::     How can I get two instances of info?
 * Q5.0.18::     I upgraded to XEmacs 19.14 and gnuserv stopped working
 * Q5.0.19::     Is there something better than LaTeX mode?
+* Q5.0.20::     Is there a way to start a new XEmacs if there's no gnuserv running, and otherwise use gnuclient?
 
 Emacs Lisp Programming Techniques:
 * Q5.1.1::      The difference in key sequences between XEmacs and GNU Emacs?
@@ -329,39 +335,41 @@
 
 * Q6.0.1::      What is new in 20.2?
 * Q6.0.2::      What is new in 20.3?
-* Q6.0.3::      Procedural changes in XEmacs development.
+* Q6.0.3::      What is new in 20.4?
+* Q6.0.4::      Procedural changes in XEmacs development.
 @end detailmenu
 @end menu
 
 @node Introduction, Installation, Top, Top
-@chapter Introduction, Policy, Credits
-
-Learning XEmacs is a lifelong activity.  I've been using Emacs for
-over a decade now, and I'm still discovering new features.  Therefore
-this document cannot be complete.  Instead it is aimed at the person
-who is either considering XEmacs for their own use, or has just
-obtained it and is wondering what to do next.  It is also useful as a
-reference to available resources.
-
-The previous maintainer of the FAQ was Anthony Rossini
-<rossini@@stat.sc.edu>, who started it, after getting tired of hearing
-JWZ complain about repeatedly having to answer questions.  Ben Wing
-<ben@@666.com> and Chuck Thompson <cthomp@@xemacs.org>, the principal
-authors of XEmacs, then took over and Ben did a massive update
-reorganizing the whole thing.  At which point Anthony took back over,
-but then had to give it up again.  Some of the other contributors to
-this FAQ are listed later in this document.
+@unnumbered 1 Introduction, Policy, Credits
+
+Learning XEmacs is a lifelong activity.  Even people who have used Emacs
+for years keep discovering new features.  Therefore this document cannot
+be complete.  Instead it is aimed at the person who is either
+considering XEmacs for their own use, or has just obtained it and is
+wondering what to do next.  It is also useful as a reference to
+available resources.
+
+The previous maintainer of the FAQ was @email{rossini@@stat.sc.edu,
+Anthony Rossini}, who started it, after getting tired of hearing JWZ
+complain about repeatedly having to answer questions.
+@email{ben@@666.com, Ben Wing} and @email{cthomp@@xemacs.org, Chuck
+Thompson}, the principal authors of XEmacs, then took over and Ben did
+a massive update reorganizing the whole thing.  At which point Anthony
+took back over, but then had to give it up again.  Some of the other
+contributors to this FAQ are listed later in this document.
 
 The previous version was converted to hypertext format, and edited by
-Steven L. Baur <steve@@altair.xemacs.org>.  It was converted back to
-texinfo by Hrvoje Niksic <hniksic@@srce.hr>.
-
-Since Steve Baur is so busy putting out multiple versions of XEmacs I
-have taken on the task of maintaining the FAQ.  I use XEmacs on a daily
-basis and I wanted to give something back to the community that has made
-XEmacs possible.  If you notice any errors or items which should be
-added or amended to this FAQ please send email to Andreas Kaempf
-<andreas@@sccon.com>. Include @samp{XEmacs FAQ} on the Subject: line.
+@email{steve@@altair.xemacs.org, Steven L. Baur}.  It was converted back to
+texinfo by @email{hniksic@@srce.hr, Hrvoje Niksic}.
+
+The FAQ was then maintained by @email{andreas@@sccon.com, Andreas
+Kaempf}, who passed it on to @email{chr@@mediascience.no, Christian
+Nyb@o{}}, the current FAQ maintainer.
+
+If you notice any errors or items which should be added or amended to
+this FAQ please send email to @email{chr@@mediascience.no, Christian
+Nyb@o{}}. Include @samp{XEmacs FAQ} on the Subject: line.
 
 @menu
 Introduction:
@@ -370,10 +378,10 @@
 * Q1.0.3::      Where can I find it?
 * Q1.0.4::      Why Another Version of Emacs?
 * Q1.0.5::      Why Haven't XEmacs and GNU Emacs Merged?
-* Q1.0.6::      Where can I get help?
+* Q1.0.6::      Where can I get help?  
 * Q1.0.7::      Where is the mailing list archived?
 * Q1.0.8::      How do you pronounce XEmacs?
-* Q1.0.9::      What does XEmacs look like?
+* Q1.0.9::      What does XEmacs look like? 
 * Q1.0.10::     Is there a port of XEmacs to Microsoft ('95 or NT)?
 * Q1.0.11::     Is there a port of XEmacs to the Macintosh?
 * Q1.0.12::     Is there a port of XEmacs to NextStep?
@@ -387,17 +395,17 @@
 
 Credits:
 * Q1.2.1::      Who wrote XEmacs?
-* Q1.2.2::      Who contributed to this version of the FAQ?
-* Q1.2.3::      Who contributed to the FAQ in the past?
+* Q1.2.2::      Who contributed to this version of the FAQ? 
+* Q1.2.3::      Who contributed to the FAQ in the past? 
 
 Internationalization:
-* Q1.3.1::      What is the status of XEmacs v20?
+* Q1.3.1::      What is the status of XEmacs v20? 
 * Q1.3.2::      What is the status of Asian-language support, aka @var{mule}?
 * Q1.3.3::      How do I type non-ASCII characters?
 * Q1.3.4::      Can XEmacs messages come out in a different language?
 * Q1.3.5::      Please explain the various input methods in MULE/XEmacs 20.0
 * Q1.3.6::      How do I portably code for MULE/XEmacs 20.0?
-* Q1.3.7::      How about Cyrillic Modes?
+* Q1.3.7::      How about Cyrillic Modes? 
 
 Getting Started:
 * Q1.4.1::      What is a @file{.emacs} and is there a sample one?
@@ -410,7 +418,9 @@
 @end menu
 
 @node Q1.0.1, Q1.0.2, Introduction, Introduction
-@section What is XEmacs?
+@unnumberedsec 1.0: Introduction
+@unnumberedsubsec Q1.0.1: What is XEmacs?
+
 
 An alternative to GNU Emacs, originally based on an early alpha version
 of FSF's version 19, and has diverged quite a bit since then.  XEmacs
@@ -419,32 +429,30 @@
 track changes to GNU Emacs while also working to add new features.
 
 @node Q1.0.2, Q1.0.3, Q1.0.1, Introduction
-@section What is the current version of XEmacs?
-
-The current stable version of XEmacs is 20.3, released in November,
-1997.
-
-The next feature release will be XEmacs 20.4.
+@unnumberedsubsec Q1.0.2: What is the current version of XEmacs?
+
+XEmacs 20.4 is a minor upgrade from 20.3, containing many bugfixes. It
+was released in February 1998.
 
 XEmacs 19.16 was the last release of v19, released in November, 1997,
 which was also the last version without international language support.
 
 @node Q1.0.3, Q1.0.4, Q1.0.2, Introduction
-@section Where can I find it?
+@unnumberedsubsec Q1.0.3: Where can I find it?
 
 The canonical source and binaries is found via anonymous FTP at:
 
 @example
-<URL:ftp.xemacs.org:/pub/xemacs/>
+@uref{ftp://ftp.xemacs.org/pub/xemacs/}
 @end example
 
 @node Q1.0.4, Q1.0.5, Q1.0.3, Introduction
-@section Why Another Version of Emacs?
+@unnumberedsubsec Q1.0.4: Why Another Version of Emacs?
 
 For a detailed description of the differences between GNU Emacs and
 XEmacs and a detailed history of XEmacs, check out the
 @example
-<URL:http://www.xemacs.org/NEWS.html>
+@uref{http://www.xemacs.org/NEWS.html, NEWS file}
 @end example
 
 However, here is a list of some of the reasons why we think you might
@@ -511,7 +519,7 @@
 @end itemize
 
 @node Q1.0.5, Q1.0.6, Q1.0.4, Introduction
-@section Why Haven't XEmacs and GNU Emacs Merged?
+@unnumberedsubsec Q1.0.5: Why Haven't XEmacs and GNU Emacs Merged?
 
 There are currently irreconcilable differences in the views about
 technical, programming, design and organizational matters between RMS
@@ -519,12 +527,12 @@
 take place in the short-term future.
 
 If you have a comment to add regarding the merge, it is a good idea to
-avoid posting to the newsgroups, because of the very heated flamewars
-that often result.  Mail your questions to <xemacs-beta@@xemacs.org> and
-<bug-gnu-emacs@@prep.ai.mit.edu>.
+avoid posting to the newsgroups,  because of the very heated flamewars
+that often result.  Mail your questions to @email{xemacs-beta@@xemacs.org} and 
+@email{bug-gnu-emacs@@prep.ai.mit.edu}.
 
 @node Q1.0.6, Q1.0.7, Q1.0.5, Introduction
-@section Where can I get help?
+@unnumberedsubsec Q1.0.6: Where can I get help?
 
 Probably the easiest way, if everything is installed, is to use info, by
 pressing @kbd{C-h i}, or selecting @code{Emacs Info} from the Help Menu.
@@ -533,7 +541,7 @@
 
 Try reading this FAQ, examining the regular GNU Emacs FAQ (which can be
 found with the Emacs 19 distribution) as well as at
-<URL:http://www.eecs.nwu.edu/emacs/faq/> and reading the Usenet group
+@uref{http://www.eecs.nwu.edu/emacs/faq/} and reading the Usenet group 
 comp.emacs.xemacs.
 
 If that does not help, try posting your question to comp.emacs.xemacs.
@@ -541,8 +549,8 @@
 
 If you cannot post or read Usenet news, there is a corresponding mailing
 list which is available.  It can be subscribed to by sending a message
-with a subject of @samp{subscribe} to <xemacs-request@@xemacs.org>
-for subscription information and <xemacs@@xemacs.org> to send messages
+with a subject of @samp{subscribe} to @email{xemacs-request@@xemacs.org}
+for subscription information and @email{xemacs@@xemacs.org} to send messages 
 to the list.
 
 To cancel a subscription, you @strong{must} use the xemacs-request
@@ -550,79 +558,85 @@
 removed.
 
 @node Q1.0.7, Q1.0.8, Q1.0.6, Introduction
-@section Where is the mailing list archived?
+@unnumberedsubsec Q1.0.7: Where is the mailing list archived?
 
 The mailing list was archived in the directory
 @example
-<URL:ftp://ftp.xemacs.org:/pub/mlists/>.
+@uref{ftp://ftp.xemacs.org/pub/mlists/}.
 @end example
 
 However, this archive is out of date.  The current mailing list server
 supports an @code{archive} feature, which may be utilized.
 
 @node Q1.0.8, Q1.0.9, Q1.0.7, Introduction
-@section How do you pronounce XEmacs?
+@unnumberedsubsec Q1.0.8: How do you pronounce XEmacs?
 
 I pronounce it @samp{Eks eemax}.
 
 @node Q1.0.9, Q1.0.10, Q1.0.8, Introduction
-@section What does XEmacs look like?
+@unnumberedsubsec Q1.0.9: What does XEmacs look like?
 
 Screen snapshots are available in the WWW version of the FAQ.
 @example
-<URL:http://www.xemacs.org/faq/xemacs-faq.html>
+@uref{http://www.xemacs.org/faq/xemacs-faq.html}
 @end example
 
 @node Q1.0.10, Q1.0.11, Q1.0.9, Introduction
-@section Is there a port of XEmacs to Microsoft ('95 or NT)?
-
-Thanks to efforts of many people, coordinated by David Hobley
-<davidh@@wr.com.au> and Marc Paquette <marcpa@@cam.org>, beta versions
-of XEmacs now run on 32-bit Windows platforms (NT and 95).  The current
-betas require having an X server to run XEmacs; however, a native NT/95
-port is in alpha, thanks to Jonathan Harris <jhar@@tardis.ed.ac.uk>.
+@unnumberedsubsec Q1.0.10: Is there a port of XEmacs to Microsoft ('95 or NT)?
+
+Thanks to efforts of many people, coordinated by
+@email{davidh@@wr.com.au, David Hobley} and @email{marcpa@@cam.org, Marc
+Paquette}, beta versions of XEmacs now run on 32-bit Windows platforms
+(NT and 95).  The current betas require having an X server to run
+XEmacs; however, a native NT/95 port is in alpha, thanks to
+@email{jhar@@tardis.ed.ac.uk, Jonathan Harris}.
 
 The NT development is now coordinated by a mailing list at
-<xemacs-nt@@xemacs.org>.  If you are willing to contribute or want to
-follow the progress, mail to <xemacs-nt-request@@xemacs.org> to
-subscribe.
+@email{xemacs-nt@@xemacs.org}.
+
+If you are willing to contribute or want to follow the progress, mail to
+@iftex
+@*
+@end iftex 
+@email{xemacs-nt-request@@xemacs.org} to subscribe.
 
 Furthermore, Altrasoft is seeking corporate and government sponsors to
 help fund a fully native port of XEmacs to Windows 95 and NT using
 full-time, senior-level staff working under a professionally managed
-project structure.  See <URL:http://www.altrasoft.com/> for more details
+project structure.  See @uref{http://www.altrasoft.com/, the Altrasoft
+web site} for more details
 or contact Altrasoft directly at 1-888-ALTSOFT.
 
 
 The closest existing port is @dfn{Win-Emacs}, which is based on Lucid
-Emacs 19.6.  Available from <URL:http://www.pearlsoft.com/>.
+Emacs 19.6.  Available from @uref{http://www.pearlsoft.com/}.
 
 There's a port of GNU Emacs (not XEmacs) at
 @example
-<URL:http://www.cs.washington.edu/homes/voelker/ntemacs.html>.
+@uref{http://www.cs.washington.edu/homes/voelker/ntemacs.html}.
 @end example
 
 @node Q1.0.11, Q1.0.12, Q1.0.10, Introduction
-@section Is there a port of XEmacs to the Macintosh?
+@unnumberedsubsec Q1.0.11: Is there a port of XEmacs to the Macintosh?
 
 There has been a port to the MachTen environment of XEmacs 19.13, but no
 patches have been submitted to the maintainers to get this in the
 mainstream distribution.
 
 @node Q1.0.12, Q1.0.13, Q1.0.11, Introduction
-@section Is there a port of XEmacs to NextStep?
-
-Carl Edman, apparently no longer at <cedman@@princeton.edu>, did the
-port of GNU Emacs to NeXTstep and expressed interest in doing the XEmacs
-port, but never went any farther.
+@unnumberedsubsec Q1.0.12: Is there a port of XEmacs to NextStep?
+
+Carl Edman, apparently no longer at @email{cedman@@princeton.edu}, did
+the port of GNU Emacs to NeXTstep and expressed interest in doing the
+XEmacs port, but never went any farther.
 
 @node Q1.0.13, Q1.0.14, Q1.0.12, Introduction
-@section Is there a port of XEmacs to OS/2?
+@unnumberedsubsec Q1.0.13: Is there a port of XEmacs to OS/2?
 
 No, and there is no news of anyone working on it.
 
 @node Q1.0.14, Q1.1.1, Q1.0.13, Introduction
-@section Where can I obtain a printed copy of the XEmacs users manual?
+@unnumberedsubsec Q1.0.14: Where can I obtain a printed copy of the XEmacs users manual?
 
 Altrasoft Associates, a firm specializing in Emacs-related support and
 development, will be maintaining the XEmacs user manual.  The firm plans
@@ -630,13 +644,14 @@
 @c This used to say `March 1997'!
 
 @example
-  Web:     http://www.xemacs.com
-  E-mail:  <info@@xemacs.com>
+  Web:     @uref{http://www.xemacs.com}
+  E-mail:  @email{info@@xemacs.com}
   Tel:     +1 408 243 3300
 @end example
 
 @node Q1.1.1, Q1.1.2, Q1.0.14, Introduction
-@section What is the FAQ editorial policy?
+@unnumberedsec 1.1: Policies
+@unnumberedsubsec Q1.1.1: What is the FAQ editorial policy?
 
 The FAQ is actively maintained and modified regularly.  All links should
 be up to date.
@@ -646,8 +661,11 @@
 month.  Preexisting questions that have been changed are marked as such.
 Brand new questions are tagged.
 
-All submissions are welcome.  E-mail submissions to Andreas Kaempf
-<andreas@@sccon.com>.
+All submissions are welcome.  E-mail submissions
+to @iftex
+@*
+@end iftex 
+@email{chr@@mediascience.no, Christian Nyb@o{}}.
 
 Please make sure that @samp{XEmacs FAQ} appears on the Subject: line.
 If you think you have a better way of answering a question, or think a
@@ -660,18 +678,18 @@
 author.
 
 @node Q1.1.2, Q1.1.3, Q1.1.1, Introduction
-@section How do I become a Beta Tester?
-
-Send an email message to <xemacs-beta-request@@xemacs.org> with a
-subject line of @samp{subscribe}.
+@unnumberedsubsec Q1.1.2: How do I become a Beta Tester?
+
+Send an email message to @email{xemacs-beta-request@@xemacs.org} with a
+subject line of @samp{subscribe}.  
 
 Be prepared to get your hands dirty, as beta testers are expected to
 identify problems as best they can.
 
 @node Q1.1.3, Q1.2.1, Q1.1.2, Introduction
-@section How do I contribute to XEmacs itself?
-
-Ben Wing <ben@@666.com> writes:
+@unnumberedsubsec Q1.1.3: How do I contribute to XEmacs itself?
+
+Ben Wing @email{ben@@666.com} writes:
 
 @quotation
 BTW if you have a wish list of things that you want added, you have to
@@ -701,28 +719,50 @@
 @end quotation
 
 @node Q1.2.1, Q1.2.2, Q1.1.3, Introduction
-@section Who wrote XEmacs?
+@unnumberedsec 1.2: Credits
+@unnumberedsubsec Q1.2.1: Who wrote XEmacs?
 
 XEmacs is the result of the time and effort of many people.  The
 developers responsible for the 19.16/20.x releases are:
 
 @itemize @bullet
-@item Martin Buchholz <martin@@xemacs.org>
-
-@item Steve Baur <steve@@altair.xemacs.org>
-
-@item Hrvoje Niksic <hniksic@@srce.hr>
+@item @email{martin@@xemacs.org, Martin Buchholz} 
+@ifhtml
+<img src="mrb.jpeg">
+@end ifhtml
+
+
+@item @email{steve@@altair.xemacs.org, Steve Baur}
+
+@ifhtml
+<img src="steve.gif">
+@end ifhtml
+
+
+@item @email{hniksic@@srce.hr, Hrvoje Niksic}
+
+@ifhtml
+<img src="hniksic.jpeg">
+@end ifhtml
+
 @end itemize
 
 The developers responsible for the 19.14 release are:
 
 @itemize @bullet
-@item Chuck Thompson <cthomp@@xemacs.org>
+@item @email{cthomp@@xemacs.org, Chuck Thompson}
+@ifhtml
+<img src="cthomp.jpeg">
+@end ifhtml
 
 Chuck was Mr. XEmacs from 19.11 through 19.14, and is responsible
 for XEmacs becoming a widely distributed program over the Internet.
 
-@item Ben Wing <ben@@666.com>
+@item @email{ben@@666.com, Ben Wing}
+@ifhtml
+<img src="wing.gif">
+@end ifhtml
+
 @end itemize
 
 Jamie Zawinski was Mr. Lucid Emacs from 19.0 through 19.10, the last
@@ -730,81 +770,85 @@
 most of those releases.
 
 @itemize @bullet
-@item Jamie Zawinski <jwz@@netscape.com>
-
-@item Richard Mlynarik <mly@@adoc.xerox.com>
+@item @email{jwz@@netscape.com, Jamie Zawinski}
+@ifhtml
+<img src="jwz.gif">
+@end ifhtml
+
+@item @email{mly@@adoc.xerox.com, Richard Mlynarik}
 @end itemize
 
 Along with many other contributors, partially enumerated in the
 @samp{About XEmacs} option in the Help menu.
 
 @node Q1.2.2, Q1.2.3, Q1.2.1, Introduction
-@section Who contributed to this version of the FAQ?
+@unnumberedsubsec Q1.2.2: Who contributed to this version of the FAQ?
 
 The following people contributed valuable suggestions to building this
 version of the FAQ (listed in alphabetical order):
 
 @itemize @bullet
-@item SL Baur <steve@@xemacs.org>
-
-@item Hrvoje Niksic <hniksic@@srce.hr>
-
-@item Aki Vehtari <Aki.Vehtari@@hut.fi>
+@item @email{steve@@xemacs.org, SL Baur}
+
+@item @email{hniksic@@srce.hr, Hrvoje Niksic}
+
+@item @email{Aki.Vehtari@@hut.fi, Aki Vehtari}
 
 @end itemize
 
 @node Q1.2.3, Q1.3.1, Q1.2.2, Introduction
-@section Who contributed to the FAQ in the past?
+@unnumberedsubsec Q1.2.3: Who contributed to the FAQ in the past?
 
 This is only a partial list, as many names were lost in a hard disk
 crash some time ago.
 
 @itemize @bullet
-@item Curtis.N.Bingham <binge@@aloft.att.com>
-
-@item Richard Caley <rjc@@cogsci.ed.ac.uk>
-
-@item Richard Cognot <cognot@@ensg.u-nancy.fr>
-
-@item William G. Dubuque <wgd@@martigny.ai.mit.edu>
-
-@item Eric Eide <eeide@@cs.utah.edu>
-
-@item Chris Flatters <cflatter@@nrao.edu>
-
-@item Evelyn Ginsparg <ginsparg@@adra.com>
-
-@item Marty Hall <hall@@aplcenmp.apl.jhu.edu>
-
-@item Darrell Kindred <dkindred@@cmu.edu>
-
-@item David Moore <dmoore@@ucsd.edu>
-
-@item Arup Mukherjee <arup+@@cmu.edu>
-
-@item Juergen Nickelsen <nickel@@prz.tu-berlin.de>
-
-@item Kevin R. Powell <powell@@csl.ncsa.uiuc.edu>
-
-@item Justin Sheehy <dworkin@@ccs.neu.edu>
-
-@item Stig <stig@@hackvan.com>
-
-@item Aki Vehtari <Aki.Vehtari@@hut.fi>
+@item @email{binge@@aloft.att.com, Curtis.N.Bingham}
+
+@item @email{rjc@@cogsci.ed.ac.uk, Richard Caley}
+
+@item @email{cognot@@ensg.u-nancy.fr, Richard Cognot}
+
+@item @email{wgd@@martigny.ai.mit.edu, William G. Dubuque}
+
+@item @email{eeide@@cs.utah.edu, Eric Eide}
+
+@item @email{cflatter@@nrao.edu, Chris Flatters}
+
+@item @email{ginsparg@@adra.com, Evelyn Ginsparg}
+
+@item @email{hall@@aplcenmp.apl.jhu.edu, Marty Hall}
+
+@item @email{dkindred@@cmu.edu, Darrell Kindred}
+
+@item @email{dmoore@@ucsd.edu, David Moore}
+
+@item @email{arup+@@cmu.edu, Arup Mukherjee}
+
+@item @email{nickel@@prz.tu-berlin.de, Juergen Nickelsen}
+
+@item @email{powell@@csl.ncsa.uiuc.edu, Kevin R. Powell}
+
+@item @email{dworkin@@ccs.neu.edu, Justin Sheehy}
+
+@item @email{stig@@hackvan.com, Stig}
+
+@item @email{Aki.Vehtari@@hut.fi, Aki Vehtari}
 @end itemize
 
 @node Q1.3.1, Q1.3.2, Q1.2.3, Introduction
-@section What is the status of XEmacs v20?
+@unnumberedsec 1.3: Internationalization
+@unnumberedsubsec Q1.3.1: What is the status of XEmacs v20?
 
 XEmacs v20 is the version of XEmacs that includes MULE (Asian-language)
 support.  XEmacs 20.0 was released in February 1997, followed by XEmacs
-20.2 in May and XEmacs 20.3 in November.  When compiled without MULE
-support, 20.3 is approximately as stable as 19.16, and probably faster
+20.2 in May, XEmacs 20.3 in November and XEmacs 20.4 in February 1998.  When compiled without MULE
+support, 20.4 is approximately as stable as 19.16, and probably faster
 (due to additional optimization work.)
 
 As of XEmacs 20.3, version 20 is @emph{the} supported version of
 XEmacs.  This means that 19.16 will optionally receive stability fixes
-(if any), but that all the real development work will be done on the v20
+(if any), but that all the real development work will be done on the v20 
 tree.
 
 The incompatible changes in XEmacs 20 include the additional byte-codes,
@@ -815,7 +859,7 @@
 
 However, to avoid breaking old code, many functions that should normally
 accept characters work with integers, and vice versa.  For more
-information, see the Lisp reference manual.  Here is a relevant excerpt,
+information, see the Lisp reference manual.  Here is a relevant excerpt, 
 for your convenience.
 
 @quotation
@@ -865,26 +909,26 @@
 @end quotation
 
 @node Q1.3.2, Q1.3.3, Q1.3.1, Introduction
-@section What is the status of Asian-language support, aka MULE?
+@unnumberedsubsec Q1.3.2: What is the status of Asian-language support, aka MULE?
 
 The MULE support works OK but still needs a fair amount of work before
 it's really solid.  We could definitely use some help here, esp. people
 who speak Japanese and will use XEmacs/MULE to work with Japanese and
 have some experience with E-Lisp.
 
-As the funding on Mule have stopped, Mule part of XEmacs is currently
+As the fundings on Mule have stopped, Mule part of XEmacs is currently
 looking for a full-time maintainer.  If you can provide help here, or
-are willing to fund the work, please mail to <xemacs-beta@@xemacs.org>.
+are willing to fund the work, please mail to @email{xemacs-beta@@xemacs.org}.
 
 @xref{Q1.1.2}.
 
 @node Q1.3.3, Q1.3.4, Q1.3.2, Introduction
-@section How do I type non-ASCII characters?
+@unnumberedsubsec Q1.3.3: How do I type non-ASCII characters?
 
 See question 3.5.7 (@xref{Q3.5.7}) in part 3 of this FAQ.
 
 @node Q1.3.4, Q1.3.5, Q1.3.3, Introduction
-@section Can XEmacs messages come out in a different language?
+@unnumberedsubsec Q1.3.4: Can XEmacs messages come out in a different language?
 
 The message-catalog support has mostly been written but doesn't
 currently work.  The first release of XEmacs 20 will @emph{not} support
@@ -901,12 +945,12 @@
 removing punctuation and capitalizing as above.
 
 @node Q1.3.5, Q1.3.6, Q1.3.4, Introduction
-@section Please explain the various input methods in MULE/XEmacs 20.0
-
-MORIOKA Tomohiko <morioka@@jaist.ac.jp> writes:
+@unnumberedsubsec Q1.3.5: Please explain the various input methods in MULE/XEmacs 20.0
+
+@email{morioka@@jaist.ac.jp, MORIOKA Tomohiko} writes:
 
 @quotation
-Original Mule supports the following input methods: Wnn4, Wnn6, Canna, SJ3
+Original Mule supports following input methods: Wnn4, Wnn6, Canna, SJ3
 and XIM. Interfaces for Wnn and SJ3 uses the @code{egg} user
 interface. Interface for Canna does not use @samp{egg}. I don't know
 about XIM. It is to support ATOK, of course, it may work for another
@@ -950,9 +994,9 @@
 @end quotation
 
 @node Q1.3.6, Q1.3.7, Q1.3.5, Introduction
-@section How do I portably code for MULE/XEmacs 20?
-
-MORIOKA Tomohiko <morioka@@jaist.ac.jp> writes:
+@unnumberedsubsec Q1.3.6: How do I portably code for MULE/XEmacs 20?
+
+@email{morioka@@jaist.ac.jp, MORIOKA Tomohiko} writes:
 
 @quotation
 MULE and XEmacs are quite different. So the application
@@ -999,34 +1043,42 @@
 @end quotation
 
 @node Q1.3.7, Q1.4.1, Q1.3.6, Introduction
-@section How about Cyrillic Modes?
-
-Ilya Zakharevich <ilya@@math.ohio-state.edu> writes:
+@unnumberedsubsec Q1.3.7: How about Cyrillic Modes?
+
+@email{ilya@@math.ohio-state.edu, Ilya Zakharevich} writes:
 
 @quotation
 There is a cyrillic mode in the file @file{mysetup.zip} in
-<URL:ftp://ftp.math.ohio-state.edu/pub/users/ilya/emacs/>.  This is a
-modification to Valery Alexeev's <ava@@math.jhu.ed> @file{russian.el}
-which can be obtained from <URL:ftp://ftp.cis.ohio-state.edu/pub/gnu/emacs/elisp-archive/packages/russian.el.Z>.
+@iftex
+@*
+@end iftex 
+@uref{ftp://ftp.math.ohio-state.edu/pub/users/ilya/emacs/}.  This is a
+modification to @email{ava@@math.jhu.ed, Valery Alexeev's} @file{russian.el}
+which can be obtained from @uref{ftp://ftp.cis.ohio-state.edu/pub/gnu/emacs/elisp-archive/packages/russian.el.Z}.
 @end quotation
 
-Dima Barsky <d.barsky@@ee.surrey.ac.uk> writes:
+@email{d.barsky@@ee.surrey.ac.uk, Dima Barsky} writes:
 
 @quotation
-There is another cyrillic mode for both GNU Emacs and XEmacs by Dmitrii
-(Mitya) Manin <manin@@camelot.mssm.edu> at
-<URL:http://camelot.mssm.edu/~manin/cyr.el>.
+There is another cyrillic mode for both GNU Emacs and XEmacs by
+@email{manin@@camelot.mssm.edu, Dmitrii
+(Mitya) Manin} at 
+@iftex
+
+@end iftex 
+@uref{http://camelot.mssm.edu/~manin/cyr.el}.
 @end quotation
 
-Rebecca Ore <rebecca.ore@@op.net> writes:
+@email{rebecca.ore@@op.net, Rebecca Ore} writes:
 
 @quotation
 The fullest resource I found on Russian language use (in and out of
-XEmacs) is <URL:http://sunsite.oit.unc.edu/sergei/Software/Software.html>
+XEmacs) is @uref{http://sunsite.oit.unc.edu/sergei/Software/Software.html}
 @end quotation
 
 @node Q1.4.1, Q1.4.2, Q1.3.7, Introduction
-@section What is a @file{.emacs} and is there a sample one?
+@unnumberedsec 1.4: Getting Started, Backing up & Recovery
+@unnumberedsubsec Q1.4.1: What is a @file{.emacs} and is there a sample one?
 
 The @file{.emacs} file is used to customize XEmacs to your tastes.  No
 two are alike, nor are they expected to be alike, but that's the point.
@@ -1040,28 +1092,34 @@
 @kbd{C-h v data-directory RET}.
 
 @node Q1.4.2, Q1.4.3, Q1.4.1, Introduction
-@section Can I use the same @file{.emacs} with the other Emacs?
+@unnumberedsubsec Q1.4.2: Can I use the same @file{.emacs} with the other Emacs?
 
 Yes.  The sample @file{.emacs} included in the XEmacs distribution will
 show you how to handle different versions and flavors of Emacs.
 
 @node Q1.4.3, Q1.4.4, Q1.4.2, Introduction
-@section Any good tutorials around?
+@unnumberedsubsec Q1.4.3: Any good tutorials around?
 
 There's the XEmacs tutorial available from the Help Menu, or by typing
-@kbd{C-h t}.
+@kbd{C-h t}. To check whether it's available in a non-english language,
+type @kbd{C-u C-h t TAB}, type the first letters of your preferred
+language, then type @kbd{RET}.
 
 There's an Emacs Lisp tutorial at
 
 @example
-<URL:ftp://prep.ai.mit.edu/pub/gnu/emacs-lisp-intro-1.04.tar.gz>.
+@uref{ftp://prep.ai.mit.edu/pub/gnu/emacs-lisp-intro-1.04.tar.gz}.
 @end example
 
-Erik Sundermann <erik@@petaxp.rug.ac.be> has made a tutorial web page at
-<URL:http://petaxp.rug.ac.be/~erik/xemacs/>.
+@email{erik@@petaxp.rug.ac.be, Erik Sundermann} has made a tutorial web
+page at 
+@iftex
+@*
+@end iftex 
+@uref{http://petaxp.rug.ac.be/~erik/xemacs/}.
 
 @node Q1.4.4, Q1.4.5, Q1.4.3, Introduction
-@section May I see an example of a useful XEmacs Lisp function?
+@unnumberedsubsec Q1.4.4: May I see an example of a useful XEmacs Lisp function?
 
 The following function does a little bit of everything useful.  It does
 something with the prefix argument, it examines the text around the
@@ -1096,7 +1154,7 @@
 @code{interactive} allows you to execute the command with @kbd{M-x}.
 
 @node Q1.4.5, Q1.4.6, Q1.4.4, Introduction
-@section And how do I bind it to a key?
+@unnumberedsubsec Q1.4.5: And how do I bind it to a key?
 
 To bind to a key do:
 
@@ -1107,7 +1165,7 @@
 Or interactively, @kbd{M-x global-set-key} and follow the prompts.
 
 @node Q1.4.6, Q1.4.7, Q1.4.5, Introduction
-@section What's the difference between a macro and a function?
+@unnumberedsubsec Q1.4.6: What's the difference between a macro and a function?
 
 Quoting from the Lisp Reference (a.k.a @dfn{Lispref}) Manual:
 
@@ -1127,7 +1185,7 @@
 other keys.  Refer to manual for details.
 
 @node Q1.4.7, , Q1.4.6, Introduction
-@section How come options saved with 19.13 don't work with 19.14 or later?
+@unnumberedsubsec Q1.4.7: How come options saved with 19.13 don't work with 19.14 or later?
 
 There's a problem with options of the form:
 
@@ -1152,32 +1210,32 @@
        (or (and (= emacs-major-version 19)
                 (>= emacs-minor-version 12))
            (>= emacs-major-version 20)))
- ...
- ))
+  ...
+  ))
 @end lisp
 
 @node Installation, Customization, Introduction, Top
-@chapter Installation and Trouble Shooting
+@unnumbered 2 Installation and Trouble Shooting
 
 This is part 2 of the XEmacs Frequently Asked Questions list.  This
 section is devoted to Installation, Maintenance and Trouble Shooting.
 
 @menu
 Installation:
-* Q2.0.1::      Running XEmacs without installing.
-* Q2.0.2::      XEmacs is too big.
+* Q2.0.1::      Running XEmacs without installing. 
+* Q2.0.2::      XEmacs is too big. 
 * Q2.0.3::      Compiling XEmacs with Netaudio.
 * Q2.0.4::      Problems with Linux and ncurses.
 * Q2.0.5::      Do I need X11 to run XEmacs?
 * Q2.0.6::      I'm having strange crashes.  What do I do?
 * Q2.0.7::      Libraries in non-standard locations.
 * Q2.0.8::      can't resolve symbol _h_errno
-* Q2.0.9::      Where do I find external libraries?
+* Q2.0.9::      Where do I find external libraries? 
 * Q2.0.10::     After I run configure I find a coredump, is something wrong?
 * Q2.0.11::     XEmacs can't resolve host names.
-* Q2.0.12::     Why can't I strip XEmacs?
+* Q2.0.12::     Why can't I strip XEmacs? 
 * Q2.0.13::     Can't link XEmacs on Solaris with Gcc.
-* Q2.0.14::     Make on HP/UX 9 fails after linking temacs
+* Q2.0.14::     Make on HP/UX 9 fails after linking temacs 
 
 Trouble Shooting:
 * Q2.1.1::      XEmacs just crashed on me!
@@ -1206,8 +1264,8 @@
 @end menu
 
 @node Q2.0.1, Q2.0.2, Installation, Installation
-@section Running XEmacs without installing
-
+@unnumberedsec 2.0: Installation
+@unnumberedsubsec Q2.0.1: Running XEmacs without installing
 The @file{INSTALL} file says that up to 108 MB of space is needed
 temporarily during installation!  How can I just try it out?
 
@@ -1228,12 +1286,12 @@
 This will let you run XEmacs without massive copying.
 
 @node Q2.0.2, Q2.0.3, Q2.0.1, Installation
-@section XEmacs is too big
+@unnumberedsubsec Q2.0.2: XEmacs is too big
 
 Although this entry has been written for XEmacs 19.13, most of it still
 stands true.
 
-Steve Baur <steve@@altair.xemacs.org> writes:
+@email{steve@@altair.xemacs.org, Steve Baur} writes:
 
 @quotation
 The 45MB of space required by the installation directories can be
@@ -1360,7 +1418,7 @@
 @strong{and} can be achieved without deleting a single file.
 @end quotation
 
-giacomo boffi <boffi@@hp735.stru.polimi.it> provides this procedure:
+@email{boffi@@hp735.stru.polimi.it, Giacomo Boffi} provides this procedure:
 
 @quotation
 Substitute @file{/usr/local/lib/} with the path where the xemacs tree is
@@ -1380,8 +1438,8 @@
     cd $d
     for f in *.el ; do
 #     compress (remove) only (ONLY) the sources that have a
-#     corresponding compiled file --- do not (DO NOT) touch other
-#     sources
+#     corresponding compiled file --- do not (DO NOT) 
+#     touch other sources
       if test -f $@{f@}c ; then gzip -v9 $f >> $r/cmpr ; fi
     done
     cd ..
@@ -1406,7 +1464,7 @@
 @end quotation
 
 @node Q2.0.3, Q2.0.4, Q2.0.2, Installation
-@section Compiling XEmacs with Netaudio.
+@unnumberedsubsec Q2.0.3: Compiling XEmacs with Netaudio.
 
 What is the best way to compile XEmacs with the netaudio system, since I
 have got the netaudio system compiled but installed at a weird place, I
@@ -1432,20 +1490,23 @@
 BTW, netaudio has been renamed as it has a name clash with something
 else, so if you see references to NAS or Network Audio System, it's the
 same thing.  It also might be found at
-<URL:ftp.x.org:/contrib/audio/nas/>.
+@uref{ftp://ftp.x.org/contrib/audio/nas/}.
 
 @node Q2.0.4, Q2.0.5, Q2.0.3, Installation
-@section Problems with Linux and ncurses.
+@unnumberedsubsec Q2.0.4: Problems with Linux and ncurses.
 
 On Linux 1.3.98 with termcap 2.0.8 and the ncurses that came with libc
 5.2.18, XEmacs 20.0b20 is unable to open a tty device:
 
 @example
 src/xemacs -nw -q
-Initialization error: Terminal type `xterm' undefined (or can't access database?)
+Initialization error: @iftex
+@*
+@end iftex 
+Terminal type `xterm' undefined (or can't access database?)
 @end example
 
-Ben Wing <ben@@666.com> writes:
+@email{ben@@666.com, Ben Wing} writes:
 
 @quotation
 Your ncurses configuration is messed up.  Your /usr/lib/terminfo is a
@@ -1453,7 +1514,7 @@
 @end quotation
 
 @node Q2.0.5, Q2.0.6, Q2.0.4, Installation
-@section Do I need X11 to run XEmacs?
+@unnumberedsubsec Q2.0.5: Do I need X11 to run XEmacs?
 
 No.  The name @dfn{XEmacs} is unfortunate in the sense that it is
 @strong{not} an X Window System-only version of Emacs.  Starting with
@@ -1461,14 +1522,14 @@
 terminal.
 
 @node Q2.0.6, Q2.0.7, Q2.0.5, Installation
-@section I'm having strange crashes.  What do I do?
+@unnumberedsubsec Q2.0.6: I'm having strange crashes.  What do I do?
 
 There have been a variety of reports of crashes due to compilers with
 buggy optimizers.  Please see the @file{PROBLEMS} file that comes with
 XEmacs to read what it says about your platform.
 
 @node Q2.0.7, Q2.0.8, Q2.0.6, Installation
-@section Libraries in non-standard locations
+@unnumberedsubsec Q2.0.7: Libraries in non-standard locations
 
 I have x-faces, jpeg, xpm etc. all in different places.  I've tried
 space-separated, comma-separated, several --site-libraries, all to no
@@ -1479,7 +1540,7 @@
 @end example
 
 @node Q2.0.8, Q2.0.9, Q2.0.7, Installation
-@section can't resolve symbol _h_errno
+@unnumberedsubsec Q2.0.8: can't resolve symbol _h_errno
 
 You are using the Linux/ELF distribution of XEmacs 19.14, and your ELF
 libraries are out of date.  You have the following options:
@@ -1491,7 +1552,10 @@
 
 @item
 Patch the XEmacs binary by replacing all occurrences of
-@samp{_h_errno^@@} with @samp{h_errno^@@^@@}.  Any version of Emacs will
+@samp{_h_errno^@@} with @iftex
+@*
+@end iftex 
+@samp{h_errno^@@^@@}.  Any version of Emacs will
 suffice.  If you don't understand how to do this, don't do it.
 
 @item
@@ -1499,13 +1563,14 @@
 O.K.
 @end enumerate
 
-Hrvoje Niksic <hniksic@@srce.hr> writes:
+@email{hniksic@@srce.hr, Hrvoje Niksic} writes:
 
 @quotation
 Why not use a Perl one-liner for No. 2?
 
 @example
-perl -pi -e 's/_h_errno\0/h_errno\0\0/g' /usr/local/bin/xemacs-19.14
+perl -pi -e 's/_h_errno\0/h_errno\0\0/g' \
+/usr/local/bin/xemacs-19.14
 @end example
 
 NB: You @emph{must} patch @file{/usr/local/bin/xemacs-19.14}, and not
@@ -1514,7 +1579,7 @@
 a symbolic link.
 @end quotation
 
-SL Baur <steve@@xemacs.org> writes:
+@email{steve@@xemacs.org, SL Baur} writes:
 
 @quotation
 If you build against a recent libc-5.4 (late enough to have caused
@@ -1533,10 +1598,14 @@
 @end quotation
 
 @node Q2.0.9, Q2.0.10, Q2.0.8, Installation
-@section Where do I find external libraries?
+@unnumberedsubsec Q2.0.9: Where do I find external libraries?
 
 All external libraries used by XEmacs can be found at the XEmacs FTP
-site <URL:ftp://ftp.xemacs.org/pub/aux/>.
+site 
+@iftex
+@*
+@end iftex 
+@uref{ftp://ftp.xemacs.org/pub/aux/}.
 
 @c This list is a pain in the you-know-what to keep in synch with the
 @c world.
@@ -1544,37 +1613,37 @@
 
 @table @asis
 @item JPEG
-<URL:ftp://ftp.uu.net/graphics/jpeg/>.  Version 6a is current.
+@uref{ftp://ftp.uu.net/graphics/jpeg/}.  Version 6a is current.
 
 @item XPM
-<URL:ftp://ftp.x.org/contrib/libraries/>.  Version 3.4j is current.
+@uref{ftp://ftp.x.org/contrib/libraries/}.  Version 3.4j is current.
 Older versions of this package are known to cause XEmacs crashes.
 
 @item TIFF
-<URL:ftp://ftp.sgi.com/graphics/tiff/>.  v3.4 is current.  The latest
+@uref{ftp://ftp.sgi.com/graphics/tiff/}.  v3.4 is current.  The latest
 beta is v3.4b035.  There is a HOWTO here.
 
 @item PNG
-<URL:ftp://ftp.uu.net/graphics/png/>.  0.89c is current.  XEmacs
+@uref{ftp://ftp.uu.net/graphics/png/}.  0.89c is current.  XEmacs
 requires a fairly recent version to avoid using temporary files.
 
-<URL:ftp://swrinde.nde.swri.edu/pub/png/src/>
+@uref{ftp://swrinde.nde.swri.edu/pub/png/src/}
 
 @item Compface
-<URL:ftp://ftp.cs.indiana.edu/pub/faces/compface/>.  This library has
+@uref{ftp://ftp.cs.indiana.edu/pub/faces/compface/}.  This library has
 been frozen for about 6 years, and is distributed without version
 numbers.  @emph{It should be compiled with the same options that X11 was
 compiled with on your system}.  The version of this library at
 XEmacs.org includes the @file{xbm2xface.pl} script, written by
-stig@@hackvan.com, which may be useful when generating your own xface.
+@email{stig@@hackvan.com}, which may be useful when generating your own xface.
 
 @item NAS
-<URL:ftp://ftp.x.org/contrib/audio/nas/>.
+@uref{ftp://ftp.x.org/contrib/audio/nas/}.
 Version 1.2p5 is current.  There is a FAQ here.
 @end table
 
 @node Q2.0.10, Q2.0.11, Q2.0.9, Installation
-@section After I run configure I find a core dump, is something wrong?
+@unnumberedsubsec Q2.0.10: After I run configure I find a core dump, is something wrong?
 
 Not necessarily.  If you have GNU sed 3.0 you should downgrade it to
 2.05.  From the @file{README} at prep.ai.mit.edu:
@@ -1593,12 +1662,12 @@
 core dump.
 
 @node Q2.0.11, Q2.0.12, Q2.0.10, Installation
-@section XEmacs doesn't resolve hostnames.
+@unnumberedsubsec Q2.0.11: XEmacs doesn't resolve hostnames.
 
 This is the result of a long-standing problem with SunOS and the fact
 that stock SunOS systems do not ship with DNS resolver code in libc.
 
-Christopher Davis <ckd@@loiosh.kei.com> writes:
+@email{ckd@@loiosh.kei.com, Christopher Davis} writes:
 
 @quotation
 That's correct [The SunOS 4.1.3 precompiled binaries don't do name
@@ -1614,9 +1683,9 @@
 @end quotation
 
 @node Q2.0.12, Q2.0.13, Q2.0.11, Installation
-@section Why can't I strip XEmacs?
-
-Richard Cognot <cognot@@fronsac.ensg.u-nancy.fr> writes:
+@unnumberedsubsec Q2.0.12: Why can't I strip XEmacs?
+
+@email{cognot@@fronsac.ensg.u-nancy.fr, Richard Cognot} writes:
 
 @quotation
 Because of the way XEmacs (and every other Emacsen, AFAIK) is built. The
@@ -1638,7 +1707,7 @@
 kits).
 @end quotation
 
-Nat Makarevitch <nat@@nataa.fr.eu.org> writes:
+@email{nat@@nataa.fr.eu.org, Nat Makarevitch} writes:
 
 @quotation
 Here is the trick:
@@ -1660,23 +1729,27 @@
 cp src/xemacs /usr/local/bin/xemacs
 
 @item
-cp lib-src/DOC-19.16-XEmacs /usr/local/lib/xemacs-19.16/i586-unknown-linuxaout
+cp lib-src/DOC-19.16-XEmacs 
+@iftex
+\ @*
+@end iftex 
+/usr/local/lib/xemacs-19.16/i586-unknown-linuxaout
 @end enumerate
 @end quotation
 
 @node Q2.0.13, Q2.0.14, Q2.0.12, Installation
-@section Problems linking with Gcc on Solaris
+@unnumberedsubsec Q2.0.13: Problems linking with Gcc on Solaris
 
 There are known difficulties linking with Gnu ld on Solaris.  A typical
 error message might look like:
 
 @example
-unexec(): dlopen(../dynodump/dynodump.so): ld.so.1: ./temacs:
-fatal: relocation error:
+unexec(): dlopen(../dynodump/dynodump.so): ld.so.1: ./temacs: 
+fatal: relocation error: 
 symbol not found: main: referenced in ../dynodump/dynodump.so
 @end example
 
-Martin Buchholz <martin@@xemacs.org> writes:
+@email{martin@@xemacs.org, Martin Buchholz} writes:
 
 @quotation
 You need to specify @samp{-fno-gnu-linker} as part of your flags to pass
@@ -1684,11 +1757,11 @@
 @end quotation
 
 @node Q2.0.14, Q2.1.1, Q2.0.13, Installation
-@section Make on HP/UX 9 fails after linking temacs
+@unnumberedsubsec Q2.0.14: Make on HP/UX 9 fails after linking temacs
 
 Problem when building xemacs-19.16 on hpux 9:
 
-Richard Cognot <cognot@@ensg.u-nancy.fr> writes:
+@email{cognot@@ensg.u-nancy.fr, Richard Cognot} writes:
 
 @quotation
 make on hpux fails after linking temacs with a message:
@@ -1704,7 +1777,8 @@
 
 
 @node Q2.1.1, Q2.1.2, Q2.0.14, Installation
-@section Help!  XEmacs just crashed on me!
+@unnumberedsec 2.1: Trouble Shooting
+@unnumberedsubsec Q2.1.1: Help!  XEmacs just crashed on me!
 
 First of all, don't panic.  Whenever XEmacs crashes, it tries extremely
 hard to auto-save all of your files before dying.  (The main time that
@@ -1722,7 +1796,7 @@
 come up with a reproducible way of doing this (or even if you have a
 pretty good memory of exactly what you were doing at the time), the
 maintainers would be very interested in knowing about it.  Post a
-message to comp.emacs.xemacs or send mail to <crashes@@xemacs.org>.
+message to comp.emacs.xemacs or send mail to @email{crashes@@xemacs.org}.
 Please note that the @samp{crashes} address is exclusively for crash
 reports.
 
@@ -1774,7 +1848,7 @@
 @end enumerate
 
 @node Q2.1.2, Q2.1.3, Q2.1.1, Installation
-@section Cryptic Minibuffer messages.
+@unnumberedsubsec Q2.1.2: Cryptic Minibuffer messages.
 
 When I try to use some particular option of some particular package, I
 get a cryptic error in the minibuffer.
@@ -1805,7 +1879,7 @@
 command is bound to @kbd{C-h l} by default.
 
 @node Q2.1.3, Q2.1.4, Q2.1.2, Installation
-@section Translation Table Syntax messages at Startup
+@unnumberedsubsec Q2.1.3: Translation Table Syntax messages at Startup
 
 I get tons of translation table syntax error messages during startup.
 How do I get rid of them?
@@ -1822,6 +1896,9 @@
 set the environment variable @var{XKEYSYMDB} to the location of the
 @file{XKeysymDB} file on your system or to the location of the one
 included with XEmacs which should be at
+@iftex
+@*
+@end iftex 
 @file{<xemacs_root_directory>/lib/xemacs-19.16/etc/XKeysymDB}.
 
 @item
@@ -1833,7 +1910,7 @@
 @end itemize
 
 @node Q2.1.4, Q2.1.5, Q2.1.3, Installation
-@section Startup warnings about deducing proper fonts?
+@unnumberedsubsec Q2.1.4: Startup warnings about deducing proper fonts?
 
 How can I avoid the startup warnings about deducing proper fonts?
 
@@ -1860,7 +1937,7 @@
 The buffer still exists; it just isn't in your face.
 
 @node Q2.1.5, Q2.1.6, Q2.1.4, Installation
-@section XEmacs cannot connect to my X Terminal!
+@unnumberedsubsec Q2.1.5: XEmacs cannot connect to my X Terminal!
 
 Help!  I can not get XEmacs to display on my Envizex X-terminal!
 
@@ -1868,7 +1945,7 @@
 the host you are running XEmacs from.
 
 @node Q2.1.6, Q2.1.7, Q2.1.5, Installation
-@section XEmacs just locked up my Linux X server!
+@unnumberedsubsec Q2.1.6: XEmacs just locked up my Linux X server!
 
 There have been several reports of the X server locking up under Linux.
 In all reported cases removing speedo and scaled fonts from the font
@@ -1878,7 +1955,7 @@
 It is possible that using a font server may also solve the problem.
 
 @node Q2.1.7, Q2.1.8, Q2.1.6, Installation
-@section HP Alt key as Meta.
+@unnumberedsubsec Q2.1.7: HP Alt key as Meta.
 
 How can I make XEmacs recognize the Alt key of my HP workstation as a
 Meta key?
@@ -1891,9 +1968,9 @@
 @end example
 
 @node Q2.1.8, Q2.1.9, Q2.1.7, Installation
-@section got (wrong-type-argument color-instance-p nil)
-
-Natalie Kershaw <nataliek@@rd.scitec.com.au> writes:
+@unnumberedsubsec Q2.1.8: got (wrong-type-argument color-instance-p nil)
+
+@email{nataliek@@rd.scitec.com.au, Natalie Kershaw} writes:
 
 @quotation
 I am trying to run xemacs 19.13 under X11R4. Whenever I move the mouse I
@@ -1901,11 +1978,13 @@
 doesn't occur on X11R5.
 
 @lisp
-Signalling: (error "got (wrong-type-argument color-instance-p nil) and I don't know why!")
+Signalling: 
+(error "got (wrong-type-argument color-instance-p nil) 
+and I don't know why!")
 @end lisp
 @end quotation
 
-dinos <map01kd@@gold.ac.uk> writes:
+@email{map01kd@@gold.ac.uk, dinos} writes:
 
 @quotation
 I think this is due to undefined resources; You need to define color
@@ -1932,15 +2011,15 @@
 xemacs*pointerColor:   black
 @end example
 
-With the new colors installed the problem still occurs if the above
+With the new colours installed the problem still occurs if the above 
 resources are not defined.
 
-If the new colors are not present then an additional error occurs on
+If the new colours are not present then an additional error occurs on 
 XEmacs startup, which says @samp{Color Red3} not defined.
 @end quotation
 
 @node Q2.1.9, Q2.1.10, Q2.1.8, Installation
-@section XEmacs causes my OpenWindows 3.0 server to crash.
+@unnumberedsubsec Q2.1.9: XEmacs causes my OpenWindows 3.0 server to crash.
 
 The OpenWindows 3.0 server is incredibly buggy.  Your best bet is to
 replace it with one from the generic MIT X11 release.  You might also
@@ -1948,7 +2027,7 @@
 pixmaps.
 
 @node Q2.1.10, Q2.1.11, Q2.1.9, Installation
-@section Warnings from incorrect key modifiers.
+@unnumberedsubsec Q2.1.10: Warnings from incorrect key modifiers.
 
 The following information comes from the @file{PROBLEMS} file that comes
 with XEmacs.
@@ -1974,42 +2053,42 @@
 @end example
 
 @node Q2.1.11, Q2.1.12, Q2.1.10, Installation
-@section [This question intentionally left blank]
+@unnumberedsubsec Q2.1.11: [This question intentionally left blank]
 
 Obsolete question, left blank to avoid renumbering.
 
 @node Q2.1.12, Q2.1.13, Q2.1.11, Installation
-@section Problems with Regular Expressions on DEC OSF1.
+@unnumberedsubsec Q2.1.12: Problems with Regular Expressions on DEC OSF1.
 
 I have xemacs 19.13 running on an alpha running OSF1 V3.2 148 and ispell
 would not run because it claimed the version number was incorrect
 although it was indeed OK. I traced the problem to the regular
 expression handler.
 
-Douglas Kosovic <douglask@@dstc.edu.au> writes:
+@email{douglask@@dstc.edu.au, Douglas Kosovic} writes:
 
 @quotation
-Actually it's a DEC cc optimization bug that screws up the regexp
+Actually it's a DEC cc optimisation bug that screws up the regexp
 handling in XEmacs.
 
 Rebuilding using the @samp{-migrate} switch for DEC cc (which uses a
-different sort of optimization) works fine.
+different sort of optimisation) works fine.
 @end quotation
 
 See @file{xemacs-19_13-dunix-3_2c.patch} at the following URL on how to
 build with the @samp{-migrate} flag:
 
 @example
-<URL:http://www-digital.cern.ch/carney/emacs/emacs.html>
+@uref{http://www-digital.cern.ch/carney/emacs/emacs.html}
 @end example
 
 NOTE: There have been a variety of other problems reported that are
 fixed in this fashion.
 
 @node Q2.1.13, Q2.1.14, Q2.1.12, Installation
-@section HP/UX 10.10 and @code{create_process} failure.
-
-Dave Carrigan <Dave.Carrigan@@ipl.ca> writes:
+@unnumberedsubsec Q2.1.13: HP/UX 10.10 and @code{create_process} failure.
+
+@email{Dave.Carrigan@@ipl.ca, Dave Carrigan} writes:
 
 @quotation
 With XEmacs 19.13 and HP/UX 10.10, anything that relies on the
@@ -2017,7 +2096,7 @@
 (shell-mode, compile, ange-ftp, to name a few).
 @end quotation
 
-Phil Johnson <johnson@@dtc.hp.com> writes:
+@email{johnson@@dtc.hp.com, Phil Johnson} writes:
 
 @quotation
 This is a problem specific to HP-UX 10.10.  It only occurs when XEmacs
@@ -2029,7 +2108,7 @@
 if it's a kernel problem which crept into 10.10.
 @end quotation
 
-Richard Cognot <cognot@@ensg.u-nancy.fr> writes:
+@email{cognot@@ensg.u-nancy.fr, Richard Cognot} writes:
 
 @quotation
 I had a few problems with 10.10. Apparently, some of them were solved by
@@ -2037,9 +2116,9 @@
 @end quotation
 
 @node Q2.1.14, Q2.1.15, Q2.1.13, Installation
-@section @kbd{C-g} doesn't work for me.  Is it broken?
-
-Ben Wing <ben@@666.com> writes:
+@unnumberedsubsec Q2.1.14: @kbd{C-g} doesn't work for me.  Is it broken?
+
+@email{ben@@666.com, Ben Wing} writes:
 
 @quotation
 @kbd{C-g} does work for most people in most circumstances.  If it
@@ -2058,7 +2137,7 @@
 buffer.  If @kbd{C-g} doesn't interrupt, then you're seeing #2.
 @end quotation
 
-Morten Welinder <terra@@diku.dk> writes:
+@email{terra@@diku.dk, Morten Welinder} writes:
 
 @quotation
 On some (but @emph{not} all) machines a hung XEmacs can be revived by
@@ -2070,7 +2149,7 @@
 @end quotation
 
 @node Q2.1.15, Q2.1.16, Q2.1.14, Installation
-@section How to Debug an XEmacs problem with a debugger
+@unnumberedsubsec Q2.1.15: How to Debug an XEmacs problem with a debugger
 
 If XEmacs does crash on you, one of the most productive things you can
 do to help get the bug fixed is to poke around a bit with the debugger.
@@ -2080,11 +2159,11 @@
 @item
 First of all, if the crash is at all reproducible, consider very
 strongly recompiling your XEmacs with debugging symbols, with no
-optimization, and with the configure options @samp{--debug=yes} and
-@samp{--error-checking=all}.  This will make your XEmacs run somewhat
-slower but make it a lot more likely to catch the problem earlier
-(closer to its source), and a lot easier to determine what's going on
-with a debugger.
+optimization, and with the configure options @samp{--debug=yes},
+@samp{--error-checking=all}, and @samp{--dynamic=no}.  This will make
+your XEmacs run somewhat slower but make it a lot more likely to catch
+the problem earlier (closer to its source), and a lot easier to
+determine what's going on with a debugger.
 
 @item
 If you're able to run XEmacs under a debugger and reproduce the crash
@@ -2108,8 +2187,8 @@
 Internally, you will probably see lots of variables that hold objects of
 type @code{Lisp_Object}.  These are exactly what they appear to be,
 i.e. references to Lisp objects.  Printing them out with the debugger
-probably won't be too useful---you'll likely just see a number.  To
-decode them, do this:
+probably won't be too useful---you'll just see a number.  To decode
+them, do this:
 
 @example
 call debug_print (OBJECT)
@@ -2156,7 +2235,7 @@
 running the XEmacs process under a debugger, the stack trace should be
 clean.
 
-Curtiss <1CMC3466@@ibm.mtsac.edu> suggests upgrading to ld.so version 1.8
+@email{1CMC3466@@ibm.mtsac.edu, Curtiss} suggests upgrading to ld.so version 1.8
 if dynamic linking and debugging is a problem on Linux.
 
 @item
@@ -2172,7 +2251,7 @@
 
 @item
 Your stack is getting trashed.  Debugging this is hard; you have to do a
-binary-search type of narrowing down where the crash occurs, until you
+binary-search-type of narrowing down where the crash occurs, until you
 figure out exactly which line is causing the problem.  Of course, this
 only works if the bug is highly reproducible.
 
@@ -2189,27 +2268,67 @@
 @item
 If you compiled 19.14 with @samp{--debug} (or by default in later
 versions), you will get a Lisp backtrace output when XEmacs crashes, so
-you'll have something useful.
+you'll have something useful.  If you're in 19.13, you could try doing
+@code{call debug_backtrace()}---sometimes this works even after a fatal
+signal has been received.
+
 @end enumerate
 
-@item
-If you compile with the newer gcc variants gcc-2.8 or egcs, you will
-need gdb 4.17.  At the time of writing, this has not yet been released.
-Pre-releases are available at ftp://ftp.cygnus.com/private/gdb.
-
-@item
-The above information on using @file{src/gdbinit} works for XEmacs-21.0
-and above.  For older versions of XEmacs, there are different
-@file{gdbinit} files provided in the @file{src} directory.  Use the one
-corresponding to the configure options used when building XEmacs.
-
 @end itemize
 
+
+
+Here's some more info about using gdbinit:
+
+Different version of @code{gdbinit} are provided for different
+platforms.  One of these should be installed as @file{.gdbinit} in your
+home directory.  If you're using XEmacs 19.14 or better, you should
+install the default @code{gdbinit} in the @file{src/} directory if you
+have GDB 4.14 or better.  With GDB 4.13 or earlier, install
+@file{gdbinit.pre-4.14}; however, this is noticeably harder to use.  If
+you're on a machine that uses a union type for Lisp_Objects (only the
+DEC Alpha, I think), you'll have to use @code{gdbinit.union}, which is
+of the pre-4.14 variety but should be easily upgradable.
+
+With XEmacs 19.13 and earlier, only one @code{gdbinit} is provided (I
+think); it's of the pre-4.14 variety and of the union-type
+variety. (Many more machines used the union type under 19.13).
+
+With the GDB 4.14+ gdbinit, you can print out a Lisp_Object using
+@code{p1 OBJECT} (which calls @code{debug_print()}, and hence only works
+if you have a running process) or @code{frob OBJECT} (which works even
+on core dumps, and does its own decoding of the object, but its output
+isn't always so convenient).
+
+With the pre-GDB 4.14 gdbinit, you have to do these steps:
+
+@example
+print OBJECT
+xtype
+<then type "xcons" or "xstring" or 
+whatever, depending on the type>
+@end example
+
+If the object is a record type, you'll probably have to the following
+steps:
+
+@example
+print OBJECT
+xtype
+xrecord
+<remember what type is printed>
+print OBJECT
+<then type "xbuffer" or "xsymbol" or whatever>
+@end example
+
+Of course, if you know in advance what type the object is of, you can
+omit all but the last two steps.
+
 @node Q2.1.16, Q2.1.17, Q2.1.15, Installation
-@section XEmacs crashes in @code{strcat} on HP/UX 10
+@unnumberedsubsec Q2.1.16: XEmacs crashes in @code{strcat} on HP/UX 10
 
 >From the problems database (through
-<URL:http://support.mayfield.hp.com/>):
+@uref{http://support.mayfield.hp.com/}):
 
 @example
 Problem Report: 5003302299
@@ -2219,8 +2338,8 @@
 Product Name:   HPUX S800 10.0X
 Product Vers:   9245XB.10.00
 
-Description: strcat(3C) may read beyond end of source string, can cause
-SIGSEGV
+Description: strcat(3C) may read beyond
+end of source string, can cause SIGSEGV
 
 
 *** PROBLEM TEXT ***
@@ -2229,7 +2348,7 @@
 @end example
 
 @node Q2.1.17, Q2.1.18, Q2.1.16, Installation
-@section @samp{Marker does not point anywhere}
+@unnumberedsubsec Q2.1.17: @samp{Marker does not point anywhere}
 
 As with other errors, set @code{debug-on-error} to @code{t} to get the
 backtrace when the error occurs.  Specifically, two problems have been
@@ -2247,9 +2366,9 @@
 @end enumerate
 
 @node Q2.1.18, Q2.1.19, Q2.1.17, Installation
-@section 19.14 hangs on HP/UX 10.10.
-
-Richard Cognot <cognot@@ensg.u-nancy.fr> writes:
+@unnumberedsubsec Q2.1.18: 19.14 hangs on HP/UX 10.10.
+
+@email{cognot@@ensg.u-nancy.fr, Richard Cognot} writes:
 
 @quotation
 For the record, compiling on hpux 10.10 leads to a hang in Gnus when
@@ -2266,10 +2385,14 @@
 works as expected.
 @end quotation
 
-Richard Cognot <cognot@@ensg.u-nancy.fr> adds:
+@email{cognot@@ensg.u-nancy.fr, Richard Cognot} adds:
 
 @quotation
-Apparently somebody has found the reason why there is this @samp{poll:
+Apparently somebody has found the reason why there is this 
+@iftex
+@*
+@end iftex 
+@samp{poll:
 interrupted...} message for each event.  For some reason, libcurses
 reimplements a @code{select()} system call, in a highly broken fashion.
 The fix is to add a -lc to the link line @emph{before} the
@@ -2277,7 +2400,7 @@
 @end quotation
 
 
-Alain Fauconnet <af@@biomath.jussieu.fr> writes:
+@email{af@@biomath.jussieu.fr, Alain Fauconnet} writes:
 
 @quotation
 The @emph{real} solution is to @emph{not} link -lcurses in!  I just
@@ -2297,7 +2420,7 @@
 @end quotation
 
 @node Q2.1.19, Q2.1.20, Q2.1.18, Installation
-@section XEmacs does not follow the local timezone.
+@unnumberedsubsec Q2.1.19: XEmacs does not follow the local timezone.
 
 When using one of the prebuilt binaries many users have observed that
 XEmacs uses the timezone under which it was built, but not the timezone
@@ -2311,7 +2434,7 @@
 Replace @code{MET} with your local timezone.
 
 @node Q2.1.20, Q2.1.21, Q2.1.19, Installation
-@section @samp{Symbol's function definition is void: hkey-help-show.}
+@unnumberedsubsec Q2.1.20: @samp{Symbol's function definition is void: hkey-help-show.}
 
 This is a problem with a partially loaded hyperbole.  Try adding:
 
@@ -2322,15 +2445,15 @@
 where you load hyperbole and the problem should go away.
 
 @node Q2.1.21, Q2.1.22, Q2.1.20, Installation
-@section Every so often the XEmacs frame freezes
+@unnumberedsubsec Q2.1.21: Every so often the XEmacs frame freezes
 
 This problem has been fixed in 19.15, and was due to a not easily
 reproducible race condition.
 
 @node Q2.1.22, Q2.1.23, Q2.1.21, Installation
-@section XEmacs seems to take a really long time to do some things
-
-David Moore <dmoore@@ucsd.edu> writes:
+@unnumberedsubsec Q2.1.22: XEmacs seems to take a really long time to do some things
+
+@email{dmoore@@ucsd.edu, David Moore} writes:
 
 @quotation
 Two things you can do:
@@ -2363,12 +2486,12 @@
 @end quotation
 
 @node Q2.1.23,  , Q2.1.22, Installation
-@section  Movemail on Linux does not work for XEmacs 19.15 and later.
+@unnumberedsubsec Q2.1.23:  Movemail on Linux does not work for XEmacs 19.15 and later. 
 
 Movemail used to work fine in 19.14 but has stopped working in 19.15
 and 20.x.  I am using Linux.
 
-SL Baur <steve@@xemacs.org> writes:
+@email{steve@@xemacs.org, SL Baur} writes:
 
 @quotation
 Movemail on Linux used to default to using flock file locking.  With
@@ -2382,20 +2505,20 @@
 @end quotation
 
 @node Customization, Subsystems, Installation, Top
-@chapter Customization and Options
+@unnumbered 3 Customization and Options
 
 This is part 3 of the XEmacs Frequently Asked Questions list.  This
 section is devoted to Customization and screen settings.
 
 @menu
 Customization---Emacs Lisp and @file{.emacs}:
-* Q3.0.1::      What version of Emacs am I running?
+* Q3.0.1::      What version of Emacs am I running? 
 * Q3.0.2::      How do I evaluate Elisp expressions?
 * Q3.0.3::      @code{(setq tab-width 6)} behaves oddly.
 * Q3.0.4::      How can I add directories to the @code{load-path}?
 * Q3.0.5::      How to check if a lisp function is defined?
 * Q3.0.6::      Can I force the output of @code{(face-list)} to a buffer?
-* Q3.0.7::      Font selections don't get saved after @code{Save Options}.
+* Q3.0.7::      Font selections don't get saved after @code{Save Options}. 
 * Q3.0.8::      How do I make a single minibuffer frame?
 * Q3.0.9::      What is @code{Customize}?
 
@@ -2407,13 +2530,13 @@
 * Q3.1.5::      How can I get the icon to just say @samp{XEmacs}?
 * Q3.1.6::      How can I have the window title area display the full path?
 * Q3.1.7::      @samp{xemacs -name junk} doesn't work?
-* Q3.1.8::      @samp{-iconic} doesn't work.
+* Q3.1.8::      @samp{-iconic} it doesn't work.
 
 Textual Fonts & Colors:
 * Q3.2.1::      How can I set color options from @file{.emacs}?
 * Q3.2.2::      How do I set the text, menu and modeline fonts?
 * Q3.2.3::      How can I set the colors when highlighting a region?
-* Q3.2.4::      How can I limit color map usage?
+* Q3.2.4::      How can I limit color map usage? 
 * Q3.2.5::      My tty supports color, but XEmacs doesn't use them.
 
 The Modeline:
@@ -2424,7 +2547,7 @@
 * Q3.3.5::      How can one change the modeline color based on the mode used?
 
 3.4 Multiple Device Support:
-* Q3.4.1::      How do I open a frame on another screen of my multi-headed display?
+* Q3.4.1::      How do I open a frame on another screen of my multi-headed display?  
 * Q3.4.2::      Can I really connect to a running XEmacs after calling up over a modem?  How?
 
 3.5 The Keyboard:
@@ -2433,7 +2556,7 @@
 * Q3.5.3::      How do I bind C-. and C-; to scroll one line up and down?
 * Q3.5.4::      Globally binding @kbd{Delete}?
 * Q3.5.5::      Scrolling one line at a time.
-* Q3.5.6::      How to map @kbd{Help} key alone on Sun type4 keyboard?
+* Q3.5.6::      How to map @kbd{Help} key alone on Sun type4 keyboard? 
 * Q3.5.7::      How can you type in special characters in XEmacs?
 * Q3.5.8::      Why does @code{(global-set-key [delete-forward] 'delete-char)} complain?
 * Q3.5.9::      How do I make the Delete key delete forward?
@@ -2468,7 +2591,7 @@
 * Q3.9.4::      How can I get automatic horizontal scrolling?
 
 Text Selections:
-* Q3.10.1::     How can I turn off or change highlighted selections?
+* Q3.10.1::     How can I turn off or change highlighted selections? 
 * Q3.10.2::     How do I get that typing on an active region removes it?
 * Q3.10.3::     Can I turn off the highlight during isearch?
 * Q3.10.4::     How do I turn off highlighting after @kbd{C-x C-p} (mark-page)?
@@ -2476,7 +2599,8 @@
 @end menu
 
 @node Q3.0.1, Q3.0.2, Customization, Customization
-@section What version of Emacs am I running?
+@unnumberedsec 3.0: Customization -- Emacs Lisp and .emacs
+@unnumberedsubsec Q3.0.1: What version of Emacs am I running?
 
 How can @file{.emacs} determine which of the family of Emacsen I am
 using?
@@ -2493,7 +2617,7 @@
 @end lisp
 
 @node Q3.0.2, Q3.0.3, Q3.0.1, Customization
-@section How can I evaluate Emacs-Lisp expressions?
+@unnumberedsubsec Q3.0.2: How can I evaluate Emacs-Lisp expressions?
 
 I know I can evaluate Elisp expressions from @code{*scratch*} buffer
 with @kbd{C-j} after the expression.  How do I do it from another
@@ -2505,7 +2629,7 @@
 this is the case, upgrade your XEmacs.
 
 @node Q3.0.3, Q3.0.4, Q3.0.2, Customization
-@section @code{(setq tab-width 6)} behaves oddly.
+@unnumberedsubsec Q3.0.3: @code{(setq tab-width 6)} behaves oddly.
 
 If you put @code{(setq tab-width 6)} in your @file{.emacs} file it does
 not work!  Is there a reason for this?  If you do it at the EVAL prompt
@@ -2515,7 +2639,7 @@
 all-buffer-local.
 
 @node Q3.0.4, Q3.0.5, Q3.0.3, Customization
-@section How can I add directories to the @code{load-path}?
+@unnumberedsubsec Q3.0.4: How can I add directories to the @code{load-path}?
 
 Here are two ways to do that, one that puts your directories at the
 front of the load-path, the other at the end:
@@ -2531,7 +2655,7 @@
 (setq load-path (nconc load-path '("foo" "bar")))
 @end lisp
 
-keith (k.p.) hanlan <keithh@@nortel.ca> writes:
+@email{keithh@@nortel.ca, keith (k.p.) hanlan} writes:
 
 @quotation
 To add directories using Unix shell metacharacters use
@@ -2543,7 +2667,7 @@
 @end quotation
 
 @node Q3.0.5, Q3.0.6, Q3.0.4, Customization
-@section How to check if a lisp function is defined?
+@unnumberedsubsec Q3.0.5: How to check if a lisp function is defined?
 
 Use the following elisp:
 
@@ -2555,12 +2679,12 @@
 variables.
 
 Instead, use feature-tests, such as @code{featurep}, @code{boundp},
-@code{fboundp}, or even simple behavioral tests, eg.:
+@code{fboundp}, or even simple behavioural tests, eg.:
 
 @lisp
-(defvar foo-old-losing-code-p
+(defvar foo-old-losing-code-p 
   (condition-case nil (progn (losing-code t) nil)
-   (wrong-number-of-arguments t)))
+    (wrong-number-of-arguments t)))
 @end lisp
 
 There is an incredible amount of broken code out there which could work
@@ -2568,7 +2692,7 @@
 trying to divine its environment from the value of one variable.
 
 @node Q3.0.6, Q3.0.7, Q3.0.5, Customization
-@section Can I force the output of @code{(face-list)} to a buffer?
+@unnumberedsubsec Q3.0.6: Can I force the output of @code{(face-list)} to a buffer?
 
 It would be good having it in a buffer, as the output of
 @code{(face-list)} is too wide to fit to a minibuffer.
@@ -2581,11 +2705,11 @@
 buffer.
 
 @node Q3.0.7, Q3.0.8, Q3.0.6, Customization
-@section Font selections in don't get saved after @code{Save Options}.
+@unnumberedsubsec Q3.0.7: Font selections in don't get saved after @code{Save Options}.
 
 For XEmacs 19.14 and previous:
 
-John Mann <mannj@@ll.mit.edu> writes:
+@email{mannj@@ll.mit.edu, John Mann} writes:
 
 @quotation
 You have to go to Options->Menubar Appearance and unselect
@@ -2596,31 +2720,31 @@
 
 For XEmacs 19.15 and later:
 
-Implement the above as well as set the following in your @file{.emacs}
+Implement the above as well as set the following in your @file{.emacs} 
 
 @lisp
 (setq options-save-faces t)
 @end lisp
 
 @node Q3.0.8, Q3.0.9, Q3.0.7, Customization
-@section How do I get a single minibuffer frame?
-
-Vin Shelton <acs@@acm.org> writes:
+@unnumberedsubsec Q3.0.8: How do I get a single minibuffer frame?
+
+@email{acs@@acm.org, Vin Shelton} writes:
 
 @lisp
 (setq initial-frame-plist '(minibuffer nil))
 (setq default-frame-plist '(minibuffer nil))
 (setq default-minibuffer-frame
       (make-frame
-	'(minibuffer only
-                     width 86
-                     height 1
-                     menubar-visible-p nil
-                     default-toolbar-visible-p nil
-                     name "minibuffer"
-                     top -2
-                     left -2
-                     has-modeline-p nil)))
+       '(minibuffer only
+		    width 86
+		    height 1
+		    menubar-visible-p nil
+		    default-toolbar-visible-p nil
+		    name "minibuffer"
+		    top -2
+		    left -2
+		    has-modeline-p nil)))
 (frame-notice-user-settings)
 @end lisp
 
@@ -2629,7 +2753,7 @@
 make it difficult or inconvenient to use.
 
 @node Q3.0.9, Q3.1.1, Q3.0.8, Customization
-@section What is @code{Customize}?
+@unnumberedsubsec Q3.0.9: What is @code{Customize}?
 
 Starting with XEmacs 20.2 there is new system 'Customize' for customizing
 XEmacs options.
@@ -2643,7 +2767,8 @@
 Try it out with @kbd{M-x customize-browse}
 
 @node Q3.1.1, Q3.1.2, Q3.0.9, Customization
-@section Where is a list of X resources?
+@unnumberedsec 3.1: X Window System & Resources
+@unnumberedsubsec Q3.1.1: Where is a list of X resources?
 
 Search through the @file{NEWS} file for @samp{X Resources}.  A fairly
 comprehensive list is given after it.
@@ -2657,7 +2782,7 @@
 you use GNU Emacs under X11 as well.
 
 @node Q3.1.2, Q3.1.3, Q3.1.1, Customization
-@section How can I detect a color display?
+@unnumberedsubsec Q3.1.2: How can I detect a color display?
 
 You can test the return value of the function @code{(device-class)}, as
 in:
@@ -2671,11 +2796,15 @@
 @end lisp
 
 @node Q3.1.3, Q3.1.4, Q3.1.2, Customization
-@section @code{(set-screen-width)} worked in 19.6, but not in 19.13?
+@unnumberedsubsec Q3.1.3: @code{(set-screen-width)} worked in 19.6, but not in 19.13?
 
 In Lucid Emacs 19.6 I did @code{(set-screen-width @var{characters})} and
 @code{(set-screen-height @var{lines})} in my @file{.emacs} instead of
-specifying @code{Emacs*EmacsScreen.geometry} in my @file{.Xdefaults} but
+specifying @code{Emacs*EmacsScreen.geometry} in my 
+@iftex
+@*
+@end iftex 
+@file{.Xdefaults} but
 this does not work in XEmacs 19.13.
 
 These two functions now take frame arguments:
@@ -2686,7 +2815,7 @@
 @end lisp
 
 @node Q3.1.4, Q3.1.5, Q3.1.3, Customization
-@section Specifying @code{Emacs*EmacsScreen.geometry} in @file{.emacs} does not work in 19.15?
+@unnumberedsubsec Q3.1.4: Specifying @code{Emacs*EmacsScreen.geometry} in @file{.emacs} does not work in 19.15?
 
 In XEmacs 19.11 I specified @code{Emacs*EmacsScreen.geometry} in
 my @file{.emacs} but this does not work in XEmacs 19.15.
@@ -2701,7 +2830,7 @@
 @end example
 
 @node Q3.1.5, Q3.1.6, Q3.1.4, Customization
-@section How can I get the icon to just say @samp{XEmacs}?
+@unnumberedsubsec Q3.1.5: How can I get the icon to just say @samp{XEmacs}?
 
 I'd like the icon to just say @samp{XEmacs}, and not include the name of
 the current file in it.
@@ -2713,7 +2842,7 @@
 @end lisp
 
 @node Q3.1.6, Q3.1.7, Q3.1.5, Customization
-@section How can I have the window title area display the full path?
+@unnumberedsubsec Q3.1.6: How can I have the window title area display the full path?
 
 I'd like to have the window title area display the full directory/name
 of the current buffer file and not just the name.
@@ -2728,13 +2857,14 @@
 
 @lisp
 (setq frame-title-format
-  '("%S: " (buffer-file-name "%f" (dired-directory dired-directory "%b"))))
+      '("%S: " (buffer-file-name "%f" 
+				 (dired-directory dired-directory "%b"))))
 @end lisp
 
 That is, use the file name, or the dired-directory, or the buffer name.
 
 @node Q3.1.7, Q3.1.8, Q3.1.6, Customization
-@section @samp{xemacs -name junk} doesn't work?
+@unnumberedsubsec Q3.1.7: @samp{xemacs -name junk} doesn't work?
 
 When I run @samp{xterm -name junk}, I get an xterm whose class name
 according to xprop, is @samp{junk}.  This is the way it's supposed to
@@ -2785,13 +2915,13 @@
 @end lisp
 
 @node Q3.1.8, Q3.2.1, Q3.1.7, Customization
-@section @samp{-iconic} doesn't work.
+@unnumberedsubsec Q3.1.8: @samp{-iconic} doesn't work.
 
 When I start up XEmacs using @samp{-iconic} it doesn't work right.
 Using @samp{-unmapped} on the command line, and setting the
 @code{initiallyUnmapped} X Resource don't seem to help much either...
 
-Ben Wing <ben@@666.com> writes:
+@email{ben@@666.com, Ben Wing} writes:
 
 @quotation
 Ugh, this stuff is such an incredible mess that I've about given up
@@ -2800,7 +2930,8 @@
 @end quotation
 
 @node Q3.2.1, Q3.2.2, Q3.1.8, Customization
-@section How can I set color options from @file{.emacs}?
+@unnumberedsec 3.2: Textual Fonts & Colors
+@unnumberedsubsec Q3.2.1: How can I set color options from @file{.emacs}?
 
 How can I set the most commonly used color options from my @file{.emacs}
 instead of from my @file{.Xdefaults}?
@@ -2808,28 +2939,31 @@
 Like this:
 
 @lisp
-(set-face-background 'default      "bisque")     ; frame background
-(set-face-foreground 'default      "black")      ; normal text
-(set-face-background 'zmacs-region "red")        ; When selecting w/
-                                                 ; mouse
+(set-face-background 'default      "bisque") ; frame background
+(set-face-foreground 'default      "black") ; normal text
+(set-face-background 'zmacs-region "red") ; When selecting w/
+					; mouse 
 (set-face-foreground 'zmacs-region "yellow")
 (set-face-font       'default      "*courier-bold-r*120-100-100*")
-(set-face-background 'highlight    "blue")       ; Ie when selecting buffers
+(set-face-background 'highlight    "blue") ; Ie when selecting
+					; buffers
 (set-face-foreground 'highlight    "yellow")
-(set-face-background 'modeline     "blue")       ; Line at bottom of buffer
+(set-face-background 'modeline     "blue") ; Line at bottom 
+					; of buffer
 (set-face-foreground 'modeline     "white")
 (set-face-font       'modeline     "*bold-r-normal*140-100-100*")
-(set-face-background 'isearch      "yellow")     ; When highlighting while
-                                                 ; searching
+(set-face-background 'isearch      "yellow") ; When highlighting 
+					; while searching		 
 (set-face-foreground 'isearch      "red")
-(setq x-pointer-foreground-color   "black")      ; Adds to bg color,
-                                                 ; so keep black
-(setq x-pointer-background-color   "blue")       ; This is color you really
-                                                 ; want ptr/crsr
+(setq x-pointer-foreground-color   "black") ; Adds to bg color,
+					; so keep black
+(setq x-pointer-background-color   "blue") ; This is color 
+					; you really
+					; want ptr/crsr
 @end lisp
 
 @node Q3.2.2, Q3.2.3, Q3.2.1, Customization
-@section How do I set the text, menu and modeline fonts?
+@unnumberedsubsec Q3.2.2: How do I set the text, menu and modeline fonts?
 
 Note that you should use @samp{Emacs.} and not @samp{Emacs*} when
 setting face values.
@@ -2837,7 +2971,7 @@
 In @file{.Xdefaults}:
 
 @example
-Emacs.default.attributeFont:  -*-*-medium-r-*-*-*-120-*-*-m-*-*-*
+Emacs.default.attributeFont:  -*-*-medium-r-*-*-*-120-*-*-m-*-*-* 
 Emacs*menubar*font:           fixed
 Emacs.modeline.attributeFont: fixed
 @end example
@@ -2850,7 +2984,7 @@
 instead of @code{font}.
 
 @node Q3.2.3, Q3.2.4, Q3.2.2, Customization
-@section How can I set the colors when highlighting a region?
+@unnumberedsubsec Q3.2.3: How can I set the colors when highlighting a region?
 
 How can I set the background/foreground colors when highlighting a
 region?
@@ -2866,12 +3000,12 @@
 or in your @file{.emacs}:
 
 @lisp
-(set-face-background 'zmacs-region "red")
+(set-face-background 'zmacs-region "red")   
 (set-face-foreground 'zmacs-region "yellow")
 @end lisp
 
 @node Q3.2.4, Q3.2.5, Q3.2.3, Customization
-@section How can I limit color map usage?
+@unnumberedsubsec Q3.2.4: How can I limit color map usage?
 
 I'm using Netscape (or another color grabber like XEmacs);
 is there anyway to limit the number of available colors in the color map?
@@ -2891,7 +3025,7 @@
 the colormap is full, so it's O.K. now to start Netscape first.
 
 @node Q3.2.5, Q3.3.1, Q3.2.4, Customization
-@section My tty supports color, but XEmacs doesn't use them.
+@unnumberedsubsec Q3.2.5: My tty supports color, but XEmacs doesn't use them.
 
 XEmacs tries to automatically determine whether your tty supports color,
 but sometimes guesses wrong.  In that case, you can make XEmacs Do The
@@ -2903,7 +3037,7 @@
 @end lisp
 
 @node Q3.3.1, Q3.3.2, Q3.2.5, Customization
-@section How can I make the modeline go away?
+@unnumberedsubsec Q3.3.1: How can I make the modeline go away?
 
 @lisp
 (set-specifier has-modeline-p nil)
@@ -2914,7 +3048,7 @@
 try the new version out.
 
 @node Q3.3.2, Q3.3.3, Q3.3.1, Customization
-@section How do you have XEmacs display the line number in the modeline?
+@unnumberedsubsec Q3.3.2: How do you have XEmacs display the line number in the modeline?
 
 Add the following line to your @file{.emacs} file to display the
 line number:
@@ -2930,14 +3064,20 @@
 @end lisp
 
 Or select from the @code{Options} menu
- @code{Customize->Emacs->Editing->Basics->Line Number Mode}
+@iftex
+@*
+@end iftex 
+@code{Customize->Emacs->Editing->Basics->Line Number Mode}
 and/or
- @code{Customize->Emacs->Editing->Basics->Column Number Mode}
+@iftex
+@*
+@end iftex 
+@code{Customize->Emacs->Editing->Basics->Column Number Mode}
 
 Or type @kbd{M-x customize RET editing-basics RET}.
 
 @node Q3.3.3, Q3.3.4, Q3.3.2, Customization
-@section How do I get XEmacs to put the time of day on the modeline?
+@unnumberedsubsec Q3.3.3: How do I get XEmacs to put the time of day on the modeline?
 
 Add the following line to your @file{.emacs} file to display the
 time:
@@ -2949,7 +3089,7 @@
 See @code{Customize} from the @code{Options} menu for customization.
 
 @node Q3.3.4, Q3.3.5, Q3.3.3, Customization
-@section How do I turn off current chapter from AUC TeX modeline?
+@unnumberedsubsec Q3.3.4: How do I turn off current chapter from AUC TeX modeline?
 
 With AUC TeX, fast typing is hard because the current chapter, section
 etc. are given in the modeline.  How can I turn this off?
@@ -2965,10 +3105,11 @@
 mode:
 
 @lisp
-(add-hook 'TeX-mode-hook '(lambda () (setq fume-display-in-modeline-p nil)))
+(add-hook 'TeX-mode-hook 
+	  '(lambda () (setq fume-display-in-modeline-p nil)))
 @end lisp
 
-David Hughes <dhughes@@origin-at.co.uk> writes:
+@email{dhughes@@origin-at.co.uk, David Hughes} writes:
 
 @quotation
 If you have 19.14 or later, try this instead; you'll still get the
@@ -2983,12 +3124,12 @@
 @end quotation
 
 @node Q3.3.5, Q3.4.1, Q3.3.4, Customization
-@section How can one change the modeline color based on the mode used?
+@unnumberedsubsec Q3.3.5: How can one change the modeline color based on the mode used?
 
 You can use something like the following:
 
 @lisp
-(add-hook 'lisp-mode-hook
+(add-hook 'lisp-mode-hook 
           (lambda ()
             (set-face-background 'modeline "red" (current-buffer))))
 @end lisp
@@ -3026,7 +3167,8 @@
 @code{modeline-mousable-minor-mode}, which you may want to customize.
 
 @node Q3.4.1, Q3.4.2, Q3.3.5, Customization
-@section How do I open a frame on another screen of my multi-headed display?
+@unnumberedsec 3.4: Multiple Device Support
+@unnumberedsubsec Q3.4.1: How do I open a frame on another screen of my multi-headed display?
 
 The support for this was revamped for 19.14.  Use the command
 @kbd{M-x make-frame-on-display}.  This command is also on the File menu
@@ -3037,7 +3179,7 @@
 TTY devices should be left to @code{gnuclient}, though.
 
 @node Q3.4.2, Q3.5.1, Q3.4.1, Customization
-@section Can I really connect to a running XEmacs after calling up over a modem?  How?
+@unnumberedsubsec Q3.4.2: Can I really connect to a running XEmacs after calling up over a modem?  How?
 
 If you're not running at least XEmacs 19.14, you can't.  Otherwise check
 out the @code{gnuattach} program supplied with XEmacs.  Starting with
@@ -3047,7 +3189,8 @@
 Also @xref{Q5.0.12}.
 
 @node Q3.5.1, Q3.5.2, Q3.4.2, Customization
-@section How can I bind complex functions (or macros) to keys?
+@unnumberedsec 3.5: The Keyboard
+@unnumberedsubsec Q3.5.1: How can I bind complex functions (or macros) to keys?
 
 As an example, say you want the @kbd{paste} key on a Sun keyboard to
 insert the current Primary X selection at point. You can accomplish this
@@ -3066,7 +3209,7 @@
 
 @lisp
 (global-set-key [f18]
-                (lambda () (interactive) (x-insert-selection t nil)))
+  (lambda () (interactive) (x-insert-selection t nil)))
 @end lisp
 
 This binds the f18 key to a @dfn{generic} functional object.  The
@@ -3077,9 +3220,9 @@
 
 @lisp
 (global-set-key [(control ?.)]
-		(lambda () (interactive) (scroll-up 1)))
-(global-set-key [(control ?;)]
-	        (lambda () (interactive) (scroll-up -1)))
+  (lambda () (interactive) (scroll-up 1)))
+(global-set-key [(control ?		;)]
+			  (lambda () (interactive) (scroll-up -1)))
 @end lisp
 
 This is fine if you only need a few functions within the lambda body.
@@ -3087,7 +3230,7 @@
 question 3.5.3 (@xref{Q3.5.3}).
 
 @node Q3.5.2, Q3.5.3, Q3.5.1, Customization
-@section How can I stop down-arrow from adding empty lines to the bottom of my buffers?
+@unnumberedsubsec Q3.5.2: How can I stop down-arrow from adding empty lines to the bottom of my buffers?
 
 Add the following line to your @file{.emacs} file:
 
@@ -3098,10 +3241,10 @@
 This has been the default setting in XEmacs for some time.
 
 @node Q3.5.3, Q3.5.4, Q3.5.2, Customization
-@section How do I bind C-. and C-; to scroll one line up and down?
-
-Add the following (Thanks to Richard Mlynarik <mly@@adoc.xerox.com> and
-Wayne Newberry <wayne@@zen.cac.stratus.com>) to @file{.emacs}:
+@unnumberedsubsec Q3.5.3: How do I bind C-. and C-; to scroll one line up and down?
+
+Add the following (Thanks to @email{mly@@adoc.xerox.com, Richard Mlynarik} and
+@email{wayne@@zen.cac.stratus.com, Wayne Newberry}) to @file{.emacs}:
 
 @lisp
 (defun scroll-up-one-line ()
@@ -3112,8 +3255,8 @@
   (interactive)
   (scroll-down 1))
 
-(global-set-key [(control ?.)] 'scroll-up-one-line)        ; C-.
-(global-set-key [(control ?;)] 'scroll-down-one-line)      ; C-;
+(global-set-key [(control ?.)] 'scroll-up-one-line) ; C-.
+(global-set-key [(control ?		;)] 'scroll-down-one-line) ; C-;
 @end lisp
 
 The key point is that you can only bind simple functions to keys; you
@@ -3121,7 +3264,7 @@
 (@xref{Q3.5.1} for a better answer).
 
 @node Q3.5.4, Q3.5.5, Q3.5.3, Customization
-@section Globally binding @kbd{Delete}?
+@unnumberedsubsec Q3.5.4: Globally binding @kbd{Delete}?
 
 I cannot manage to globally bind my @kbd{Delete} key to something other
 than the default.  How does one do this?
@@ -3146,7 +3289,7 @@
 Also @xref{Q3.5.10}.
 
 @node Q3.5.5, Q3.5.6, Q3.5.4, Customization
-@section Scrolling one line at a time.
+@unnumberedsubsec Q3.5.5: Scrolling one line at a time.
 
 Can the cursor keys scroll the screen a line at a time, rather than the
 default half page jump?  I tend it to find it disorienting.
@@ -3181,18 +3324,18 @@
 @kbd{M-x customize RET windows RET}.
 
 @node Q3.5.6, Q3.5.7, Q3.5.5, Customization
-@section How to map @kbd{Help} key alone on Sun type4 keyboard?
+@unnumberedsubsec Q3.5.6: How to map @kbd{Help} key alone on Sun type4 keyboard?
 
 The following works in GNU Emacs 19:
 
 @lisp
-(global-set-key [help] 'help-command)  		;; Help
+(global-set-key [help] 'help-command);; Help
 @end lisp
 
 The following works in XEmacs 19.15 with the addition of shift:
 
 @lisp
-(global-set-key [(shift help)] 'help-command)  		;; Help
+(global-set-key [(shift help)] 'help-command);; Help
 @end lisp
 
 But it doesn't work alone.  This is in the file @file{PROBLEMS} which
@@ -3200,14 +3343,18 @@
 @kbd{help} key when running OLWM}.
 
 OLWM grabs the @kbd{help} key, and retransmits it to the appropriate
-client using @code{XSendEvent}.  Allowing Emacs to react to synthetic
+client using 
+@iftex
+@*
+@end iftex 
+@code{XSendEvent}.  Allowing Emacs to react to synthetic
 events is a security hole, so this is turned off by default.  You can
 enable it by setting the variable @code{x-allow-sendevents} to t.  You
 can also cause fix this by telling OLWM to not grab the help key, with
 the null binding @code{OpenWindows.KeyboardCommand.Help:}.
 
 @node Q3.5.7, Q3.5.8, Q3.5.6, Customization
-@section How can you type in special characters in XEmacs?
+@unnumberedsubsec Q3.5.7: How can you type in special characters in XEmacs?
 
 One way is to use the package @code{x-compose}.  Then you can use
 sequences like @kbd{Compose " a} to get ä, etc.
@@ -3217,7 +3364,7 @@
 ä, etc.
 
 @node Q3.5.8, Q3.5.9, Q3.5.7, Customization
-@section Why does @code{(global-set-key [delete-forward] 'delete-char)} complain?
+@unnumberedsubsec Q3.5.8: Why does @code{(global-set-key [delete-forward] 'delete-char)} complain?
 
 Why does @code{(define-key global-map [ delete-forward ] 'delete-char)}
 complain of not being able to bind an unknown key?
@@ -3241,7 +3388,7 @@
 This bug has been fixed in 19.14.
 
 @node Q3.5.9, Q3.5.10, Q3.5.8, Customization
-@section How do I make the Delete key delete forward?
+@unnumberedsubsec Q3.5.9: How do I make the Delete key delete forward?
 
 With XEmacs-20.2 use the @code{delbs} package:
 
@@ -3262,14 +3409,14 @@
 Also @xref{Q3.5.4}.
 
 @node Q3.5.10, Q3.6.1, Q3.5.9, Customization
-@section Can I turn on @dfn{sticky} modifier keys?
+@unnumberedsubsec Q3.5.10: Can I turn on @dfn{sticky} modifier keys?
 
 Yes, with @code{(setq modifier-keys-are-sticky t)}.  This will give the
 effect of being able to press and release Shift and have the next
 character typed come out in upper case.  This will affect all the other
 modifier keys like Control and Meta as well.
 
-Ben Wing <ben@@666.com> writes:
+@email{ben@@666.com, Ben Wing} writes:
 
 @quotation
 One thing about the sticky modifiers is that if you move the mouse out
@@ -3277,7 +3424,8 @@
 @end quotation
 
 @node Q3.6.1, Q3.6.2, Q3.5.10, Customization
-@section Is there a way to make the bar cursor thicker?
+@unnumberedsec 3.6: The Cursor
+@unnumberedsubsec Q3.6.1: Is there a way to make the bar cursor thicker?
 
 I'd like to have the bar cursor a little thicker, as I tend to "lose" it
 often.
@@ -3306,7 +3454,7 @@
 @end example
 
 @node Q3.6.2, Q3.6.3, Q3.6.1, Customization
-@section Is there a way to get back the block cursor?
+@unnumberedsubsec Q3.6.2: Is there a way to get back the block cursor?
 
 @lisp
 (setq bar-cursor nil)
@@ -3318,7 +3466,7 @@
 @kbd{M-x customize RET display RET}.
 
 @node Q3.6.3, Q3.7.1, Q3.6.2, Customization
-@section Can I make the cursor blink?
+@unnumberedsubsec Q3.6.3: Can I make the cursor blink?
 
 If you are running a version of XEmacs older than 19.14, no.  Otherwise
 you can do the following:
@@ -3332,7 +3480,8 @@
 => Frame Appearance => Blinking Cursor}.  Remember to save options.
 
 @node Q3.7.1, Q3.7.2, Q3.6.3, Customization
-@section How can I turn off Mouse pasting?
+@unnumberedsec 3.7: The Mouse and Highlighting
+@unnumberedsubsec Q3.7.1: How can I turn off Mouse pasting?
 
 I keep hitting the middle mouse button by accident and getting stuff
 pasted into my buffer so how can I turn this off?
@@ -3352,7 +3501,7 @@
 @end lisp
 
 @node Q3.7.2, Q3.7.3, Q3.7.1, Customization
-@section How do I set control/meta/etc modifiers on mouse buttons?
+@unnumberedsubsec Q3.7.2: How do I set control/meta/etc modifiers on mouse buttons?
 
 Use, for instance, @code{[(meta button1)]}. For example, here is a common
 setting for Common Lisp programmers who use the bundled @code{ilisp}
@@ -3368,7 +3517,7 @@
 @end lisp
 
 @node Q3.7.3, Q3.7.4, Q3.7.2, Customization
-@section Clicking the left button does not do anything in buffer list.
+@unnumberedsubsec Q3.7.3: Clicking the left button does not do anything in buffer list.
 
 I do @kbd{C-x C-b} to get a list of buffers and the entries get
 highlighted when I move the mouse over them but clicking the left mouse
@@ -3377,7 +3526,7 @@
 Use the middle mouse button.
 
 @node Q3.7.4, Q3.7.5, Q3.7.3, Customization
-@section How can I get a list of buffers when I hit mouse button 3?
+@unnumberedsubsec Q3.7.4: How can I get a list of buffers when I hit mouse button 3?
 
 The following code will replace the default popup on button3:
 
@@ -3386,7 +3535,7 @@
 @end lisp
 
 @node Q3.7.5, Q3.7.6, Q3.7.4, Customization
-@section Why does cut-and-paste not work between XEmacs and a cmdtool?
+@unnumberedsubsec Q3.7.5: Why does cut-and-paste not work between XEmacs and a cmdtool?
 
 We don't know.  It's a bug.  There does seem to be a work-around,
 however.  Try running xclipboard first.  It appears to fix the problem
@@ -3394,7 +3543,7 @@
 haven't yet verified that).
 
 @node Q3.7.6, Q3.7.7, Q3.7.5, Customization
-@section How I can set XEmacs up so that it pastes where the text cursor is?
+@unnumberedsubsec Q3.7.6: How I can set XEmacs up so that it pastes where the text cursor is?
 
 By default XEmacs pastes X selections where the mouse pointer is.  How
 do I disable this?
@@ -3414,7 +3563,7 @@
 @kbd{M-x customize RET mouse RET}.
 
 @node Q3.7.7, Q3.7.8, Q3.7.6, Customization
-@section How do I select a rectangular region?
+@unnumberedsubsec Q3.7.7: How do I select a rectangular region?
 
 Just select the region normally, then use the rectangle commands (e.g.
 @code{kill-rectangle} on it.  The region does not highlight as a
@@ -3444,7 +3593,7 @@
 @end example
 
 @node Q3.7.8, Q3.8.1, Q3.7.7, Customization
-@section Why does @kbd{M-w} take so long?
+@unnumberedsubsec Q3.7.8: Why does @kbd{M-w} take so long?
 
 It actually doesn't.  It leaves the region visible for a second so that
 you can see what area is being yanked.  If you start working, though, it
@@ -3452,7 +3601,8 @@
 delay for a second if you let it.
 
 @node Q3.8.1, Q3.8.2, Q3.7.8, Customization
-@section How do I get rid of the menu (or menubar)?
+@unnumberedsec 3.8: The Menubar and Toolbar
+@unnumberedsubsec Q3.8.1: How do I get rid of the menu (or menubar)?
 
 If you are running XEmacs 19.13 and earlier, add this command to your
 @file{.emacs}.
@@ -3468,7 +3618,7 @@
 @end lisp
 
 @node Q3.8.2, Q3.8.3, Q3.8.1, Customization
-@section Can I customize the basic menubar?
+@unnumberedsubsec Q3.8.2: Can I customize the basic menubar?
 
 For an extensive menubar, add this line to your @file{.emacs}:
 
@@ -3482,7 +3632,7 @@
 directory.
 
 @node Q3.8.3, Q3.8.4, Q3.8.2, Customization
-@section How do I control how many buffers are listed in the menu @code{Buffers List}?
+@unnumberedsubsec Q3.8.3: How do I control how many buffers are listed in the menu @code{Buffers List}?
 
 Add the following to your @file{.emacs} (suit to fit):
 
@@ -3498,7 +3648,7 @@
 type @kbd{M-x customize RET buffers-menu RET}.
 
 @node Q3.8.4, Q3.8.5, Q3.8.3, Customization
-@section Resources like @code{Emacs*menubar*font} are not working?
+@unnumberedsubsec Q3.8.4: Resources like @code{Emacs*menubar*font} are not working?
 
 I am trying to use a resource like @code{Emacs*menubar*font} to set the
 font of the menubar but it's not working.
@@ -3527,7 +3677,7 @@
 even though the latter is more specific.
 
 @node Q3.8.5, Q3.9.1, Q3.8.4, Customization
-@section How can I bind a key to a function to toggle the toolbar?
+@unnumberedsubsec Q3.8.5: How can I bind a key to a function to toggle the toolbar?
 
 Try something like:
 
@@ -3544,11 +3694,12 @@
 may need to resize the frame before XEmacs completely realizes the
 toolbar is really gone.
 
-Thanks to Martin Buchholz <martin@@xemacs.org> for the correct
+Thanks to @email{martin@@xemacs.org, Martin Buchholz} for the correct
 code.
 
 @node Q3.9.1, Q3.9.2, Q3.8.5, Customization
-@section How can I disable the scrollbar?
+@unnumberedsec 3.9: Scrollbars
+@unnumberedsubsec Q3.9.1: How can I disable the scrollbar?
 
 To disable them for all frames, add the following line to
 your @file{.Xdefaults}:
@@ -3557,7 +3708,7 @@
 Emacs.scrollBarWidth:  0
 @end example
 
-Or select from the @code{Options} menu @code{Frame Appearance->Scrollbars}.
+Or select from the @code{Options} menu @code{Frame Appearance->Scrolbars}.
 Remember to save options.
 
 To turn the scrollbar off on a per-frame basis, use the following
@@ -3582,7 +3733,7 @@
 @end lisp
 
 @node Q3.9.2, Q3.9.3, Q3.9.1, Customization
-@section How can one use resources to change scrollbar colors?
+@unnumberedsubsec Q3.9.2: How can one use resources to change scrollbar colors?
 
 Here's a recap of how to use resources to change your scrollbar colors:
 
@@ -3601,7 +3752,7 @@
 Note the capitalization of @code{Scrollbar} for the Athena widget.
 
 @node Q3.9.3, Q3.9.4, Q3.9.2, Customization
-@section Moving the scrollbar can move the point; can I disable this?
+@unnumberedsubsec Q3.9.3: Moving the scrollbar can move the point; can I disable this?
 
 When I move the scrollbar in an XEmacs window, it moves the point as
 well, which should not be the default behavior.  Is this a bug or a
@@ -3615,7 +3766,7 @@
 This cannot be changed.
 
 @node Q3.9.4, Q3.10.1, Q3.9.3, Customization
-@section How can I get automatic horizontal scrolling?
+@unnumberedsubsec Q3.9.4: How can I get automatic horizontal scrolling?
 
 By the same token, how can I turn it off in specific modes?
 
@@ -3643,7 +3794,8 @@
 Automatic horizontal scrolling is now standard, starting with 19.14.
 
 @node Q3.10.1, Q3.10.2, Q3.9.4, Customization
-@section How can I turn off or change highlighted selections?
+@unnumberedsec Text Selections
+@unnumberedsubsec Q3.10.1: How can I turn off or change highlighted selections?
 
 The @code{zmacs} mode allows for what some might call gratuitous
 highlighting for selected regions (either by setting mark or by using
@@ -3662,7 +3814,7 @@
 the menubar.
 
 @node Q3.10.2, Q3.10.3, Q3.10.1, Customization
-@section How do I get that typing on an active region removes it?
+@unnumberedsubsec Q3.10.2: How do I get that typing on an active region removes it?
 
 I want to change things so that if I select some text and start typing,
 the typed text replaces the selected text, similar to Motif.
@@ -3681,7 +3833,7 @@
 Note that this will work with both Backspace and Delete.
 
 @node Q3.10.3, Q3.10.4, Q3.10.2, Customization
-@section Can I turn off the highlight during isearch?
+@unnumberedsubsec Q3.10.3: Can I turn off the highlight during isearch?
 
 I do not like my text highlighted while I am doing isearch as I am not
 able to see what's underneath.  How do I turn it off?
@@ -3700,7 +3852,7 @@
 solution consists of customizing the @code{isearch} face.
 
 @node Q3.10.4, Q3.10.5, Q3.10.3, Customization
-@section How do I turn off highlighting after @kbd{C-x C-p} (mark-page)?
+@unnumberedsubsec Q3.10.4: How do I turn off highlighting after @kbd{C-x C-p} (mark-page)?
 
 Put this in your @code{.emacs}:
 
@@ -3713,7 +3865,7 @@
 Also @xref{Q3.10.1}.
 
 @node Q3.10.5,  , Q3.10.4, Customization
-@section The region disappears when I hit the end of buffer while scrolling.
+@unnumberedsubsec Q3.10.5: The region disappears when I hit the end of buffer while scrolling.
 
 This has been fixed by default starting with XEmacs-20.3.
 
@@ -3740,11 +3892,11 @@
       ad-do-it)))
 @end lisp
 
-Thanks to T. V. Raman <raman@@adobe.com> for assistance in deriving this
+Thanks to @email{raman@@adobe.com, T. V. Raman} for assistance in deriving this
 answer.
 
 @node Subsystems, Miscellaneous, Customization, Top
-@chapter Major Subsystems
+@unnumbered 4 Major Subsystems
 
 This is part 4 of the XEmacs Frequently Asked Questions list.  This
 section is devoted to major XEmacs subsystems.
@@ -3770,7 +3922,7 @@
 * Q4.1.3::      Is it true that W3 supports style sheets and tables?
 
 Reading Netnews and Mail with Gnus:
-* Q4.2.1::      GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus,argh!
+* Q4.2.1::      GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus,argh! 
 * Q4.2.2::      [This question intentionally left blank]
 * Q4.2.3::      How do I make Gnus stay within a single frame?
 * Q4.2.4::      How do I customize the From: line?
@@ -3783,7 +3935,7 @@
 * Q4.3.5::      Where do I find pstogif (required by tm)?
 
 Sparcworks, EOS, and WorkShop:
-* Q4.4.1::      What is SPARCworks, EOS, and WorkShop
+* Q4.4.1::      What is SPARCworks, EOS, and WorkShop 
 
 Energize:
 * Q4.5.1::      What is/was Energize?
@@ -3800,7 +3952,8 @@
 @end menu
 
 @node Q4.0.1, Q4.0.2, Subsystems, Subsystems
-@section How do I set up VM to retrieve mail from a remote site using POP?
+@unnumberedsec Reading Mail with VM
+@unnumberedsubsec Q4.0.1: How do I set up VM to retrieve mail from a remote site using POP?
 
 Use @code{vm-spool-files}, like this for example:
 
@@ -3812,20 +3965,23 @@
 Of course substitute your actual password for MYPASS.
 
 @node Q4.0.2, Q4.0.3, Q4.0.1, Subsystems
-@section How do I get VM to filter mail for me?
+@unnumberedsubsec Q4.0.2: How do I get VM to filter mail for me?
 
 One possibility is to use procmail to split your mail before it gets to
 VM.  I prefer this personally, since there are many strange and
 wonderful things one can do with procmail.  Procmail may be found at
-<URL:ftp://ftp.informatik.rwth-aachen.de/pub/packages/procmail/>.
+@uref{ftp://ftp.informatik.rwth-aachen.de/pub/packages/procmail/}.
 
 Also see the Mail Filtering FAQ at:
-<URL:http://www.cis.ohio-state.edu/hypertext/faq/usenet/mail/filtering-faq/faq.html>.
+@iftex
+@*
+@end iftex 
+@uref{http://www.cis.ohio-state.edu/hypertext/faq/usenet/mail/filtering-faq/faq.html}.
 
 @node Q4.0.3, Q4.0.4, Q4.0.2, Subsystems
-@section How can I get VM to automatically check for new mail?
-
-John Turner <turner@@lanl.gov> writes:
+@unnumberedsubsec Q4.0.3: How can I get VM to automatically check for new mail?
+
+@email{turner@@lanl.gov, John Turner} writes:
 
 @quotation
 Use the following:
@@ -3836,38 +3992,39 @@
 @end quotation
 
 @node Q4.0.4, Q4.0.5, Q4.0.3, Subsystems
-@section [This question intentionally left blank]
+@unnumberedsubsec Q4.0.4: [This question intentionally left blank]
 
 Obsolete question, left blank to avoid renumbering.
 
 @node Q4.0.5, Q4.0.6, Q4.0.4, Subsystems
-@section How do I get my outgoing mail archived?
+@unnumberedsubsec Q4.0.5: How do I get my outgoing mail archived?
 
 @lisp
 (setq mail-archive-file-name "~/outbox")
 @end lisp
 
 @node Q4.0.6, Q4.0.7, Q4.0.5, Subsystems
-@section I have various addresses at which I receive mail.  How can I tell VM to ignore them when doing a "reply-all"?
+@unnumberedsubsec Q4.0.6: I have various addresses at which I receive mail.  How can I tell VM to ignore them when doing a "reply-all"?
 
 Set @code{vm-reply-ignored-addresses} to a list, like
 
 @lisp
-(setq vm-reply-ignored-addresses '("wing@@netcom[0-9]*.netcom.com"
-				   "wing@@netcom.com" "wing@@666.com"))
+(setq vm-reply-ignored-addresses 
+      '("wing@@nuspl@@nvwls.cc.purdue.edu,netcom[0-9]*.netcom.com"
+	"wing@@netcom.com" "wing@@666.com"))
 @end lisp
 
 Note that each string is a regular expression.
 
 @node Q4.0.7, Q4.0.8, Q4.0.6, Subsystems
-@section Is there a mailing list or FAQ for VM?
-
-A FAQ for VM exists at <URL:http://www.cyberpass.net/~gorkab/vmfaq.htm>.
+@unnumberedsubsec Q4.0.7: Is there a mailing list or FAQ for VM?
+
+A FAQ for VM exists at @uref{http://www.cyberpass.net/~gorkab/vmfaq.htm}. 
 
 VM has its own newsgroups gnu.emacs.vm.info and gnu.emacs.vm.bug.
 
-@node Q4.0.8, Q4.0.9, Q4.0.7, Subsystems
-@section Remote mail reading with VM.
+@node Q4.0.8, Q4.0.9, Q4.0.7,  Subsystems
+@unnumberedsubsec Q4.0.8: Remote mail reading with VM.
 
 My mailbox lives at the office on a big honkin server.  My regular INBOX
 lives on my honkin desktop machine.  I now can PPP to the office from
@@ -3875,7 +4032,7 @@
 home without storing it here and I'd like to use xemacs and VM at
 home...  Is there a recommended setup?
 
-Joseph J. Nuspl Jr. <nuspl@@nvwls.cc.purdue.edu> writes:
+@email{nuspl@@nvwls.cc.purdue.edu, Joseph J. Nuspl Jr.} writes:
 
 @quotation
 There are several ways to do this.
@@ -3896,7 +4053,7 @@
 @end enumerate
 @end quotation
 
-William Perry <wmperry@@monolith.spry.com> adds:
+        @email{wmperry@@monolith.spry.com, William Perry} adds:
 
 @quotation
 Or you could run a pop script periodically on your desktop machine, and
@@ -3905,7 +4062,7 @@
 @end quotation
 
 @node Q4.0.9, Q4.0.10, Q4.0.8, Subsystems
-@section rmail or VM gets an error incorporating new mail.
+@unnumberedsubsec Q4.0.9: rmail or VM gets an error incorporating new mail.
 
 Quoting the XEmacs PROBLEMS file:
 
@@ -3913,7 +4070,7 @@
 rmail and VM get new mail from @file{/usr/spool/mail/$USER} using a
 program called @code{movemail}.  This program interlocks with
 @code{/bin/mail} using the protocol defined by @code{/bin/mail}.
-
+ 
 There are two different protocols in general use.  One of them uses the
 @code{flock} system call.  The other involves creating a lock file;
 @code{movemail} must be able to write in @file{/usr/spool/mail} in order
@@ -3955,13 +4112,13 @@
 @end quotation
 
 @node Q4.0.10, Q4.0.11, Q4.0.9, Subsystems
-@section How do I make VM stay in a single frame?
-
-John S Cooper <John.Cooper@@Eng.Sun.COM> writes:
+@unnumberedsubsec Q4.0.10: How do I make VM stay in a single frame?
+
+John.@email{Cooper@@Eng.Sun.COM, John S Cooper} writes:
 
 @quotation
 @lisp
-; Don't use multiple frames
+					; Don't use multiple frames
 (setq vm-frame-per-composition nil)
 (setq vm-frame-per-folder nil)
 (setq vm-frame-per-edit nil)
@@ -3970,21 +4127,24 @@
 @end quotation
 
 @node Q4.0.11, Q4.0.12, Q4.0.10, Subsystems
-@section How do I make VM or mh-e display graphical smilies?
+@unnumberedsubsec Q4.0.11: How do I make VM or mh-e display graphical smilies?
 
 For mh-e use the following:
 
 @lisp
-(add-hook 'mh-show-mode-hook '(lambda () (smiley-region (point-min)
-                                                        (point-max))))
+(add-hook 'mh-show-mode-hook '(lambda () 
+				(smiley-region (point-min)
+                                               (point-max))))
 @end lisp
 
 For vm use the following:
 @lisp
 (require 'messagexmas)
 (require 'smiley)
-(add-hook 'vm-select-message-hook '(lambda () (smiley-region (point-min)
-                                                             (point-max))))
+(add-hook 'vm-select-message-hook 
+	  '(lambda () 
+	     (smiley-region (point-min)
+			    (point-max))))
 @end lisp
 
 For tm use the following:
@@ -3994,9 +4154,9 @@
 @end lisp
 
 @node Q4.0.12, Q4.1.1, Q4.0.11, Subsystems
-@section Customization of VM not covered in the manual, or here.
-
-giacomo boffi <boffi@@hp735.stru.polimi.it> writes:
+@unnumberedsubsec Q4.0.12: Customization of VM not covered in the manual, or here.
+
+@email{boffi@@hp735.stru.polimi.it, giacomo boffi} writes:
 
 @quotation
 The meta-answer is to look into the file @file{vm-vars.el}, in the vm
@@ -4017,49 +4177,51 @@
 @end quotation
 
 @node Q4.1.1, Q4.1.2, Q4.0.12, Subsystems
-@section What is W3?
+@unnumberedsec Web browsing with W3
+@unnumberedsubsec Q4.1.1: What is W3?
 
 W3 is an advanced graphical browser written in Emacs lisp that runs on
 XEmacs.  It has full support for cascaded style sheets, and more...
 
 It has a home web page at
-<URL:http://www.cs.indiana.edu/elisp/w3/docs.html>.
+@uref{http://www.cs.indiana.edu/elisp/w3/docs.html}.
 
 @node Q4.1.2, Q4.1.3, Q4.1.1, Subsystems
-@section How do I run W3 from behind a firewall?
+@unnumberedsubsec Q4.1.2: How do I run W3 from behind a firewall?
 
 There is a long, well-written, detailed section in the W3 manual that
 describes how to do this.  Look in the section entitled "Firewalls".
 
 @node Q4.1.3, Q4.2.1, Q4.1.2, Subsystems
-@section Is it true that W3 supports style sheets and tables?
+@unnumberedsubsec Q4.1.3: Is it true that W3 supports style sheets and tables?
 
 Yes, and much more.  W3, as distributed with the latest XEmacs is a
 full-featured web browser.
 
 @node Q4.2.1, Q4.2.2, Q4.1.3, Subsystems
-@section GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus, Quassia Gnus, argh!
+@unnumberedsec Reading Netnews and Mail with Gnus
+@unnumberedsubsec Q4.2.1: GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus, Quassia Gnus, argh!
 
 The Gnus numbering issues are not meant for mere mortals to know them.
 If you feel you @emph{must} enter the muddy waters of Gnus, visit the
 excellent FAQ, maintained by Justin Sheehy, at:
 
 @example
-<URL:http://www.ccs.neu.edu/software/gnus/>
+@uref{http://www.ccs.neu.edu/software/gnus/}
 @end example
 
 See also Gnus home page
 @example
-<URL:http://www.gnus.org/>
+@uref{http://www.gnus.org/}
 @end example
 
 @node Q4.2.2, Q4.2.3, Q4.2.1, Subsystems
-@section This question intentionally left blank.
+@unnumberedsubsec Q4.2.2: This question intentionally left blank.
 
 Obsolete question, left blank to avoid renumbering.
 
 @node Q4.2.3, Q4.2.4, Q4.2.2, Subsystems
-@section How do I make Gnus stay within a single frame?
+@unnumberedsubsec Q4.2.3: How do I make Gnus stay within a single frame?
 
 The toolbar code to start Gnus opens the new frame---and it's a feature
 rather than a bug.  If you don't like it, but would still like to click
@@ -4074,15 +4236,21 @@
 @code{gnus}, without all the fancy frame stuff.
 
 @node Q4.2.4, Q4.3.1, Q4.2.3, Subsystems
-@section How do I customize the From: line?
+@unnumberedsubsec Q4.2.4: How do I customize the From: line?
 
 How do I change the @code{From:} line?  I have set gnus-user-from-line
-to Gail Gurman <gail.gurman@@sybase.com>, but XEmacs Gnus doesn't use
-it. Instead it uses Gail Mara Gurman <gailg@@deall> and then complains
+to @example
+Gail Gurman <gail.gurman@@sybase.com>
+@end example
+@noindent , but XEmacs Gnus doesn't use
+it. Instead it uses @example
+Gail Mara Gurman @email{gailg@@deall} 
+@end example
+@noindent and then complains
 that it's incorrect. Also, as you perhaps can see, my Message-ID is
 screwy. How can I change that?
 
-Lars Magne Ingebrigtsen <larsi@@aegir.ifi.uio.no> writes:
+@email{larsi@@ifi.uio.no, Lars Magne Ingebrigtsen} writes:
 
 @quotation
 Set @code{user-mail-address} to @samp{gail.gurman@@sybase.com} or
@@ -4090,22 +4258,32 @@
 @end quotation
 
 @node Q4.3.1, Q4.3.2, Q4.2.4, Subsystems
-@section How can I read and/or compose MIME messages?
+@unnumberedsec Other Mail & News
+@unnumberedsubsec Q4.3.1: How can I read and/or compose MIME messages?
 
 One answer is @code{tra-vm-mime}.  You may find it at
-<URL:http://lenkkari.cs.tut.fi/~tra/software/tra-vm-mime.el>.
+@iftex
+@*
+@end iftex 
+@uref{http://lenkkari.cs.tut.fi/~tra/software/tra-vm-mime.el}.
 
 Another possibility is RMIME.  You may find RMIME at
-<URL:http://www.cinti.net/~rmoody/rmime/index.html>.
+@iftex
+@*
+@end iftex 
+@uref{http://www.cinti.net/~rmoody/rmime/index.html}.
 
 You probably want to use the Tools for MIME (tm).  @xref{Q4.3.2} for
 details.
 
-Trey Jackson <trey@@cs.berkeley.edu> has an Emacs & MIME web page at
-<URL:http://bmrc.berkeley.edu/~trey/emacs/mime.html>.
+@email{trey@@cs.berkeley.edu, Trey Jackson} has an Emacs & MIME web page at
+@iftex
+@*
+@end iftex 
+@uref{http://bmrc.berkeley.edu/~trey/emacs/mime.html}.
 
 @node Q4.3.2, Q4.3.3, Q4.3.1, Subsystems
-@section What is TM and where do I get it?
+@unnumberedsubsec Q4.3.2: What is TM and where do I get it?
 
 TM stands for @dfn{Tools for MIME} and not Tiny MIME.  TM integrates
 with all major XEmacs packages like Gnus (all flavors), VM, MH-E, and
@@ -4115,9 +4293,12 @@
 
 TM now comes as a package with XEmacs 19.16 and XEmacs 20.2.
 
-TM was written by MORIOKA Tomohiko <morioka@@jaist.ac.jp> and KOBAYASHI
-Shuhei <shuhei-k@@jaist.ac.jp>.  It is based on the work of UMEDA
-Masanobu <umerin@@mse.kyutech.ac.jp>, the original writer of GNUS.
+TM was written by @email{morioka@@jaist.ac.jp, MORIOKA Tomohiko} and
+@email{shuhei-k@@jaist.ac.jp, KOBAYASHI
+Shuhei}.  
+
+It is based on the work of @email{umerin@@mse.kyutech.ac.jp, UMEDA
+Masanobu}, the original writer of GNUS.
 
 The following information is from the @file{README}:
 
@@ -4133,13 +4314,13 @@
 
 tm is available from following anonymous ftp sites:
 @itemize @bullet
-@item <URL:ftp://ftp.jaist.ac.jp/pub/GNU/elisp/mime/> (Japan).
-@item <URL:ftp://ftp.nis.co.jp/pub/gnu/emacs-lisp/tm/> (Japan).
-@item <URL:ftp://ftp.nisiq.net/pub/gnu/emacs-lisp/tm/> (US).
-@item <URL:ftp://ftp.miranova.com/pub/gnus/jaist.ac.jp/> (US).
-@item <URL:ftp://ftp.unicamp.br/pub/mail/mime/tm/> (Brasil).
-@item <URL:ftp://ftp.th-darmstadt.de/pub/editors/GNU-Emacs/lisp/mime/> (Germany).
-@item <URL:ftp://ftp.tnt.uni-hannover.de/pub/editors/xemacs/contrib/> (Germany).
+@item @uref{ftp://ftp.jaist.ac.jp/pub/GNU/elisp/mime/} (Japan).
+@item @uref{ftp://ftp.nis.co.jp/pub/gnu/emacs-lisp/tm/} (Japan).
+@item @uref{ftp://ftp.nisiq.net/pub/gnu/emacs-lisp/tm/} (US).
+@item @uref{ftp://ftp.miranova.com/pub/gnus/jaist.ac.jp/} (US).
+@item @uref{ftp://ftp.unicamp.br/pub/mail/mime/tm/} (Brasil).
+@item @uref{ftp://ftp.th-darmstadt.de/pub/editors/GNU-Emacs/lisp/mime/} (Germany).
+@item @uref{ftp://ftp.tnt.uni-hannover.de/pub/editors/xemacs/contrib/} (Germany).
 @end itemize
 
 Don't let the installation procedure & instructions stop you from trying
@@ -4147,54 +4328,65 @@
 trivial to use.
 
 @node Q4.3.3, Q4.3.4, Q4.3.2, Subsystems
-@section Why isn't this @code{movemail} program working?
-
-Ben Wing <ben@@666.com> writes:
+@unnumberedsubsec Q4.3.3: Why isn't this @code{movemail} program working?
+
+Ben Wing @email{ben@@666.com} writes:
 
 @quotation
 It wasn't chown'ed/chmod'd correctly.
 @end quotation
 
 @node Q4.3.4, Q4.3.5, Q4.3.3, Subsystems
-@section Movemail is also distributed by Netscape?  Can that cause problems?
-
-Steve Baur <steve@@altair.xemacs.org> writes:
+@unnumberedsubsec Q4.3.4: Movemail is also distributed by Netscape?  Can that cause problems?
+
+@email{steve@@altair.xemacs.org, Steve Baur} writes:
 
 @quotation
 Yes.  Always use the movemail installed with your XEmacs.  Failure to do
 so can result in lost mail.
 @end quotation
 
-Please refer to Jamie Zawinski's <jwz@@netscape.com> notes at
-<URL:http://home.netscape.com/eng/mozilla/2.0/relnotes/demo/movemail.html>.
+Please refer to @email{jwz@@netscape.com, Jamie Zawinski's} notes at
+@iftex
+@*
+@end iftex 
+@uref{http://home.netscape.com/eng/mozilla/2.0/relnotes/demo/movemail.html}.
 In particular, this document will show you how to make Netscape use the
 version of movemail configured for your system by the person who built
 XEmacs.
 
 @node Q4.3.5, Q4.4.1, Q4.3.4, Subsystems
-@section Where do I find pstogif (required by tm)?
+@unnumberedsubsec Q4.3.5: Where do I find pstogif (required by tm)?
 
 pstogif is part of the latex2html package.
 
-Jan Vroonhof <vroonhof@@math.ethz.ch> writes:
+@email{vroonhof@@math.ethz.ch, Jan Vroonhof} writes:
 
 latex2html is best found at the CTAN hosts and their mirrors
-in @file{tex-archive/support/latex2html}.
+in 
+@iftex
+@*
+@end iftex 
+@file{tex-archive/support/latex2html}.
 
 CTAN hosts are:
 
 @itemize @bullet
-@item <URL:ftp://ftp.tex.ac.uk/tex-archive/support/latex2html/>.
-@item <URL:ftp://ftp.dante.de/tex-archive/support/latex2html/>.
+@item @uref{ftp://ftp.tex.ac.uk/tex-archive/support/latex2html/}.
+@item @uref{ftp://ftp.dante.de/tex-archive/support/latex2html/}.
 @end itemize
 
 There is a good mirror at ftp.cdrom.com;
-<URL:ftp://ftp.cdrom.com/pub/tex/ctan/support/latex2html/>.
+@iftex
+@*
+@end iftex 
+@uref{ftp://ftp.cdrom.com/pub/tex/ctan/support/latex2html/}.
 
 @node Q4.4.1, Q4.5.1, Q4.3.5, Subsystems
-@section What is SPARCworks, EOS, and WorkShop?
-
-John Turner <turner@@lanl.gov> writes:
+@unnumberedsec Sparcworks, EOS, and WorkShop
+@unnumberedsubsec Q4.4.1: What is SPARCworks, EOS, and WorkShop?
+
+@email{turner@@lanl.gov, John Turner} writes:
 
 @quotation
 SPARCworks is SunSoft's development environment, comprising compilers
@@ -4202,7 +4394,7 @@
 tools such as TeamWare (for configuration management), MakeTool, etc.
 @end quotation
 
-See <URL:http://www.sun.com/sunsoft/Developer-products/>
+See @uref{http://www.sun.com/sunsoft/Developer-products/}
 for more info.
 
 EOS stands for "Era on SPARCworks", but I don't know what Era stands
@@ -4214,7 +4406,7 @@
 using the SPARCworks debugger.  It works very well and I use it all the
 time.
 
-Chuck Thompson <cthomp@@xemacs.org> writes:
+@email{cthomp@@xemacs.org, Chuck Thompson} writes:
 
 @quotation
 Era stood for "Emacs Rewritten Again".  It was what we were calling the
@@ -4222,19 +4414,23 @@
 to work on this wonderful editor.
 @end quotation
 
-Martin Buchholz <martin@@xemacs.org> writes:
+@email{martin@@xemacs.org, Martin Buchholz} writes:
 
 @quotation
 EOS is being replaced with a new graphical development environment
 called Sun WorkShop, which is currently (07/96) in Alpha Test.  For more
 details, check out
-<URL:http://www.sun.com/sunsoft/Products/Developer-products/programs.html>.
+@iftex
+@*
+@end iftex 
+@uref{http://www.sun.com/sunsoft/Products/Developer-products/programs.html}.
 @end quotation
 
 @node Q4.5.1, Q4.6.1, Q4.4.1, Subsystems
-@section What is/was Energize?
-
-David N Gray <gray@@meteor.harlequin.com> writes:
+@unnumberedsec Energize
+@unnumberedsubsec Q4.5.1: What is/was Energize?
+
+@email{gray@@meteor.harlequin.com, David N Gray} writes:
 @quotation
 The files in @file{lisp/energize} are to enable Emacs to interface with
 the "Energize Programming System", a C and C++ development environment,
@@ -4247,13 +4443,14 @@
 @end quotation
 
 @node Q4.6.1, Q4.7.1, Q4.5.1, Subsystems
-@section What is Infodock?
+@unnumberedsec Infodock
+@unnumberedsubsec Q4.6.1: What is Infodock?
 
 InfoDock is an integrated productivity toolset, mainly aimed at
 technical people.  It is developed and supported by InfoDock
 Associates, a firm that offers custom support and development
-for InfoDock, XEmacs and GNU Emacs.  (http://www.infodock.com,
-<info@@infodock.com>, +1 408 243 3300).
+for InfoDock, XEmacs and GNU Emacs.  ( @uref{http://www.infodock.com},
+@email{info@@infodock.com}, +1 408 243 3300).
 
 InfoDock is built atop the XEmacs variant of GNU Emacs and so has all of
 the power of Emacs, but with an easier to use and more comprehensive
@@ -4283,7 +4480,7 @@
 InfoDock menus are much more extensive and more mature than standard
 Emacs menus.  Each menu offers a @samp{Manual} item which displays
 documentation associated with the menu's functions.
-
+    
 @noindent
 Four types of menubars are provided:
 @enumerate
@@ -4335,15 +4532,18 @@
 highlighting and browsing, and man page browsing.
 
 InfoDock questions, answers and discussion should go to the mail list
-@samp{infodock@@infodock.com}.  Use
-@samp{infodock-request@@infodock.com} to be added or removed from the
+@iftex
+@*
+@end iftex 
+@email{infodock@@infodock.com}.  Use
+@email{infodock-request@@infodock.com} to be added or removed from the
 list.  Always include your InfoDock version number when sending help
 requests.
 
 InfoDock is available across the Internet via anonymous FTP.  To get
 it, first move to a directory into which you want the InfoDock archive
 files placed.  We will call this <DIST-DIR>.
-
+ 
 @example
    cd <DIST-DIR>
 @end example
@@ -4356,10 +4556,10 @@
 
 Login as @samp{anonymous} with your own <user-id>@@<site-name> as a password.
 
-@example
+@example   
    Name (ftp.xemacs.org): anonymous
    331 Guest login ok, send your complete e-mail address as password.
-   Password: -<your-user-id@@your-domain>
+   Password: -<your-user-id>@@<your-domain>
    230 Guest login ok, access restrictions apply.
 @end example
 
@@ -4403,9 +4603,10 @@
 step-by-step installation instructions.
 
 @node Q4.7.1, Q4.7.2, Q4.6.1, Subsystems
-@section What is AUC TeX?  Where do you get it?
-
-AUC TeX is a package written by Per Abrahamsen <abraham@@dina.kvl.dk>.
+@unnumberedsec Other Unbundled Packages
+@unnumberedsubsec Q4.7.1: What is AUC TeX?  Where do you get it?
+
+AUC TeX is a package written by @email{abraham@@dina.kvl.dk, Per Abrahamsen}.
 Starting with XEmacs 19.16, AUC TeX is bundled with XEmacs.  The
 following information is from the @file{README} and website.
 
@@ -4414,27 +4615,36 @@
 are supported, including AMS TeX, LaTeX, and TeXinfo.
 
 The most recent version is always available by ftp at
-<URL:ftp://sunsite.auc.dk/packages/auctex/auctex.tar.gz>.
+@iftex
+@*
+@end iftex 
+@uref{ftp://sunsite.auc.dk/packages/auctex/auctex.tar.gz}.
 
 In case you don't have access to anonymous ftp, you can get it by an
-email request to <URL:mailto:ftpmail@@decwrl.dec.com>.
+email request to @email{ftpmail@@decwrl.dec.com}.
 
 WWW users may want to check out the AUC TeX page at
-<URL:http://sunsite.auc.dk/auctex/>.
+@iftex
+@*
+@end iftex 
+@uref{http://sunsite.auc.dk/auctex/}.
 
 @node Q4.7.2, Q4.7.3, Q4.7.1, Subsystems
-@section Are there any Emacs Lisp Spreadsheets?
+@unnumberedsubsec Q4.7.2: Are there any Emacs Lisp Spreadsheets?
 
 Yes.  Check out @dfn{dismal} (which stands for Dis' Mode Ain't Lotus) at
-<URL:ftp://cs.nyu.edu/pub/local/fox/dismal/>.
+@iftex
+@*
+@end iftex 
+@uref{ftp://cs.nyu.edu/pub/local/fox/dismal/}.
 
 @node Q4.7.3, Q4.7.4, Q4.7.2, Subsystems
-@section Byte compiling AUC TeX on XEmacs 19.14.
-
-Georges Brun-Cottan <bruncott@@dormeur.inria.fr> writes:
+@unnumberedsubsec Q4.7.3: Byte compiling AUC TeX on XEmacs 19.14.
+
+@email{bruncott@@dormeur.inria.fr, Georges Brun-Cottan} writes:
 
 @quotation
-When byte compiling auctex-9.4g, you must use the command:
+When byte compiling auxtex-9.4g, you must use the command:
 
 @example
 xemacs -batch -l lpath.el
@@ -4442,14 +4652,14 @@
 @end quotation
 
 @node Q4.7.4, Q4.7.5, Q4.7.3, Subsystems
-@section Problems installing AUC TeX.
-
-Jan Vroonhof <vroonhof@@math.ethz.ch> writes:
+@unnumberedsubsec Q4.7.4: Problems installing AUC TeX.
+
+@email{vroonhof@@math.ethz.ch, Jan Vroonhof} writes:
 
 @quotation
 AUC TeX works fine on both stock Emacs and XEmacs has been doing so for
-a very very long time. This is mostly due to the work of Per Abrahamsen
-<abraham@@dina.kvl.dk> (clap clap) in particular his @file{easymenu}
+a very very long time. This is mostly due to the work of
+@email{abraham@@dina.kvl.dk, Per Abrahamsen} (clap clap) in particular his @file{easymenu}
 package.  Which leads to what is probably the problem...
 @end quotation
 
@@ -4471,7 +4681,7 @@
 
 
 @node Q4.7.5,  , Q4.7.4, Subsystems
-@section Is there a reason for an Emacs package not to be included in XEmacs?
+@unnumberedsubsec Q4.7.5: Is there a reason for an Emacs package not to be included in XEmacs?
 
 The reason for an Emacs package not to be included in XEmacs is
 usually one or more of the following:
@@ -4510,7 +4720,7 @@
 @end enumerate
 
 @node Miscellaneous, Current Events, Subsystems, Top
-@chapter The Miscellaneous Stuff
+@unnumbered 5 The Miscellaneous Stuff
 
 This is part 5 of the XEmacs Frequently Asked Questions list.  This
 section is devoted to anything that doesn't fit neatly into the other
@@ -4527,8 +4737,8 @@
 * Q5.0.7::      Telnet from shell filters too much.
 * Q5.0.8::      Why does edt emulation not work?
 * Q5.0.9::      How can I emulate VI and use it as my default mode?
-* Q5.0.10::     [This question intentionally left blank]
-* Q5.0.11::     Filladapt doesn't work in 19.15?
+* Q5.0.10::     [This question intentionally left blank] 
+* Q5.0.11::     Filladapt doesn't work in 19.15? 
 * Q5.0.12::     How do I disable gnuserv from opening a new frame?
 * Q5.0.13::     How do I start gnuserv so that each subsequent XEmacs is a client?
 * Q5.0.14::     Strange things are happening in Shell Mode.
@@ -4537,6 +4747,7 @@
 * Q5.0.17::     How can I get two instances of info?
 * Q5.0.18::     I upgraded to XEmacs 19.14 and gnuserv stopped working
 * Q5.0.19::     Is there something better than LaTeX mode?
+* Q5.0.20::     Is there a way to start a new XEmacs if there's no gnuserv running, and otherwise use gnuclient?
 
 Emacs Lisp Programming Techniques:
 * Q5.1.1::      The difference in key sequences between XEmacs and GNU Emacs?
@@ -4572,7 +4783,8 @@
 @end menu
 
 @node Q5.0.1, Q5.0.2, Miscellaneous, Miscellaneous
-@section How can I do source code highlighting using font-lock?
+@unnumberedsec Major & Minor Modes
+@unnumberedsubsec Q5.0.1: How can I do source code highlighting using font-lock?
 
 For most modes, font-lock is already set up and just needs to be turned
 on.  This can be done by @kbd{M-x font-lock-mode}, or by having XEmacs
@@ -4590,7 +4802,7 @@
 Remember to save options.
 
 @node Q5.0.2, Q5.0.3, Q5.0.1, Miscellaneous
-@section I do not like cc-mode.  How do I use the old c-mode?
+@unnumberedsubsec Q5.0.2: I do not like cc-mode.  How do I use the old c-mode?
 
 Well, first off, consider if you really want to do this.  cc-mode is
 much more powerful than the old c-mode.  If you're having trouble
@@ -4606,14 +4818,14 @@
 (makunbound 'c++-mode-map)
 (makunbound 'c-style-alist)
 (load-library "old-c-mode")
-(load-library "old-c++-mode")
+(load-library "old-c++-mode")	
 @end lisp
 
 This must be done before any other reference is made to either c-mode or
 c++-mode.
 
 @node Q5.0.3, Q5.0.4, Q5.0.2, Miscellaneous
-@section How do I get @samp{More} Syntax Highlighting on by default?
+@unnumberedsubsec Q5.0.3: How do I get @samp{More} Syntax Highlighting on by default?
 
 Use the following code in your @file{.emacs}:
 
@@ -4636,7 +4848,7 @@
 Remember to save options.
 
 @node Q5.0.4, Q5.0.5, Q5.0.3, Miscellaneous
-@section How can I enable auto-indent?
+@unnumberedsubsec Q5.0.4: How can I enable auto-indent?
 
 Put the following line in your @file{.emacs}:
 
@@ -4665,7 +4877,7 @@
 Please note that the @code{fa-extras} package is no longer useful.
 
 @node Q5.0.5, Q5.0.6, Q5.0.4, Miscellaneous
-@section How can I get XEmacs to come up in text/auto-fill mode by default?
+@unnumberedsubsec Q5.0.5: How can I get XEmacs to come up in text/auto-fill mode by default?
 
 Try the following lisp in your @file{.emacs}:
 
@@ -4710,7 +4922,7 @@
 some programming language).
 
 @node Q5.0.6, Q5.0.7, Q5.0.5, Miscellaneous
-@section How do I start up a second shell buffer?
+@unnumberedsubsec Q5.0.6: How do I start up a second shell buffer?
 
 In the @code{*shell*} buffer:
 
@@ -4725,7 +4937,7 @@
 rename-buffer}.
 
 @node Q5.0.7, Q5.0.8, Q5.0.6, Miscellaneous
-@section Telnet from shell filters too much
+@unnumberedsubsec Q5.0.7: Telnet from shell filters too much
 
 I'm using the Emacs @kbd{M-x shell} function, and I would like to invoke
 and use a telnet session within it.  Everything works fine except that
@@ -4737,7 +4949,7 @@
 if you have @code{ssh} installed.
 
 @node Q5.0.8, Q5.0.9, Q5.0.7, Miscellaneous
-@section Why does edt emulation not work?
+@unnumberedsubsec Q5.0.8: Why does edt emulation not work?
 
 We don't know, but you can use tpu-edt emulation instead, which works
 fine and is a little fancier than the standard edt emulation.  To do
@@ -4755,7 +4967,7 @@
 @end lisp
 
 @node Q5.0.9, Q5.0.10, Q5.0.8, Miscellaneous
-@section How can I emulate VI and use it as my default mode?
+@unnumberedsubsec Q5.0.9: How can I emulate VI and use it as my default mode?
 
 Our recommended VI emulator is viper. To make viper-mode the default,
 add this to your @file{.emacs}:
@@ -4764,7 +4976,7 @@
 (viper-mode)
 @end lisp
 
-Michael Kifer <kifer@@CS.SunySB.EDU> writes:
+@email{kifer@@CS.SunySB.EDU, Michael Kifer} writes:
 
 @quotation
 This should be added as close to the top of @file{.emacs} as you can get
@@ -4772,12 +4984,12 @@
 @end quotation
 
 @node Q5.0.10, Q5.0.11, Q5.0.9, Miscellaneous
-@section [This question intentionally left blank]
+@unnumberedsubsec Q5.0.10: [This question intentionally left blank]
 
 Obsolete question, left blank to avoid renumbering
-
+   
 @node Q5.0.11, Q5.0.12, Q5.0.10, Miscellaneous
-@section Filladapt doesn't work in 19.15
+@unnumberedsubsec Q5.0.11: Filladapt doesn't work in 19.15
 
 Filladapt 2.x is included in 19.15.  In it filladapt is now a minor
 mode and minor modes are traditionally off by default.  The following
@@ -4791,11 +5003,11 @@
 major modes, like this:
 
 @lisp
-(add-hook 'text-mode-hook 'turn-on-filladapt-mode)
+(add-hook 'text-mode-hook 'turn-on-filladapt-mode) 
 @end lisp
 
 @node Q5.0.12, Q5.0.13, Q5.0.11, Miscellaneous
-@section How do I disable gnuserv from opening a new frame?
+@unnumberedsubsec Q5.0.12: How do I disable gnuserv from opening a new frame?
 
 If you set the @code{gnuserv-frame} variable to the frame that should be
 used to display buffers that are pulled up, a new frame will not be
@@ -4819,7 +5031,7 @@
 
 
 @node Q5.0.13, Q5.0.14, Q5.0.12, Miscellaneous
-@section How do I start gnuserv so that each subsequent XEmacs is a client?
+@unnumberedsubsec Q5.0.13: How do I start gnuserv so that each subsequent XEmacs is a client?
 
 Put the following in your @file{.emacs} file to start the server:
 
@@ -4841,7 +5053,7 @@
 See also man page of gnuclient.
 
 @node Q5.0.14, Q5.0.15, Q5.0.13, Miscellaneous
-@section Strange things are happening in Shell Mode.
+@unnumberedsubsec Q5.0.14: Strange things are happening in Shell Mode.
 
 Sometimes (i.e. it's not repeatable, and I can't work out why it
 happens) when I'm typing into shell mode, I hit return and only a
@@ -4849,7 +5061,7 @@
 returned.  If I hit return again, the rest of the previous command is
 given to the shell.
 
-Martin Buchholz <martin@@xemacs.org> writes:
+@email{martin@@xemacs.org, Martin Buchholz} writes:
 
 @quotation
 There is a known problem with interaction between @code{csh} and the
@@ -4862,16 +5074,16 @@
 @end quotation
 
 @node Q5.0.15, Q5.0.16, Q5.0.14, Miscellaneous
-@section Where do I get the latest CC Mode?
-
-Barry A. Warsaw <bwarsaw@@cnri.reston.va.us> writes:
+@unnumberedsubsec Q5.0.15: Where do I get the latest CC Mode?
+
+@email{bwarsaw@@cnri.reston.va.us, Barry A. Warsaw} writes:
 
 @quotation
-This can be had from <URL:http://www.python.org/ftp/emacs/>.
+This can be had from @uref{http://www.python.org/ftp/emacs/}.
 @end quotation
 
 @node Q5.0.16, Q5.0.17, Q5.0.15, Miscellaneous
-@section I find auto-show-mode disconcerting.  How do I turn it off?
+@unnumberedsubsec Q5.0.16: I find auto-show-mode disconcerting.  How do I turn it off?
 
 @code{auto-show-mode} controls whether or not a horizontal scrollbar
 magically appears when a line is too long to be displayed.  This is
@@ -4884,36 +5096,66 @@
 @end lisp
 
 @node Q5.0.17, Q5.0.18, Q5.0.16, Miscellaneous
-@section How can I get two instances of info?
+@unnumberedsubsec Q5.0.17: How can I get two instances of info?
 
 You can't.  The @code{info} package does not provide for multiple info buffers.
 
 @node Q5.0.18, Q5.0.19, Q5.0.17, Miscellaneous
-@section I upgraded to XEmacs 19.14 and gnuserv stopped working.
-
-Mark Daku <daku@@nortel.ca> writes:
+@unnumberedsubsec Q5.0.18: I upgraded to XEmacs 19.14 and gnuserv stopped working.
+
+@email{daku@@nortel.ca, Mark Daku} writes:
 
 @quotation
 It turns out I was using an older version of gnuserv.  The installation
 didn't put the binary into the public bin directory.  It put it in
+@iftex
+@*
+@end iftex 
 @file{lib/xemacs-19.14/hppa1.1-hp-hpux9.05/gnuserv}.  Shouldn't it have
 been put in @file{bin/hppa1.1-hp-hpux9.0}?
 @end quotation
 
-@node Q5.0.19, Q5.1.1, Q5.0.18, Miscellaneous
-@section Is there something better than LaTeX mode?
-
-David Kastrup <dak@@fsnif.neuroinformatik.ruhr-uni-bochum.de> writes:
+@node Q5.0.19, Q5.0.20, Q5.0.18, Miscellaneous
+@unnumberedsubsec Q5.0.19: Is there something better than LaTeX mode?
+
+@email{dak@@fsnif.neuroinformatik.ruhr-uni-bochum.de, David Kastrup} writes:
 
 @quotation
 The standard TeX modes leave much to be desired, and are somewhat
 leniently maintained.  Serious TeX users use AUC TeX (@xref{Q4.7.1}).
 @end quotation
 
-@node Q5.1.1, Q5.1.2, Q5.0.19, Miscellaneous
-@section What is the difference in key sequences between XEmacs and GNU Emacs?
-
-Erik Naggum <erik@@naggum.no> writes;
+@node Q5.0.20, Q5.1.1, Q5.0.19, Miscellaneous
+@unnumberedsubsec Q5.0.20: Is there a way to start a new XEmacs if there's no gnuserv running, and otherwise use gnuclient?
+
+@email{vroonhof@@math.ethz.ch, Jan Vroonhof} writes:
+@quotation
+Here is one of the solutions, we have this in a script called
+@file{etc/editclient.sh}.
+@example
+ #!/bin/sh
+ if gnuclient -batch -eval t >/dev/null 2>&1
+ then
+   exec gnuclient $@{1+"$@@"@}
+ else
+   xemacs -unmapped -f gnuserv-start &
+   until gnuclient -batch -eval t >/dev/null 2>&1
+   do
+      sleep 1
+   done
+   exec gnuclient $@{1+"$@@"@}
+ fi
+@end example
+
+Note that there is a known problem when running XEmacs and 'gnuclient
+-nw' on the same TTY.
+@end quotation
+
+@node Q5.1.1, Q5.1.2, Q5.0.20, Miscellaneous
+@unnumberedsec Emacs Lisp Programming Techniques
+@unnumberedsubsec Q5.1.1: What is the difference in key sequences between XEmacs and GNU Emacs?
+
+@email{clerik@@naggum.no, Erik Naggum} writes;
 
 @quotation
 Emacs has a legacy of keyboards that produced characters with modifier
@@ -4944,7 +5186,7 @@
 you use.  The function is available both on XEmacs and GNU Emacs.
 
 @node Q5.1.2, Q5.1.3, Q5.1.1, Miscellaneous
-@section Can I generate "fake" keyboard events?
+@unnumberedsubsec Q5.1.2: Can I generate "fake" keyboard events?
 
 I wonder if there is an interactive function that can generate
 @dfn{fake} keyboard events.  This way, I could simply map them inside
@@ -4959,13 +5201,13 @@
 
 ;;  Backspace and Delete stuff
 (global-set-key [backspace]
-                (lambda () (interactive) (cg--generate-char-event 127)))
+  (lambda () (interactive) (cg--generate-char-event 127)))
 (global-set-key [unknown_keysym_0x4]
-                (lambda () (interactive) (cg--generate-char-event 4)))
+  (lambda () (interactive) (cg--generate-char-event 4)))
 @end lisp
 
 @node Q5.1.3, Q5.1.4, Q5.1.2, Miscellaneous
-@section Could you explain @code{read-kbd-macro} in more detail?
+@unnumberedsubsec Q5.1.3: Could you explain @code{read-kbd-macro} in more detail?
 
 The @code{read-kbd-macro} function returns the internal Emacs
 representation of a human-readable string (which is its argument).
@@ -4973,10 +5215,10 @@
 
 @lisp
 (read-kbd-macro "C-c C-a")
-     @result{} [(control ?c) (control ?a)]
+@result{} [(control ?c) (control ?a)]
 
 (read-kbd-macro "C-c C-. <up>")
-     @result{} [(control ?c) (control ?.) up]
+@result{} [(control ?c) (control ?.) up]
 @end lisp
 
 In GNU Emacs the same forms will be evaluated to what GNU Emacs
@@ -5040,7 +5282,11 @@
 
 Any word may be prefixed by a multiplier in the form of a decimal number
 and @code{*}: @code{3*<right>} @equiv{} @code{<right> <right> <right>},
-and @code{10*foo} @equiv{} @code{foofoofoofoofoofoofoofoofoofoo}.
+and @code{10*foo} @equiv{} 
+@iftex
+@*
+@end iftex 
+@code{foofoofoofoofoofoofoofoofoofoo}.
 
 Multiple text keys can normally be strung together to form a word, but
 you may need to add whitespace if the word would look like one of the
@@ -5052,7 +5298,7 @@
 @end quotation
 
 @node Q5.1.4, Q5.1.5, Q5.1.3, Miscellaneous
-@section What is the performance hit of @code{let}?
+@unnumberedsubsec Q5.1.4: What is the performance hit of @code{let}?
 
 In most cases, not noticeable.  Besides, there's no avoiding
 @code{let}---you have to bind your local variables, after all.  Some
@@ -5062,7 +5308,7 @@
 provide the clearest code.
 
 @node Q5.1.5, Q5.1.6, Q5.1.4, Miscellaneous
-@section What is the recommended use of @code{setq}?
+@unnumberedsubsec Q5.1.5: What is the recommended use of @code{setq}?
 
 @itemize @bullet
 @item Global variables
@@ -5078,7 +5324,7 @@
 
 @lisp
 (let ((case-fold-search nil))
-  ...       ; code with searches that must be case-sensitive
+  ...					; code with searches that must be case-sensitive
   ...)
 @end lisp
 
@@ -5125,7 +5371,7 @@
 @end itemize
 
 @node Q5.1.6, Q5.1.7, Q5.1.5, Miscellaneous
-@section What is the typical misuse of @code{setq} ?
+@unnumberedsubsec Q5.1.6: What is the typical misuse of @code{setq} ?
 
 A typical misuse is probably @code{setq}ing a variable that was meant to
 be local.  Such a variable will remain bound forever, never to be
@@ -5143,7 +5389,7 @@
 
 @lisp
 (defun my-function (whatever)
-  (let (a)             ; default initialization is to nil
+  (let (a)				; default initialization is to nil
     ... build a large list ...
     ... and exit, unbinding `a' in the process  ...)
 @end lisp
@@ -5156,18 +5402,18 @@
 The reason for the warning is the following:
 
 @lisp
-(defun flurgoze nil)          ; ok, global internal variable
+(defun flurgoze nil)			; ok, global internal variable
 ...
 
-(setq flurghoze t)      ; ops!  a typo, but semantically correct.
-                        ; however, the byte-compiler warns.
+(setq flurghoze t)			; ops!  a typo, but semantically correct.
+					; however, the byte-compiler warns.
 
 While compiling toplevel forms:
-  ** assignment to free variable flurghoze
+** assignment to free variable flurghoze
 @end lisp
 
 @node Q5.1.7, Q5.1.8, Q5.1.6, Miscellaneous
-@section I like the the @code{do} form of cl, does it slow things down?
+@unnumberedsubsec Q5.1.7: I like the the @code{do} form of cl, does it slow things down?
 
 It shouldn't.  Here is what Dave Gillespie has to say about cl.el
 performance:
@@ -5209,7 +5455,7 @@
 @end quotation
 
 @node Q5.1.8, Q5.1.9, Q5.1.7, Miscellaneous
-@section I like recursion, does it slow things down?
+@unnumberedsubsec Q5.1.8: I like recursion, does it slow things down?
 
 Yes.  Emacs byte-compiler cannot do much to optimize recursion.  But
 think well whether this is a real concern in Emacs.  Much of the Emacs
@@ -5220,7 +5466,7 @@
 gain.  It's not usually worth it.
 
 @node Q5.1.9, Q5.1.10, Q5.1.8, Miscellaneous
-@section How do I put a glyph as annotation in a buffer?
+@unnumberedsubsec Q5.1.9: How do I put a glyph as annotation in a buffer?
 
 Here is a solution that will insert the glyph annotation at the
 beginning of buffer:
@@ -5233,23 +5479,27 @@
                  (current-buffer))
 @end lisp
 
-Replace @samp{FORMAT} with an unquoted symbol representing the format of
+Replace @samp{FORMAT} with an unquoted symbol representing the format of 
 the image (e.g. @code{xpm}, @code{xbm}, @code{gif}, @code{jpeg}, etc.)
 Instead of @samp{FILE}, use the image file name
-(e.g. @file{/usr/local/lib/xemacs-20.2/etc/recycle.xpm}).
+(e.g. 
+@iftex
+@*
+@end iftex 
+@file{/usr/local/lib/xemacs-20.2/etc/recycle.xpm}).
 
 You can turn this to a function (that optionally prompts you for a file
 name), and inserts the glyph at @code{(point)} instead of
 @code{(point-min)}.
 
 @node Q5.1.10, Q5.2.1, Q5.1.9, Miscellaneous
-@section @code{map-extents} won't traverse all of my extents!
+@unnumberedsubsec Q5.1.10: @code{map-extents} won't traverse all of my extents!
 
 I tried to use @code{map-extents} to do an operation on all the extents
-in a region.  However, it seems to quit after processing a random number
+in a region.  However, it seems to quit after processing a random number 
 of extents.  Is it buggy?
 
-No.  The documentation of @code{map-extents} states that it will iterate
+No.  The documentation of @code{map-extents} states that it will iterate 
 across the extents as long as @var{function} returns @code{nil}.
 Unexperienced programmers often forget to return @code{nil} explicitly,
 which results in buggy code.  For instance, the following code is
@@ -5274,7 +5524,7 @@
 @end lisp
 
 @node Q5.2.1, Q5.2.2, Q5.1.10, Miscellaneous
-@section How do I turn off the sound?
+@unnumberedsubsec Q5.2.1: How do I turn off the sound?
 
 Add the following line to your @file{.emacs}:
 
@@ -5283,7 +5533,7 @@
 (setq sound-alist nil)
 @end lisp
 
-That will make your XEmacs totally silent -- even the default ding sound
+That will make your XEmacs totally silent -- even the default ding sound 
 (TTY beep on TTY-s) will be gone.
 
 Starting with XEmacs-20.2 you can also change these with Customize.
@@ -5293,7 +5543,7 @@
 
 
 @node Q5.2.2, Q5.2.3, Q5.2.1, Miscellaneous
-@section How do I get funky sounds instead of a boring beep?
+@unnumberedsubsec Q5.2.2: How do I get funky sounds instead of a boring beep?
 
 Make sure your XEmacs was compiled with sound support, and then put this
 in your @file{.emacs}:
@@ -5306,18 +5556,18 @@
 versions.
 
 @node Q5.2.3, Q5.2.4, Q5.2.2, Miscellaneous
-@section What's NAS, how do I get it?
+@unnumberedsubsec Q5.2.3: What's NAS, how do I get it?
 
 @xref{Q2.0.3} for an explanation of the @dfn{Network Audio System}.
 
 @node Q5.2.4, Q5.3.1, Q5.2.3, Miscellaneous
-@section Sunsite sounds don't play.
+@unnumberedsubsec Q5.2.4: Sunsite sounds don't play.
 
 I'm having some trouble with sounds I've downloaded from sunsite.  They
 play when I run them through @code{showaudio} or cat them directly to
 @file{/dev/audio}, but XEmacs refuses to play them.
 
-Markus Gutschke <gutschk@@uni-muenster.de> writes:
+@email{gutschk@@uni-muenster.de, Markus Gutschke} writes:
 
 @quotation
 [Many of] These files have an (erroneous) 24byte header that tells about
@@ -5330,7 +5580,8 @@
 @end quotation
 
 @node Q5.3.1, Q5.3.2, Q5.2.4, Miscellaneous
-@section How do you make XEmacs indent CL if-clauses correctly?
+@unnumberedsec Miscellaneous
+@unnumberedsubsec Q5.3.1: How do you make XEmacs indent CL if-clauses correctly?
 
 I'd like XEmacs to indent all the clauses of a Common Lisp @code{if} the
 same amount instead of indenting the 3rd clause differently from the
@@ -5366,7 +5617,7 @@
 any indent-functions.
 
 @node Q5.3.2, Q5.3.3, Q5.3.1, Miscellaneous
-@section Fontifying hang when editing a postscript file.
+@unnumberedsubsec Q5.3.2: Fontifying hang when editing a postscript file.
 
 When I try to edit a postscript file it gets stuck saying:
 @samp{fontifying 'filename' (regexps....)} and it just sits there.  If I
@@ -5386,17 +5637,17 @@
 files anymore.
 
 @node Q5.3.3, Q5.3.4, Q5.3.2, Miscellaneous
-@section How can I print WYSIWYG a font-locked buffer?
+@unnumberedsubsec Q5.3.3: How can I print WYSIWYG a font-locked buffer?
 
 Font-lock looks nice.  How can I print (WYSIWYG) the highlighted
 document?
 
 The package @code{ps-print}, which is now included with XEmacs, provides
 the ability to do this.  The source code contains complete instructions
-on its use, in @file{<xemacs_src_root>/lisp/packages/ps-print.el}.
+on its use, in @file{@email{xemacs_src_root}/lisp/packages/ps-print.el}.
 
 @node Q5.3.4, Q5.3.5, Q5.3.3, Miscellaneous
-@section Getting @kbd{M-x lpr} to work with postscript printer.
+@unnumberedsubsec Q5.3.4: Getting @kbd{M-x lpr} to work with postscript printer.
 
 My printer is a Postscript printer and @code{lpr} only works for
 Postscript files, so how do I get @kbd{M-x lpr-region} and @kbd{M-x
@@ -5414,7 +5665,7 @@
 versions of a2ps require a @samp{-Pprinter} to ensure spooling.
 
 @node Q5.3.5, Q5.3.6, Q5.3.4, Miscellaneous
-@section How do I specify the paths that XEmacs uses for finding files?
+@unnumberedsubsec Q5.3.5: How do I specify the paths that XEmacs uses for finding files?
 
 You can specify what paths to use by using a number of different flags
 when running configure.  See the section MAKE VARIABLES in the top-level
@@ -5429,12 +5680,12 @@
 file.
 
 @node Q5.3.6, Q5.3.7, Q5.3.5, Miscellaneous
-@section [This question intentionally left blank]
+@unnumberedsubsec Q5.3.6: [This question intentionally left blank]
 
 Obsolete question, left blank to avoid renumbering.
 
 @node Q5.3.7, Q5.3.8, Q5.3.6, Miscellaneous
-@section Can I have the end of the buffer delimited in some way?
+@unnumberedsubsec Q5.3.7: Can I have the end of the buffer delimited in some way?
 
 Say, with: @samp{[END]}?
 
@@ -5444,7 +5695,7 @@
 (let ((ext (make-extent (point-min) (point-max))))
   (set-extent-property ext 'start-closed t)
   (set-extent-property ext 'end-closed t)
-  (set-extent-property ext 'detachable nil)
+  (set-extent-property ext 'detachable nil)  
   (set-extent-end-glyph ext (make-glyph [string :data "[END]"])))
 @end lisp
 
@@ -5465,7 +5716,7 @@
 (let ((ext (make-extent (point-min) (point-max))))
   (set-extent-property ext 'start-closed t)
   (set-extent-property ext 'end-closed t)
-  (set-extent-property ext 'detachable nil)
+  (set-extent-property ext 'detachable nil)  
   (set-extent-end-glyph ext (make-glyph '([xpm :data "\
 /* XPM */
 static char* eye = @{
@@ -5477,17 +5728,17 @@
 \"_c c #fefe00\",
 \"_d c #fe0000\",
 \"_e c #bfbfbf\",
-\"___________`_`_`___b_b_b_b_________`____\",
-\"_________`_`_`___b_c_c_c_b_b____________\",
-\"_____`_`_`_e___b_b_c_c_c___b___b_______`\",
-\"___`_`_e_a___b_b_d___b___b___b___b______\",
-\"_`_`_e_a_e___b_b_d_b___b___b___b___b____\",
-\"_`_`_a_e_a___b_b_d___b___b___b___b___b__\",
-\"_`_`_e_a_e___b_b_d_b___b___b___b___b_b__\",
-\"___`_`_e_a___b_b_b_d_c___b___b___d_b____\",
-\"_____`_`_e_e___b_b_b_d_c___b_b_d_b______\",
-\"_`_____`_`_`_`___b_b_b_d_d_d_d_b________\",
-\"___`_____`_`_`_`___b_b_b_b_b_b__________\",
+\"___________`_`_`___b_b_b_b_________`____\", 
+\"_________`_`_`___b_c_c_c_b_b____________\", 
+\"_____`_`_`_e___b_b_c_c_c___b___b_______`\", 
+\"___`_`_e_a___b_b_d___b___b___b___b______\", 
+\"_`_`_e_a_e___b_b_d_b___b___b___b___b____\", 
+\"_`_`_a_e_a___b_b_d___b___b___b___b___b__\", 
+\"_`_`_e_a_e___b_b_d_b___b___b___b___b_b__\", 
+\"___`_`_e_a___b_b_b_d_c___b___b___d_b____\", 
+\"_____`_`_e_e___b_b_b_d_c___b_b_d_b______\", 
+\"_`_____`_`_`_`___b_b_b_d_d_d_d_b________\", 
+\"___`_____`_`_`_`___b_b_b_b_b_b__________\", 
 @} ;"]
                                           [string :data "[END]"]))))
 @end lisp
@@ -5496,7 +5747,7 @@
 We leave that as an exercise for the reader.
 
 @node Q5.3.8, Q5.3.9, Q5.3.7, Miscellaneous
-@section How do I insert today's date into a buffer?
+@unnumberedsubsec Q5.3.8: How do I insert today's date into a buffer?
 
 Like this:
 
@@ -5505,9 +5756,9 @@
 @end lisp
 
 @node Q5.3.9, Q5.3.10, Q5.3.8, Miscellaneous
-@section Are only certain syntactic character classes available for abbrevs?
-
-Markus Gutschke <gutschk@@uni-muenster.de> writes:
+@unnumberedsubsec Q5.3.9: Are only certain syntactic character classes available for abbrevs?
+
+@email{gutschk@@uni-muenster.de, Markus Gutschke} writes:
 
 @quotation
 Yes, abbrevs only expands word-syntax strings. While XEmacs does not
@@ -5525,11 +5776,11 @@
 Starting with XEmacs 20.3 this restriction has been lifted.
 
 @node Q5.3.10, Q5.3.11, Q5.3.9, Miscellaneous
-@section How can I get those oh-so-neat X-Face lines?
+@unnumberedsubsec Q5.3.10: How can I get those oh-so-neat X-Face lines?
 
 Firstly there is an ftp site which describes X-faces and has the
 associated tools mentioned below, at
-<URL:ftp://ftp.cs.indiana.edu:/pub/faces/>.
+@uref{ftp://ftp.cs.indiana.edu:/pub/faces/}.
 
 Then the steps are
 
@@ -5550,7 +5801,11 @@
 Then be sure to quote things that are necessary for emacs strings:
 
 @example
-cat ./file.face | sed 's/\\/\\\\/g'  | sed 's/\"/\\\"/g' > ./file.face.quoted
+cat ./file.face | sed 's/\\/\\\\/g'
+@iftex
+\ @*
+@end iftex 
+| sed 's/\"/\\\"/g' > ./file.face.quoted
 @end example
 
 @item
@@ -5558,15 +5813,15 @@
 couple of suggestions here---either something like:
 
 @lisp
-(setq  mail-default-headers
-  "X-Face:  <Ugly looking text string here>")
+(setq  mail-default-headers 
+       "X-Face:  @email{Ugly looking text string here}")
 @end lisp
 
 Or, alternatively, as:
 
 @lisp
 (defun mail-insert-x-face ()
-  (save-excursion
+  (save-excursion 
     (goto-char (point-min))
     (search-forward mail-header-separator)
     (beginning-of-line)
@@ -5590,34 +5845,34 @@
 Some people have also found that if one uses the @code{(insert-file)}
 method, one should NOT quote the face string using the sed script .
 
-It might also be helpful to use Stig's <stig@@hackvan.com> script
+It might also be helpful to use @email{stig@@hackvan.com, Stig's} script
 (included in the compface distribution at XEmacs.org) to do the
 conversion.  For convenience xbm2xface is available for anonymous FTP at
-<URL:ftp://ftp.miranova.com/pub/xemacs/xbm2xface.pl>.
+@uref{ftp://ftp.miranova.com/pub/xemacs/xbm2xface.pl}.
 
 Contributors for this item:
 
-Paul Emsley,
+Paul Emsley, 
 Ricardo Marek,
 Amir J. Katz,
 Glen McCort,
-Heinz Uphoff,
+Heinz Uphoff, 
 Peter Arius,
 Paul Harrison, and
 Vegard Vesterheim
 
 @node Q5.3.11, Q5.3.12, Q5.3.10, Miscellaneous
-@section How do I add new Info directories?
+@unnumberedsubsec Q5.3.11: How do I add new Info directories?
 
 You use something like:
 
 @lisp
-(setq Info-directory-list (cons
-			    (expand-file-name "~/info")
- 			    Info-default-directory-list))
+(setq Info-directory-list (cons 
+			   (expand-file-name "~/info")
+			   Info-default-directory-list))
 @end lisp
 
-David Masterson <davidm@@prism.kla.com> writes:
+@email{davidm@@prism.kla.com, David Masterson} writes:
 
 @quotation
 Emacs Info and XEmacs Info do many things differently.  If you're trying to
@@ -5651,7 +5906,7 @@
 @end quotation
 
 @node Q5.3.12,  , Q5.3.11, Miscellaneous
-@section What do I need to change to make printing work?
+@unnumberedsubsec Q5.3.12: What do I need to change to make printing work?
 
 For regular printing there are two variables that can be customized.
 
@@ -5695,7 +5950,7 @@
 window system environment.  It cannot be used outside of X11.
 
 @node Current Events,  , Miscellaneous, Top
-@chapter What the Future Holds
+@unnumbered 6 What the Future Holds
 
 This is part 6 of the XEmacs Frequently Asked Questions list.  This
 section will change monthly, and contains any interesting items that have
@@ -5706,11 +5961,13 @@
 @menu
 * Q6.0.1::      What is new in 20.2?
 * Q6.0.2::      What is new in 20.3?
-* Q6.0.3::      Procedural changes in XEmacs development.
+* Q6.0.3::      What is new in 20.4?      
+* Q6.0.4::      Procedural changes in XEmacs development.
 @end menu
 
 @node Q6.0.1, Q6.0.2, Current Events, Current Events
-@section What is new in 20.2?
+@unnumberedsec Changes 
+@unnumberedsubsec Q6.0.1: What is new in 20.2?
 
 The biggest changes in 20.2 include integration of EFS (the next
 generation of ange-ftp) and AUC Tex (the Emacs subsystem that includes a
@@ -5723,7 +5980,7 @@
 considered unstable.
 
 @node Q6.0.2, Q6.0.3, Q6.0.1, Current Events
-@section What is new in 20.3?
+@unnumberedsubsec Q6.0.2: What is new in 20.3?
 
 XEmacs 20.3 was released in November 1997. It contains many bugfixes,
 and a number of new features, including Autoconf 2 based configuration,
@@ -5742,20 +5999,31 @@
 XEmacs 20.3 is the first non-beta v20 release, and will be the
 basis for all further development.
 
-@node Q6.0.3,  , Q6.0.2, Current Events
-@section Procedural changes in XEmacs development.
+@node Q6.0.3, Q6.0.4, Q6.0.2, Current Events
+@unnumberedsubsec Q6.0.3: What's new in XEmacs 20.4?
+
+XEmacs 20.4 is a bugfix release with no user-visible changes.
+@c Filled in from NEWS file of 20.5-b33
+
+
+@node Q6.0.4,  , Q6.0.3, Current Events
+@unnumberedsubsec Q6.0.4: Procedural changes in XEmacs development.
 
 @enumerate
 @item
 Discussion about the development of XEmacs occurs on the xemacs-beta
 mailing list.  Subscriptions to this list will now be fully automated
 instead of being handled by hand.  Send a mail message to
-<xemacs-beta-request@@xemacs.org> with a subject of subscribe to join
+@email{xemacs-beta-request@@xemacs.org} with a subject of subscribe to join
 the list.  Please note this is a developers mailing list for people who
 have an active interest in the development process.
 
 The discussion of NT XEmacs development is taking place on a separate
-mailing list.  Send mail to <xemacs-nt-request@@xemacs.org> to
+mailing list.  Send mail to 
+@iftex 
+@* 
+@end iftex 
+@email{xemacs-nt-request@@xemacs.org} to
 subscribe.
 
 @item
@@ -5767,7 +6035,7 @@
 the collected bugfixes.
 
 @item
-As of December 1996, Steve Baur <steve@@altair.xemacs.org> has become
+As of December 1996, @email{steve@@altair.xemacs.org, Steve Baur} has become
 the lead maintainer of XEmacs.
 @end enumerate
 
--- a/nt/ChangeLog	Mon Aug 13 10:28:54 2007 +0200
+++ b/nt/ChangeLog	Mon Aug 13 10:29:42 2007 +0200
@@ -1,3 +1,39 @@
+1998-04-10  Kirill M. Katsnelson  <kkm@kis.ru>
+
+	* config.h: Do not USE_ASSERTION when DEBUG_XEMACS is not
+	defined. 
+
+	* xemacs.mak: Added new file process-nt.c
+
+1998-04-07  Kirill M. Katsnelson  <kkm@kis.ru>
+
+	* xemacs.mak: Added build options which can be defined in nmake
+	command line (defaults are parentheses):
+	HAVE_MSW=0/1	(0)	Build with native GUI
+	HAVE_X=0/1	(0)	Build with X-Windows
+				** At least one must be defined
+	X11_DIR=path	()	Path to the root dir of X11R6 installation
+				** Must be defined when HAVE_X=1
+	HAVE_MULE=0/1	(0)	Compile in MULE
+	HAVE_MSW_C_DIRED=0/1(1)	Compile in fast dired
+	PATH_PACKAGEPATH=path	Package search path
+			("~/.xemacs")
+	DEBUG_XEMACS=0/1 (1)	Compile with symbols, assertions and
+				extra debugging checks
+	USE_UNION_TYPE=0/1 (0)
+	USE_MINIMAL_TAGBITS=0/1 (0)
+	USE_INDEXED_LRECORD_IMPLEMENTATION=0/1 (0)
+	GUNG_HO=0/1 (none)	When specified, overrides the above two.
+	: Added output of a configuration report
+	: Added copyright notice.
+	: Deleted remains of ImageMagick.
+	(distclean): Do not use mskedepend
+	(install): echo "Not yet implmented".
+
+1998-04-05  Kirill M. Katsnelson  <kkm@kis.ru>
+
+	* config.h (enum_field): Borrow new definition from config.h.in
+
 1998-04-01  Kirill M. Katsnelson  <kkm@kis.ru>
 
 	* config.h: Patial sync-up with config.h.in
--- a/nt/config.h	Mon Aug 13 10:28:54 2007 +0200
+++ b/nt/config.h	Mon Aug 13 10:29:42 2007 +0200
@@ -311,6 +311,8 @@
 
 #define LOWTAGS
 
+#ifdef DEBUG_XEMACS
+
 /* Define USE_ASSERTIONS if you want the abort() to be changed to assert()
    If the assertion fails, assert_failed() will be called.  This is
    recommended for general use because it gives more info about the crash
@@ -318,12 +320,6 @@
    or have limited core dumps out of existence. */
 #define USE_ASSERTIONS
 
-/* Define one or more of the following if you want lots of extra checks
-   (e.g. structure validation) compiled in.  These should be turned
-   on during the beta-test cycle. */
-
-#ifdef DEBUG_XEMACS
-
 /* Check the entire extent structure of a buffer each time an extent
    change is done, and do other extent-related checks. */
 #define ERROR_CHECK_EXTENTS
@@ -344,10 +340,6 @@
 
 #endif /* DEBUG_XEMACS */
 
-/* Define DEBUG_XEMACS if you want extra debugging code compiled in.
-   This is mainly intended for use by developers. */
-/* #define DEBUG_XEMACS 0 */
-
 /* Define MEMORY_USAGE_STATS if you want extra code compiled in to
    determine where XEmacs's memory is going. */
 #undef MEMORY_USAGE_STATS
@@ -649,6 +641,8 @@
 
 #endif /* compiler understands #pragma warning*/
 
+#define enum_field(enumeration_type) enum enumeration_type
+
 /* We want to avoid saving the signal mask if possible, because
    that necessitates a system call. */
 #ifdef HAVE_SIGSETJMP
--- a/nt/xemacs.mak	Mon Aug 13 10:28:54 2007 +0200
+++ b/nt/xemacs.mak	Mon Aug 13 10:29:42 2007 +0200
@@ -1,18 +1,118 @@
+#   Makefile for Microsoft NMAKE
+#   Copyright (C) 1995 Board of Trustees, University of Illinois.
+#   Copyright (C) 1995, 1996 Ben Wing.
+#   Copyright (C) 1995 Sun Microsystems, Inc.
+#   Copyright (C) 1998 Free Software Foundation, Inc.
+#
+# This file is part of XEmacs.
+#
+# XEmacs is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2, or (at your option) any
+# later version.
+#
+# XEmacs is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with XEmacs; see the file COPYING.  If not, write to
+# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+#
+# Synched up with: Not in FSF.
+#
+
 XEMACS=..
 LISP=$(XEMACS)\lisp
-PATH_PACKAGEPATH="~/.xemacs;;d:/src/xemacs/packages"
+
+#
+# Command line options defaults
+#
+!if !defined(PATH_PACKAGEPATH)
+PATH_PACKAGEPATH="~/.xemacs"
+!endif
+!if !defined(HAVE_MSW)
+HAVE_MSW=0
+!endif
+!if !defined(HAVE_X)
 HAVE_X=0
-HAVE_MSW=1
-
+!endif
+!if !defined(HAVE_MULE)
 HAVE_MULE=0
-HAVE_IMAGEMAGICK=0
+!endif
+!if !defined(HAVE_MSW_C_DIRED)
+HAVE_MSW_C_DIRED=1
+!endif
+!if !defined(DEBUG_XEMACS)
+DEBUG_XEMACS=1
+!endif
+!if !defined(USE_UNION_TYPE)
+USE_UNION_TYPE=0
+!endif
+!if !defined(USE_MINIMAL_TAGBITS)
+USE_MINIMAL_TAGBITS=0
+!endif
+!if !defined(USE_INDEXED_LRECORD_IMPLEMENTATION)
+USE_INDEXED_LRECORD_IMPLEMENTATION=0
+!endif
 
-DEBUG_XEMACS=1
+#
+# Conf error checks
+#
+!if !$(HAVE_MSW) && !$(HAVE_X)
+!error Please specify at least one HAVE_MSW=1 and/or HAVE_X=1
+!endif
+!if $(HAVE_X) && !defined(X11_DIR)
+!error Please specify root directory for your X11 installation: X11_DIR=path
+!endif
+
+#
+# Handle GUNG_HO
+#
+!if defined(GUNG_HO)
+USE_MINIMAL_TAGBITS=$(GUNG_HO)
+USE_INDEXED_LRECORD_IMPLEMENTATION=$(GUNG_HO)
+!endif
 
+#
+# Small configuration report
+#
+!if !defined(CONF_REPORT_ALREADY_PRINTED)
+!if [set CONF_REPORT_ALREADY_PRINTED=1]
+!endif
+!message ------------------------------------------------
+!if $(HAVE_MSW)
+!message Compiling in support for native GUI.
+!endif
+!if $(HAVE_X)
+!message Compiling in support for X-Windows.
+!endif
+!if $(HAVE_MULE)
+!message Compiling in MULE.
+!endif
+!if $(HAVE_MSW_C_DIRED)
 # Define HAVE_MSW_C_DIRED to be non-zero if you want Xemacs to use C
 # primitives to significantly speed up dired, at the expense of an
 # additional ~4KB of code.
-HAVE_MSW_C_DIRED=1
+!message Compiling in fast dired implementation.
+!endif
+!if $(USE_MINIMAL_TAGBITS)
+!message Using minimal tagbits.
+!endif
+!if $(USE_INDEXED_LRECORD_IMPLEMENTATION)
+!message Using indexed lrecord implementation.
+!endif
+!if $(USE_UNION_TYPE)
+!message Using union type for Lisp object storage.
+!endif
+!if $(DEBUG_XEMACS)
+!message Compiling in extra debug checks. XEmacs will be slow!
+!endif
+!message ------------------------------------------------
+!message 
+!endif # !defined(CONF_REPORT_ALREADY_PRINTED)
 
 !if $(DEBUG_XEMACS)
 OPT=-Od -Zi
@@ -22,22 +122,10 @@
 
 WARN_CPP_FLAGS = -W3
 
-#------------------------------------------------------------------------------
-
 !if $(HAVE_X)
-
-X11R6=h:\utils\X11R6
-
-!if $(HAVE_IMAGEMAGICK)
-MAGICK=e:\utils\ImageMagick
-
-MAGICK_INCLUDES=-I$(MAGICK)\Magick
-MAGICK_LIBS=Magick.dll.lib
-!endif
-
 X_DEFINES=-DHAVE_X_WINDOWS
-X_INCLUDES=-I$(X11R6)\include $(MAGICK_INCLUDES)
-X_LIBS=$(MAGICK_LIBS) Xaw.lib Xmu.lib Xt.lib SM.lib ICE.lib Xext.lib X11.lib
+X_INCLUDES=-I$(X11_DIR)\include
+X_LIBS=-libpath:$(X11_DIR)\lib Xaw.lib Xmu.lib Xt.lib SM.lib ICE.lib Xext.lib X11.lib
 !endif
 
 !if $(HAVE_MSW)
@@ -60,9 +148,6 @@
 
 !include "..\version.sh"
 
-# Nothing should need to be edited below this point.
-#------------------------------------------------------------------------------
-
 # Generic variables
 
 INCLUDES=$(X_INCLUDES) -I$(XEMACS)\nt\inc -I$(XEMACS)\src -I$(XEMACS)\lwlib -I"$(MSVCDIR)\include"
@@ -242,6 +327,7 @@
  $(XEMACS)\src\opaque.c \
  $(XEMACS)\src\print.c \
  $(XEMACS)\src\process.c \
+ $(XEMACS)\src\process-nt.c \
  $(XEMACS)\src\profile.c \
  $(XEMACS)\src\pure.c \
  $(XEMACS)\src\rangetab.c \
@@ -497,6 +583,7 @@
 	$(OUTDIR)\opaque.obj \
 	$(OUTDIR)\print.obj \
 	$(OUTDIR)\process.obj \
+	$(OUTDIR)\process-nt.obj \
 	$(OUTDIR)\profile.obj \
 	$(OUTDIR)\pure.obj \
 	$(OUTDIR)\rangetab.obj \
@@ -607,10 +694,9 @@
 
 # use this rule to install the system
 install:
+	echo Not yet implemented.
 
-# The last line demands that you have a semi-decent shell
 distclean:
-	-mkdepend -f xemacs.mak
 	del *.bak
 	del *.orig
 	del *.rej
--- a/src/ChangeLog	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/ChangeLog	Mon Aug 13 10:29:42 2007 +0200
@@ -1,3 +1,229 @@
+1998-04-10  Kirill M. Katsnelson  <kkm@kis.ru>
+
+	* callproc.c (init_callproc): Correctly initialize
+	`shell-file-name' for WINDOWSNT
+	
+	* emacs.c (main_1): Properly called new functions (see symsinit.h
+	entry for which).
+
+	* event-msw.c (struct ntpipe_slurp_stream): 
+	(slurp_thread): 
+	(make_ntpipe_input_stream): 
+	(get_ntpipe_input_stream_waitable): 
+	(get_ntpipe_input_stream_param): 
+	(ntpipe_slurp_reader): 
+	(ntpipe_slurp_closer): 
+	(init_slurp_stream): Win32 pipe input stream implementation.
+	(struct ntpipe_shove_stream): 
+	(shove_thread): 
+	(make_ntpipe_output_stream): 
+	(get_ntpipe_output_stream_param): 
+	(ntpipe_shove_writer): 
+	(ntpipe_shove_was_blocked_p): 
+	(ntpipe_shove_flusher): 
+	(ntpipe_shove_closer): 
+	(init_shove_stream): Win32 pipe output stream implementation.
+	(mswindows_enqueue_process_event): Dispatch helper.
+	(find_waitable_handle): 
+	(add_waitable_handle): 
+	(remove_waitable_handle): New three, waitable handles handling.
+	(mswindows_need_event_in_modal_loop): Simplified.
+	(mswindows_need_event): Simplified.
+	(mswindows_need_event): Generate process events on process output; 
+	kick status_notify when a process ends.
+	(mswindows_find_console): Simplified.
+	(emacs_mswindows_event_pending_p): Adjusted parameters to
+	mswindows_need_event().
+	(emacs_mswindows_next_event): Ditto.
+	(get_process_input_waitable): 
+	(get_process_handle): Process select/unselect helpers.
+	(emacs_mswindows_select_process): Implemented.
+	(emacs_mswindows_unselect_process): Implemented.
+	(emacs_mswindows_quit_p): Call mswindows_drain_windows_queue()
+	directly so do not even try do dequeue process events. Saved a
+	byte and a tick.
+	(emacs_mswindows_create_stream_pair): Implemented.
+	(emacs_mswindows_delete_stream_pair): Implemented.
+	(vars_of_event_mswindows): Registered the above two.
+	(lstream_type_create_mswindows_selectable): Function called from
+	emacs.c to create two pipe lstream types.
+
+	* ntproc.c (sys_select): Disgustful brain fart this file is.
+
+	* process-nt.c: New file: Asynchronous subprocess implemenation
+	for Win32.
+
+	* process.h: Declare Fprocess_id().
+
+	* signal.c (init_signals_very_early): Conditionalize possibly
+	nonexistent signals.
+
+	* symsinit.h: Declared:
+	lstream_type_create_mswindows_selectable ()
+	process_type_create_nt ()
+	vars_of_process_nt ()
+
+	* s/windowsnt.h: Defined HAVE_WIN32_PROCESSES.
+	Removed fake SIGTRAP, SIGPIPE and SIGCHLD.
+
+1998-04-10  Martin Buchholz  <martin@xemacs.org>
+
+	* fns.c (Fnthcdr): 
+	Most times through the loop will get a cons, so optimize for that.
+
+	* bytecode.c (Fbyte_code): Remove '91 vintage compiler bug workaround.
+	Add NATNUMP check for Bnth bytecode.
+	Bnth: Optimize case of n > length (list).
+	QUITs not necessary since even if list is circular, n will count
+	down to 0.
+	Bnthcdr: inline the code for nthcdr (we have a bytecode for it,
+	after all)
+	Bcdr, Bcar: Use tail recursion.
+
+1998-04-10  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* redisplay.c (redisplay_window): Don't lose with negative
+	scroll_step.
+
+1998-04-09  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* fileio.c (Fmake_temp_name): Don't use `+' in generated file
+	names.
+	(Fmake_temp_name): Randomize the initial values of counters.
+
+1998-04-07  Michael Sperber [Mr. Preprocessor]  <sperber@informatik.uni-tuebingen.de>
+
+	* Makefile.in.in: paths.h.in is now generated from paths.h.in.in.
+
+	* emacs.c (decode_path): Removed parsing of "::" into nil component.
+
+1998-04-09  Martin Buchholz  <martin@xemacs.org>
+
+	* lstream.c (make_filedesc_stream_1): Fix another Martin blooper.
+
+1998-04-07  SL Baur  <steve@altair.xemacs.org>
+
+	* emacs.c (Fdump_emacs): Delete superfluous open comment.
+
+1998-04-06  SL Baur  <steve@altair.xemacs.org>
+
+	* emacs.c (Fdump_emacs): Move call to disable_free_hook back to
+	Fdump_emacs where it belongs.
+
+1998-04-07  Kirill M. Katsnelson  <kkm@kis.ru>
+
+	* nt.c (sys_mkdir): Added the second unused parameter, after UNIX
+	version. Suggested by Martin.
+
+1998-04-07  Kirill M. Katsnelson  <kkm@kis.ru>
+
+	* event-msw.c (mswindows_wnd_proc): Fix member access macro names.
+
+	* frame-msw.c (mswindows_frame_property): 
+	(mswindows_internal_frame_property_p): 
+	(mswindows_frame_properties): Implemented for the 'left and 'top
+	properties.
+	(console_type_create_frame_mswindows): Regsitered the above.
+	(mswindows_set_title_from_bufbyte): Update title only if it has
+	really changed. This avoids a bit of flashing.
+
+	* console-msw.h (FRAME_MSWINDOWS_TITLE_CHECKSUM): To update title
+	smoother.
+	(MSWINDOWS_FRAME_*(f)): Were MSWINDOWS_FRAME_*(f). Eeek!
+
+1998-04-06  Kazuyuki IENAGA <ienaga@jsys.co.jp>
+
+	* unexfreebsd.c: introduce FreeBSD port's patch to avoid
+	FreeBSD-current warns "Absurd new brk addr".
+
+1998-04-06  Colin Rafferty  <colin@xemacs.org>
+
+	* glyphs-x.c (struct gif_error_struct): Made the err_str point to
+	a CONST char* instead of non-const.
+	(tiff_memory_write): Add fake return statement to shut up warnings.
+
+1998-04-06  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* fileio.c (Finsert_file_contents_internal): Correctly handle
+	special files larger than 32K.
+
+1998-04-06  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* fileio.c (Fmake_temp_name): Don't call mktemp().
+
+1998-04-06  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
+
+	* unexelf.c: include <config.h> first.
+
+1998-04-04  Martin Buchholz  <martin@xemacs.org>
+
+	* sysdep.c:  Add #include <sys/termio.h> for AIXHFT as suggested
+	on c.e.x.
+
+	* nt.c:
+	* ntproc.c:
+	Change "config.h" to <config.h>.  Add dire warnings to code since
+	config.h is not included first.
+
+	* powerpc.h: Avoid redefinition warning on START_FILES.
+
+	* window.c: Rename Vminibuf_scroll_window to Vminibuffer_scroll_window.
+	* hpplay.c: Rename play_gain to hp_play_gain in accordance with
+	coding standards.
+
+	* frame-x.c (x_lower_frame):
+	(x_raise_frame_1): Clarify code.  Save a nanosecond if frame not
+	visible.
+
+	* fileio.c (Fmake_temp_name): Use static CONST suffix; save a
+	nanosecond.
+
+1998-04-05  Amir J. Katz  <amir@ndsoft.com>
+
+	* sysproc.h: Added #include <sys/types.h> before <sys/socket.h>
+	otherwise callproc.c does not compile on SunOS 4.1.4 with gcc 2.8.1
+
+	* sysdep.h: strerror() does not return CONST in gcc 2.8.1
+
+1998-04-05  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* redisplay.c (generate_fstring_runes): Grok specifiers and
+	symbols indirecting to specifiers.
+
+1998-04-06  Olivier Galibert  <galibert@pobox.com>
+
+	* events.c (print_event): XINT() may return a long.
+
+	* insdel.c (make_gap): Thou shan't cast EMACS_INT_MAX to int.
+	(buffer_insert_string_1): ditto.
+
+	* regex.c (print_partial_compiled_pattern): Neither EMACS_INTs nor 
+	ptrdiff_t are portably printable as an int.
+
+	* redisplay.c (window_line_number): Don't assume that an EMACS_INT 
+	in an int.
+
+	* alloc.c (report_pure_usage): Don't assume that a size_t is
+	displayable as an int.
+
+1998-04-06  SL Baur  <steve@altair.xemacs.org>
+
+	* process-unix.c: Fix typo in #ifdef.
+	From Hrvoje Niksic <hniksic@srce.hr>
+
+1998-04-06  Olivier Galibert  <galibert@pobox.com>
+
+	* unexelfsgi.c (unexec): Don't treat the sbss section as bss if it
+	isn't one. Needed for irix 6.5.
+
+1998-04-05  Martin Buchholz  <martin@xemacs.org>
+
+	* sysdep.h: Two prototypes that weren't properly size_t'ed
+
+1998-04-04  Martin Buchholz  <martin@xemacs.org>
+
+	* ralloc.c: mallopt <==> malloc.h.
+
 1998-04-04  Martin Buchholz  <martin@xemacs.org>
 
 	* emacs.c: #include <paths.h>, not "paths.h"
--- a/src/Makefile.in.in	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/Makefile.in.in	Mon Aug 13 10:29:42 2007 +0200
@@ -42,8 +42,6 @@
 srcdir=@srcdir@
 blddir=@blddir@
 version=@version@
-infodir=@infodir@
-infopath=@infopath@
 CC=@CC@
 CPP=@CPP@
 CFLAGS=@CFLAGS@
@@ -265,7 +263,11 @@
 all: ${other_files}
 # endif /* EXTERNAL_WIDGET */
 
-X11_objs =  EmacsFrame.o EmacsShell.o TopLevelEmacsShell.o TransientEmacsShell.o EmacsManager.o $(external_widget_objs)
+# if defined (HAVE_OFFIX_DND) || defined (HAVE_CDE)
+dnd_objs = @dnd_objs@
+# endif /* HAVE_OFFIX_DND || HAVE_CDE */
+
+X11_objs =  EmacsFrame.o EmacsShell.o TopLevelEmacsShell.o TransientEmacsShell.o EmacsManager.o $(external_widget_objs) $(dnd_objs)
 #endif /* HAVE_X_WINDOWS */
 
 ## define otherobjs as list of object files that make-docfile
@@ -583,7 +585,6 @@
 
 config.h: ${srcdir}/config.h.in
 puresize-adjust.h: ${srcdir}/puresize.h
-paths.h: ${srcdir}/paths.h.in
 Emacs.ad.h: ${srcdir}/${etcdir}Emacs.ad
 
 config.h puresize-adjust.h sheap-adjust.h paths.h Emacs.ad.h :
@@ -657,7 +658,7 @@
 ## This is used in making a distribution.
 ## Do not use it on development directories!
 distclean: clean
-	$(RM) config.h paths.h Emacs.ad.h \
+	$(RM) config.h paths.h paths.h.in Emacs.ad.h \
 	  Makefile Makefile.in TAGS xemacs.*
 realclean: distclean
 versionclean:
@@ -666,7 +667,7 @@
 	$(RM) *~ \#* m/*~ m/\#* s/*~ s/\#*
 
 .PHONY : lock unlock
-SOURCES = *.[chm] *.pswm [sm]/* COPYING paths.h.in Makefile.in.in \
+SOURCES = *.[chm] *.pswm [sm]/* COPYING paths.h.in.in Makefile.in.in \
 	config.h.in README COPYING ChangeLog
 unlock:
 	chmod u+w $(SOURCES)
--- a/src/alloc.c	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/alloc.c	Mon Aug 13 10:29:42 2007 +0200
@@ -2969,7 +2969,7 @@
 	       (long) get_PURESIZE(),
                (int) (pure_bytes_used / (get_PURESIZE() / 100.0) + 0.5));
       if (lost > ((slop ? slop : 1) / 1024)) {
-        sprintf (buf + strlen (buf), " -- %dk wasted", lost);
+        sprintf (buf + strlen (buf), " -- %ldk wasted", (long)lost);
 	if (die_if_pure_storage_exceeded) {
 	  puresize_adjust_h (pure_bytes_used + slop);
 #ifdef HEAP_IN_DATA
--- a/src/bytecode.c	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/bytecode.c	Mon Aug 13 10:29:42 2007 +0200
@@ -246,10 +246,7 @@
 
 /* Push x onto the execution stack. */
 
-/* This used to be #define PUSH(x) (*++stackp = (x))
-   This oddity is necessary because Alliant can't be bothered to
-   compile the preincrement operator properly, as of 4/91.  -JimB  */
-#define PUSH(x) (stackp++, *stackp = (x))
+#define PUSH(x) (*++stackp = (x))
 
 /* Pop a value off the execution stack.  */
 
@@ -597,20 +594,25 @@
 	  v1 = POP;
 	  v2 = TOP;
 	/* nth_entry: */
-	  CHECK_INT (v2);
-	  op = XINT (v2);
-	  while (--op >= 0)
+	  CHECK_NATNUM (v2);
+	  for (op = XINT (v2); op; op--)
 	    {
 	      if (CONSP (v1))
 		v1 = XCDR (v1);
-	      else if (!NILP (v1))
+	      else if (NILP (v1))
+		{
+		  TOP = Qnil;
+		  goto Bnth_done;
+		}
+	      else
 		{
 		  v1 = wrong_type_argument (Qlistp, v1);
 		  op++;
 		}
-	      QUIT;
 	    }
 	  goto docar;
+	Bnth_done:
+	  break;
 
 	case Bsymbolp:
 	  TOP = SYMBOLP (TOP) ? Qt : Qnil;
@@ -657,14 +659,23 @@
 	docar:
 	  if (CONSP (v1)) TOP = XCAR (v1);
 	  else if (NILP (v1)) TOP = Qnil;
-	  else Fcar (wrong_type_argument (Qlistp, v1));
+	  else
+	    {
+	      TOP = wrong_type_argument (Qlistp, v1);
+	      goto docar;
+	    }
 	  break;
 
 	case Bcdr:
 	  v1 = TOP;
+	docdr:
 	  if (CONSP (v1)) TOP = XCDR (v1);
 	  else if (NILP (v1)) TOP = Qnil;
-	  else Fcdr (wrong_type_argument (Qlistp, v1));
+	  else
+	    {
+	      TOP = wrong_type_argument (Qlistp, v1);
+	      goto docdr;
+	    }
 	  break;
 
 	case Bcons:
@@ -1051,7 +1062,21 @@
 
 	case Bnthcdr:
 	  v1 = POP;
-	  TOP = Fnthcdr (TOP, v1);
+	  v2 = TOP;
+	  CHECK_NATNUM (v2);
+	  for (op = XINT (v2); op; op--)
+	    {
+	      if (CONSP (v1))
+		v1 = XCDR (v1);
+	      else if (NILP (v1))
+		break;
+	      else
+		{
+		  v1 = wrong_type_argument (Qlistp, v1);
+		  op++;
+		}
+	    }
+	  TOP = v1;
 	  break;
 
 	case Belt:
--- a/src/callproc.c	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/callproc.c	Mon Aug 13 10:29:42 2007 +0200
@@ -881,9 +881,13 @@
     */
     if (sh)
       {
+#if 0 /* This breaks everything -kkm */
 	tem = (char *) alloca (strlen (sh) + 1);
 	dostounix_filename (strcpy (tem, sh));
 	Vshell_file_name = build_string (tem);
+#else
+	Vshell_file_name = build_string (sh);
+#endif
       }
     /*
     ** Odd, no COMSPEC, so let's default to our
@@ -891,7 +895,7 @@
     */
     else
       {
-	Vshell_file_name = build_string ("/WINNT/system32/cmd.exe");
+	Vshell_file_name = build_string ("\\WINNT\\system32\\cmd.exe");
       }
   }
 #else /* not WINDOWSNT */
--- a/src/config.h.in	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/config.h.in	Mon Aug 13 10:29:42 2007 +0200
@@ -739,7 +739,7 @@
    bitfield.  In practice, we would like to use enums as bitfields.
    The following should just result in warning avoidance:
    warning: nonportable bit-field type */
-#if !(defined (__SUNPRO_C) && __STDC__ == 1)
+#ifdef __GNUC__
 #define enum_field(enumeration_type) enum enumeration_type
 #else
 #define enum_field(enumeration_type) unsigned int
--- a/src/console-msw.h	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/console-msw.h	Mon Aug 13 10:29:42 2007 +0200
@@ -126,6 +126,9 @@
   /* Menu checksum. See menubar-msw.c */
   unsigned int menu_checksum;
 
+  /* Frame title hash value. See frame-msw.c */
+  unsigned int title_checksum;
+
   /* Real character width and height of the frame.
      FRAME_{HEIGHT,WIDTH} do not work for pixel geometry! */
   int charheight, charwidth;
@@ -146,8 +149,9 @@
 #define FRAME_MSWINDOWS_CDC(f)		  (FRAME_MSWINDOWS_DATA (f)->cdc)
 #define FRAME_MSWINDOWS_MENU_HASHTABLE(f) (FRAME_MSWINDOWS_DATA (f)->menu_hashtable)
 #define FRAME_MSWINDOWS_MENU_CHECKSUM(f)  (FRAME_MSWINDOWS_DATA (f)->menu_checksum)
-#define MSWINDOWS_FRAME_CHARWIDTH(f)	  (FRAME_MSWINDOWS_DATA (f)->charwidth)
-#define MSWINDOWS_FRAME_CHARHEIGHT(f)	  (FRAME_MSWINDOWS_DATA (f)->charheight)
+#define FRAME_MSWINDOWS_TITLE_CHECKSUM(f) (FRAME_MSWINDOWS_DATA (f)->title_checksum)
+#define FRAME_MSWINDOWS_CHARWIDTH(f)	  (FRAME_MSWINDOWS_DATA (f)->charwidth)
+#define FRAME_MSWINDOWS_CHARHEIGHT(f)	  (FRAME_MSWINDOWS_DATA (f)->charheight)
 
 /* Frame check and validation macros */
 #define FRAME_MSWINDOWS_P(frm) CONSOLE_TYPESYM_MSWINDOWS_P (FRAME_TYPE (frm))
--- a/src/depend	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/depend	Mon Aug 13 10:29:42 2007 +0200
@@ -1,15 +1,20 @@
 ## This file automatically generated by make-src-depend.  Do not modify.
 
-LISP_H = lisp.h config.h lrecord.h lisp-disunion.h lisp-union.h symsinit.h symeval.h
+#ifdef USE_UNION_TYPE
+LISP_UNION_H=lisp-union.h
+#else
+LISP_UNION_H=lisp-disunion.h
+#endif
+LISP_H = lisp.h config.h lrecord.h symeval.h symsinit.h $(LISP_UNION_H)
 #ifdef HAVE_MS_WINDOWS
 console-msw.o: $(LISP_H) conslots.h console-msw.h console.h events.h opaque.h systime.h
 device-msw.o: $(LISP_H) buffer.h bufslots.h conslots.h console-msw.h console-stream.h console.h device.h events.h faces.h frame.h frameslots.h mule-charset.h scrollbar.h specifier.h sysdep.h systime.h toolbar.h
 dired-msw.o: $(LISP_H) buffer.h bufslots.h msdos.h mule-charset.h ndir.h nt.h regex.h sysdir.h sysfile.h
 event-msw.o: $(LISP_H) conslots.h console-msw.h console.h device.h events-mod.h events.h frame.h frameslots.h menubar-msw.h process.h redisplay.h scrollbar-msw.h scrollbar.h specifier.h sysproc.h systime.h syswait.h toolbar.h
-frame-msw.o: $(LISP_H) buffer.h bufslots.h conslots.h console-msw.h console.h device.h events.h faces.h frame.h frameslots.h mule-charset.h scrollbar.h specifier.h systime.h toolbar.h
+frame-msw.o: $(LISP_H) buffer.h bufslots.h conslots.h console-msw.h console.h device.h events.h faces.h frame.h frameslots.h glyphs-msw.h glyphs.h mule-charset.h redisplay.h scrollbar.h specifier.h systime.h toolbar.h
 glyphs-msw.o: $(LISP_H) buffer.h bufslots.h conslots.h console-msw.h console.h device.h faces.h file-coding.h frame.h frameslots.h glyphs-msw.h glyphs.h imgproc.h insdel.h lstream.h msdos.h mule-charset.h nt.h objects-msw.h objects.h opaque.h scrollbar.h specifier.h sysfile.h toolbar.h
 menubar-msw.o: $(LISP_H) buffer.h bufslots.h commands.h conslots.h console-msw.h console.h device.h elhash.h events.h frame.h frameslots.h gui.h menubar-msw.h menubar.h mule-charset.h opaque.h redisplay.h scrollbar.h specifier.h systime.h toolbar.h window.h
-objects-msw.o: $(LISP_H) buffer.h bufslots.h conslots.h console-msw.h console.h device.h insdel.h mule-charset.h objects-msw.h objects.h specifier.h
+objects-msw.o: $(LISP_H) buffer.h bufslots.h conslots.h console-msw.h console.h device.h hash.h insdel.h mule-charset.h objects-msw.h objects.h specifier.h
 redisplay-msw.o: $(LISP_H) buffer.h bufslots.h conslots.h console-msw.h console.h debug.h device.h events.h faces.h frame.h frameslots.h glyphs-msw.h glyphs.h mule-ccl.h mule-charset.h objects-msw.h objects.h redisplay.h scrollbar.h specifier.h sysdep.h systime.h toolbar.h window.h
 scrollbar-msw.o: $(LISP_H) conslots.h console-msw.h console.h device.h events.h frame.h frameslots.h redisplay.h scrollbar-msw.h scrollbar.h specifier.h systime.h toolbar.h window.h
 select-msw.o: $(LISP_H) conslots.h console-msw.h console.h
@@ -68,7 +73,7 @@
 cm.o: $(LISP_H) conslots.h console-tty.h console.h device.h frame.h frameslots.h lstream.h mule-charset.h redisplay.h scrollbar.h specifier.h syssignal.h systty.h toolbar.h
 cmdloop.o: $(LISP_H) buffer.h bufslots.h commands.h conslots.h console.h device.h events.h frame.h frameslots.h macros.h mule-charset.h redisplay.h scrollbar.h specifier.h systime.h toolbar.h window.h
 cmds.o: $(LISP_H) buffer.h bufslots.h chartab.h commands.h insdel.h mule-charset.h syntax.h
-console-stream.o: $(LISP_H) conslots.h console-stream.h console-tty.h console.h device.h events.h frame.h frameslots.h redisplay.h scrollbar.h specifier.h sysdep.h syssignal.h systime.h systty.h toolbar.h window.h
+console-stream.o: $(LISP_H) conslots.h console-stream.h console-tty.h console.h device.h events.h frame.h frameslots.h msdos.h nt.h redisplay.h scrollbar.h specifier.h sysdep.h sysfile.h syssignal.h systime.h systty.h toolbar.h window.h
 console-tty.o: $(LISP_H) buffer.h bufslots.h conslots.h console-stream.h console-tty.h console.h device.h faces.h file-coding.h frame.h frameslots.h gpmevent.h lstream.h msdos.h mule-charset.h nt.h redisplay.h scrollbar.h specifier.h sysdep.h sysfile.h syssignal.h systty.h toolbar.h
 console.o: $(LISP_H) buffer.h bufslots.h conslots.h console-tty.h console.h device.h events.h frame.h frameslots.h mule-charset.h redisplay.h scrollbar.h specifier.h sysdep.h syssignal.h systime.h systty.h toolbar.h window.h
 data.o: $(LISP_H) backtrace.h buffer.h bufslots.h bytecode.h mule-charset.h sysfloat.h syssignal.h
@@ -93,7 +98,7 @@
 event-unixoid.o: $(LISP_H) conslots.h console-stream.h console-tty.h console.h device.h events.h gpmevent.h lstream.h msdos.h mule-charset.h nt.h process.h sysdep.h sysfile.h sysproc.h syssignal.h systime.h systty.h
 events.o: $(LISP_H) buffer.h bufslots.h conslots.h console-tty.h console-x.h console.h device.h events-mod.h events.h extents.h frame.h frameslots.h glyphs.h keymap.h mule-charset.h redisplay.h scrollbar.h specifier.h syssignal.h systime.h systty.h toolbar.h window.h xintrinsic.h
 extents.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h debug.h device.h elhash.h extents.h faces.h frame.h frameslots.h glyphs.h hash.h insdel.h keymap.h mule-charset.h opaque.h process.h redisplay.h scrollbar.h specifier.h toolbar.h
-faces.o: $(LISP_H) EmacsFrame.h buffer.h bufslots.h conslots.h console-x.h console.h device.h elhash.h extents.h faces.h frame.h frameslots.h glyphs.h hash.h mule-charset.h objects-x.h objects.h redisplay.h scrollbar.h specifier.h toolbar.h window.h xintrinsic.h
+faces.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h elhash.h extents.h faces.h frame.h frameslots.h glyphs.h hash.h mule-charset.h objects.h redisplay.h scrollbar.h specifier.h toolbar.h window.h
 file-coding.o: $(LISP_H) buffer.h bufslots.h elhash.h file-coding.h insdel.h lstream.h mule-ccl.h mule-charset.h
 fileio.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h events.h file-coding.h frame.h frameslots.h insdel.h lstream.h msdos.h mule-charset.h ndir.h nt.h redisplay.h scrollbar.h specifier.h sysdep.h sysdir.h sysfile.h sysproc.h syspwd.h systime.h toolbar.h window.h
 filelock.o: $(LISP_H) buffer.h bufslots.h msdos.h mule-charset.h ndir.h nt.h paths.h sysdir.h sysfile.h syspwd.h syssignal.h
@@ -105,7 +110,7 @@
 frame.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h events.h extents.h faces.h frame.h frameslots.h glyphs.h gui.h menubar.h msdos.h mule-charset.h redisplay.h scrollbar.h specifier.h sysdep.h systime.h toolbar.h window.h
 free-hook.o: $(LISP_H) hash.h
 general.o: $(LISP_H)
-getloadavg.o: $(LISP_H)
+getloadavg.o: $(LISP_H) msdos.h nt.h sysfile.h
 glyphs.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h elhash.h faces.h frame.h frameslots.h glyphs.h mule-charset.h objects.h redisplay.h scrollbar.h specifier.h toolbar.h window.h
 gmalloc.o: config.h getpagesize.h
 gpmevent.o: $(LISP_H) conslots.h console-tty.h console.h device.h events-mod.h events.h gpmevent.h sysdep.h syssignal.h systime.h systty.h
@@ -122,7 +127,7 @@
 keymap.o: $(LISP_H) buffer.h bufslots.h bytecode.h commands.h conslots.h console.h device.h elhash.h events-mod.h events.h frame.h frameslots.h insdel.h keymap.h mule-charset.h redisplay.h scrollbar.h specifier.h systime.h toolbar.h window.h
 libsst.o: $(LISP_H) libsst.h
 line-number.o: $(LISP_H) buffer.h bufslots.h insdel.h line-number.h mule-charset.h
-linuxplay.o: $(LISP_H) syssignal.h
+linuxplay.o: $(LISP_H) msdos.h nt.h sysfile.h syssignal.h
 lread.o: $(LISP_H) buffer.h bufslots.h bytecode.h commands.h file-coding.h insdel.h lstream.h msdos.h mule-charset.h nt.h opaque.h paths.h sysfile.h sysfloat.h
 lstream.o: $(LISP_H) buffer.h bufslots.h insdel.h lstream.h msdos.h mule-charset.h nt.h sysfile.h
 macros.o: $(LISP_H) buffer.h bufslots.h commands.h conslots.h console.h device.h events.h frame.h frameslots.h keymap.h macros.h mule-charset.h redisplay.h scrollbar.h specifier.h systime.h toolbar.h window.h
@@ -141,7 +146,7 @@
 objects.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h elhash.h faces.h frame.h frameslots.h mule-charset.h objects.h redisplay.h scrollbar.h specifier.h toolbar.h window.h
 offix.o: offix-cursors.h offix-types.h offix.h xintrinsic.h
 opaque.o: $(LISP_H) opaque.h
-print.o: $(LISP_H) backtrace.h buffer.h bufslots.h bytecode.h conslots.h console-stream.h console-tty.h console.h device.h extents.h frame.h frameslots.h insdel.h lstream.h mule-charset.h scrollbar.h specifier.h syssignal.h systty.h toolbar.h
+print.o: $(LISP_H) backtrace.h buffer.h bufslots.h bytecode.h conslots.h console-stream.h console-tty.h console.h device.h extents.h frame.h frameslots.h insdel.h lstream.h msdos.h mule-charset.h nt.h scrollbar.h specifier.h sysfile.h syssignal.h systty.h toolbar.h
 process-unix.o: $(LISP_H) buffer.h bufslots.h commands.h conslots.h console.h device.h events.h file-coding.h frame.h frameslots.h hash.h insdel.h lstream.h msdos.h mule-charset.h nt.h opaque.h process.h procimpl.h redisplay.h scrollbar.h specifier.h sysdep.h sysfile.h sysproc.h syssignal.h systime.h systty.h syswait.h toolbar.h window.h
 process.o: $(LISP_H) buffer.h bufslots.h commands.h conslots.h console.h device.h events.h file-coding.h frame.h frameslots.h hash.h insdel.h lstream.h msdos.h mule-charset.h nt.h opaque.h process.h procimpl.h redisplay.h scrollbar.h specifier.h sysdep.h sysfile.h sysproc.h syssignal.h systime.h systty.h syswait.h toolbar.h window.h
 profile.o: $(LISP_H) backtrace.h bytecode.h hash.h syssignal.h systime.h
--- a/src/emacs.c	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/emacs.c	Mon Aug 13 10:29:42 2007 +0200
@@ -1148,7 +1148,10 @@
       lstream_type_create_mule_coding ();
 #endif
       lstream_type_create_print ();
-
+#ifdef HAVE_MS_WINDOWS
+      lstream_type_create_mswindows_selectable ();
+#endif
+      
       /* Initialize processes implementation.
 	 The functions may make exactly the following function/macro calls:
 
@@ -1158,7 +1161,7 @@
       process_type_create_unix ();
 #endif
 #ifdef HAVE_WIN32_PROCESSES
-      process_type_create_mswindows ();
+      process_type_create_nt ();
 #endif
 
       /* Now initialize most variables.
@@ -1278,7 +1281,7 @@
       vars_of_process_unix ();
 #endif
 #ifdef HAVE_WIN32_PROCESSES
-      vars_of_process_mswindows ();
+      vars_of_process_nt ();
 #endif
 #endif
 
@@ -2325,7 +2328,7 @@
   Freally_free (Qnil);
 
   /* When we're dumping, we can't use the debugging free() */
-
+  disable_free_hook ();
 #endif
 #if 1 /* martin */
 #endif
@@ -2390,9 +2393,6 @@
 #ifdef DOUG_LEA_MALLOC
     malloc_state_ptr = malloc_get_state ();
 #endif
-#ifdef ERROR_CHECK_MALLOC
-    disable_free_hook ();
-#endif
   /* here we break our rule that the filename conversion should
      be performed at the actual time that the system call is made.
      It's a whole lot easier to do the conversion here than to
@@ -2450,13 +2450,8 @@
     {
       p = strchr (path, SEPCHAR);
       if (!p) p = path + strlen (path);
-      lpath = Fcons (((p != path)
-#if 1
-		      ? Ffile_name_as_directory(make_string ((CONST Bufbyte *) path, p - path))
-#else
-		      ? make_string ((CONST Bufbyte *) path, p - path)
-#endif
-		      : Qnil),
+      lpath = Fcons (Ffile_name_as_directory(make_string ((CONST Bufbyte *) path,
+							  p - path)),
 		     lpath);
       if (*p)
 	path = p + 1;
--- a/src/event-msw.c	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/event-msw.c	Mon Aug 13 10:29:42 2007 +0200
@@ -46,6 +46,7 @@
 #include "device.h"
 #include "events.h"
 #include "frame.h"
+#include "lstream.h"
 #include "process.h"
 #include "redisplay.h"
 #include "sysproc.h"
@@ -54,6 +55,8 @@
 
 #include "events-mod.h"
 
+#include <errno.h>
+
 #ifdef BROKEN_CYGWIN
 int WINAPI      DdeCmpStringHandles (HSZ, HSZ);
 HDDEDATA WINAPI DdeCreateDataHandle (DWORD, LPBYTE, DWORD, DWORD, HSZ,
@@ -102,7 +105,10 @@
 #define MAX_WAITABLE (MAXIMUM_WAIT_OBJECTS - 1)
 
 /* List of mswindows waitable handles. */
-static HANDLE mswindows_waitable[MAX_WAITABLE];
+static HANDLE mswindows_waitable_handles[MAX_WAITABLE];
+
+/* Number of wait handles */
+static int mswindows_waitable_count=0;
 
 /* Count of quit chars currently in the queue */
 /* Incremented in WM_[SYS]KEYDOWN handler in the mswindows_wnd_proc()
@@ -116,9 +122,6 @@
 int mswindows_mouse_button_max_skew_y;
 int mswindows_mouse_button_tolerance;
 
-/* Number of wait handles */
-static int mswindows_waitable_count=0;
-
 /* This is the event signaled by the event pump.
    See mswindows_pump_outstanding_events for comments */
 static Lisp_Object mswindows_error_caught_in_modal_loop;
@@ -126,6 +129,441 @@
 
 /* Count of wound timers */
 static int mswindows_pending_timers_count;
+
+/************************************************************************/
+/*                Pipe instream - reads process output                  */
+/************************************************************************/
+
+#define PIPE_READ_DELAY 20
+
+#define HANDLE_TO_USID(h) ((USID)(h))
+
+#define NTPIPE_SLURP_STREAM_DATA(stream) \
+  LSTREAM_TYPE_DATA (stream, ntpipe_slurp)
+
+struct ntpipe_slurp_stream
+{
+  LPARAM user_data;	/* Any user data stored in the stream object	 */
+  HANDLE hev_thread;	/* Our thread blocks on this, signaled by caller */
+			/* This is a manual-reset object. 		 */
+  HANDLE hev_caller;	/* Caller blocks on this, and we signal it	 */
+			/* This is a manual-reset object. 		 */
+  HANDLE hev_unsleep;	/* Pipe read delay is canceled if this is set	 */
+			/* This is a manual-reset object. 		 */
+  HANDLE hpipe;		/* Pipe read end handle.			 */
+  HANDLE hthread;	/* Reader thread handle.			 */
+  BYTE   onebyte;	/* One byte buffer read by thread		 */
+  DWORD  die_p;		/* Thread must exit ASAP if non-zero		 */
+  BOOL   eof_p   : 1;	/* Set when thread saw EOF			 */
+  BOOL   error_p : 1;   /* Read error other than EOF/broken pipe	 */
+};
+
+DEFINE_LSTREAM_IMPLEMENTATION ("ntpipe-input", lstream_ntpipe_slurp,
+			       sizeof (struct ntpipe_slurp_stream));
+
+static DWORD WINAPI
+slurp_thread (LPVOID vparam)
+{
+  struct ntpipe_slurp_stream *s = (struct ntpipe_slurp_stream*)vparam;
+
+  for (;;)
+    {
+      /* Read one byte from the pipe */
+      DWORD actually_read;
+      if (!ReadFile (s->hpipe, &s->onebyte, 1, &actually_read, NULL))
+	{
+	  DWORD err = GetLastError ();
+	  if (err == ERROR_BROKEN_PIPE || err == ERROR_NO_DATA)
+	    s->eof_p = TRUE;
+	  else
+	    s->error_p = TRUE;
+	}
+      else if (actually_read == 0)
+	s->eof_p = TRUE;
+
+      /* We must terminate on an error or eof */
+      if (s->eof_p || s->error_p)
+	InterlockedIncrement (&s->die_p);
+
+      /* Before we notify caller, we unsignal our event. */
+      ResetEvent (s->hev_thread);
+
+      /* Now we got something to notify caller, either a byte or an
+	 error/eof indication. Before we do, allow internal pipe
+	 buffer to accumulate little bit more data. 
+	 Reader function pulses this event before waiting for
+	 a character, to avoid pipde delay, and to get the byte
+	 immediately. */
+      if (!s->die_p)
+	WaitForSingleObject (s->hev_unsleep, PIPE_READ_DELAY);
+
+      /* Either make event loop generate a process event, or
+	 inblock reader */
+      SetEvent (s->hev_caller);
+
+      /* Cleanup and exit if we're shot off */
+      if (s->die_p)
+	break;
+
+      /* Block until the client finishes with retireving the rest of
+	 pipe data */
+      WaitForSingleObject (s->hev_thread, INFINITE);
+    }
+
+  return 0;
+}
+
+static Lisp_Object
+make_ntpipe_input_stream (HANDLE hpipe, LPARAM param)
+{
+  Lisp_Object obj;
+  Lstream *lstr = Lstream_new (lstream_ntpipe_slurp, "r");
+  struct ntpipe_slurp_stream* s = NTPIPE_SLURP_STREAM_DATA (lstr);
+  DWORD thread_id_unused;
+
+  /* We deal only with pipes, for we're using PeekNamedPipe api */
+  assert (GetFileType (hpipe) == FILE_TYPE_PIPE);
+
+  s->die_p = 0;
+  s->eof_p = FALSE;
+  s->error_p = FALSE;
+  s->hpipe = hpipe;
+  s->user_data = param;
+
+  /* Create reader thread. This could fail, so do not 
+     create events until thread is created */
+  s->hthread = CreateThread (NULL, 0, slurp_thread, (LPVOID)s,
+			     CREATE_SUSPENDED, &thread_id_unused);
+  if (s->hthread == NULL)
+    {
+      Lstream_delete (lstr);
+      return Qnil;
+    }
+
+  /* hev_thread is a manual-reset event, initially signaled */
+  s->hev_thread = CreateEvent (NULL, TRUE, TRUE, NULL);
+  /* hev_caller is a manual-reset event, initially nonsignaled */
+  s->hev_caller = CreateEvent (NULL, TRUE, FALSE, NULL);
+  /* hev_unsleep is a manual-reset event, initially nonsignaled */
+  s->hev_unsleep = CreateEvent (NULL, TRUE, FALSE, NULL);
+
+  /* Now let it go */
+  ResumeThread (s->hthread);
+
+  lstr->flags |= LSTREAM_FL_CLOSE_AT_DISKSAVE;
+  XSETLSTREAM (obj, lstr);
+  return obj;
+}
+
+static LPARAM
+get_ntpipe_input_stream_param (Lstream *stream)
+{
+  struct ntpipe_slurp_stream* s = NTPIPE_SLURP_STREAM_DATA(stream);
+  return s->user_data;
+}
+
+static HANDLE
+get_ntpipe_input_stream_waitable (Lstream *stream)
+{
+  struct ntpipe_slurp_stream* s = NTPIPE_SLURP_STREAM_DATA(stream);
+  return s->hev_caller;
+}
+
+static int 
+ntpipe_slurp_reader (Lstream *stream, unsigned char *data, size_t size)
+{
+  /* This function must be called from the main thread only */
+  struct ntpipe_slurp_stream* s = NTPIPE_SLURP_STREAM_DATA(stream);
+
+  if (!s->die_p)
+    {
+      DWORD wait_result;
+      /* Disallow pipe read delay for the thread: we need a character ASAP */
+      SetEvent (s->hev_unsleep);
+  
+      /* Check if we have a character ready. Give it a short delay, for
+	 the thread to awake from pipe delay, just ion case*/
+      wait_result = WaitForSingleObject (s->hev_caller, 2);
+
+      /* Revert to the normal sleep behavior. */
+      ResetEvent (s->hev_unsleep);
+
+      /* If there's no byte buffered yet, give up */
+      if (wait_result == WAIT_TIMEOUT)
+	{
+	  errno = EAGAIN;
+	  return -1;
+	}
+    }
+
+  /* Reset caller unlock event now, as we've handled the pending
+     process output event */
+  ResetEvent (s->hev_caller);
+
+  /* It is now safe to do anything with contents of S, except for
+     changing s->die_p, which still should be interlocked */
+
+  if (s->eof_p)
+    return 0;
+  if (s->error_p || s->die_p)
+    return -1;
+
+  /* Ok, there were no error neither eof - we've got a byte from the pipe */
+  *(data++) = s->onebyte;
+  --size;
+
+  if (size > 0)
+    {
+      DWORD bytes_available, bytes_read;
+
+      /* If the api call fails, return at least one byte already read.
+	 ReadFile in thread will return error */
+      if (!PeekNamedPipe (s->hpipe, NULL, 0, NULL, &bytes_available, NULL))
+	return 1;
+
+      /* Fetch available bytes. The same consideration applies, so do
+         not check for errors. ReadFile in the thread will fail if the
+         next call fails. */
+      ReadFile (s->hpipe, data, min (bytes_available, size), &bytes_read, NULL);
+
+      /* Now we can unblock thread, so it attempts to read more */
+      SetEvent (s->hev_thread);
+      return bytes_read + 1;
+    }
+  else
+    {
+      SetEvent (s->hev_thread);
+      return 1;
+    }
+}
+
+static int 
+ntpipe_slurp_closer (Lstream *stream)
+{
+  /* This function must be called from the main thread only */
+  struct ntpipe_slurp_stream* s = NTPIPE_SLURP_STREAM_DATA(stream);
+
+  /* Force thread to stop */
+  InterlockedIncrement (&s->die_p);
+
+  /* Break the pipe, in case the thread still blocked on read */
+  CloseHandle (s->hpipe);
+
+  /* Set events which could possibly block slurper */
+  SetEvent (s->hev_unsleep);
+  SetEvent (s->hev_thread);
+
+  /* Wait while thread terminates */
+  WaitForSingleObject (s->hthread, INFINITE);
+  CloseHandle (s->hthread);
+
+  /* Destroy events */
+  CloseHandle (s->hev_thread);
+  CloseHandle (s->hev_caller);
+  CloseHandle (s->hev_unsleep);
+
+  return 0;
+}
+
+static void
+init_slurp_stream (void)
+{
+  LSTREAM_HAS_METHOD (ntpipe_slurp, reader);
+  LSTREAM_HAS_METHOD (ntpipe_slurp, closer);
+}
+
+/************************************************************************/
+/*                Pipe outstream - writes process input                 */
+/************************************************************************/
+
+#define MAX_FLUSH_TIME 500
+
+#define NTPIPE_SHOVE_STREAM_DATA(stream) \
+  LSTREAM_TYPE_DATA (stream, ntpipe_shove)
+
+struct ntpipe_shove_stream
+{
+  LPARAM user_data;	/* Any user data stored in the stream object	 */
+  HANDLE hev_thread;	/* Our thread blocks on this, signaled by caller */
+			/* This is an auto-reset object. 		 */
+  HANDLE hpipe;		/* Pipe write end handle.			 */
+  HANDLE hthread;	/* Reader thread handle.			 */
+  LPVOID buffer;	/* Buffer being written				 */
+  DWORD  size;		/* Number of bytes to write			 */
+  DWORD  die_p;		/* Thread must exit ASAP if non-zero		 */
+  DWORD  idle_p;	/* Non-zero if thread is waiting for job	 */
+  BOOL   error_p : 1;   /* Read error other than EOF/broken pipe	 */
+  BOOL   blocking_p : 1;/* Last write attempt would cause blocking	 */
+};
+
+DEFINE_LSTREAM_IMPLEMENTATION ("ntpipe-output", lstream_ntpipe_shove,
+			       sizeof (struct ntpipe_shove_stream));
+
+static DWORD WINAPI
+shove_thread (LPVOID vparam)
+{
+  struct ntpipe_shove_stream *s = (struct ntpipe_shove_stream*) vparam;
+
+  for (;;)
+    {
+      DWORD bytes_written; 
+
+      /* Block on event and wait for a job */
+      InterlockedIncrement (&s->idle_p);
+      WaitForSingleObject (s->hev_thread, INFINITE);
+
+      if (s->die_p)
+	break;
+
+      /* Write passed buffer */
+      if (!WriteFile (s->hpipe, s->buffer, s->size, &bytes_written, NULL)
+	  || bytes_written != s->size)
+	{
+	  s->error_p = TRUE;
+	  InterlockedIncrement (&s->die_p);
+	}
+
+      /* free it */
+      LocalFree ((HLOCAL)s->buffer);
+
+      if (s->die_p)
+	break;
+    }
+
+  return 0;
+}
+
+static Lisp_Object
+make_ntpipe_output_stream (HANDLE hpipe, LPARAM param)
+{
+  Lisp_Object obj;
+  Lstream *lstr = Lstream_new (lstream_ntpipe_shove, "w");
+  struct ntpipe_shove_stream* s = NTPIPE_SHOVE_STREAM_DATA (lstr);
+  DWORD thread_id_unused;
+
+  s->die_p = 0;
+  s->error_p = FALSE;
+  s->hpipe = hpipe;
+  s->user_data = param;
+
+  /* Create reader thread. This could fail, so do not 
+     create the event until thread is created */
+  s->hthread = CreateThread (NULL, 0, shove_thread, (LPVOID)s,
+			     CREATE_SUSPENDED, &thread_id_unused);
+  if (s->hthread == NULL)
+    {
+      Lstream_delete (lstr);
+      return Qnil;
+    }
+
+  /* hev_thread is an auto-reset event, initially nonsignaled */
+  s->hev_thread = CreateEvent (NULL, FALSE, FALSE, NULL);
+
+  /* Now let it go */
+  ResumeThread (s->hthread);
+
+  lstr->flags |= LSTREAM_FL_CLOSE_AT_DISKSAVE;
+  XSETLSTREAM (obj, lstr);
+  return obj;
+}
+
+static LPARAM
+get_ntpipe_output_stream_param (Lstream *stream)
+{
+  struct ntpipe_shove_stream* s = NTPIPE_SHOVE_STREAM_DATA(stream);
+  return s->user_data;
+}
+
+static int
+ntpipe_shove_writer (Lstream *stream, const unsigned char *data, size_t size)
+{
+  struct ntpipe_shove_stream* s = NTPIPE_SHOVE_STREAM_DATA(stream);
+
+  if (s->error_p)
+    return -1;
+
+  s->blocking_p = !s->idle_p;
+  if (s->blocking_p)
+    return 0;
+
+  /* Make a copy of data to be written. We intentionally avoid using
+     xalloc/xfree, because gnu malloc is not thread-safe */
+  s->buffer = (LPVOID) LocalAlloc (LMEM_FIXED, size);
+  if (s->buffer == NULL)
+    return -1;
+  memcpy (s->buffer, data, size);
+  s->size = size;
+
+  /* Start output */
+  InterlockedDecrement (&s->idle_p);
+  SetEvent (s->hev_thread);
+  return size;
+}
+
+static int
+ntpipe_shove_was_blocked_p (Lstream *stream)
+{
+  struct ntpipe_shove_stream* s = NTPIPE_SHOVE_STREAM_DATA(stream);
+  return s->blocking_p;
+}
+
+static int
+ntpipe_shove_flusher (Lstream *stream)
+{
+  struct ntpipe_shove_stream* s = NTPIPE_SHOVE_STREAM_DATA(stream);
+  int i;
+
+  if (s->error_p)
+    return -1;
+
+  /* We do not want to be blocked forever. Instead, we wait
+     about 0.5 second for output to finish. If this does
+     not help, we just return flush failure. */
+  for (i = 0; i < MAX_FLUSH_TIME / 50; ++i)
+    {
+      if (s->idle_p)
+	return 0;
+      Sleep (50);
+    }
+  return -1;
+}
+
+static int
+ntpipe_shove_closer (Lstream *stream)
+{
+  struct ntpipe_shove_stream* s = NTPIPE_SHOVE_STREAM_DATA(stream);
+
+  /* Force thread stop */
+  InterlockedIncrement (&s->die_p);
+
+  /* Close pipe handle, possibly breaking it */
+  CloseHandle (s->hpipe);
+
+  /* Thread will end upon unblocking */
+  SetEvent (s->hev_thread);
+
+  /* Wait while thread terminates */
+  WaitForSingleObject (s->hthread, INFINITE);
+  CloseHandle (s->hthread);
+
+  /* Destroy the event */
+  CloseHandle (s->hev_thread);
+
+  return 0;
+}
+
+static void
+init_shove_stream (void)
+{
+  LSTREAM_HAS_METHOD (ntpipe_shove, writer);
+  LSTREAM_HAS_METHOD (ntpipe_shove, flusher);
+  LSTREAM_HAS_METHOD (ntpipe_shove, was_blocked_p);
+  LSTREAM_HAS_METHOD (ntpipe_shove, closer);
+}
+
+/************************************************************************/
+/*                     Dispatch queue management                        */
+/************************************************************************/
 
 static int
 mswindows_user_event_p (struct Lisp_Event* sevt)
@@ -136,10 +574,6 @@
 	  || sevt->event_type == dnd_drop_event);
 }
 
-/************************************************************************/
-/*                     Dispatch queue management                        */
-/************************************************************************/
-
 /* 
  * Add an emacs event to the proper dispatch queue
  */
@@ -173,6 +607,21 @@
 }
 
 static void
+mswindows_enqueue_process_event (struct Lisp_Process* p)
+{
+  Lisp_Object emacs_event = Fmake_event (Qnil, Qnil);
+  struct Lisp_Event* event = XEVENT (emacs_event);
+  Lisp_Object process;
+  XSETPROCESS (process, p);
+
+  event->event_type = process_event;
+  event->timestamp  = GetTickCount ();
+  event->event.process.process = process;
+
+  mswindows_enqueue_dispatch_event (emacs_event);
+}
+
+static void
 mswindows_enqueue_mouse_button_event (HWND hwnd, UINT message, POINTS where, DWORD when)
 {
 
@@ -307,8 +756,44 @@
     }
   return Qnil;
 }
+
+/************************************************************************/
+/*                     Waitable handles manipulation                    */
+/************************************************************************/
+static int
+find_waitable_handle (HANDLE h)
+{
+  int i;
+  for (i = 0; i < mswindows_waitable_count; ++i)
+    if (mswindows_waitable_handles[i] == h)
+      return i;
 
+  return -1;
+}
 
+static BOOL
+add_waitable_handle (HANDLE h)
+{
+  assert (find_waitable_handle (h) < 0);
+  if (mswindows_waitable_count == MAX_WAITABLE)
+    return FALSE;
+
+  mswindows_waitable_handles [mswindows_waitable_count++] = h;
+  return TRUE;
+}
+
+static void
+remove_waitable_handle (HANDLE h)
+{
+  int ix = find_waitable_handle (h);
+  if (ix < 0)
+    return;
+
+  mswindows_waitable_handles [ix] = 
+    mswindows_waitable_handles [--mswindows_waitable_count];
+}
+
+
 /************************************************************************/
 /*                             Event pump                               */
 /************************************************************************/
@@ -455,11 +940,9 @@
  * fetching WM_TIMER messages. Instead of trying to fetch a WM_TIMER
  * which will never come when there are no pending timers, which leads
  * to deadlock, we simply signal an error.
- *
- * The implementation does not honor user_p by design.
  */
 static void
-mswindows_need_event_in_modal_loop (int user_p, int badly_p)
+mswindows_need_event_in_modal_loop (int badly_p)
 {
   MSG msg;
 
@@ -489,26 +972,17 @@
  * This drains the event queue and fills up two internal queues until
  * an event of a type specified by USER_P is retrieved.
  *
- * If user_p, then the function drains until the first user event, or
- * the first non-user event if there no user events. Otherwise, If
- * not user_p, it does not give preference to user events.
- *
- * If badly_p, then the function does not return until an event is
- * available.
- *
- * The code does not rely on MsgWaitForMultipleObjects preference for
- * messages over waitable handles.
  *
  * Used by emacs_mswindows_event_pending_p and emacs_mswindows_next_event
  */
 static void
-mswindows_need_event (int user_p, int badly_p)
+mswindows_need_event (int badly_p)
 {
   int active;
 
   if (mswindows_in_modal_loop)
     {
-      mswindows_need_event_in_modal_loop (user_p, badly_p);
+      mswindows_need_event_in_modal_loop (badly_p);
       return;
     }
 
@@ -516,17 +990,12 @@
      quit char when called from quit_p */
   mswindows_drain_windows_queue ();
 
-  while (NILP (mswindows_u_dispatch_event_queue) &&
-	 (user_p || NILP (mswindows_s_dispatch_event_queue)))
+  while (NILP (mswindows_u_dispatch_event_queue)
+	 && NILP (mswindows_s_dispatch_event_queue))
   {
-    /* If we already have an event, we've got someting to return - no wait! */
-    if (!NILP (mswindows_u_dispatch_event_queue)
-	|| !NILP (mswindows_s_dispatch_event_queue))
-      badly_p = 0;
-    
-    /* Now try getting a message */
+    /* Now try getting a message or process event */
     active = MsgWaitForMultipleObjects (mswindows_waitable_count,
-					mswindows_waitable,
+					mswindows_waitable_handles,
 					FALSE, badly_p ? INFINITE : 0,
 					QS_ALLINPUT);
 
@@ -548,13 +1017,27 @@
       }
     else
       {
-	/* XXX FIXME: We should do some kind of round-robin scheme to ensure fairness */
-	int waitable = active - WAIT_OBJECT_0;
-	assert(0);	/* #### */
+	int ix = active - WAIT_OBJECT_0;
+	/* First, try to find which process' ouptut has signaled */
+	struct Lisp_Process *p = 
+	  get_process_from_usid (HANDLE_TO_USID (mswindows_waitable_handles[ix]));
+	if (p != NULL)
+	  {
+	    /* Found a signaled process input handle */
+	    mswindows_enqueue_process_event (p);
+	  }
+	else
+	  {
+	    /* None. This means that the process handle itself has signaled.
+	       Remove the handle from the wait vector, and make status_ntoify
+	       note the exited process */
+	    CloseHandle (mswindows_waitable_handles[ix]);
+	    mswindows_waitable_handles [ix] =
+	      mswindows_waitable_handles [--mswindows_waitable_count];
+	    kick_status_notify ();
+	  }
       }
   } /* while */
-
-  return;
 }
 
 /************************************************************************/
@@ -1008,8 +1491,8 @@
 	  FRAME_PIXHEIGHT(frame) = rect.bottom;
 
 	  pixel_to_real_char_size (frame, rect.right, rect.bottom,
-				   &MSWINDOWS_FRAME_CHARWIDTH (frame),
-				   &MSWINDOWS_FRAME_CHARHEIGHT (frame));
+				   &FRAME_MSWINDOWS_CHARWIDTH (frame),
+				   &FRAME_MSWINDOWS_CHARHEIGHT (frame));
 
 	  pixel_to_char_size (frame, rect.right, rect.bottom, &columns, &rows);
 	  change_frame_size (frame, rows, columns, 1);
@@ -1429,16 +1912,8 @@
 Lisp_Object
 mswindows_find_console (HWND hwnd)
 {
-  Lisp_Object concons;
-
-  CONSOLE_LOOP (concons)
-    {
-      Lisp_Object console = XCAR (concons);
-      /* We only support one console so this must be it */
-      return console;
-    }
-
-  return Qnil;
+  /* We only support one console */
+  return XCAR (Vconsole_list);
 }
 
 /*
@@ -1512,8 +1987,7 @@
 static int
 emacs_mswindows_event_pending_p (int user_p)
 {
-  mswindows_need_event (user_p, 0);
-
+  mswindows_need_event (0);
   return (!NILP (mswindows_u_dispatch_event_queue)
 	  || (!user_p && !NILP (mswindows_s_dispatch_event_queue)));
 }
@@ -1526,10 +2000,8 @@
 {
   Lisp_Object event, event2;
 
-  /* Give strong preference to user events */
-  mswindows_need_event (1, 1);
+  mswindows_need_event (1);
 
-  /* XXX Copied from event-Xt.c */
   event = mswindows_dequeue_dispatch_event (!NILP(mswindows_u_dispatch_event_queue));
   XSETEVENT (event2, emacs_event);
   Fcopy_event (event, event2);
@@ -1593,14 +2065,70 @@
   }
 }
 
+static HANDLE
+get_process_input_waitable (struct Lisp_Process *process)
+{
+  Lisp_Object instr, outstr;
+  get_process_streams (process, &instr, &outstr);
+  assert (!NILP (instr));
+  return get_ntpipe_input_stream_waitable (XLSTREAM (instr));
+}
+
+static HANDLE
+get_process_handle (struct Lisp_Process *p)
+{
+  /* #### The guess is that cygwin uses the same algorithm for
+     computing pids: negate if less than zero, '95 case */
+  Lisp_Object process, pid;
+  XSETPROCESS (process, p);
+  pid = Fprocess_id (process);
+  if (INTP (pid))
+    {
+      HANDLE hproc;
+      int ipid = XINT (pid);
+      if (ipid < 0)
+	ipid = -ipid;
+      hproc = OpenProcess (SYNCHRONIZE, FALSE, ipid);
+      /* #### This is WRONG! The process migh have ended before we got here. */
+      /* assert  (hproc != NULL); */
+      /* Instead, we fake "a signaled hadle", which will trigger
+	 immediately upon entering the message loop */
+      if (hproc = NULL)
+	hproc = CreateEvent (NULL, TRUE, TRUE, NULL);
+      return hproc;
+    }
+  else
+    return NULL;
+}
+
 static void
 emacs_mswindows_select_process (struct Lisp_Process *process)
 {
+  HANDLE hev = get_process_input_waitable (process);
+  HANDLE hprocess;
+
+  if (!add_waitable_handle (hev))
+    error ("Too many active processes");
+
+  hprocess = get_process_handle (process);
+  if (hprocess)
+    {
+      if (!add_waitable_handle (hprocess))
+	{
+	  remove_waitable_handle (hev);
+	  CloseHandle (hprocess);
+	  error ("Too many active processes");
+	}
+    }
 }
 
 static void
 emacs_mswindows_unselect_process (struct Lisp_Process *process)
 {
+  /* Process handle is removed in the event loop as soon
+     as it is signaled, so don't bother here about it */
+  HANDLE hev = get_process_input_waitable (process);
+  remove_waitable_handle (hev);
 }
 
 static void
@@ -1616,7 +2144,9 @@
 static void
 emacs_mswindows_quit_p (void)
 {
-  mswindows_need_event (1, 0);
+  /* Drain windows queue. This sets up number of quit
+     characters in in the queue */
+  mswindows_drain_windows_queue ();
 
   if (mswindows_quit_chars_count > 0)
     {
@@ -1638,6 +2168,69 @@
     }
 }
 
+USID
+emacs_mswindows_create_stream_pair (void* inhandle, void* outhandle,
+				    Lisp_Object* instream,
+				    Lisp_Object* outstream,
+				    int flags)
+{
+  /* Handles for streams */
+  HANDLE hin, hout;
+  /* fds. These just stored along with the streams, and are closed in
+     delete stream pair method, because we need to handle fake unices
+     here. */
+  int fdi, fdo;
+
+  /* Decode inhandle and outhandle. Their meaning depends on
+     the process implementation being used. */
+#if defined (HAVE_WIN32_PROCESSES)
+  /* We're passed in Windows handles. That's what we like most... */
+  hin = (HANDLE) inhandle;
+  hout = (HANDLE) outhandle;
+  fdi = fdo = -1;
+#elif defined (HAVE_UNIX_PROCESSES)
+  /* We are passed UNIX fds. This must be Cygwin.
+     Fetch os handles */
+  hin = inhandle >= 0 ? get_osfhandle ((int)inhandle) : INVALID_HANDLE_VALUE;
+  hout = outhandle >= 0 ? get_sfhandle ((int)outhandle) : INVALID_HANDLE_VALUE;
+#else
+#error "So, WHICH kind of processes do you want?"
+#endif
+
+  *instream = (hin != INVALID_HANDLE_VALUE
+	       ? make_ntpipe_input_stream (hin, fdi)
+	       : Qnil);
+
+  *outstream = (hout != INVALID_HANDLE_VALUE
+		? make_ntpipe_output_stream (hout, fdo)
+		: Qnil);
+
+  return (NILP (*instream) ? USID_ERROR
+	  : HANDLE_TO_USID (get_ntpipe_input_stream_waitable (XLSTREAM (*instream))));
+}
+
+USID
+emacs_mswindows_delete_stream_pair (Lisp_Object instream,
+					 Lisp_Object outstream)
+{
+  /* Oh nothing special here for Win32 at all */
+#if defined (HAVE_UNIX_PROCESSES)
+  int in = (NILP(instream) ? -1
+	    : get_ntpipe_input_stream_param (XLSTREAM (instream)));
+  int out = (NILP(outstream) ? -1
+	     : get_ntpipe_output_stream_param (XLSTREAM (outstream)));
+
+  if (in >= 0)
+    close (in);
+  if (out != in && out >= 0)
+    close (out);
+#endif
+
+  return (NILP (instream) ? USID_DONTHASH
+	  : HANDLE_TO_USID (get_ntpipe_input_stream_waitable (XLSTREAM (instream))));
+}
+
+
 #ifndef HAVE_X_WINDOWS
 /* This is called from GC when a process object is about to be freed.
    If we've still got pointers to it in this file, we're gonna lose hard.
@@ -1690,6 +2283,8 @@
   mswindows_event_stream->select_process_cb 	= emacs_mswindows_select_process;
   mswindows_event_stream->unselect_process_cb	= emacs_mswindows_unselect_process;
   mswindows_event_stream->quit_p_cb		= emacs_mswindows_quit_p;
+  mswindows_event_stream->create_stream_pair_cb = emacs_mswindows_create_stream_pair;
+  mswindows_event_stream->delete_stream_pair_cb = emacs_mswindows_delete_stream_pair;
 
   DEFVAR_BOOL ("mswindows-dynamic-frame-resize", &mswindows_dynamic_frame_resize /*
 *Controls redrawing frame contents during mouse-drag or keyboard resize
@@ -1743,6 +2338,13 @@
 }
 
 void
+lstream_type_create_mswindows_selectable (void)
+{
+  init_slurp_stream ();
+  init_shove_stream ();
+}
+
+void
 init_event_mswindows_late (void)
 {
   event_stream = mswindows_event_stream;
--- a/src/events.c	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/events.c	Mon Aug 13 10:29:42 2007 +0200
@@ -187,7 +187,7 @@
 	assert (INTP (Vx));
 	Vy = Fevent_y_pixel (obj);
 	assert (INTP (Vy));
-	sprintf (buf, "#<motion-event %d, %d", XINT (Vx), XINT (Vy));
+	sprintf (buf, "#<motion-event %ld, %ld", (long)(XINT (Vx)), (long)(XINT (Vy)));
 	write_c_string (buf, printcharfun);
 	break;
       }
--- a/src/fileio.c	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/fileio.c	Mon Aug 13 10:29:42 2007 +0200
@@ -641,32 +641,126 @@
   directory_file_name ((char *) XSTRING_DATA (directory), buf);
   return build_string (buf);
 }
+
+/* Fmake_temp_name used to be a simple wrapper around mktemp(), but it
+   proved too broken for our purposes (it supported only 26 or 62
+   unique names under some implementations).  For instance, the stupid
+   limit broke Gnus Incoming* files generation.
+
+   NB, this implementation is better than what one usually finds in
+   libc.  --hniksic */
+
+#define MTN_RANDOM(x) ((int) (random () % x))
+#define MTN_INC(var, limit) (var = ((var == (limit) - 1) ? 0 : (var + 1)))
+#define MTN_LOOP(var, limit, keep)				\
+for (keep = var = MTN_RANDOM (limit), MTN_INC (var, limit);	\
+     var != keep;						\
+     MTN_INC (var, limit))
 
 DEFUN ("make-temp-name", Fmake_temp_name, 1, 1, 0, /*
-Generate temporary file name (string) starting with PREFIX (a string).
-The Emacs process number forms part of the result,
-so there is no danger of generating a name being used by another process.
+Generate temporary file name starting with PREFIX.
+The Emacs process number forms part of the result, so there is no
+danger of generating a name being used by another process.
+
+In its current implementation, this function guarantees 262144 unique
+names per process per PREFIX (this is 54872 on case-insensitive
+filesystems.  However, if you want it to operate safely, PREFIX should
+have been passed through `expand-file-name'.
 */
        (prefix))
 {
-  CONST char suffix[] = "XXXXXX";
-  Bufbyte *data;
+  static char tbl[64] = {
+    'A','B','C','D','E','F','G','H',
+    'I','J','K','L','M','N','O','P',
+    'Q','R','S','T','U','V','W','X',
+    'Y','Z','a','b','c','d','e','f',
+    'g','h','i','j','k','l','m','n',
+    'o','p','q','r','s','t','u','v',
+    'w','x','y','z','0','1','2','3',
+    '4','5','6','7','8','9','-','_'
+  };
+  Lisp_Object val;
   Bytecount len;
-  Lisp_Object val;
+  int pid;
+  int i, j, k, keep1, keep2, keep3;
+  Bufbyte *p, *data;
 
   CHECK_STRING (prefix);
+
+  /* I was tempted to apply Fexpand_file_name on PREFIX here, but it's
+     a bad idea because:
+
+     1) It might change the prefix, so the resulting string might not
+     begin with PREFIX.  This violates the principle of least
+     surprise.
+
+     2) It breaks under many unforeseeable circumstances, such as with
+     the code that uses (make-temp-name "") instead of
+     (make-temp-name "./").
+
+     3) It might yield unexpected results in the presence of EFS and
+     file name handlers.  */
+
   len = XSTRING_LENGTH (prefix);
-  val = make_uninit_string (len + countof (suffix) - 1);
+  val = make_uninit_string (len + 6);
   data = XSTRING_DATA (val);
   memcpy (data, XSTRING_DATA (prefix), len);
-  memcpy (data + len, suffix, countof (suffix));
-  /* !!#### does mktemp() Mule-encapsulate? */
-  mktemp ((char *) data);
-
-#ifdef WINDOWSNT
-  CORRECT_DIR_SEPS (XSTRING_DATA (val));
-#endif /* WINDOWSNT */
-  return val;
+  p = data + len;
+
+  /* `val' is created by adding 6 characters to PREFIX.  The first
+     three are the PID of this process, in base 64, and the second
+     three are incremented if the file already exists.  This ensures
+     262144 unique file names per PID per PREFIX.  */
+
+  pid = (int)getpid ();
+  *p++ = tbl[pid & 63], pid >>= 6;
+  *p++ = tbl[pid & 63], pid >>= 6;
+  *p++ = tbl[pid & 63], pid >>= 6;
+
+  /* Here we employ some trickery to minimize useless stat'ing when
+     this function is invoked many times successively with the same
+     PREFIX.  Instead of looping from 0 to 63, each of the variables
+     is assigned a random number less than 64, and is incremented up
+     to 63 and back to zero, until the initial value is reached again.
+
+     In other words, MTN_LOOP (i, 64, keep1) is equivalent to
+     for (i = 0; i < 64; i++) with the difference that the beginning
+     value needn't be 0 -- all that matters is that i is guaranteed to
+     loop through all the values in the [0, 64) range.  */
+  MTN_LOOP (i, 64, keep1)
+    {
+      p[0] = tbl[i];
+      MTN_LOOP (j, 64, keep2)
+	{
+	  p[1] = tbl[j];
+	  MTN_LOOP (k, 64, keep3)
+	    {
+	      struct stat ignored;
+	      p[2] = tbl[k];
+	      if (stat (data, &ignored) < 0)
+		{
+		  /* We want to return only if errno is ENOENT.  */
+		  if (errno == ENOENT)
+		    return val;
+		  else
+		    /* The error here is dubious, but there is little
+		       else we can do.  The alternatives are to return
+		       nil, which is as bad as (and in many cases
+		       worse than) throwing the error, or to ignore
+		       the error, which will likely result in looping
+		       through 262144 stat's, which is not only SLOW,
+		       but also useless since it will fallback to the
+		       errow below, anyway.  */
+		    report_file_error
+		      ("Cannot create temporary name for prefix",
+		       list1 (prefix));
+		  /* not reached */
+		}
+	    }
+	}
+    }
+  signal_simple_error ("Cannot create temporary name for prefix", prefix);
+  RETURN_NOT_REACHED (Qnil);
 }
 
 DEFUN ("expand-file-name", Fexpand_file_name, 1, 2, 0, /*
@@ -2553,8 +2647,7 @@
 /* #define READ_BUF_SIZE (2 << 16) */
 #define READ_BUF_SIZE (1 << 15)
 
-DEFUN ("insert-file-contents-internal",
-       Finsert_file_contents_internal, 1, 7, 0, /*
+DEFUN ("insert-file-contents-internal", Finsert_file_contents_internal, 1, 7, 0, /*
 Insert contents of file FILENAME after point; no coding-system frobbing.
 This function is identical to `insert-file-contents' except for the
 handling of the CODESYS and USED-CODESYS arguments under
@@ -2570,7 +2663,7 @@
 Currently BEG and END refer to byte positions (as opposed to character
 positions), even in Mule. (Fixing this is very difficult.)
 */
-     (filename, visit, beg, end, replace, codesys, used_codesys))
+       (filename, visit, beg, end, replace, codesys, used_codesys))
 {
   /* This function can call lisp */
   /* #### dmoore - this function hasn't been checked for gc recently */
@@ -2836,8 +2929,9 @@
 	error ("Maximum buffer size exceeded");
     }
   else
-    /* For a special file, all we can do is guess.  */
-    total = READ_BUF_SIZE;
+    /* For a special file, all we can do is guess.  The value of -1
+       will make the stream functions read as much as possible.  */
+    total = -1;
 
   if (XINT (beg) != 0
 #ifdef FSFMACS_SPEEDY_INSERT
@@ -2865,7 +2959,7 @@
       (XLSTREAM (stream), Fget_coding_system (codesys));
     Lstream_set_character_mode (XLSTREAM (stream));
     Lstream_set_buffering (XLSTREAM (stream), LSTREAM_BLOCKN_BUFFERED, 65536);
-#endif /* MULE */
+#endif /* FILE_CODING */
 
     record_unwind_protect (close_stream_unwind, stream);
 
@@ -2901,7 +2995,7 @@
 	Fset (used_codesys,
 	      XCODING_SYSTEM_NAME (decoding_stream_coding_system (XLSTREAM (stream))));
       }
-#endif /* MULE */
+#endif /* FILE_CODING */
     NUNGCPRO;
   }
 
@@ -3052,7 +3146,7 @@
 
 #ifdef FILE_CODING
   codesys = Fget_coding_system (codesys);
-#endif /* MULE */
+#endif /* FILE_CODING */
 
   if (current_buffer->base_buffer && ! NILP (visit))
     error ("Cannot do file visiting in an indirect buffer");
@@ -3193,7 +3287,7 @@
       make_encoding_output_stream (XLSTREAM (outstream), codesys);
     Lstream_set_buffering (XLSTREAM (outstream),
 			   LSTREAM_BLOCKN_BUFFERED, 65536);
-#endif /* MULE */
+#endif /* FILE_CODING */
     if (STRINGP (start))
       {
 	instream = make_lisp_string_input_stream (start, 0, -1);
--- a/src/fns.c	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/fns.c	Mon Aug 13 10:29:42 2007 +0200
@@ -964,16 +964,21 @@
        (n, list))
 {
   REGISTER int i;
+  REGISTER Lisp_Object tail = list;
   CHECK_NATNUM (n);
   for (i = XINT (n); i; i--)
     {
-      if (NILP (list))
-	return list;
-      CHECK_CONS (list);
-      list = XCDR (list);
-      QUIT;
+      if (CONSP (tail))
+	tail = XCDR (tail);
+      else if (NILP (tail))
+	return Qnil;
+      else
+	{
+	  tail = wrong_type_argument (Qlistp, tail);
+	  i++;
+	}
     }
-  return list;
+  return tail;
 }
 
 DEFUN ("nth", Fnth, 2, 2, 0, /*
@@ -1006,7 +1011,7 @@
 	/* This is The Way It Has Always Been. */
 	return Qnil;
 #else
-        /* This is The Way Mly Says It Should Be. */
+        /* This is The Way Mly and Cltl2 say It Should Be. */
         args_out_of_range (sequence, n);
 #endif
     }
--- a/src/frame-msw.c	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/frame-msw.c	Mon Aug 13 10:29:42 2007 +0200
@@ -378,7 +378,47 @@
 static void
 mswindows_set_title_from_bufbyte (struct frame *f, Bufbyte *title) 
 {
-  SetWindowText (FRAME_MSWINDOWS_HANDLE(f), title);
+  unsigned int new_checksum = hash_string (title, strlen (title));
+  if (new_checksum != FRAME_MSWINDOWS_TITLE_CHECKSUM(f))
+    {
+      FRAME_MSWINDOWS_TITLE_CHECKSUM(f) = new_checksum;
+      SetWindowText (FRAME_MSWINDOWS_HANDLE(f), title);
+    }
+}
+
+static Lisp_Object
+mswindows_frame_property (struct frame *f, Lisp_Object property)
+{
+  if (EQ (Qleft, property) || EQ (Qtop, property))
+    {
+      RECT rc;
+      GetWindowRect (FRAME_MSWINDOWS_HANDLE(f), &rc);
+      return make_int (EQ (Qtop,  property) ? rc.top : rc.left);
+    }
+  return Qunbound;
+}
+
+static int
+mswindows_internal_frame_property_p (struct frame *f, Lisp_Object property)
+{
+  return EQ (property, Qleft)
+    || EQ (property, Qtop);
+  /* #### frame-x.c has also this. Why?
+    || STRINGP (property);
+  */
+}
+
+static Lisp_Object
+mswindows_frame_properties (struct frame *f)
+{
+  Lisp_Object props = Qnil;
+  RECT rc;
+  GetWindowRect (FRAME_MSWINDOWS_HANDLE(f), &rc);
+
+  props = cons3 (Qtop,  make_int (rc.top), props);
+  props = cons3 (Qleft, make_int (rc.left), props);
+
+  return props;
 }
 
 static void
@@ -518,13 +558,13 @@
 	  int new_char_height, new_char_width;
           pixel_to_real_char_size (frm, FRAME_PIXWIDTH(frm), FRAME_PIXHEIGHT(frm),
 				   &new_char_width, &new_char_height);
-	  if (new_char_width != MSWINDOWS_FRAME_CHARWIDTH (frm)
-	      || new_char_height != MSWINDOWS_FRAME_CHARHEIGHT (frm))
+	  if (new_char_width != FRAME_MSWINDOWS_CHARWIDTH (frm)
+	      || new_char_height != FRAME_MSWINDOWS_CHARHEIGHT (frm))
 	    {
 	      Lisp_Object frame;
 	      XSETFRAME (frame, frm);
-	      Fset_frame_size (frame, MSWINDOWS_FRAME_CHARWIDTH (frm),
-			       MSWINDOWS_FRAME_CHARHEIGHT (frm), Qnil);
+	      Fset_frame_size (frame, FRAME_MSWINDOWS_CHARWIDTH (frm),
+			       FRAME_MSWINDOWS_CHARHEIGHT (frm), Qnil);
 	    }
 	}
 
@@ -558,9 +598,9 @@
   CONSOLE_HAS_METHOD (mswindows, iconify_frame);
   CONSOLE_HAS_METHOD (mswindows, set_frame_size);
   CONSOLE_HAS_METHOD (mswindows, set_frame_position);
-/*  CONSOLE_HAS_METHOD (mswindows, frame_property); */
-/*  CONSOLE_HAS_METHOD (mswindows, internal_frame_property_p); */
-/*  CONSOLE_HAS_METHOD (mswindows, frame_properties); */
+  CONSOLE_HAS_METHOD (mswindows, frame_property);
+  CONSOLE_HAS_METHOD (mswindows, internal_frame_property_p);
+  CONSOLE_HAS_METHOD (mswindows, frame_properties);
   CONSOLE_HAS_METHOD (mswindows, set_frame_properties);
   CONSOLE_HAS_METHOD (mswindows, set_title_from_bufbyte);
 /*  CONSOLE_HAS_METHOD (mswindows, set_icon_name_from_bufbyte); */
--- a/src/frame-x.c	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/frame-x.c	Mon Aug 13 10:29:42 2007 +0200
@@ -1995,11 +1995,9 @@
 {
   /* This function can GC */
   Lisp_Object device = FRAME_DEVICE (f);
-  Lisp_Object lisp_window_id;
-  Lisp_Object popup;
-
-  lisp_window_id = Fplist_get (props, Qwindow_id, Qnil);
-  popup = Fplist_get (props, Qpopup, Qnil);
+  Lisp_Object lisp_window_id = Fplist_get (props, Qwindow_id, Qnil);
+  Lisp_Object popup = Fplist_get (props, Qpopup, Qnil);
+
   if (!NILP (popup))
     {
       if (EQ (popup, Qt))
@@ -2272,15 +2270,14 @@
 static void
 x_raise_frame_1 (struct frame *f, int force)
 {
-  Widget bottom_dialog;
-  Window emacs_window;
-  XWindowChanges xwc;
-  unsigned int flags;
-  Display *display = DEVICE_X_DISPLAY (XDEVICE (f->device));
-
-  if (FRAME_VISIBLE_P(f) || force)
+  if (FRAME_VISIBLE_P (f) || force)
     {
-      emacs_window = XtWindow (FRAME_X_SHELL_WIDGET (f));
+      Widget bottom_dialog;
+      XWindowChanges xwc;
+      unsigned int flags;
+      Display *display = DEVICE_X_DISPLAY (XDEVICE (f->device));
+      Window emacs_window = XtWindow (FRAME_X_SHELL_WIDGET (f));
+
       /* first raises all the dialog boxes, then put emacs just below the
        * bottom most dialog box */
       bottom_dialog = lw_raise_all_pop_up_widgets ();
@@ -2313,14 +2310,13 @@
 static void
 x_lower_frame (struct frame *f)
 {
-  Display *display = DEVICE_X_DISPLAY (XDEVICE (f->device));
-  XWindowChanges xwc;
-  unsigned int flags;
-
-  if (FRAME_VISIBLE_P(f))
+  if (FRAME_VISIBLE_P (f))
     {
+      Display *display = DEVICE_X_DISPLAY (XDEVICE (f->device));
+      XWindowChanges xwc;
+      unsigned int flags = CWStackMode;
+
       xwc.stack_mode = Below;
-      flags = CWStackMode;
       if (!XReconfigureWMWindow (display, XtWindow (FRAME_X_SHELL_WIDGET (f)),
 				 DefaultScreen (display), flags, &xwc))
 	x_cant_notify_wm_error ();
--- a/src/glyphs-x.c	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/glyphs-x.c	Mon Aug 13 10:29:42 2007 +0200
@@ -2696,7 +2696,7 @@
 #endif
 struct gif_error_struct
 {
-  char *err_str;		/* return the error string */
+  CONST char *err_str;		/* return the error string */
   jmp_buf setjmp_buffer;	/* for return to caller */
 };
 
@@ -3535,6 +3535,7 @@
 static size_t tiff_memory_write(thandle_t data, tdata_t buf, tsize_t size)
 {
   abort();
+  return 0;			/* Shut up warnings. */
 }
 
 static toff_t tiff_memory_seek(thandle_t data, toff_t off, int whence)
--- a/src/hpplay.c	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/hpplay.c	Mon Aug 13 10:29:42 2007 +0200
@@ -28,8 +28,8 @@
    BUGS
      I have been unable to figure out how to use the volume feature, so no
      attempts has been made to honor the volume arg of play_sound_*
-     This means that all sounds is played at 100%.
-     The gain parameter can be set by using the play-gain variable.
+     This means that all sounds are played at 100%.
+     The gain parameter can be set by using the hp-play-gain variable.
 
    NOTES
      This file is mostly based on the player program found in the examples
@@ -63,7 +63,7 @@
 
 Lisp_Object Vhp_play_server;
 Lisp_Object Vhp_play_speaker;
-int         play_gain;
+int         hp_play_gain;
 
 /* Functions */
 
@@ -136,7 +136,7 @@
     playParams.gain_matrix.type = AGMTOutput;       /* gain matrix */
     playParams.gain_matrix.num_entries = 1;
     playParams.gain_matrix.gain_entries = &gainEntry;
-    playParams.play_volume = play_gain;            /* play volume */
+    playParams.play_volume = hp_play_gain;          /* play volume */
     playParams.pause_first = False;                 /* don't pause */
     playParams.start_offset.type = ATTSamples;      /* start offset 0 */
     playParams.start_offset.u.samples = 0;
@@ -273,7 +273,7 @@
 
   Vhp_play_speaker = intern ("internal");
 
-  DEFVAR_INT("hp-play-gain", &play_gain /*
+  DEFVAR_INT("hp-play-gain", &hp_play_gain /*
 Global gain value for playing sounds.
 Default value is AUnityGain which means keep level.
 Please refer to the HP documentation, for instance in
@@ -283,7 +283,7 @@
 not make your functions depend on it.
 */ );
 
-  play_gain = AUnityGain;
+  hp_play_gain = AUnityGain;
 }
 
 void
--- a/src/insdel.c	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/insdel.c	Mon Aug 13 10:29:42 2007 +0200
@@ -1874,7 +1874,7 @@
 	 That won't work because so many places use `int'.  */
 
       if (BUF_Z (buf) - BUF_BEG (buf) + BUF_GAP_SIZE (buf) + increment
-	  > (int) EMACS_INT_MAX)
+	  > EMACS_INT_MAX)
 	error ("Maximum buffer size exceeded");
 
       result = BUFFER_REALLOC (buf->text->beg,
@@ -2388,7 +2388,7 @@
 #endif
 
   /* Make sure that point-max won't exceed the size of an emacs int. */
-  if ((length + BUF_Z (buf)) > (int) EMACS_INT_MAX)
+  if ((length + BUF_Z (buf)) > EMACS_INT_MAX)
     error ("Maximum buffer size exceeded");
 
   /* theoretically not necessary -- caller should GCPRO */
--- a/src/lstream.c	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/lstream.c	Mon Aug 13 10:29:42 2007 +0200
@@ -899,7 +899,7 @@
   fstr->blocking_error_p = 0;
   fstr->chars_sans_newline = 0;
   fstr->starting_pos = lseek (filedesc, offset, SEEK_CUR);
-  fstr->current_pos = max (fstr->current_pos, 0);
+  fstr->current_pos = max (fstr->starting_pos, 0);
   if (count < 0)
     fstr->end_pos = -1;
   else
--- a/src/m/ibmrs6000.inp	Mon Aug 13 10:28:54 2007 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-#!
-pthread_yield
--- a/src/m/powerpc.h	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/m/powerpc.h	Mon Aug 13 10:29:42 2007 +0200
@@ -121,7 +121,7 @@
 
 /* Here override various assumptions in ymakefile */
 
-#define START_FILES 
+/* #undef START_FILES */
 /* #define HAVE_SYSVIPC */
 /* #define HAVE_GETWD */
 
--- a/src/nt.c	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/nt.c	Mon Aug 13 10:29:42 2007 +0200
@@ -35,7 +35,8 @@
 #include <signal.h>
 
 /* must include CRT headers *before* config.h */
-#include "config.h"
+/* ### I don't believe it - martin */
+#include <config.h>
 #include "systime.h"
 #include "syssignal.h"
 #include "sysproc.h"
@@ -1377,7 +1378,7 @@
 }
 
 int
-sys_mkdir (const char * path)
+sys_mkdir (const char * path, int mode_unused)
 {
   return _mkdir (map_win32_filename (path, NULL));
 }
--- a/src/ntproc.c	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/ntproc.c	Mon Aug 13 10:29:42 2007 +0200
@@ -32,7 +32,8 @@
 #include <signal.h>
 
 /* must include CRT headers *before* config.h */
-#include "config.h"
+/* ### I don't believe it - martin */
+#include <config.h>
 #undef signal
 #undef wait
 #undef spawnve
@@ -1189,7 +1190,10 @@
 			 cp->pid));
 #endif
 	      dead_child = cp;
-	      msw_raise (SIGCHLD);
+	      /* msw_raise (SIGCHLD); -kkm: I will erase this file
+		 slowly, line by line, character by character,
+		 I will press undo often, to prolong this.
+		 Even such a revenge will not be enough for it!!! */
 	      dead_child = NULL;
 	    }
 	}
--- a/src/paths.h.in	Mon Aug 13 10:28:54 2007 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/* Hey Emacs, this is -*- C -*- code! */
-
-/* Synched up with: Not synched with FSF. */
-
-/* Think twice before editing this file.  Generated automatically by configure.
-
- The file startup.el guesses at reasonable values for load-path, exec-path,
- and lock-directory.  This means that if you move emacs and its associated
- sub-tree to a different place in the filesystem, or to a different machine,
- you won't have to do anything for it to work.
-
- If you define the paths in this file then they will take precedence over
- any value generated by the heuristic in startup.el.  The hardcoded paths
- will be checked to see if they are valid, in which case they will be used.
- Otherwise the editor will attempt to make its normal guess.
-
- See the NEWS file for a description of the heuristic used to locate the lisp
- and exec directories at startup time.  If you are looking at this file
- because you are having trouble, then you would be much better off arranging
- for those heuristics to succeed than defining the paths in this file.
-
-   **  Let me say that again.  If you're editing this file, you're making
-   **  a mistake.  Re-read the section on installation in ../etc/NEWS.
-
- If it defines anything, this file should define some subset of the following:
-
-   PATH_PREFIX		The default value of `prefix-directory'.  This is the
-   			default root for everything.
-
-   PATH_LOADSEARCH	The default value of `load-path'.
-
-   PATH_PACKAGEPATH     The default value of `package-path'.
-
-   PATH_SITE            The default location of site-specific Lisp files.
-
-   PATH_EXEC		The default value of `exec-directory' and `exec-path'.
-			(exec-path also contains the value of whatever is in
-			the PATH environment variable.)
-
-   PATH_DATA		The default value of `data-directory'.  This
-			is where architecture-independent files are
-			searched for.
-
-   PATH_LOCK		The name of the directory that contains lock files
-			with which we record what files are being modified in 
-			Emacs.  This directory should be writable by everyone.
-			If this is specified, the string must end with a slash!
-
-   PATH_INFO		This is where the info documentation is installed.
-
-   PATH_INFOPATH	The default value of `Info-directory-list'.
-			These are additional places info files are searched
-			for. */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/paths.h.in.in	Mon Aug 13 10:29:42 2007 +0200
@@ -0,0 +1,95 @@
+/* Hey Emacs, this is -*- C -*- code! */
+
+/* Synched up with: Not synched with FSF. */
+
+/* Think twice before editing this file.  Generated automatically by configure.
+
+ The file startup.el guesses at reasonable values for load-path, exec-path,
+ and lock-directory.  This means that if you move emacs and its associated
+ sub-tree to a different place in the filesystem, or to a different machine,
+ you won't have to do anything for it to work.
+
+ If you define the paths in this file then they will take precedence over
+ any value generated by the heuristic in startup.el.  The hardcoded paths
+ will be checked to see if they are valid, in which case they will be used.
+ Otherwise the editor will attempt to make its normal guess.
+
+ See the NEWS file for a description of the heuristic used to locate the lisp
+ and exec directories at startup time.  If you are looking at this file
+ because you are having trouble, then you would be much better off arranging
+ for those heuristics to succeed than defining the paths in this file.
+
+   **  Let me say that again.  If you're editing this file, you're making
+   **  a mistake.  Re-read the section on installation in ../etc/NEWS.
+
+ If it defines anything, this file should define some subset of the following:
+
+   PATH_PREFIX		The default value of `prefix-directory'.  This is the
+   			default root for everything.
+
+   PATH_LOADSEARCH	The default value of `load-path'.
+
+   PATH_PACKAGEPATH     The default value of `package-path'.
+
+   PATH_SITE            The default location of site-specific Lisp files.
+
+   PATH_EXEC		The default value of `exec-directory' and `exec-path'.
+			(exec-path also contains the value of whatever is in
+			the PATH environment variable.)
+
+   PATH_DATA		The default value of `data-directory'.  This
+			is where architecture-independent files are
+			searched for.
+
+   PATH_LOCK		The name of the directory that contains lock files
+			with which we record what files are being modified in 
+			Emacs.  This directory should be writable by everyone.
+			If this is specified, the string must end with a slash!
+
+   PATH_INFO		This is where the info documentation is installed.
+
+   PATH_INFOPATH	The default value of `Info-directory-list'.
+			These are additional places info files are searched
+			for. */
+
+#define PATH_PREFIX "@prefix@"
+
+#undef LISPDIR_USER_DEFINED
+#ifdef LISPDIR_USER_DEFINED
+#define  PATH_LOADSEARCH "@LISPDIR@"
+#endif
+
+#undef PACKAGE_PATH_USER_DEFINED
+#ifdef PACKAGE_PATH_USER_DEFINED
+#define PATH_PACKAGEPATH "@PACKAGE_PATH@"
+#endif
+
+#undef SITELISPDIR_USER_DEFINED
+#ifdef SITELISPDIR_USER_DEFINED
+#define PATH_SITE "@SITELISPDIR@"
+#endif
+
+#undef ARCHLIBDIR_USER_DEFINED
+#ifdef ARCHLIBDIR_USER_DEFINED
+#define PATH_EXEC "@ARCHLIBDIR@"
+#endif
+
+#undef ETCDIR_USER_DEFINED
+#ifdef ETCDIR_USER_DEFINED
+#define PATH_DATA "@ETCDIR@"
+#endif
+
+#undef LOCKDIR_USER_DEFINED
+#ifdef LOCKDIR_USER_DEFINED
+#define PATH_LOCK "@LOCKDIR@"
+#endif
+
+#undef INFODIR_USER_DEFINED
+#ifdef INFODIR_USER_DEFINED
+#define PATH_INFO "@INFODIR@"
+#endif
+
+#undef INFOPATH_USER_DEFINED
+#ifdef INFOPATH_USER_DEFINED
+#define PATH_INFOPATH "@INFOPATH@"
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/process-nt.c	Mon Aug 13 10:29:42 2007 +0200
@@ -0,0 +1,377 @@
+/* Asynchronous subprocess implemenation for Win32
+   Copyright (C) 1985, 1986, 1987, 1988, 1992, 1993, 1994, 1995
+   Free Software Foundation, Inc.
+   Copyright (C) 1995 Sun Microsystems, Inc.
+   Copyright (C) 1995, 1996 Ben Wing.
+
+This file is part of XEmacs.
+
+XEmacs is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 2, or (at your option) any
+later version.
+
+XEmacs is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with XEmacs; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+/* Written by Kirill M. Katsnelson <kkm@kis.ru>, April 1998 */
+
+#include <config.h>
+#include "lisp.h"
+
+#include "hash.h"
+#include "lstream.h"
+#include "process.h"
+#include "procimpl.h"
+
+#include <windows.h>
+
+/* Implemenation-specific data. Pointed to by Lisp_Process->process_data */
+struct nt_process_data
+{
+  HANDLE h_process;
+};
+
+#define NT_DATA(p) ((struct nt_process_data*)((p)->process_data))
+
+/*-----------------------------------------------------------------------*/
+/* Process helpers							 */
+/*-----------------------------------------------------------------------*/
+
+/* #### Ok, a pretty frame is here, and a nifty text is in. Now,
+   any function around here to be put here? Yahoooo.... */
+
+/*-----------------------------------------------------------------------*/
+/* Process methods							 */
+/*-----------------------------------------------------------------------*/
+
+/*
+ * Allocate and initialize Lisp_Process->process_data
+ */
+
+static void
+nt_alloc_process_data (struct Lisp_Process *p)
+{
+  p->process_data = xnew (struct nt_process_data);
+}
+
+#if 0 /* #### Need this method? */
+/*
+ * Mark any Lisp objects in Lisp_Process->process_data
+ */
+
+static void
+nt_mark_process_data (struct Lisp_Process *proc,
+			void (*markobj) (Lisp_Object))
+{
+}
+#endif
+
+static void
+nt_finalize_process_data (struct Lisp_Process *p, int for_disksave)
+{
+  assert (!for_disksave);
+  if (NT_DATA(p)->h_process)
+    CloseHandle (NT_DATA(p)->h_process);
+}
+
+#if 0 /* #### Need this method? */
+/*
+ * Initialize XEmacs process implemenation once
+ */
+
+static void
+nt_init_process (void)
+{
+}
+#endif
+
+#if 0 /* #### Need this method? */
+/*
+ * Initialize any process local data. This is called when newly
+ * created process is connected to real OS file handles. The
+ * handles are generally represented by void* type, but are
+ * of type HANDLE for Win32
+ */
+
+static void
+nt_init_process_io_handles (struct Lisp_Process *p, void* in, void* out, int flags)
+{
+}
+#endif
+
+/*
+ * Fork off a subprocess. P is a pointer to newly created subprocess
+ * object. If this function signals, the caller is responsible for
+ * deleting (and finalizing) the process object.
+ *
+ * The method must return PID of the new proces, a (positive??? ####) number
+ * which fits into Lisp_Int. No return value indicates an error, the method
+ * must signal an error instead.
+ */
+
+/* #### This function completely ignores Vprocess_environment */
+
+static int
+nt_create_process (struct Lisp_Process *p,
+		   char **argv, CONST char *current_dir)
+{
+  HANDLE hmyshove, hmyslurp, hprocin, hprocout;
+  LPTSTR command_line;
+  
+  /* Create two unidirectional named pipes */
+  {
+    HANDLE htmp;
+    SECURITY_ATTRIBUTES sa;
+
+    sa.nLength = sizeof(sa);
+    sa.bInheritHandle = TRUE;
+    sa.lpSecurityDescriptor = NULL;
+
+    CreatePipe (&hprocin, &hmyshove, &sa, 0);
+    CreatePipe (&hmyslurp, &hprocout, &sa, 0);
+
+    /* Stupid Win32 allows to create a pipe with *both* ends either
+       inheritable or not. We need process ends inheritable, and local
+       ends not inheritable. */
+    /* #### Perhaps even stupider me does not know how to do this better */
+    DuplicateHandle (GetCurrentProcess(), hmyshove, GetCurrentProcess(), &htmp,
+		     0, FALSE, DUPLICATE_CLOSE_SOURCE | DUPLICATE_SAME_ACCESS);
+    hmyshove = htmp;
+    DuplicateHandle (GetCurrentProcess(), hmyslurp, GetCurrentProcess(), &htmp,
+		     0, FALSE, DUPLICATE_CLOSE_SOURCE | DUPLICATE_SAME_ACCESS);
+    hmyslurp = htmp;
+  }
+
+  /* Convert an argv vector into Win32 style command line.
+
+     #### This works only for cmd, and not for cygwin bash.  Perhaps,
+     instead of ad-hoc fiddling with different methods for quoting
+     process arguments in ntproc.c (disgust shudder), this must call a
+     smart lisp routine. The code here will be a fallback, if the
+     lisp function is not specified.
+  */
+  {
+    char** thisarg;
+    size_t size = 1;
+
+    for (thisarg = argv; *thisarg; ++thisarg)
+      size += strlen (*thisarg) + 1;
+
+    command_line = alloca_array (char, size);
+    *command_line = 0;
+
+    for (thisarg = argv; *thisarg; ++thisarg)
+      {
+	if (thisarg != argv)
+	  strcat (command_line, " ");
+	strcat (command_line, *thisarg);
+      }
+  }
+
+  /* Create process */
+  {
+    STARTUPINFO si;
+    PROCESS_INFORMATION pi;
+    DWORD err;
+    BOOL windowed;
+
+    xzero (si);
+    si.hStdInput = hprocin;
+    si.hStdOutput = hprocout;
+    si.hStdError = hprocout;
+    si.wShowWindow = SW_HIDE;
+    si.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
+	
+    err = (CreateProcess (NULL, command_line, NULL, NULL, TRUE,
+			  CREATE_NEW_CONSOLE | CREATE_NEW_PROCESS_GROUP |	CREATE_SUSPENDED,
+			  NULL, current_dir, &si, &pi)
+	   ? 0 : GetLastError ());
+      
+    CloseHandle (hprocin);
+    CloseHandle (hprocout);
+
+    /* See if we succeeded with process creation */
+    if (err)
+      {
+      process_error__One_of_those_nasty_uses_for_goto_statement:
+	CloseHandle (hmyshove);
+	CloseHandle (hmyslurp);
+	error ("Cannot start \"%s\": error code was %lu", argv[0], err);
+      }
+
+    /* Determine if the new process is a windowed one */
+    windowed = WaitForInputIdle (pi.hProcess, 100) == WAIT_TIMEOUT;
+    if (windowed)
+      {
+	/* We restart windowed process fire-and forget style, and
+	   indicate successful process creation, just as if the
+	   process ended instantly upon launching */
+	CloseHandle (hmyshove);
+	CloseHandle (hmyslurp);
+	/* TerminateProcess is safe becuase the process is not yet
+	   running */
+	TerminateProcess (pi.hProcess, 0);
+	si.dwFlags = STARTF_USESHOWWINDOW;
+	si.wShowWindow = SW_SHOWNORMAL;
+	if (!CreateProcess (NULL, command_line, NULL, NULL, FALSE,
+			    DETACHED_PROCESS , NULL, current_dir, &si, &pi))
+	  {
+	    err = GetLastError ();
+	    goto process_error__One_of_those_nasty_uses_for_goto_statement;
+	  }
+
+	/* We just launched a windowed process. Fake it as if a
+	   process launched has already ended */
+	p->status_symbol = Qexit;
+
+	/* Get rid of process and thread handles */
+	CloseHandle (pi.hThread);
+	CloseHandle (pi.hProcess);
+      }
+    else
+      {
+	/* Just started a console subprocess */
+
+	NT_DATA(p)->h_process = pi.hProcess;
+
+	init_process_io_handles (p, (void*)hmyslurp, (void*)hmyshove, 0);
+	
+	/* We created it suspended. Resume the only thread */
+	ResumeThread (pi.hThread);
+	CloseHandle (pi.hThread);
+      }
+
+    return ((int)pi.dwProcessId < 0
+	    ? -(int)pi.dwProcessId : (int)pi.dwProcessId);
+  }
+}
+
+/* 
+ * This method is called to update status fields of the process
+ * structure. If the process has not existed, this method is expected
+ * to do nothing.
+ *
+ * The method is called only for real child processes.  
+ */
+
+static void
+nt_update_status_if_terminated (struct Lisp_Process* p)
+{
+  DWORD exit_code;
+  if (GetExitCodeProcess (NT_DATA(p)->h_process, &exit_code)
+      && exit_code != STILL_ACTIVE)
+    {
+      p->tick++;
+      p->core_dumped = 0;
+      /* The exit code can be a code returned by process, or an
+	 NTSTATUS value. We cannot accurately handle the latter since
+	 it is a full 32 bit integer */
+      if (exit_code & 0xC0000000)
+	{
+	  p->status_symbol = Qsignal;
+	  p->exit_code = exit_code & 0x1FFFFFFF;
+	}
+      else
+	{
+	  p->status_symbol = Qexit;
+	  p->exit_code = exit_code;
+	}
+    }
+}
+
+/*
+ * Stuff the entire contents of LSTREAM to the process ouptut pipe
+ */
+
+/* #### If only this function could be somehow merged with
+   unix_send_process... */
+
+static void
+nt_send_process (Lisp_Object proc, struct lstream* lstream)
+{
+  struct Lisp_Process *p = XPROCESS (proc);
+
+  /* use a reasonable-sized buffer (somewhere around the size of the
+     stream buffer) so as to avoid inundating the stream with blocked
+     data. */
+  Bufbyte chunkbuf[512];
+  Bytecount chunklen;
+
+  while (1)
+    {
+      int writeret;
+
+      chunklen = Lstream_read (lstream, chunkbuf, 512);
+      if (chunklen <= 0)
+	break; /* perhaps should abort() if < 0?
+		  This should never happen. */
+
+      /* Lstream_write() will never successfully write less than the
+	 amount sent in.  In the worst case, it just buffers the
+	 unwritten data. */
+      writeret = Lstream_write (XLSTREAM (DATA_OUTSTREAM(p)), chunkbuf,
+				chunklen);
+      if (writeret < 0)
+	{
+	  p->status_symbol = Qexit;
+	  p->exit_code = ERROR_BROKEN_PIPE;
+	  p->core_dumped = 0;
+	  p->tick++;
+	  process_tick++;
+	  deactivate_process (proc);
+	  error ("Broken pipe error sending to process %s; closed it",
+		 XSTRING_DATA (p->name));
+	}
+
+      while (Lstream_was_blocked_p (XLSTREAM (p->pipe_outstream)))
+	{
+	  /* Buffer is full.  Wait, accepting input; that may allow
+	     the program to finish doing output and read more.  */
+	  Faccept_process_output (Qnil, make_int (1), Qnil);
+	  Lstream_flush (XLSTREAM (p->pipe_outstream));
+	}
+    }
+  Lstream_flush (XLSTREAM (DATA_OUTSTREAM(p)));
+}
+
+/*-----------------------------------------------------------------------*/
+/* Initialization							 */
+/*-----------------------------------------------------------------------*/
+
+void
+process_type_create_nt (void)
+{
+  PROCESS_HAS_METHOD (nt, alloc_process_data);
+  PROCESS_HAS_METHOD (nt, finalize_process_data);
+  /*  PROCESS_HAS_METHOD (nt, mark_process_data); */
+  /* PROCESS_HAS_METHOD (nt, init_process); */
+  /* PROCESS_HAS_METHOD (nt, init_process_io_handles); */
+  PROCESS_HAS_METHOD (nt, create_process);
+  PROCESS_HAS_METHOD (nt, update_status_if_terminated);
+  PROCESS_HAS_METHOD (nt, send_process);
+  /* PROCESS_HAS_METHOD (nt, kill_child_process); */
+  /* PROCESS_HAS_METHOD (nt, kill_process_by_pid); */
+#if 0 /* Yet todo */
+#ifdef HAVE_SOCKETS
+  PROCESS_HAS_METHOD (nt, canonicalize_host_name);
+  PROCESS_HAS_METHOD (nt, open_network_stream);
+#ifdef HAVE_MULTICAST
+  PROCESS_HAS_METHOD (nt, open_multicast_group);
+#endif
+#endif
+#endif
+}
+
+void
+vars_of_process_nt (void)
+{
+}
+
--- a/src/process-unix.c	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/process-unix.c	Mon Aug 13 10:29:42 2007 +0200
@@ -1358,7 +1358,7 @@
 #if defined (TIOCSIGNAL) || defined (TIOCSIGSEND)
       if (current_group)
 	{
-#ifdef (TIOCSIGNAL)
+#ifdef TIOCSIGNAL
 	  kill_retval = ioctl (UNIX_DATA(p)->infd, TIOCSIGNAL, signo);
 #else /* ! defined (TIOCSIGNAL) */
 	  kill_retval = ioctl (UNIX_DATA(p)->infd, TIOCSIGSEND, signo);
--- a/src/process.h	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/process.h	Mon Aug 13 10:29:42 2007 +0200
@@ -51,6 +51,7 @@
 #ifdef emacs
 
 EXFUN (Fprocess_kill_without_query, 2);
+EXFUN (Fprocess_id, 1);
 
 Lisp_Object connect_to_file_descriptor (Lisp_Object name,
 					Lisp_Object buffer,
--- a/src/ralloc.c	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/ralloc.c	Mon Aug 13 10:29:42 2007 +0200
@@ -38,7 +38,6 @@
 #ifdef emacs
 
 #include "lisp.h"
-#include <malloc.h>
 
 /* The important properties of this type are that 1) it's a pointer, and
    2) arithmetic on it should work as if the size of the object pointed
@@ -58,6 +57,7 @@
 
 #ifdef DOUG_LEA_MALLOC
 #define M_TOP_PAD -2
+#include <malloc.h>
 #endif
 
 #include "getpagesize.h"
--- a/src/redisplay.c	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/redisplay.c	Mon Aug 13 10:29:42 2007 +0200
@@ -3922,6 +3922,18 @@
 	    }
         }
     }
+  else if (GENERIC_SPECIFIERP (elt))
+    {
+      Lisp_Object window, tem;
+      XSETWINDOW (window, w);
+      tem = specifier_instance_no_quit (elt, Qunbound, window,
+					ERROR_ME_NOT, 0, Qzero);
+      if (!UNBOUNDP (tem))
+	{
+	  elt = tem;
+	  goto tail_recurse;
+	}
+    }
   else if (CONSP (elt))
     {
       /* A cons cell: four distinct cases.
@@ -4084,7 +4096,7 @@
 
   return pos;
 }
-#else /* MODELINE_IS_SCROLLABLE */
+#else /* not MODELINE_IS_SCROLLABLE */
 static void
 generate_formatted_string_db (Lisp_Object format_str, Lisp_Object result_str,
                               struct window *w, struct display_line *dl,
@@ -4418,6 +4430,18 @@
             }
         }
     }
+  else if (GENERIC_SPECIFIERP (elt))
+    {
+      Lisp_Object window, tem;
+      XSETWINDOW (window, w);
+      tem = specifier_instance_no_quit (elt, Qunbound, window,
+					ERROR_ME_NOT, 0, Qzero);
+      if (!UNBOUNDP (tem))
+	{
+	  elt = tem;
+	  goto tail_recurse;
+	}
+    }
   else if (CONSP (elt))
     {
       /* A cons cell: four distinct cases.
@@ -5723,7 +5747,7 @@
   /* We still haven't gotten the window regenerated with point
      visible.  Next we try scrolling a little and see if point comes
      back onto the screen. */
-  if (scroll_step)
+  if (scroll_step > 0)
     {
       int scrolled = scroll_conservatively;
       for (; scrolled >= 0; scrolled -= scroll_step)
@@ -6242,7 +6266,7 @@
 
   line = buffer_line_number (b, pos, 1);
 
-  sprintf (window_line_number_buf, "%d", line + 1);
+  sprintf (window_line_number_buf, "%ld", (long)(line + 1));
 
   return window_line_number_buf;
 }
--- a/src/regex.c	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/regex.c	Mon Aug 13 10:29:42 2007 +0200
@@ -701,7 +701,7 @@
   /* Loop over pattern commands.  */
   while (p < pend)
     {
-      printf ("%d:\t", p - start);
+      printf ("%ld:\t", (long)(p - start));
 
       switch ((re_opcode_t) *p++)
 	{
@@ -800,14 +800,14 @@
 		if (first < 0x100)
 		  putchar (first);
 		else
-		  printf ("(0x%x)", first);
+		  printf ("(0x%lx)", (long)first);
 		if (first != last)
 		  {
 		    putchar ('-');
 		    if (last < 0x100)
 		      putchar (last);
 		    else
-		      printf ("(0x%x)", last);
+		      printf ("(0x%lx)", (long)last);
 		  }
 	      }
 	    putchar (']');
@@ -826,17 +826,17 @@
 
 	case on_failure_jump:
           extract_number_and_incr (&mcnt, &p);
-  	  printf ("/on_failure_jump to %d", p + mcnt - start);
+  	  printf ("/on_failure_jump to %ld", (long)(p + mcnt - start));
           break;
 
 	case on_failure_keep_string_jump:
           extract_number_and_incr (&mcnt, &p);
-  	  printf ("/on_failure_keep_string_jump to %d", p + mcnt - start);
+  	  printf ("/on_failure_keep_string_jump to %ld", (long)(p + mcnt - start));
           break;
 
 	case dummy_failure_jump:
           extract_number_and_incr (&mcnt, &p);
-  	  printf ("/dummy_failure_jump to %d", p + mcnt - start);
+  	  printf ("/dummy_failure_jump to %ld", (long)(p + mcnt - start));
           break;
 
 	case push_dummy_failure:
@@ -845,40 +845,40 @@
 
         case maybe_pop_jump:
           extract_number_and_incr (&mcnt, &p);
-  	  printf ("/maybe_pop_jump to %d", p + mcnt - start);
+  	  printf ("/maybe_pop_jump to %ld", (long)(p + mcnt - start));
 	  break;
 
         case pop_failure_jump:
 	  extract_number_and_incr (&mcnt, &p);
-  	  printf ("/pop_failure_jump to %d", p + mcnt - start);
+  	  printf ("/pop_failure_jump to %ld", (long)(p + mcnt - start));
 	  break;
 
         case jump_past_alt:
 	  extract_number_and_incr (&mcnt, &p);
-  	  printf ("/jump_past_alt to %d", p + mcnt - start);
+  	  printf ("/jump_past_alt to %ld", (long)(p + mcnt - start));
 	  break;
 
         case jump:
 	  extract_number_and_incr (&mcnt, &p);
-  	  printf ("/jump to %d", p + mcnt - start);
+  	  printf ("/jump to %ld", (long)(p + mcnt - start));
 	  break;
 
         case succeed_n:
           extract_number_and_incr (&mcnt, &p);
           extract_number_and_incr (&mcnt2, &p);
-	  printf ("/succeed_n to %d, %d times", p + mcnt - start, mcnt2);
+	  printf ("/succeed_n to %ld, %d times", (long)(p + mcnt - start), mcnt2);
           break;
 
         case jump_n:
           extract_number_and_incr (&mcnt, &p);
           extract_number_and_incr (&mcnt2, &p);
-	  printf ("/jump_n to %d, %d times", p + mcnt - start, mcnt2);
+	  printf ("/jump_n to %ld, %d times", (long)(p + mcnt - start), mcnt2);
           break;
 
         case set_number_at:
           extract_number_and_incr (&mcnt, &p);
           extract_number_and_incr (&mcnt2, &p);
-	  printf ("/set_number_at location %d to %d", p + mcnt - start, mcnt2);
+	  printf ("/set_number_at location %ld to %d", (long)(p + mcnt - start), mcnt2);
           break;
 
         case wordbound:
@@ -961,7 +961,7 @@
       putchar ('\n');
     }
 
-  printf ("%d:\tend of pattern.\n", p - start);
+  printf ("%ld:\tend of pattern.\n", (long)(p - start));
 }
 
 
--- a/src/s/windowsnt.h	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/s/windowsnt.h	Mon Aug 13 10:29:42 2007 +0200
@@ -305,11 +305,8 @@
 /* Defines that we need that aren't in the standard signal.h  */
 #define SIGHUP  1               /* Hang up */
 #define SIGQUIT 3               /* Quit process */
-#define SIGTRAP 5               /* Trace trap */
 #define SIGKILL 9               /* Die, die die */
-#define SIGPIPE 13              /* Write on pipe with no readers */
 #define SIGALRM 14              /* Alarm */
-#define SIGCHLD 18              /* Death of child */
 #define SIGPROF 29		/* Profiling timer exp */
 
 /* For integration with MSDOS support.  */
@@ -345,6 +342,9 @@
 #include <stdlib.h>
 #include <string.h>
 
+/* Define process implementation */
+#define HAVE_WIN32_PROCESSES
+
 #if 0
 /* Emacs takes care of ensuring that these are defined.  */
 #ifdef max
--- a/src/signal.c	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/signal.c	Mon Aug 13 10:29:42 2007 +0200
@@ -643,7 +643,9 @@
       signal (SIGHUP,  fatal_error_signal);
       signal (SIGQUIT, fatal_error_signal);
       signal (SIGILL,  fatal_error_signal);
+#ifdef SIGTRAP
       signal (SIGTRAP, fatal_error_signal);
+#endif
 #ifdef SIGABRT
       signal (SIGABRT, fatal_error_signal);
 #endif
@@ -679,7 +681,9 @@
 #ifdef SIGSYS
       signal (SIGSYS, fatal_error_signal);
 #endif
+#ifdef SIGPIPE
       signal (SIGPIPE, fatal_error_signal);
+#endif
       signal (SIGTERM, fatal_error_signal);
 #ifdef SIGXCPU
       signal (SIGXCPU, fatal_error_signal);
--- a/src/symsinit.h	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/symsinit.h	Mon Aug 13 10:29:42 2007 +0200
@@ -192,10 +192,11 @@
 void lstream_type_create (void);
 void lstream_type_create_mule_coding (void);
 void lstream_type_create_print (void);
+void lstream_type_create_mswindows_selectable (void);
 
 /* Initialize process types */
 
-void process_type_create_mswindows (void);
+void process_type_create_nt (void);
 void process_type_create_unix (void);
 
 /* Allow for Fprovide() (dump-time only). */
@@ -276,7 +277,7 @@
 void vars_of_objects_x (void);
 void vars_of_print (void);
 void vars_of_process (void);
-void vars_of_process_mswindows (void);
+void vars_of_process_nt (void);
 void vars_of_process_unix (void);
 void vars_of_profile (void);
 void vars_of_ralloc (void);
--- a/src/sysdep.c	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/sysdep.c	Mon Aug 13 10:29:42 2007 +0200
@@ -135,6 +135,7 @@
 #ifdef AIXHFT
 static void hft_init (struct console *c);
 static void hft_reset (struct console *c);
+#include <sys/termio.h>
 #endif
 
 /* ------------------------------- */
--- a/src/sysdep.h	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/sysdep.h	Mon Aug 13 10:29:42 2007 +0200
@@ -78,9 +78,9 @@
 extern JMP_BUF break_system_call_jump;
 extern volatile int can_break_system_calls;
 
-int sys_write_1 (int fildes, CONST void *buf, unsigned int nbyte,
+int sys_write_1 (int fildes, CONST void *buf, size_t nbyte,
 		 int allow_quit);
-int sys_read_1 (int fildes, void *buf, unsigned int nbyte,
+int sys_read_1 (int fildes, void *buf, size_t nbyte,
 		int allow_quit);
 
 /* Call these functions if you want to change some terminal parameter --
@@ -158,8 +158,16 @@
 # ifdef strerror
 # undef strerror
 # endif
+#if defined (__GNUC__) && defined (__GNUC_MINOR__)
+#if ((__GNUC__ == 2) && (__GNUC_MINOR__ > 7)) || ((__GNUC__ > 2))
+char *strerror (int);
+#else
 CONST char *strerror (int);
 #endif
+#else
+CONST char *strerror (int);
+#endif
+#endif
 
 #ifdef WINDOWSNT
 void mswindows_set_errno (unsigned long win32_error);
--- a/src/sysproc.h	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/sysproc.h	Mon Aug 13 10:29:42 2007 +0200
@@ -33,6 +33,7 @@
 #if !defined (NO_SUBPROCESSES)
 
 #ifdef HAVE_SOCKETS	/* TCP connection support, if kernel can do it */
+# include <sys/types.h>  /* AJK */
 # include <sys/socket.h>
 # include <netdb.h>
 # include <netinet/in.h>
--- a/src/unexelf.c	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/unexelf.c	Mon Aug 13 10:29:42 2007 +0200
@@ -409,6 +409,13 @@
 
  */
 
+#ifndef emacs
+#define fatal(a, b, c) fprintf (stderr, a, b, c), exit (1)
+#else
+#include <config.h>
+extern void fatal (CONST char *, ...);
+#endif
+
 #include <sys/types.h>
 #include <stdio.h>
 #include <sys/stat.h>
@@ -432,13 +439,6 @@
 # endif
 #endif
 
-#ifndef emacs
-#define fatal(a, b, c) fprintf (stderr, a, b, c), exit (1)
-#else
-#include <config.h>
-extern void fatal (CONST char *, ...);
-#endif
-
 #ifndef ELF_BSS_SECTION_NAME
 #define ELF_BSS_SECTION_NAME ".bss"
 #endif
--- a/src/unexelfsgi.c	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/unexelfsgi.c	Mon Aug 13 10:29:42 2007 +0200
@@ -668,6 +668,9 @@
   old_sbss_index = find_section (".sbss", old_section_names,
 				 old_name, old_file_h, old_section_h, 1);
 
+  if (old_sbss_index != -1 && (OLD_SECTION_H (old_sbss_index).sh_type == SHT_PROGBITS))
+    old_sbss_index = -1;
+
   /* Find the old .bss section. */
 
   old_bss_index = find_section (".bss", old_section_names,
--- a/src/unexfreebsd.c	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/unexfreebsd.c	Mon Aug 13 10:29:42 2007 +0200
@@ -680,6 +680,7 @@
 {
       unsigned long current_sbrk = (unsigned long) sbrk (0);
 
+#if __FreeBSD_version < 300000 /* 2.x can work with this code */
       if (sbrk_of_0_at_unexec < current_sbrk)
 	{
 	  if (sbrk_of_0_at_unexec != 0)
@@ -687,6 +688,8 @@
 		     sbrk_of_0_at_unexec, current_sbrk);
 	}
       else
+#endif
+	if (sbrk_of_0_at_unexec > current_sbrk)
         {
           errno = 0;
           if (brk ((caddr_t) sbrk_of_0_at_unexec))
--- a/src/window.c	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/window.c	Mon Aug 13 10:29:42 2007 +0200
@@ -84,7 +84,7 @@
 
 /* Non-nil means it is the window for C-M-v to scroll
    when the minibuffer is selected.  */
-Lisp_Object Vminibuf_scroll_window;
+Lisp_Object Vminibuffer_scroll_window;
 
 /* Non-nil means this is the buffer whose window C-M-v should scroll.  */
 Lisp_Object Vother_window_scroll_buffer;
@@ -3177,7 +3177,7 @@
       if (!EQ (XWINDOW (window)->frame, Fselected_frame (Qnil)))
 	Fmake_frame_visible (WINDOW_FRAME (XWINDOW (window)));
 
-      Vminibuf_scroll_window = window;
+      Vminibuffer_scroll_window = window;
       w = XWINDOW (window);
       w->hscroll = 0;
       w->modeline_hscroll = 0;
@@ -4084,8 +4084,8 @@
   Lisp_Object selected_window = Fselected_window (Qnil);
 
   if (MINI_WINDOW_P (XWINDOW (selected_window))
-      && !NILP (Vminibuf_scroll_window))
-    window = Vminibuf_scroll_window;
+      && !NILP (Vminibuffer_scroll_window))
+    window = Vminibuffer_scroll_window;
   /* If buffer is specified, scroll that buffer.  */
   else if (!NILP (Vother_window_scroll_buffer))
     {
@@ -4122,7 +4122,7 @@
 if the current one is at the bottom.  Negative ARG means scroll downward.
 When calling from a program, supply a number as argument or nil.
 
-If in the minibuffer, `minibuf-scroll-window' if non-nil
+If in the minibuffer, `minibuffer-scroll-window' if non-nil
 specifies the window to scroll.
 If `other-window-scroll-buffer' is non-nil, scroll the window
 showing that buffer, popping the buffer up if necessary.
@@ -4572,7 +4572,7 @@
 #endif
   Lisp_Object current_window;
   Lisp_Object current_buffer;
-  Lisp_Object minibuf_scroll_window;
+  Lisp_Object minibuffer_scroll_window;
   Lisp_Object root_window;
   /* Record the values of window-min-width and window-min-height
      so that window sizes remain consistent with them.  */
@@ -4596,7 +4596,7 @@
   int i;
   ((markobj) (config->current_window));
   ((markobj) (config->current_buffer));
-  ((markobj) (config->minibuf_scroll_window));
+  ((markobj) (config->minibuffer_scroll_window));
   ((markobj) (config->root_window));
 
   for (i = 0; i < config->saved_windows_count; i++)
@@ -4731,10 +4731,10 @@
   fig2 = XWINDOW_CONFIGURATION (conf2);
 
   if (!((fig1->saved_windows_count == fig2->saved_windows_count) &&
-	EQ (fig1->current_window,        fig2->current_window) &&
-	EQ (fig1->current_buffer,        fig2->current_buffer) &&
-	EQ (fig1->root_window,           fig2->root_window) &&
-	EQ (fig1->minibuf_scroll_window, fig2->minibuf_scroll_window) &&
+	EQ (fig1->current_window,	    fig2->current_window) &&
+	EQ (fig1->current_buffer,	    fig2->current_buffer) &&
+	EQ (fig1->root_window,		    fig2->root_window) &&
+	EQ (fig1->minibuffer_scroll_window, fig2->minibuffer_scroll_window) &&
 	fig1->frame_width  == fig2->frame_width &&
 	fig1->frame_height == fig2->frame_height))
     return 0;
@@ -5155,7 +5155,7 @@
     do_switch_frame (config->selected_frame, Qnil, 0);
 #endif
 
-  Vminibuf_scroll_window = config->minibuf_scroll_window;
+  Vminibuffer_scroll_window = config->minibuffer_scroll_window;
 
   if (FRAME_LIVE_P (f))
     {
@@ -5375,7 +5375,7 @@
   config->frame_height = FRAME_HEIGHT (f);
   config->current_window = FRAME_SELECTED_WINDOW (f);
   XSETBUFFER (config->current_buffer, current_buffer);
-  config->minibuf_scroll_window = Vminibuf_scroll_window;
+  config->minibuffer_scroll_window = Vminibuffer_scroll_window;
   config->root_window = FRAME_ROOT_WINDOW (f);
   config->min_height = window_min_height;
   config->min_width = window_min_width;
@@ -5582,10 +5582,10 @@
 */ );
   Vtemp_buffer_show_function = Qnil;
 
-  DEFVAR_LISP ("minibuffer-scroll-window", &Vminibuf_scroll_window /*
+  DEFVAR_LISP ("minibuffer-scroll-window", &Vminibuffer_scroll_window /*
 Non-nil means it is the window that \\<minibuffer-local-map>\\[scroll-other-window] in minibuffer should scroll.
 */ );
-  Vminibuf_scroll_window = Qnil;
+  Vminibuffer_scroll_window = Qnil;
 
   DEFVAR_LISP ("other-window-scroll-buffer", &Vother_window_scroll_buffer /*
 If non-nil, this is a buffer and \\[scroll-other-window] should scroll its window.
--- a/version.sh	Mon Aug 13 10:28:54 2007 +0200
+++ b/version.sh	Mon Aug 13 10:29:42 2007 +0200
@@ -1,8 +1,8 @@
 #!/bin/sh
 emacs_major_version=21
 emacs_minor_version=0
-emacs_beta_version=34
-xemacs_codename="Oberhasli"
+emacs_beta_version=35
+xemacs_codename="Peacock Goat"
 infodock_major_version=3
 infodock_minor_version=90
 infodock_build_version=1