Sync up with r21-4-19.
authortomo <tomo>
Tue, 30 May 2006 10:54:32 +0000 (10:54 +0000)
committertomo <tomo>
Tue, 30 May 2006 10:54:32 +0000 (10:54 +0000)
15 files changed:
ChangeLog
configure
configure.in
etc/OXYMORONS
info/xemacs-faq.info-1 [new file with mode: 0644]
info/xemacs-faq.info-2 [new file with mode: 0644]
lisp/ChangeLog
lisp/auto-autoloads.el
netinstall/ChangeLog
src/ChangeLog
src/database.c
src/mule-ccl.c
src/objects-gtk.c
tests/automated/mule-tests.el
tests/automated/syntax-tests.el

index 6c806d1..cebfd34 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
        * configure.in: Add new option `--with-utf-2000'; define `UTF2000'
        if it is specified.
 
+2006-01-28  Vin Shelton  <acs@xemacs.org>
+
+       * XEmacs 21.4.19 is released
+
+2006-01-28  Vin Shelton  <acs@xemacs.org>
+
+       * etc/package-index.LATEST.gpg: Updated with latest package data.
+
+2005-12-18  Ilya N. Golubev  <gin@mo.msk.ru>
+
+       Merge from 21.5.
+       * configure.in: Fixed `LDAP_OPT_ON' libraries configuration
+       introduced in local 2005-03-13 change of `configure.in'.  However,
+       do not check for internal `-lber' `ber_pvt_opt_on' symbol as done
+       in upstream.  This symbol is not part of any published interface,
+       it may exist or not exist, depending on openldap version.  Cryptic
+       comment before using it in upstream 21.5 source did not state
+       precisely under which circumstances checking for it was useful,
+       which sort of user code tried to link the symbol.  So in local
+       21.5 dismissed both the code and the comment without writing a
+       cleaner equivalent.
+       * etc/NEWS: Document.
+
+2005-12-13  Vin Shelton  <acs@xemacs.org>
+
+       * etc/package-index.LATEST.gpg: Updated with latest package data.
+
+2005-12-04  Vin Shelton  <acs@xemacs.org>
+
+       * etc/OXYMORONS: insert 'Social Property' for 21.4.18.
+       * etc/NEWS: document motif deprecation and defaulting
+       --with-widgets to off.
+
+2005-12-04  Ville Skyttä  <scop@xemacs.org>
+       * etc/PACKAGES: Fix description of xetla.
+
 2005-12-03  Vin Shelton <acs@xemacs.org>
 
        * XEmacs 21.4.18 is released
 2005-03-12  Aidan Kehoe  <kehoea@parhasard.net>
 
        * configure.in (XE_COMPUTE_RUNPATH): Check XtRegisterDrawable
-       availability. 
+       availability.
 
 2005-04-11  Norbert Koch  <viteno@xemacs.org>
 
 2004-01-25  Steve Youngs  <youngs@xemacs.org>
 
        * etc/package-index.LATEST.gpg: New, replaces
-       `package-index.LATEST.pgp'. 
+       `package-index.LATEST.pgp'.
 
        * etc/package-index.LATEST.pgp: Removed, replaced with
-       `package-index.LATEST.gpg'. 
+       `package-index.LATEST.gpg'.
 
 2004-01-20  Jerry James  <james@xemacs.org>
 
 
 2003-07-03  Stephen J. Turnbull  <stephen@xemacs.org>
 
-       * etc/README.HYPERBOLE: 
+       * etc/README.HYPERBOLE:
        * etc/README.OO-BROWSER:
        Update.
 
 
 2003-03-20  Stephen J. Turnbull  <stephen@xemacs.org>
 
-       * configure.in (INTPTR_T_IN_CYGWIN_TYPES_H): 
+       * configure.in (INTPTR_T_IN_CYGWIN_TYPES_H):
        Cygwin defines these types in <cygwin/types.h>.  Detect and don't
        duplicate the definition.
 
        gcc changed the name of the `-mthreads' option to `-pthread'
        on 2000-06-12.
 
-       Be more careful when appending "_r" to various names of xlc, 
+       Be more careful when appending "_r" to various names of xlc,
        so that users can specify --compiler=/absolute/path/to/xlc
 
 2003-01-27  Martin Buchholz  <martin@xemacs.org>
 
 2003-01-27  Martin Buchholz  <martin@xemacs.org>
 
-       * configure.in (athena_3d): 
+       * configure.in (athena_3d):
        AC_CHECK_LIB must always take a function as
        argument, never a global variable.  Some linkers can tell the
        difference.  So change:
 
 2003-01-05  Rick Rankin  <rick_rankin@yahoo.com>
 
-        * configure.in: Add -lkernel32 to the list of system libraries 
+        * configure.in: Add -lkernel32 to the list of system libraries
         linked under Cygwin. Needed for IsBadReadPtr().
 
 2003-01-03  Stephen J. Turnbull  <stephen@xemacs.org>
 
 2003-01-02  Stephen J. Turnbull  <stephen@xemacs.org>
 
-       * configure.in (Generate Installation): 
-       * configure.usage (--use-union-type): 
+       * configure.in (Generate Installation):
+       * configure.usage (--use-union-type):
        * PROBLEMS (XEmacs crashes mysteriously):
        Deprecate --use-union-type for production builds.
 
 
 2002-10-31  John Paul Wallington  <jpw@shootybangbang.com>
 
-       * info/dir (File): button1 on a highlighted word doesn't 
+       * info/dir (File): button1 on a highlighted word doesn't
        follow that cross-reference.
 
 2002-11-11  Stephen J. Turnbull  <steve@tleepslib.sk.tsukuba.ac.jp>
 2002-10-23  Stephen J. Turnbull  <stephen@xemacs.org>
 
        * Makefile.in.in (lisp/auto-autoloads.el):
-       (lisp/custom-load.el): 
+       (lisp/custom-load.el):
        Use -no-autoloads for these targets; can't load 'em if they ain't.
 
 2002-10-18  Stephen J. Turnbull  <stephen@xemacs.org>
        * configure.in (Check for POSIX functions):  New section head.
        getaddrinfo is detected on HP-UX 11.XX, but appears to be
        non-functional.  Disable it.  Based on work by Darryl Okahata.
-       
+
 2002-09-27  Stephen J. Turnbull  <stephen@xemacs.org>
 
        * PROBLEMS (Running, General): Missing charset in FontSet warnings.
 
        * configure.in: Detect MacOS/X "Darwin".
        Thanks to Greg Parker <gparker@cs.stanford.edu>.
-       
+
 2002-03-30  Steve Youngs  <youngs@xemacs.org>
 
        * etc/package-index.LATEST.pgp: Update to current reality.
 2001-12-13  William M. Perry  <wmperry@gnu.org>
 
        * configure.in (GTK): add -Wno-shadow.
-       
+
 2002-02-04  Stephen J. Turnbull  <stephen@xemacs.org>
 
        * etc/BETA: Synch to 21.5.
        * configure.usage (--with-dragndrop): added GTK to list of protocols
        * configure.usage (--mail-locking): added `locking' or `mmdf'. to list
        of options
-       
-       
+
+
 2001-09-25  Didier Verna  <didier@xemacs.org>
 
        * configure.ac: new. Autoconf 2.5x guard.
 
 2001-05-04  Martin Buchholz  <martin@xemacs.org>
 
-       * configure.in (opsys): 
+       * configure.in (opsys):
        Use lower-case `uname -s` as the default value for opsys.
        The previous code effectively did the non-sensical
        opsys=$canonical because [] magically disappear in configure.in.
        * etc/OXYMORONS: Add 2 oxymorons, clean up numbering, close RFC.
 
        * etc/NEWS: Fix typo.
-       
+
        * configure.in:
        * configure:
        Fix typo, add -Wsign-compare if GCC, run autoconf.
 
 2001-03-23  Stephen J. Turnbull  <stephen@xemacs.org>
 
-       * etc/gnuserv.1 (UNIX_DOMAIN_SOCKETS: 
+       * etc/gnuserv.1 (UNIX_DOMAIN_SOCKETS:
        * PROBLEMS (Problems with running XEmacs):
        Document TMPDIR lossage in gnuserv/gnuclient.
 
index 84a4d60..b3df073 100755 (executable)
--- a/configure
+++ b/configure
@@ -4517,6 +4517,7 @@ cat > conftest.$ac_ext <<EOF
 #line 4518 "configure"
 #include "confdefs.h"
 #include <stdio.h>
+#include <sys/types.h>
 main()
 {
   FILE *f=fopen("conftestval", "w");
@@ -4525,7 +4526,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4529: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4530: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_sizeof_short=`cat conftestval`
 else
@@ -4553,12 +4554,13 @@ if test "$ac_cv_sizeof_short" = 0; then
   exit 1
 fi
 echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:4557: checking size of int" >&5
+echo "configure:4558: checking size of int" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 4560 "configure"
+#line 4561 "configure"
 #include "confdefs.h"
 #include <stdio.h>
+#include <sys/types.h>
 main()
 {
   FILE *f=fopen("conftestval", "w");
@@ -4567,7 +4569,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4571: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4573: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_sizeof_int=`cat conftestval`
 else
@@ -4589,12 +4591,13 @@ EOF
 
 
 echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:4593: checking size of long" >&5
+echo "configure:4595: checking size of long" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 4596 "configure"
+#line 4598 "configure"
 #include "confdefs.h"
 #include <stdio.h>
+#include <sys/types.h>
 main()
 {
   FILE *f=fopen("conftestval", "w");
@@ -4603,7 +4606,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4607: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4610: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_sizeof_long=`cat conftestval`
 else
@@ -4625,12 +4628,13 @@ EOF
 
 
 echo $ac_n "checking size of long long""... $ac_c" 1>&6
-echo "configure:4629: checking size of long long" >&5
+echo "configure:4632: checking size of long long" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 4632 "configure"
+#line 4635 "configure"
 #include "confdefs.h"
 #include <stdio.h>
+#include <sys/types.h>
 main()
 {
   FILE *f=fopen("conftestval", "w");
@@ -4639,7 +4643,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4643: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4647: \"$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
@@ -4661,12 +4665,13 @@ EOF
 
 
 echo $ac_n "checking size of void *""... $ac_c" 1>&6
-echo "configure:4665: checking size of void *" >&5
+echo "configure:4669: checking size of void *" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 4668 "configure"
+#line 4672 "configure"
 #include "confdefs.h"
 #include <stdio.h>
+#include <sys/types.h>
 main()
 {
   FILE *f=fopen("conftestval", "w");
@@ -4675,7 +4680,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4679: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4684: \"$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
@@ -4699,7 +4704,7 @@ EOF
 
 case $opsys in
   cygwin* ) cat > conftest.$ac_ext <<EOF
-#line 4703 "configure"
+#line 4708 "configure"
 #include "confdefs.h"
 #include <cygwin/types.h>
 EOF
@@ -4724,7 +4729,7 @@ rm -f conftest*
 esac
 
 echo $ac_n "checking for long file names""... $ac_c" 1>&6
-echo "configure:4728: checking for long file names" >&5
+echo "configure:4733: 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:
@@ -4770,10 +4775,10 @@ fi
 
 
 echo $ac_n "checking for sin""... $ac_c" 1>&6
-echo "configure:4774: checking for sin" >&5
+echo "configure:4779: checking for sin" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 4777 "configure"
+#line 4782 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char sin(); below.  */
@@ -4796,7 +4801,7 @@ sin();
 
 ; return 0; }
 EOF
-if { (eval echo configure:4800: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4805: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_sin=yes"
 else
@@ -4814,12 +4819,12 @@ else
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6
-echo "configure:4818: checking for sin in -lm" >&5
+echo "configure:4823: 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 4823 "configure"
+#line 4828 "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
@@ -4830,7 +4835,7 @@ int main() {
 sin()
 ; return 0; }
 EOF
-if { (eval echo configure:4834: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4839: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4874,14 +4879,14 @@ EOF
 
 
 cat > conftest.$ac_ext <<EOF
-#line 4878 "configure"
+#line 4883 "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:4885: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4890: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_INVERSE_HYPERBOLIC
@@ -4898,14 +4903,14 @@ fi
 rm -f conftest*
 
 echo "checking type of mail spool file locking" 1>&6
-echo "configure:4902: checking type of mail spool file locking" >&5
+echo "configure:4907: checking type of mail spool file locking" >&5
 for ac_func in lockf flock
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4906: checking for $ac_func" >&5
+echo "configure:4911: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 4909 "configure"
+#line 4914 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -4928,7 +4933,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:4932: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4937: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5010,12 +5015,12 @@ test "$mail_locking" = "locking" -a "$ac_cv_func_locking" != "yes" && \
 case "$opsys" in decosf*)
   
 echo $ac_n "checking for cma_open in -lpthreads""... $ac_c" 1>&6
-echo "configure:5014: checking for cma_open in -lpthreads" >&5
+echo "configure:5019: 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 5019 "configure"
+#line 5024 "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
@@ -5026,7 +5031,7 @@ int main() {
 cma_open()
 ; return 0; }
 EOF
-if { (eval echo configure:5030: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5035: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5063,7 +5068,7 @@ esac
 
 
 echo $ac_n "checking whether the -xildoff compiler flag is required""... $ac_c" 1>&6
-echo "configure:5067: checking whether the -xildoff compiler flag is required" >&5
+echo "configure:5072: 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;
@@ -5075,7 +5080,7 @@ fi
 if test "$opsys" = "sol2"; then
   if test "$os_release" -ge 506; then
     echo $ac_n "checking for \"-z ignore\" linker flag""... $ac_c" 1>&6
-echo "configure:5079: checking for \"-z ignore\" linker flag" >&5
+echo "configure:5084: 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 ;;
@@ -5086,7 +5091,7 @@ fi
 
 
 echo "checking "for specified window system"" 1>&6
-echo "configure:5090: checking "for specified window system"" >&5
+echo "configure:5095: checking "for specified window system"" >&5
 
 
 GNOME_CONFIG=no
@@ -5094,7 +5099,7 @@ GTK_CONFIG=no
 
 if test "$with_gnome" != "no"; then
    echo $ac_n "checking for GNOME configuration script""... $ac_c" 1>&6
-echo "configure:5098: checking for GNOME configuration script" >&5
+echo "configure:5103: checking for GNOME configuration script" >&5
    for possible in gnome-config
    do
       possible_version=`${possible} --version 2> /dev/null`
@@ -5125,7 +5130,7 @@ fi
 
 if test "$with_gtk" != "no";then
    echo $ac_n "checking for GTK configuration script""... $ac_c" 1>&6
-echo "configure:5129: checking for GTK configuration script" >&5
+echo "configure:5134: checking for GTK configuration script" >&5
    for possible in gtk12-config gtk14-config gtk-config
    do
       possible_version=`${possible} --version 2> /dev/null`
@@ -5147,18 +5152,18 @@ fi
 
 if test "${GTK_CONFIG}" != "no"; then
       echo $ac_n "checking gtk version""... $ac_c" 1>&6
-echo "configure:5151: checking gtk version" >&5
+echo "configure:5156: checking gtk version" >&5
       GTK_VERSION=`${GTK_CONFIG} --version`
       echo "$ac_t""${GTK_VERSION}" 1>&6
 
       echo $ac_n "checking gtk libs""... $ac_c" 1>&6
-echo "configure:5156: checking gtk libs" >&5
+echo "configure:5161: checking gtk libs" >&5
       GTK_LIBS=`${GTK_CONFIG} --libs`
       libs_gtk="$libs_gtk ${GTK_LIBS}" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"${GTK_LIBS}\" to \$libs_gtk"; fi
       echo "$ac_t""${GTK_LIBS}" 1>&6
 
       echo $ac_n "checking gtk cflags""... $ac_c" 1>&6
-echo "configure:5162: checking gtk cflags" >&5
+echo "configure:5167: checking gtk cflags" >&5
       GTK_CFLAGS=`${GTK_CONFIG} --cflags`
       if test "$GCC" = "yes"; then
        GTK_CFLAGS="${GTK_CFLAGS} -Wno-shadow"
@@ -5168,19 +5173,19 @@ echo "configure:5162: checking gtk cflags" >&5
 
       
 echo $ac_n "checking for main in -lgdk_imlib""... $ac_c" 1>&6
-echo "configure:5172: checking for main in -lgdk_imlib" >&5
+echo "configure:5177: checking for main in -lgdk_imlib" >&5
 ac_lib_var=`echo gdk_imlib'_'main | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lgdk_imlib "
 cat > conftest.$ac_ext <<EOF
-#line 5177 "configure"
+#line 5182 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:5184: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5189: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5202,12 +5207,12 @@ fi
 
       
 echo $ac_n "checking for Imlib_init in -lImlib""... $ac_c" 1>&6
-echo "configure:5206: checking for Imlib_init in -lImlib" >&5
+echo "configure:5211: checking for Imlib_init in -lImlib" >&5
 ac_lib_var=`echo Imlib'_'Imlib_init | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lImlib "
 cat > conftest.$ac_ext <<EOF
-#line 5211 "configure"
+#line 5216 "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
@@ -5218,7 +5223,7 @@ int main() {
 Imlib_init()
 ; return 0; }
 EOF
-if { (eval echo configure:5222: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5227: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5241,10 +5246,10 @@ fi
       for ac_func in gdk_imlib_init
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5245: checking for $ac_func" >&5
+echo "configure:5250: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 5248 "configure"
+#line 5253 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5267,7 +5272,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5271: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5276: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5346,15 +5351,15 @@ EOF
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5350: checking for $ac_hdr" >&5
+echo "configure:5355: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 5353 "configure"
+#line 5358 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5358: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5363: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -5385,19 +5390,19 @@ done
 
       
 echo $ac_n "checking for main in -lxml""... $ac_c" 1>&6
-echo "configure:5389: checking for main in -lxml" >&5
+echo "configure:5394: checking for main in -lxml" >&5
 ac_lib_var=`echo xml'_'main | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lxml "
 cat > conftest.$ac_ext <<EOF
-#line 5394 "configure"
+#line 5399 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:5401: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5406: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5419,19 +5424,19 @@ fi
 
       
 echo $ac_n "checking for main in -lglade""... $ac_c" 1>&6
-echo "configure:5423: checking for main in -lglade" >&5
+echo "configure:5428: checking for main in -lglade" >&5
 ac_lib_var=`echo glade'_'main | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lglade "
 cat > conftest.$ac_ext <<EOF
-#line 5428 "configure"
+#line 5433 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:5435: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5440: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5453,19 +5458,19 @@ fi
 
       
 echo $ac_n "checking for main in -lglade-gnome""... $ac_c" 1>&6
-echo "configure:5457: checking for main in -lglade-gnome" >&5
+echo "configure:5462: checking for main in -lglade-gnome" >&5
 ac_lib_var=`echo glade-gnome'_'main | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lglade-gnome "
 cat > conftest.$ac_ext <<EOF
-#line 5462 "configure"
+#line 5467 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:5469: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5474: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5486,7 +5491,7 @@ fi
 
 
       cat > conftest.$ac_ext <<EOF
-#line 5490 "configure"
+#line 5495 "configure"
 #include "confdefs.h"
 #include <glade/glade-xml.h>
 EOF
@@ -5545,7 +5550,7 @@ if test "$with_x11" != "no"; then
 # 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:5549: checking for X" >&5
+echo "configure:5554: checking for X" >&5
 
 # Check whether --with-x or --without-x was given.
 if test "${with_x+set}" = set; then
@@ -5605,12 +5610,12 @@ if test "$ac_x_includes" = NO; then
 
   # First, try using that file with no special directory specified.
 cat > conftest.$ac_ext <<EOF
-#line 5609 "configure"
+#line 5614 "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:5614: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5619: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -5679,14 +5684,14 @@ if test "$ac_x_libraries" = NO; then
   ac_save_LIBS="$LIBS"
   LIBS="-l$x_direct_test_library $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5683 "configure"
+#line 5688 "configure"
 #include "confdefs.h"
 
 int main() {
 ${x_direct_test_function}()
 ; return 0; }
 EOF
-if { (eval echo configure:5690: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5695: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   LIBS="$ac_save_LIBS"
 # We can link X programs with no special library path.
@@ -5795,17 +5800,17 @@ else
     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:5799: checking whether -R must be followed by a space" >&5
+echo "configure:5804: 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 5802 "configure"
+#line 5807 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:5809: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5814: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_nospace=yes
 else
@@ -5821,14 +5826,14 @@ rm -f conftest*
       else
        LIBS="$ac_xsave_LIBS -R $x_libraries"
        cat > conftest.$ac_ext <<EOF
-#line 5825 "configure"
+#line 5830 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:5832: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5837: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_space=yes
 else
@@ -5864,12 +5869,12 @@ ac_cv_lib_dnet_dnet_ntoa=no
 else
 
 echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6
-echo "configure:5868: checking for dnet_ntoa in -ldnet" >&5
+echo "configure:5873: 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 5873 "configure"
+#line 5878 "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
@@ -5880,7 +5885,7 @@ int main() {
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:5884: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5889: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5904,12 +5909,12 @@ fi
     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:5908: checking for dnet_ntoa in -ldnet_stub" >&5
+echo "configure:5913: 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 5913 "configure"
+#line 5918 "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
@@ -5920,7 +5925,7 @@ int main() {
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:5924: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5929: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5949,10 +5954,10 @@ fi
     # 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:5953: checking for gethostbyname" >&5
+echo "configure:5958: checking for gethostbyname" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 5956 "configure"
+#line 5961 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char gethostbyname(); below.  */
@@ -5975,7 +5980,7 @@ gethostbyname();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5979: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5984: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_gethostbyname=yes"
 else
@@ -5996,12 +6001,12 @@ fi
     if test $ac_cv_func_gethostbyname = no; then
       
 echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:6000: checking for gethostbyname in -lnsl" >&5
+echo "configure:6005: 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 6005 "configure"
+#line 6010 "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
@@ -6012,7 +6017,7 @@ int main() {
 gethostbyname()
 ; return 0; }
 EOF
-if { (eval echo configure:6016: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6021: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6042,10 +6047,10 @@ fi
     # -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:6046: checking for connect" >&5
+echo "configure:6051: checking for connect" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 6049 "configure"
+#line 6054 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char connect(); below.  */
@@ -6068,7 +6073,7 @@ connect();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6072: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6077: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_connect=yes"
 else
@@ -6091,12 +6096,12 @@ fi
 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:6095: checking "$xe_msg_checking"" >&5
+echo "configure:6100: 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 6100 "configure"
+#line 6105 "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
@@ -6107,7 +6112,7 @@ int main() {
 connect()
 ; return 0; }
 EOF
-if { (eval echo configure:6111: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6116: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6131,10 +6136,10 @@ fi
 
     # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
     echo $ac_n "checking for remove""... $ac_c" 1>&6
-echo "configure:6135: checking for remove" >&5
+echo "configure:6140: checking for remove" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 6138 "configure"
+#line 6143 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char remove(); below.  */
@@ -6157,7 +6162,7 @@ remove();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6161: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6166: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_remove=yes"
 else
@@ -6178,12 +6183,12 @@ fi
     if test $ac_cv_func_remove = no; then
       
 echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
-echo "configure:6182: checking for remove in -lposix" >&5
+echo "configure:6187: 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 6187 "configure"
+#line 6192 "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
@@ -6194,7 +6199,7 @@ int main() {
 remove()
 ; return 0; }
 EOF
-if { (eval echo configure:6198: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6203: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6218,10 +6223,10 @@ fi
 
     # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
     echo $ac_n "checking for shmat""... $ac_c" 1>&6
-echo "configure:6222: checking for shmat" >&5
+echo "configure:6227: checking for shmat" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 6225 "configure"
+#line 6230 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char shmat(); below.  */
@@ -6244,7 +6249,7 @@ shmat();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6248: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6253: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_shmat=yes"
 else
@@ -6265,12 +6270,12 @@ fi
     if test $ac_cv_func_shmat = no; then
       
 echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
-echo "configure:6269: checking for shmat in -lipc" >&5
+echo "configure:6274: 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 6274 "configure"
+#line 6279 "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
@@ -6281,7 +6286,7 @@ int main() {
 shmat()
 ; return 0; }
 EOF
-if { (eval echo configure:6285: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6290: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6317,12 +6322,12 @@ fi
 xe_msg_checking="for IceConnectionNumber in -lICE"
 test -n "$X_EXTRA_LIBS" && xe_msg_checking="$xe_msg_checking using extra libs $X_EXTRA_LIBS"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:6321: checking "$xe_msg_checking"" >&5
+echo "configure:6326: checking "$xe_msg_checking"" >&5
 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lICE $X_EXTRA_LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6326 "configure"
+#line 6331 "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
@@ -6333,7 +6338,7 @@ int main() {
 IceConnectionNumber()
 ; return 0; }
 EOF
-if { (eval echo configure:6337: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6342: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6379,15 +6384,15 @@ EOF
 
     ac_safe=`echo "Xm/Xm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for Xm/Xm.h""... $ac_c" 1>&6
-echo "configure:6383: checking for Xm/Xm.h" >&5
+echo "configure:6388: checking for Xm/Xm.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 6386 "configure"
+#line 6391 "configure"
 #include "confdefs.h"
 #include <Xm/Xm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6391: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6396: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6404,12 +6409,12 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   
 echo $ac_n "checking for XmStringFree in -lXm""... $ac_c" 1>&6
-echo "configure:6408: checking for XmStringFree in -lXm" >&5
+echo "configure:6413: 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 6413 "configure"
+#line 6418 "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
@@ -6420,7 +6425,7 @@ int main() {
 XmStringFree()
 ; return 0; }
 EOF
-if { (eval echo configure:6424: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6429: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6572,7 +6577,7 @@ EOF
 
 
     echo "checking for X defines extracted by xmkmf" 1>&6
-echo "configure:6576: checking for X defines extracted by xmkmf" >&5
+echo "configure:6581: checking for X defines extracted by xmkmf" >&5
   rm -fr conftestdir
   if mkdir conftestdir; then
     cd conftestdir
@@ -6621,15 +6626,15 @@ EOF
 
     ac_safe=`echo "X11/Intrinsic.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Intrinsic.h""... $ac_c" 1>&6
-echo "configure:6625: checking for X11/Intrinsic.h" >&5
+echo "configure:6630: checking for X11/Intrinsic.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 6628 "configure"
+#line 6633 "configure"
 #include "confdefs.h"
 #include <X11/Intrinsic.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6633: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6638: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6653,12 +6658,12 @@ fi
 
       
 echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6
-echo "configure:6657: checking for XOpenDisplay in -lX11" >&5
+echo "configure:6662: 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 6662 "configure"
+#line 6667 "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
@@ -6669,7 +6674,7 @@ int main() {
 XOpenDisplay()
 ; return 0; }
 EOF
-if { (eval echo configure:6673: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6678: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6694,12 +6699,12 @@ fi
 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:6698: checking "$xe_msg_checking"" >&5
+echo "configure:6703: 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 6703 "configure"
+#line 6708 "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
@@ -6710,7 +6715,7 @@ int main() {
 XGetFontProperty()
 ; return 0; }
 EOF
-if { (eval echo configure:6714: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6719: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6737,12 +6742,12 @@ fi
 
     
 echo $ac_n "checking for XShapeSelectInput in -lXext""... $ac_c" 1>&6
-echo "configure:6741: checking for XShapeSelectInput in -lXext" >&5
+echo "configure:6746: 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 6746 "configure"
+#line 6751 "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
@@ -6753,7 +6758,7 @@ int main() {
 XShapeSelectInput()
 ; return 0; }
 EOF
-if { (eval echo configure:6757: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6762: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6776,12 +6781,12 @@ fi
 
     
 echo $ac_n "checking for XtOpenDisplay in -lXt""... $ac_c" 1>&6
-echo "configure:6780: checking for XtOpenDisplay in -lXt" >&5
+echo "configure:6785: 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 6785 "configure"
+#line 6790 "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
@@ -6792,7 +6797,7 @@ int main() {
 XtOpenDisplay()
 ; return 0; }
 EOF
-if { (eval echo configure:6796: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6801: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6815,14 +6820,14 @@ fi
 
 
   echo $ac_n "checking the version of X11 being used""... $ac_c" 1>&6
-echo "configure:6819: checking the version of X11 being used" >&5
+echo "configure:6824: checking the version of X11 being used" >&5
   cat > conftest.$ac_ext <<EOF
-#line 6821 "configure"
+#line 6826 "configure"
 #include "confdefs.h"
 #include <X11/Intrinsic.h>
     int main(int c, char *v[]) { return c>1 ? XlibSpecificationRelease : 0; }
 EOF
-if { (eval echo configure:6826: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:6831: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ./conftest foobar; x11_release=$?
 else
@@ -6853,10 +6858,10 @@ EOF
   for ac_func in XConvertCase XtRegisterDrawable
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6857: checking for $ac_func" >&5
+echo "configure:6862: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 6860 "configure"
+#line 6865 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -6879,7 +6884,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6883: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6888: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -6911,15 +6916,15 @@ done
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:6915: checking for $ac_hdr" >&5
+echo "configure:6920: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 6918 "configure"
+#line 6923 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6923: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6928: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6952,10 +6957,10 @@ done
     for ac_func in XRegisterIMInstantiateCallback
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6956: checking for $ac_func" >&5
+echo "configure:6961: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 6959 "configure"
+#line 6964 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -6978,7 +6983,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6982: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6987: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -7006,9 +7011,9 @@ fi
 done
 
   echo $ac_n "checking for standard XRegisterIMInstantiateCallback prototype""... $ac_c" 1>&6
-echo "configure:7010: checking for standard XRegisterIMInstantiateCallback prototype" >&5
+echo "configure:7015: checking for standard XRegisterIMInstantiateCallback prototype" >&5
   cat > conftest.$ac_ext <<EOF
-#line 7012 "configure"
+#line 7017 "configure"
 #include "confdefs.h"
 
 #define NeedFunctionPrototypes 1
@@ -7020,7 +7025,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:7024: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7029: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -7041,12 +7046,12 @@ rm -f conftest*
 
     test -z "$with_xmu" && { 
 echo $ac_n "checking for XmuReadBitmapDataFromFile in -lXmu""... $ac_c" 1>&6
-echo "configure:7045: checking for XmuReadBitmapDataFromFile in -lXmu" >&5
+echo "configure:7050: 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 7050 "configure"
+#line 7055 "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
@@ -7057,7 +7062,7 @@ int main() {
 XmuReadBitmapDataFromFile()
 ; return 0; }
 EOF
-if { (eval echo configure:7061: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7066: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7096,19 +7101,19 @@ EOF
 
       
 echo $ac_n "checking for main in -lXbsd""... $ac_c" 1>&6
-echo "configure:7100: checking for main in -lXbsd" >&5
+echo "configure:7105: 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 7105 "configure"
+#line 7110 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:7112: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7117: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7132,7 +7137,7 @@ fi
     if test "$unexec" = "unexaix.o" -a "$x11_release" = "6"; then
         if test "$GCC" = "yes"; then
                   echo $ac_n "checking for name of AIX gcc threads option""... $ac_c" 1>&6
-echo "configure:7136: checking for name of AIX gcc threads option" >&5
+echo "configure:7141: checking for name of AIX gcc threads option" >&5
       case `$CC -v --help 2>&1` in
         *-mthreads*) aix_threads=-mthreads ;;
                   *) aix_threads=-pthread  ;;
@@ -7146,12 +7151,13 @@ echo "configure:7136: checking for name of AIX gcc threads option" >&5
          xe_save_CC="$CC"
          CC="${CC}_r"
          echo $ac_n "checking size of short""... $ac_c" 1>&6
-echo "configure:7150: checking size of short" >&5
+echo "configure:7155: checking size of short" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 7153 "configure"
+#line 7158 "configure"
 #include "confdefs.h"
 #include <stdio.h>
+#include <sys/types.h>
 main()
 {
   FILE *f=fopen("conftestval", "w");
@@ -7160,7 +7166,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:7164: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:7170: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_sizeof_short=`cat conftestval`
 else
@@ -7189,22 +7195,22 @@ EOF
 fi 
 if test "$with_msw" != "no"; then
   echo "checking for MS-Windows" 1>&6
-echo "configure:7193: checking for MS-Windows" >&5
+echo "configure:7199: checking for MS-Windows" >&5
   
 echo $ac_n "checking for main in -lgdi32""... $ac_c" 1>&6
-echo "configure:7196: checking for main in -lgdi32" >&5
+echo "configure:7202: 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 7201 "configure"
+#line 7207 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:7208: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7214: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7277,12 +7283,12 @@ EOF
  fi
     fi
         cat > conftest.$ac_ext <<EOF
-#line 7281 "configure"
+#line 7287 "configure"
 #include "confdefs.h"
 #include <fcntl.h>
     int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; }
 EOF
-if { (eval echo configure:7286: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:7292: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   need_event_unixoid=yes; { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_MSG_SELECT
@@ -7346,15 +7352,15 @@ fi
 if test "$with_x11" = "yes"; then
   ac_safe=`echo "X11/extensions/shape.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/shape.h""... $ac_c" 1>&6
-echo "configure:7350: checking for X11/extensions/shape.h" >&5
+echo "configure:7356: checking for X11/extensions/shape.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 7353 "configure"
+#line 7359 "configure"
 #include "confdefs.h"
 #include <X11/extensions/shape.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7358: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7364: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7406,7 +7412,7 @@ case "$x_libraries" in *X11R4* )
 esac
 
 echo "checking for WM_COMMAND option" 1>&6
-echo "configure:7410: checking for WM_COMMAND option" >&5;
+echo "configure:7416: checking for WM_COMMAND option" >&5;
 if test "$with_wmcommand" != "no"; then
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_WMCOMMAND
@@ -7421,15 +7427,15 @@ fi
 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:7425: checking for X11/Xauth.h" >&5
+echo "configure:7431: checking for X11/Xauth.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 7428 "configure"
+#line 7434 "configure"
 #include "confdefs.h"
 #include <X11/Xauth.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7433: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7439: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7452,12 +7458,12 @@ fi
  }
 test -z "$with_xauth" && { 
 echo $ac_n "checking for XauGetAuthByAddr in -lXau""... $ac_c" 1>&6
-echo "configure:7456: checking for XauGetAuthByAddr in -lXau" >&5
+echo "configure:7462: 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 7461 "configure"
+#line 7467 "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
@@ -7468,7 +7474,7 @@ int main() {
 XauGetAuthByAddr()
 ; return 0; }
 EOF
-if { (eval echo configure:7472: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7478: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7513,15 +7519,15 @@ 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:7517: checking for ${dir}tt_c.h" >&5
+echo "configure:7523: checking for ${dir}tt_c.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 7520 "configure"
+#line 7526 "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:7525: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7531: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7557,12 +7563,12 @@ if test "$with_tooltalk" != "no" ; then
 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:7561: checking "$xe_msg_checking"" >&5
+echo "configure:7567: 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 7566 "configure"
+#line 7572 "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
@@ -7573,7 +7579,7 @@ int main() {
 tt_message_create()
 ; return 0; }
 EOF
-if { (eval echo configure:7577: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7583: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7630,15 +7636,15 @@ fi
 
 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:7634: checking for Dt/Dt.h" >&5
+echo "configure:7640: checking for Dt/Dt.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 7637 "configure"
+#line 7643 "configure"
 #include "confdefs.h"
 #include <Dt/Dt.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7642: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7648: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7661,12 +7667,12 @@ fi
  }
 test -z "$with_cde" && { 
 echo $ac_n "checking for DtDndDragStart in -lDtSvc""... $ac_c" 1>&6
-echo "configure:7665: checking for DtDndDragStart in -lDtSvc" >&5
+echo "configure:7671: 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 7670 "configure"
+#line 7676 "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
@@ -7677,7 +7683,7 @@ int main() {
 DtDndDragStart()
 ; return 0; }
 EOF
-if { (eval echo configure:7681: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7687: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7750,7 +7756,7 @@ fi
 
 if test "$with_dragndrop" != "no" ; then
   echo $ac_n "checking if drag and drop API is needed""... $ac_c" 1>&6
-echo "configure:7754: checking if drag and drop API is needed" >&5
+echo "configure:7760: checking if drag and drop API is needed" >&5
   if test -n "$dragndrop_proto" ; then
     with_dragndrop=yes
     echo "$ac_t""yes (${dragndrop_proto} )" 1>&6
@@ -7770,18 +7776,18 @@ EOF
 fi
 
 echo "checking for LDAP" 1>&6
-echo "configure:7774: checking for LDAP" >&5
+echo "configure:7780: 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:7777: checking for ldap.h" >&5
+echo "configure:7783: checking for ldap.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 7780 "configure"
+#line 7786 "configure"
 #include "confdefs.h"
 #include <ldap.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7785: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7791: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7804,15 +7810,15 @@ fi
  }
 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:7808: checking for lber.h" >&5
+echo "configure:7814: checking for lber.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 7811 "configure"
+#line 7817 "configure"
 #include "confdefs.h"
 #include <lber.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7816: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7822: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7837,10 +7843,10 @@ if test no != "$with_ldap";then
   if test . != "${ldap_libs+.}";then
     ldap_libs=
     echo $ac_n "checking for ldap_open""... $ac_c" 1>&6
-echo "configure:7841: checking for ldap_open" >&5
+echo "configure:7847: checking for ldap_open" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 7844 "configure"
+#line 7850 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char ldap_open(); below.  */
@@ -7863,7 +7869,7 @@ ldap_open();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7867: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7873: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_ldap_open=yes"
 else
@@ -7883,12 +7889,12 @@ else
   echo "$ac_t""no" 1>&6
       
 echo $ac_n "checking for ldap_open in -lldap""... $ac_c" 1>&6
-echo "configure:7887: checking for ldap_open in -lldap" >&5
+echo "configure:7893: checking for ldap_open in -lldap" >&5
 ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lldap "
 cat > conftest.$ac_ext <<EOF
-#line 7892 "configure"
+#line 7898 "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
@@ -7899,7 +7905,7 @@ int main() {
 ldap_open()
 ; return 0; }
 EOF
-if { (eval echo configure:7903: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7909: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7921,12 +7927,12 @@ ldap_needs_lber=yes ldap_other_libs=-llber
 xe_msg_checking="for ldap_open in -lldap"
 test -n "$ldap_other_libs" && xe_msg_checking="$xe_msg_checking using extra libs $ldap_other_libs"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:7925: checking "$xe_msg_checking"" >&5
+echo "configure:7931: checking "$xe_msg_checking"" >&5
 ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lldap $ldap_other_libs"
 cat > conftest.$ac_ext <<EOF
-#line 7930 "configure"
+#line 7936 "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
@@ -7937,7 +7943,7 @@ int main() {
 ldap_open()
 ; return 0; }
 EOF
-if { (eval echo configure:7941: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7947: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7959,12 +7965,12 @@ ldap_needs_krb=yes ldap_other_libs="$ldap_other_libs -lkrb"
 xe_msg_checking="for ldap_open in -lldap"
 test -n "$ldap_other_libs" && xe_msg_checking="$xe_msg_checking using extra libs $ldap_other_libs"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:7963: checking "$xe_msg_checking"" >&5
+echo "configure:7969: checking "$xe_msg_checking"" >&5
 ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lldap $ldap_other_libs"
 cat > conftest.$ac_ext <<EOF
-#line 7968 "configure"
+#line 7974 "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
@@ -7975,7 +7981,7 @@ int main() {
 ldap_open()
 ; return 0; }
 EOF
-if { (eval echo configure:7979: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7985: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7997,12 +8003,12 @@ ldap_needs_des=yes ldap_other_libs="$ldap_other_libs -ldes"
 xe_msg_checking="for ldap_open in -lldap"
 test -n "$ldap_other_libs" && xe_msg_checking="$xe_msg_checking using extra libs $ldap_other_libs"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:8001: checking "$xe_msg_checking"" >&5
+echo "configure:8007: checking "$xe_msg_checking"" >&5
 ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lldap $ldap_other_libs"
 cat > conftest.$ac_ext <<EOF
-#line 8006 "configure"
+#line 8012 "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
@@ -8013,7 +8019,7 @@ int main() {
 ldap_open()
 ; return 0; }
 EOF
-if { (eval echo configure:8017: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8023: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8043,6 +8049,102 @@ fi
 fi
 
 
+      if test yes = "$with_ldap" -a yes != "$ldap_needs_lber";then
+       echo $ac_n "checking for LDAP_OPT_ON definition""... $ac_c" 1>&6
+echo "configure:8055: checking for LDAP_OPT_ON definition" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8058 "configure"
+#include "confdefs.h"
+#include <lber.h>
+#include <ldap.h>
+#ifdef LDAP_OPT_ON
+/* Relying on const defined by ac_c_const (upper case). */
+const void *const v = LDAP_OPT_ON;
+#else /* !defined (LDAP_OPT_ON) */
+choke me
+#endif /* !defined (LDAP_OPT_ON) */
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:8072: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  xe_cv_have_LDAP_OPT_ON=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  xe_cv_have_LDAP_OPT_ON=no
+fi
+rm -f conftest*
+
+echo "$ac_t""$xe_cv_have_LDAP_OPT_ON" 1>&6
+       if test yes = "$xe_cv_have_LDAP_OPT_ON";then
+         echo $ac_n "checking LDAP_OPT_ON linking""... $ac_c" 1>&6
+echo "configure:8086: checking LDAP_OPT_ON linking" >&5
+
+xe_save_LIBS="$LIBS"
+           LIBS="-lldap $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 8091 "configure"
+#include "confdefs.h"
+#include <lber.h>
+#include <ldap.h>
+const void *const v = LDAP_OPT_ON;
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:8100: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  xe_cv_LDAP_OPT_ON_links=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  xe_cv_LDAP_OPT_ON_links=no
+fi
+rm -f conftest*
+           LIBS="$xe_save_LIBS"
+
+echo "$ac_t""$xe_cv_LDAP_OPT_ON_links" 1>&6
+         if test yes != "$xe_cv_LDAP_OPT_ON_links";then
+           ldap_needs_lber=yes ldap_other_libs=-llber
+           echo $ac_n "checking LDAP_OPT_ON linking with -llber""... $ac_c" 1>&6
+echo "configure:8116: checking LDAP_OPT_ON linking with -llber" >&5
+
+xe_save_LIBS="$LIBS"
+             LIBS="-lldap $ldap_other_libs $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 8121 "configure"
+#include "confdefs.h"
+#include <lber.h>
+#include <ldap.h>
+const void *const v = LDAP_OPT_ON;
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:8130: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  xe_cv_LDAP_OPT_ON_links_w_lber=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  xe_cv_LDAP_OPT_ON_links_w_lber=no
+fi
+rm -f conftest*
+             LIBS="$xe_save_LIBS"
+
+echo "$ac_t""$xe_cv_LDAP_OPT_ON_links_w_lber" 1>&6
+           if test yes != "$xe_cv_LDAP_OPT_ON_links_w_lber";then
+             with_ldap=no
+           fi
+         fi
+       fi
+      fi
       if test yes = "$with_ldap";then
        if test yes = "$ldap_needs_des";then
          ldap_libs="-ldes $ldap_libs" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-ldes\" to \$ldap_libs"; fi
@@ -8060,10 +8162,10 @@ fi
   else
     save_LIBS="$LIBS" LIBS="$ldap_libs $LIBS"
     echo $ac_n "checking for ldap_open""... $ac_c" 1>&6
-echo "configure:8064: checking for ldap_open" >&5
+echo "configure:8166: checking for ldap_open" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 8067 "configure"
+#line 8169 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char ldap_open(); below.  */
@@ -8086,7 +8188,7 @@ ldap_open();
 
 ; return 0; }
 EOF
-if { (eval echo configure:8090: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8192: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_ldap_open=yes"
 else
@@ -8126,10 +8228,10 @@ EOF
   for ac_func in ldap_set_option ldap_get_lderrno ldap_result2error ldap_parse_result
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8130: checking for $ac_func" >&5
+echo "configure:8232: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 8133 "configure"
+#line 8235 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -8152,7 +8254,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:8156: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8258: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -8183,20 +8285,20 @@ fi
 
 if test "$with_postgresql" != "no"; then
   echo "checking for PostgreSQL" 1>&6
-echo "configure:8187: checking for PostgreSQL" >&5
+echo "configure:8289: checking for PostgreSQL" >&5
 
   for header_dir in "" "pgsql/" "postgresql/"; do
     ac_safe=`echo "${header_dir}libpq-fe.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ${header_dir}libpq-fe.h""... $ac_c" 1>&6
-echo "configure:8192: checking for ${header_dir}libpq-fe.h" >&5
+echo "configure:8294: checking for ${header_dir}libpq-fe.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 8195 "configure"
+#line 8297 "configure"
 #include "confdefs.h"
 #include <${header_dir}libpq-fe.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8200: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8302: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8220,12 +8322,12 @@ fi
 
   test -n "$libpq_fe_h_file" && { 
 echo $ac_n "checking for PQconnectdb in -lpq""... $ac_c" 1>&6
-echo "configure:8224: checking for PQconnectdb in -lpq" >&5
+echo "configure:8326: checking for PQconnectdb in -lpq" >&5
 ac_lib_var=`echo pq'_'PQconnectdb | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lpq "
 cat > conftest.$ac_ext <<EOF
-#line 8229 "configure"
+#line 8331 "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
@@ -8236,7 +8338,7 @@ int main() {
 PQconnectdb()
 ; return 0; }
 EOF
-if { (eval echo configure:8240: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8342: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8269,12 +8371,12 @@ EOF
 
     
 echo $ac_n "checking for PQconnectStart in -lpq""... $ac_c" 1>&6
-echo "configure:8273: checking for PQconnectStart in -lpq" >&5
+echo "configure:8375: checking for PQconnectStart in -lpq" >&5
 ac_lib_var=`echo pq'_'PQconnectStart | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lpq "
 cat > conftest.$ac_ext <<EOF
-#line 8278 "configure"
+#line 8380 "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
@@ -8285,7 +8387,7 @@ int main() {
 PQconnectStart()
 ; return 0; }
 EOF
-if { (eval echo configure:8289: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8391: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8333,7 +8435,7 @@ fi
 
 if test "$window_system" != "none"; then
   echo "checking for graphics libraries" 1>&6
-echo "configure:8337: checking for graphics libraries" >&5
+echo "configure:8439: checking for graphics libraries" >&5
 
       libpath_xpm=
   incpath_xpm=
@@ -8359,10 +8461,10 @@ echo "configure:8337: checking for graphics libraries" >&5
     CFLAGS=""$incpath_xpm" $CFLAGS" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \""$incpath_xpm"\" to \$CFLAGS"; fi
     LDFLAGS=""$libpath_xpm" $LDFLAGS" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \""$libpath_xpm"\" to \$LDFLAGS"; fi
     echo $ac_n "checking for Xpm - no older than 3.4f""... $ac_c" 1>&6
-echo "configure:8363: checking for Xpm - no older than 3.4f" >&5
+echo "configure:8465: checking for Xpm - no older than 3.4f" >&5
     xe_check_libs=-lXpm
     cat > conftest.$ac_ext <<EOF
-#line 8366 "configure"
+#line 8468 "configure"
 #include "confdefs.h"
 #define XPM_NUMBERS
 #include <X11/xpm.h>
@@ -8371,7 +8473,7 @@ echo "configure:8363: checking for Xpm - no older than 3.4f" >&5
       XpmIncludeVersion != XpmLibraryVersion() ? 1 :
       XpmIncludeVersion < 30406 ? 2 : 0 ;}
 EOF
-if { (eval echo configure:8375: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:8477: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ./conftest dummy_arg; xpm_status=$?;
       if test "$xpm_status" = "0"; then
@@ -8415,17 +8517,17 @@ EOF
     libs_x="-lXpm $libs_x" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-lXpm\" to \$libs_x"; fi
     CFLAGS=""$incpath_xpm" $CFLAGS" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \""$incpath_xpm"\" to \$CFLAGS"; fi
     echo $ac_n "checking for \"FOR_MSW\" xpm""... $ac_c" 1>&6
-echo "configure:8419: checking for \"FOR_MSW\" xpm" >&5
+echo "configure:8521: checking for \"FOR_MSW\" xpm" >&5
     xe_check_libs=-lXpm
     cat > conftest.$ac_ext <<EOF
-#line 8422 "configure"
+#line 8524 "configure"
 #include "confdefs.h"
 
 int main() {
 XpmCreatePixmapFromData()
 ; return 0; }
 EOF
-if { (eval echo configure:8429: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8531: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   xpm_for_msw=no
 else
@@ -8451,15 +8553,15 @@ EOF
 
     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:8455: checking for compface.h" >&5
+echo "configure:8557: checking for compface.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 8458 "configure"
+#line 8560 "configure"
 #include "confdefs.h"
 #include <compface.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8463: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8565: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8482,12 +8584,12 @@ fi
  }
   test -z "$with_xface" && { 
 echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6
-echo "configure:8486: checking for UnGenFace in -lcompface" >&5
+echo "configure:8588: 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 8491 "configure"
+#line 8593 "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
@@ -8498,7 +8600,7 @@ int main() {
 UnGenFace()
 ; return 0; }
 EOF
-if { (eval echo configure:8502: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8604: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8550,12 +8652,12 @@ EOF
       if test "$with_png $with_tiff" != "no no"; then
     
 echo $ac_n "checking for inflate in -lc""... $ac_c" 1>&6
-echo "configure:8554: checking for inflate in -lc" >&5
+echo "configure:8656: 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 8559 "configure"
+#line 8661 "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
@@ -8566,7 +8668,7 @@ int main() {
 inflate()
 ; return 0; }
 EOF
-if { (eval echo configure:8570: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8672: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8585,12 +8687,12 @@ else
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for inflate in -lz""... $ac_c" 1>&6
-echo "configure:8589: checking for inflate in -lz" >&5
+echo "configure:8691: 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 8594 "configure"
+#line 8696 "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
@@ -8601,7 +8703,7 @@ int main() {
 inflate()
 ; return 0; }
 EOF
-if { (eval echo configure:8605: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8707: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8620,12 +8722,12 @@ else
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for inflate in -lgz""... $ac_c" 1>&6
-echo "configure:8624: checking for inflate in -lgz" >&5
+echo "configure:8726: 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 8629 "configure"
+#line 8731 "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
@@ -8636,7 +8738,7 @@ int main() {
 inflate()
 ; return 0; }
 EOF
-if { (eval echo configure:8640: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8742: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8666,15 +8768,15 @@ fi
 
     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:8670: checking for jpeglib.h" >&5
+echo "configure:8772: checking for jpeglib.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 8673 "configure"
+#line 8775 "configure"
 #include "confdefs.h"
 #include <jpeglib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8678: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8780: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8697,12 +8799,12 @@ fi
  }
   test -z "$with_jpeg" && { 
 echo $ac_n "checking for jpeg_destroy_decompress in -ljpeg""... $ac_c" 1>&6
-echo "configure:8701: checking for jpeg_destroy_decompress in -ljpeg" >&5
+echo "configure:8803: 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 8706 "configure"
+#line 8808 "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
@@ -8713,7 +8815,7 @@ int main() {
 jpeg_destroy_decompress()
 ; return 0; }
 EOF
-if { (eval echo configure:8717: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8819: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8749,10 +8851,10 @@ EOF
 
     png_problem=""
   test -z "$with_png" && { echo $ac_n "checking for pow""... $ac_c" 1>&6
-echo "configure:8753: checking for pow" >&5
+echo "configure:8855: checking for pow" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 8756 "configure"
+#line 8858 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char pow(); below.  */
@@ -8775,7 +8877,7 @@ pow();
 
 ; return 0; }
 EOF
-if { (eval echo configure:8779: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8881: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_pow=yes"
 else
@@ -8796,15 +8898,15 @@ fi
  }
   test -z "$with_png" && { ac_safe=`echo "png.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for png.h""... $ac_c" 1>&6
-echo "configure:8800: checking for png.h" >&5
+echo "configure:8902: checking for png.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 8803 "configure"
+#line 8905 "configure"
 #include "confdefs.h"
 #include <png.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8808: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8910: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8827,12 +8929,12 @@ fi
  }
   test -z "$with_png" && { 
 echo $ac_n "checking for png_read_image in -lpng""... $ac_c" 1>&6
-echo "configure:8831: checking for png_read_image in -lpng" >&5
+echo "configure:8933: 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 8836 "configure"
+#line 8938 "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
@@ -8843,7 +8945,7 @@ int main() {
 png_read_image()
 ; return 0; }
 EOF
-if { (eval echo configure:8847: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8949: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8866,10 +8968,10 @@ fi
  }
   if test -z "$with_png"; then
     echo $ac_n "checking for workable png version information""... $ac_c" 1>&6
-echo "configure:8870: checking for workable png version information" >&5
+echo "configure:8972: checking for workable png version information" >&5
     xe_check_libs="-lpng -lz"
     cat > conftest.$ac_ext <<EOF
-#line 8873 "configure"
+#line 8975 "configure"
 #include "confdefs.h"
 #include <png.h>
     int main(int c, char **v) {
@@ -8877,7 +8979,7 @@ echo "configure:8870: checking for workable png version information" >&5
     if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING) != 0) return 1;
     return (PNG_LIBPNG_VER < 10002) ? 2 : 0 ;}
 EOF
-if { (eval echo configure:8881: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:8983: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ./conftest dummy_arg; png_status=$?;
       if test "$png_status" = "0"; then
@@ -8920,15 +9022,15 @@ EOF
 
     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:8924: checking for tiffio.h" >&5
+echo "configure:9026: checking for tiffio.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 8927 "configure"
+#line 9029 "configure"
 #include "confdefs.h"
 #include <tiffio.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8932: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9034: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8951,12 +9053,12 @@ fi
  }
   test -z "$with_tiff" && { 
 echo $ac_n "checking for TIFFClientOpen in -ltiff""... $ac_c" 1>&6
-echo "configure:8955: checking for TIFFClientOpen in -ltiff" >&5
+echo "configure:9057: checking for TIFFClientOpen in -ltiff" >&5
 ac_lib_var=`echo tiff'_'TIFFClientOpen | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ltiff "
 cat > conftest.$ac_ext <<EOF
-#line 8960 "configure"
+#line 9062 "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
@@ -8967,7 +9069,7 @@ int main() {
 TIFFClientOpen()
 ; return 0; }
 EOF
-if { (eval echo configure:8971: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9073: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9006,15 +9108,15 @@ fi
 if test "$with_gtk" = "yes"; then
     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:9010: checking for compface.h" >&5
+echo "configure:9112: checking for compface.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 9013 "configure"
+#line 9115 "configure"
 #include "confdefs.h"
 #include <compface.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9018: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9120: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9037,12 +9139,12 @@ fi
  }
   test -z "$with_xface" && { 
 echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6
-echo "configure:9041: checking for UnGenFace in -lcompface" >&5
+echo "configure:9143: 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 9046 "configure"
+#line 9148 "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
@@ -9053,7 +9155,7 @@ int main() {
 UnGenFace()
 ; return 0; }
 EOF
-if { (eval echo configure:9057: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9159: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9092,12 +9194,12 @@ fi
 
 if test "$with_x11" = "yes"; then
   echo "checking for X11 graphics libraries" 1>&6
-echo "configure:9096: checking for X11 graphics libraries" >&5
+echo "configure:9198: checking for X11 graphics libraries" >&5
 fi
 
 if test "$with_x11" = "yes"; then
   echo "checking for the Athena widgets" 1>&6
-echo "configure:9101: checking for the Athena widgets" >&5
+echo "configure:9203: checking for the Athena widgets" >&5
 
     case "$with_athena" in
         "xaw" | "")    athena_variant=Xaw      athena_3d=no  ;;
@@ -9113,12 +9215,12 @@ echo "configure:9101: checking for the Athena widgets" >&5
     if test "$athena_3d" = "no"; then
     
 echo $ac_n "checking for XawScrollbarSetThumb in -l$athena_variant""... $ac_c" 1>&6
-echo "configure:9117: checking for XawScrollbarSetThumb in -l$athena_variant" >&5
+echo "configure:9219: checking for XawScrollbarSetThumb in -l$athena_variant" >&5
 ac_lib_var=`echo $athena_variant'_'XawScrollbarSetThumb | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -l$athena_variant "
 cat > conftest.$ac_ext <<EOF
-#line 9122 "configure"
+#line 9224 "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
@@ -9129,7 +9231,7 @@ int main() {
 XawScrollbarSetThumb()
 ; return 0; }
 EOF
-if { (eval echo configure:9133: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9235: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9145,12 +9247,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
   echo "$ac_t""yes" 1>&6
           
 echo $ac_n "checking for $athena_3d_function in -l$athena_variant""... $ac_c" 1>&6
-echo "configure:9149: checking for $athena_3d_function in -l$athena_variant" >&5
+echo "configure:9251: checking for $athena_3d_function in -l$athena_variant" >&5
 ac_lib_var=`echo $athena_variant'_'$athena_3d_function | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -l$athena_variant "
 cat > conftest.$ac_ext <<EOF
-#line 9154 "configure"
+#line 9256 "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
@@ -9161,7 +9263,7 @@ int main() {
 $athena_3d_function()
 ; return 0; }
 EOF
-if { (eval echo configure:9165: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9267: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9192,12 +9294,12 @@ fi
   else
         
 echo $ac_n "checking for $athena_3d_function in -l$athena_variant""... $ac_c" 1>&6
-echo "configure:9196: checking for $athena_3d_function in -l$athena_variant" >&5
+echo "configure:9298: checking for $athena_3d_function in -l$athena_variant" >&5
 ac_lib_var=`echo $athena_variant'_'$athena_3d_function | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -l$athena_variant "
 cat > conftest.$ac_ext <<EOF
-#line 9201 "configure"
+#line 9303 "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
@@ -9208,7 +9310,7 @@ int main() {
 $athena_3d_function()
 ; return 0; }
 EOF
-if { (eval echo configure:9212: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9314: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9226,12 +9328,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for $athena_3d_function in -lXaw""... $ac_c" 1>&6
-echo "configure:9230: checking for $athena_3d_function in -lXaw" >&5
+echo "configure:9332: checking for $athena_3d_function in -lXaw" >&5
 ac_lib_var=`echo Xaw'_'$athena_3d_function | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXaw "
 cat > conftest.$ac_ext <<EOF
-#line 9235 "configure"
+#line 9337 "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
@@ -9242,7 +9344,7 @@ int main() {
 $athena_3d_function()
 ; return 0; }
 EOF
-if { (eval echo configure:9246: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9348: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9273,15 +9375,15 @@ fi
     if test "$athena_3d" = "no"; then
     ac_safe=`echo "X11/Xaw/ThreeD.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Xaw/ThreeD.h""... $ac_c" 1>&6
-echo "configure:9277: checking for X11/Xaw/ThreeD.h" >&5
+echo "configure:9379: checking for X11/Xaw/ThreeD.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 9280 "configure"
+#line 9382 "configure"
 #include "confdefs.h"
 #include <X11/Xaw/ThreeD.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9285: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9387: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9301,15 +9403,15 @@ else
   echo "$ac_t""no" 1>&6
 ac_safe=`echo "X11/Xaw/XawInit.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Xaw/XawInit.h""... $ac_c" 1>&6
-echo "configure:9305: checking for X11/Xaw/XawInit.h" >&5
+echo "configure:9407: checking for X11/Xaw/XawInit.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 9308 "configure"
+#line 9410 "configure"
 #include "confdefs.h"
 #include <X11/Xaw/XawInit.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9313: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9415: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9335,15 +9437,15 @@ fi
   else
             ac_safe=`echo "X11/$athena_variant/XawInit.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/$athena_variant/XawInit.h""... $ac_c" 1>&6
-echo "configure:9339: checking for X11/$athena_variant/XawInit.h" >&5
+echo "configure:9441: checking for X11/$athena_variant/XawInit.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 9342 "configure"
+#line 9444 "configure"
 #include "confdefs.h"
 #include <X11/$athena_variant/XawInit.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9347: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9449: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9360,15 +9462,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   ac_safe=`echo "X11/$athena_variant/ThreeD.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/$athena_variant/ThreeD.h""... $ac_c" 1>&6
-echo "configure:9364: checking for X11/$athena_variant/ThreeD.h" >&5
+echo "configure:9466: checking for X11/$athena_variant/ThreeD.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 9367 "configure"
+#line 9469 "configure"
 #include "confdefs.h"
 #include <X11/$athena_variant/ThreeD.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9372: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9474: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9396,15 +9498,15 @@ fi
         if test -z "$athena_h_path"; then
       ac_safe=`echo "$athena_variant/XawInit.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $athena_variant/XawInit.h""... $ac_c" 1>&6
-echo "configure:9400: checking for $athena_variant/XawInit.h" >&5
+echo "configure:9502: checking for $athena_variant/XawInit.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 9403 "configure"
+#line 9505 "configure"
 #include "confdefs.h"
 #include <$athena_variant/XawInit.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9408: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9510: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9421,15 +9523,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   ac_safe=`echo "$athena_variant/ThreeD.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $athena_variant/ThreeD.h""... $ac_c" 1>&6
-echo "configure:9425: checking for $athena_variant/ThreeD.h" >&5
+echo "configure:9527: checking for $athena_variant/ThreeD.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 9428 "configure"
+#line 9530 "configure"
 #include "confdefs.h"
 #include <$athena_variant/ThreeD.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9433: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9535: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9458,15 +9560,15 @@ fi
         if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then
       ac_safe=`echo "X11/Xaw3d/XawInit.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Xaw3d/XawInit.h""... $ac_c" 1>&6
-echo "configure:9462: checking for X11/Xaw3d/XawInit.h" >&5
+echo "configure:9564: checking for X11/Xaw3d/XawInit.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 9465 "configure"
+#line 9567 "configure"
 #include "confdefs.h"
 #include <X11/Xaw3d/XawInit.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9470: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9572: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9483,15 +9585,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   ac_safe=`echo "X11/Xaw3d/ThreeD.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Xaw3d/ThreeD.h""... $ac_c" 1>&6
-echo "configure:9487: checking for X11/Xaw3d/ThreeD.h" >&5
+echo "configure:9589: checking for X11/Xaw3d/ThreeD.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 9490 "configure"
+#line 9592 "configure"
 #include "confdefs.h"
 #include <X11/Xaw3d/ThreeD.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9495: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9597: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9523,15 +9625,15 @@ fi
         if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then
       ac_safe=`echo "Xaw3d/XawInit.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for Xaw3d/XawInit.h""... $ac_c" 1>&6
-echo "configure:9527: checking for Xaw3d/XawInit.h" >&5
+echo "configure:9629: checking for Xaw3d/XawInit.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 9530 "configure"
+#line 9632 "configure"
 #include "confdefs.h"
 #include <Xaw3d/XawInit.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9535: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9637: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9548,15 +9650,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   ac_safe=`echo "Xaw3d/ThreeD.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for Xaw3d/ThreeD.h""... $ac_c" 1>&6
-echo "configure:9552: checking for Xaw3d/ThreeD.h" >&5
+echo "configure:9654: checking for Xaw3d/ThreeD.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 9555 "configure"
+#line 9657 "configure"
 #include "confdefs.h"
 #include <Xaw3d/ThreeD.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9560: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9662: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9588,15 +9690,15 @@ fi
             if test -z "$athena_h_path"; then
       ac_safe=`echo "X11/Xaw/ThreeD.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Xaw/ThreeD.h""... $ac_c" 1>&6
-echo "configure:9592: checking for X11/Xaw/ThreeD.h" >&5
+echo "configure:9694: checking for X11/Xaw/ThreeD.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 9595 "configure"
+#line 9697 "configure"
 #include "confdefs.h"
 #include <X11/Xaw/ThreeD.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9600: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9702: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9635,15 +9737,15 @@ fi
 if test "$with_x11" = "yes"; then
     ac_safe=`echo "Xm/Xm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for Xm/Xm.h""... $ac_c" 1>&6
-echo "configure:9639: checking for Xm/Xm.h" >&5
+echo "configure:9741: checking for Xm/Xm.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 9642 "configure"
+#line 9744 "configure"
 #include "confdefs.h"
 #include <Xm/Xm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9647: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9749: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9660,12 +9762,12 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   
 echo $ac_n "checking for XmStringFree in -lXm""... $ac_c" 1>&6
-echo "configure:9664: checking for XmStringFree in -lXm" >&5
+echo "configure:9766: 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 9669 "configure"
+#line 9771 "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
@@ -9676,7 +9778,7 @@ int main() {
 XmStringFree()
 ; return 0; }
 EOF
-if { (eval echo configure:9680: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9782: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9705,9 +9807,9 @@ fi
 
   if test "$have_motif" = "yes"; then
         echo $ac_n "checking for Lesstif""... $ac_c" 1>&6
-echo "configure:9709: checking for Lesstif" >&5
+echo "configure:9811: checking for Lesstif" >&5
     cat > conftest.$ac_ext <<EOF
-#line 9711 "configure"
+#line 9813 "configure"
 #include "confdefs.h"
 #include <Xm/Xm.h>
 #ifdef LESSTIF_VERSION
@@ -10155,15 +10257,15 @@ concord_includes_found=no
 if test "$with_concord" != "no"; then
    ac_safe=`echo "concord.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for concord.h""... $ac_c" 1>&6
-echo "configure:10159: checking for concord.h" >&5
+echo "configure:10261: checking for concord.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 10162 "configure"
+#line 10264 "configure"
 #include "confdefs.h"
 #include <concord.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10167: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10269: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -10191,15 +10293,15 @@ if test "$concord_includes_found" = "no" -a "$with_concord" != "no" -a \
   c_switch_site="$c_switch_site -I/usr/local/concord/include"
   ac_safe=`echo "concord.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for concord.h""... $ac_c" 1>&6
-echo "configure:10195: checking for concord.h" >&5
+echo "configure:10297: checking for concord.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 10198 "configure"
+#line 10300 "configure"
 #include "confdefs.h"
 #include <concord.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10203: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10305: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -10250,7 +10352,7 @@ fi
 
 if test "$with_mule" = "yes" ; then
   echo "checking for Mule-related features" 1>&6
-echo "configure:10254: checking for Mule-related features" >&5
+echo "configure:10356: checking for Mule-related features" >&5
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining MULE
 EOF
@@ -10264,15 +10366,15 @@ EOF
   if test "$with_chise" != "no"; then
     ac_safe=`echo "chise.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for chise.h""... $ac_c" 1>&6
-echo "configure:10268: checking for chise.h" >&5
+echo "configure:10370: checking for chise.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 10271 "configure"
+#line 10373 "configure"
 #include "confdefs.h"
 #include <chise.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10276: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10378: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
     c_switch_site="$c_switch_site -I/usr/local/chise/include"
     ac_safe=`echo "chise.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for chise.h""... $ac_c" 1>&6
-echo "configure:10304: checking for chise.h" >&5
+echo "configure:10406: checking for chise.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 10307 "configure"
+#line 10409 "configure"
 #include "confdefs.h"
 #include <chise.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10312: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10414: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -10387,15 +10489,15 @@ EOF
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:10391: checking for $ac_hdr" >&5
+echo "configure:10493: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 10394 "configure"
+#line 10496 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10399: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10501: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -10426,12 +10528,12 @@ done
 
   
 echo $ac_n "checking for strerror in -lintl""... $ac_c" 1>&6
-echo "configure:10430: checking for strerror in -lintl" >&5
+echo "configure:10532: 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 10435 "configure"
+#line 10537 "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
@@ -10442,7 +10544,7 @@ int main() {
 strerror()
 ; return 0; }
 EOF
-if { (eval echo configure:10446: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10548: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10496,18 +10598,18 @@ EOF
   fi
 
   echo "checking for Mule input methods" 1>&6
-echo "configure:10500: checking for Mule input methods" >&5
+echo "configure:10602: checking for Mule input methods" >&5
         case "$with_xim" in "" | "yes" )
     echo "checking for XIM" 1>&6
-echo "configure:10503: checking for XIM" >&5
+echo "configure:10605: checking for XIM" >&5
     
 echo $ac_n "checking for XOpenIM in -lX11""... $ac_c" 1>&6
-echo "configure:10506: checking for XOpenIM in -lX11" >&5
+echo "configure:10608: checking for XOpenIM in -lX11" >&5
 ac_lib_var=`echo X11'_'XOpenIM | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lX11 "
 cat > conftest.$ac_ext <<EOF
-#line 10511 "configure"
+#line 10613 "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
@@ -10518,7 +10620,7 @@ int main() {
 XOpenIM()
 ; return 0; }
 EOF
-if { (eval echo configure:10522: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10624: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
             if test "$need_motif $have_lesstif" = "yes no"; then
       
 echo $ac_n "checking for XmImMbLookupString in -lXm""... $ac_c" 1>&6
-echo "configure:10546: checking for XmImMbLookupString in -lXm" >&5
+echo "configure:10648: 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 10551 "configure"
+#line 10653 "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
@@ -10558,7 +10660,7 @@ int main() {
 XmImMbLookupString()
 ; return 0; }
 EOF
-if { (eval echo configure:10562: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10664: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
     elif test "$have_motif $have_lesstif $with_xim" = "yes no no"; then
       
 echo $ac_n "checking for XmImMbLookupString in -lXm""... $ac_c" 1>&6
-echo "configure:10585: checking for XmImMbLookupString in -lXm" >&5
+echo "configure:10687: 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 10590 "configure"
+#line 10692 "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
@@ -10597,7 +10699,7 @@ int main() {
 XmImMbLookupString()
 ; return 0; }
 EOF
-if { (eval echo configure:10601: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10703: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10662,15 +10764,15 @@ EOF
 
     if test "$with_xfs" = "yes" ; then
     echo "checking for XFontSet" 1>&6
-echo "configure:10666: checking for XFontSet" >&5
+echo "configure:10768: checking for XFontSet" >&5
     
 echo $ac_n "checking for XmbDrawString in -lX11""... $ac_c" 1>&6
-echo "configure:10669: checking for XmbDrawString in -lX11" >&5
+echo "configure:10771: 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 10674 "configure"
+#line 10776 "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
@@ -10681,7 +10783,7 @@ int main() {
 XmbDrawString()
 ; return 0; }
 EOF
-if { (eval echo configure:10685: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10787: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10721,15 +10823,15 @@ EOF
     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:10725: checking for wnn/jllib.h" >&5
+echo "configure:10827: checking for wnn/jllib.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 10728 "configure"
+#line 10830 "configure"
 #include "confdefs.h"
 #include <wnn/jllib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10733: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10835: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
  }
     test -z "$with_wnn" && { ac_safe=`echo "wnn/commonhd.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for wnn/commonhd.h""... $ac_c" 1>&6
-echo "configure:10756: checking for wnn/commonhd.h" >&5
+echo "configure:10858: checking for wnn/commonhd.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 10759 "configure"
+#line 10861 "configure"
 #include "confdefs.h"
 #include <wnn/commonhd.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10764: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10866: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
     for ac_func in crypt
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:10789: checking for $ac_func" >&5
+echo "configure:10891: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 10792 "configure"
+#line 10894 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -10811,7 +10913,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:10815: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10917: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -10840,12 +10942,12 @@ done
 
     test "$ac_cv_func_crypt" != "yes" && { 
 echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
-echo "configure:10844: checking for crypt in -lcrypt" >&5
+echo "configure:10946: 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 10849 "configure"
+#line 10951 "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
@@ -10856,7 +10958,7 @@ int main() {
 crypt()
 ; return 0; }
 EOF
-if { (eval echo configure:10860: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10962: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
     if test -z "$with_wnn" -o "$with_wnn" = "yes"; then
     
 echo $ac_n "checking for jl_dic_list_e in -lwnn""... $ac_c" 1>&6
-echo "configure:10895: checking for jl_dic_list_e in -lwnn" >&5
+echo "configure:10997: 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 10900 "configure"
+#line 11002 "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
@@ -10907,7 +11009,7 @@ int main() {
 jl_dic_list_e()
 ; return 0; }
 EOF
-if { (eval echo configure:10911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11013: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10925,12 +11027,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for jl_dic_list_e in -lwnn4""... $ac_c" 1>&6
-echo "configure:10929: checking for jl_dic_list_e in -lwnn4" >&5
+echo "configure:11031: checking for jl_dic_list_e in -lwnn4" >&5
 ac_lib_var=`echo wnn4'_'jl_dic_list_e | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lwnn4 "
 cat > conftest.$ac_ext <<EOF
-#line 10934 "configure"
+#line 11036 "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
@@ -10941,7 +11043,7 @@ int main() {
 jl_dic_list_e()
 ; return 0; }
 EOF
-if { (eval echo configure:10945: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11047: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10959,12 +11061,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for jl_dic_list_e in -lwnn6""... $ac_c" 1>&6
-echo "configure:10963: checking for jl_dic_list_e in -lwnn6" >&5
+echo "configure:11065: checking for jl_dic_list_e in -lwnn6" >&5
 ac_lib_var=`echo wnn6'_'jl_dic_list_e | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lwnn6 "
 cat > conftest.$ac_ext <<EOF
-#line 10968 "configure"
+#line 11070 "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
@@ -10975,7 +11077,7 @@ int main() {
 jl_dic_list_e()
 ; return 0; }
 EOF
-if { (eval echo configure:10979: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11081: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10993,12 +11095,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for dic_list_e in -lwnn6_fromsrc""... $ac_c" 1>&6
-echo "configure:10997: checking for dic_list_e in -lwnn6_fromsrc" >&5
+echo "configure:11099: checking for dic_list_e in -lwnn6_fromsrc" >&5
 ac_lib_var=`echo wnn6_fromsrc'_'dic_list_e | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lwnn6_fromsrc "
 cat > conftest.$ac_ext <<EOF
-#line 11002 "configure"
+#line 11104 "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
@@ -11009,7 +11111,7 @@ int main() {
 dic_list_e()
 ; return 0; }
 EOF
-if { (eval echo configure:11013: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11115: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -11057,12 +11159,12 @@ EOF
     if test "$with_wnn6" != "no"; then
       
 echo $ac_n "checking for jl_fi_dic_list in -l$libwnn""... $ac_c" 1>&6
-echo "configure:11061: checking for jl_fi_dic_list in -l$libwnn" >&5
+echo "configure:11163: checking for jl_fi_dic_list in -l$libwnn" >&5
 ac_lib_var=`echo $libwnn'_'jl_fi_dic_list | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -l$libwnn "
 cat > conftest.$ac_ext <<EOF
-#line 11066 "configure"
+#line 11168 "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
@@ -11073,7 +11175,7 @@ int main() {
 jl_fi_dic_list()
 ; return 0; }
 EOF
-if { (eval echo configure:11077: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11179: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -11108,15 +11210,15 @@ EOF
   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:11112: checking for canna/jrkanji.h" >&5
+echo "configure:11214: checking for canna/jrkanji.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 11115 "configure"
+#line 11217 "configure"
 #include "confdefs.h"
 #include <canna/jrkanji.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11120: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11222: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
     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:11147: checking for canna/jrkanji.h" >&5
+echo "configure:11249: checking for canna/jrkanji.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 11150 "configure"
+#line 11252 "configure"
 #include "confdefs.h"
 #include <canna/jrkanji.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11155: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11257: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
 
   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:11183: checking for canna/RK.h" >&5
+echo "configure:11285: checking for canna/RK.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 11186 "configure"
+#line 11288 "configure"
 #include "confdefs.h"
 #include <canna/RK.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11191: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11293: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
  }
   test -z "$with_canna" && { 
 echo $ac_n "checking for RkBgnBun in -lRKC""... $ac_c" 1>&6
-echo "configure:11214: checking for RkBgnBun in -lRKC" >&5
+echo "configure:11316: 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 11219 "configure"
+#line 11321 "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
@@ -11226,7 +11328,7 @@ int main() {
 RkBgnBun()
 ; return 0; }
 EOF
-if { (eval echo configure:11230: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11332: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
  }
   test -z "$with_canna" && { 
 echo $ac_n "checking for jrKanjiControl in -lcanna""... $ac_c" 1>&6
-echo "configure:11253: checking for jrKanjiControl in -lcanna" >&5
+echo "configure:11355: 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 11258 "configure"
+#line 11360 "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
@@ -11265,7 +11367,7 @@ int main() {
 jrKanjiControl()
 ; return 0; }
 EOF
-if { (eval echo configure:11269: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11371: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -11314,12 +11416,12 @@ if test "$need_motif" = "yes" ; then
   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:11318: checking for layout_object_getvalue in -li18n" >&5
+echo "configure:11420: 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 11323 "configure"
+#line 11425 "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
@@ -11330,7 +11432,7 @@ int main() {
 layout_object_getvalue()
 ; return 0; }
 EOF
-if { (eval echo configure:11334: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
 for ac_func in cbrt closedir dup2 eaccess fmod fpathconf frexp ftime getaddrinfo gethostname getnameinfo 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 stpcpy strerror tzset ulimit usleep waitpid vsnprintf fsync ftruncate umask
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11421: checking for $ac_func" >&5
+echo "configure:11523: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 11424 "configure"
+#line 11526 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -11443,7 +11545,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:11447: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11549: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
 for ac_func in getpt _getpty grantpt unlockpt ptsname killpg tcgetpgrp
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11488: checking for $ac_func" >&5
+echo "configure:11590: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 11491 "configure"
+#line 11593 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -11510,7 +11612,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:11514: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11616: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -11539,10 +11641,10 @@ done
 
 
 echo $ac_n "checking for openpty""... $ac_c" 1>&6
-echo "configure:11543: checking for openpty" >&5
+echo "configure:11645: checking for openpty" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 11546 "configure"
+#line 11648 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char openpty(); below.  */
@@ -11565,7 +11667,7 @@ openpty();
 
 ; return 0; }
 EOF
-if { (eval echo configure:11569: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11671: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_openpty=yes"
 else
@@ -11584,12 +11686,12 @@ else
 
   
 echo $ac_n "checking for openpty in -lutil""... $ac_c" 1>&6
-echo "configure:11588: checking for openpty in -lutil" >&5
+echo "configure:11690: checking for openpty in -lutil" >&5
 ac_lib_var=`echo util'_'openpty | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lutil "
 cat > conftest.$ac_ext <<EOF
-#line 11593 "configure"
+#line 11695 "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
@@ -11600,7 +11702,7 @@ int main() {
 openpty()
 ; return 0; }
 EOF
-if { (eval echo configure:11604: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11706: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -11635,15 +11737,15 @@ EOF
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:11639: checking for $ac_hdr" >&5
+echo "configure:11741: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 11642 "configure"
+#line 11744 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11647: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11749: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -11679,15 +11781,15 @@ for ac_hdr in stropts.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:11683: checking for $ac_hdr" >&5
+echo "configure:11785: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 11686 "configure"
+#line 11788 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11691: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11793: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -11720,10 +11822,10 @@ if test "$ac_cv_header_stropts_h" = "yes"; then
   for ac_func in isastream
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11724: checking for $ac_func" >&5
+echo "configure:11826: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 11727 "configure"
+#line 11829 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -11746,7 +11848,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:11750: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11852: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -11777,15 +11879,15 @@ done
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:11781: checking for $ac_hdr" >&5
+echo "configure:11883: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 11784 "configure"
+#line 11886 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11789: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11891: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -11822,10 +11924,10 @@ extra_objs="$extra_objs realpath.o" &&  if test "$extra_verbose" = "yes"; then
 for ac_func in getloadavg
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11826: checking for $ac_func" >&5
+echo "configure:11928: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 11829 "configure"
+#line 11931 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -11848,7 +11950,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:11852: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11954: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -11881,15 +11983,15 @@ if test "$ac_cv_func_getloadavg" = "yes"; then
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:11885: checking for $ac_hdr" >&5
+echo "configure:11987: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 11888 "configure"
+#line 11990 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11893: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11995: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -11925,12 +12027,12 @@ else
 
     
 echo $ac_n "checking for kstat_open in -lkstat""... $ac_c" 1>&6
-echo "configure:11929: checking for kstat_open in -lkstat" >&5
+echo "configure:12031: 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 11934 "configure"
+#line 12036 "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
@@ -11941,7 +12043,7 @@ int main() {
 kstat_open()
 ; return 0; }
 EOF
-if { (eval echo configure:11945: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12047: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:11980: checking for $ac_hdr" >&5
+echo "configure:12082: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 11983 "configure"
+#line 12085 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11988: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12090: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -12016,12 +12118,12 @@ done
 
     
 echo $ac_n "checking for kvm_read in -lkvm""... $ac_c" 1>&6
-echo "configure:12020: checking for kvm_read in -lkvm" >&5
+echo "configure:12122: 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 12025 "configure"
+#line 12127 "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
@@ -12032,7 +12134,7 @@ int main() {
 kvm_read()
 ; return 0; }
 EOF
-if { (eval echo configure:12036: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12138: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
 fi
 
 echo $ac_n "checking whether netdb declares h_errno""... $ac_c" 1>&6
-echo "configure:12070: checking whether netdb declares h_errno" >&5
+echo "configure:12172: checking whether netdb declares h_errno" >&5
 cat > conftest.$ac_ext <<EOF
-#line 12072 "configure"
+#line 12174 "configure"
 #include "confdefs.h"
 #include <netdb.h>
 int main() {
 return h_errno;
 ; return 0; }
 EOF
-if { (eval echo configure:12079: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12181: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
    { test "$extra_verbose" = "yes" && cat << \EOF
 rm -f conftest*
 
 echo $ac_n "checking for sigsetjmp""... $ac_c" 1>&6
-echo "configure:12099: checking for sigsetjmp" >&5
+echo "configure:12201: checking for sigsetjmp" >&5
 cat > conftest.$ac_ext <<EOF
-#line 12101 "configure"
+#line 12203 "configure"
 #include "confdefs.h"
 #include <setjmp.h>
 int main() {
 sigjmp_buf bar; sigsetjmp (bar, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:12108: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12210: \"$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
 rm -f conftest*
 
 echo $ac_n "checking whether localtime caches TZ""... $ac_c" 1>&6
-echo "configure:12128: checking whether localtime caches TZ" >&5
+echo "configure:12230: checking whether localtime caches TZ" >&5
 
 if test "$ac_cv_func_tzset" = "yes"; then
 cat > conftest.$ac_ext <<EOF
-#line 12132 "configure"
+#line 12234 "configure"
 #include "confdefs.h"
 #include <time.h>
 #if STDC_HEADERS
@@ -12163,7 +12265,7 @@ main()
   exit (0);
 }
 EOF
-if { (eval echo configure:12167: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:12269: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   emacs_cv_localtime_cache=no
 else
@@ -12193,9 +12295,9 @@ fi
 
 if test "$HAVE_TIMEVAL" = "yes"; then
 echo $ac_n "checking whether gettimeofday accepts one or two arguments""... $ac_c" 1>&6
-echo "configure:12197: checking whether gettimeofday accepts one or two arguments" >&5
+echo "configure:12299: checking whether gettimeofday accepts one or two arguments" >&5
 cat > conftest.$ac_ext <<EOF
-#line 12199 "configure"
+#line 12301 "configure"
 #include "confdefs.h"
 
 #ifdef TIME_WITH_SYS_TIME
@@ -12216,7 +12318,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:12220: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12322: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""two" 1>&6
 else
 
 
 echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:12242: checking for inline" >&5
+echo "configure:12344: checking for inline" >&5
 
 ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat > conftest.$ac_ext <<EOF
-#line 12247 "configure"
+#line 12349 "configure"
 #include "confdefs.h"
 
 int main() {
 } $ac_kw foo() {
 ; return 0; }
 EOF
-if { (eval echo configure:12254: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12356: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_inline=$ac_kw; break
 else
@@ -12291,17 +12393,17 @@ if test "$__DECC" != "yes"; then
   # 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:12295: checking for working alloca.h" >&5
+echo "configure:12397: checking for working alloca.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 12298 "configure"
+#line 12400 "configure"
 #include "confdefs.h"
 #include <alloca.h>
 int main() {
 char *p = alloca(2 * sizeof(int));
 ; return 0; }
 EOF
-if { (eval echo configure:12305: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12407: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_header_alloca_h=yes
 else
@@ -12325,10 +12427,10 @@ EOF
 fi
 
 echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:12329: checking for alloca" >&5
+echo "configure:12431: checking for alloca" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 12332 "configure"
+#line 12434 "configure"
 #include "confdefs.h"
 
 #ifdef __GNUC__
@@ -12356,7 +12458,7 @@ int main() {
 char *p = (char *) alloca(1);
 ; return 0; }
 EOF
-if { (eval echo configure:12360: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12462: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_func_alloca_works=yes
 else
@@ -12395,10 +12497,10 @@ EOF
 
 
 echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:12399: checking whether alloca needs Cray hooks" >&5
+echo "configure:12501: checking whether alloca needs Cray hooks" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 12402 "configure"
+#line 12504 "configure"
 #include "confdefs.h"
 #if defined(CRAY) && ! defined(CRAY2)
 webecray
@@ -12422,10 +12524,10 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6
 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:12426: checking for $ac_func" >&5
+echo "configure:12528: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 12429 "configure"
+#line 12531 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -12448,7 +12550,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:12452: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12554: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -12478,10 +12580,10 @@ done
 fi
 
 echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:12482: checking stack direction for C alloca" >&5
+echo "configure:12584: checking stack direction for C alloca" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 12485 "configure"
+#line 12587 "configure"
 #include "confdefs.h"
 find_stack_direction ()
 {
@@ -12500,7 +12602,7 @@ main ()
   exit (find_stack_direction() < 0);
 }
 EOF
-if { (eval echo configure:12504: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:12606: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_c_stack_direction=1
 else
 
 ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for vfork.h""... $ac_c" 1>&6
-echo "configure:12534: checking for vfork.h" >&5
+echo "configure:12636: checking for vfork.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 12537 "configure"
+#line 12639 "configure"
 #include "confdefs.h"
 #include <vfork.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12542: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12644: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -12566,10 +12668,10 @@ else
 fi
 
 echo $ac_n "checking for working vfork""... $ac_c" 1>&6
-echo "configure:12570: checking for working vfork" >&5
+echo "configure:12672: checking for working vfork" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 12573 "configure"
+#line 12675 "configure"
 #include "confdefs.h"
 /* Thanks to Paul Eggert for this test.  */
 #include <stdio.h>
@@ -12664,7 +12766,7 @@ main() {
   }
 }
 EOF
-if { (eval echo configure:12668: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:12770: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_func_vfork_works=yes
 else
 
 
 echo $ac_n "checking for working strcoll""... $ac_c" 1>&6
-echo "configure:12694: checking for working strcoll" >&5
+echo "configure:12796: checking for working strcoll" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 12697 "configure"
+#line 12799 "configure"
 #include "confdefs.h"
 #include <string.h>
 main ()
@@ -12703,7 +12805,7 @@ main ()
        strcoll ("123", "456") >= 0);
 }
 EOF
-if { (eval echo configure:12707: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:12809: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_func_strcoll_works=yes
 else
 for ac_func in getpgrp
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12735: checking for $ac_func" >&5
+echo "configure:12837: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 12738 "configure"
+#line 12840 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -12757,7 +12859,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:12761: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12863: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
 done
 
 echo $ac_n "checking whether getpgrp takes no argument""... $ac_c" 1>&6
-echo "configure:12789: checking whether getpgrp takes no argument" >&5
+echo "configure:12891: checking whether getpgrp takes no argument" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 12792 "configure"
+#line 12894 "configure"
 #include "confdefs.h"
 
 /*
@@ -12843,7 +12945,7 @@ main()
 }
 
 EOF
-if { (eval echo configure:12847: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:12949: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_func_getpgrp_void=yes
 else
 
 
 echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:12874: checking for working mmap" >&5
+echo "configure:12976: checking for working mmap" >&5
 case "$opsys" in ultrix* ) have_mmap=no ;; *)
 cat > conftest.$ac_ext <<EOF
-#line 12877 "configure"
+#line 12979 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <unistd.h>
@@ -12906,7 +13008,7 @@ int main (int argc, char *argv[])
   return 1;
 }
 EOF
-if { (eval echo configure:12910: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:13012: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   have_mmap=yes
 else
@@ -12935,9 +13037,9 @@ test "$GNU_MALLOC" != "yes" -a "$have_mmap" != "yes" && rel_alloc=no
 if test "$rel_alloc $have_mmap" = "default yes"; then
   if test "$doug_lea_malloc" = "yes"; then
         echo $ac_n "checking for M_MMAP_THRESHOLD""... $ac_c" 1>&6
-echo "configure:12939: checking for M_MMAP_THRESHOLD" >&5
+echo "configure:13041: checking for M_MMAP_THRESHOLD" >&5
     cat > conftest.$ac_ext <<EOF
-#line 12941 "configure"
+#line 13043 "configure"
 #include "confdefs.h"
 #include <malloc.h>
 int main() {
@@ -12949,7 +13051,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:12953: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13055: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   rel_alloc=no; echo "$ac_t""yes" 1>&6;
 else
@@ -12974,15 +13076,15 @@ EOF
 
 ac_safe=`echo "termios.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for termios.h""... $ac_c" 1>&6
-echo "configure:12978: checking for termios.h" >&5
+echo "configure:13080: checking for termios.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 12981 "configure"
+#line 13083 "configure"
 #include "confdefs.h"
 #include <termios.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12986: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13088: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -13025,15 +13127,15 @@ else
   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:13029: checking for termio.h" >&5
+echo "configure:13131: checking for termio.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 13032 "configure"
+#line 13134 "configure"
 #include "confdefs.h"
 #include <termio.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13037: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13139: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
 
 
 echo $ac_n "checking for socket""... $ac_c" 1>&6
-echo "configure:13069: checking for socket" >&5
+echo "configure:13171: checking for socket" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 13072 "configure"
+#line 13174 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char socket(); below.  */
@@ -13091,7 +13193,7 @@ socket();
 
 ; return 0; }
 EOF
-if { (eval echo configure:13095: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13197: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_socket=yes"
 else
@@ -13106,15 +13208,15 @@ if eval "test \"`echo '$ac_cv_func_'socket`\" = yes"; then
   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:13110: checking for netinet/in.h" >&5
+echo "configure:13212: checking for netinet/in.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 13113 "configure"
+#line 13215 "configure"
 #include "confdefs.h"
 #include <netinet/in.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13118: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13220: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -13131,15 +13233,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   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:13135: checking for arpa/inet.h" >&5
+echo "configure:13237: checking for arpa/inet.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 13138 "configure"
+#line 13240 "configure"
 #include "confdefs.h"
 #include <arpa/inet.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13143: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13245: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -13164,9 +13266,9 @@ EOF
 }
 
       echo $ac_n "checking "for sun_len member in struct sockaddr_un"""... $ac_c" 1>&6
-echo "configure:13168: checking "for sun_len member in struct sockaddr_un"" >&5
+echo "configure:13270: checking "for sun_len member in struct sockaddr_un"" >&5
       cat > conftest.$ac_ext <<EOF
-#line 13170 "configure"
+#line 13272 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -13177,7 +13279,7 @@ int main() {
 static struct sockaddr_un x; x.sun_len = 1;
 ; return 0; }
 EOF
-if { (eval echo configure:13181: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13283: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6; { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_SOCKADDR_SUN_LEN
@@ -13195,9 +13297,9 @@ else
 fi
 rm -f conftest*
       echo $ac_n "checking "for ip_mreq struct in netinet/in.h"""... $ac_c" 1>&6
-echo "configure:13199: checking "for ip_mreq struct in netinet/in.h"" >&5
+echo "configure:13301: checking "for ip_mreq struct in netinet/in.h"" >&5
       cat > conftest.$ac_ext <<EOF
-#line 13201 "configure"
+#line 13303 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -13207,7 +13309,7 @@ int main() {
 static struct ip_mreq x;
 ; return 0; }
 EOF
-if { (eval echo configure:13211: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13313: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6; { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_MULTICAST
 
 
 echo $ac_n "checking for msgget""... $ac_c" 1>&6
-echo "configure:13242: checking for msgget" >&5
+echo "configure:13344: checking for msgget" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 13245 "configure"
+#line 13347 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char msgget(); below.  */
@@ -13264,7 +13366,7 @@ msgget();
 
 ; return 0; }
 EOF
-if { (eval echo configure:13268: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13370: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_msgget=yes"
 else
@@ -13279,15 +13381,15 @@ if eval "test \"`echo '$ac_cv_func_'msgget`\" = yes"; then
   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:13283: checking for sys/ipc.h" >&5
+echo "configure:13385: checking for sys/ipc.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 13286 "configure"
+#line 13388 "configure"
 #include "confdefs.h"
 #include <sys/ipc.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13291: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13393: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -13304,15 +13406,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   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:13308: checking for sys/msg.h" >&5
+echo "configure:13410: checking for sys/msg.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 13311 "configure"
+#line 13413 "configure"
 #include "confdefs.h"
 #include <sys/msg.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13316: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13418: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
 
 ac_safe=`echo "dirent.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for dirent.h""... $ac_c" 1>&6
-echo "configure:13354: checking for dirent.h" >&5
+echo "configure:13456: checking for dirent.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 13357 "configure"
+#line 13459 "configure"
 #include "confdefs.h"
 #include <dirent.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13362: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13464: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -13385,15 +13487,15 @@ else
   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:13389: checking for sys/dir.h" >&5
+echo "configure:13491: checking for sys/dir.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 13392 "configure"
+#line 13494 "configure"
 #include "confdefs.h"
 #include <sys/dir.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13397: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13499: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
 
 ac_safe=`echo "nlist.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for nlist.h""... $ac_c" 1>&6
-echo "configure:13430: checking for nlist.h" >&5
+echo "configure:13532: checking for nlist.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 13433 "configure"
+#line 13535 "configure"
 #include "confdefs.h"
 #include <nlist.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13438: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13540: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
 
 
 echo "checking "for sound support"" 1>&6
-echo "configure:13468: checking "for sound support"" >&5
+echo "configure:13570: checking "for sound support"" >&5
 test -z "$with_native_sound" -a -n "$native_sound_lib" && with_native_sound=yes
 
 if test "$with_native_sound" != "no"; then
     if test -n "$native_sound_lib"; then
     ac_safe=`echo "multimedia/audio_device.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for multimedia/audio_device.h""... $ac_c" 1>&6
-echo "configure:13475: checking for multimedia/audio_device.h" >&5
+echo "configure:13577: checking for multimedia/audio_device.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 13478 "configure"
+#line 13580 "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:13483: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13585: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
       if test -z "$native_sound_lib"; then
         
 echo $ac_n "checking for ALopenport in -laudio""... $ac_c" 1>&6
-echo "configure:13539: checking for ALopenport in -laudio" >&5
+echo "configure:13641: 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 13544 "configure"
+#line 13646 "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
@@ -13551,7 +13653,7 @@ int main() {
 ALopenport()
 ; return 0; }
 EOF
-if { (eval echo configure:13555: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13657: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
       if test -z "$native_sound_lib"; then
        
 echo $ac_n "checking for AOpenAudio in -lAlib""... $ac_c" 1>&6
-echo "configure:13586: checking for AOpenAudio in -lAlib" >&5
+echo "configure:13688: 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 13591 "configure"
+#line 13693 "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
@@ -13598,7 +13700,7 @@ int main() {
 AOpenAudio()
 ; return 0; }
 EOF
-if { (eval echo configure:13602: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13704: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
     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:13647: checking for ${dir}/soundcard.h" >&5
+echo "configure:13749: checking for ${dir}/soundcard.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 13650 "configure"
+#line 13752 "configure"
 #include "confdefs.h"
 #include <${dir}/soundcard.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13655: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13757: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
 if test "$with_nas_sound" != "no"; then
   ac_safe=`echo "audio/audiolib.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for audio/audiolib.h""... $ac_c" 1>&6
-echo "configure:13709: checking for audio/audiolib.h" >&5
+echo "configure:13811: checking for audio/audiolib.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 13712 "configure"
+#line 13814 "configure"
 #include "confdefs.h"
 #include <audio/audiolib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13717: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13819: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -13731,12 +13833,12 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   
     
 echo $ac_n "checking for AuOpenServer in -laudio""... $ac_c" 1>&6
-echo "configure:13735: checking for AuOpenServer in -laudio" >&5
+echo "configure:13837: checking for AuOpenServer in -laudio" >&5
 ac_lib_var=`echo audio'_'AuOpenServer | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -laudio "
 cat > conftest.$ac_ext <<EOF
-#line 13740 "configure"
+#line 13842 "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
@@ -13747,7 +13849,7 @@ int main() {
 AuOpenServer()
 ; return 0; }
 EOF
-if { (eval echo configure:13751: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13853: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -13786,7 +13888,7 @@ EOF
  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 13790 "configure"
+#line 13892 "configure"
 #include "confdefs.h"
 #include <audio/Xtutil.h>
 EOF
@@ -13817,7 +13919,7 @@ if test "$with_esd_sound" != "no"; then
   # Extract the first word of "esd-config", so it can be a program name with args.
 set dummy esd-config; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:13821: checking for $ac_word" >&5
+echo "configure:13923: checking for $ac_word" >&5
 
 if test -n "$have_esd_config"; then
   ac_cv_prog_have_esd_config="$have_esd_config" # Let the user override the test.
     c_switch_site="$c_switch_site `esd-config --cflags`" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"`esd-config --cflags`\" to \$c_switch_site"; fi
     LIBS="`esd-config --libs` $LIBS" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"`esd-config --libs`\" to \$LIBS"; fi
     echo $ac_n "checking for esd_play_stream""... $ac_c" 1>&6
-echo "configure:13850: checking for esd_play_stream" >&5
+echo "configure:13952: checking for esd_play_stream" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 13853 "configure"
+#line 13955 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char esd_play_stream(); below.  */
@@ -13872,7 +13974,7 @@ esd_play_stream();
 
 ; return 0; }
 EOF
-if { (eval echo configure:13876: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13978: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_esd_play_stream=yes"
 else
@@ -13923,7 +14025,7 @@ test -z "$with_tty" && with_tty=yes
 
 if test "$with_tty" = "yes"  ; then
   echo "checking for TTY-related features" 1>&6
-echo "configure:13927: checking for TTY-related features" >&5
+echo "configure:14029: checking for TTY-related features" >&5
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_TTY
 EOF
@@ -13939,12 +14041,12 @@ EOF
     if test -z "$with_ncurses"; then
     
 echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6
-echo "configure:13943: checking for tgetent in -lncurses" >&5
+echo "configure:14045: 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 13948 "configure"
+#line 14050 "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
@@ -13955,7 +14057,7 @@ int main() {
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:13959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14061: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -13988,15 +14090,15 @@ EOF
 
     ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6
-echo "configure:13992: checking for ncurses/curses.h" >&5
+echo "configure:14094: checking for ncurses/curses.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 13995 "configure"
+#line 14097 "configure"
 #include "confdefs.h"
 #include <ncurses/curses.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:14000: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:14102: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
 
     ac_safe=`echo "ncurses/term.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ncurses/term.h""... $ac_c" 1>&6
-echo "configure:14022: checking for ncurses/term.h" >&5
+echo "configure:14124: checking for ncurses/term.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 14025 "configure"
+#line 14127 "configure"
 #include "confdefs.h"
 #include <ncurses/term.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:14030: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:14132: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
       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:14060: checking for ncurses/curses.h" >&5
+echo "configure:14162: checking for ncurses/curses.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 14063 "configure"
+#line 14165 "configure"
 #include "confdefs.h"
 #include <ncurses/curses.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:14068: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:14170: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
        for lib in curses termlib termcap; do
          
 echo $ac_n "checking for tgetent in -l$lib""... $ac_c" 1>&6
-echo "configure:14103: checking for tgetent in -l$lib" >&5
+echo "configure:14205: 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 14108 "configure"
+#line 14210 "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
@@ -14115,7 +14217,7 @@ int main() {
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:14119: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14221: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
     else       if test -n "$libs_termcap" -a "$opsys" = "openbsd"; then
                                 
 echo $ac_n "checking for tgoto in -ltermcap""... $ac_c" 1>&6
-echo "configure:14144: checking for tgoto in -ltermcap" >&5
+echo "configure:14246: checking for tgoto in -ltermcap" >&5
 ac_lib_var=`echo termcap'_'tgoto | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ltermcap "
 cat > conftest.$ac_ext <<EOF
-#line 14149 "configure"
+#line 14251 "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
@@ -14156,7 +14258,7 @@ int main() {
 tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:14160: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14262: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
       else
        
 echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6
-echo "configure:14205: checking for tgetent in -lcurses" >&5
+echo "configure:14307: 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 14210 "configure"
+#line 14312 "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
@@ -14217,7 +14319,7 @@ int main() {
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:14221: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14323: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -14235,12 +14337,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6
-echo "configure:14239: checking for tgetent in -ltermcap" >&5
+echo "configure:14341: 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 14244 "configure"
+#line 14346 "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
@@ -14251,7 +14353,7 @@ int main() {
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:14255: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14357: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -14300,15 +14402,15 @@ EOF
     if test "$with_gpm" != "no"; then
     ac_safe=`echo "gpm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for gpm.h""... $ac_c" 1>&6
-echo "configure:14304: checking for gpm.h" >&5
+echo "configure:14406: checking for gpm.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 14307 "configure"
+#line 14409 "configure"
 #include "confdefs.h"
 #include <gpm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:14312: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:14414: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -14326,12 +14428,12 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   
       
 echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
-echo "configure:14330: checking for Gpm_Open in -lgpm" >&5
+echo "configure:14432: 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 14335 "configure"
+#line 14437 "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
@@ -14342,7 +14444,7 @@ int main() {
 Gpm_Open()
 ; return 0; }
 EOF
-if { (eval echo configure:14346: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14448: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -14401,20 +14503,20 @@ test "$with_x11" = "yes" -o "$with_tty" = "yes" -o "$need_event_unixoid" = "yes"
 
 test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \
   != "no no no" && echo "checking for database support" 1>&6
-echo "configure:14405: checking for database support" >&5
+echo "configure:14507: checking for database support" >&5
 
 if test "$with_database_gdbm $with_database_dbm" != "no no"; then
   ac_safe=`echo "ndbm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ndbm.h""... $ac_c" 1>&6
-echo "configure:14410: checking for ndbm.h" >&5
+echo "configure:14512: checking for ndbm.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 14413 "configure"
+#line 14515 "configure"
 #include "confdefs.h"
 #include <ndbm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:14418: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:14520: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
 if test "$with_database_gdbm" != "no"; then
   
 echo $ac_n "checking for dbm_open in -lgdbm""... $ac_c" 1>&6
-echo "configure:14448: checking for dbm_open in -lgdbm" >&5
+echo "configure:14550: 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 14453 "configure"
+#line 14555 "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
@@ -14460,7 +14562,7 @@ int main() {
 dbm_open()
 ; return 0; }
 EOF
-if { (eval echo configure:14464: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14566: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
 
 if test "$with_database_dbm" != "no"; then
   echo $ac_n "checking for dbm_open""... $ac_c" 1>&6
-echo "configure:14492: checking for dbm_open" >&5
+echo "configure:14594: checking for dbm_open" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 14495 "configure"
+#line 14597 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char dbm_open(); below.  */
@@ -14514,7 +14616,7 @@ dbm_open();
 
 ; return 0; }
 EOF
-if { (eval echo configure:14518: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14620: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_dbm_open=yes"
 else
@@ -14533,12 +14635,12 @@ else
 
     
 echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6
-echo "configure:14537: checking for dbm_open in -ldbm" >&5
+echo "configure:14639: 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 14542 "configure"
+#line 14644 "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
@@ -14549,7 +14651,7 @@ int main() {
 dbm_open()
 ; return 0; }
 EOF
-if { (eval echo configure:14553: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14655: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -14589,10 +14691,10 @@ EOF
 
 
 echo $ac_n "checking for u_int8_t""... $ac_c" 1>&6
-echo "configure:14593: checking for u_int8_t" >&5
+echo "configure:14695: checking for u_int8_t" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 14596 "configure"
+#line 14698 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -14633,10 +14735,10 @@ EOF
 
 fi
 echo $ac_n "checking for u_int16_t""... $ac_c" 1>&6
-echo "configure:14637: checking for u_int16_t" >&5
+echo "configure:14739: checking for u_int16_t" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 14640 "configure"
+#line 14742 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -14677,10 +14779,10 @@ EOF
 
 fi
 echo $ac_n "checking for u_int32_t""... $ac_c" 1>&6
-echo "configure:14681: checking for u_int32_t" >&5
+echo "configure:14783: checking for u_int32_t" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 14684 "configure"
+#line 14786 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -14721,10 +14823,10 @@ EOF
 
 fi
 echo $ac_n "checking for u_int64_t""... $ac_c" 1>&6
-echo "configure:14725: checking for u_int64_t" >&5
+echo "configure:14827: checking for u_int64_t" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 14728 "configure"
+#line 14830 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
 
 if test "$with_database_berkdb" != "no"; then
   echo $ac_n "checking for Berkeley db.h""... $ac_c" 1>&6
-echo "configure:14771: checking for Berkeley db.h" >&5
+echo "configure:14873: checking for Berkeley db.h" >&5
   for header in "db/db.h" "db.h"; do
     case "$opsys" in
         *freebsd*)
     cat > conftest.$ac_ext <<EOF
-#line 14776 "configure"
+#line 14878 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -14788,7 +14890,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:14792: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14894: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   db_h_file="$header"; break
 else
@@ -14799,7 +14901,7 @@ rm -f conftest*
         ;;
         *)
     cat > conftest.$ac_ext <<EOF
-#line 14803 "configure"
+#line 14905 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -14829,7 +14931,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:14833: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14935: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   db_h_file="$header"; break
 else
@@ -14847,9 +14949,9 @@ rm -f conftest*
 
   if test "$with_database_berkdb" != "no"; then
     echo $ac_n "checking for Berkeley DB version""... $ac_c" 1>&6
-echo "configure:14851: checking for Berkeley DB version" >&5
+echo "configure:14953: checking for Berkeley DB version" >&5
     cat > conftest.$ac_ext <<EOF
-#line 14853 "configure"
+#line 14955 "configure"
 #include "confdefs.h"
 #include <$db_h_file>
 #if DB_VERSION_MAJOR > 1
@@ -14861,7 +14963,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "yes" >/dev/null 2>&1; then
   rm -rf conftest*
   cat > conftest.$ac_ext <<EOF
-#line 14865 "configure"
+#line 14967 "configure"
 #include "confdefs.h"
 #include <$db_h_file>
 #if DB_VERSION_MAJOR > 2
 rm -f conftest*
 
     echo $ac_n "checking for $dbfunc""... $ac_c" 1>&6
-echo "configure:14892: checking for $dbfunc" >&5
+echo "configure:14994: checking for $dbfunc" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 14895 "configure"
+#line 14997 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $dbfunc(); below.  */
@@ -14914,7 +15016,7 @@ $dbfunc();
 
 ; return 0; }
 EOF
-if { (eval echo configure:14918: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15020: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$dbfunc=yes"
 else
@@ -14933,12 +15035,12 @@ else
 
     
 echo $ac_n "checking for $dbfunc in -ldb""... $ac_c" 1>&6
-echo "configure:14937: checking for $dbfunc in -ldb" >&5
+echo "configure:15039: checking for $dbfunc in -ldb" >&5
 ac_lib_var=`echo db'_'$dbfunc | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldb "
 cat > conftest.$ac_ext <<EOF
-#line 14942 "configure"
+#line 15044 "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
@@ -14949,7 +15051,7 @@ int main() {
 $dbfunc()
 ; return 0; }
 EOF
-if { (eval echo configure:14953: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15055: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
 if test "$with_socks" = "yes"; then
   
 echo $ac_n "checking for SOCKSinit in -lsocks""... $ac_c" 1>&6
-echo "configure:15027: checking for SOCKSinit in -lsocks" >&5
+echo "configure:15129: 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 15032 "configure"
+#line 15134 "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
@@ -15039,7 +15141,7 @@ int main() {
 SOCKSinit()
 ; return 0; }
 EOF
-if { (eval echo configure:15043: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15145: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -15094,7 +15196,7 @@ fi
 
 if test "$with_modules" != "no"; then
   echo "checking for module support" 1>&6
-echo "configure:15098: checking for module support" >&5
+echo "configure:15200: checking for module support" >&5
 
     if test "$with_msw" = "yes"; then
     have_dl=yes;
@@ -15110,15 +15212,15 @@ EOF
  ;;
       *)          ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6
-echo "configure:15114: checking for dlfcn.h" >&5
+echo "configure:15216: checking for dlfcn.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 15117 "configure"
+#line 15219 "configure"
 #include "confdefs.h"
 #include <dlfcn.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:15122: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:15224: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -15135,16 +15237,16 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   
            echo $ac_n "checking for dlopen in -lc""... $ac_c" 1>&6
-echo "configure:15139: checking for dlopen in -lc" >&5
+echo "configure:15241: checking for dlopen in -lc" >&5
            cat > conftest.$ac_ext <<EOF
-#line 15141 "configure"
+#line 15243 "configure"
 #include "confdefs.h"
 #include <dlfcn.h>
 int main() {
              dlopen ("", 0);
 ; return 0; }
 EOF
-if { (eval echo configure:15148: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15250: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
    have_dl=yes 
 else
@@ -15153,18 +15255,18 @@ else
   rm -rf conftest*
   
                echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:15157: checking for dlopen in -ldl" >&5
+echo "configure:15259: checking for dlopen in -ldl" >&5
                ac_save_LIBS="$LIBS"
                LIBS="-ldl $LIBS"
                cat > conftest.$ac_ext <<EOF
-#line 15161 "configure"
+#line 15263 "configure"
 #include "confdefs.h"
 #include <dlfcn.h>
 int main() {
                 dlopen ("", 0);
 ; return 0; }
 EOF
-if { (eval echo configure:15168: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15270: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
    have_dl=yes 
 else
@@ -15193,12 +15295,12 @@ EOF
         else
            
 echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
-echo "configure:15197: checking for shl_load in -ldld" >&5
+echo "configure:15299: 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 15202 "configure"
+#line 15304 "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
@@ -15209,7 +15311,7 @@ int main() {
 shl_load()
 ; return 0; }
 EOF
-if { (eval echo configure:15213: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15315: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -15236,12 +15338,12 @@ else
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for dld_init in -ldld""... $ac_c" 1>&6
-echo "configure:15240: checking for dld_init in -ldld" >&5
+echo "configure:15342: 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 15245 "configure"
+#line 15347 "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
@@ -15252,7 +15354,7 @@ int main() {
 dld_init()
 ; return 0; }
 EOF
-if { (eval echo configure:15256: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15358: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -15299,7 +15401,7 @@ xehost=$canonical
 xealias=$internal_configuration
 
 echo "checking how to build dynamic libraries for ${xehost}" 1>&6
-echo "configure:15303: checking how to build dynamic libraries for ${xehost}" >&5
+echo "configure:15405: checking how to build dynamic libraries for ${xehost}" >&5
 # Transform *-*-linux* to *-*-linux-gnu*, to support old configure scripts.
 case "$xehost" in
 *-*-linux-gnu*) ;;
@@ -15327,9 +15429,9 @@ if test "$GCC" = "yes"; then
   XEGCC=yes
 else
   echo $ac_n "checking checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:15331: checking checking whether we are using GNU C" >&5
+echo "configure:15433: checking checking whether we are using GNU C" >&5
   cat > conftest.$ac_ext <<EOF
-#line 15333 "configure"
+#line 15435 "configure"
 #include "confdefs.h"
 
 #ifdef __GNUC__
@@ -15351,7 +15453,7 @@ rm -f conftest*
 fi
 
 echo $ac_n "checking how to produce PIC code""... $ac_c" 1>&6
-echo "configure:15355: checking how to produce PIC code" >&5
+echo "configure:15457: checking how to produce PIC code" >&5
 wl=
 
 can_build_shared=yes
@@ -15452,18 +15554,18 @@ if test -n "$dll_cflags"; then
 
   # Check to make sure the dll_cflags actually works.
   echo $ac_n "checking if PIC flag ${dll_cflags} really works""... $ac_c" 1>&6
-echo "configure:15456: checking if PIC flag ${dll_cflags} really works" >&5
+echo "configure:15558: checking if PIC flag ${dll_cflags} really works" >&5
   save_CFLAGS="$CFLAGS"
   CFLAGS="$CFLAGS $dll_cflags -DPIC"
   cat > conftest.$ac_ext <<EOF
-#line 15460 "configure"
+#line 15562 "configure"
 #include "confdefs.h"
 
 int main() {
 int x=0;
 ; return 0; }
 EOF
-if { (eval echo configure:15467: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15569: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
     # On HP-UX, the stripped-down bundled CC doesn't accept +Z, but also
@@ -15494,7 +15596,7 @@ cc_produces_so=no
 xldf=
 xcldf=
 echo $ac_n "checking if C compiler can produce shared libraries""... $ac_c" 1>&6
-echo "configure:15498: checking if C compiler can produce shared libraries" >&5
+echo "configure:15600: checking if C compiler can produce shared libraries" >&5
 if test "$XEGCC" = yes -o "$__ICC" = yes; then
   xcldf="-shared"
   xldf="-shared"
@@ -15545,14 +15647,14 @@ if test -n "$xcldf"; then
   xe_libs=
   ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&5'
   cat > conftest.$ac_ext <<EOF
-#line 15549 "configure"
+#line 15651 "configure"
 #include "confdefs.h"
 
 int main() {
 int x=0;
 ; return 0; }
 EOF
-if { (eval echo configure:15556: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cc_produces_so=yes
 else
@@ -15577,7 +15679,7 @@ if test -z "$LTLD"; then
   if test "$XEGCC" = yes; then
     # Check if gcc -print-prog-name=ld gives a path.
     echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6
-echo "configure:15581: checking for ld used by GCC" >&5
+echo "configure:15683: checking for ld used by GCC" >&5
     ac_prog=`($CC -print-prog-name=ld) 2>&5`
     case "$ac_prog" in
     # Accept absolute paths.
@@ -15603,7 +15705,7 @@ echo "configure:15581: checking for ld used by GCC" >&5
     esac
   else
     echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
-echo "configure:15607: checking for GNU ld" >&5
+echo "configure:15709: checking for GNU ld" >&5
   fi
 
   if test -z "$LTLD"; then
@@ -15641,7 +15743,7 @@ ld_dynamic_link_flags=
 
 # Check to see if it really is or isn't GNU ld.
 echo $ac_n "checking if the linker is GNU ld""... $ac_c" 1>&6
-echo "configure:15645: checking if the linker is GNU ld" >&5
+echo "configure:15747: checking if the linker is GNU ld" >&5
 # I'd rather use --version here, but apparently some GNU ld's only accept -v.
 if $LTLD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
   xe_gnu_ld=yes
@@ -15669,7 +15771,7 @@ else
   # OK - only NOW do we futz about with ld.
   # See if the linker supports building shared libraries.
   echo $ac_n "checking whether the linker supports shared libraries""... $ac_c" 1>&6
-echo "configure:15673: checking whether the linker supports shared libraries" >&5
+echo "configure:15775: checking whether the linker supports shared libraries" >&5
   dll_ld=$CC
   dll_ldflags=$LDFLAGS
   ld_shlibs=yes
@@ -15880,10 +15982,10 @@ EOF
     for ac_func in dlerror _dlerror
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15884: checking for $ac_func" >&5
+echo "configure:15986: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 15887 "configure"
+#line 15989 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -15906,7 +16008,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:15910: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16012: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -15945,11 +16047,11 @@ done
 fi
 
 cat > conftest.$ac_ext <<EOF
-#line 15949 "configure"
+#line 16051 "configure"
 #include "confdefs.h"
 int main(int c,char *v[]){return 0;}
 EOF
-if { (eval echo configure:15953: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:16055: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   :
 else
index c1446af..4642dcd 100644 (file)
@@ -3219,6 +3219,7 @@ if test no != "$with_ldap";then
        echo "Setting ldap_libs to $ldap_libs"],dnl
       [AC_CHECK_LIB(ldap, ldap_open,dnl
        [with_ldap=yes],dnl
+dnl If logic of setting these vars change, change it the same way below.
        [ldap_needs_lber=yes ldap_other_libs=-llber
 dnl This requires `AC_CACHE_VAL' (which is called by `AC_CHECK_LIB')
 dnl to be redefined to ignore cached (shell variable) value, as it is
@@ -3240,6 +3241,55 @@ dnl variable name depends on the macro OTHER-LIBRARIES argument.
              $ldap_other_libs)],dnl
            $ldap_other_libs)],dnl
          $ldap_other_libs)])
+      if test yes = "$with_ldap" -a yes != "$ldap_needs_lber";then
+dnl Need this check since `LDAP_OPT_ON' is (currently) used only with
+dnl `ldap_set_option', and the latter may not exist at all, for which
+dnl is testing later.  So `LDAP_OPT_ON' is not necessarily defined.
+       AC_CACHE_CHECK([for LDAP_OPT_ON definition],xe_cv_have_LDAP_OPT_ON,
+         [AC_TRY_COMPILE(
+[#include <lber.h>
+#include <ldap.h>
+#ifdef LDAP_OPT_ON
+/* Relying on const defined by ac_c_const (upper case). */
+const void *const v = LDAP_OPT_ON;
+#else /* !defined (LDAP_OPT_ON) */
+choke me
+#endif /* !defined (LDAP_OPT_ON) */],[],
+           [xe_cv_have_LDAP_OPT_ON=yes],
+           [xe_cv_have_LDAP_OPT_ON=no])])
+       if test yes = "$xe_cv_have_LDAP_OPT_ON";then
+         AC_CACHE_CHECK([LDAP_OPT_ON linking],
+           xe_cv_LDAP_OPT_ON_links,
+           [xe_save_LIBS="$LIBS"
+           LIBS="-lldap $LIBS"
+AC_TRY_LINK(
+[#include <lber.h>
+#include <ldap.h>
+const void *const v = LDAP_OPT_ON;],[],
+             xe_cv_LDAP_OPT_ON_links=yes,
+             xe_cv_LDAP_OPT_ON_links=no)
+           LIBS="$xe_save_LIBS"])
+dnl In some openldap installations other `ldap_*' functions link with
+dnl `-lldap' alone, but `LDAP_OPT_ON' requires `-llber'.
+         if test yes != "$xe_cv_LDAP_OPT_ON_links";then
+           ldap_needs_lber=yes ldap_other_libs=-llber
+           AC_CACHE_CHECK([LDAP_OPT_ON linking with -llber],
+             xe_cv_LDAP_OPT_ON_links_w_lber,
+             [xe_save_LIBS="$LIBS"
+             LIBS="-lldap $ldap_other_libs $LIBS"
+AC_TRY_LINK(
+[#include <lber.h>
+#include <ldap.h>
+const void *const v = LDAP_OPT_ON;],[],
+             xe_cv_LDAP_OPT_ON_links_w_lber=yes,
+             xe_cv_LDAP_OPT_ON_links_w_lber=no)
+             LIBS="$xe_save_LIBS"])
+           if test yes != "$xe_cv_LDAP_OPT_ON_links_w_lber";then
+             with_ldap=no
+           fi
+         fi
+       fi
+      fi
       if test yes = "$with_ldap";then
        if test yes = "$ldap_needs_des";then
          XE_PREPEND(-ldes, ldap_libs)
index 1e92bb5..0c8dcc9 100644 (file)
@@ -33,14 +33,15 @@ coordinate a release myself.
 21.4.15: Security Through Obscurity
 21.4.16: Corporate Culture
 21.4.17: Jumbo Shrimp
-21.4.18: Constant Variable
-21.4.19: Double Solitaire
-21.4.20: Educational Television
-21.4.21: Instant Classic
-21.4.22: Moral Majority
-21.4.23: Standard C
-21.4.24: Too Much Mozart
-21.4.25: Working Vacation
+21.4.18: Social Property
+21.4.19: Constant Variable
+21.4.20: Double Solitaire
+21.4.21: Educational Television
+21.4.22: Instant Classic
+21.4.23: Moral Majority
+21.4.24: Standard C
+21.4.25: Too Much Mozart
+21.4.26: Working Vacation
 
 
 
diff --git a/info/xemacs-faq.info-1 b/info/xemacs-faq.info-1
new file mode 100644 (file)
index 0000000..8bed6c0
--- /dev/null
@@ -0,0 +1,7673 @@
+This is ../info/xemacs-faq.info, produced by makeinfo version 4.8 from
+xemacs-faq.texi.
+
+INFO-DIR-SECTION XEmacs Editor
+START-INFO-DIR-ENTRY
+* FAQ: (xemacs-faq).            XEmacs FAQ.
+END-INFO-DIR-ENTRY
+
+\1f
+File: xemacs-faq.info,  Node: Top,  Next: Introduction,  Prev: (dir),  Up: (dir)
+
+XEmacs FAQ
+**********
+
+This is the guide to the XEmacs Frequently Asked Questions list--a
+compendium of questions and answers pertaining to one of the finest
+programs ever written.  XEmacs is much more than just a Text Editor.
+
+   This FAQ is freely redistributable.  This FAQ 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.
+
+   If you have a Web browser, the official hypertext version is at
+`http://www.xemacs.org/FAQ/xemacs-faq.html'
+
+* Menu:
+
+* Introduction::          Introduction, Policy, Credits.
+* Installation::          Installation and Troubleshooting.
+* Editing::               Editing Functions.
+* Display::               Display Functions.
+* External Subsystems::   Interfacing with the OS and External Devices.
+* Internet::              Connecting to the Internet.
+* Advanced::              Advanced Customization Using XEmacs Lisp.
+* Other Packages::        Other External Packages.
+* Current Events::        What the Future Holds.
+* Legacy Versions::       New information about old XEmacsen.
+
+ --- The Detailed Node Listing ---
+
+1 Introduction, Policy, Credits
+
+1.0: What is XEmacs?
+* Q1.0.1::    What is XEmacs?
+* Q1.0.2::    What is the current version of XEmacs?
+* Q1.0.3::    How do you pronounce XEmacs?
+* Q1.0.4::    What does XEmacs look like?
+* Q1.0.5::    Who wrote XEmacs?
+* Q1.0.6::    Who wrote the FAQ?
+
+1.1: Getting XEmacs
+* Q1.1.1::    Where can I find XEmacs?
+* Q1.1.2::    Are binaries available?
+* Q1.1.3::    How do I get the bleeding-edge sources?
+* Q1.1.4::    Where can I obtain a printed copy of the XEmacs User's Manual?
+
+1.2: Versions for Different Operating Systems
+* Q1.2.1::    Do I need X11 to run XEmacs?
+* Q1.2.2::    What versions of Unix does XEmacs run on?
+* Q1.2.3::    Is there a port of XEmacs to Microsoft Windows?
+* Q1.2.4::    Can I build XEmacs on MS Windows with X support?  Do I need to?
+* Q1.2.5::    What are Cygwin and MinGW, and do I need them to run XEmacs?
+* Q1.2.6::    What are the differences between the various MS Windows emacsen?
+* Q1.2.7::    How does the port cope with differences in the Windows user interface?
+* Q1.2.8::    Is there a port of XEmacs to the Macintosh?
+* Q1.2.9::    Is there a port of XEmacs to MS-DOS?
+* Q1.2.10::   Is there a port of XEmacs to OS/2?
+* Q1.2.11::   Is there a port of XEmacs to NextStep?
+* Q1.2.12::   Is there a port of XEmacs to VMS?
+
+1.3: Getting Started
+* Q1.3.1::    What is an `init.el' or `.emacs' and is there a sample one?
+* Q1.3.2::    Where do I put my `init.el' file?
+* Q1.3.3::    Can I use the same `init.el' with the other Emacs?
+* Q1.3.4::    Any good XEmacs tutorials around?
+* Q1.3.5::    May I see an example of a useful XEmacs Lisp function?
+* Q1.3.6::    And how do I bind it to a key?
+* Q1.3.7::    What's the difference between a macro and a function?
+* Q1.3.8::    What is `Custom'?
+
+1.4: Getting Help
+* Q1.4.1::    Where can I get help?
+* Q1.4.2::    Which mailing lists are there?
+* Q1.4.3::    Where are the mailing lists archived?
+* Q1.4.4::    How can I get two instances of info?
+* Q1.4.5::    How do I add new Info directories?
+
+1.5: Contributing to XEmacs
+* Q1.5.1::    How do I submit changes to the FAQ?
+* Q1.5.2::    How do I become a beta tester?
+* Q1.5.3::    How do I contribute to XEmacs itself?
+* Q1.5.4::    How do I get started developing XEmacs?
+* Q1.5.5::    What's the basic layout of the code?
+
+1.6: Politics (XEmacs vs. GNU Emacs)
+* Q1.6.1::    What is GNU Emacs?
+* Q1.6.2::    How does XEmacs differ from GNU Emacs?
+* Q1.6.3::    How much does XEmacs differ?
+* Q1.6.4::    Is XEmacs "GNU"?
+* Q1.6.5::    What is the correct way to refer to XEmacs and GNU Emacs?
+* Q1.6.6::    Why haven't XEmacs and GNU Emacs merged?
+
+1.7: External Packages
+* Q1.7.1::    What is the package system?
+* Q1.7.2::    Which external packages are there?
+* Q1.7.3::    Do I need to have the packages to run XEmacs?
+* Q1.7.4::    Is there a way to find which package has particular functionality?
+
+1.8: Internationalization
+* Q1.8.1::    What is the status of internationalization support aka MULE (including Asian language support)?
+* Q1.8.2::    How can I help with internationalization?
+* Q1.8.3::    How do I type non-ASCII characters?
+* Q1.8.4::    Can XEmacs messages come out in a different language?
+* Q1.8.5::    Please explain the various input methods in MULE/XEmacs
+* Q1.8.6::    How do I portably code for MULE/XEmacs?
+* Q1.8.7::    How about Cyrillic modes?
+* Q1.8.8::    Does XEmacs support Unicode?
+* Q1.8.9::    How does XEmacs display Unicode?
+
+2 Installation and Troubleshooting
+
+2.0: Installation (General)
+* Q2.0.1::    How do I build and install XEmacs?
+* Q2.0.2::    Where do I find external libraries?
+* Q2.0.3::    How do I specify the paths that XEmacs uses for finding files?
+* Q2.0.4::    Running XEmacs without installing
+* Q2.0.5::    XEmacs is too big
+
+2.1: Package Installation
+* Q2.1.1::    How do I install the packages?
+* Q2.1.2::    Can I install the packages individually?
+* Q2.1.3::    Can I install the packages automatically?
+* Q2.1.4::    Can I upgrade or remove packages?
+* Q2.1.5::    Which packages to install?
+* Q2.1.6::    Can you describe the package location process in more detail?
+* Q2.1.7::    EFS fails with "500 AUTH not understood"
+
+2.2: Unix/Mac OS X Installation (Also Relevant to Cygwin, MinGW)
+* Q2.2.1::    Libraries in non-standard locations
+* Q2.2.2::    Why can't I strip XEmacs?
+
+2.3: Windows Installation (Windows, Cygwin, MinGW)
+* Q2.3.1::    What exactly are all the different ways to build XEmacs under Windows?
+* Q2.3.2::    What compiler/libraries do I need to compile XEmacs?
+* Q2.3.3::    How do I compile the native port?
+* Q2.3.4::    What do I need for Cygwin?
+* Q2.3.5::    How do I compile under Cygwin?
+* Q2.3.6::    How do I compile using MinGW (aka `the -mno-cygwin flag to gcc')?
+* Q2.3.7::    How do I compile with X support?
+* Q2.3.8::    Cygwin XEmacs won't start -- cygXpm-noX4.dll was not found (NEW)
+
+2.4: General Troubleshooting
+* Q2.4.1::    How do I deal with bugs or with problems building, installing, or running?
+* Q2.4.2::    Help!  XEmacs just crashed on me!
+* Q2.4.3::    XEmacs crashes and I compiled it myself.
+* Q2.4.4::    How to debug an XEmacs problem with a debugger
+* Q2.4.5::    I get a cryptic error message when trying to do something.
+* Q2.4.6::    XEmacs hangs when I try to do something.
+* Q2.4.7::    I get an error message when XEmacs is running in batch mode.
+* Q2.4.8::    The keyboard or mouse is not working properly, or I have some other event-related problem.
+* Q2.4.9::    C-g doesn't work for me.  Is it broken?
+* Q2.4.10::   How do I debug process-related problems?
+* Q2.4.11::   XEmacs is outputting lots of X errors.
+* Q2.4.12::   After upgrading, XEmacs won't do `foo' any more!
+
+2.5: Startup-Related Problems
+* Q2.5.1::    XEmacs cannot connect to my X Terminal!
+* Q2.5.2::    Startup problems related to paths or package locations.
+* Q2.5.3::    XEmacs won't start without network.
+* Q2.5.4::    Startup warnings about deducing proper fonts?
+* Q2.5.5::    Warnings from incorrect key modifiers.
+* Q2.5.6::    XEmacs 21.1 on Windows used to spawn an ugly console window on every startup.  Has that been fixed?
+
+3 Editing Functions
+
+3.0: The Keyboard
+* Q3.0.1::    How can I customize the keyboard?
+* Q3.0.2::    How can I bind complex functions (or macros) to keys?
+* Q3.0.3::    How do I bind C-. and C-; to scroll one line up and down?
+* Q3.0.4::    Globally binding Delete?
+* Q3.0.5::    How to map Help key alone on Sun type4 keyboard?
+* Q3.0.6::    How can you type in special characters in XEmacs?
+* Q3.0.7::    Can I turn on "sticky" modifier keys?
+* Q3.0.8::    How do I map the arrow keys?
+* Q3.0.9::    HP Alt key as Meta.
+* Q3.0.10::   Why does edt emulation not work?
+* Q3.0.11::   How can I emulate VI and use it as my default mode?
+
+3.1: The Mouse
+* Q3.1.1::    How can I turn off Mouse pasting?
+* Q3.1.2::    How do I set control/meta/etc modifiers on mouse buttons?
+* Q3.1.3::    Clicking the left button does not do anything in buffer list.
+* Q3.1.4::    How can I get a list of buffers when I hit mouse button 3?
+* Q3.1.5::    How can I set XEmacs up so that it pastes where the text cursor is?
+
+3.2: Buffers, Text Editing
+* Q3.2.1::    Can I have the end of the buffer delimited in some way?
+* Q3.2.2::    How do I insert today's date into a buffer?
+* Q3.2.3::    How do I get a single minibuffer frame?
+* Q3.2.4::    How can I enable auto-indent and/or Filladapt?
+* Q3.2.5::    How can I get XEmacs to come up in text/auto-fill mode by default?
+
+3.3: Text Selections
+* Q3.3.1::    How do I select a rectangular region?
+* Q3.3.2::    How can I turn off or change highlighted selections?
+* Q3.3.3::    How do I cause typing on an active region to remove it?
+* Q3.3.4::    Can I turn off the highlight during isearch?
+* Q3.3.5::    Why is killing so slow?
+* Q3.3.6::    Why does M-w take so long?
+
+3.4: Editing Source Code
+* Q3.4.1::    I do not like cc-mode.  How do I use the old c-mode?
+* Q3.4.2::    How do you make XEmacs indent CL if-clauses correctly?
+
+4 Display Functions
+
+4.0: Textual Fonts and Colors
+* Q4.0.1::    How do I specify a font?
+* Q4.0.2::    How do I set the text, menu and modeline fonts?
+* Q4.0.3::    How can I set color options from `init.el'?
+* Q4.0.4::    How can I set the colors when highlighting a region?
+* Q4.0.5::    How can I limit color map usage?
+* Q4.0.6::    My tty supports color, but XEmacs doesn't use them.
+* Q4.0.7::    Can I have pixmap backgrounds in XEmacs?
+* Q4.0.8::    How do I display non-ASCII characters?
+* Q4.0.9::    Font selections in don't get saved after `Save Options'.
+
+4.1: Syntax Highlighting (Font Lock)
+* Q4.1.1::    How can I do source code highlighting using font-lock?
+* Q4.1.2::    How do I get `More' Syntax Highlighting on by default?
+
+4.2: The Modeline
+* Q4.2.1::    How can I make the modeline go away?
+* Q4.2.2::    How do you have XEmacs display the line number in the modeline?
+* Q4.2.3::    How do I get XEmacs to put the time of day on the modeline?
+* Q4.2.4::    How can I change the modeline color based on the mode used?
+
+4.3: The Cursor
+* Q4.3.1::    Is there a way to make the bar cursor thicker?
+* Q4.3.2::    Is there a way to get back the block cursor?
+* Q4.3.3::    Can I make the cursor blink?
+
+4.4: The Menubar
+* Q4.4.1::    How do I get rid of the menubar?
+* Q4.4.2::    How can I customize the menubar?
+* Q4.4.3::    How do I enable use of the keyboard (Alt) to access menu items?
+* Q4.4.4::    How do I control how many buffers are listed in the menu `Buffers List'?
+* Q4.4.5::    Resources like `Emacs*menubar*font' are not working?
+
+4.5: The Toolbar
+* Q4.5.1::    How do I get rid of the toolbar?
+* Q4.5.2::    How can I customize the toolbar?
+* Q4.5.3::    How can I bind a key to a function to toggle the toolbar?
+* Q4.5.4::    `Can't instantiate image error...' in toolbar
+
+4.6: Scrollbars and Scrolling
+* Q4.6.1::    How can I disable the scrollbar?
+* Q4.6.2::    How can I change the scrollbar width?
+* Q4.6.3::    How can I use resources to change scrollbar colors?
+* Q4.6.4::    Moving the scrollbar can move the point; can I disable this?
+* Q4.6.5::    Scrolling one line at a time.
+* Q4.6.6::    How can I turn off automatic horizontal scrolling in specific modes?
+* Q4.6.7::    I find auto-show-mode disconcerting.  How do I turn it off?
+
+4.7: The Gutter Tabs, The Progress Bar, Widgets
+* Q4.7.1::    How can I disable the gutter tabs?
+* Q4.7.2::    How can I disable the progress bar?
+* Q4.7.3::    There are bugs in the gutter or widgets.
+* Q4.7.4::    How can I customize the gutter or gutter tabs?
+
+5 Interfacing with the Operating System and External Devices
+
+5.0: X Window System and Resources
+* Q5.0.1::    Where is a list of X resources?
+* Q5.0.2::    How can I detect a color display?
+* Q5.0.3::    How can I get the icon to just say `XEmacs'?
+* Q5.0.4::    How can I have the window title area display the full path?
+* Q5.0.5::    `xemacs -name junk' doesn't work?
+* Q5.0.6::    `-iconic' doesn't work.
+
+5.1: Microsoft Windows
+* Q5.1.1::    Does XEmacs rename all the `win32-*' symbols to `w32-*'?
+* Q5.1.2::    How do I get Windows Explorer to associate a file type with XEmacs?
+
+5.2: Printing
+* Q5.2.1::    What do I need to change to make printing work?
+* Q5.2.2::    How can I print WYSIWYG a font-locked buffer?
+* Q5.2.3::    Getting M-x lpr to work with postscript printer.
+* Q5.2.4::    Can you print under MS Windows?
+
+5.3: Sound
+* Q5.3.1::    How do I turn off the sound?
+* Q5.3.2::    How do I get funky sounds instead of a boring beep?
+* Q5.3.3::    What are NAS and ESD (EsounD)?
+* Q5.3.4::    Sunsite sounds don't play.
+
+5.4: Running an Interior Shell, Invoking Subprocesses
+* Q5.4.1::    What is an interior shell?
+* Q5.4.2::    How do I start up a second shell buffer?
+* Q5.4.3::    Telnet from shell filters too much
+* Q5.4.4::    Strange things are happening in Shell Mode.
+* Q5.4.5::    XEmacs complains "No such file or directory, diff"
+* Q5.4.6::    Cygwin error "fork_copy: linked dll/bss pass 0 failed"
+
+5.5: Multiple Device Support
+* Q5.5.1::    How do I open a frame on another screen of my multi-headed display?
+* Q5.5.2::    Can I really connect to a running XEmacs after calling up over a modem?  How?
+* Q5.5.3::    How do I disable gnuserv from opening a new frame?
+* Q5.5.4::    How do I start gnuserv so that each subsequent XEmacs is a client?
+* Q5.5.5::    Is there a way to start a new XEmacs if there's no gnuserv running, and otherwise use gnuclient?
+
+6 Connecting to the Internet
+
+6.0: General Mail and News
+* Q6.0.1::    What are the various packages for reading mail?
+* Q6.0.2::    How can I send mail?
+* Q6.0.3::    How do I get my outgoing mail archived?
+* Q6.0.4::    How can I read and/or compose MIME messages?
+* Q6.0.5::    How do I customize the From line?
+* Q6.0.6::    How do I get my MUA to filter mail for me?
+* Q6.0.7::    Remote mail reading with an MUA.
+* Q6.0.8::    An MUA gets an error incorporating new mail.
+* Q6.0.9::    Why isn't `movemail' working?
+* Q6.0.10::   How do I make my MUA display graphical smilies?
+* Q6.0.11::   How can I get those oh-so-neat X-Face lines?
+
+6.1: Reading Mail with VM
+* Q6.1.1::    How do I set up VM to retrieve mail from a remote site using POP?
+* Q6.1.2::    How can I get VM to automatically check for new mail?
+* Q6.1.3::    I have various addresses at which I receive mail.  How can I tell VM to ignore them when doing a "reply-all"?
+* Q6.1.4::    Is there a mailing list or FAQ for VM?
+* Q6.1.5::    How do I make VM stay in a single frame?
+* Q6.1.6::    Customization of VM not covered in the manual, or here.
+
+6.2: Reading Netnews and Mail with Gnus
+* Q6.2.1::    GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus, Quassia Gnus, argh!
+* Q6.2.2::    How do I make Gnus stay within a single frame?
+
+6.3: FTP Access
+* Q6.3.1::    Can I edit files on other hosts?
+* Q6.3.2::    What is EFS?
+
+6.4: Web Browsing with W3
+* Q6.4.1::    What is W3?
+* Q6.4.2::    How do I run W3 from behind a firewall?
+* Q6.4.3::    Is it true that W3 supports style sheets and tables?
+
+7 Advanced Customization Using XEmacs Lisp
+
+7.0: Emacs Lisp and `init.el'
+* Q7.0.1::    What version of Emacs am I running?
+* Q7.0.2::    How can I evaluate Emacs-Lisp expressions?
+* Q7.0.3::    `(setq tab-width 6)' behaves oddly.
+* Q7.0.4::    How can I add directories to the `load-path'?
+* Q7.0.5::    How to check if a lisp function is defined?
+* Q7.0.6::    Can I force the output of `(face-list)' to a buffer?
+
+7.1: Emacs Lisp Programming Techniques
+* Q7.1.1::    What is the difference in key sequences between XEmacs and GNU Emacs?
+* Q7.1.2::    Can I generate "fake" keyboard events?
+* Q7.1.3::    Could you explain `read-kbd-macro' in more detail?
+* Q7.1.4::    What is the performance hit of `let'?
+* Q7.1.5::    What is the recommended use of `setq'?
+* Q7.1.6::    What is the typical misuse of `setq'?
+* Q7.1.7::    I like the `do' form of cl, does it slow things down?
+* Q7.1.8::    I like recursion, does it slow things down?
+* Q7.1.9::    How do I put a glyph as annotation in a buffer?
+* Q7.1.10::   `map-extents' won't traverse all of my extents!
+* Q7.1.11::   My elisp program is horribly slow.  Is there an easy way to find out where it spends time?
+
+7.2: Mathematics
+* Q7.2.1::    What are bignums, ratios, and bigfloats in Lisp?
+* Q7.2.2::    XEmacs segfaults when I use very big numbers!
+* Q7.2.3::    Bignums are really slow!
+* Q7.2.4::    Equal bignums don't compare as equal!  What gives?
+
+8 Other External Packages
+
+8.0: TeX
+* Q8.0.1::    Is there something better than LaTeX mode?
+* Q8.0.2::    What is AUCTeX?  Where do you get it?
+* Q8.0.3::    Problems installing AUCTeX.
+* Q8.0.4::    How do I turn off current chapter from AUCTeX modeline?
+
+8.1: Other Unbundled Packages
+* Q8.1.1::    Is there a reason for an Emacs package not to be included in XEmacs?
+* Q8.1.2::    Are there any Emacs Lisp Spreadsheets?
+* Q8.1.3::    Is there a MatLab mode?
+
+8.2: Environments Built Around XEmacs
+* Q8.2.1::    What are SPARCworks, EOS, and WorkShop?
+* Q8.2.2::    How do I start the Sun Workshop support in XEmacs 21?
+* Q8.2.3::    What is/was Energize?
+* Q8.2.4::    What is Infodock?
+
+9 What the Future Holds
+
+9.0: Changes
+* Q9.0.1::    What new features will be in XEmacs soon?
+* Q9.0.2::    What's new in XEmacs 21.4?
+* Q9.0.3::    What's new in XEmacs 21.1?
+* Q9.0.4::    What's new in XEmacs 20.4?
+* Q9.0.5::    What's new in XEmacs 20.3?
+* Q9.0.6::    What's new in XEmacs 20.2?
+
+10 New information about old XEmacsen
+
+10.0: XEmacs 21.1
+* Q10.0.1::   Gnus 5.10 won't display smileys in XEmacs 21.1.
+* Q10.0.2::   XEmacs won't start on Windows in XEmacs 21.1.
+
+\1f
+File: xemacs-faq.info,  Node: Introduction,  Next: Installation,  Prev: Top,  Up: Top
+
+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 Anthony Rossini
+<rossini@biostat.washington.edu>, who started it, after getting tired
+of hearing JWZ complain about repeatedly having to answer questions.
+Ben Wing <ben@xemacs.org> then took over and did a massive update
+reorganizing the whole thing.  At this 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@xemacs.org>.  It was converted back to texinfo by
+Hrvoje Niksic <hniksic@xemacs.org>.  The FAQ was then maintained by
+Andreas Kaempf <andreas@sccon.com>, who passed it on to ChristianNyb/o,
+and then to Sandra Wambold <wambold@xemacs.org>.
+
+   The current version of the FAQ has been heavily redone by Ben Wing
+<ben@xemacs.org>.
+
+   If you notice any errors or items which should be added or amended to
+this FAQ please send email to <xemacs-beta@xemacs.org>.  Include
+`XEmacs FAQ' on the Subject: line.
+
+* Menu:
+
+1.0: What is XEmacs?
+* Q1.0.1::    What is XEmacs?
+* Q1.0.2::    What is the current version of XEmacs?
+* Q1.0.3::    How do you pronounce XEmacs?
+* Q1.0.4::    What does XEmacs look like?
+* Q1.0.5::    Who wrote XEmacs?
+* Q1.0.6::    Who wrote the FAQ?
+
+1.1: Getting XEmacs
+* Q1.1.1::    Where can I find XEmacs?
+* Q1.1.2::    Are binaries available?
+* Q1.1.3::    How do I get the bleeding-edge sources?
+* Q1.1.4::    Where can I obtain a printed copy of the XEmacs User's Manual?
+
+1.2: Versions for Different Operating Systems
+* Q1.2.1::    Do I need X11 to run XEmacs?
+* Q1.2.2::    What versions of Unix does XEmacs run on?
+* Q1.2.3::    Is there a port of XEmacs to Microsoft Windows?
+* Q1.2.4::    Can I build XEmacs on MS Windows with X support?  Do I need to?
+* Q1.2.5::    What are Cygwin and MinGW, and do I need them to run XEmacs?
+* Q1.2.6::    What are the differences between the various MS Windows emacsen?
+* Q1.2.7::    How does the port cope with differences in the Windows user interface?
+* Q1.2.8::    Is there a port of XEmacs to the Macintosh?
+* Q1.2.9::    Is there a port of XEmacs to MS-DOS?
+* Q1.2.10::   Is there a port of XEmacs to OS/2?
+* Q1.2.11::   Is there a port of XEmacs to NextStep?
+* Q1.2.12::   Is there a port of XEmacs to VMS?
+
+1.3: Getting Started
+* Q1.3.1::    What is an `init.el' or `.emacs' and is there a sample one?
+* Q1.3.2::    Where do I put my `init.el' file?
+* Q1.3.3::    Can I use the same `init.el' with the other Emacs?
+* Q1.3.4::    Any good XEmacs tutorials around?
+* Q1.3.5::    May I see an example of a useful XEmacs Lisp function?
+* Q1.3.6::    And how do I bind it to a key?
+* Q1.3.7::    What's the difference between a macro and a function?
+* Q1.3.8::    What is `Custom'?
+
+1.4: Getting Help
+* Q1.4.1::    Where can I get help?
+* Q1.4.2::    Which mailing lists are there?
+* Q1.4.3::    Where are the mailing lists archived?
+* Q1.4.4::    How can I get two instances of info?
+* Q1.4.5::    How do I add new Info directories?
+
+1.5: Contributing to XEmacs
+* Q1.5.1::    How do I submit changes to the FAQ?
+* Q1.5.2::    How do I become a beta tester?
+* Q1.5.3::    How do I contribute to XEmacs itself?
+* Q1.5.4::    How do I get started developing XEmacs?
+* Q1.5.5::    What's the basic layout of the code?
+
+1.6: Politics (XEmacs vs. GNU Emacs)
+* Q1.6.1::    What is GNU Emacs?
+* Q1.6.2::    How does XEmacs differ from GNU Emacs?
+* Q1.6.3::    How much does XEmacs differ?
+* Q1.6.4::    Is XEmacs "GNU"?
+* Q1.6.5::    What is the correct way to refer to XEmacs and GNU Emacs?
+* Q1.6.6::    Why haven't XEmacs and GNU Emacs merged?
+
+1.7: External Packages
+* Q1.7.1::    What is the package system?
+* Q1.7.2::    Which external packages are there?
+* Q1.7.3::    Do I need to have the packages to run XEmacs?
+* Q1.7.4::    Is there a way to find which package has particular functionality?
+
+1.8: Internationalization
+* Q1.8.1::    What is the status of internationalization support aka MULE (including Asian language support)?
+* Q1.8.2::    How can I help with internationalization?
+* Q1.8.3::    How do I type non-ASCII characters?
+* Q1.8.4::    Can XEmacs messages come out in a different language?
+* Q1.8.5::    Please explain the various input methods in MULE/XEmacs
+* Q1.8.6::    How do I portably code for MULE/XEmacs?
+* Q1.8.7::    How about Cyrillic modes?
+* Q1.8.8::    Does XEmacs support Unicode?
+* Q1.8.9::    How does XEmacs display Unicode?
+
+1.0: What is XEmacs?
+====================
+
+\1f
+File: xemacs-faq.info,  Node: Q1.0.1,  Next: Q1.0.2,  Prev: Introduction,  Up: Introduction
+
+Q1.0.1: What is XEmacs?
+-----------------------
+
+XEmacs is a powerful, highly customizable open source text editor and
+application development system, with full GUI support.  It is protected
+under the GNU Public License and related to other versions of Emacs, in
+particular GNU Emacs.  Its emphasis is on modern graphical user
+interface support and an open software development model, similar to
+Linux.  XEmacs has an active development community numbering in the
+hundreds (and thousands of active beta testers on top of this), and
+runs on all versions of MS Windows, on Mac OS X, on Linux, and on
+nearly every other version of Unix in existence.  Support for XEmacs
+has been supplied by Sun Microsystems, University of Illinois, Lucid,
+ETL/Electrotechnical Laboratory, Amdahl Corporation, BeOpen, and
+others, as well as the unpaid time of a great number of individual
+developers.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.0.2,  Next: Q1.0.3,  Prev: Q1.0.1,  Up: Introduction
+
+Q1.0.2: What is the current version of XEmacs?
+----------------------------------------------
+
+XEmacs versions 21.4.* are releases made from the current stable
+sources.  XEmacs versions 21.5.* (which will be released as 22.0) are
+releases made from the development sources.  Check at
+`http://www.xemacs.org' for the current minor version.  XEmacs versions
+21.1.* were the previous stable releases, now retired.
+
+   XEmacs 20.4, released in February 1998, was the last release of v20.
+
+   XEmacs 19.16, released in November, 1997. was the last release of
+v19, and was also the last version without international language
+support.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.0.3,  Next: Q1.0.4,  Prev: Q1.0.2,  Up: Introduction
+
+Q1.0.3: How do you pronounce XEmacs?
+------------------------------------
+
+The most common pronounciation is `Eks eemax'.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.0.4,  Next: Q1.0.5,  Prev: Q1.0.3,  Up: Introduction
+
+Q1.0.4: What does XEmacs look like?
+-----------------------------------
+
+Screen snapshots are available at
+`http://www.xemacs.org/About/Screenshots/index.html' as part of the
+XEmacs website.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.0.5,  Next: Q1.0.6,  Prev: Q1.0.4,  Up: Introduction
+
+Q1.0.5: Who wrote XEmacs?
+-------------------------
+
+XEmacs is the result of the time and effort of many people, and the
+active developers have changed over time.  There are two major
+components of the XEmacs effort - writing the code itself and providing
+all the support work (testing the code, releasing beta and final
+versions, handling patches, reading bug reports, maintaining the web
+site, managing the mailing lists, etc. etc.).  Neither component would
+work without the other.
+
+CODING
+------
+
+The primary code contributor over the years has been Ben Wing (active
+since late 1992).  Between 1991 and 1995, large amounts of coding was
+contributed by Jamie Zawinski and Chuck Thompson.  Many other people
+have authored major subsystems or otherwise contributed large amounts of
+code, including Andy Piper, Hrvoje Niksic, Jerry James, Jonathan Harris,
+Kyle Jones, Martin Buchholz, Michael Sperber, Olivier Galibert, Richard
+Mlynarik, Stig, William Perry and plenty of others.
+
+   Primary XEmacs-specific subsystems and their authors:
+
+Objects
+        - Conversion from 26-bit to 28-bit pointers and integers,
+          lrecords, lcrecords: Richard Mlynarik, 1994
+
+        - Conversion to 32-bit pointers and 31-bit integers: Kyle
+          Jones, Martin Buchholz
+
+        - Portable dumper, object descriptions: Olivier Galibert
+
+        - KKCC (new garbage collector), ephemerons, weak boxes: Michael
+          Sperber and students
+
+        - Random object work (object equal and hash methods, weak
+          lists, lcrecord lists, bit vectors, dynarr, blocktype,
+          opaque, string resizing): Ben Wing
+
+        - Profiling: Ben Wing
+
+        - Some byte-compilation and hash-table improvements: Martin
+          Buchholz
+
+        - Bignum: Jerry James
+
+Internationalization/Mule
+        - mostly Ben Wing; many ideas for future work, Stephen Turnbull
+
+I/O
+        - Basic event/event-stream implementation: Jamie Zawinski
+
+        - Most event work since 1994: Ben Wing
+
+        - Asynchronous stuff (async timeouts, signals, quit-checking):
+          Ben Wing
+
+        - Process method abstraction, Windows process work: Kirill
+          Katsnelson
+
+        - Misc-user events, async timeouts, most quit-checking and
+          signal code, most other work since 1994: Ben Wing
+
+        - Lstreams: Ben Wing
+
+Display
+        - Redisplay mechanism: implementation, Chuck Thompson;
+          additional work, lots of people
+
+        - Glyphs: mostly Ben Wing
+
+        - Specifiers: Ben Wing
+
+        - Extents: initial implementation, someone at Lucid; rewrite,
+          1994, Ben Wing
+
+        - Widgets: Andy Piper
+
+        - JPEG/PNG/TIFF image converters: Ben Wing, William Perry,
+          Jareth Hein, others (see comment in `glyphs-eimage.c')
+
+        - Menus: Jamie Zawinski, someone at Lucid (Lucid menus)
+
+        - Scrollbars: Chuck Thompson, ??? (Lucid scrollbar)
+
+        - Multi-device/device-independence work (console/device/etc
+          methods): Ben Wing, prototype by chuck thompson
+
+        - Faces: first implementation, Jamie Zawinski; second, chuck;
+          third, Ben Wing
+
+        - Fonts/colors: first implementation, Jamie Zawinski; further
+          work, Ben Wing
+
+        - Toolbars: implementation, chuck, much interface work, Ben Wing
+
+        - Gutters, tabs: andy piper
+
+Device subsystems
+        - X Windows: Jamie Zawinksi, Ben Wing, others
+
+        - GTK: William Perry, Malcolm Purvis
+
+        - MS Windows: initial implementation, Jonathan Harris; some
+          more work, Andy Piper, Ben Wing
+
+        - TTY: Chuck Thompson, Ben Wing
+
+        - Cygwin: Andy Piper
+
+Misc
+        - Configure: initial porting from fsf, Chuck Thompson;
+          conversion to autoconf 2, much rewriting, Martin Buchholz
+
+        - Most initialization-related code: Ben Wing
+
+        - Internals manual, much of Lisp manual: Ben Wing
+
+        - FSF synching: initial sync with FSF 19, Richard Mlynarik,
+          further work, Ben Wing
+
+SUPPORT
+-------
+
+Currently, support duties are handled by many different people.
+
+   Release managers have been
+
+   - Stephen Turnbull (April 2001 - January 2003, March 2004 - present,
+     21.2.47 - 21.4.12, 21.5.2 - 21.5.7, 21.5.17 - present)
+
+   - Vin Shelton (Mar 1997 - Jan 2001, May 2003 - present, 19.16,
+     21.1.3 - 21.1.14, 21.4.13 - present)
+
+   - Steve Youngs (July 2002 - September 2003, 21.5.8 - 21.5.16)
+
+   - Martin Buchholz (December 1998, November 1999 - May 2001, 21.2.7 -
+     21.2.8, 21.2.21 - 21.2.46, 21.5.0 - 21.5.1)
+
+   - Steve Baur (early 1997 - December 1998, February 1999 - November
+     1999, 19.15 - 21.2.5, 21.2.9 - 21.2.20)
+
+   - Andy Piper (December 1998, 21.2.6)
+
+   - Chuck Thompson (June 1994 - September 1996, 19.11 - 19.14)
+
+   - Jamie Zawinski (April 1991 - June 1994, 19.0 - 19.10)
+
+   The recent overlapping dates are intentional, since two or three
+trees are maintained simultaneously at any point.
+
+   Other major support work:
+
+   - Adrian Aichner wrote and maintains the web site.
+
+   - Stephen Turnbull has produced many of the beta and semi-stable
+     releases and has attempted to be the "face" of XEmacs on the
+     newsgroups and mailing lists.
+
+   - Steve Youngs currently produces the beta releases (???).
+
+   - Steve Youngs, Ville Skytta, and now Norbert Koch have taken turns
+     maintaining the packages.
+
+   - Vin Shelton maintains the stable releases.
+
+   - Testing - #### Norbert, Adrian, ???
+
+   Portraits and email of some of the major developers:
+
+   * Andy Piper <andy@xemacs.org>
+
+   * Ben Wing <ben@xemacs.org>
+
+   * Chuck Thompson <cthomp@xemacs.org>
+
+   * Hrvoje Niksic <hniksic@xemacs.org>
+
+   * Jamie Zawinski <jwz@jwz.org>
+
+   * Martin Buchholz <martin@xemacs.org>
+
+   * Richard Mlynarik <mly@adoc.xerox.com>
+
+   * Stephen Turnbull <stephen@xemacs.org>
+
+   * Steve Baur <steve@xemacs.org>
+
+   Many other people have contributed to XEmacs; this is partially
+enumerated in the `About XEmacs' option in the Help menu.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.0.6,  Next: Q1.1.1,  Prev: Q1.0.5,  Up: Introduction
+
+Q1.0.6: Who wrote the FAQ?
+--------------------------
+
+The current version of this FAQ was created by Ben Wing
+<ben@xemacs.org>.
+
+   Previous contributors to the FAQ include
+
+   * SL Baur <steve@xemacs.org>
+
+   * Hrvoje Niksic <hniksic@xemacs.org>
+
+   * Curtis.N.Bingham <binge@aloft.att.com>
+
+   * Georges Brun-Cottan <bruncott@dormeur.inria.fr>
+
+   * Richard Caley <rjc@cogsci.ed.ac.uk>
+
+   * Richard Cognot <cognot@ensg.u-nancy.fr>
+
+   * Mark Daku <daku@nortel.ca>
+
+   * William G. Dubuque <wgd@martigny.ai.mit.edu>
+
+   * Eric Eide <eeide@cs.utah.edu>
+
+   * Alain Fauconnet <af@biomath.jussieu.fr>
+
+   * Chris Flatters <cflatter@nrao.edu>
+
+   * Evelyn Ginsparg <ginsparg@adra.com>
+
+   * Marty Hall <hall@aplcenmp.apl.jhu.edu>
+
+   * Darrell Kindred <dkindred@cmu.edu>
+
+   * David Moore <dmoore@ucsd.edu>
+
+   * Arup Mukherjee <arup+@cmu.edu>
+
+   * Juergen Nickelsen <nickel@prz.tu-berlin.de>
+
+   * Kevin R. Powell <powell@csl.ncsa.uiuc.edu>
+
+   * Justin Sheehy <dworkin@ccs.neu.edu>
+
+   * Stig <stig@hackvan.com>
+
+   * Aki Vehtari <Aki.Vehtari@hut.fi>
+
+1.1: Getting XEmacs
+===================
+
+\1f
+File: xemacs-faq.info,  Node: Q1.1.1,  Next: Q1.1.2,  Prev: Q1.0.6,  Up: Introduction
+
+Q1.1.1: Where can I find XEmacs?
+--------------------------------
+
+To download XEmacs, visit the XEmacs WWW page at
+`http://www.xemacs.org/Download/'.  The most up-to-date list of
+distribution sites can always be found there.  Try to pick a site that
+is networkologically close to you.  If you know of other mirrors of the
+XEmacs archives, please send e-mail to `mailto:webmaster@xemacs.org'
+and we will list them here as well.
+
+   The canonical distribution point is ftp.xemacs.org, available either
+through HTTP (`http://ftp.xemacs.org/') or anonymous FTP
+(`ftp://ftp.xemacs.org/pub/xemacs/').
+
+\1f
+File: xemacs-faq.info,  Node: Q1.1.2,  Next: Q1.1.3,  Prev: Q1.1.1,  Up: Introduction
+
+Q1.1.2: Are binaries available?
+-------------------------------
+
+MS Windows binaries are available at
+`http://www.xemacs.org/Download/win32/' for the native versions of 21.4
+and 21.1.  Cygwin binaries are now available as part of the standard
+Cygwin installation process.  XEmacs also comes pre-built as part of
+many Linux distributions, such as Red Hat and SuSE.
+
+   Otherwise, you will need to build XEmacs yourself or get your system
+administrator to do it.  Generally, this is not a difficult process
+under Unix and Mac OS X, as XEmacs has been tested under all of the
+common Unix versions and under Mac OS X and comes with an extensive
+configure script that is able to automatically detect most aspects of
+the configuration of your particular system.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.1.3,  Next: Q1.1.4,  Prev: Q1.1.2,  Up: Introduction
+
+Q1.1.3: How do I get the bleeding-edge sources?
+-----------------------------------------------
+
+If you are interested in developing XEmacs, or getting the absolutely
+most recent, up-to-the-moment, bleeding-edge source code, you can
+directly access the master CVS source tree (read-only, of course, until
+you ask for and are granted permission to directly modify portions of
+the source tree) at cvs.xemacs.org.  Directions on how to access the
+source tree are located at
+`http://www.xemacs.org/Develop/cvsaccess.html'.
+
+   Nightly CVS snapshots are available at
+`http://www.dk.xemacs.org/Download/CVS-snapshots/'.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.1.4,  Next: Q1.2.1,  Prev: Q1.1.3,  Up: Introduction
+
+Q1.1.4: Where can I obtain a printed copy of the XEmacs User's Manual?
+----------------------------------------------------------------------
+
+Pre-printed manuals are not available.  If you are familiar with TeX,
+you can generate your own manual from the XEmacs sources.
+
+   HTML and Postscript versions of XEmacs manuals are available from the
+XEmacs web site at `http://www.xemacs.org/Documentation/index.html'.
+
+1.2: Versions for Different Operating Systems
+=============================================
+
+\1f
+File: xemacs-faq.info,  Node: Q1.2.1,  Next: Q1.2.2,  Prev: Q1.1.4,  Up: Introduction
+
+Q1.2.1: Do I need X11 to run XEmacs?
+------------------------------------
+
+No.  The name "XEmacs" is unfortunate in the sense that it is *not* an
+X Window System-only version of Emacs.  XEmacs has full color support
+on a color-capable character terminal.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.2.2,  Next: Q1.2.3,  Prev: Q1.2.1,  Up: Introduction
+
+Q1.2.2: What versions of Unix does XEmacs run on?
+-------------------------------------------------
+
+XEmacs is regularly tested on Linux, Solaris, SunOS, HP/UX, FreeBSD,
+OpenBSD, BSD/OS aka BSDI, Tru64 aka DEC/OSF, SCO5, and probably others.
+It should work on all versions of Unix created in the last 10 years or
+so, perhaps with a bit of work on more obscure platforms to correct
+bit-rot.  It uses a sophisticated configuration system to auto-detect
+zillions of features that are implemented differently in different
+versions of Unix, so it will probably work on your vendor's version,
+possibly with a bit of tweaking, even if we've never heard of it.
+
+   For problems with particular machines and versions of Unix, see the
+`PROBLEMS' file.
+
+   Much effort has gone into making XEmacs work on as many different
+machines, configurations, and compilers as possible.
+
+   Much effort has gone into making XEmacs 64-bit clean.
+
+   Much effort has gone into removing system-specific code, and
+replacing such code with autodetection at configure time.
+
+   The XEmacs core should build "out of the box" on most Unix-like
+systems.
+
+   XEmacs 21.2 was tested and `make check' succeeded on these Unix
+configurations as of 2001-02-10:
+
+     alphaev56-dec-osf4.0e (both Compaq C and gcc)
+     i386-unknown-freebsd4.2
+     i386-unknown-netbsdelf1.5
+     i586-sco-sysv5uw7.0.1 (both SCO's cc and gcc)
+     i686-pc-linux-gnu
+     hppa2.0-hp-hpux10.20 (both HP's ANSI cc and gcc)
+     mips-sgi-irix6.5 (both MIPSpro cc and gcc)
+     rs6000-ibm-aix4.3.0.0 (both IBM's xlc and gcc)
+     sparc-sun-solaris2.6 (both Sun's Forte C and gcc)
+     sparc-sun-solaris2.7 (both Sun's Forte C and gcc)
+     sparc-sun-sunos4.1.4 (gcc)
+
+   Some systems have a dual mode 32-bit/64-bit compiler.  On most of
+these, XEmacs requires the `--pdump' (in XEmacs 21.5, `--enable-pdump')
+configure option to build correctly with the 64-bit version of the
+compiler.
+
+     mips-sgi-irix6.5, CC="gcc -mabi=64"
+     mips-sgi-irix6.5, CC="cc -64"
+     rs6000-ibm-aix4.3.0.0, CC="cc -q64"
+
+   On most of these systems, XEmacs also builds with a C++ compiler,
+but not "out of the box".  This feature is only for use by the
+maintainers.
+
+   XEmacs 21.2 is known _not_ to work on any machines with m680x0
+processors.  Sorry, all you sun3 and Unix PC nostalgia buffs out there.
+
+   VMS has never been supported by XEmacs.  In fact, all the old VMS
+code inherited from Emacs has been removed.  Sorry, all you VMS fans
+out there.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.2.3,  Next: Q1.2.4,  Prev: Q1.2.2,  Up: Introduction
+
+Q1.2.3: Is there a port of XEmacs to Microsoft Windows?
+-------------------------------------------------------
+
+Yes.  Beginning with release 21.0, XEmacs has worked under MS Windows
+and is fully-featured and actively developed.  A group of dedicated
+developers actively maintains and improves the Windows-specific
+portions of the code.  Some of the core developers, in fact, use
+Windows as their only development environment, and some features, such
+as printing, actually work better on Windows than native Unix and Mac
+OS X.  The mailing list at <xemacs-winnt@xemacs.org> is dedicated to
+that effort (please use the -request address to subscribe). (Despite
+its name, XEmacs actually works on all versions of Windows.)
+
+   The list name is misleading, as XEmacs supports and has been
+compiled on Windows 95, Windows 98, Windows NT, Windows 2000, Windows
+ME, Windows XP, and all newer versions of Windows.  The MS
+Windows-specific code is based on Microsoft Win32 API, and will not
+work on MS Windows 3.x or on MS-DOS.
+
+   XEmacs also supports the Cygwin and MinGW development and runtime
+environments, where it also uses native Windows code for graphical
+features.  In addition, under Cygwin it is possible to compile XEmacs
+to use an X server (and XFree86 is available as part of the standard
+Cygwin installation).
+
+\1f
+File: xemacs-faq.info,  Node: Q1.2.4,  Next: Q1.2.5,  Prev: Q1.2.3,  Up: Introduction
+
+Q1.2.4: Can I build XEmacs on MS Windows with X support?  Do I need to?
+-----------------------------------------------------------------------
+
+Yes, you can, but no you do not need to.  In fact, we recommend that you
+use a native-GUI version unless you have a specific need for an X
+version.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.2.5,  Next: Q1.2.6,  Prev: Q1.2.4,  Up: Introduction
+
+Q1.2.5: What are Cygwin and MinGW, and do I need them to run XEmacs?
+--------------------------------------------------------------------
+
+To answer the second part of the question: No, you, you don't need
+Cygwin or MinGW to build or to run XEmacs.  But if you have them and
+want to use them, XEmacs supports these environments.
+
+   (One important reason to support Cygwin is that it lets the MS
+Windows developers test out their code in a Unix environment without
+actually having to have a Unix machine around.  For this reason alone,
+Cygwin support is likely to remain supported for a long time in XEmacs.
+Same goes for the X support under Cygwin, for the same reasons.  MinGW
+support, on the other hand, depends on volunteers to keep it up to date;
+but this is generally not hard.)
+
+   Cygwin is a set of tools providing Unix-like API on top of Win32.
+It makes it easy to port large Unix programs without significant
+changes to their source code.  It is a development environment as well
+as a runtime environment.
+
+   When built with Cygwin, XEmacs supports all display types - TTY, X &
+Win32 GUI, and can be built with support for all three simultaneously.
+If you build with Win32 GUI support then the Cygwin version uses the
+majority of the Windows-specific code, which is mostly related to
+display.  If you want to build with X support you need X libraries (and
+an X server to display XEmacs on); see *Note Q2.3.7::.  TTY and Win32
+GUI require no additional libraries beyond what comes standard with
+Cygwin.
+
+   The advantages of the Cygwin version are that it integrates well with
+the Cygwin environment for existing Cygwin users; uses configure so
+building with different features is very easy; and actively supports X &
+TTY.  Furthermore, the entire Cygwin environment and compiler are free,
+whereas Visual C++ costs money.
+
+   The disadvantage is that it requires the whole Cygwin environment,
+whereas the native port requires only a suitable MS Windows compiler.
+Also, it follows the Unix filesystem and process model very closely
+(some will undoubtedly view this as an advantage).
+
+   See `http://www.cygwin.com/' for more information on Cygwin.
+
+   MinGW is a collection of header files and import libraries that allow
+one to use GCC under the Cygwin environment to compile and produce
+exactly the same native Win32 programs that you can using Visual C++.
+Programs compiled with MinGW make use of the standard Microsoft runtime
+library `MSVCRT.DLL', present on all Windows systems, and look, feel,
+and act like a standard Visual-C-produced application. (The only
+difference is the compiler.) This means that, unlike a
+standardly-compiled Cygwin application, no extra runtime support (e.g.
+Cygwin's `cygwin1.dll') is required.  This, along with the fact that
+GCC is free (and works in a nice Unix-y way in a nice Unix-y
+environment, for those die-hard Unix hackers out there), is the main
+advantage of MinGW.  It is also potentially faster than Cygwin because
+it has less overhead when calling Windows, but you lose the POSIX
+emulation layer, which makes Unix programs harder to port. (But this is
+irrelevant for XEmacs since it's already ported to Win32.)
+
+   See `http://www.mingw.org/' for more information on MinGW.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.2.6,  Next: Q1.2.7,  Prev: Q1.2.5,  Up: Introduction
+
+Q1.2.6: What are the differences between the various MS Windows emacsen?
+------------------------------------------------------------------------
+
+XEmacs, Win-Emacs, DOS Emacs, NT Emacs, this is all very confusing.
+Could you briefly explain the differences between them?
+
+   Here is a recount of various Emacs versions running on MS Windows:
+
+   * XEmacs
+
+        - Beginning with XEmacs 19.12, XEmacs' architecture was
+          redesigned in such a way to allow clean support of multiple
+          window systems.  At this time the TTY support was added,
+          making X and TTY the first two "window systems" supported by
+          XEmacs.  The 19.12 design is the basis for the current native
+          MS Windows code.
+
+        - Some time during 1997, David Hobley (soon joined by Marc
+          Paquette) imported some of the NT-specific portions of GNU
+          Emacs, making XEmacs with X support compile under Windows NT,
+          and creating the "X" port.
+
+        - Several months later, Jonathan Harris sent out initial
+          patches to use the Win32 API, thus creating the native port.
+          Since then, various people have contributed, including Kirill
+          M. Katsnelson (contributed support for menubars, subprocesses
+          and network, as well as loads of other code), Andy Piper
+          (ported XEmacs to Cygwin environment, contributed Windows
+          unexec, Windows-specific glyphs and toolbars code, and more),
+          Ben Wing (loads of improvements; primary MS Windows developer
+          since 2000), Jeff Sparkes (contributed scrollbars support)
+          and many others.
+
+   * NT Emacs
+
+        - NT Emacs was an early version of GNU Emacs 19 modified to
+          compile and run under MS Windows 95 and NT using the native
+          Win32 API.  It was written by Geoff Voelker, and has long
+          since been incorporated into the mainline GNU Emacs
+          distribution.
+
+   * Win-Emacs
+
+        - Win-Emacs was a port of Lucid Emacs 19.6 to MS Windows using X
+          compatibility libraries.  Win-Emacs was written by Ben Wing.
+          The MS Windows code never made it back to Lucid Emacs, and
+          its creator (Pearl Software) has long since gone out of
+          business.
+
+   * GNU Emacs for DOS
+
+        - GNU Emacs features support for MS-DOS and DJGPP (D.J.
+          Delorie's DOS port of GCC).  Such an Emacs is heavily
+          underfeatured, because it does not support long file names,
+          lacks proper subprocesses support, and is far too big
+          compared with typical DOS editors.
+
+   * GNU Emacs compiled with Win32
+
+        - Starting with GNU Emacs 19.30, it has been possible to
+          compile GNU Emacs under MS Windows using the DJGPP compiler
+          and X libraries.  The result is very similar to GNU Emacs
+          compiled under MS DOS, only it works somewhat better because
+          it runs in 32-bit mode, makes use of all the system memory,
+          supports long file names, etc.
+
+
+\1f
+File: xemacs-faq.info,  Node: Q1.2.7,  Next: Q1.2.8,  Prev: Q1.2.6,  Up: Introduction
+
+Q1.2.7: How does the port cope with differences in the Windows user interface?
+------------------------------------------------------------------------------
+
+The XEmacs (and Emacs in general) user interface is pretty different
+from what is expected of a typical MS Windows program.  How does the MS
+Windows port cope with it?
+
+   As a general rule, we follow native MS Windows conventions as much as
+possible.  21.4 is a fairly complete Windows application, supporting
+native printing, system file dialog boxes, tool tips, etc.  In cases
+where there's a clear UI conflict, we currently use normal Unix XEmacs
+behavior by default, but make sure the MS Windows "look and feel" (mark
+via shift-arrow, self-inserting deletes region, Alt selects menu items,
+etc.) is easily configurable (respectively: using the variable
+`shifted-motion-keys-select-region' in 21.4 and above [it's in fact the
+default in these versions], or the `pc-select' package; using the
+`pending-del' package; and setting the variable
+`menu-accelerator-enabled' to `menu-force' in 21.4 and above).  In
+fact, if you use the sample `init.el' file as your init file, you will
+get all these behaviors automatically turned on.
+
+   In future versions, some of these features might be turned on by
+default in the MS Windows environment.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.2.8,  Next: Q1.2.9,  Prev: Q1.2.7,  Up: Introduction
+
+Q1.2.8: Is there a port of XEmacs to the Macintosh?
+---------------------------------------------------
+
+Yes.
+
+   XEmacs 21.5 (perhaps 21.4 also?) works on MacOS X, although it
+certainly will not feel very much like a Mac application as it has no
+Mac-specific code in it.
+
+   There is also a port of XEmacs 19.14 that works on all recent
+versions of MacOS, from 8.1 through MacOS X, by Pitts Jarvis
+<pjarvis@ispchannel.com> (recently deceased).  It runs in an equivalent
+of TTY mode only (one single Macintosh window, 25 colors), but has a
+large number of Mac-specific additions.  It's available at
+`http://homepage.mac.com/pjarvis/xemacs.html'.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.2.9,  Next: Q1.2.10,  Prev: Q1.2.8,  Up: Introduction
+
+Q1.2.9: Is there a port of XEmacs to MS-DOS?
+--------------------------------------------
+
+No.  We have never supported running on MS-DOS or Windows 3.1, and in
+fact have long since deleted all MS-DOS-related code.  We're not
+particularly interested in patches for these platforms, as they would
+introduce huge amounts of code clutter due to the woefully
+underfeatured nature of these systems. (See GNU Emacs for a port to
+MS-DOS.)
+
+\1f
+File: xemacs-faq.info,  Node: Q1.2.10,  Next: Q1.2.11,  Prev: Q1.2.9,  Up: Introduction
+
+Q1.2.10: Is there a port of XEmacs to OS/2?
+-------------------------------------------
+
+No, but Alexander Nikolaev <avn_1251@mail.ru> was at one point working
+on it.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.2.11,  Next: Q1.2.12,  Prev: Q1.2.10,  Up: Introduction
+
+Q1.2.11: 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.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.2.12,  Next: Q1.3.1,  Prev: Q1.2.11,  Up: Introduction
+
+Q1.2.12: Is there a port of XEmacs to VMS?
+------------------------------------------
+
+VMS has never been supported by XEmacs.  In fact, all the old VMS code
+inherited from GNU Emacs has been removed.  Sorry, all you VMS fans out
+there.
+
+1.3: Getting Started
+====================
+
+\1f
+File: xemacs-faq.info,  Node: Q1.3.1,  Next: Q1.3.2,  Prev: Q1.2.12,  Up: Introduction
+
+Q1.3.1: What is an `init.el' or `.emacs' and is there a sample one?
+-------------------------------------------------------------------
+
+The `init.el' or `.emacs' file is used to customize XEmacs to your
+tastes.  Starting in 21.4, the preferred location for the init file is
+`~/.xemacs/init.el'; in previous versions, it was `~/.emacs'.  21.4
+still accepts the old location, but the first time you run it, it will
+ask to migrate your file to the new location.  If you answer yes, the
+file will be moved, and a "compatibility" `.emacs' file will be placed
+in the old location so that you can still run older versions of XEmacs,
+and versions of GNU Emacs, which expect the old location.  The `.emacs'
+file present is just a stub that loads the real file in
+`~/.xemacs/init.el'.
+
+   No two init files are alike, nor are they expected to be alike, but
+that's the point.  The XEmacs distribution contains an excellent starter
+example in the `etc/' directory called `sample.init.el' (starting in
+21.4) or `sample.emacs' in older versions.  Copy this file from there
+to `~/.xemacs/init.el' (starting in 21.4) or `~/.emacs' in older
+versions, where `~' means your home directory, of course.  Then edit it
+to suit.
+
+   You may bring the `sample.init.el' or `sample.emacs' file into an
+XEmacs buffer from the menubar. (The menu entry for it is always under
+the `Help' menu, but its location under that has changed in various
+versions.  Recently, look under the `Samples' submenu.)  To determine
+the location of the `etc/' directory type the command `C-h v
+data-directory <RET>'.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.3.2,  Next: Q1.3.3,  Prev: Q1.3.1,  Up: Introduction
+
+Q1.3.2: Where do I put my `init.el' file?
+-----------------------------------------
+
+`init.el' is the name of the init file starting with 21.4, and is
+located in the subdirectory `.xemacs/' of your home directory.  In
+prior versions, the init file is called `.emacs' and is located in your
+home directory.
+
+   Your home directory under Windows is determined by the `HOME'
+environment variable.  If this is not set, it defaults to `C:\'.  To
+set this variable, modify `AUTOEXEC.BAT' under Windows 95/98, or select
+`Control Panel->System->Advanced->Environment Variables...' under
+Windows NT/2000.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.3.3,  Next: Q1.3.4,  Prev: Q1.3.2,  Up: Introduction
+
+Q1.3.3: Can I use the same `init.el' with the other Emacs?
+----------------------------------------------------------
+
+Yes.  The sample `init.el' included in the XEmacs distribution will
+show you how to handle different versions and flavors of Emacs.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.3.4,  Next: Q1.3.5,  Prev: Q1.3.3,  Up: Introduction
+
+Q1.3.4: Any good XEmacs tutorials around?
+-----------------------------------------
+
+There's the XEmacs tutorial available from the Help Menu under
+`Help->Tutorials', or by typing `C-h t'. To check whether it's
+available in a non-english language, type `C-u C-h t TAB', type the
+first letters of your preferred language, then type <RET>.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.3.5,  Next: Q1.3.6,  Prev: Q1.3.4,  Up: Introduction
+
+Q1.3.5: 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
+cursor, and it's interactive so it may be bound to a key.  It inserts
+copies of the current word the cursor is sitting on at the cursor.  If
+you give it a prefix argument: `C-u 3 M-x double-word' then it will
+insert 3 copies.
+
+     (defun double-word (count)
+       "Insert a copy of the current word underneath the cursor"
+       (interactive "*p")
+       (let (here there string)
+         (save-excursion
+           (forward-word -1)
+           (setq here (point))
+           (forward-word 1)
+           (setq there (point))
+           (setq string (buffer-substring here there)))
+         (while (>= count 1)
+           (insert string)
+           (decf count))))
+
+   The best way to see what is going on here is to let XEmacs tell you.
+Put the code into an XEmacs buffer, and do a `C-h f' with the cursor
+sitting just to the right of the function you want explained.  Eg.  move
+the cursor to the SPACE between `interactive' and `"*p"' and hit `C-h
+f' to see what the function `interactive' does.  Doing this will tell
+you that the `*' requires a writable buffer, and `p' converts the
+prefix argument to a number, and `interactive' allows you to execute
+the command with `M-x'.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.3.6,  Next: Q1.3.7,  Prev: Q1.3.5,  Up: Introduction
+
+Q1.3.6: And how do I bind it to a key?
+--------------------------------------
+
+To bind to a key do:
+
+     (global-set-key "\C-cd" 'double-word)
+
+   Or interactively, `M-x global-set-key' and follow the prompts.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.3.7,  Next: Q1.3.8,  Prev: Q1.3.6,  Up: Introduction
+
+Q1.3.7: What's the difference between a macro and a function?
+-------------------------------------------------------------
+
+Quoting from the Lisp Reference (a.k.a "Lispref") Manual:
+
+   "Macros" enable you to define new control constructs and other
+language features.  A macro is defined much like a function, but instead
+of telling how to compute a value, it tells how to compute another Lisp
+expression which will in turn compute the value.  We call this
+expression the "expansion" of the macro.
+
+   Macros can do this because they operate on the unevaluated
+expressions for the arguments, not on the argument values as functions
+do.  They can therefore construct an expansion containing these
+argument expressions or parts of them.
+
+   Do not confuse the two terms with "keyboard macros", which are
+another matter, entirely.  A keyboard macro is a key bound to several
+other keys.  Refer to manual for details.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.3.8,  Next: Q1.4.1,  Prev: Q1.3.7,  Up: Introduction
+
+Q1.3.8: What is `Custom'?
+-------------------------
+
+`Custom' is a system for customizing XEmacs options.
+
+   You can access `Advanced (Customize)' from the `Options' menu or
+invoking one of customize commands by typing eg.  `M-x customize', `M-x
+customize-face', `M-x customize-variable' or `M-x customize-apropos'.
+
+   There is also new `browser' mode for Customize.  Try it out with
+`M-x customize-browse'
+
+1.4: Getting Help
+=================
+
+\1f
+File: xemacs-faq.info,  Node: Q1.4.1,  Next: Q1.4.2,  Prev: Q1.3.8,  Up: Introduction
+
+Q1.4.1: Where can I get help?
+-----------------------------
+
+Probably the easiest way, if everything is installed, is to use Info, by
+pressing `C-h i', or looking for an Info item on the Help Menu.  `M-x
+apropos' can be used to look for particular commands.
+
+   For items not found in the manual, try reading this FAQ and reading
+the Usenet group comp.emacs.xemacs.
+
+   If you choose to post to a newsgroup, *please use
+comp.emacs.xemacs*.  Please do not post XEmacs related questions to
+gnu.emacs.help.
+
+   If you cannot post or read Usenet news, there is a corresponding
+mailing list <xemacs-news@xemacs.org> which is available.  It can be
+subscribed to via the Mailman Web interface or by sending mail to to
+<xemacs-news-request@xemacs.org> with `subscribe' in the body of the
+message.  See also `http://www.xemacs.org/Lists/#xemacs-news'.  To
+cancel a subscription, you may use the <xemacs-news-request@xemacs.org>
+address or the Web interface.  Send a message with a subject of
+`unsubscribe' to be removed.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.4.2,  Next: Q1.4.3,  Prev: Q1.4.1,  Up: Introduction
+
+Q1.4.2: Which mailing lists are there?
+--------------------------------------
+
+For complete, up-to-date info on the lists and how to subscribe, see
+`http://www.xemacs.org/Lists/'.
+
+`comp.emacs.xemacs'
+     is a Usenet newsgroup for XEmacs users to discuss problems and
+     issues that arise for them.  It's not generally an appropriate
+     place to ask about apparent bugs (use `xemacs-beta'), or future
+     plans (use `xemacs-design').
+
+`xemacs-announce'
+     is a read-only, low volume list for announcements concerning the
+     XEmacs project and new releases of the XEmacs software.
+
+`xemacs-beta'
+     is an open list for bug reports about beta versions of XEmacs.
+     This includes the bug reports themselves, by both users and
+     developers, as well as queries, follow-ups, and discussions
+     further determining their nature and status.  This is the primary
+     channel for this kind of discussion; related code changes will
+     usually not be applied until they have been discussed here.  When
+     such discussions touch on significant changes to the code (in
+     particular, structural changes), or on changes to API's or
+     external functionality, they should be moved to `xemacs-design'.
+     Requests and proposals for non-bug-related changes do not belong
+     on `xemacs-beta', and should be sent to `xemacs-design' instead.
+
+`xemacs-beta-ja'
+     is an open list for bug reports and design discussion related to
+     Mule features, including Japanese handling, in beta versions of
+     XEmacs.  Japanese is the preferred language of discussion.  For
+     most timely presentation to reviewers, please consider sending
+     appropriate discussion to `xemacs-mule' or `xemacs-design' in
+     English when convenient for the participants in discussion.  When
+     possible, bug reports not related to Mule (including Japanese)
+     should be reported on `xemacs-beta' in English.
+
+`xemacs-buildreports'
+     is an open list for submission of build-reports on beta versions
+     of XEmacs. For information on what the build-reports should
+     contain, please see the `etc/BETA' file which is included in each
+     beta distribution.
+
+`xemacs-cvs'
+     is a read-only list for notices and information on what has been
+     committed to the XEmacs CVS trees, by whom, and for what.
+
+`xemacs-design'
+     is an open list for discussing the design of XEmacs.  This
+     includes discussion about planned and ongoing changes to
+     functionality and API changes and additions as well as requests
+     for them.  This is the primary channel for this kind of
+     discussion; related code changes will usually not be applied until
+     they have been discussed here.  This does not include bug reports,
+     which go to `xemacs-beta'.
+
+`xemacs-mule'
+     is an open mailing list for discussion of International extensions
+     to XEmacs including Mule, XIM, I18n issues, etc, and is not
+     confined to developmental issues. This list is not restricted to
+     English, postings in all languages are welcome.
+
+`xemacs-news'
+     is an open list for discussion and bug reporting for XEmacs.  This
+     mailing list is bi-directionally gatewayed with the USENET
+     newsgroup comp.emacs.xemacs.
+
+`xemacs-nt'
+     is a developers-only mailing list and is intended for people who
+     wish to work actively on the porting of XEmacs to Microsoft
+     Windows NT and Microsoft Windows '95.
+
+`xemacs-patches'
+     is an open, moderated list for submission of patches to the XEmacs
+     distribution and its packages. Anyone may subscribe or submit to
+     xemacs-patches, but all submissions are reviewed by the list
+     moderator before they are distributed to the list. Discussion is
+     not appropriate on xemacs-patches.
+
+`xemacs-users-ja'
+     is an open list for discussion and bug reporting for XEmacs.
+     Japanese is the preferred language of discussion.  It is not gated
+     to comp.emacs.xemacs or the `xemacs' list.  For fastest response,
+     bugs not specifically related to Japanese or Mule features should
+     be reported on `xemacs-beta' (in English).
+
+`xemacs-users-ru'
+     is an open list for discussion and bug reporting for XEmacs.
+     Russian is the preferred language of discussion.  It is not gated
+     to comp.emacs.xemacs or the `xemacs' list.  For fastest response,
+     bugs not specifically related to Russian or Mule features should
+     be reported on `xemacs-beta' (in English).
+
+\1f
+File: xemacs-faq.info,  Node: Q1.4.3,  Next: Q1.4.4,  Prev: Q1.4.2,  Up: Introduction
+
+Q1.4.3: Where are the mailing lists archived?
+---------------------------------------------
+
+The archives can be found at `http://list-archive.xemacs.org'
+
+\1f
+File: xemacs-faq.info,  Node: Q1.4.4,  Next: Q1.4.5,  Prev: Q1.4.3,  Up: Introduction
+
+Q1.4.4: How can I get two instances of info?
+--------------------------------------------
+
+Before 21.4, you can't.  The `info' package does not provide for
+multiple info buffers.  In 21.4, this should be fixed. #### how?
+
+\1f
+File: xemacs-faq.info,  Node: Q1.4.5,  Next: Q1.5.1,  Prev: Q1.4.4,  Up: Introduction
+
+Q1.4.5: How do I add new Info directories?
+------------------------------------------
+
+You use something like:
+
+     (setq Info-directory-list (cons
+                                (expand-file-name "~/info")
+                                Info-default-directory-list))
+
+   David Masterson <davidm@prism.kla.com> writes:
+
+     Emacs Info and XEmacs Info do many things differently.  If you're
+     trying to support a number of versions of Emacs, here are some
+     notes to remember:
+
+       1. Emacs Info scans `Info-directory-list' from right-to-left
+          while XEmacs Info reads it from left-to-right, so append to
+          the _correct_ end of the list.
+
+       2. Use `Info-default-directory-list' to initialize
+          `Info-directory-list' _if_ it is available at startup, but not
+          all Emacsen define it.
+
+       3. Emacs Info looks for a standard `dir' file in each of the
+          directories scanned from #1 and magically concatenates them
+          together.
+
+       4. XEmacs Info looks for a `localdir' file (which consists of
+          just the menu entries from a `dir' file) in each of the
+          directories scanned from #1 (except the first), does a simple
+          concatenation of them, and magically attaches the resulting
+          list to the end of the menu in the `dir' file in the first
+          directory.
+
+     Another alternative is to convert the documentation to HTML with
+     texi2html and read it from a web browser like Lynx or W3.
+
+1.5: Contributing to XEmacs
+===========================
+
+\1f
+File: xemacs-faq.info,  Node: Q1.5.1,  Next: Q1.5.2,  Prev: Q1.4.5,  Up: Introduction
+
+Q1.5.1: How do I submit changes to the FAQ?
+-------------------------------------------
+
+The FAQ is actively maintained and modified regularly.  All links should
+be up to date.  Unfortunately, some of the information is out of date -
+a situation which the FAQ maintainer is working on.  All submissions are
+welcome, please e-mail submissions to XEmacs FAQ maintainers
+<faq@xemacs.org>.
+
+   Please make sure that `XEmacs FAQ' appears on the Subject: line.  If
+you think you have a better way of answering a question, or think a
+question should be included, we'd like to hear about it.  Questions and
+answers included into the FAQ will be edited for spelling and grammar
+and will be attributed.  Answers appearing without attribution are
+either from versions of the FAQ dated before May 1996 or are from
+previous FAQ maintainers.  Answers quoted from Usenet news articles will
+always be attributed, regardless of the author.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.5.2,  Next: Q1.5.3,  Prev: Q1.5.1,  Up: Introduction
+
+Q1.5.2: How do I become a beta tester?
+--------------------------------------
+
+Send an email message to <xemacs-beta-request@xemacs.org> with the line
+`subscribe' in the body of the message.
+
+   Be prepared to get your hands dirty, as beta testers are expected to
+identify problems as best they can.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.5.3,  Next: Q1.5.4,  Prev: Q1.5.2,  Up: Introduction
+
+Q1.5.3: How do I contribute to XEmacs itself?
+---------------------------------------------
+
+It depends on the knowledge and time you possess.  If you are able, by
+all means become a beta tester (*note Q1.5.2::).  If you are a
+programmer, try to build XEmacs and see if you can improve it.
+
+   Otherwise, you can still help by using XEmacs as your everyday editor
+(for pre-built binary versions, *note Q1.1.2::) and reporting bugs you
+find to the mailing list.
+
+   Another area where we need help is the documentation: We need good
+documentation for building XEmacs and for using it.  This FAQ is a
+small step in that direction.
+
+   Ben Wing <ben@xemacs.org> writes:
+
+     BTW if you have a wish list of things that you want added, you
+     have to speak up about it!  More specifically, you can do the
+     following if you want a feature added (in increasing order of
+     usefulness):
+
+        * Make a posting about a feature you want added.
+
+        * Become a beta tester and make more postings about those same
+          features.
+
+        * Convince us that you're going to use the features in some
+          cool and useful way.
+
+        * Come up with a clear and well-thought-out API concerning the
+          features.
+
+        * Write the code to implement a feature and send us a patch.
+
+     (not that we're necessarily requiring you to write the code, but
+     we can always hope :)
+
+\1f
+File: xemacs-faq.info,  Node: Q1.5.4,  Next: Q1.5.5,  Prev: Q1.5.3,  Up: Introduction
+
+Q1.5.4: How do I get started developing XEmacs?
+-----------------------------------------------
+
+First, get yourself set up under CVS so that you can access the CVS
+repositories containing the XEmacs sources and the XEmacs packages.
+
+   Next, set up your layout.  This is important, as a good layout will
+facilitate getting things done efficiently, while a bad layout will
+could lead to disaster, as you can't figure out which code is the most
+recent, which can be thrown away, etc.  We suggest the following
+layout: (feel free to make changes)
+
+   * Everything goes under `/src/xemacs' (use a different directory if
+     you want).  From now, instead of saying `/src/xemacs', we use
+     `<xsrc-top>', to make it easier in case someone picked a different
+     directory.
+
+   * Package source is in `<xsrc-top>/package-src'.
+
+   * Installed packages go under `<xsrc-top>/xemacs-packages', and
+     `<xsrc-top>/mule-packages'.
+
+   * A "workspace" is a complete copy of the sources, in which you do
+     work of a particular kind.  Workspaces can be differentiated by
+     which branch of the source tree they extend off of - usually
+     either the stable or experimental, unless other branches have been
+     created (for example, Ben created a branch for his Mule work
+     because (1) the project was long-term and involved an enormous
+     number of changes, (2) people wanted to be able to look at what
+     his work in progress, and (3) he wanted to be able to check things
+     in and in general use source-code control, since it was a
+     long-term project).  Workspaces are also differentiated in what
+     their purpose is - general working workspace, workspace for
+     particular projects, workspace keeping the latest copy of the code
+     in one of the branches without mods, etc.
+
+   * Various workspaces are subdirectories under `<xsrc-top>', e.g.:
+
+        * `<xsrc-top>/working' (the workspace you're actively working
+          on, periodically synched up with the latest trunk)
+
+        * `<xsrc-top>/stable' (for making changes to the stable version
+          of XEmacs, which sits on a branch)
+
+        * `<xsrc-top>/unsigned-removal' (a workspace for a specific,
+          difficult task that's going to affect lots of source and take
+          a long time, and so best done in its own workspace without
+          the interference of other work you're doing.  Also, you can
+          commit just this one large change, separate from all the
+          other changes).
+
+        * `<xsrc-top>/latest' (a copy of the latest sources on the
+          trunk, i.e. the experimental version of XEmacs, with no
+          patches in it; either update it periodically, by hand, or set
+          up a cron job to do it automatically).  Set it up so it can
+          be built, and build it so you have a working XEmacs.
+          (Building it might also go into the cron job.)
+
+          This workspace serves a number of purposes:
+            1. You always have a recent version of XEmacs you can
+               compare against when something you're working on breaks.
+               It's true that you can do this with cvs diff, but when
+               you need to do some serious investigation, this method
+               just fails.
+
+            2. You (almost) always have a working, up-to-date
+               executable that can be used when your executable is
+               crashing and you need to keep developing it, or when you
+               need an `xemacs' to build packages, etc.
+
+            3. When creating new workspaces, you can just copy the
+               `latest' workspace using GNU `cp -a'.  You have all the
+               .elc's built, everything else probably configured, any
+               spare files in place (e.g. some annoying xpm.dll under
+               Windows, etc.).
+
+        * `<xsrc-top>/latest-stable/' (equivalent to
+          `<xsrc-top>/latest/', but for the Stable branch of XEmacs,
+          rather than the Experimental branch of XEmacs).  This may or
+          may not be necessary depending on how much development you do
+          of the stable branch.
+
+   * `<xsrc-top>/xemacsweb' is a workspace for working on the XEmacs
+     web site.
+
+   * `<xsrc-top>/in-patches' for patches received from email and saved
+     to files.
+
+   * `<xsrc-top>/out-patches' for locally-generated patches to be sent
+     to <xemacs-patches@xemacs.org>.  Less useful now that the patcher
+     util has been developed.
+
+   * `<xsrc-top>/build', for build trees when compiling and testing
+     XEmacs with various configuration options turned off and on.  The
+     scripts in xemacs-builds/ben (see below) can be used to automate
+     building XEmacs workspaces with many different configuration
+     options and automatically filtering out the normal output so that
+     you see only the abnormal output.
+
+   * `<xsrc-top>/xemacs-builds', for the xemacs-builds module, which
+     you need to check out separately in CVS.  This contains scripts
+     used for building XEmacs, automating and simplifying using CVS,
+     etc.  Under various people's directories are their own build and
+     other scripts.  The currently most-maintained scripts are under
+     ben/, where there are easily configurable scripts that can be used
+     to easily build any workspace (esp. if you've more or less
+     followed the layout presented above) unattended, with one or more
+     configuration states (there's a pre-determined list of the most
+     useful, but it's easy to change).  The output is filtered and
+     split up in various ways so that you can identify which output
+     came from where, and you can see the output either full or with
+     all "normal" output except occasional status messages filtered so
+     that you only see the abnormal ones.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.5.5,  Next: Q1.6.1,  Prev: Q1.5.4,  Up: Introduction
+
+Q1.5.5: What's the basic layout of the code?
+--------------------------------------------
+
+The file `configure' is a shell script to acclimate XEmacs to the
+oddities of your processor and operating system.  It will create a file
+named `Makefile' (a script for the `make' program), which helps
+automate the process of building and installing emacs.  See INSTALL for
+more detailed information.
+
+   The file `configure.in' is the input used by the autoconf program to
+construct the `configure' script.  Since XEmacs has configuration
+requirements that autoconf can't meet, `configure.in' uses an unholy
+marriage of custom-baked configuration code and autoconf macros; it may
+be wise to avoid rebuilding `configure' from `configure.in' when
+possible.
+
+   The file `Makefile.in' is a template used by `configure' to create
+`Makefile'.
+
+   There are several subdirectories:
+
+  1. `src' holds the C code for XEmacs (the XEmacs Lisp interpreter and
+     its primitives, the redisplay code, and some basic editing
+     functions).
+
+  2. `lisp' holds the XEmacs Lisp code for XEmacs (most everything
+     else).
+
+  3. `lib-src' holds the source code for some utility programs for use
+     by or with XEmacs, like movemail and etags.
+
+  4. `etc' holds miscellaneous architecture-independent data files
+     XEmacs uses, like the tutorial text.  The contents of the `lisp',
+     `info' and `man' subdirectories are architecture-independent too.
+
+  5. `lwlib' holds the C code for the X toolkit objects used by XEmacs.
+
+  6. `info' holds the Info documentation tree for XEmacs.
+
+  7. `man' holds the source code for the XEmacs online documentation.
+
+  8. `nt' holds files used compiling XEmacs under Microsoft Windows.
+
+1.6: Politics (XEmacs vs. GNU Emacs)
+====================================
+
+\1f
+File: xemacs-faq.info,  Node: Q1.6.1,  Next: Q1.6.2,  Prev: Q1.5.5,  Up: Introduction
+
+Q1.6.1: What is GNU Emacs?
+--------------------------
+
+GNU Emacs and XEmacs are related open-source text editors.  Both derive
+from GNU Emacs version 18; the split between the two happened in 1991
+(for comparison, the oldest versions of GNU Emacs date from 1984).  For
+information on GNU Emacs, see
+`http://www.gnu.org/software/emacs/emacs.html'.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.6.2,  Next: Q1.6.3,  Prev: Q1.6.1,  Up: Introduction
+
+Q1.6.2: How does XEmacs differ from GNU Emacs?
+----------------------------------------------
+
+For a detailed description of the differences between GNU Emacs and
+XEmacs and a detailed history of XEmacs, check out the
+     NEWS file (http://www.xemacs.org/About/XEmacsVsGNUemacs.html)
+
+*User-Visible Editing Features*
+     XEmacs in general tries hard to conform to exist user-interface
+     standards, and to work "out-of-the-box" without the need for
+     obscure customization changes.  GNU Emacs, particularly version
+     21, has gotten better about this (in many cases by copying the
+     XEmacs behavior!), but still has some weirdnesses.  For example,
+     the standard method of selecting text using the Shift key works
+     out-of-the-box in XEmacs.
+
+     XEmacs has a built-in toolbar. Four toolbars can actually be
+     configured simultaneously: top, bottom, left, and right toolbars.
+
+     XEmacs has vertical and horizontal scrollbars. Unlike in GNU Emacs
+     19 (which provides a primitive form of vertical scrollbar), these
+     are true toolkit scrollbars. A look-alike Motif scrollbar is
+     provided for those who don't have Motif. (Even for those who do,
+     the look-alike may be preferable as it is faster.)
+
+     XEmacs has buffer tabs along the top of the frame (although the
+     position can be changed) that make it very easy to switch buffers.
+
+     The menubar under XEmacs is better-designed, with more thought put
+     into it.
+
+     XEmacs can ask questions using popup dialog boxes. Any command
+     executed from a menu will ask yes/no questions with dialog boxes,
+     while commands executed via the keyboard will use the minibuffer.
+
+     XEmacs under MS Windows provides uses the standard file-dialog box
+     for opening and saving files.  Standard menu-accelerator behavior
+     can easily be enabled using the Options menu, and integrates well
+     into the existing keymap.
+
+     XEmacs has (still experimental) support for widgets of various
+     sorts - buttons, text boxes, sliders, progress bars, etc.  A
+     progress bar is used in font lock to show the progress.
+
+     Experimental support for drag-and-drop protocols is provided from
+     XEmacs 21.
+
+*General Platform Support*
+     If you're running on a machine with audio hardware, you can specify
+     sound files for XEmacs to play instead of the default X beep. See
+     the documentation of the function load-sound-file and the variable
+     sound-alist. XEmacs also supports the network sound protocols NAS
+     and EsounD.
+
+     XEmacs 21 supports database protocols with LISP bindings, currently
+     including Berkeley DB, LDAP, and PostgreSQL (21.2 only).
+
+     XEmacs 20 and 21 support the Canna, Wnn, and SJ3 Japanese input
+     method servers directly, as well as through the X Input Method
+     (XIM) protocol. GNU Emacs 20 supports only the XIM protocol. Both
+     Emacsen support the Quail family of input methods (implemented in
+     LISP) for many languages.
+
+     XEmacs provides support for ToolTalk on systems that have it.
+
+*Packaged LISP Libraries*
+     Many more packages are provided standard with XEmacs than with GNU
+     Emacs 19 or 20.
+
+     XEmacs 21 supports an integrated package management system which
+     uses EFS to download, then automatically install prebuilt LISP
+     libraries. This allows XEmacs users much more straightforward
+     access to the "latest and greatest" version of any given library.
+
+     We are working on a standard method for enabling, disabling and
+     otherwise controlling packages, which should make them very easy
+     to use.
+
+*LISP Programming*
+     From XEmacs 20 on, characters are a separate type. Characters can
+     be converted to integers (and many integers can be converted to
+     characters), but characters are not integers. GNU Emacs 19, XEmacs
+     19, Mule 2.3 (an extensive patch to GNU Emacs 18.55 and 19.x), and
+     GNU Emacs 20 (incorporating Mule 3 and later Mule 4) represent
+     them as integers.
+
+     From XEmacs 20 on, the buffer is treated as an array of
+     characters, and the representation of buffer text is not exposed
+     to LISP. The GNU Emacs 20 functions like buffer-as-multibyte are
+     not supported.
+
+     In XEmacs, events are first-class objects. GNU Emacs 19 represents
+     them as integers, which obscures the differences between a key
+     gesture and the ancient ASCII code used to represent a particular
+     overlapping subset of them.
+
+     In XEmacs, keymaps are first-class opaque objects. GNU Emacs 19
+     represents them as complicated combinations of association lists
+     and vectors. If you use the advertised functional interface to
+     manipulation of keymaps, the same code will work in XEmacs, GNU
+     Emacs 18, and GNU Emacs 19; if your code depends on the underlying
+     implementation of keymaps, it will not.
+
+     XEmacs uses "extents" to represent all non-textual aspects of
+     buffers; GNU Emacs 19 uses two distinct objects, "text properties"
+     and "overlays", which divide up the functionality between them.
+     Extents are a superset of the union of the functionality of the
+     two GNU Emacs data types. The full GNU Emacs 19 interface to text
+     properties and overlays is supported in XEmacs (with extents being
+     the underlying representation).
+
+     Extents can be made to be copied into strings, and then restored,
+     by kill and yank. Thus, one can specify this behavior on either
+     "extents" or "text properties", whereas in GNU Emacs 19 text
+     properties always have this behavior and overlays never do.
+
+*Window System Programming Interface*
+     XEmacs uses the MIT "Xt" toolkit instead of raw Xlib calls, which
+     makes it be a more well-behaved X citizen (and also improves
+     portability). A result of this is that it is possible to include
+     other Xt "Widgets" in the XEmacs window. Also, XEmacs understands
+     the standard Xt command-line arguments.
+
+     XEmacs supports Motif applications, generic Xt (e.g. Athena)
+     applications, and raw Xlib applications. An XEmacs variant which
+     supports GTK+ is available (integration as an option in the XEmacs
+     mainline is planned for XEmacs 22), although code to take
+     advantage of the support is as yet scarce.
+
+     An XEmacs frame can be placed within an "external client widget"
+     managed by another application. This allows an application to use
+     an XEmacs frame as its text pane rather than the standard Text
+     widget that is provided with Motif or Athena.
+
+*Community Participation*
+     Joining the XEmacs development team is simple. Mail to XEmacs
+     Developers <xemacs-beta@xemacs.org>, and you're in! (If you want
+     to be, of course. You're also welcome to just post
+     development-related questions and bug reports.) The GNU Emacs
+     development team and internal mailing lists are still by invitation
+     only.
+
+     The "bleeding edge" of mainline XEmacs development is available by
+     anonymous CVS as are some subsidiary branches (check out the
+     xemacs-gtk module for the latest in GUI features!)
+
+     Development and maintenance of Lisp libraries is separated from
+     the core editor development at a fairly low level. This provides
+     better modularization and a better division of responsibility
+     between external library maintainers and the XEmacs core
+     development team. Even for packages the size of Gnus, XEmacs users
+     normally have access to a pre-built version within a few weeks of
+     a major release, and minor updates often within days.
+
+     CVS commit authority is broadly dispersed. Recognized maintainers
+     of LISP libraries who are willing to maintain XEmacs packaged
+     versions automatically qualify for CVS accounts for their packages.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.6.3,  Next: Q1.6.4,  Prev: Q1.6.2,  Up: Introduction
+
+Q1.6.3: How much does XEmacs differ?
+------------------------------------
+
+RMS has asserted at times that XEmacs is merely a "patch" on top of GNU
+Emacs (*note Q1.6.4::).  In fact, probably not more than 5% of the
+code, if that, remains unchanged, and nearly 14 years of work has gone
+into XEmacs at this point. (GNU Emacs itself is only than 20 years old,
+and thus XEmacs has existed as a separate product for over 2/3 of the
+lifespan of GNU Emacs.) As a point of comparison, XEmacs 21.5 has
+perhaps 65,000 more lines of C code than GNU Emacs 21.2.
+
+   However, the XEmacs developers strive to keep their code compatible
+with GNU Emacs, especially on the Lisp level.  Much effort goes into
+"synching" the XEmacs Elisp code with recent GNU Emacs releases so as to
+benefit from GNU Emacs development work. (In contrast, almost no code
+from XEmacs has made it into GNU Emacs, and in fact the GNU Emacs
+developers are instructed by RMS not to even look at XEmacs source code!
+This stems from self-imposed licensing restrictions on the part of GNU
+Emacs - and almost certainly out of hostility, as well.)
+
+\1f
+File: xemacs-faq.info,  Node: Q1.6.4,  Next: Q1.6.5,  Prev: Q1.6.3,  Up: Introduction
+
+Q1.6.4: Is XEmacs "GNU"?
+------------------------
+
+RMS insists on the term "GNU XEmacs" and maintains that
+
+     XEmacs is GNU software because it's a modified version of a GNU
+     program. And it is GNU software because the FSF is the copyright
+     holder for most of it, and therefore the legal responsibility for
+     protecting its free status falls on us whether we want it or not.
+     This is why the term "GNU XEmacs" is legitimate.
+
+   In fact, FSF is _not_ the copyright holder for most of the code, as
+very little unmodified FSF code remains (*note Q1.6.3::).
+
+   Furthermore, RMS's assertion that XEmacs is "GNU" seems rather
+bizarre to the XEmacs developers given RMS's hostility and general lack
+of interest in cooperation.  "GNU" software in general is part of the
+GNU Project, is distributed by it on their FTP site, and receives
+support (or at least cooperation), as well as implicit endorsement,
+from it.  The GNU Project, however, has never supported XEmacs and never
+distributed XEmacs, and RMS's hostility is the farthest thing possible
+from an endorsement.  In fact, the GNU Project distributes a number of
+non-GNU software projects on the FSF web site, but again XEmacs is not
+one of them.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.6.5,  Next: Q1.6.6,  Prev: Q1.6.4,  Up: Introduction
+
+Q1.6.5: What is the correct way to refer to XEmacs and GNU Emacs?
+-----------------------------------------------------------------
+
+Unfortunately even the naming of these two applications has become
+politicized.  Much of this stems from RMS, who has a history of
+politicizing similar issues. (Compare the controversy over "Lignux" and
+"GNU/Linux".) We would prefer that the terms "XEmacs" and "GNU Emacs"
+be used, which are neutral and acceptable to most people.  RMS,
+however, is not willing to accept these terms.  He insists that, if his
+product is called "GNU Emacs", then ours must be called "GNU XEmacs".
+(For our opinion of this term, *Note Q1.6.4::.) On the other hand, if
+our product is to be called "XEmacs", as we prefer, then his product
+must simply be called "Emacs".  The intent of this seems clear: RMS
+wants to make sure the names reflect his view that his version is the
+"real" Emacs and ours is merely a derivative, second-class product
+(*note Q1.6.3::).
+
+   The XEmacs developers hope that you will use the neutral terms
+"XEmacs" and "GNU Emacs" for these two specific products. "Emacs", on
+the other hand, is a generic term for a class of programmable text
+editors with a similar look-and-feel, and usually a Lisp-based
+extension language.  These trace themselves back to early editors such
+as EINE, ZWEI, ZMACS and Multics Emacs. *Note A History of Emacs:
+(internals)A History of Emacs.
+
+   We also call upon RMS, in the spirit of furthering cooperation, to
+stop politicizing this issue and use the neutral terms "XEmacs" and
+"GNU Emacs".  We have already acceded to RMS' wishes in this respect,
+and we expect him to do the same. (In the past, the XEmacs developers
+often used the terms "FSF Emacs" or "FSFmacs" or "RMSmacs" in reference
+to GNU Emacs; these terms were apparently modeled after RMS' own usage
+of "Gosmacs" and "Gosling Emacs" in reference to Unipress Emacs,
+produced by James Gosling.  RMS, however, considers such terms to be
+insulting, so we refrain from using them as much as possible in
+preference to GNU Emacs.)
+
+\1f
+File: xemacs-faq.info,  Node: Q1.6.6,  Next: Q1.7.1,  Prev: Q1.6.5,  Up: Introduction
+
+Q1.6.6: Why haven't XEmacs and GNU Emacs merged?
+------------------------------------------------
+
+There are currently irreconcilable differences in the views about
+technical, programming, design, organizational and legal matters
+between Richard Stallman (RMS), the author and leader of the GNU Emacs
+project, and the XEmacs development team which provide little hope for
+a merge to take place in the short-term future.  There have been
+repeated attempts at merging by all of the major XEmacs developers,
+starting from the early days of Lucid Emacs (in 1991), but they have
+all failed.  RMS has very strong views about how GNU Emacs should be
+structured and how his project should be run, and during the repeated
+merge efforts has never demonstrated any realistic interest in
+sufficiently compromising or ceding control to allow a middle ground to
+be found.  The basic problem seems to be the very different goals of
+RMS and the XEmacs project.  The primary goals of the XEmacs project
+are technical and organizational - we want to create the best editor
+possible, and to make it as easy as possible for people around the
+world to contribute.  The primary goals of RMS, on the other hand, are
+political, and GNU Emacs, and any potential merge efforts with XEmacs,
+are strictly subservient to these goals.  In fact, in many ways RMS
+sees GNU Emacs as the "poster child" of his aims, the one program in
+the GNU project that above all others must set an example to the world.
+(This has to do with the fact that GNU Emacs was the first program in
+the GNU project, and the only one that he is still personally involved
+with on a day-to-day basis.)  Given his goals, his position is
+completely reasonable - but unfortunately, makes any merge impossible.
+
+   From the XEmacs perspective, the most intractable issues appear to be
+legal and organizational, specifically:
+
+   * RMS requires "legal papers" to be signed for all contributions of
+     code to GNU Emacs over 10 lines or so, transferring the copyright
+     and all legal rights to the code to the Free Software Foundation.
+     XEmacs does not and has never required this, since it has the
+     practical effect of discouraging individual and in particular
+     corporate contributions - corporations will almost never sign away
+     their legal rights to code since it makes it impossible to reuse
+     the code in any product that whose license is not compatible with
+     the GNU General Public License.  Since RMS has shown no
+     inclination to compromise on this issue, a merge would require
+     that most of the existing XEmacs code would need to be thrown away
+     and rewritten - something the XEmacs developers are understandably
+     reluctant to do.
+
+   * A repeated stumbling block in the merge talks has been the issue of
+     organizational control over the resulting product.  RMS has made it
+     clear that he intends to have final say over design issues in a
+     merged Emacs.  Unfortunately, RMS and the XEmacs developers have
+     repeatedly clashed over design decisions, and RMS' insistence on
+     getting his way in such disagreements was the very reason for the
+     split in the first place.  This same issue has come up again and
+     again in merge talks and we have never been able to come to a
+     satisfactory resolution.  To the extent that RMS is willing to
+     compromise at all, it appears to be of a purely political rather
+     than technical nature - "If we support this feature of yours, we
+     also get to support this other feature of mine."  The XEmacs
+     developers cannot see how such a process would lead to anything
+     but a mess of incompatible things hodgepodged together.
+
+   * Because of the years of separate development, distinct and
+     incompatible interfaces have developed and merging would be
+     extremely difficult even with the above non-technical issues
+     resolved.  The problem has been exacerbated by the issue of legal
+     papers - because XEmacs code is not "kosher" from RMS'
+     perspective, he discourages developers from even looking at it out
+     of legal concerns.  Although it is still possible to read the
+     XEmacs documentation and run the program, the practical effect of
+     this prohibition has been to strongly discourage code-sharing and
+     cooperative development - although a great deal of GNU Emacs code
+     has been incorporated into XEmacs, practically none has gone the
+     other direction.
+
+   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
+<emacs-devel@gnu.org>.
+
+1.7: External Packages
+======================
+
+\1f
+File: xemacs-faq.info,  Node: Q1.7.1,  Next: Q1.7.2,  Prev: Q1.6.6,  Up: Introduction
+
+Q1.7.1: What is the package system?
+-----------------------------------
+
+In order to reduce the size and increase the maintainability of XEmacs,
+the majority of the Elisp packages that came with previous releases
+have been unbundled.  They have been replaced by the package system.
+Each elisp add-on (or groups of them when they are small) now comes in
+its own tarball that contains a small search hierarchy.
+
+   You select just the ones you need.  Install them by untarring them
+into the right place.  On startup XEmacs will find them, set up the load
+path correctly, install autoloads, etc, etc.
+
+   *Note Q2.1.1::, for more info on how to download and install the
+packages.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.7.2,  Next: Q1.7.3,  Prev: Q1.7.1,  Up: Introduction
+
+Q1.7.2: Which external packages are there?
+------------------------------------------
+
+Normal Packages
+---------------
+
+A very broad collection of elisp packages.
+
+Sun
+     Support for Sparcworks.
+
+ada
+     Ada language support.
+
+apel
+     A Portable Emacs Library.  Used by XEmacs MIME support.
+
+auctex
+     Basic TeX/LaTeX support.
+
+bbdb
+     The Big Brother Data Base: a rolodex-like database program.
+
+build
+     Build XEmacs from within (UNIX, Windows).
+
+c-support
+     Basic single-file add-ons for editing C code.
+
+calc
+     Emacs calculator.
+
+calendar
+     Calendar and diary support.
+
+cc-mode
+     C, C++, Objective-C, Java, CORBA IDL, Pike and AWK language
+     support.
+
+clearcase
+     New Clearcase Version Control for XEmacs (UNIX, Windows).
+
+clearcase
+     Support for the Clearcase version control system.
+
+cookie
+     "Fortune cookie"-style messages. Includes Spook (suspicious
+     phrases) and Yow (Zippy quotes).
+
+crisp
+     Crisp/Brief emulation.
+
+debug
+     GUD, gdb, dbx debugging support.
+
+dictionary
+     Interface to RFC2229 dictionary servers.
+
+dired
+     The DIRectory EDitor is for manipulating, and running commands on
+     files in a directory.
+
+docbookide
+     DocBook editing support.
+
+ecb
+     Emacs source code browser.
+
+ecrypto
+     Crypto functionality in Emacs Lisp.
+
+edebug
+     An Emacs Lisp debugger.
+
+ediff
+     Interface over GNU patch.
+
+edit-utils
+     Miscellaneous editor extensions, you probably need this.
+
+edt
+     DEC EDIT/EDT emulation.
+
+efs
+     Treat files on remote systems the same as local files.
+
+eieio
+     Enhanced Implementation of Emacs Interpreted Objects.
+
+elib
+     Portable Emacs Lisp utilities library.
+
+emerge
+     Another interface over GNU patch.
+
+erc
+     ERC is an Emacs InternetRelayChat client.
+
+escreen
+     Multiple editing sessions withing a single frame (like screen).
+
+eshell
+     Command shell implemented entirely in Emacs Lisp.
+
+ess
+     ESS: Emacs Speaks Statistics.
+
+eterm
+     Terminal emulation.
+
+eudc
+     Emacs Unified Directory Client (LDAP, PH).
+
+footnote
+     Footnoting in mail message editing modes.
+
+forms
+     Forms editing support (obsolete, use Widget instead).
+
+fortran-modes
+     Fortran support.
+
+fortran-modes
+     Fortran language support.
+
+frame-icon
+     Set up mode-specific icons for each frame under XEmacs.
+
+fsf-compat
+     GNU Emacs compatibility files.
+
+games
+     Tetris, Sokoban, and Snake.
+
+general-docs
+     General documentation.  Presently, empty.
+
+gnats
+     XEmacs bug reports.
+
+gnus
+     The Gnus Newsreader and Mailreader.
+
+haskell-mode
+     Haskell editing support.
+
+hm-html-menus
+     HTML editing.
+
+hyperbole
+     Hyperbole: The Everyday Info Manager.
+
+ibuffer
+     Advanced replacement for buffer-menu.
+
+idlwave
+     Editing and Shell mode for the Interactive Data Language.
+
+igrep
+     Enhanced front-end for Grep.
+
+ilisp
+     Front-end for interacting with Inferior Lisp (external lisps).
+
+ispell
+     Spell-checking with GNU ispell.
+
+jde
+     Integrated Development Environment for Java.
+
+liece
+     IRC (Internet Relay Chat) client for Emacs.  Note, this package is
+     deprecated and will be removed, use riece instead.
+
+mail-lib
+     Fundamental lisp files for providing email support.
+
+mailcrypt
+     Support for messaging encryption with PGP.
+
+mew
+     Messaging in an Emacs World; a MIME-based email program.
+
+mh-e
+     The XEmacs Interface to the MH Mail System.
+
+mine
+     Elisp implementation of the game 'Minehunt'.
+
+misc-games
+     Other amusements and diversions.
+
+mmm-mode
+     Support for Multiple Major Modes within a single buffer.
+
+net-utils
+     Miscellaneous Networking Utilities.
+
+ocaml
+     Objective Caml editing support.
+
+oo-browser
+     OO-Browser: The Multi-Language Object-Oriented Code Browser.
+
+ocaml
+     Objective Caml editing support.
+
+os-utils
+     Miscellaneous single-file O/S utilities, for printing, archiving,
+     compression, remote shells, etc.
+
+pc
+     PC style interface emulation.
+
+pcl-cvs
+     CVS frontend.
+
+pcomplete
+     Provides programmatic completion.
+
+perl-modes
+     Perl support.
+
+pgg
+     Emacs interface to various PGP implementations.
+
+prog-modes
+     Support for various programming languages.
+
+ps-print
+     Printing functions and utilities.
+
+psgml
+     Validated HTML/SGML editing.
+
+psgml-dtds
+     A collection of DTDs for psgml.  Note that this package is
+     deprecated and will be removed in the future, most likely Q2/2003.
+     Instead of using this, you should install needed DTDs yourself.
+
+python-modes
+     Python language support.
+
+reftex
+     Emacs support for LaTeX cross-references, citations.
+
+riece
+     IRC (Internet Relay Chat) client for Emacs.
+
+rmail
+     An obsolete Emacs mailer.  If you do not already use it don't
+     start.
+
+ruby-modes
+     Ruby support.
+
+sasl
+     Simple Authentication and Security Layer (SASL) library.
+
+scheme
+     Front-end support for Inferior Scheme.
+
+semantic
+     Semantic bovinator (Yacc/Lex for XEmacs). Includes Senator.
+
+sgml
+     SGML/Linuxdoc-SGML editing.
+
+sh-script
+     Support for editing shell scripts.
+
+sieve
+     Manage Sieve email filtering scripts.
+
+slider
+     User interface tool.
+
+sml-mode
+     SML editing support.
+
+sounds-au
+     XEmacs Sun sound files.
+
+sounds-wav
+     XEmacs Microsoft sound files.
+
+speedbar
+     Provides a separate frame with convenient references.
+
+strokes
+     Mouse enhancement utility.
+
+supercite
+     An Emacs citation tool for News & Mail messages.
+
+texinfo
+     XEmacs TeXinfo support.
+
+text-modes
+     Miscellaneous support for editing text files.
+
+textools
+     Miscellaneous TeX support.
+
+time
+     Display time & date on the modeline.
+
+tm
+     Emacs MIME support. Not needed for gnus >= 5.8.0.
+
+tooltalk
+     Support for building with Tooltalk.
+
+tpu
+     DEC EDIT/TPU support.
+
+tramp
+     Remote shell-based file editing.  This is similar to EFS or
+     Ange-FTP, but works with rsh/ssh and rcp/scp.
+
+vc
+     Version Control for Free systems.
+
+vc-cc
+     Version Control for ClearCase (UnFree) systems.
+
+vhdl
+     Support for VHDL.
+
+view-process
+     A Unix process browsing tool.
+
+viper
+     VI emulation support.
+
+vm
+     An Emacs mailer.
+
+w3
+     A Web browser.
+
+x-symbol
+     Semi WYSIWYG for LaTeX, HTML, etc, using additional fonts.
+
+xemacs-base
+     Fundamental XEmacs support, you almost certainly need this.
+
+xemacs-devel
+     XEmacs Lisp developer support.  This package contains utilities for
+     supporting Lisp development.  It is a single-file package so it
+     may be tailored.
+
+xlib
+     Emacs interface to X server.
+
+xslide
+     XSL editing support.
+
+xslt-process
+     A minor mode for (X)Emacs which allows running an XSLT processor
+     on a buffer.
+
+xwem
+     X Emacs Window Manager.
+
+zenirc
+     ZENIRC IRC Client.
+
+Mule Support (mule)
+-------------------
+
+MULti-lingual Enhancement.  Support for world scripts such as Latin,
+Arabic, Cyrillic, Chinese, Japanese, Greek, Hebrew etc.  To use these
+packages your XEmacs must be compiled with Mule support.
+
+edict
+     MULE: Lisp Interface to EDICT, Kanji Dictionary.
+
+egg-its
+     MULE: Wnn (4.2 and 6) support.  SJ3 support.
+
+latin-unity
+     MULE: find single ISO 8859 character set to encode a buffer.
+
+latin-unity
+     Unify character sets in a buffer. When characters belong to
+     disjoint character sets, this attempts to translate the characters
+     so that they belong to one character set. If the buffer coding
+     system is not sufficient, this suggests different coding systems.
+
+leim
+     MULE: Quail.  All non-English and non-Japanese language support.
+
+locale
+     MULE: Localized menubars and localized splash screens.
+
+lookup
+     Dictionary support. (This isn't an English dictionary program)
+
+mule-base
+     MULE: Basic Mule support, required for building with Mule.
+
+mule-ucs
+     MULE: Extended coding systems (including Unicode) for XEmacs.
+
+mule-ucs
+     Extended coding systems (including Unicode) for XEmacs.
+
+skk
+     Another Japanese Language Input Method.  Can be used without a
+     separate process running as a dictionary server.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.7.3,  Next: Q1.7.4,  Prev: Q1.7.2,  Up: Introduction
+
+Q1.7.3: Do I need to have the packages to run XEmacs?
+-----------------------------------------------------
+
+Strictly speaking, no.  XEmacs will build and install just fine without
+any packages installed.  However, only the most basic editing functions
+will be available with no packages installed, so installing packages is
+an essential part of making your installed XEmacs _useful_.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.7.4,  Next: Q1.8.1,  Prev: Q1.7.3,  Up: Introduction
+
+Q1.7.4: Is there a way to find which package has particular functionality?
+--------------------------------------------------------------------------
+
+If you want to find out which package contains the functionality you
+are looking for, use `M-x package-get-package-provider', and give it a
+symbol that is likely to be in that package.
+
+   For example, if some code you want to use has a `(require
+'thingatpt)' in it:
+
+       M-x package-get-package-provider RET thingatpt RET
+
+   which will return something like: `(fsf-compat "1.08").'
+
+1.8: Internationalization
+=========================
+
+\1f
+File: xemacs-faq.info,  Node: Q1.8.1,  Next: Q1.8.2,  Prev: Q1.7.4,  Up: Introduction
+
+Q1.8.1: What is the status of internationalization support aka MULE (including Asian language support)?
+-------------------------------------------------------------------------------------------------------
+
+Both the stable and development versions of XEmacs include
+internationalization support (aka MULE).  MULE currently (21.4) works on
+UNIX and Linux systems.  It is possible to build with MULE on Windows
+systems, but if you really need MULE on Windows, it is recommended that
+you build and use the development (21.5) version, and deal with the
+instability of the development tree.  Binaries compiled without MULE
+support run faster than MULE capable XEmacsen.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.8.2,  Next: Q1.8.3,  Prev: Q1.8.1,  Up: Introduction
+
+Q1.8.2: How can I help with internationalization?
+-------------------------------------------------
+
+If you would like to help, you may want to join the
+<xemacs-mule@xemacs.org> mailing list.  Especially needed are people
+who speak/write languages other than English, who are willing to use
+XEmacs/MULE regularly, and have some experience with Elisp.
+
+   Translations of the TUTORIAL and man page are welcome, and XEmacs
+does support multilingual menus, but we have few current translations.
+
+   *Note How do I become a Beta Tester?: Q1.5.2.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.8.3,  Next: Q1.8.4,  Prev: Q1.8.2,  Up: Introduction
+
+Q1.8.3: How do I type non-ASCII characters?
+-------------------------------------------
+
+*Note How can you type in special characters in XEmacs?: Q3.0.6, in
+part 3 of this FAQ, for some simple methods that also work in non-MULE
+builds of XEmacs (but only for one-octet coded character sets, and
+mostly for ISO 8859/1).  Many of the methods available for Cyrillic
+(*note How about Cyrillic modes?: Q1.8.7.) work without MULE.  MULE has
+more general capabilities.  *Note Please explain the various input
+methods in MULE/XEmacs: Q1.8.5.
+
+   *Note How do I display non-ASCII characters?: Q4.0.8, which covers
+display of non-ASCII characters.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.8.4,  Next: Q1.8.5,  Prev: Q1.8.3,  Up: Introduction
+
+Q1.8.4: Can XEmacs messages come out in a different language?
+-------------------------------------------------------------
+
+The message-catalog support was written but is badly bit-rotted.  XEmacs
+20 and 21 did _not_ support it, and early releases of XEmacs 22 will
+not either.
+
+   However, menubar localization _does_ work.  To enable it, add to
+your `Emacs' file entries like this:
+
+     Emacs*XlwMenu.resourceLabels:                   True
+     Emacs*XlwMenu.file.labelString:                 Fichier
+     Emacs*XlwMenu.openInOtherWindow.labelString:      In anderem Fenster oeffnen
+
+   The name of the resource is derived from the non-localized entry by
+removing punctuation and capitalizing as above.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.8.5,  Next: Q1.8.6,  Prev: Q1.8.4,  Up: Introduction
+
+Q1.8.5: Please explain the various input methods in MULE/XEmacs
+---------------------------------------------------------------
+
+Mule supports a wide variety of input methods.  There are three basic
+classes: Lisp implementations, generic platform support, and library
+interfaces.
+
+   _Lisp implementations_ include Quail, which provides table-driven
+input methods for almost all the character sets that Mule supports
+(including all of the ISO 8859 family, the Indic languages, Thai, and
+so on), and SKK, for Japanese.  (SKK also supports an interface to an
+external "dictionary server" process.)  Quail supports both typical
+"dead-key" methods (eg, in the "latin-1-prefix" method, `" a' produces
+ä, LATIN SMALL LETTER A WITH DIAERESIS), and the complex
+dictionary-based phonetic methods used for Asian ideographic languages
+like Chinese.
+
+   Lisp implementations can be less powerful (but they are not
+perceptibly inefficient), and of course are not portable to non-Emacs
+applications.  The incompatibility can be very annoying.  On the other
+hand, they require no special platform support or external libraries,
+so if you can display the characters, Mule can input them for you and
+you can edit, anywhere.
+
+   _Generic platform support_ is currently limited to the X Input
+Method (XIM) framework, although support for MSIME (for MS Windows) is
+planned, and IIIMF (Sun's Internet-Intranet Input Method Framework)
+support is extremely desirable.  XIM is enabled at build time by use of
+the `--with-xim' flag to `configure'.  For use of XIM, see your
+platform documentation.  However, normally the input method you use is
+specified via the `LANG' and `XMODIFIERS' environment variables.
+
+   Of course, input skills are portable across most applications.
+However, especially in modern GUI systems the habit of using bucky bits
+has fallen into sad disuse, and many XIM systems are poorly configured
+for use with Emacs.  For example, the kinput2 input manager (a separate
+process providing an interface between Japanese dictionary servers such
+as Canna and Wnn, and the application) tends to gobble up keystrokes
+generating Meta characters.  This means that to edit while using an XIM
+input method, you must toggle the input method off every time you want
+to use `M-f'.  Your mileage may vary.
+
+   _Library interfaces_ are most common for Japanese, although Wnn
+supports Chinese (traditional and simplified) and Korean.  There are
+Chinese and Korean input servers available, but we do not know of any
+patches for XEmacs to use them directly.  You can use them via
+IM-enabled terminals, by manipulating the terminal coding systems.  We
+describe only the Japanese-oriented systems here.  The advantage of
+these systems is that they are very powerful, and on platforms where
+they are available there is typically a wide range of applications that
+support them.  Thus your input skills are portable across applications.
+
+   Mule provides built-in interfaces to the following input methods:
+Wnn4, Wnn6, Canna, and SJ3.  These can be configured at build time.
+There are patches available (no URL, sorry) to support the SKK server,
+as well.  Wnn and SJ3 use the `egg' user interface.  The interface for
+Canna is specialized to Canna.
+
+   Wnn supports Japanese, Chinese and Korean. It is made by OMRON and
+Kyôto University. It is a powerful and complex system.  Wnn4 is free
+and Wnn6 is not.  Wnn uses grammatical hints and probability of word
+association, so in principle Wnn can be cleverer than other methods.
+
+   Canna, made by NEC, supports only Japanese.  It is a simple and
+powerful system. Canna uses only grammar, but its grammar and
+dictionary are quite sophisticated.  So for standard modern Japanese,
+Canna seems cleverer than Wnn4. In addition, the UNIX version of Canna
+is free (now there is a Microsoft Windows version).
+
+   SJ3, by Sony, supports only Japanese.
+
+   Egg consists of following parts:
+
+  1. Input character Translation System (ITS) layer.  It translates
+     ASCII inputs to Kana/PinYin/Hangul characters.
+
+  2. Kana/PinYin/Hangul to Kanji transfer layer.  The interface layer
+     to network Kana-Kanji server (Wnn and Sj3).
+
+   These input methods are modal.  They have a raw (alphabet) mode, a
+phonetic input mode, and Kana-Kanji transfer mode.  However there are
+mode-less input methods for Egg and Canna.  `boiled-egg' is a mode-less
+input method running on Egg.  For Canna, `canna.el' has a tiny
+boiled-egg-like command, `(canna-boil)', and there are some
+boiled-egg-like utilities.
+
+   Much of this information was provided by MORIOKA Tomohiko
+<morioka@jaist.ac.jp>.
+
+\1f
+File: xemacs-faq.info,  Node: Q1.8.6,  Next: Q1.8.7,  Prev: Q1.8.5,  Up: Introduction
+
+Q1.8.6: How do I portably code for MULE/XEmacs?
+-----------------------------------------------
+
+MULE has evolved rapidly over the last few years, and the original third
+party patch (for GNU Emacs 19), GNU Emacs 20+, and XEmacs 20+ have quite
+different implementations.  The APIs also vary although recent versions
+of XEmacs have tended to converge to the GNU Emacs standard.
+
+   MULE implementations are going to continue to evolve.  Both GNU Emacs
+and XEmacs are working hard on Unicode support, which will involve new
+APIs and probably variations on old ones.  For XEmacs 22, the old ISO
+2022-based system for recognizing encodings will be replaced by a much
+more flexible system, which should improve accuracy of automatic coding
+detections, but will also involve new APIs.
+
+   MORIOKA Tomohiko <morioka@jaist.ac.jp> writes:
+
+     The application implementor must write separate code for these mule
+     variants.  [Please don't hesitate to report these variants to us;
+     they are not, strictly speaking, bugs, but they give third-party
+     developers the same kind of creepy-crawly feeling.  We'll do what
+     we can. - Ed.]
+
+     MULE and the next version of Emacs are similar but the symbols are
+     very different--requiring separate code as well.
+
+     Namely we must support 3 kinds of mule variants and 4 or 5 or 6
+     kinds of emacs variants... (;_;) I'm shocked, so I wrote a wrapper
+     package called `emu' to provide a common interface.  [There is an
+     XEmacs package of APEL which provides much more comprehensive
+     coverage.  Be careful, however; APEL has problems of its own. -
+     Ed.]
+
+     I have the following suggestions about dealing with mule variants:
+
+        * `(featurep 'mule)' `t' on all mule variants
+
+        * `(boundp 'MULE)' is `t' on only MULE.  Maybe the next version
+          of Emacs will not have this symbol.
+
+        * MULE has a variable `mule-version'.  Perhaps the next version
+          of Emacs will have this variable as well.
+
+     Following is a sample to distinguish mule variants:
+
+          (if (featurep 'mule)
+              (cond ((boundp 'MULE)
+                     ;; for original Mule
+                     )
+                    ((string-match "XEmacs" emacs-version)
+                     ;; for XEmacs with Mule
+                     )
+                    (t
+                     ;; for next version of Emacs
+                     ))
+            ;; for old emacs variants
+            )
+
+\1f
+File: xemacs-faq.info,  Node: Q1.8.7,  Next: Q1.8.8,  Prev: Q1.8.6,  Up: Introduction
+
+Q1.8.7: How about Cyrillic modes?
+---------------------------------
+
+Ilya Zakharevich <ilya@math.ohio-state.edu> writes:
+
+     There is a cyrillic mode in the file `mysetup.zip' in
+     `ftp://ftp.math.ohio-state.edu/pub/users/ilya/emacs/'.  This is a
+     modification to Valery Alexeev's <ava@math.jhu.ed> `russian.el'
+     which can be obtained from
+
+   `http://www.math.uga.edu/~valery/russian.el'.
+
+   Dima Barsky <d.barsky@ee.surrey.ac.uk> writes:
+
+     There is another cyrillic mode for both GNU Emacs and XEmacs by
+     Dmitrii (Mitya) Manin <manin@camelot.mssm.edu> at
+     `http://kulichki-lat.rambler.ru/centrolit/manin/cyr.el'.
+
+   Rebecca Ore <rebecca.ore@op.net> writes:
+
+     The fullest resource I found on Russian language use (in and out of
+     XEmacs) is `http://www.ibiblio.org/sergei/Software/Software.html'
+
+\1f
+File: xemacs-faq.info,  Node: Q1.8.8,  Next: Q1.8.9,  Prev: Q1.8.7,  Up: Introduction
+
+Q1.8.8: Does XEmacs support Unicode?
+------------------------------------
+
+To get Unicode support, you need a Mule-enabled XEmacs.
+
+   21.5 has internal support for Unicode and supports it fully,
+although we don't yet use it as the internal encoding.
+
+   21.4 supports Unicode partially - as an external encoding for files,
+processes, and terminals, but without font support.  *Note How does
+XEmacs display Unicode?: Q1.8.9.  To get Unicode support in 21.4,
+install Mule-UCS from packages in the usual way, and put
+
+     (require 'un-define)
+     (set-coding-priority-list '(utf-8))
+     (set-coding-category-system 'utf-8 'utf-8)
+
+   in your init file to enable the UTF-8 coding system.  You may wish to
+view the documentation of `set-coding-priority-list' if you find that
+files that are not UTF-8 are being mis-recognized as UTF-8.
+
+   Install standard national fonts (not Unicode fonts) for all character
+sets you use.  *Note How does XEmacs display Unicode??: Q1.8.9.
+
+   Mule-UCS also supports 16-bit forms of Unicode (UTF-16).  It does not
+support 31-bit forms of Unicode (UTF-32 or UCS-4).
+
+\1f
+File: xemacs-faq.info,  Node: Q1.8.9,  Prev: Q1.8.8,  Up: Introduction
+
+Q1.8.9: How does XEmacs display Unicode?
+----------------------------------------
+
+Mule doesn't have a Unicode charset internally, so there's nothing to
+bind a Unicode registry to.  It would not be straightforward to create,
+either, because Unicode is not ISO 2022-compatible.  You'd have to
+translate it to multiple 96x96 pages.
+
+   This means that Mule-UCS uses ordinary national fonts for display.
+This is not really a problem, except for those languages that use the
+Unified Han characters.  The problem here is that Mule-UCS maps from
+Unicode code points to national character sets in a deterministic way.
+By default, this means that Japanese fonts are tried first, then
+Chinese, then Korean.  To change the priority ordering, use the command
+`un-define-change-charset-order'.
+
+   It also means you can't use Unicode fonts directly, at least not
+without extreme hackery.  You can run -nw with
+(set-terminal-coding-system 'utf-8) if you really want a Unicode font
+for some reason.
+
+   Real Unicode support will be introduced in XEmacs 22.0.
+
+\1f
+File: xemacs-faq.info,  Node: Installation,  Next: Editing,  Prev: Introduction,  Up: Top
+
+2 Installation and Troubleshooting
+**********************************
+
+This is part 2 of the XEmacs Frequently Asked Questions list.  This
+section is devoted to Installation, Maintenance and Troubleshooting.
+
+* Menu:
+
+2.0: Installation (General)
+* Q2.0.1::    How do I build and install XEmacs?
+* Q2.0.2::    Where do I find external libraries?
+* Q2.0.3::    How do I specify the paths that XEmacs uses for finding files?
+* Q2.0.4::    Running XEmacs without installing
+* Q2.0.5::    XEmacs is too big
+
+2.1: Package Installation
+* Q2.1.1::    How do I install the packages?
+* Q2.1.2::    Can I install the packages individually?
+* Q2.1.3::    Can I install the packages automatically?
+* Q2.1.4::    Can I upgrade or remove packages?
+* Q2.1.5::    Which packages to install?
+* Q2.1.6::    Can you describe the package location process in more detail?
+* Q2.1.7::    EFS fails with "500 AUTH not understood"
+
+2.2: Unix/Mac OS X Installation (Also Relevant to Cygwin, MinGW)
+* Q2.2.1::    Libraries in non-standard locations
+* Q2.2.2::    Why can't I strip XEmacs?
+
+2.3: Windows Installation (Windows, Cygwin, MinGW)
+* Q2.3.1::    What exactly are all the different ways to build XEmacs under Windows?
+* Q2.3.2::    What compiler/libraries do I need to compile XEmacs?
+* Q2.3.3::    How do I compile the native port?
+* Q2.3.4::    What do I need for Cygwin?
+* Q2.3.5::    How do I compile under Cygwin?
+* Q2.3.6::    How do I compile using MinGW (aka `the -mno-cygwin flag to gcc')?
+* Q2.3.7::    How do I compile with X support?
+* Q2.3.8::    Cygwin XEmacs won't start -- cygXpm-noX4.dll was not found (NEW)
+
+2.4: General Troubleshooting
+* Q2.4.1::    How do I deal with bugs or with problems building, installing, or running?
+* Q2.4.2::    Help!  XEmacs just crashed on me!
+* Q2.4.3::    XEmacs crashes and I compiled it myself.
+* Q2.4.4::    How to debug an XEmacs problem with a debugger
+* Q2.4.5::    I get a cryptic error message when trying to do something.
+* Q2.4.6::    XEmacs hangs when I try to do something.
+* Q2.4.7::    I get an error message when XEmacs is running in batch mode.
+* Q2.4.8::    The keyboard or mouse is not working properly, or I have some other event-related problem.
+* Q2.4.9::    C-g doesn't work for me.  Is it broken?
+* Q2.4.10::   How do I debug process-related problems?
+* Q2.4.11::   XEmacs is outputting lots of X errors.
+* Q2.4.12::   After upgrading, XEmacs won't do `foo' any more!
+
+2.5: Startup-Related Problems
+* Q2.5.1::    XEmacs cannot connect to my X Terminal!
+* Q2.5.2::    Startup problems related to paths or package locations.
+* Q2.5.3::    XEmacs won't start without network.
+* Q2.5.4::    Startup warnings about deducing proper fonts?
+* Q2.5.5::    Warnings from incorrect key modifiers.
+* Q2.5.6::    XEmacs 21.1 on Windows used to spawn an ugly console window on every startup.  Has that been fixed?
+
+2.0: Installation (General)
+===========================
+
+\1f
+File: xemacs-faq.info,  Node: Q2.0.1,  Next: Q2.0.2,  Prev: Installation,  Up: Installation
+
+Q2.0.1: How do I build and install XEmacs?
+------------------------------------------
+
+See the file `etc/NEWS' for information on new features and other
+user-visible changes since the last version of XEmacs.
+
+   The file `INSTALL' in the top-level directory says how to bring up
+XEmacs on Unix and Cygwin, once you have loaded the entire subtree of
+this directory.
+
+   See the file `nt/README' for instructions on building XEmacs for
+Microsoft Windows.
+
+   *Note Q2.1.1::, for the installation of (essential) add on packages.
+
+\1f
+File: xemacs-faq.info,  Node: Q2.0.2,  Next: Q2.0.3,  Prev: Q2.0.1,  Up: Installation
+
+Q2.0.2: Where do I find external libraries?
+-------------------------------------------
+
+All external libraries used by XEmacs can be found on the XEmacs web
+site `http://www.xemacs.org/Download/optLibs.html'.
+
+   The library versions available here are known to work with XEmacs.
+(Newer versions will probably work as well but we can't guarantee it.)
+We try to keep the libraries up-to-date but may not always succeed.
+Check the above page for the canonical locations of the external
+libraries, allowing you to download the latest, bleeding-edge versions.
+
+\1f
+File: xemacs-faq.info,  Node: Q2.0.3,  Next: Q2.0.4,  Prev: Q2.0.2,  Up: Installation
+
+Q2.0.3: 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
+file INSTALL in the XEmacs distribution for a listing of those flags.
+
+   Most of the time, however, the simplest fix is: *do not* specify
+paths as you might for GNU Emacs.  XEmacs can generally determine the
+necessary paths dynamically at run time.  The only path that generally
+needs to be specified is the root directory to install into.  That can
+be specified by passing the `--prefix' flag to configure.  For a
+description of the XEmacs install tree, please consult the `NEWS' file.
+
+\1f
+File: xemacs-faq.info,  Node: Q2.0.4,  Next: Q2.0.5,  Prev: Q2.0.3,  Up: Installation
+
+Q2.0.4: Running XEmacs without installing
+-----------------------------------------
+
+How can I just try XEmacs without installing it?
+
+   XEmacs will run in place without requiring installation and copying
+of the Lisp directories, and without having to specify a special
+build-time flag.  It's the copying of the Lisp directories that
+requires so much space.  XEmacs is largely written in Lisp.
+
+   A good method is to make a shell alias for xemacs:
+
+     alias xemacs=/src/xemacs-21.5/src/xemacs
+
+   (You will obviously use whatever directory you downloaded the source
+tree to instead of `/src/xemacs-21.5').
+
+   This will let you run XEmacs without massive copying.
+
+\1f
+File: xemacs-faq.info,  Node: Q2.0.5,  Next: Q2.1.1,  Prev: Q2.0.4,  Up: Installation
+
+Q2.0.5: XEmacs is too big
+-------------------------
+
+The space required by the installation directories can be reduced
+dramatically if desired.  Gzip all the .el files.  Remove all the
+packages you'll never want to use.  Remove the TexInfo manuals.  Remove
+the Info (and use just hardcopy versions of the manual).  Remove most
+of the stuff in etc.  Remove or gzip all the source code.  Gzip or
+remove the C source code.  Configure it so that copies are not made of
+the support lisp.
+
+   These are all Emacs Lisp source code and bytecompiled object code.
+You may safely gzip everything named *.el here.  You may remove any
+package you don't use.  _Nothing bad will happen if you delete a package
+that you do not use_.  You must be sure you do not use it though, so be
+conservative at first.
+
+   Any package with the possible exceptions of xemacs-base, and EFS are
+candidates for removal.  Ask yourself, _Do I ever want to use this
+package?_  If the answer is no, then it is a candidate for removal.
+
+   First, gzip all the .el files.  Then go about package by package and
+start gzipping the .elc files.  Then run XEmacs and do whatever it is
+you normally do.  If nothing bad happens, then remove the package.  You
+can remove a package via the PUI interface (`M-x pui-list-packages',
+then press `d' to mark the packages you wish to delete, and then `x' to
+delete them.
+
+   Another method is to do `M-x package-get-delete-package'.
+
+2.1: Package Installation
+=========================
+
+\1f
+File: xemacs-faq.info,  Node: Q2.1.1,  Next: Q2.1.2,  Prev: Q2.0.5,  Up: Installation
+
+Q2.1.1: How do I install the packages?
+--------------------------------------
+
+There are three ways to install the packages.
+
+  1. Manually, all at once, using the 'Sumo Tarball'.
+
+  2. Manually, using individual package tarballs.
+
+  3. Automatically, using the package tools from XEmacs.
+
+   If you don't want to mess with the packages, it is easiest to just
+grab them manually, all at once. (For the other two ways, *Note
+Q2.1.2::, and *Note Q2.1.3::.) Download the file
+
+   `xemacs-sumo.tar.gz'
+
+   For an XEmacs compiled with Mule you also need
+
+   `xemacs-mule-sumo.tar.gz'
+
+   These are in the `packages' directory on your XEmacs mirror archive:
+`ftp://ftp.xemacs.org/pub/xemacs/packages' or its mirrors.  N.B. They
+are called 'Sumo Tarballs' for good reason. They are currently about
+19MB and 4.5MB (gzipped) respectively.
+
+   Install them on Unix and Mac OS X using the shell/Terminal command
+
+   `cd $prefix/lib/xemacs ; gunzip -c <tarballname> | tar xf -'
+
+   Where `$prefix' is what you gave to the `--prefix' flag to
+`configure', and defaults to `/usr/local'.
+
+   If you have GNU tar you can use:
+
+   `cd $prefix/lib/xemacs ; tar zxvf <tarballname>'
+
+   If you have the packages somewhere nonstandard and don't want to
+bother with `$prefix' (for example, you're a developer and are compiling
+the packages yourself, and want your own private copy of everything),
+you can also directly specify this using `configure'.  To do this with
+21.5 and above use the `--with-package-prefix' parameter to specify the
+directory under which you untarred the above tarballs.  Under 21.4 and
+previous you need to use `--package-path'.  Using these options looks
+something like this:
+
+        configure --package-path="~/.xemacs::/src/xemacs/site-packages:/src/xemacs/xemacs-packages:/src/xemacs/mule-packages" ...
+
+   Under Windows, you need to place the above `tar.gz' files in the
+directory specified using the `PACKAGE_PREFIX' value in `nt/config.inc'
+and by default is `\Program Files\XEmacs'.  (To untar a `tar.gz' file
+you will need to use a utility such as WinZip, unless you have Cygwin
+or a similar environment installed, in which case the above Unix shell
+command should work fine.) If you want the packages somewhere else,
+just change `PACKAGE_PREFIX'.
+
+   Note that XEmacs finds the packages automatically anywhere underneath
+the directory tree where it expects to find the packages.  All you need
+to do is put stuff there; you don't need to run any program to tell
+XEmacs to find the packges, or do anything of that sort.
+
+   However, XEmacs will only notice newly installed packages when it
+starts up, so you will have to restart if you are already running
+XEmacs.
+
+   For more details, *Note Startup Paths: (xemacs)Startup Paths, and
+*Note Packages: (xemacs)Packages.
+
+   As the Sumo tarballs are not regenerated as often as the individual
+packages, it is recommended that you use the automatic package tools
+afterwards to pick up any recent updates.
+
+   _NOTE_: For detailed information about how the package hierarchies
+work, *Note Package Overview: (lispref)Package Overview.
+
+\1f
+File: xemacs-faq.info,  Node: Q2.1.2,  Next: Q2.1.3,  Prev: Q2.1.1,  Up: Installation
+
+Q2.1.2: Can I install the packages individually?
+------------------------------------------------
+
+Yes, you can download individual packages from the FTP site (*note
+Q2.1.1::).  Since packages are automatically noticed at startup, you
+just have to put them in the right place.
+
+   Note: If you are upgrading packages already installed, it's best to
+remove the old package first (*note Q2.1.4::).
+
+   For example if we are installing the `xemacs-base' package (version
+1.48):
+
+        mkdir $prefix/lib/xemacs/xemacs-packages RET # if it does not exist yet
+        cd $prefix/lib/xemacs/xemacs-packages RET
+        gunzip -c /path/to/xemacs-base-1.48-pkg.tar.gz | tar xvf - RET
+
+   Or if you have GNU tar, the last step can be:
+
+        tar zxvf /path/to/xemacs-base-1.48-pkg.tar.gz RET
+
+   For MULE related packages, it is best to untar into the
+`mule-packages' hierarchy, i.e. for the `mule-base' package, version
+1.37:
+
+        mkdir $prefix/lib/xemacs/mule-packages RET # if it does not exist yet
+        cd $prefix/lib/xemacs/mule-packages RET
+        gunzip -c /path/to/mule-base-1.37-pkg.tar.gz | tar xvf - RET
+
+   Or if you have GNU tar, the last step can be:
+
+        tar zxvf /path/to/mule-base-1.37-pkg.tar.gz RET
+
+\1f
+File: xemacs-faq.info,  Node: Q2.1.3,  Next: Q2.1.4,  Prev: Q2.1.2,  Up: Installation
+
+Q2.1.3: Can I install the packages automatically?
+-------------------------------------------------
+
+XEmacs comes with some tools to make the periodic updating and
+installing easier. It will notice if new packages or versions are
+available and will fetch them from the FTP site.
+
+   Unfortunately this requires that a few packages are already in place.
+You will have to install them by hand as above or use a SUMO tarball.
+This requirement will hopefully go away in the future. The packages you
+need are:
+
+        efs          - To fetch the files from the FTP site or mirrors.
+        xemacs-base  - Needed by efs.
+
+   and optionally:
+
+        mailcrypt    - For PGP verification of the package-index file.
+
+   After installing these by hand, fire up XEmacs and follow these
+steps.
+
+  1. Choose a download site.
+        * via menu: Tools -> Packages -> Set Download Site
+
+        * via keyb: M-x customize-variable RET package-get-remote RET
+          (put in the details of remote host and directory)
+
+     If the package tarballs _AND_ the package-index file are in a
+     local directory, you can: M-x pui-set-local-package-get-directory
+     RET
+
+  2. Obtain a list of packages and display the list in a buffer named
+     "*Packages*".
+        * menu: Tools -> Packages -> List & Install
+
+        * keyb: M-x pui-list-packages RET
+
+     XEmacs will now connect to the remote site and download the latest
+     package-index file.
+
+     The resulting buffer, "*Packages*" has brief instructions at the
+     end of the buffer.
+
+  3. Choose the packages you wish to install.
+        * mouse: Click button 2 on the package name.
+
+        * keyb: RET on the package name
+
+  4. Make sure you have everything you need.
+        * menu: Packages -> Add Required
+
+        * keyb: r
+
+     XEmacs will now search for packages that are required by the ones
+     that you have chosen to install and offer to select those packages
+     also.
+
+     For novices and gurus alike, this step can save your bacon.  It's
+     easy to forget to install a critical package.
+
+  5. Download and install the packages.
+        * menu: Packages -> Install/Remove Selected
+
+        * keyb: x
+
+\1f
+File: xemacs-faq.info,  Node: Q2.1.4,  Next: Q2.1.5,  Prev: Q2.1.3,  Up: Installation
+
+Q2.1.4: Can I upgrade or remove packages?
+-----------------------------------------
+
+As the exact files and their locations contained in a package may
+change it is recommended to remove a package first before installing a
+new version. In order to facilitate removal each package contains an
+pgkinfo/MANIFEST.pkgname file which list all the files belong to the
+package. M-x package-admin-delete-binary-package RET can be used to
+remove a package using this file.
+
+   Note that the interactive package tools included with XEmacs already
+do this for you.
+
+\1f
+File: xemacs-faq.info,  Node: Q2.1.5,  Next: Q2.1.6,  Prev: Q2.1.4,  Up: Installation
+
+Q2.1.5: Which packages to install?
+----------------------------------
+
+Unless you are an advanced user, just install everything.
+
+   If you really want to install only what's absolutely needed, a good
+minimal set of packages for XEmacs-latin1 would be
+
+     xemacs-base, xemacs-devel, c-support, cc-mode, debug, dired, efs,
+     edit-utils, fsf-compat, mail-lib, net-utils, os-utils, prog-modes,
+     text-modes, time, mailcrypt
+
+   If you are using the XEmacs package tools, don't forget to do:
+
+       Packages -> Add Required
+
+   To make sure you have everything that the packages you have chosen to
+install need.
+
+   *Note Q1.7.2::, for a description of the various packages.
+
+\1f
+File: xemacs-faq.info,  Node: Q2.1.6,  Next: Q2.1.7,  Prev: Q2.1.5,  Up: Installation
+
+Q2.1.6: Can you describe the package location process in more detail?
+---------------------------------------------------------------------
+
+On startup XEmacs looks for packages in so-called package hierarchies.
+Normally, there are three system wide hierarchies, like this:
+
+     $prefix/lib/xemacs/xemacs-packages/
+          Normal packages go here.
+
+     $prefix/lib/xemacs/mule-packages/
+          Mule packages go here and are only searched by MULE-enabled XEmacsen.
+
+     $prefix/lib/xemacs/site-packages/
+          Local and 3rd party packages go here.
+
+   This is what you get when you untar the SUMO tarballs under
+`$prefix/lib/xemacs'.
+
+   `$prefix' is specified using the `--prefix' parameter to
+`configure', and defaults to `usr/local'.
+
+   If the package path is not explicitly specified, XEmacs looks for the
+package directory `xemacs-packages' (and `mule-packages' and
+`site-packages') first under `~/.xemacs', then for a sister directory
+`lib/xemacs-VERSION' of the directory in which the XEmacs executable is
+located, then for a sister directory `lib/xemacs'.  The XEmacs
+executable (under Unix at least) is installed by default in
+`/usr/local/bin'; this explains why XEmacs in its default installation
+will find packages that you put under `/usr/local/lib/xemacs'.
+
+   You can specify where exactly XEmacs looks for packages by using the
+`--with-package-prefix' or `--with-package-path' parameters to
+`configure' (or the equivalent settings in `config.inc', under
+Windows), or setting the `EMACSPACKAGEPATH' environment variable (which
+has the same format as `--with-package-path').  *Note Q2.1.1::.
+
+   See `configure.usage' for more info about the format of these
+`configure' parameters.
+
+   In addition to the system wide packages, each user can have his own
+packages installed under `~/.xemacs/'. If you want to install packages
+there using the interactive tools, you need to set
+`package-get-install-to-user-init-directory' to `t'.
+
+   The site-packages hierarchy replaces the old `site-lisp' directory.
+XEmacs no longer looks into a `site-lisp' directly by default.  A good
+place to put `site-start.el' would be in
+`$prefix/lib/xemacs/site-packages/lisp/'.
+
+\1f
+File: xemacs-faq.info,  Node: Q2.1.7,  Next: Q2.2.1,  Prev: Q2.1.6,  Up: Installation
+
+Q2.1.7: EFS fails with "500 AUTH not understood" (NEW)
+------------------------------------------------------
+
+A typical error: FTP Error: USER request failed; 500 AUTH not
+understood.
+
+   Thanks to giacomo boffi <giacomo.boffi@polimi.it> who recommends on
+comp.emacs.xemacs:
+
+   tell your ftp client to not attempt AUTH authentication (or do not
+use FTP servers that don't understand AUTH)
+
+   and notes that you need to add an element (often "-u") to
+`efs-ftp-program-args'.  Use M-x customize-variable, and verify the
+needed flag with `man ftp' or other local documentation.
+
+2.2: Unix/Mac OS X Installation (Also Relevant to Cygwin, MinGW)
+================================================================
+
+\1f
+File: xemacs-faq.info,  Node: Q2.2.1,  Next: Q2.2.2,  Prev: Q2.1.7,  Up: Installation
+
+Q2.2.1: Libraries in non-standard locations
+-------------------------------------------
+
+If your libraries are in a non-standard location, you can specify the
+location using the following flags to `configure'.  Under 21.4 or
+earlier:
+
+     --site-libraries=WHATEVER
+     --site-includes=WHATEVER
+
+   Under 21.5 or later:
+
+     --with-site-libraries=WHATEVER
+     --with-site-includes=WHATEVER
+
+   If you have multiple paths to specify, use the following syntax:
+
+     --site-libraries='/path/one /path/two /path/etc'
+
+   If the libraries and headers reside in the directories `lib' and
+`include' of a common root (say `/sw') then both can be specified with
+a single option:
+
+     --site-prefixes=WHATEVER
+
+   or for 21.5:
+
+     --with-site-prefixes=WHATEVER
+
+\1f
+File: xemacs-faq.info,  Node: Q2.2.2,  Next: Q2.3.1,  Prev: Q2.2.1,  Up: Installation
+
+Q2.2.2: Why can't I strip XEmacs?
+---------------------------------
+
+Richard Cognot <cognot@fronsac.ensg.u-nancy.fr> writes:
+
+     Because of the way XEmacs (and every other Emacsen, AFAIK) is
+     built. The link gives you a bare-boned emacs (called temacs).
+     temacs is then run, preloading some of the lisp files. The result
+     is then dumped into a new executable, named xemacs, which will
+     contain all of the preloaded lisp functions and data.
+
+     Now, during the dump itself, the executable (code+data+symbols) is
+     written on disk using a special unexec() function. This function is
+     obviously heavily system dependent. And on some systems, it leads
+     to an executable which, although valid, cannot be stripped without
+     damage. If memory serves, this is especially the case for AIX
+     binaries. On other architectures it might work OK.
+
+     The Right Way to strip the emacs binary is to strip temacs prior to
+     dumping xemacs. This will always work, although you can do that
+     only if you install from sources (as temacs is `not' part of the
+     binary kits).
+
+   Nat Makarevitch <nat@nataa.fr.eu.org> writes:
+
+     Here is the trick:
+
+       1. [ ./configure; make ]
+
+       2. rm src/xemacs
+
+       3. strip src/temacs
+
+       4. make
+
+       5. cp src/xemacs /usr/local/bin/xemacs
+
+       6. cp lib-src/DOC-19.16-XEmacs
+          /usr/local/lib/xemacs-19.16/i586-unknown-linuxaout
+
+2.3: Windows Installation (Windows, Cygwin, MinGW)
+==================================================
+
+\1f
+File: xemacs-faq.info,  Node: Q2.3.1,  Next: Q2.3.2,  Prev: Q2.2.2,  Up: Installation
+
+Q2.3.1: What exactly are all the different ways to build XEmacs under Windows?
+------------------------------------------------------------------------------
+
+XEmacs can be built in several ways in the MS Windows environment.
+
+   The standard way is what we call the "native" port.  It uses the
+Win32 API and has no connection with X whatsoever - it does not require
+X libraries to build, nor does it require an X server to run.  The
+native port is the most reliable version and provides the best graphical
+support.  Almost all development is geared towards this version, and
+there is little reason not to use it.
+
+   The second way to build is the Cygwin port.  It takes advantage of
+Cygnus emulation library under Win32.  *Note What are Cygwin and MinGW:
+Q1.2.5, for more information.
+
+   A third way is the MinGW port.  It uses the Cygwin environment to
+build but does not require it at runtime.  *Note What are Cygwin and
+MinGW: Q1.2.5, for more information.
+
+   Finally, you might also be able to build the non-Cygwin, non-MinGW
+"X" port.  This was actually the first version of XEmacs that ran under
+MS Windows, and although the code is still in XEmacs, it's essentially
+orphaned and it's unlikely it will compile without a lot of work.  If
+you want an MS Windows versin of XEmacs that supports X, use the Cygwin
+version. (The X support there is actively maintained, so that Windows
+developers can test the X support in XEmacs.)
+
+\1f
+File: xemacs-faq.info,  Node: Q2.3.2,  Next: Q2.3.3,  Prev: Q2.3.1,  Up: Installation
+
+Q2.3.2: What compiler/libraries do I need to compile XEmacs?
+------------------------------------------------------------
+
+You need Visual C++ 4.2, 5.0, or 6.0 for the native version. (We have
+some beta testers currently trying to compile with VC.NET, aka version
+7.0, but we can't yet report complete success.) For the Cygwin and
+MinGW versions, you need the Cygwin environment, which comes with GCC,
+the compiler used for those versions.  *Note What are Cygwin and MinGW:
+Q1.2.5, for more information on Cygwin and MinGW.
+
+\1f
+File: xemacs-faq.info,  Node: Q2.3.3,  Next: Q2.3.4,  Prev: Q2.3.2,  Up: Installation
+
+Q2.3.3: How do I compile the native port?
+-----------------------------------------
+
+Please read the file `nt/README' in the XEmacs distribution, which
+contains the full description.
+
+\1f
+File: xemacs-faq.info,  Node: Q2.3.4,  Next: Q2.3.5,  Prev: Q2.3.3,  Up: Installation
+
+Q2.3.4: What do I need for Cygwin?
+----------------------------------
+
+You can find the Cygwin tools and compiler at:
+
+   `http://www.cygwin.com/'
+
+   Click on the `Install or update now!' link, which will download a
+file `setup.exe', which you can use to download everything else. (You
+will need to pick a mirror site; `mirrors.rcn.net' is probably the
+best.) You should go ahead and install everything - you'll get various
+ancillary libraries that XEmacs needs or likes, e.g. XPM, PNG, JPEG,
+TIFF, etc.  You can also get X Windows here, if you want to compile
+under X.
+
+   If you want to compile without X, you will need the `xpm-nox'
+library, which must be specifically selected in the Cygwin netinstaller;
+it is not selected by default.  The package has had various names.
+Currently it is called `cygXpm-noX4.dll'.
+
+\1f
+File: xemacs-faq.info,  Node: Q2.3.5,  Next: Q2.3.6,  Prev: Q2.3.4,  Up: Installation
+
+Q2.3.5: How do I compile under Cygwin?
+--------------------------------------
+
+Similar as on Unix; use the usual `configure' and `make' process.  Some
+problems to watch out for:
+
+   * make sure HOME is set. This controls where you `init.el' file
+     comes from;
+
+   * `CYGWIN' needs to be set to `tty' for process support to work;
+
+   * picking up some other grep or other UNIX-like tools can kill
+     configure;
+
+   * static heap too small, adjust `src/sheap-adjust.h' to a more
+     positive number;
+
+   * (Unconfirmed) The Cygwin version doesn't understand
+     `//machine/path' type paths so you will need to manually mount a
+     directory of this form under a unix style directory for a build to
+     work on the directory;
+
+   * If you're building *WITHOUT* X11, don't forget to change symlinks
+     `/usr/lib/libXpm.a' and `/usr/lib/libXpm.dll.a' to point to the
+     non-X versions of these libraries.  By default they point to the X
+     versions.  So:
+
+          /usr/lib/libXpm.a     -> /usr/lib/libXpm-noX.a
+          /usr/lib/libXpm.dll.a -> /usr/lib/libXpm-noX.dll.a
+
+     (This advice may now be obsolete because of the availability of the
+     cygXpm-noX4.dll package from Cygwin.  Send confirmation to
+     <faq@xemacs.org>.)
+
+   * Other problems are listed in the `PROBLEMS' file, in the top-level
+     directory of the XEmacs sources.
+
+
+\1f
+File: xemacs-faq.info,  Node: Q2.3.6,  Next: Q2.3.7,  Prev: Q2.3.5,  Up: Installation
+
+Q2.3.6: How do I compile using MinGW (aka `the -mno-cygwin flag to gcc')?
+-------------------------------------------------------------------------
+
+Similar to the method for Unix.  Things to remember:
+
+   * Specify the target host on the command line for `./configure', e.g.
+     `./configure i586-pc-mingw32'.
+
+   * Be sure that your build directory is mounted such that it has the
+     same path either as a cygwin path (`/build/xemacs') or as a Windows
+     path (`c:\build\xemacs').
+
+   * Build `gcc -mno-cygwin' versions of the extra libs, i.e. `libpng',
+     `compface', etc.
+
+   * Specify the target location of the extra libs on the command line
+     to `configure', e.g.for 21.4 or earlier `./configure
+     --site-prefixes=/build/libs i586-pc-mingw32' and for 21.5 or later
+     `./configure --with-site-prefixes=/build/libs i586-pc-mingw32'.
+
+\1f
+File: xemacs-faq.info,  Node: Q2.3.7,  Next: Q2.3.8,  Prev: Q2.3.6,  Up: Installation
+
+Q2.3.7: How do I compile with X support?
+----------------------------------------
+
+To compile under Cygwin, all you need to do is install XFree86, which
+is available as part of the standard Cygwin installation.
+`http://www.cygwin.com/'.  Once installed, `configure' should
+automatically find the X libraries and compile with X support.
+
+   As noted above, the non-Cygwin X support is basically orphaned, and
+probably won't work.  But if it want to try, it's described in
+`nt/README' in some detail.  Basically, you need to get X11 libraries
+from `http://ftp.x.org', and compile them.  If the precompiled versions
+are available somewhere, we don't know of it.
+
+\1f
+File: xemacs-faq.info,  Node: Q2.3.8,  Next: Q2.4.1,  Prev: Q2.3.7,  Up: Installation
+
+Q2.3.8: Cygwin XEmacs won't start - cygXpm-noX4.dll was not found (NEW)
+-----------------------------------------------------------------------
+
+The Cygwin binary distributed with the netinstaller uses an external DLL
+to handle XPM images (such as toolbar buttons).  You may get an error
+like
+
+     This application has failed to start because cygXpm-noX4.dll was not found.
+     Re-installing the application may fix this problem.
+
+   Andy Piper <andy@xemacs.org> sez:
+
+     cygXpm-noX4 is part of the cygwin distribution under libraries or
+     graphics, but is not installed by default. You need to run the
+     cygwin setup again and select this package.
+
+   Ie, reinstalling XEmacs won't help because it is not part of the
+XEmacs distribution.
+
+2.4: General Troubleshooting
+============================
+
+\1f
+File: xemacs-faq.info,  Node: Q2.4.1,  Next: Q2.4.2,  Prev: Q2.3.8,  Up: Installation
+
+Q2.4.1: How do I deal with bugs or with problems building, installing, or running?
+----------------------------------------------------------------------------------
+
+The file `PROBLEMS' contains information on many common problems that
+occur in building, installing and running XEmacs.
+
+   Reports of bugs in XEmacs should be sent to
+<xemacs-beta@xemacs.org>.  You can also post to the newsgroup
+comp.emacs.xemacs (or equivalentlt, send to the mailing list
+<xemacs@xemacs.org>), but it is less likely that the developers will
+see it in a timely fashion.  *Note Bugs: (xemacs)Bugs, for more
+information on how to report bugs.  *Note Q1.4.2::, for more
+information on mailing lists relating to XEmacs.
+
+   There are three ways to read the Bugs section.
+
+  1. In a printed copy of the XEmacs manual.
+
+  2. With Info.  First, start XEmacs.  From the menu, select
+     `Help->Info (Online Docs)->Info Contents' to enter Info, then
+     click on `XEmacs', then on `Bugs'.  Or, use the keyboard: do `C-h
+     i' to enter Info, then `m XEmacs RET' to get to the Emacs manual,
+     then `m Bugs RET' to get to the section on bugs.  Or use
+     standalone Info in a like manner.  (Standalone Info is part of the
+     Texinfo distribution, not part of the XEmacs distribution.)
+
+  3. By hand.  Do
+          cat info/xemacs* | more "+/^File: xemacs.info,  Node: Bugs,"
+
+\1f
+File: xemacs-faq.info,  Node: Q2.4.2,  Next: Q2.4.3,  Prev: Q2.4.1,  Up: Installation
+
+Q2.4.2: 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
+this will not happen is if the machine physically lost power or if you
+killed the XEmacs process using `kill -9').  The next time you try to
+edit those files, you will be informed that a more recent auto-save
+file exists.  You can use `M-x recover-file' to retrieve the auto-saved
+version of the file.
+
+   You can use the command `M-x recover-session' after a crash to pick
+up where you left off.
+
+   Now, XEmacs is not perfect, and there may occasionally be times, or
+particular sequences of actions, that cause it to crash.  If you can
+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.  The best way
+to report a bug is using `M-x report-emacs-bug' (or by selecting `Send
+Bug Report...' from the Help menu).  If that won't work (e.g. you can't
+get XEmacs working at all), send ordinary mail to
+<xemacs-beta@xemacs.org>. _MAKE SURE_ to include the output from the
+crash, especially including the Lisp backtrace, as well as the XEmacs
+configuration from `M-x describe-installation' (or equivalently, the
+file `Installation' in the top of the build tree).  Note that the
+developers do _not_ usually follow `comp.emacs.xemacs' on a regular
+basis; thus, this is better for general questions about XEmacs than bug
+reports.
+
+   If at all possible, include a C stack backtrace of the core dump that
+was produced.  This shows where exactly things went wrong, and makes it
+much easier to diagnose problems.  To do this under Unix and Mac OS X,
+you need to locate the core file (it's called `core', and is usually
+sitting in the directory that you started XEmacs from, or your home
+directory if that other directory was not writable).  Then, go to that
+directory and execute a command like:
+
+     gdb `which xemacs` core
+
+   and then issue the command `where' to get the stack backtrace.  You
+might have to use `dbx' or some similar debugger in place of `gdb'.  If
+you don't have any such debugger available, complain to your system
+administrator.
+
+   It's possible that a core file didn't get produced or the stack trace
+from gdb is garbage, in which case you're out of luck unless you can
+reproduce the bug.  A nonexistent core file can happen in some
+circumstances on some operating systems, depending on what exactly
+triggered the crash.  It's also possible, however, that your limits are
+set to turn them off.  You may be able to reenable them using a command
+like `unlimit coredumpsize' or `ulimit -c'. (To find out how your
+limits are set, use the command `limit'.) However, if you didn't
+explicitly set your limits this way, go complain to your system
+administrator and tell him not to disable core files by default.
+
+   A garbaged stack trace can happen for various reasons.  Some versions
+of gdb are broken on certain operating systems and aren't able to read
+the core file.  It's also possible that the stack got overwritten
+during the crash.  A very simple reason, however, is that your version
+of XEmacs was compiled without debugging information or had the
+debugging information stripped.  A compilation with optimization can
+also result in partly or completely garbaged stack trace.  In such
+cases, you will need to recompile XEmacs with debugging information and
+without optimization; *Note How to debug an XEmacs problem with a
+debugger: Q2.4.4.  Note also that core files currently don't work at
+all under Cygwin, and the only way to get a backtrace is to run XEmacs
+from gdb.
+
+   If you cannot get a backtrace from the core dump, but can reproduce
+the problem, try running XEmacs under gdb.  The goal is to get clean C
+and Lisp backtraces and submit a bug report including full
+configuration information as described above, as this will greatly
+assist in the process of tracking down the bug.  However, even partial
+information is better than none.  The process of getting backtraces
+from gdb is described in detail in *Note How to debug an XEmacs problem
+with a debugger: Q2.4.4.
+
+   If you're under Microsoft Windows, you're out of luck unless you
+happen to have a debugging aid installed on your system, for example
+Visual C++.  In this case, the crash will result in a message giving
+you the option to enter a debugger (for example, by pressing `Cancel').
+Do this and locate the stack-trace window. (If your XEmacs was built
+without debugging information, the stack trace may not be very useful.)
+
+   When making a problem report make sure that:
+
+  1. Report *all* of the information output by XEmacs during the crash.
+
+  2. You mention what O/S and Hardware you are running XEmacs on.
+
+  3. What version of XEmacs you are running.
+
+  4. What build options you are using.
+
+  5. If the problem is related to graphics and you are running Unix or
+     Mac OS X, we will also need to know what version of the X Window
+     System you are running, and what window manager you are using.
+
+  6. If the problem happened on a TTY, please include the terminal type.
+
+  7. Try very hard to get both C and Lisp backtraces, as described
+     above.
+
+   Much of the information above is automatically generated by `M-x
+report-emacs-bug'.  Even more, and often useful, information can be
+generated by redirecting the output of `make' and `make check' to a
+file (`beta.err' is the default used by `build-report'), and executing
+`M-x build-report'.
+
+\1f
+File: xemacs-faq.info,  Node: Q2.4.3,  Next: Q2.4.4,  Prev: Q2.4.2,  Up: Installation
+
+Q2.4.3: XEmacs crashes and I compiled it myself.
+------------------------------------------------
+
+There have been a variety of reports of crashes due to compilers with
+buggy optimizers.  If you are compiling with optimization, consider
+turning it off (*note How to debug an XEmacs problem with a debugger:
+Q2.4.4.) and recompiling.
+
+   Please see the `PROBLEMS' file that comes with XEmacs (it's in the
+top-level source directory) to read what it says about your platform.
+
+   If you compiled XEmacs 21.4 or ealier using `--use-union-type', or
+21.5 or later using `--enable-union-type' (or in either case used the
+option `USE_UNION_TYPE' in `config.inc' under Windows), try recompiling
+again without it.  The union type has been known to trigger compiler
+errors in a number of cases.
+
+\1f
+File: xemacs-faq.info,  Node: Q2.4.4,  Next: Q2.4.5,  Prev: Q2.4.3,  Up: Installation
+
+Q2.4.4: 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.
+Here are some hints:
+
+   * First of all, if the crash is at all reproducible, consider very
+     strongly recompiling your XEmacs with debugging symbols and with no
+     optimization (e.g. with GCC use the compiler flags `-g -O0' -
+     that's an "oh" followed by a zero), and with the configure options
+     `--debug=yes' and `--error-checking=all' (`--enable-debug=yes' and
+     `--enable-error-checking=all' on XEmacs 21.5 or later).  This will
+     make your XEmacs run somewhat slower, but you are a lot more
+     likely to catch the problem earlier (closer to its source).  It
+     makes it a lot easier to determine what's going on with a
+     debugger.  The way to control the compiler flags is with the
+     configuration option `--cflags' (`--with-cflags' in 21.5).  If you
+     have a recent version of 21.5, you should use
+     `--without-optimization' in preference to directly setting
+     `--cflags'.
+
+   * If it's not a true crash (_i.e._, XEmacs is hung, or a zombie
+     process), or it's inconvenient to run XEmacs again because XEmacs
+     is already running or is running in batch mode as part of a bunch
+     of scripts, you may be able to attach to the existing process with
+     your debugger.  Under Unix and Mac OS X, the typical way to do
+     this is to first use some variant of the `ps' command to figure
+     out the process ID of XEmacs, for example `ps -auxww | grep
+     xemacs' under a BSD variant, `ps -elf | grep xemacs' under Linux
+     or System V, or `ps -aW | grep xemacs' under Cygwin.  Then run
+
+          gdb /path/to/xemacs/xemacs ####
+
+     Where `####' is the process id of your XEmacs. (If you're not
+     sure, try using `which xemacs'.) When gdb attaches, the xemacs
+     will stop and you can type `where' in gdb to get a stack trace as
+     usual.  To get things moving again, you can just type `quit' in
+     gdb.  It'll tell you the program is running and ask if you want to
+     quit anyways.  Say `y' and it'll quit and have your emacs continue
+     from where it was at.
+
+     If you're running another debugger, a similar method may work, or
+     you may have to run the debugger first and then use the `attach'
+     command or something similar.
+
+     Under Microsoft Windows, use the menu item `Build->Start
+     Debug->Attach to Process...' and select the XEmacs process from
+     the list given.
+
+   * If you're able to run XEmacs under a debugger and reproduce the
+     crash, here are some things you can do:
+
+   * If XEmacs is hitting an assertion failure, put a breakpoint on
+     `assert_failed()'.
+
+   * If XEmacs is hitting some weird Lisp error that's causing it to
+     crash (e.g. during startup), put a breakpoint on
+     `signal_1()'--this is declared static in `eval.c'.
+
+   * If XEmacs is outputting lots of X errors, put a breakpoint on
+     `x_error_handler()'; that will tell you which call is causing
+     them.  Note that the result may not be very useful by default
+     because X Windows normally operates asynchronously: A bunch of
+     commands are buffered up and then sent to the server all at once.
+     This greatly improves performance over a network but means that an
+     error may not be reported until the server receives the commands,
+     which can be long after XEmacs made the erroneous calls.  For best
+     results, you need to make the X server synchronous before getting
+     the backtrace.  This can be done by starting XEmacs with the
+     `-sync' option or executing the Lisp code `(x-debug-mode t)'.
+
+   * Internally, you will probably see lots of variables that hold
+     objects of type `Lisp_Object'.  These are 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:
+
+          call debug_print (OBJECT)
+
+     where OBJECT is whatever you want to decode (it can be a variable,
+     a function call, etc.).  This uses the Lisp printing routines to
+     out a readable representation on the TTY from which the xemacs
+     process was invoked.
+
+     Under 21.5 and later, `dp' is defined as an easier-to-type
+     equivalent of `debug_print'.  You can also try `dpa' if you can't
+     see the output from `debug_print' (this will return a string
+     containing the output), or use `debug_p3' if `debug_print' itself
+     triggers a crash (this is a less comprehensive but super-safe way
+     to print out a Lisp object).
+
+   * If you want to get a Lisp backtrace showing the Lisp call stack,
+     do this:
+
+          call debug_backtrace ()
+
+     Under 21.5 and later, `db' is defined as an easier-to-type
+     equivalent of `debug_backtrace'.
+
+   * Using `debug_print' and `debug_backtrace' has two disadvantages -
+     they can only be used with a running (including hung or zombie)
+     xemacs process, and they do not display the internal C structure
+     of a Lisp Object.  Even if all you've got is a core dump, all is
+     not lost.
+
+     If you're using GDB, there are some macros in the file
+     `src/.gdbinit' in the XEmacs source distribution that should make
+     it easier for you to decode Lisp objects.  This file is
+     automatically read by gdb if gdb is run in the directory where
+     xemacs was built, and contains these useful macros to inspect the
+     state of xemacs:
+
+    `pobj'
+          Usage: pobj lisp_object
+          Print the internal C representation of a lisp object.
+
+    `xtype'
+          Usage: xtype lisp_object
+          Print the Lisp type of a lisp object.
+
+    `lbt'
+          Usage: lbt
+          Print the current Lisp stack trace.  Requires a running
+          xemacs process.  (It works by calling the db routine
+          described above.)
+
+    `ldp'
+          Usage: ldp lisp_object
+          Print a Lisp Object value using the Lisp printer.  Requires a
+          running xemacs process.  (It works by calling the dp routine
+          described above.)
+
+    `run-temacs'
+          Usage: run-temacs
+          Run temacs interactively, like xemacs.  Use this with
+          debugging tools (like purify) that cannot deal with dumping,
+          or when temacs builds successfully, but xemacs does not.
+
+    `dump-temacs'
+          Usage: dump-temacs
+          Run the dumping part of the build procedure.  Use when
+          debugging temacs, not xemacs!  Use this when temacs builds
+          successfully, but xemacs does not.
+
+    `check-xemacs'
+          Usage: check-xemacs
+          Run the test suite.  Equivalent to 'make check'.
+
+    `check-temacs'
+          Usage: check-temacs
+          Run the test suite on temacs.  Equivalent to 'make
+          check-temacs'.  Use this with debugging tools (like purify)
+          that cannot deal with dumping, or when temacs builds
+          successfully, but xemacs does not.
+
+     If you are using Sun's `dbx' debugger, there is an equivalent file
+     `src/.dbxrc', which defines the same commands for dbx.
+
+   * If you're using a debugger to get a C stack backtrace and you're
+     seeing stack traces with some of the innermost frames mangled, it
+     may be due to dynamic linking. (This happens especially under
+     Linux.) Consider reconfiguring with `--dynamic=no'
+     (`--with-dynamic=no' in 21.5 or later).  Also, sometimes (again
+     under Linux), stack backtraces of core dumps will have the frame
+     where the fatal signal occurred mangled; if you can obtain a stack
+     trace while 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 if dynamic linking and debugging is a problem on Linux.
+
+   * If you're using a debugger to get a C stack backtrace and you're
+     getting a completely mangled and bogus stack trace, it's probably
+     due to one of the following:
+
+       a. Your executable has been stripped.  Bad news.  Tell your
+          sysadmin not to do this--it doesn't accomplish anything
+          except to save a bit of disk space, and makes debugging much
+          much harder.
+
+       b. 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 figure out exactly which line is
+          causing the problem.  Of course, this only works if the bug
+          is highly reproducible.  Also, in many cases if you run
+          XEmacs from the debugger, the debugger can protect the stack
+          somewhat.  However, if the stack is being smashed, it is
+          typically the case that there is a wild pointer somewhere in
+          the program, often quite far from where the crash occurs.
+
+       c. If your stack trace has exactly one frame in it, with address
+          0x0, this could simply mean that XEmacs attempted to execute
+          code at that address, e.g. through jumping to a null function
+          pointer.  Unfortunately, under those circumstances, GDB under
+          Linux doesn't know how to get a stack trace. (Yes, this is
+          the fourth Linux-related problem I've mentioned.  I have no
+          idea why GDB under Linux is so bogus.  Complain to the GDB
+          authors, or to comp.os.linux.development.system.) Again,
+          you'll have to use the narrowing-down process described above.
+
+       d. You will get a Lisp backtrace output when XEmacs crashes, so
+          you'll have something useful.
+
+
+   * If you compile with the newer gcc variants gcc-2.8 or egcs, you
+     will also need gdb 4.17 or above.  Earlier releases of gdb can't
+     handle the debug information generated by the newer compilers.
+
+   * In versions of XEmacs before 21.2.27, `src/.gdbinit' was named
+     `src/gdbinit'.  This had the disadvantage of not being sourced
+     automatically by gdb, so you had to set that up yourself.
+
+   * If you are running Microsoft Windows, the the file `nt/README' for
+     further information about debugging XEmacs.
+
+
+\1f
+File: xemacs-faq.info,  Node: Q2.4.5,  Next: Q2.4.6,  Prev: Q2.4.4,  Up: Installation
+
+Q2.4.5: I get a cryptic error message when trying to do something.
+------------------------------------------------------------------
+
+When I try to use some particular option of some particular package, I
+get a cryptic error message in the minibuffer.
+
+   If the message went by too quickly, use `Help->Recent Messages' from
+the menubar (or type `C-h l') to see recent messages.
+
+   If you can't figure out what's going on, select
+`Options->Troubleshooting->Debug on Error' from the menubar (or type
+`M-:' then `(setq debug-on-error t)') then try and make the error
+happen again.  This will put in the debugger (you can get out of this
+and continue what you were doing before by typing `c') and give you a
+backtrace that may be enlightening.  If not, try reading through this
+FAQ; if that fails, you could try posting to `comp.emacs.xemacs'
+(making sure to include the backtrace) and someone may be able to help.
+If you can identify which XEmacs Lisp source file the error is coming
+from you can get a more detailed stack backtrace by doing the following:
+
+  1. Visit the .el file in an XEmacs buffer.
+
+  2. Issue the command `M-x eval-current-buffer'.
+
+  3. Reproduce the error.
+
+   For more information on debugging Lisp code, *Note Debugging:
+(lispref)Debugging.
+
+\1f
+File: xemacs-faq.info,  Node: Q2.4.6,  Next: Q2.4.7,  Prev: Q2.4.5,  Up: Installation
+
+Q2.4.6: XEmacs hangs when I try to do something.
+------------------------------------------------
+
+XEmacs might just be slow; some operations take a long time.  XEmacs
+may also be waiting on a response from the network, for example when
+you are trying to send mail.
+
+   You can usually interrupt XEmacs by typing `C-g'.  If not (for
+example, Lisp code explicitly disabled this by setting `inhibit-quit'),
+you can use the "critical quit" mechanism by typing `Control-Shift-G'.
+This should also pop you into the debugger and give you a backtrace,
+which can tell you where the problem is (*note How to debug an XEmacs
+problem with a debugger: Q2.4.4.). (Note that setting `debug-on-quit'
+or selecting `Options->Troubleshooting->Debug on Quit' will also cause
+regular `C-g' to enter the debugger and give you a backtrace.)
+
+   If you can't interrupt XEmacs this way, or for some reason XEmacs is
+not talking to the keyboard, you can try sending the `SIGINT' signal
+using the `kill' command.
+
+   If the Lisp backtrace isn't enlightening, or if XEmacs is so hung
+that you can't interrupt it at all, you could try attaching to the
+process and getting a C stack backtrace.  *Note How to debug an XEmacs
+problem with a debugger: Q2.4.4.
+
+\1f
+File: xemacs-faq.info,  Node: Q2.4.7,  Next: Q2.4.8,  Prev: Q2.4.6,  Up: Installation
+
+Q2.4.7: I get an error message when XEmacs is running in batch mode.
+--------------------------------------------------------------------
+
+Typically this happens when you are trying to compile some Elisp code.
+If you are doing this as part of XEmacs or the XEmacs packages, you
+should automatically get a backtrace, which can help you determine the
+source of the problem.  In other cases, you can get equivalent results
+by setting the environment variable `XEMACSDEBUG' to `(setq
+stack-trace-on-error t load-always-display-messages t
+load-ignore-out-of-date-elc-files t load-show-full-path-in-messages t)'
+(this needs to be all on one line; to set an environment variable, use
+`export XEMACSDEBUG='FOO'' under `bash', `zsh', etc. or `setenv
+XEMACSDEBUG 'FOO'' under `csh' and `tcsh').  `XEMACSDEBUG' specifies
+Lisp code that will be executed at startup time.
+
+   If the backtrace is not sufficiently useful in helping you diagnose
+the problem, you should consider using a debugger such as GDB.  *Note
+How to debug an XEmacs problem with a debugger: Q2.4.4.  You probably
+want to set a breakpoint on `signal_1'.  Since such errors often occur
+during compiling, which is often triggered by a complex command run
+from a make suite, it may be easier to attach to the process once it's
+running.
+
+   Under Microsoft Windows (and perhaps other operating systems), there
+is another useful trick you can do if you have configured with debugging
+support (configure option `--debug' (`--with-debug' in 21.5) or setting
+`DEBUG_XEMACS' in `nt/config.inc').  Set the environment variable
+`XEMACSDEBUG' (as described above) to `(setq debug-on-error t)'.  Then,
+when an error occurs noninteractively, instead of trying to invoke the
+Lisp debugger (which obviously won't work), XEmacs will break out to a
+C debugger using `(force-debugging-signal t)'.  _NOTE_: This runs
+`abort()'!!! (As well as and after executing INT 3 under MS Windows,
+which should invoke a debugger if it's active.) This is guaranteed to
+kill XEmacs! (But in this situation, XEmacs is about to die anyway, and
+if no debugger is present, this will usefully dump core.)
+
+\1f
+File: xemacs-faq.info,  Node: Q2.4.8,  Next: Q2.4.9,  Prev: Q2.4.7,  Up: Installation
+
+Q2.4.8: The keyboard or mouse is not working properly, or I have some other event-related problem.
+--------------------------------------------------------------------------------------------------
+
+XEmacs has various facilities for debugging event handling.
+
+   First, try setting the variable `debug-emacs-events' to non-zero.
+This will output various information showing which events are being
+received and how they are being translated.  This may show you, for
+example, that a key command is getting intercepted using
+`key-translation-map'; this problem can otherwise be very tricky to
+debug.
+
+   Under X, you can see exactly which events are being received from the
+window system by setting `x-debug-events' to non-zero. (The value `1'
+gives you regular output, and `2' gives you verbose output, including
+all parameters.)
+
+   A similar facility exists under MS Windows: Set
+`debug-mswindows-events' to non-zero. (The value `1' gives you regular
+output.  The value `2' gives you verbose output, including all
+parameters.  The value `3' gives you super-gorily-detailed output.)
+
+\1f
+File: xemacs-faq.info,  Node: Q2.4.9,  Next: Q2.4.10,  Prev: Q2.4.8,  Up: Installation
+
+Q2.4.9: `C-g' doesn't work for me.  Is it broken?
+-------------------------------------------------
+
+`C-g' does work for most people in most circumstances.  If it doesn't,
+there are two possible explanations:
+
+  1. XEmacs is hung in a way that prevents `C-g' from working.  This
+     can happen when code is wrapped with a binding of `inhibit-quit'
+     to `t'; you should still be able interrupt XEmacs using "critical
+     quit".  On the other hand, XEmacs may be seriously wedged. (If
+     you're lucky, sending `SIGINT' to the XEmacs process will
+     interrupt it.)  *Note XEmacs hangs when I try to do something.:
+     Q2.4.6.
+
+  2. `C-g' is indeed broken on your system.  To test, try executing
+     `(while t)' from the `*scratch*' buffer.  If `C-g' doesn't
+     interrupt, then it's broken.  This used to happen with systems
+     where `SIGIO' was broken, but `BROKEN_SIGIO' wasn't defined.
+     However, there may not be very many such systems nowadays.
+
+\1f
+File: xemacs-faq.info,  Node: Q2.4.10,  Next: Q2.4.11,  Prev: Q2.4.9,  Up: Installation
+
+Q2.4.10: How do I debug process-related problems?
+-------------------------------------------------
+
+Under MS Windows, you can set the variable
+`debug-mswindows-process-command-lines' to non-`nil' to get information
+on exactly what is getting passed to a process.  This can be useful in
+determining problems with quoting. (Under Unix, a process receives each
+argument separately, but under MS Windows a single command line is
+received, and arguments with spaces or other special characters in them
+must be quoted.  Unfortunately this means that each process,
+potentially at least, has its own quoting conventions, and the code to
+process quoting conventions in `cmd.exe', the Visual C++ startup code
+and the like is baroque and poorly documented.  XEmacs uses the variable
+`mswindows-construct-process-command-line-alist' to construct a command
+line from a list of arguments based on the command to be run, but it is
+(and cannot be) a perfect solution.)
+
+\1f
+File: xemacs-faq.info,  Node: Q2.4.11,  Next: Q2.4.12,  Prev: Q2.4.10,  Up: Installation
+
+Q2.4.11: XEmacs is outputting lots of X errors.
+-----------------------------------------------
+
+If this is happening, we would very much like to know what's causing
+them.  To find this out, see *Note How to debug an XEmacs problem with
+a debugger: Q2.4.4.  Try to get both a C and Lisp backtrace, and send
+them along with the full error output to <xemacs-beta@xemacs.org>.
+
+\1f
+File: xemacs-faq.info,  Node: Q2.4.12,  Next: Q2.5.1,  Prev: Q2.4.11,  Up: Installation
+
+Q2.4.12: After upgrading, XEmacs won't do `foo' any more!
+---------------------------------------------------------
+
+You have been used to doing `foo', but now when you invoke it (or click
+the toolbar button or select the menu item), nothing (or an error)
+happens.  The simplest explanation is that you are missing a package
+that is essential to you.  You can either track it down and install it
+(there is a list of packages and brief descriptions of their contents
+in `etc/PACKAGES'), or install the `Sumo Tarball' (*note How do I
+figure out which packages to install?: Q2.1.2.).
+
+2.5: Startup-Related Problems
+=============================
+
+\1f
+File: xemacs-faq.info,  Node: Q2.5.1,  Next: Q2.5.2,  Prev: Q2.4.12,  Up: Installation
+
+Q2.5.1: XEmacs cannot connect to my X Terminal!
+-----------------------------------------------
+
+Help!  I can not get XEmacs to display on my Envizex X-terminal!
+
+   Try setting the `DISPLAY' variable using the numeric IP address of
+the host you are running XEmacs from.
+
+\1f
+File: xemacs-faq.info,  Node: Q2.5.2,  Next: Q2.5.3,  Prev: Q2.5.1,  Up: Installation
+
+Q2.5.2 Startup problems related to paths or package locations.
+--------------------------------------------------------------
+
+First of all, if XEmacs can't find the packages, check to make sure
+that you put the packages in the right place, or that you told XEmacs
+where to look for the packages when you compiled it.  *Note Q2.1.1::.
+
+   If something is still going wrong, or you get a startup warning about
+not being able to deduce some paths, you can get detailed information
+on the path-searching process at startup by setting the environment
+variable `EMACSDEBUGPATHS' to a non-null value.  One thing to look for
+if you're having package problems is the value of
+`configure-package-path'.  This corresponds to what was compiled into
+XEmacs using the `--package-prefix' or `--package-path' parameter
+(*note Q2.1.1::).  If this has the value of `nil', this means that no
+value was compiled into XEmacs using these parameters.
+
+\1f
+File: xemacs-faq.info,  Node: Q2.5.3,  Next: Q2.5.4,  Prev: Q2.5.2,  Up: Installation
+
+Q2.5.3: XEmacs won't start without network.
+-------------------------------------------
+
+If XEmacs starts when you're on the network, but fails when you're not
+on the network, you may be missing a "localhost" entry in your
+`/etc/hosts' file.  The file should contain an entry like:
+
+     127.0.0.1        localhost
+
+   Add that line, and XEmacs will be happy.
+
+\1f
+File: xemacs-faq.info,  Node: Q2.5.4,  Next: Q2.5.5,  Prev: Q2.5.3,  Up: Installation
+
+Q2.5.4: Startup warnings about deducing proper fonts?
+-----------------------------------------------------
+
+How can I avoid the startup warnings about deducing proper fonts?
+
+   This is highly dependent on your installation, but try with the
+following font as your base font for XEmacs and see what it does:
+
+-adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1
+
+   More precisely, do the following in your resource file:
+
+Emacs.default.attributeFont: \
+-adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1
+
+   If you just don't want to see the `*Warnings*' buffer at startup
+time, you can set this:
+
+     (setq display-warning-minimum-level 'error)
+
+   The buffer still exists; it just isn't in your face.
+
+\1f
+File: xemacs-faq.info,  Node: Q2.5.5,  Next: Q2.5.6,  Prev: Q2.5.4,  Up: Installation
+
+Q2.5.5: Warnings from incorrect key modifiers.
+----------------------------------------------
+
+The following information comes from the `PROBLEMS' file that comes
+with XEmacs.
+
+   If you're having troubles with HP/UX it is because HP/UX defines the
+modifiers wrong in X.  Here is a shell script to fix the problem; be
+sure that it is run after VUE configures the X server.
+
+     #! /bin/sh
+     xmodmap 2> /dev/null - << EOF
+     keysym Alt_L = Meta_L
+     keysym Alt_R = Meta_R
+     EOF
+
+     xmodmap - << EOF
+     clear mod1
+     keysym Mode_switch = NoSymbol
+     add mod1 = Meta_L
+     keysym Meta_R = Mode_switch
+     add mod2 = Mode_switch
+     EOF
+
+\1f
+File: xemacs-faq.info,  Node: Q2.5.6,  Prev: Q2.5.5,  Up: Installation
+
+Q2.5.6: XEmacs 21.1 on Windows used to spawn an ugly console window on every startup.  Has that been fixed?
+-----------------------------------------------------------------------------------------------------------
+
+Yes.
+
+   The console was there because `temacs' (and in turn, `xemacs') was a
+console application, and Windows typically creates a new console for a
+console process unless the creating process requests that one isn't
+created.  This used to be fixed with `runemacs', a small Windows
+application that existed merely to start `xemacs', stating that it
+didn't want a console.
+
+   XEmacs 21.4 fixes this cleanly by the virtue of being a true "GUI"
+application.  The explanation of what that means is included for
+educational value.
+
+   When building an application to be run in a Win32 environment, you
+must state which sub-system it is to run in.  Valid subsystems include
+"console" and "gui".  The subsystem you use affects the run time
+libraries linked into your application, the start up function that is
+run before control is handed over to your application, the entry point
+to your program, and how Windows normally invokes your program. (Console
+programs automatically get a console created for them at startup if
+their stdin/stdout don't point anywhere useful, which is the case when
+run from the GUI.  This is a stupid design, of course - instead, the
+console should get created only when the first I/O actually occurs!
+GUI programs have an equally stupid design: When called from
+`CMD.EXE'/`COMMAND.COM', their stdin/stdout will be set to point
+nowhere useful, even though the command shell has its own stdin/stdout.
+It's as if someone who had learned a bit about stdio but had no actual
+knowledge of interprocess communication designed the scheme;
+unfortunately, the whole process-communication aspect of the Win32 API
+is equally badly designed.) For example, the entry point for a console
+app is "main" (which is what you'd expect for a C/C++ program), but the
+entry point for a "gui" app is "WinMain".  This confuses and annoys a
+lot of programmers who've grown up on Unix systems, where the kernel
+doesn't really care whether your application is a gui program or not.
+
+   For reasons not altogether clear, and are lost in the mists of time
+and tradition, XEmacs on Win32 started out as a console application, and
+therefore a console was automatically created for it. (It may have been
+made a console application partly because a console is needed in some
+circumstances, especially under Win95, to interrupt, terminate, or send
+signals to a child process, and because of the bogosity mentioned above
+with GUI programs and the standard command shell.  Currently, XEmacs
+just creates and immediately hides a console when necessary, and works
+around the "no useful stdio" problem by creating its own console window
+as necessary to display messages in.)
+
+\1f
+File: xemacs-faq.info,  Node: Editing,  Next: Display,  Prev: Installation,  Up: Top
+
+3 Editing Functions
+*******************
+
+This is part 3 of the XEmacs Frequently Asked Questions list.  This
+section is devoted to the editing-related capabilities of XEmacs (the
+keyboard, mouse, buffers, text selections, etc.) and how to customize
+them.
+
+* Menu:
+
+3.0: The Keyboard
+* Q3.0.1::    How can I customize the keyboard?
+* Q3.0.2::    How can I bind complex functions (or macros) to keys?
+* Q3.0.3::    How do I bind C-. and C-; to scroll one line up and down?
+* Q3.0.4::    Globally binding Delete?
+* Q3.0.5::    How to map Help key alone on Sun type4 keyboard?
+* Q3.0.6::    How can you type in special characters in XEmacs?
+* Q3.0.7::    Can I turn on "sticky" modifier keys?
+* Q3.0.8::    How do I map the arrow keys?
+* Q3.0.9::    HP Alt key as Meta.
+* Q3.0.10::   Why does edt emulation not work?
+* Q3.0.11::   How can I emulate VI and use it as my default mode?
+
+3.1: The Mouse
+* Q3.1.1::    How can I turn off Mouse pasting?
+* Q3.1.2::    How do I set control/meta/etc modifiers on mouse buttons?
+* Q3.1.3::    Clicking the left button does not do anything in buffer list.
+* Q3.1.4::    How can I get a list of buffers when I hit mouse button 3?
+* Q3.1.5::    How can I set XEmacs up so that it pastes where the text cursor is?
+
+3.2: Buffers, Text Editing
+* Q3.2.1::    Can I have the end of the buffer delimited in some way?
+* Q3.2.2::    How do I insert today's date into a buffer?
+* Q3.2.3::    How do I get a single minibuffer frame?
+* Q3.2.4::    How can I enable auto-indent and/or Filladapt?
+* Q3.2.5::    How can I get XEmacs to come up in text/auto-fill mode by default?
+
+3.3: Text Selections
+* Q3.3.1::    How do I select a rectangular region?
+* Q3.3.2::    How can I turn off or change highlighted selections?
+* Q3.3.3::    How do I cause typing on an active region to remove it?
+* Q3.3.4::    Can I turn off the highlight during isearch?
+* Q3.3.5::    Why is killing so slow?
+* Q3.3.6::    Why does M-w take so long?
+
+3.4: Editing Source Code
+* Q3.4.1::    I do not like cc-mode.  How do I use the old c-mode?
+* Q3.4.2::    How do you make XEmacs indent CL if-clauses correctly?
+
+3.0: The Keyboard
+=================
+
+\1f
+File: xemacs-faq.info,  Node: Q3.0.1,  Next: Q3.0.2,  Prev: Editing,  Up: Editing
+
+Q3.0.1: How can I customize the keyboard?
+-----------------------------------------
+
+#### Write me.
+
+\1f
+File: xemacs-faq.info,  Node: Q3.0.2,  Next: Q3.0.3,  Prev: Q3.0.1,  Up: Editing
+
+Q3.0.2: How can I bind complex functions (or macros) to keys?
+-------------------------------------------------------------
+
+As an example, say you want the `paste' key on a Sun keyboard to insert
+the current Primary X selection at point. You can accomplish this with:
+
+     (define-key global-map [f18] 'x-insert-selection)
+
+   However, this only works if there is a current X selection (the
+selection will be highlighted).  The functionality I like is for the
+`paste' key to insert the current X selection if there is one,
+otherwise insert the contents of the clipboard.  To do this you need to
+pass arguments to `x-insert-selection'.  This is done by wrapping the
+call in a 'lambda form:
+
+     (global-set-key [f18]
+       (lambda () (interactive) (x-insert-selection t nil)))
+
+   This binds the f18 key to a "generic" functional object.  The
+interactive spec is required because only interactive functions can be
+bound to keys.
+
+   For the FAQ example you could use:
+
+     (global-set-key [(control ?.)]
+       (lambda () (interactive) (scroll-up 1)))
+     (global-set-key [(control ?;)]
+       (lambda () (interactive) (scroll-up -1)))
+
+   This is fine if you only need a few functions within the lambda body.
+If you're doing more it's cleaner to define a separate function.  *Note
+How do I bind C-. and C-; to scroll one line up and down?: Q3.0.3.
+
+\1f
+File: xemacs-faq.info,  Node: Q3.0.3,  Next: Q3.0.4,  Prev: Q3.0.2,  Up: Editing
+
+Q3.0.3: 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 `.emacs':
+
+     (defun scroll-up-one-line ()
+       (interactive)
+       (scroll-up 1))
+
+     (defun scroll-down-one-line ()
+       (interactive)
+       (scroll-down 1))
+
+     (global-set-key [(control ?.)] 'scroll-up-one-line) ; C-.
+     (global-set-key [(control ?;)] 'scroll-down-one-line) ; C-;
+
+   The key point is that you can only bind simple functions to keys; you
+can not bind a key to a function that you're also passing arguments to.
+(*note How can I bind complex functions (or macros) to keys?: Q3.0.2.
+for a better answer).
+
+\1f
+File: xemacs-faq.info,  Node: Q3.0.4,  Next: Q3.0.5,  Prev: Q3.0.3,  Up: Editing
+
+Q3.0.4: Globally binding `Delete'?
+----------------------------------
+
+I cannot manage to globally bind my `Delete' key to something other
+than the default.  How does one do this?
+
+   Answer: The problem is that many modes explicitly bind `Delete'.  To
+get around this, try the following:
+
+     (defun foo ()
+       (interactive)
+       (message "You hit DELETE"))
+
+     (define-key key-translation-map 'delete 'redirected-delete)
+     (global-set-key 'redirected-delete 'foo)
+
+\1f
+File: xemacs-faq.info,  Node: Q3.0.5,  Next: Q3.0.6,  Prev: Q3.0.4,  Up: Editing
+
+Q3.0.5: How to map `Help' key alone on Sun type4 keyboard?
+----------------------------------------------------------
+
+The following works in GNU Emacs 19:
+
+     (global-set-key [help] 'help-command);; Help
+
+   The following works in XEmacs with the addition of shift:
+
+     (global-set-key [(shift help)] 'help-command);; Help
+
+   But it doesn't work alone.  This is in the file `PROBLEMS' which
+should have come with your XEmacs installation: _Emacs ignores the
+`help' key when running OLWM_.
+
+   OLWM grabs the `help' key, and retransmits it to the appropriate
+client using `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 `x-allow-sendevents' to t.  You can also
+cause fix this by telling OLWM to not grab the help key, with the null
+binding `OpenWindows.KeyboardCommand.Help:'.
+
+\1f
+File: xemacs-faq.info,  Node: Q3.0.6,  Next: Q3.0.7,  Prev: Q3.0.5,  Up: Editing
+
+Q3.0.6: How can you type in special characters in XEmacs?
+---------------------------------------------------------
+
+One way is to use the package `x-compose'.  Then you can use sequences
+like `Compose " a' to get ä, etc.
+
+   Another way is to use the `iso-insert' package. Then you can use
+sequences like `C-x 8 " a' to get ä, etc.
+
+   Glynn Clements <glynn@sensei.co.uk> writes:
+
+     It depends upon your X server.
+
+     Generally, the simplest way is to define a key as Multi_key with
+     xmodmap, e.g.
+                  xmodmap -e 'keycode 0xff20 = Multi_key'
+
+     You will need to pick an appropriate keycode. Use xev to find out
+     the keycodes for each key.
+
+     [NB: On a `Windows' keyboard, recent versions of XFree86
+     automatically define the right `Windows' key as Multi_key'.]
+
+     Once you have Multi_key defined, you can use e.g.
+                  Multi a '       => á
+                  Multi e "       => ë
+                  Multi c ,       => ç
+
+     etc.
+
+     Also, recent versions of XFree86 define various AltGr-<key>
+     combinations as dead keys, i.e.
+                  AltGr [         => dead_diaeresis
+                  AltGr ]         => dead_tilde
+                  AltGr ;         => dead_acute
+     etc.
+
+     Running `xmodmap -pk' will list all of the defined keysyms.
+
+   For the related problem of _displaying_ non-ASCII characters in a
+non-Mule XEmacs, *Note How do I display non-ASCII characters?: Q4.0.8.
+
+\1f
+File: xemacs-faq.info,  Node: Q3.0.7,  Next: Q3.0.8,  Prev: Q3.0.6,  Up: Editing
+
+Q3.0.7: Can I turn on "sticky" modifier keys?
+---------------------------------------------
+
+Yes, with `(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@xemacs.org> writes:
+
+     One thing about the sticky modifiers is that if you move the mouse
+     out of the frame and back in, it cancels all currently "stuck"
+     modifiers.
+
+\1f
+File: xemacs-faq.info,  Node: Q3.0.8,  Next: Q3.0.9,  Prev: Q3.0.7,  Up: Editing
+
+Q3.0.8: How do I map the arrow keys?
+------------------------------------
+
+Say you want to map `C-<right>' to forward-word:
+
+   Sam Steingold <sds@usa.net> writes:
+
+          ; both XEmacs and Emacs
+          (define-key global-map [(control right)] 'forward-word)
+     or
+          ; Emacs only
+          (define-key global-map [C-right] 'forward-word)
+     or
+          ; ver > 20, both
+          (define-key global-map (kbd "C-<right>") 'forward-word)
+
+\1f
+File: xemacs-faq.info,  Node: Q3.0.9,  Next: Q3.0.10,  Prev: Q3.0.8,  Up: Editing
+
+Q3.0.9: HP Alt key as Meta.
+---------------------------
+
+How can I make XEmacs recognize the Alt key of my HP workstation as a
+Meta key?
+
+   Put the following line into a file and load it with xmodmap(1) before
+starting XEmacs:
+
+     remove Mod1 = Mode_switch
+
+\1f
+File: xemacs-faq.info,  Node: Q3.0.10,  Next: Q3.0.11,  Prev: Q3.0.9,  Up: Editing
+
+Q3.0.10: 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
+this, add the following line to your `init.el':
+
+     (tpu-edt)
+
+   If you don't want it to replace `C-h' with an edt-style help menu
+add this as well:
+
+     (global-set-key [(control h)] 'help-for-help)
+
+\1f
+File: xemacs-faq.info,  Node: Q3.0.11,  Next: Q3.1.1,  Prev: Q3.0.10,  Up: Editing
+
+Q3.0.11: 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 `init.el':
+
+     (viper-mode)
+
+   Michael Kifer <kifer@CS.SunySB.EDU> writes:
+
+     This should be added as close to the top of `init.el' as you can
+     get it, otherwise some minor modes may not get viper-ized.
+
+3.1: The Mouse
+==============
+
+\1f
+File: xemacs-faq.info,  Node: Q3.1.1,  Next: Q3.1.2,  Prev: Q3.0.11,  Up: Editing
+
+Q3.1.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?
+
+   Here is an alternative binding, whereby the middle mouse button
+selects (but does not cut) the expression under the mouse. Clicking
+middle on a left or right paren will select to the matching one.  Note
+that you can use `define-key' or `global-set-key'.
+
+     (defun mouse-set-point-and-select (event)
+       "Sets the point at the mouse location, then marks following form"
+       (interactive "@e")
+       (mouse-set-point event)
+       (mark-sexp 1))
+     (define-key global-map [button2] 'mouse-set-point-and-select)
+
+\1f
+File: xemacs-faq.info,  Node: Q3.1.2,  Next: Q3.1.3,  Prev: Q3.1.1,  Up: Editing
+
+Q3.1.2: How do I set control/meta/etc modifiers on mouse buttons?
+-----------------------------------------------------------------
+
+Use, for instance, `[(meta button1)]'. For example, here is a common
+setting for Common Lisp programmers who use the bundled `ilisp'
+package, whereby meta-button1 on a function name will find the file
+where the function name was defined, and put you at that location in
+the source file.
+
+   [Inside a function that gets called by the lisp-mode-hook and
+ilisp-mode-hook]
+
+     (local-set-key [(meta button1)] 'edit-definitions-lisp)
+
+\1f
+File: xemacs-faq.info,  Node: Q3.1.3,  Next: Q3.1.4,  Prev: Q3.1.2,  Up: Editing
+
+Q3.1.3: Clicking the left button does not do anything in buffer list.
+---------------------------------------------------------------------
+
+I do `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 does not do
+anything.
+
+   Use the middle mouse button.
+
+\1f
+File: xemacs-faq.info,  Node: Q3.1.4,  Next: Q3.1.5,  Prev: Q3.1.3,  Up: Editing
+
+Q3.1.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:
+
+     (global-set-key [button3] 'popup-buffer-menu)
+
+\1f
+File: xemacs-faq.info,  Node: Q3.1.5,  Next: Q3.2.1,  Prev: Q3.1.4,  Up: Editing
+
+Q3.1.5: How can I 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?
+
+   Examine the function `mouse-yank', by typing `C-h f mouse-yank
+<RET>'.
+
+   To get XEmacs to paste at the text cursor, add this your `init.el':
+
+     (setq mouse-yank-at-point t)
+
+   You can also change this with Customize.  Select from the `Options'
+menu `Advanced (Customize)->Emacs->Editing->Mouse->Yank At Point...' or
+type `M-x customize <RET> mouse <RET>'.
+
+3.2: Buffers, Text Editing
+==========================
+
+\1f
+File: xemacs-faq.info,  Node: Q3.2.1,  Next: Q3.2.2,  Prev: Q3.1.5,  Up: Editing
+
+Q3.2.1: Can I have the end of the buffer delimited in some way?
+---------------------------------------------------------------
+
+Say, with: `[END]'?
+
+   Try this:
+
+     (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-end-glyph ext (make-glyph [string :data "[END]"])))
+
+   Since this is XEmacs, you can specify an icon to be shown on
+window-system devices.  To do so, change the `make-glyph' call to
+something like this:
+
+     (make-glyph '([xpm :file "~/something.xpm"]
+                   [string :data "[END]"]))
+
+   You can inline the XPM definition yourself by specifying `:data'
+instead of `:file'.  Here is such a full-featured version that works on
+both X and TTY devices:
+
+     (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-end-glyph ext (make-glyph '([xpm :data "\
+     /* XPM */
+     static char* eye = {
+     \"20 11 7 2\",
+     \"__ c None\"
+     \"_` c #7f7f7f\",
+     \"_a c #fefefe\",
+     \"_b c #7f0000\",
+     \"_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__________\",
+     } ;"]
+                                               [string :data "[END]"]))))
+
+   Note that you might want to make this a function, and put it to a
+hook.  We leave that as an exercise for the reader.
+
+\1f
+File: xemacs-faq.info,  Node: Q3.2.2,  Next: Q3.2.3,  Prev: Q3.2.1,  Up: Editing
+
+Q3.2.2: How do I insert today's date into a buffer?
+---------------------------------------------------
+
+Like this:
+
+     (insert (current-time-string))
+
+\1f
+File: xemacs-faq.info,  Node: Q3.2.3,  Next: Q3.2.4,  Prev: Q3.2.2,  Up: Editing
+
+Q3.2.3: How do I get a single minibuffer frame?
+-----------------------------------------------
+
+Vin Shelton <acs@acm.org> writes:
+
+     (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)))
+     (frame-notice-user-settings)
+
+   *Please note:* The single minibuffer frame may not be to everyone's
+taste, and there any number of other XEmacs options settings that may
+make it difficult or inconvenient to use.
+
+\1f
+File: xemacs-faq.info,  Node: Q3.2.4,  Next: Q3.2.5,  Prev: Q3.2.3,  Up: Editing
+
+Q3.2.4: How can I enable auto-indent and/or Filladapt?
+------------------------------------------------------
+
+Put the following line in your `init.el':
+
+     (setq indent-line-function 'indent-relative-maybe)
+
+   If you want to get fancy, try the `filladapt' package available
+standard with XEmacs.  Put this into your `init.el':
+
+     (require 'filladapt)
+     (setq-default filladapt-mode t)
+     (add-hook 'c-mode-hook 'turn-off-filladapt-mode)
+
+   This will enable Filladapt for all modes except C mode, where it
+doesn't work well.  To turn Filladapt on only in particular major
+modes, remove the `(setq-default ...)' line and use
+`turn-on-filladapt-mode', like this:
+
+     (add-hook 'text-mode-hook 'turn-on-filladapt-mode)
+
+   You can customize filling and adaptive filling with Customize.
+Select from the `Options' menu `Advanced
+(Customize)->Emacs->Editing->Fill->Fill...' or type `M-x customize
+<RET> fill <RET>'.
+
+   Note that well-behaving text-lookalike modes will run
+`text-mode-hook' by default (e.g. that's what Message does).  For the
+nasty ones, you'll have to provide the `add-hook's yourself.
+
+   Please note that the `fa-extras' package is no longer useful.
+
+\1f
+File: xemacs-faq.info,  Node: Q3.2.5,  Next: Q3.3.1,  Prev: Q3.2.4,  Up: Editing
+
+Q3.2.5: How can I get XEmacs to come up in text/auto-fill mode by default?
+--------------------------------------------------------------------------
+
+Try the following lisp in your `init.el':
+
+     (setq default-major-mode 'text-mode)
+     (add-hook 'text-mode-hook 'turn-on-auto-fill)
+
+   *WARNING*: note that changing the value of `default-major-mode' from
+`fundamental-mode' can break a large amount of built-in code that
+expects newly created buffers to be in `fundamental-mode'.  (Changing
+from `fundamental-mode' to `text-mode' might not wreak too much havoc,
+but changing to something more exotic like a lisp-mode would break many
+Emacs packages).
+
+   Note that Emacs by default starts up in buffer `*scratch*' in
+`initial-major-mode', which defaults to `lisp-interaction-mode'. Thus
+adding the following form to your Emacs init file will cause the
+initial `*scratch*' buffer to be put into auto-fill'ed `text-mode':
+
+     (setq initial-major-mode
+           (lambda ()
+             (text-mode)
+             (turn-on-auto-fill)))
+
+   Note that after your init file is loaded, if
+`inhibit-startup-message' is `nil' (the default) and the startup buffer
+is `*scratch*' then the startup message will be inserted into
+`*scratch*'; it will be removed after a timeout by erasing the entire
+`*scratch*' buffer.  Keep in mind this default usage of `*scratch*' if
+you desire any prior manipulation of `*scratch*' from within your Emacs
+init file. In particular, anything you insert into `*scratch*' from
+your init file will be later erased. Also, if you change the mode of
+the `*scratch*' buffer, be sure that this will not interfere with
+possible later insertion of the startup message (e.g. if you put
+`*scratch*' into a nonstandard mode that has automatic font lock rules,
+then the startup message might get fontified in a strange foreign
+manner, e.g. as code in some programming language).
+
+3.3: Text Selections
+====================
+
+\1f
+File: xemacs-faq.info,  Node: Q3.3.1,  Next: Q3.3.2,  Prev: Q3.2.5,  Up: Editing
+
+Q3.3.1: How do I select a rectangular region?
+---------------------------------------------
+
+Just select the region normally, then use the rectangle commands (e.g.
+`kill-rectangle' on it.  The region does not highlight as a rectangle,
+but the commands work just fine.
+
+   To actually sweep out rectangular regions with the mouse you can use
+`mouse-track-do-rectangle' which is assigned to `M-button1'.  Then use
+rectangle commands.
+
+   You can also do the following to change default behavior to sweep out
+rectangular regions:
+
+     (setq mouse-track-rectangle-p t)
+
+   You can also change this with Customize.  Select from the `Options'
+menu `Advanced (Customize)->Emacs->Editing->Mouse->Track Rectangle...'
+or type `M-x customize <RET> mouse <RET>'.
+
+      mouse-track-do-rectangle: (event)
+        -- an interactive compiled Lisp function.
+      Like `mouse-track' but selects rectangles instead of regions.
+
+\1f
+File: xemacs-faq.info,  Node: Q3.3.2,  Next: Q3.3.3,  Prev: Q3.3.1,  Up: Editing
+
+Q3.3.2: How can I turn off or change highlighted selections?
+------------------------------------------------------------
+
+The `zmacs' mode allows for what some might call gratuitous
+highlighting for selected regions (either by setting mark or by using
+the mouse).  This is the default behavior.  To turn off, add the
+following line to your `init.el' file:
+
+     (setq zmacs-regions nil)
+
+   You can also change this with Customize.  Select from the `Options'
+menu `Advanced (Customize)->Emacs->Editing->Basics->Zmacs Regions' or
+type `M-x customize <RET> editing-basics <RET>'.
+
+   To change the face for selection, look at `Options->Advanced
+(Customize)' on the menubar.
+
+\1f
+File: xemacs-faq.info,  Node: Q3.3.3,  Next: Q3.3.4,  Prev: Q3.3.2,  Up: Editing
+
+Q3.3.3: How do I cause typing on an active region to remove 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.
+
+   You want to use something called "pending delete".  Pending delete
+is what happens when you select a region (with the mouse or keyboard)
+and you press a key to replace the selected region by the key you typed.
+Usually backspace kills the selected region.
+
+   To get this behavior, ensure that you have the `pc' package
+installed, and add the following lines to your `init.el':
+
+     (cond
+      ((fboundp 'turn-on-pending-delete)
+       (turn-on-pending-delete))
+      ((fboundp 'pending-delete-on)
+       (pending-delete-on t)))
+
+   Note that this will work with both Backspace and Delete.  This code
+is a tad more complicated than it has to be for XEmacs in order to make
+it more portable.
+
+\1f
+File: xemacs-faq.info,  Node: Q3.3.4,  Next: Q3.3.5,  Prev: Q3.3.3,  Up: Editing
+
+Q3.3.4: 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?
+
+   Put the following in your `init.el':
+
+     (setq isearch-highlight nil)
+
+   You can also change this with Customize. Type `M-x
+customize-variable <RET> isearch-highlight <RET>'.
+
+   Note also that isearch-highlight affects query-replace and ispell.
+Instead of disabling isearch-highlight you may find that a better
+solution consists of customizing the `isearch' face.
+
+\1f
+File: xemacs-faq.info,  Node: Q3.3.5,  Next: Q3.3.6,  Prev: Q3.3.4,  Up: Editing
+
+Q3.3.5: Why is killing so slow?
+-------------------------------
+
+This actually is an X Windows question, although you'll notice it with
+keyboard operations as well as while using the GUI.  Basically, there
+are four ways to communicate interprogram via the X server:
+
+*Primary selection*
+     a transient selection that gets replaced every time a new
+     selection is made
+
+*Secondary selection*
+     for "exchanging" with the primary selection
+
+*Cut buffers*
+     a clipboard internal to the X server (deprecated)
+
+*Clipboard selection*
+     a selection with a notification protocol that allows a separate
+     app to manage the clipboard
+
+   The cut buffers are deprecated because managing them is even more
+inefficient than the clipboard notification protocol.  The primary
+selection works fine for many users and applications, but is not very
+robust under intensive or sophisticated use.
+
+   In Motif and MS Windows, a clipboard has become the primary means for
+managing cut and paste.  These means that "modern" applications tend to
+be oriented toward a true clipboard, rather than the primary selection.
+(On Windows, there is nothing equivalent to the primary selection.)
+It's not that XEmacs doesn't support the simple primary selection
+method, it's that more and more other applications don't.
+
+   So the slowdown occurs because XEmacs now engages in the clipboard
+notification protocol on _every_ kill.  This is especially slow on
+Motif.
+
+   With most people running most clients and server on the same host,
+and many of the rest working over very fast communication, you may
+expect that the situation is not going to improve.
+
+   There are a number of workarounds.  The most effective is to use a
+special command to do selection ownership only when you intend to paste
+to another application.  Useful commands are `kill-primary-selection'
+and `copy-primary-selection'.  These work only on text selected with
+the mouse (probably; experiment), and are bound by default to the `Cut'
+and `Copy', respectively, buttons on the toolbar.
+`copy-primary-selection' is also bound to `C-Insert'.  You can yank the
+clipboard contents with `yank-primary-selection', bound to the `Paste'
+toolbar button and `Sh-Insert'.
+
+   If you are communicating by cut and paste with applications that use
+the primary selection, then you can customize
+`interprogram-cut-function' to `nil', restoring the XEmacs version 20
+behavior.  How can you tell if a program will support this?
+Motifly-correct programs require the clipboard; you lose.  For others,
+only by trying it.  You also need to customize the complementary
+`interprogram-paste-function' to `nil'.  (Otherwise XEmacs-to-XEmacs
+pastes will not work correctly.)
+
+   You may get some relief on Motif by setting
+`x-selection-strict-motif-ownership' to nil, but this means you will
+only intermittently be able to paste XEmacs kills to Motif applications.
+
+   Thanks to Jeff Mincy and Glynn Clements for corrections.
+
+\1f
+File: xemacs-faq.info,  Node: Q3.3.6,  Next: Q3.4.1,  Prev: Q3.3.5,  Up: Editing
+
+Q3.3.6: Why does `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
+will immediately complete its operation.  In other words, it will only
+delay for a second if you let it.
+
+3.4: Editing Source Code
+========================
+
+\1f
+File: xemacs-faq.info,  Node: Q3.4.1,  Next: Q3.4.2,  Prev: Q3.3.6,  Up: Editing
+
+Q3.4.1: 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
+getting your old offsets to work, try using `c-set-offset' instead.
+You might also consider using the package `cc-compat'.
+
+   But, if you still insist, add the following lines to your `init.el':
+
+     (fmakunbound 'c-mode)
+     (makunbound 'c-mode-map)
+     (fmakunbound 'c++-mode)
+     (makunbound 'c++-mode-map)
+     (makunbound 'c-style-alist)
+     (load-library "old-c-mode")
+     (load-library "old-c++-mode")
+
+   This must be done before any other reference is made to either
+c-mode or c++-mode.
+
+\1f
+File: xemacs-faq.info,  Node: Q3.4.2,  Prev: Q3.4.1,  Up: Editing
+
+Q3.4.2: How do you make XEmacs indent CL if-clauses correctly?
+--------------------------------------------------------------
+
+I'd like XEmacs to indent all the clauses of a Common Lisp `if' the
+same amount instead of indenting the 3rd clause differently from the
+first two.
+
+   The package `cl-indent' that comes with XEmacs sets up this kind of
+indentation by default.  `cl-indent' also knows about many other
+CL-specific forms.  To use `cl-indent', one can do this:
+
+     (setq lisp-indent-function 'common-lisp-indent-function)
+
+   One can also customize `cl-indent.el' so it mimics the default `if'
+indentation `then' indented more than the `else'.  Here's how:
+
+     (put 'if 'common-lisp-indent-function '(nil nil &body))
+
+\1f
+File: xemacs-faq.info,  Node: Display,  Next: External Subsystems,  Prev: Editing,  Up: Top
+
+4 Display Functions
+*******************
+
+This is part 4 of the XEmacs Frequently Asked Questions list.  This
+section is devoted to the display-related capabilities of XEmacs
+(fonts, colors, modeline, menubar, toolbar, scrollbar, etc.) and how to
+customize them.
+
+* Menu:
+
+4.0: Textual Fonts and Colors
+* Q4.0.1::    How do I specify a font?
+* Q4.0.2::    How do I set the text, menu and modeline fonts?
+* Q4.0.3::    How can I set color options from `init.el'?
+* Q4.0.4::    How can I set the colors when highlighting a region?
+* Q4.0.5::    How can I limit color map usage?
+* Q4.0.6::    My tty supports color, but XEmacs doesn't use them.
+* Q4.0.7::    Can I have pixmap backgrounds in XEmacs?
+* Q4.0.8::    How do I display non-ASCII characters?
+* Q4.0.9::    Font selections in don't get saved after `Save Options'.
+
+4.1: Syntax Highlighting (Font Lock)
+* Q4.1.1::    How can I do source code highlighting using font-lock?
+* Q4.1.2::    How do I get `More' Syntax Highlighting on by default?
+
+4.2: The Modeline
+* Q4.2.1::    How can I make the modeline go away?
+* Q4.2.2::    How do you have XEmacs display the line number in the modeline?
+* Q4.2.3::    How do I get XEmacs to put the time of day on the modeline?
+* Q4.2.4::    How can I change the modeline color based on the mode used?
+
+4.3: The Cursor
+* Q4.3.1::    Is there a way to make the bar cursor thicker?
+* Q4.3.2::    Is there a way to get back the block cursor?
+* Q4.3.3::    Can I make the cursor blink?
+
+4.4: The Menubar
+* Q4.4.1::    How do I get rid of the menubar?
+* Q4.4.2::    How can I customize the menubar?
+* Q4.4.3::    How do I enable use of the keyboard (Alt) to access menu items?
+* Q4.4.4::    How do I control how many buffers are listed in the menu `Buffers List'?
+* Q4.4.5::    Resources like `Emacs*menubar*font' are not working?
+
+4.5: The Toolbar
+* Q4.5.1::    How do I get rid of the toolbar?
+* Q4.5.2::    How can I customize the toolbar?
+* Q4.5.3::    How can I bind a key to a function to toggle the toolbar?
+* Q4.5.4::    `Can't instantiate image error...' in toolbar
+
+4.6: Scrollbars and Scrolling
+* Q4.6.1::    How can I disable the scrollbar?
+* Q4.6.2::    How can I change the scrollbar width?
+* Q4.6.3::    How can I use resources to change scrollbar colors?
+* Q4.6.4::    Moving the scrollbar can move the point; can I disable this?
+* Q4.6.5::    Scrolling one line at a time.
+* Q4.6.6::    How can I turn off automatic horizontal scrolling in specific modes?
+* Q4.6.7::    I find auto-show-mode disconcerting.  How do I turn it off?
+
+4.7: The Gutter Tabs, The Progress Bar, Widgets
+* Q4.7.1::    How can I disable the gutter tabs?
+* Q4.7.2::    How can I disable the progress bar?
+* Q4.7.3::    There are bugs in the gutter or widgets.
+* Q4.7.4::    How can I customize the gutter or gutter tabs?
+
+4.0: Textual Fonts and Colors
+=============================
+
+\1f
+File: xemacs-faq.info,  Node: Q4.0.1,  Next: Q4.0.2,  Prev: Display,  Up: Display
+
+Q4.0.1: How do I specify a font?
+--------------------------------
+
+#### Update me.
+
+   In 21.4 and above, you can use the `Options' menu to change the font.
+You can also do it in your init file, e.g. like this (for MS Windows):
+
+         (set-face-font 'default "Lucida Console:Regular:10")
+         (set-face-font 'modeline "MS Sans Serif:Regular:10")
+
+\1f
+File: xemacs-faq.info,  Node: Q4.0.2,  Next: Q4.0.3,  Prev: Q4.0.1,  Up: Display
+
+Q4.0.2: How do I set the text, menu and modeline fonts?
+-------------------------------------------------------
+
+#### Update me.
+
+   Note that you should use `Emacs.' and not `Emacs*' when setting face
+values.
+
+   In `.Xresources':
+
+     Emacs.default.attributeFont:  -*-*-medium-r-*-*-*-120-*-*-m-*-*-*
+     Emacs*menubar*font:           fixed
+     Emacs.modeline.attributeFont: fixed
+
+   This is confusing because `default' and `modeline' are face names,
+and can be found listed with all faces in the current mode by using
+`M-x set-face-font (enter) ?'.  They use the face-specific resource
+`attributeFont'.
+
+   On the other hand, `menubar' is a normal X thing that uses the
+resource `font'.  With Motif it _may be_ necessary to use `fontList'
+_instead of_ `font'.  In _non-Motif_ configurations with Mule it _is_
+necessary to use `fontSet' instead of `font'.  (Sorry, there just is no
+simple recipe here.)
+
+\1f
+File: xemacs-faq.info,  Node: Q4.0.3,  Next: Q4.0.4,  Prev: Q4.0.2,  Up: Display
+
+Q4.0.3: How can I set color options from `init.el'?
+---------------------------------------------------
+
+How can I set the most commonly used color options from my `init.el'
+instead of from my `.Xresources'?
+
+   Like this:
+
+     (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-foreground 'highlight    "yellow")
+     (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-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
+
+\1f
+File: xemacs-faq.info,  Node: Q4.0.4,  Next: Q4.0.5,  Prev: Q4.0.3,  Up: Display
+
+Q4.0.4: How can I set the colors when highlighting a region?
+------------------------------------------------------------
+
+How can I set the background/foreground colors when highlighting a
+region?
+
+   You can change the face `zmacs-region' either in your `.Xresources':
+
+     Emacs.zmacs-region.attributeForeground: firebrick
+     Emacs.zmacs-region.attributeBackground: lightseagreen
+
+   or in your `init.el':
+
+     (set-face-background 'zmacs-region "red")
+     (set-face-foreground 'zmacs-region "yellow")
+
+\1f
+File: xemacs-faq.info,  Node: Q4.0.5,  Next: Q4.0.6,  Prev: Q4.0.4,  Up: Display
+
+Q4.0.5: How can I limit color map usage?
+----------------------------------------
+
+I'm using Netscape (or another color grabber like XEmacs); is there any
+way to limit the number of available colors in the color map?
+
+   Answer: No, but you can start Netscape before XEmacs, and it will use
+the closest available color if the colormap is full.  You can also limit
+the number of colors Netscape uses, using the flags -mono, -ncols <#> or
+-install (for mono, limiting to <#> colors, or for using a private color
+map).
+
+   If you have the money, another solution would be to use a truecolor
+or direct color video.
+
+\1f
+File: xemacs-faq.info,  Node: Q4.0.6,  Next: Q4.0.7,  Prev: Q4.0.5,  Up: Display
+
+Q4.0.6: 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
+Right Thing using this Lisp code:
+
+     (if (eq 'tty (device-type))
+         (set-device-class nil 'color))
+
+\1f
+File: xemacs-faq.info,  Node: Q4.0.7,  Next: Q4.0.8,  Prev: Q4.0.6,  Up: Display
+
+Q4.0.7: Can I have pixmap backgrounds in XEmacs?
+------------------------------------------------
+
+Juan Villacis <jvillaci@wahnsinnig.extreme.indiana.edu> writes:
+
+     There are several ways to do it.  For example, you could specify a
+     default pixmap image to use in your `~/.Xresources', e.g.,
+
+            Emacs*EmacsFrame.default.attributeBackgroundPixmap: /path/to/image.xpm
+
+     and then reload ~/.Xresources and restart XEmacs.  Alternatively,
+     since each face can have its own pixmap background, a better way
+     would be to set a face's pixmap within your XEmacs init file, e.g.,
+
+            (set-face-background-pixmap 'default "/path/to/image.xpm")
+            (set-face-background-pixmap 'bold    "/path/to/another_image.xpm")
+
+     and so on.  You can also do this interactively via `M-x
+     edit-faces'.
+
+
+\1f
+File: xemacs-faq.info,  Node: Q4.0.8,  Next: Q4.0.9,  Prev: Q4.0.7,  Up: Display
+
+Q4.0.8: How do I display non-ASCII characters?
+----------------------------------------------
+
+If you're using a Mule-enabled XEmacs, then display is automatic.  If
+you're not seeing the characters you expect, either (1) you don't have
+appropriate fonts available or (2) XEmacs did not correctly detect the
+coding system (*note Recognize Coding: (xemacs)Recognize Coding.).  In
+case (1), install fonts as is customary for your platform.  In case
+(2), you need to tell XEmacs explicitly what coding systems you're
+using.  *Note Specify Coding: (xemacs)Specify Coding.
+
+   If your XEmacs is not Mule-enabled, and for some reason getting a
+Mule-enabled XEmacs seems like the wrong thing to do, all is not lost.
+You can arrange it by brute force.  In `event-Xt.c' (suppress the urge
+to look in this file--play Doom instead, because you'll survive
+longer), it is written:
+
+     In a non-Mule world, a user can still have a multi-lingual editor,
+     by doing `(set-face-font "-*-iso8859-2" (current-buffer))' for all
+     their Latin-2 buffers, etc.
+
+   For the related problem of _inputting_ non-ASCII characters in a
+non-Mule XEmacs, *Note How can you type in special characters in
+XEmacs?: Q3.0.6.
+
+\1f
+File: xemacs-faq.info,  Node: Q4.0.9,  Next: Q4.1.1,  Prev: Q4.0.8,  Up: Display
+
+Q4.0.9: Font selections in don't get saved after `Save Options'.
+----------------------------------------------------------------
+
+John Mann <mannj@ll.mit.edu> writes:
+
+     You have to go to `Options->Menubars' and unselect `Frame-Local
+     Font Menu'.  If this option is selected, font changes are only
+     applied to the _current_ frame and do _not_ get saved when you
+     save options.
+
+   Also, set the following in your `init.el':
+
+     (setq options-save-faces t)
+
+4.1: Syntax Highlighting (Font Lock)
+====================================
+
+\1f
+File: xemacs-faq.info,  Node: Q4.1.1,  Next: Q4.1.2,  Prev: Q4.0.9,  Up: Display
+
+Q4.1.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 adding the line:
+
+     (require 'font-lock)
+
+   to your `init.el'. (You can turn it on for the current buffer and
+session only by `M-x font-lock-mode'.) See the file
+`etc/sample.init.el' (`etc/sample.emacs' in XEmacs versions prior to
+21.4) for more information.
+
+   See also `Syntax Highlighting' from the `Options' menu.  Remember to
+save options.
+
+\1f
+File: xemacs-faq.info,  Node: Q4.1.2,  Next: Q4.2.1,  Prev: Q4.1.1,  Up: Display
+
+Q4.1.2: How do I get `More' Syntax Highlighting on by default?
+--------------------------------------------------------------
+
+Use the following code in your `init.el':
+
+     (setq-default font-lock-maximum-decoration t)
+
+   See also `Syntax Highlighting' from the `Options' menu.  Remember to
+save options.
+
+4.2: The Modeline
+=================
+
+\1f
+File: xemacs-faq.info,  Node: Q4.2.1,  Next: Q4.2.2,  Prev: Q4.1.2,  Up: Display
+
+Q4.2.1: How can I make the modeline go away?
+--------------------------------------------
+
+     (set-specifier has-modeline-p nil)
+
+\1f
+File: xemacs-faq.info,  Node: Q4.2.2,  Next: Q4.2.3,  Prev: Q4.2.1,  Up: Display
+
+Q4.2.2: How do you have XEmacs display the line number in the modeline?
+-----------------------------------------------------------------------
+
+Add the following line to your `init.el' file to display the line
+number:
+
+     (line-number-mode 1)
+
+   Use the following to display the column number:
+
+     (column-number-mode 1)
+
+   Or select from the `Options' menu `Advanced
+(Customize)->Emacs->Editing->Basics->Line Number Mode' and/or `Advanced
+(Customize)->Emacs->Editing->Basics->Column Number Mode'
+
+   Or type `M-x customize <RET> editing-basics <RET>'.
+
+\1f
+File: xemacs-faq.info,  Node: Q4.2.3,  Next: Q4.2.4,  Prev: Q4.2.2,  Up: Display
+
+Q4.2.3: How do I get XEmacs to put the time of day on the modeline?
+-------------------------------------------------------------------
+
+Add the following line to your `init.el' file to display the time:
+
+     (display-time)
+
+   See `Customize' from the `Options' menu for customization.
+
+\1f
+File: xemacs-faq.info,  Node: Q4.2.4,  Next: Q4.3.1,  Prev: Q4.2.3,  Up: Display
+
+Q4.2.4: How can I change the modeline color based on the mode used?
+-------------------------------------------------------------------
+
+You can use something like the following:
+
+     (add-hook 'lisp-mode-hook
+               (lambda ()
+                 (set-face-background 'modeline "red" (current-buffer))))
+
+   Then, when editing a Lisp file (i.e. when in Lisp mode), the modeline
+colors change from the default set in your `init.el'.  The change will
+only be made in the buffer you just entered (which contains the Lisp
+file you are editing) and will not affect the modeline colors anywhere
+else.
+
+   Notes:
+
+   * The hook is the mode name plus `-hook'.  eg. c-mode-hook,
+     c++-mode-hook, emacs-lisp-mode-hook (used for your `init.el' or a
+     `xx.el' file), lisp-interaction-mode-hook (the `*scratch*' buffer),
+     text-mode-hook, etc.
+
+   * Be sure to use `add-hook', not `(setq c-mode-hook xxxx)',
+     otherwise you will erase anything that anybody has already put on
+     the hook.
+
+   * You can also do `(set-face-font 'modeline FONT)', eg.
+     `(set-face-font 'modeline "*bold-r-normal*140-100-100*"
+     (current-buffer))' if you wish the modeline font to vary based on
+     the current mode.
+
+   There are additional modeline faces, `modeline-buffer-id',
+`modeline-mousable', and `modeline-mousable-minor-mode', which you may
+want to customize.
+
+4.3: The Cursor
+===============
+
+\1f
+File: xemacs-faq.info,  Node: Q4.3.1,  Next: Q4.3.2,  Prev: Q4.2.4,  Up: Display
+
+Q4.3.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.
+
+   For a 1 pixel bar cursor, use:
+
+     (setq bar-cursor t)
+
+   For a 2 pixel bar cursor, use:
+
+     (setq bar-cursor 'anything-else)
+
+   You can also change these with Customize.  Select from the `Options'
+menu `Advanced (Customize)->Emacs->Environment->Display->Bar Cursor...'
+or type `M-x customize <RET> display <RET>'.
+
+   You can use a color to make it stand out better:
+
+     Emacs*cursorColor:      Red
+
+\1f
+File: xemacs-faq.info,  Node: Q4.3.2,  Next: Q4.3.3,  Prev: Q4.3.1,  Up: Display
+
+Q4.3.2: Is there a way to get back the block cursor?
+----------------------------------------------------
+
+     (setq bar-cursor nil)
+
+   You can also change this with Customize.  Select from the `Options'
+menu `Advanced (Customize)->Emacs->Environment->Display->Bar Cursor...'
+or type `M-x customize <RET> display <RET>'.
+
+\1f
+File: xemacs-faq.info,  Node: Q4.3.3,  Next: Q4.4.1,  Prev: Q4.3.2,  Up: Display
+
+Q4.3.3: Can I make the cursor blink?
+------------------------------------
+
+Yes, like this:
+
+     (blink-cursor-mode)
+
+   This function toggles between a steady cursor and a blinking cursor.
+You may also set this mode from the menu bar by selecting
+`Options->Display->Blinking Cursor'.  Remember to save options.
+
+4.4: The Menubar
+================
+
+\1f
+File: xemacs-faq.info,  Node: Q4.4.1,  Next: Q4.4.2,  Prev: Q4.3.3,  Up: Display
+
+Q4.4.1: How do I get rid of the menubar?
+----------------------------------------
+
+     (set-specifier menubar-visible-p nil)
+
+\1f
+File: xemacs-faq.info,  Node: Q4.4.2,  Next: Q4.4.3,  Prev: Q4.4.1,  Up: Display
+
+Q4.4.2: How can I customize the menubar?
+----------------------------------------
+
+For an extensive menubar, add this line to your `init.el':
+
+     (load "big-menubar")
+
+   If you'd like to write your own, this file provides as good a set of
+examples as any to start from.  The file is located in edit-utils
+package.
+
+\1f
+File: xemacs-faq.info,  Node: Q4.4.3,  Next: Q4.4.4,  Prev: Q4.4.2,  Up: Display
+
+Q4.4.3: How do I enable use of the keyboard (`Alt') to access menu items?
+-------------------------------------------------------------------------
+
+#### Write me.
+
+\1f
+File: xemacs-faq.info,  Node: Q4.4.4,  Next: Q4.4.5,  Prev: Q4.4.3,  Up: Display
+
+Q4.4.4: How do I control how many buffers are listed in the menu `Buffers List'?
+--------------------------------------------------------------------------------
+
+Add the following to your `init.el' (suit to fit):
+
+     (setq buffers-menu-max-size 20)
+
+   For no limit, use an argument of `nil'.
+
+   You can also change this with Customize.  Select from the `Options'
+menu `Advanced (Customize)->Emacs->Environment->Menu->Buffers Menu->Max
+Size...' or type `M-x customize <RET> buffers-menu <RET>'.
+
+\1f
+File: xemacs-faq.info,  Node: Q4.4.5,  Next: Q4.5.1,  Prev: Q4.4.4,  Up: Display
+
+Q4.4.5: Resources like `Emacs*menubar*font' are not working?
+------------------------------------------------------------
+
+I am trying to use a resource like `Emacs*menubar*font' to set the font
+of the menubar but it's not working.
+
+   In Motif, the use of `font' resources is obsoleted in order to
+support internationalization.  If you are using the real Motif menubar,
+this resource is not recognized at all; you have to say:
+
+     Emacs*menubar*fontList: FONT
+
+   If you are using the Lucid menubar, for backward compatibility with
+existing user configurations, the `font' resource is recognized.  Since
+this is not supported by Motif itself, the code is a kludge and the
+`font' resource will be recognized only if the `fontList' resource
+resource is unset.  This means that the resource
+
+     *fontList: FONT
+
+   will override
+
+     Emacs*menubar*font: FONT
+
+   even though the latter is more specific.
+
+   In non-Motif configurations using `--with-mule' and `--with-xfs' it
+_is_ necessary to use the `fontSet' resource _instead of_ the `font'
+resource.  The backward compatibility kludge was never implemented for
+non-Motif builds.  Example:
+
+     *fontSet: FONT
+
+4.5: The Toolbar
+================
+
+\1f
+File: xemacs-faq.info,  Node: Q4.5.1,  Next: Q4.5.2,  Prev: Q4.4.5,  Up: Display
+
+Q4.5.1: How do I get rid of the toolbar?
+----------------------------------------
+
+#### Write me.
+
+\1f
+File: xemacs-faq.info,  Node: Q4.5.2,  Next: Q4.5.3,  Prev: Q4.5.1,  Up: Display
+
+Q4.5.2: How can I customize the toolbar?
+----------------------------------------
+
+#### Write me.
+
+\1f
+File: xemacs-faq.info,  Node: Q4.5.3,  Next: Q4.5.4,  Prev: Q4.5.2,  Up: Display
+
+Q4.5.3: How can I bind a key to a function to toggle the toolbar?
+-----------------------------------------------------------------
+
+Try something like:
+
+     (defun my-toggle-toolbar ()
+       (interactive)
+       (set-specifier default-toolbar-visible-p
+                      (not (specifier-instance default-toolbar-visible-p))))
+     (global-set-key "\C-xT" 'my-toggle-toolbar)
+
+   Thanks to Martin Buchholz <martin@xemacs.org> for the correct code.
+
+\1f
+File: xemacs-faq.info,  Node: Q4.5.4,  Next: Q4.6.1,  Prev: Q4.5.3,  Up: Display
+
+Q4.5.4: `Can't instantiate image error...' in toolbar
+-----------------------------------------------------
+
+Dr. Ram Samudrala <expt@alanine.ram.org> writes:
+
+   I just installed the XEmacs (20.4-2) RPMS that I downloaded from
+`http://www.xemacs.org/'.  Everything works fine, except that when I
+place my mouse over the toolbar, it beeps and gives me this message:
+
+      Can't instantiate image (probably cached):
+      [xbm :mask-file "/usr/include/X11/bitmaps/leftptrmsk :mask-data
+      (16 16 <strange control characters> ...
+
+   Kyle Jones <kyle_jones@wonderworks.com> writes:
+
+     This is problem specific to some Chips and Technologies video
+     chips, when running XFree86.  Putting
+
+     `Option "sw_cursor"'
+
+     in `XF86Config' gets rid of the problem.
+
+4.6: Scrollbars and Scrolling
+=============================
+
+\1f
+File: xemacs-faq.info,  Node: Q4.6.1,  Next: Q4.6.2,  Prev: Q4.5.4,  Up: Display
+
+Q4.6.1: How can I disable the scrollbar?
+----------------------------------------
+
+To disable them for all frames, add the following line to your
+`.Xresources':
+
+     Emacs.scrollBarWidth:  0
+
+   Or select `Options->Display->Scrollbars'.  Remember to save options.
+
+   To turn the scrollbar off on a per-frame basis, use the following
+function:
+
+     (set-specifier scrollbar-width 0 (selected-frame))
+
+   You can actually turn the scrollbars on at any level you want by
+substituting for (selected-frame) in the above command.  For example, to
+turn the scrollbars off only in a single buffer:
+
+     (set-specifier scrollbar-width 0 (current-buffer))
+
+\1f
+File: xemacs-faq.info,  Node: Q4.6.2,  Next: Q4.6.3,  Prev: Q4.6.1,  Up: Display
+
+Q4.6.2: How can I change the scrollbar width?
+---------------------------------------------
+
+#### Write me.
+
+\1f
+File: xemacs-faq.info,  Node: Q4.6.3,  Next: Q4.6.4,  Prev: Q4.6.2,  Up: Display
+
+Q4.6.3: How can I use resources to change scrollbar colors?
+-----------------------------------------------------------
+
+Here's a recap of how to use resources to change your scrollbar colors:
+
+     ! Motif scrollbars
+
+     Emacs*XmScrollBar.Background: skyblue
+     Emacs*XmScrollBar.troughColor: lightgray
+
+     ! Athena scrollbars
+
+     Emacs*Scrollbar.Foreground: skyblue
+     Emacs*Scrollbar.Background: lightgray
+
+   Note the capitalization of `Scrollbar' for the Athena widget.
+
+\1f
+File: xemacs-faq.info,  Node: Q4.6.4,  Next: Q4.6.5,  Prev: Q4.6.3,  Up: Display
+
+Q4.6.4: 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
+feature?  Can I disable it?
+
+   The current behavior is a feature, not a bug.  Point remains at the
+same buffer position as long as that position does not scroll off the
+screen.  In that event, point will end up in either the upper-left or
+lower-left hand corner.
+
+   This cannot be changed.
+
+\1f
+File: xemacs-faq.info,  Node: Q4.6.5,  Next: Q4.6.6,  Prev: Q4.6.4,  Up: Display
+
+Q4.6.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.
+
+   Use the following:
+
+     (setq scroll-step 1)
+
+   You can also change this with Customize.  Select from the `Options'
+menu `Advanced (Customize)->Emacs->Environment->Windows->Scroll Step...'
+or type `M-x customize <RET> windows <RET>'.
+
+\1f
+File: xemacs-faq.info,  Node: Q4.6.6,  Next: Q4.6.7,  Prev: Q4.6.5,  Up: Display
+
+Q4.6.6: How can I turn off automatic horizontal scrolling in specific modes?
+----------------------------------------------------------------------------
+
+Do `(setq truncate-lines t)' in the mode-hooks for any modes in which
+you want lines truncated.
+
+   More precisely: If `truncate-lines' is nil, horizontal scrollbars
+will never appear.  Otherwise, they will appear only if the value of
+`scrollbar-height' for that buffer/window/etc. is non-zero.  If you do
+
+     (set-specifier scrollbar-height 0)
+
+   then horizontal scrollbars will not appear in truncated buffers
+unless the package specifically asked for them.
+
+\1f
+File: xemacs-faq.info,  Node: Q4.6.7,  Next: Q4.7.1,  Prev: Q4.6.6,  Up: Display
+
+Q4.6.7: I find auto-show-mode disconcerting.  How do I turn it off?
+-------------------------------------------------------------------
+
+`auto-show-mode' controls whether or not a horizontal scrollbar
+magically appears when a line is too long to be displayed.  This is
+enabled by default.  To turn it off, put the following in your
+`init.el':
+
+     (setq auto-show-mode nil)
+     (setq-default auto-show-mode nil)
+
+4.7: The Gutter Tabs, The Progress Bar, Widgets
+===============================================
+
+\1f
+File: xemacs-faq.info,  Node: Q4.7.1,  Next: Q4.7.2,  Prev: Q4.6.7,  Up: Display
+
+Q4.7.1: How can I disable the gutter tabs?
+------------------------------------------
+
+#### Write me.
+
+\1f
+File: xemacs-faq.info,  Node: Q4.7.2,  Next: Q4.7.3,  Prev: Q4.7.1,  Up: Display
+
+Q4.7.2: How can I disable the progress bar?
+-------------------------------------------
+
+#### Write me.
+
+\1f
+File: xemacs-faq.info,  Node: Q4.7.3,  Next: Q4.7.4,  Prev: Q4.7.2,  Up: Display
+
+Q4.7.3: There are bugs in the gutter or widgets.
+------------------------------------------------
+
+#### Write me.
+
+\1f
+File: xemacs-faq.info,  Node: Q4.7.4,  Prev: Q4.7.3,  Up: Display
+
+Q4.7.4: How can I customize the gutter or gutter tabs?
+------------------------------------------------------
+
+#### Write me.
+
+\1f
+File: xemacs-faq.info,  Node: External Subsystems,  Next: Internet,  Prev: Display,  Up: Top
+
+5 Interfacing with the Operating System and External Devices
+************************************************************
+
+This is part 5 of the XEmacs Frequently Asked Questions list.  This
+section is devoted to the various ways that XEmacs interfaces with the
+operating system, with other processes and with external devices such
+as speakers and the printer.
+
+* Menu:
+
+5.0: X Window System and Resources
+* Q5.0.1::    Where is a list of X resources?
+* Q5.0.2::    How can I detect a color display?
+* Q5.0.3::    How can I get the icon to just say `XEmacs'?
+* Q5.0.4::    How can I have the window title area display the full path?
+* Q5.0.5::    `xemacs -name junk' doesn't work?
+* Q5.0.6::    `-iconic' doesn't work.
+
+5.1: Microsoft Windows
+* Q5.1.1::    Does XEmacs rename all the `win32-*' symbols to `w32-*'?
+* Q5.1.2::    How do I get Windows Explorer to associate a file type with XEmacs?
+
+5.2: Printing
+* Q5.2.1::    What do I need to change to make printing work?
+* Q5.2.2::    How can I print WYSIWYG a font-locked buffer?
+* Q5.2.3::    Getting M-x lpr to work with postscript printer.
+* Q5.2.4::    Can you print under MS Windows?
+
+5.3: Sound
+* Q5.3.1::    How do I turn off the sound?
+* Q5.3.2::    How do I get funky sounds instead of a boring beep?
+* Q5.3.3::    What are NAS and ESD (EsounD)?
+* Q5.3.4::    Sunsite sounds don't play.
+
+5.4: Running an Interior Shell, Invoking Subprocesses
+* Q5.4.1::    What is an interior shell?
+* Q5.4.2::    How do I start up a second shell buffer?
+* Q5.4.3::    Telnet from shell filters too much
+* Q5.4.4::    Strange things are happening in Shell Mode.
+* Q5.4.5::    XEmacs complains "No such file or directory, diff"
+* Q5.4.6::    Cygwin error "fork_copy: linked dll/bss pass 0 failed"
+
+5.5: Multiple Device Support
+* Q5.5.1::    How do I open a frame on another screen of my multi-headed display?
+* Q5.5.2::    Can I really connect to a running XEmacs after calling up over a modem?  How?
+* Q5.5.3::    How do I disable gnuserv from opening a new frame?
+* Q5.5.4::    How do I start gnuserv so that each subsequent XEmacs is a client?
+* Q5.5.5::    Is there a way to start a new XEmacs if there's no gnuserv running, and otherwise use gnuclient?
+
+5.0: X Window System and Resources
+==================================
+
+\1f
+File: xemacs-faq.info,  Node: Q5.0.1,  Next: Q5.0.2,  Prev: External Subsystems,  Up: External Subsystems
+
+Q5.0.1: Where is a list of X resources?
+---------------------------------------
+
+Search through the `NEWS' file for `X Resources'.  A fairly
+comprehensive list is given after it.
+
+   In addition, an `app-defaults' file `etc/Emacs.ad' is supplied,
+listing the defaults.  The file `etc/sample.Xresources' gives a
+different set of defaults that you might consider for installation in
+your `~/.Xresources' file.  It is nearly the same as `etc/Emacs.ad',
+but a few entries are altered.  Be careful about installing the
+contents of this file into your `.Xresources' (or legacy `.Xdefaults')
+file if you use GNU Emacs under X11 as well.
+
+\1f
+File: xemacs-faq.info,  Node: Q5.0.2,  Next: Q5.0.3,  Prev: Q5.0.1,  Up: External Subsystems
+
+Q5.0.2: How can I detect a color display?
+-----------------------------------------
+
+You can test the return value of the function `(device-class)', as in:
+
+     (when (eq (device-class) 'color)
+       (set-face-foreground  'font-lock-comment-face "Grey")
+       (set-face-foreground  'font-lock-string-face  "Red")
+       ....
+       )
+
+\1f
+File: xemacs-faq.info,  Node: Q5.0.3,  Next: Q5.0.4,  Prev: Q5.0.2,  Up: External Subsystems
+
+Q5.0.3: How can I get the icon to just say `XEmacs'?
+----------------------------------------------------
+
+I'd like the icon to just say `XEmacs', and not include the name of the
+current file in it.
+
+   Add the following line to your `init.el':
+
+     (setq frame-icon-title-format "XEmacs")
+
+\1f
+File: xemacs-faq.info,  Node: Q5.0.4,  Next: Q5.0.5,  Prev: Q5.0.3,  Up: External Subsystems
+
+Q5.0.4: 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.
+
+   Add the following line to your `init.el':
+
+     (setq frame-title-format "%S: %f")
+
+   A more sophisticated title might be:
+
+     (setq frame-title-format
+           '("%S: " (buffer-file-name "%f"
+                                      (dired-directory dired-directory "%b"))))
+
+   That is, use the file name, or the dired-directory, or the buffer
+name.
+
+\1f
+File: xemacs-faq.info,  Node: Q5.0.5,  Next: Q5.0.6,  Prev: Q5.0.4,  Up: External Subsystems
+
+Q5.0.5: `xemacs -name junk' doesn't work?
+-----------------------------------------
+
+When I run `xterm -name junk', I get an xterm whose class name
+according to xprop, is `junk'.  This is the way it's supposed to work,
+I think.  When I run `xemacs -name junk' the class name is not set to
+`junk'.  It's still `emacs'.  What does `xemacs -name' really do?  The
+reason I ask is that my window manager (fvwm) will make a window sticky
+and I use XEmacs to read my mail.  I want that XEmacs window to be
+sticky, without having to use the window manager's function to set the
+window sticky.  What gives?
+
+   `xemacs -name' sets the application name for the program (that is,
+the thing which normally comes from `argv[0]').  Using `-name' is the
+same as making a copy of the executable with that new name.  The
+`WM_CLASS' property on each frame is set to the frame-name, and the
+application-class.  So, if you did `xemacs -name FOO' and then created
+a frame named BAR, you'd get an X window with WM_CLASS = `( "BAR",
+"Emacs")'.  However, the resource hierarchy for this widget would be:
+
+     Name:    FOO   .shell             .container   .BAR
+     Class:   Emacs .TopLevelEmacsShell.EmacsManager.EmacsFrame
+
+   instead of the default
+
+     Name:    xemacs.shell             .container   .emacs
+     Class:   Emacs .TopLevelEmacsShell.EmacsManager.EmacsFrame
+
+   It is arguable that the first element of WM_CLASS should be set to
+the application-name instead of the frame-name, but I think that's less
+flexible, since it does not give you the ability to have multiple frames
+with different WM_CLASS properties.  Another possibility would be for
+the default frame name to come from the application name instead of
+simply being `emacs'.  However, at this point, making that change would
+be troublesome: it would mean that many users would have to make yet
+another change to their resource files (since the default frame name
+would suddenly change from `emacs' to `xemacs', or whatever the
+executable happened to be named), so we'd rather avoid it.
+
+   To make a frame with a particular name use:
+
+     (make-frame '((name . "the-name")))
+
+\1f
+File: xemacs-faq.info,  Node: Q5.0.6,  Next: Q5.1.1,  Prev: Q5.0.5,  Up: External Subsystems
+
+Q5.0.6: `-iconic' doesn't work.
+-------------------------------
+
+When I start up XEmacs using `-iconic' it doesn't work right.  Using
+`-unmapped' on the command line, and setting the `initiallyUnmapped' X
+Resource don't seem to help much either...
+
+   Ben Wing <ben@xemacs.org> writes:
+
+     Ugh, this stuff is such an incredible mess that I've about given up
+     getting it to work.  The principal problem is numerous
+     window-manager bugs...
+
+5.1: Microsoft Windows
+======================
+
+\1f
+File: xemacs-faq.info,  Node: Q5.1.1,  Next: Q5.1.2,  Prev: Q5.0.6,  Up: External Subsystems
+
+Q5.1.1: Does XEmacs rename all the `win32-*' symbols to `w32-*'?
+----------------------------------------------------------------
+
+In his flavor of Emacs 20, Richard Stallman has renamed all the
+`win32-*' symbols to `w32-*'.  Does XEmacs do the same?
+
+   We consider such a move counter-productive, thus we do not use the
+`w32' prefix. (His rather questionable justification was that he did
+not consider Windows to be a "winning" platform.) However, the name
+`Win32' is not particularly descriptive outside the Windows world, and
+using just `windows-' would be too generic.  So we chose a compromise,
+the prefix `mswindows-' for Windows-related variables and functions.
+
+   Thus all the XEmacs variables and functions directly related to
+either the Windows GUI or OS are prefixed `mswindows-' (except for a
+couple of debugging variables, prefixed `debug-mswindows-').  From an
+architectural perspective, however, we believe that this is mostly a
+non-issue because there should be a very small number of
+window-systems-specific variables anyway.  Whenever possible, we try to
+provide generic interfaces that apply to all window systems.
+
+\1f
+File: xemacs-faq.info,  Node: Q5.1.2,  Next: Q5.2.1,  Prev: Q5.1.1,  Up: External Subsystems
+
+Q5.1.2: How do I get Windows Explorer to associate a file type with XEmacs?
+---------------------------------------------------------------------------
+
+Associating a new file type with XEmacs.
+........................................
+
+In Explorer select `View->Options->File Types', press `[New Type...]'
+and fill in the dialog box, e.g.:
+
+             Description of type:    Emacs Lisp source
+             Associated extension:   el
+             Content Type (MIME):    text/plain
+
+   then press `[New...]' and fill in the `Action' dialog box as follows:
+
+             Action:
+             Open
+
+             Application used to perform action:
+             D:\Full\path\for\xemacs.exe "%1"
+
+             [x] Use DDE
+
+             DDE Message:
+             open("%1")
+
+             Application:
+             <leave blank>
+
+             DDE Application Not Running:
+             <leave blank>
+
+             Topic:
+             <leave blank>
+
+Associating an existing file type with XEmacs.
+..............................................
+
+In Explorer select `View->Options->File Types'.  Click on the file type
+in the list and press `[Edit...]'.  If the file type already has an
+`Open' action, double click on it and fill in the `Action' dialog box
+as described above; otherwise create a new action.
+
+   If the file type has more than one action listed, you probably want
+to make the `Open' action that you just edited the default by clicking
+on it and pressing `Set Default'.
+
+   Note for Windows 2000 users: Under Windows 2000, get to `File Types'
+using `Control Panel->Folder Options->File Types'.
+
+5.2: Printing
+=============
+
+\1f
+File: xemacs-faq.info,  Node: Q5.2.1,  Next: Q5.2.2,  Prev: Q5.1.2,  Up: External Subsystems
+
+Q5.2.1: What do I need to change to make printing work?
+-------------------------------------------------------
+
+For regular printing there are two variables that can be customized.
+
+`lpr-command'
+     This should be set to a command that takes standard input and sends
+     it to a printer.  Something like:
+
+          (setq lpr-command "lp")
+
+`lpr-switches'
+     This should be set to a list that contains whatever the print
+     command requires to do its job.  Something like:
+
+          (setq lpr-switches '("-depson"))
+
+   For postscript printing there are three analogous variables to
+customize.
+
+`ps-lpr-command'
+     This should be set to a command that takes postscript on standard
+     input and directs it to a postscript printer.
+
+`ps-lpr-switches'
+     This should be set to a list of switches required for
+     `ps-lpr-command' to do its job.
+
+`ps-print-color-p'
+     This boolean variable should be set `t' if printing will be done in
+     color, otherwise it should be set to `nil'.
+
+   NOTE: It is an undocumented limitation in XEmacs that postscript
+printing (the `Pretty Print Buffer' menu item) *requires* a window
+system environment.  It cannot be used outside of X11.
+
+\1f
+File: xemacs-faq.info,  Node: Q5.2.2,  Next: Q5.2.3,  Prev: Q5.2.1,  Up: External Subsystems
+
+Q5.2.2: How can I print WYSIWYG a font-locked buffer?
+-----------------------------------------------------
+
+Font-lock looks nice.  How can I print (WYSIWYG) the highlighted
+document?
+
+   The package `ps-print', which is now included with XEmacs, provides
+the ability to do this.  The source code contains complete instructions
+on its use, in
+`$prefix/lib/xemacs/xemacs-packages/lisp/ps-print/ps-print.el', being
+the default location of an installed ps-print package.
+
+\1f
+File: xemacs-faq.info,  Node: Q5.2.3,  Next: Q5.2.4,  Prev: Q5.2.2,  Up: External Subsystems
+
+Q5.2.3: Getting `M-x lpr' to work with postscript printer.
+----------------------------------------------------------
+
+My printer is a Postscript printer and `lpr' only works for Postscript
+files, so how do I get `M-x lpr-region' and `M-x lpr-buffer' to work?
+
+   Put something like this in your `init.el':
+
+     (setq lpr-command "a2ps")
+     (setq lpr-switches '("-p" "-1"))
+
+   If you don't use a2ps to convert ASCII to postscript (why not, it's
+free?), replace with the command you do use.  Note also that some
+versions of a2ps require a `-Pprinter' to ensure spooling.
+
+\1f
+File: xemacs-faq.info,  Node: Q5.2.4,  Next: Q5.3.1,  Prev: Q5.2.3,  Up: External Subsystems
+
+Q5.2.4: Can you print under MS Windows?
+---------------------------------------
+
+As of 21.4, printing works on Windows, using simply `File->Print
+BUFFER...', and can be configured with `File->Page Setup...'.
+
+   Prior to 21.4, there is no built-in support, but there are some
+clever hacks out there.  If you know how, please let us know and we'll
+put it here.
+
+5.3: Sound
+==========
+
+\1f
+File: xemacs-faq.info,  Node: Q5.3.1,  Next: Q5.3.2,  Prev: Q5.2.4,  Up: External Subsystems
+
+Q5.3.1: How do I turn off the sound?
+------------------------------------
+
+Add the following line to your `init.el':
+
+     (setq bell-volume 0)
+     (setq sound-alist nil)
+
+   That will make your XEmacs totally silent--even the default ding
+sound (TTY beep on TTY-s) will be gone.
+
+   You can also change these with Customize.  Select from the `Options'
+menu `Advanced (Customize)->Emacs->Environment->Sound->Sound...' or
+type `M-x customize <RET> sound <RET>'.
+
+\1f
+File: xemacs-faq.info,  Node: Q5.3.2,  Next: Q5.3.3,  Prev: Q5.3.1,  Up: External Subsystems
+
+Q5.3.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 `init.el':
+
+     (load-default-sounds)
+
+\1f
+File: xemacs-faq.info,  Node: Q5.3.3,  Next: Q5.3.4,  Prev: Q5.3.2,  Up: External Subsystems
+
+Q5.3.3: What are NAS and ESD (EsounD)?
+--------------------------------------
+
+"Network Audio System" (NAS) is a client-server sound library for X.
+
+   `http://radscan.com/nas.html'.
+
+   To build XEmacs with it, use the `configure' flag `--with-sound=nas'
+(`--enable-sound=nas' in 21.5 or later).
+
+   "Enlightened Sound Daemon" (ESD or EsounD) is yet another sound
+system.
+
+   `http://www.tux.org/~ricdude/EsounD.html'.
+
+   To build XEmacs with it, use the `configure' flag `--with-sound=esd'
+(`--enable-sound=esd' in 21.5 or later).
+
+   You can specify support for both with a flag like
+`--with-sound=nas,esd' (`--enable-sound=nas,esd' in 21.5 or later).
+
+\1f
+File: xemacs-faq.info,  Node: Q5.3.4,  Next: Q5.4.1,  Prev: Q5.3.3,  Up: External Subsystems
+
+Q5.3.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 `showaudio' or cat them directly to
+`/dev/audio', but XEmacs refuses to play them.
+
+   Markus Gutschke <gutschk@uni-muenster.de> writes:
+
+     [Many of] These files have an (erroneous) 24byte header that tells
+     about the format that they have been recorded in. If you cat them
+     to `/dev/audio', the header will be ignored and the default
+     behavior for /dev/audio will be used. This happens to be 8kHz
+     uLaw. It is probably possible to fix the header by piping through
+     `sox' and passing explicit parameters for specifying the sampling
+     format; you then need to perform a 'null' conversion from SunAudio
+     to SunAudio.
+
+5.4: Running an Interior Shell, Invoking Subprocesses
+=====================================================
+
+\1f
+File: xemacs-faq.info,  Node: Q5.4.1,  Next: Q5.4.2,  Prev: Q5.3.4,  Up: External Subsystems
+
+Q5.4.1: What is an interior shell?
+----------------------------------
+
+#### Write me.
+
+\1f
+File: xemacs-faq.info,  Node: Q5.4.2,  Next: Q5.4.3,  Prev: Q5.4.1,  Up: External Subsystems
+
+Q5.4.2: How do I start up a second shell buffer?
+------------------------------------------------
+
+In the `*shell*' buffer:
+
+     M-x rename-buffer <RET> *shell-1* <RET>
+     M-x shell RET
+
+   This will then start a second shell.  The key is that no buffer named
+`*shell*' can exist.  It might be preferable to use `M-x
+rename-uniquely' to rename the `*shell*' buffer instead of `M-x
+rename-buffer'.
+
+   Alternately, you can set the variable `shell-multiple-shells'.  If
+the value of this variable is non-nil, each time shell mode is invoked,
+a new shell is made
+
+\1f
+File: xemacs-faq.info,  Node: Q5.4.3,  Next: Q5.4.4,  Prev: Q5.4.2,  Up: External Subsystems
+
+Q5.4.3: Telnet from shell filters too much
+------------------------------------------
+
+I'm using the Emacs `M-x shell' function, and I would like to invoke
+and use a telnet session within it.  Everything works fine except that
+now all `^M''s are filtered out by Emacs.  Fixes?
+
+   Use `M-x rsh' or `M-x telnet' to open remote sessions rather than
+doing rsh or telnet within the local shell buffer.  You can also use
+`M-x ssh' to open secure remote session if you have `ssh' installed.
+
+\1f
+File: xemacs-faq.info,  Node: Q5.4.4,  Next: Q5.4.5,  Prev: Q5.4.3,  Up: External Subsystems
+
+Q5.4.4: 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
+portion of the command is given to the shell, and a blank prompt is
+returned.  If I hit return again, the rest of the previous command is
+given to the shell.
+
+   Martin Buchholz <martin@xemacs.org> writes:
+
+     There is a known problem with interaction between `csh' and the
+     `filec' option and XEmacs.  You should add the following to your
+     `.cshrc':
+
+          if ( "$TERM" == emacs || "$TERM" == unknown ) unset filec
+
+\1f
+File: xemacs-faq.info,  Node: Q5.4.5,  Next: Q5.4.6,  Prev: Q5.4.4,  Up: External Subsystems
+
+Q5.4.5: XEmacs complains "No such file or directory, diff"
+----------------------------------------------------------
+
+or "ispell" or other commands that seem related to whatever you just
+tried to do (M-x ediff or M-$, for example).
+
+   There are a large number of common (in the sense that "everyone has
+these, they really do") Unix utilities that are not provided with
+XEmacs.  The GNU Project's implementations are available for Windows in
+the the Cygwin distribution (`http://www.cygwin.com/'), which also
+provides a complete Unix emulation environment (and thus makes ports of
+Unix utilities nearly trivial).  Another implementation is that from
+MinGW (`http://www.mingw.org/msys.shtml').  If you know of others,
+please let us know!
+
+\1f
+File: xemacs-faq.info,  Node: Q5.4.6,  Next: Q5.5.1,  Prev: Q5.4.5,  Up: External Subsystems
+
+Q5.4.6: Cygwin error "fork_copy: linked dll/bss pass 0 failed"
+--------------------------------------------------------------
+
+If you are getting an error like
+
+     17797832 [main] bash 3468 fork_copy: linked dll/bss pass 0 failed,
+     0x675000..0x6756A0, done 0, windows pid 2708, Win 32 error 487
+     bash: fork: resource temporarily unavailable
+
+   when trying to run bash using `M-x shell', then you need to rebase
+your Cygwin DLL's.  This is a known problem with Cygwin.  To fix:
+
+  1. Download the `rebase' utility from Cygwin setup (it's under
+     `System').
+
+  2. Kill *all* of your Cygwin processes, including all of your shells
+     and all background processes.  Use `ps -a' to list all the
+     processes you need to kill.
+
+  3. From a DOS prompt, run `ash' (*not* `bash', `tcsh' or `zsh').  Do
+     not try to be clever and `exec /bin/ash' from your last shell; it
+     won't work.
+
+  4. Type `/bin/rebaseall -v'.
+
+   The problem should now be fixed - at least, until you install another
+Cygwin package with DLL's, in which case you may have to repeat the
+procedure.
+
+5.5: Multiple Device Support
+============================
+
+\1f
+File: xemacs-faq.info,  Node: Q5.5.1,  Next: Q5.5.2,  Prev: Q5.4.6,  Up: External Subsystems
+
+Q5.5.1: How do I open a frame on another screen of my multi-headed display?
+---------------------------------------------------------------------------
+
+Use the command `M-x make-frame-on-display'.  This command is also on
+the File menu in the menubar.
+
+   The command `make-frame-on-tty' also exists, which will establish a
+connection to any tty-like device.  Opening the TTY devices should be
+left to `gnuclient', though.
+
+\1f
+File: xemacs-faq.info,  Node: Q5.5.2,  Next: Q5.5.3,  Prev: Q5.5.1,  Up: External Subsystems
+
+Q5.5.2: Can I really connect to a running XEmacs after calling up over a modem?  How?
+-------------------------------------------------------------------------------------
+
+Yes.  Use `gnuclient -nw'.
+
+   Also see *Note How do I disable gnuserv from opening a new frame?:
+Q5.5.3.
+
+\1f
+File: xemacs-faq.info,  Node: Q5.5.3,  Next: Q5.5.4,  Prev: Q5.5.2,  Up: External Subsystems
+
+Q5.5.3: How do I disable gnuserv from opening a new frame?
+----------------------------------------------------------
+
+If you set the `gnuserv-frame' variable to the frame that should be
+used to display buffers that are pulled up, a new frame will not be
+created. For example, you could put
+
+     (setq gnuserv-frame (selected-frame))
+
+   early on in your `init.el', to ensure that the first frame created
+is the one used for your gnuserv buffers.
+
+   There is an option to set the gnuserv target to the current frame.
+See `Options->Display->"Other Window" Location->Make Current Frame
+Gnuserv Target'
+
+   You can also change this with Customize.  Select from the `Options'
+menu `Advanced (Customize)->Emacs->Environment->Gnuserv->Gnuserv
+Frame...'  or type `M-x customize <RET> gnuserv <RET>'.
+
+\1f
+File: xemacs-faq.info,  Node: Q5.5.4,  Next: Q5.5.5,  Prev: Q5.5.3,  Up: External Subsystems
+
+Q5.5.4: How do I start gnuserv so that each subsequent XEmacs is a client?
+--------------------------------------------------------------------------
+
+Put the following in your `init.el' file to start the server:
+
+     (gnuserv-start)
+
+   Start your first XEmacs as usual.  After that, you can do:
+
+     gnuclient randomfilename
+
+   from the command line to get your existing XEmacs process to open a
+new frame and visit randomfilename in that window. When you're done
+editing randomfilename, hit `C-x #' to kill the buffer and get rid of
+the frame.
+
+   See also man page of gnuclient.
+
+\1f
+File: xemacs-faq.info,  Node: Q5.5.5,  Prev: Q5.5.4,  Up: External Subsystems
+
+Q5.5.5: Is there a way to start a new XEmacs if there's no gnuserv running, and otherwise use gnuclient?
+--------------------------------------------------------------------------------------------------------
+
+Jan Vroonhof <vroonhof@math.ethz.ch> writes:
+
+     Here is one of the solutions, we have this in a script called
+     `etc/editclient.sh'.
+           #!/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
+
+     Note that there is a known problem when running XEmacs and
+     'gnuclient -nw' on the same TTY.
+
+\1f
+File: xemacs-faq.info,  Node: Internet,  Next: Advanced,  Prev: External Subsystems,  Up: Top
+
+6 Connecting to the Internet
+****************************
+
+This is part 6 of the XEmacs Frequently Asked Questions list.  This
+section is devoted connecting to the Internet.
+
+* Menu:
+
+6.0: General Mail and News
+* Q6.0.1::    What are the various packages for reading mail?
+* Q6.0.2::    How can I send mail?
+* Q6.0.3::    How do I get my outgoing mail archived?
+* Q6.0.4::    How can I read and/or compose MIME messages?
+* Q6.0.5::    How do I customize the From line?
+* Q6.0.6::    How do I get my MUA to filter mail for me?
+* Q6.0.7::    Remote mail reading with an MUA.
+* Q6.0.8::    An MUA gets an error incorporating new mail.
+* Q6.0.9::    Why isn't `movemail' working?
+* Q6.0.10::   How do I make my MUA display graphical smilies?
+* Q6.0.11::   How can I get those oh-so-neat X-Face lines?
+
+6.1: Reading Mail with VM
+* Q6.1.1::    How do I set up VM to retrieve mail from a remote site using POP?
+* Q6.1.2::    How can I get VM to automatically check for new mail?
+* Q6.1.3::    I have various addresses at which I receive mail.  How can I tell VM to ignore them when doing a "reply-all"?
+* Q6.1.4::    Is there a mailing list or FAQ for VM?
+* Q6.1.5::    How do I make VM stay in a single frame?
+* Q6.1.6::    Customization of VM not covered in the manual, or here.
+
+6.2: Reading Netnews and Mail with Gnus
+* Q6.2.1::    GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus, Quassia Gnus, argh!
+* Q6.2.2::    How do I make Gnus stay within a single frame?
+
+6.3: FTP Access
+* Q6.3.1::    Can I edit files on other hosts?
+* Q6.3.2::    What is EFS?
+
+6.4: Web Browsing with W3
+* Q6.4.1::    What is W3?
+* Q6.4.2::    How do I run W3 from behind a firewall?
+* Q6.4.3::    Is it true that W3 supports style sheets and tables?
+
+6.0: General Mail and News
+==========================
+
+\1f
+File: xemacs-faq.info,  Node: Q6.0.1,  Next: Q6.0.2,  Prev: Internet,  Up: Internet
+
+Q6.0.1: What are the various packages for reading mail?
+-------------------------------------------------------
+
+#### Write me.
+
+\1f
+File: xemacs-faq.info,  Node: Q6.0.2,  Next: Q6.0.3,  Prev: Q6.0.1,  Up: Internet
+
+Q6.0.2: How can I send mail?
+----------------------------
+
+Under Unix and Mac OS X, the `sendmail' package is normally used for
+this.  #### Write me.
+
+   Under Windows, you need to use `smtpmail', which communicates
+directly with the mail server, as there is no `sendmail' program
+running.  To get it working, use code like the following in your
+`init.el' file:
+
+       ;; Get mail working under Windows.
+       (setq message-send-mail-function 'smtpmail-send-it) ; for message/Gnus
+       (setq send-mail-function 'smtpmail-send-it) ; for C-x m, etc.
+       ;; the following ensures that mail problems can be debugged: it logs a trace
+       ;; of the SMTP conversation to *trace of SMTP session to <somewhere>*.
+       (setq smtpmail-debug-info t)
+       ;; Substitute your info here.
+       ;(setq user-mail-address "ben@xemacs.org")
+       ;(setq user-full-name "Ben Wing")
+       ;(setq smtpmail-default-smtp-server "smtp.myserver.myisp.com")
+       ;; The following two aren't completely necessary but may help.
+       ;(setq smtpmail-local-domain "666.com")
+       ;(setq smtpmail-sendto-domain "666.com")
+       ;; If your SMTP server requires a username/password to authenticate, as
+       ;; many do nowadays, set them like this:
+       ;(setq smtpmail-auth-credentials  ; or use ~/.authinfo
+       ;       '(("smtp.myserver.myisp.com" 25 "USER@SOMEWHERE" "PASSWORD")))
+
+       ;; Other possibilities for getting smtpmail to work:
+       ;;
+       ;;  If for some reason you need to authenticate using the STARTTLS protocol
+       ;;   (don't look into this unless you know what it is), use
+       ;;  (setq smtpmail-starttls-credentials
+       ;;      '(("YOUR SMTP HOST" 25 "~/.my_smtp_tls.key" "~/.my_smtp_tls.cert")))
+       ;;  Requires external program
+       ;;    ftp://ftp.opaopa.org/pub/elisp/starttls-*.tar.gz.
+       ;;  See http://www.ietf.org/rfc/rfc2246.txt,
+       ;;      http://www.ietf.org/rfc/rfc2487.txt
+
+   The lines you need to care about are those that set
+`user-mail-address', `user-full-name', `smtpmail-default-smtp-server',
+and `smtpmail-auth-credentials'.  You need to set these with,
+respectively, your email address, your full name, the SMTP server you
+use for outgoing mail, and the username and password you need to log in
+to your SMTP server. (If for some reason your SMTP server doesn't
+require logging in to send mail, don't uncomment this last line.)
+
+   The other settings may be useful in specific cases, but you should
+know what you're doing before enabling them.
+
+\1f
+File: xemacs-faq.info,  Node: Q6.0.3,  Next: Q6.0.4,  Prev: Q6.0.2,  Up: Internet
+
+Q6.0.3: How do I get my outgoing mail archived?
+-----------------------------------------------
+
+     (setq mail-archive-file-name "~/outbox")
+
+\1f
+File: xemacs-faq.info,  Node: Q6.0.4,  Next: Q6.0.5,  Prev: Q6.0.3,  Up: Internet
+
+Q6.0.4: How can I read and/or compose MIME messages?
+----------------------------------------------------
+
+VM, MH-E and GNUS support MIME natively.  Other MUAs may or may not
+have MIME support; refer to their documentation and other resources,
+such as web pages and mailing lists.  Packages like SEMI/WEMI may be
+useful in connection with MUAs like mew and Wanderlust.
+
+\1f
+File: xemacs-faq.info,  Node: Q6.0.5,  Next: Q6.0.6,  Prev: Q6.0.4,  Up: Internet
+
+Q6.0.5: How do I customize the From line?
+-----------------------------------------
+
+How do I change the `From:' line?  I have set gnus-user-from-line to
+     Gail Gurman <gail.gurman@sybase.com>
+   , but XEmacs Gnus doesn't use it. [This should apply to all MUA's.
+-ed] Instead it uses
+     Gail Mara Gurman <gailg@deall>
+   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@ifi.uio.no> writes:
+
+     Set `user-mail-address' to `gail.gurman@sybase.com' or
+     `mail-host-address' to `sybase.com'.
+
+\1f
+File: xemacs-faq.info,  Node: Q6.0.6,  Next: Q6.0.7,  Prev: Q6.0.5,  Up: Internet
+
+Q6.0.6: How do I get my MUA to filter mail for me?
+--------------------------------------------------
+
+One possibility is to use procmail to split your mail before it gets to
+the MUA.  I prefer this personally, since there are many strange and
+wonderful things one can do with procmail.  Procmail may be found at
+`http://www.procmail.org/'.
+
+   Also see the Mail Filtering FAQ at:
+`http://www.faqs.org/faqs/mail/filtering-faq/'.
+
+\1f
+File: xemacs-faq.info,  Node: Q6.0.7,  Next: Q6.0.8,  Prev: Q6.0.6,  Up: Internet
+
+Q6.0.7: Remote mail reading with an MUA.
+----------------------------------------
+
+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
+home which is far from honking...  I'd like to be able to read mail at
+home without storing it here and I'd like to use xemacs and the MUA at
+home...  Is there a recommended setup?
+
+   Joseph J. Nuspl Jr. <nuspl@nvwls.cc.purdue.edu> writes:
+
+     There are several ways to do this.
+
+       1. Set your display to your home machine and run dxpc or one of
+          the other X compressors.
+
+       2. NFS mount your desktop machine on your home machine and
+          modify your pop command on your home machine to rsh to your
+          desktop machine and actually do the pop get's.
+
+       3. Run a POP server on your desktop machine as well and do a
+          sort of two tiered POP get.
+
+   William Perry <wmperry@monolith.spry.com> adds:
+
+     Or you could run a pop script periodically on your desktop
+     machine, and just use ange-ftp or NFS to get to your mailbox.  I
+     used to do this all the time back at IU.
+
+\1f
+File: xemacs-faq.info,  Node: Q6.0.8,  Next: Q6.0.9,  Prev: Q6.0.7,  Up: Internet
+
+Q6.0.8: An MUA gets an error incorporating new mail.
+----------------------------------------------------
+
+rmail and VM, and probably other MUA's as well, get new mail from your
+mailbox (called `/var/mail/$USER' or `/var/spool/mail/$USER' or
+something similar) using a program called `movemail'.  This program
+interlocks with `/bin/mail' using the protocol defined by `/bin/mail'.
+
+   There are various different protocols in general use, which you need
+to specify using the `--mail-locking' option (`--with-mail-locking' in
+21.5 or later) to `configure':
+
+`lockf'
+     POSIX file locking with `lockf()'
+
+`flock'
+     BSD file locking with `flock()'
+
+`dot'
+     To manipulate mail file `foo', first create file `foo.lock'
+
+`locking'
+     Use `locking()', Microsoft's renamed `flock()'
+
+`mmdf'
+     Use `lk_open()' and `lk_close()' as defined by the Multi-channel
+     Memo Distribution Facility
+
+`pop'
+     Retrieve mail using POP (the Post Office Protocol).  This is the
+     default for Cygwin/MinGW.
+
+   *IF YOU DON'T USE THE FORM OF INTERLOCKING THAT IS NORMAL ON YOUR
+SYSTEM, YOU CAN LOSE MAIL!*
+
+   Usually the value is correctly determined automatically: `configure'
+tries to detect the method in use, and defaults exist on systems for
+which this doesn't work.
+
+   However, if you run into problems incorporating new mail, it may be
+because an incorrect method is being used.
+
+   If your system uses the lock file protocol, and permissions are set
+so that ordinary users cannot write lock files in the mail spool
+directory, you may need to make `movemail' setgid to a suitable group
+such as `mail'.  You can use these commands (as root):
+
+     chgrp mail movemail
+     chmod 2755 movemail
+
+   If you are using the `pop' locking method, `movemail' must be setuid
+root.
+
+   Installation normally copies movemail from the build directory to an
+installation directory which is usually under `/usr/local/lib'.  The
+installed copy of `movemail' is usually in the directory
+`/usr/local/lib/xemacs-VERSION/TARGET' (for example,
+`/usr/local/lib/xemacs-21.4.15/i686-pc-cygwin').  You must change the
+group and mode of the installed copy; changing the group and mode of
+the build directory copy is ineffective.
+
+\1f
+File: xemacs-faq.info,  Node: Q6.0.9,  Next: Q6.0.10,  Prev: Q6.0.8,  Up: Internet
+
+Q6.0.9: Why isn't `movemail' working?
+-------------------------------------
+
+*Note Q6.0.8::.
+
+   Note also that older versions of Mozilla came with a `movemail'
+program that is *not* compatible with XEmacs.  Do not use it.  Always
+use the `movemail' installed with your XEmacs.  Failure to do so can
+result in lost mail.
+
+\1f
+File: xemacs-faq.info,  Node: Q6.0.10,  Next: Q6.0.11,  Prev: Q6.0.9,  Up: Internet
+
+Q6.0.10: How do I make my MUA display graphical smilies?
+--------------------------------------------------------
+
+For mh-e use the following:
+
+     (add-hook 'mh-show-mode-hook '(lambda ()
+                                     (smiley-region (point-min)
+                                                    (point-max))))
+
+   WJCarpenter <bill@carpenter.ORG> writes: For VM use the following:
+            (autoload 'smiley-region "smiley" nil t)
+            (add-hook 'vm-select-message-hook
+                      '(lambda ()
+                         (smiley-region (point-min)
+                                        (point-max))))
+
+   For tm use the following:
+     (autoload 'smiley-buffer "smiley" nil t)
+     (add-hook 'mime-viewer/plain-text-preview-hook 'smiley-buffer)
+
+\1f
+File: xemacs-faq.info,  Node: Q6.0.11,  Next: Q6.1.1,  Prev: Q6.0.10,  Up: Internet
+
+Q6.0.11: 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
+`http://ftp.cs.indiana.edu/pub/faces/'.
+
+   Then the steps are
+
+  1. Create 48x48x1 bitmap with your favorite tool
+
+  2. Convert to "icon" format using one of xbm2ikon, pbmtoicon, etc.,
+     and then compile the face.
+
+  3.      cat file.xbm | xbm2ikon |compface > file.face
+
+  4. Then be sure to quote things that are necessary for emacs strings:
+
+          cat ./file.face | sed 's/\\/\\\\/g'
+          | sed 's/\"/\\\"/g' > ./file.face.quoted
+
+  5. Then set up emacs to include the file as a mail header - there
+     were a couple of suggestions here--either something like:
+
+          (setq  mail-default-headers
+                 "X-Face:  <Ugly looking text string here>")
+
+     Or, alternatively, as:
+
+          (defun mail-insert-x-face ()
+            (save-excursion
+              (goto-char (point-min))
+              (search-forward mail-header-separator)
+              (beginning-of-line)
+              (insert "X-Face:")
+              (insert-file-contents "~/.face")))
+
+          (add-hook 'mail-setup-hook 'mail-insert-x-face)
+
+   However, 2 things might be wrong:
+
+   Some versions of pbmtoicon produces some header lines that is not
+expected by the version of compface that I grabbed. So I found I had to
+include a `tail +3' in the pipeline like this:
+
+     cat file.xbm | xbm2ikon | tail +3 |compface > file.face
+
+   Some people have also found that if one uses the `(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
+xbm2face (included in the compface distribution at XEmacs.org) to do the
+conversion.
+
+   Contributors for this item:
+
+   Paul Emsley, Ricardo Marek, Amir J. Katz, Glen McCort, Heinz Uphoff,
+Peter Arius, Paul Harrison, and Vegard Vesterheim
+
+6.1: Reading Mail with VM
+=========================
+
+\1f
+File: xemacs-faq.info,  Node: Q6.1.1,  Next: Q6.1.2,  Prev: Q6.0.11,  Up: Internet
+
+Q6.1.1: How do I set up VM to retrieve mail from a remote site using POP?
+-------------------------------------------------------------------------
+
+Use `vm-spool-files', like this for example:
+
+     (setq vm-spool-files '("/var/spool/mail/wing"
+                            "netcom23.netcom.com:110:pass:wing:MYPASS"))
+
+   Of course substitute your actual password for MYPASS.
+
+\1f
+File: xemacs-faq.info,  Node: Q6.1.2,  Next: Q6.1.3,  Prev: Q6.1.1,  Up: Internet
+
+Q6.1.2: How can I get VM to automatically check for new mail?
+-------------------------------------------------------------
+
+John Turner <turner@lanl.gov> writes:
+
+     Use the following:
+
+          (setq vm-auto-get-new-mail 60)
+
+\1f
+File: xemacs-faq.info,  Node: Q6.1.3,  Next: Q6.1.4,  Prev: Q6.1.2,  Up: Internet
+
+Q6.1.3: I have various addresses at which I receive mail.  How can I tell VM to ignore them when doing a "reply-all"?
+---------------------------------------------------------------------------------------------------------------------
+
+Set `vm-reply-ignored-addresses' to a list, like
+
+     (setq vm-reply-ignored-addresses
+           '("wing@nuspl@nvwls.cc.purdue.edu,netcom[0-9]*.netcom.com"
+             "wing@netcom.com" "wing@xemacs.org"))
+
+   Note that each string is a regular expression.
+
+\1f
+File: xemacs-faq.info,  Node: Q6.1.4,  Next: Q6.1.5,  Prev: Q6.1.3,  Up: Internet
+
+Q6.1.4: Is there a mailing list or FAQ for VM?
+----------------------------------------------
+
+A FAQ for VM exists at `http://www.wonderworks.com/vm/FAQ.html'.
+
+   VM has its own newsgroups gnu.emacs.vm.info and gnu.emacs.vm.bug.
+
+\1f
+File: xemacs-faq.info,  Node: Q6.1.5,  Next: Q6.1.6,  Prev: Q6.1.4,  Up: Internet
+
+Q6.1.5: How do I make VM stay in a single frame?
+------------------------------------------------
+
+John.John S Cooper <Cooper@Eng.Sun.COM> writes:
+
+                                                  ; Don't use multiple frames
+          (setq vm-frame-per-composition nil)
+          (setq vm-frame-per-folder nil)
+          (setq vm-frame-per-edit nil)
+          (setq vm-frame-per-summary nil)
+
+\1f
+File: xemacs-faq.info,  Node: Q6.1.6,  Next: Q6.2.1,  Prev: Q6.1.5,  Up: Internet
+
+Q6.1.6: Customization of VM not covered in the manual, or here.
+---------------------------------------------------------------
+
+giacomo boffi <boffi@hp735.stru.polimi.it> writes:
+
+     The meta-answer is to look into the file `vm-vars.el', in the vm
+     directory of the lisp library.
+
+     `vm-vars.el' contains, initializes and carefully describes, with
+     examples of usage, the plethora of user options that _fully_
+     control VM's behavior.
+
+     Enter vm-vars, `forward-search' for toolbar, find the variables
+     that control the toolbar placement, appearance, existence, copy to
+     your `init.el' or `.vm' and modify according to the detailed
+     instructions.
+
+     The above also applies to all the various features of VM: search
+     for some keywords, maybe the first you conjure isn't appropriate,
+     find the appropriate variables, copy and experiment.
+
+6.2: Reading Netnews and Mail with Gnus
+=======================================
+
+\1f
+File: xemacs-faq.info,  Node: Q6.2.1,  Next: Q6.2.2,  Prev: Q6.1.6,  Up: Internet
+
+Q6.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 _must_ enter the muddy waters of Gnus, visit the
+excellent FAQ, maintained by Justin Sheehy, at:
+
+     `http://my.gnus.org/FAQ/'
+
+   See also Gnus home page
+     `http://www.gnus.org/'
+
+\1f
+File: xemacs-faq.info,  Node: Q6.2.2,  Next: Q6.3.1,  Prev: Q6.2.1,  Up: Internet
+
+Q6.2.2: 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
+on the seemly icon, use the following code:
+
+     (defun toolbar-news ()
+       (gnus))
+
+   It will redefine the callback function of the icon to just call
+`gnus', without all the fancy frame stuff.
+
+6.3: FTP Access
+===============
+
+\1f
+File: xemacs-faq.info,  Node: Q6.3.1,  Next: Q6.3.2,  Prev: Q6.2.2,  Up: Internet
+
+Q6.3.1: Can I edit files on other hosts?
+----------------------------------------
+
+Yes.  Of course XEmacs can use any network file system (such as NFS or
+Windows file sharing) you have available, and includes some
+optimizations and safety features appropriate to those environments.
+
+   It is also possible to transparently edit files via FTP, ssh, or
+rsh.  That is, XEmacs makes a local copy using the transport in the
+background, and automatically refreshes the remote original from that
+copy when you save it.  XEmacs also is capable of doing file system
+manipulations like creating and removing directories and files.  The
+FTP interface is provided by the standard `efs' package *Note EFS:
+(efs)Top.  The ssh/rsh interface is provided by the optional `tramp'
+package *Note TRAMP: (tramp)Top.
+
+\1f
+File: xemacs-faq.info,  Node: Q6.3.2,  Next: Q6.4.1,  Prev: Q6.3.1,  Up: Internet
+
+Q6.3.2: What is EFS?
+--------------------
+
+#### Write me.
+
+6.4: Web Browsing with W3
+=========================
+
+\1f
+File: xemacs-faq.info,  Node: Q6.4.1,  Next: Q6.4.2,  Prev: Q6.3.2,  Up: Internet
+
+Q6.4.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
+`http://www.cs.indiana.edu/elisp/w3/docs.html'.
+
+\1f
+File: xemacs-faq.info,  Node: Q6.4.2,  Next: Q6.4.3,  Prev: Q6.4.1,  Up: Internet
+
+Q6.4.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".
+
+\1f
+File: xemacs-faq.info,  Node: Q6.4.3,  Prev: Q6.4.2,  Up: Internet
+
+Q6.4.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.
+
+\1f
+File: xemacs-faq.info,  Node: Advanced,  Next: Other Packages,  Prev: Internet,  Up: Top
+
+7 Advanced Customization Using XEmacs Lisp
+******************************************
+
+This is part 7 of the XEmacs Frequently Asked Questions list.  This
+section is devoted to advanced customization using XEmacs Lisp.
+
+* Menu:
+
+7.0: Emacs Lisp and `init.el'
+* Q7.0.1::    What version of Emacs am I running?
+* Q7.0.2::    How can I evaluate Emacs-Lisp expressions?
+* Q7.0.3::    `(setq tab-width 6)' behaves oddly.
+* Q7.0.4::    How can I add directories to the `load-path'?
+* Q7.0.5::    How to check if a lisp function is defined?
+* Q7.0.6::    Can I force the output of `(face-list)' to a buffer?
+
+7.1: Emacs Lisp Programming Techniques
+* Q7.1.1::    What is the difference in key sequences between XEmacs and GNU Emacs?
+* Q7.1.2::    Can I generate "fake" keyboard events?
+* Q7.1.3::    Could you explain `read-kbd-macro' in more detail?
+* Q7.1.4::    What is the performance hit of `let'?
+* Q7.1.5::    What is the recommended use of `setq'?
+* Q7.1.6::    What is the typical misuse of `setq'?
+* Q7.1.7::    I like the `do' form of cl, does it slow things down?
+* Q7.1.8::    I like recursion, does it slow things down?
+* Q7.1.9::    How do I put a glyph as annotation in a buffer?
+* Q7.1.10::   `map-extents' won't traverse all of my extents!
+* Q7.1.11::   My elisp program is horribly slow.  Is there an easy way to find out where it spends time?
+
+7.2: Mathematics
+* Q7.2.1::    What are bignums, ratios, and bigfloats in Lisp?
+* Q7.2.2::    XEmacs segfaults when I use very big numbers!
+* Q7.2.3::    Bignums are really slow!
+* Q7.2.4::    Equal bignums don't compare as equal!  What gives?
+
+7.0: Emacs Lisp and `init.el'
+=============================
+
+\1f
+File: xemacs-faq.info,  Node: Q7.0.1,  Next: Q7.0.2,  Prev: Advanced,  Up: Advanced
+
+Q7.0.1: What version of Emacs am I running?
+-------------------------------------------
+
+How can `init.el' determine which of the family of Emacsen I am using?
+
+   To determine if you are currently running GNU Emacs 18, GNU Emacs 19,
+XEmacs 19, XEmacs 20, or Epoch, and use appropriate code, check out the
+example given in `etc/sample.init.el' (`etc/sample.emacs' in XEmacs
+versions prior to 21.4).  There are other nifty things in there as well!
+
+   For all new code, all you really need to do is:
+
+     (defvar running-xemacs (string-match "XEmacs\\|Lucid" emacs-version))
+
+\1f
+File: xemacs-faq.info,  Node: Q7.0.2,  Next: Q7.0.3,  Prev: Q7.0.1,  Up: Advanced
+
+Q7.0.2: How can I evaluate Emacs-Lisp expressions?
+--------------------------------------------------
+
+I know I can evaluate Elisp expressions from `*scratch*' buffer with
+`C-j' after the expression.  How do I do it from another buffer?
+
+   Press `M-:' (the default binding of `eval-expression'), and enter
+the expression to the minibuffer.
+
+\1f
+File: xemacs-faq.info,  Node: Q7.0.3,  Next: Q7.0.4,  Prev: Q7.0.2,  Up: Advanced
+
+Q7.0.3: `(setq tab-width 6)' behaves oddly.
+-------------------------------------------
+
+If you put `(setq tab-width 6)' in your `init.el' file it does not
+work!  Is there a reason for this?  If you do it at the EVAL prompt it
+works fine!! How strange.
+
+   Use `setq-default' instead, since `tab-width' is all-buffer-local.
+
+\1f
+File: xemacs-faq.info,  Node: Q7.0.4,  Next: Q7.0.5,  Prev: Q7.0.3,  Up: Advanced
+
+Q7.0.4: How can I add directories to the `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:
+
+     ;;; Add things at the beginning of the load-path, do not add
+     ;;; duplicate directories:
+     (pushnew "bar" load-path :test 'equal)
+
+     (pushnew "foo" load-path :test 'equal)
+
+     ;;; Add things at the end, unconditionally
+     (setq load-path (nconc load-path '("foo" "bar")))
+
+   keith (k.p.) hanlan <keithh@nortel.ca> writes:
+
+     To add directories using Unix shell metacharacters use
+     `expand-file-name' like this:
+
+          (push (expand-file-name "~keithh/.emacsdir") load-path)
+
+\1f
+File: xemacs-faq.info,  Node: Q7.0.5,  Next: Q7.0.6,  Prev: Q7.0.4,  Up: Advanced
+
+Q7.0.5: How to check if a lisp function is defined?
+---------------------------------------------------
+
+Use the following elisp:
+
+     (fboundp 'foo)
+
+   It's almost always a mistake to test `emacs-version' or any similar
+variables.
+
+   Instead, use feature-tests, such as `featurep', `boundp', `fboundp',
+or even simple behavioral tests, eg.:
+
+     (defvar foo-old-losing-code-p
+       (condition-case nil (progn (losing-code t) nil)
+         (wrong-number-of-arguments t)))
+
+   There is an incredible amount of broken code out there which could
+work much better more often in more places if it did the above instead
+of trying to divine its environment from the value of one variable.
+
+\1f
+File: xemacs-faq.info,  Node: Q7.0.6,  Next: Q7.1.1,  Prev: Q7.0.5,  Up: Advanced
+
+Q7.0.6: Can I force the output of `(face-list)' to a buffer?
+------------------------------------------------------------
+
+It would be good having it in a buffer, as the output of `(face-list)'
+is too wide to fit to a minibuffer.
+
+   Evaluate the expression in the `*scratch*' buffer with point after
+the rightmost paren and typing `C-j'.
+
+   If the minibuffer smallness is the only problem you encounter, you
+can simply press `C-h l' to get the former minibuffer contents in a
+buffer.
+
+7.1: Emacs Lisp Programming Techniques
+======================================
+
+\1f
+File: xemacs-faq.info,  Node: Q7.1.1,  Next: Q7.1.2,  Prev: Q7.0.6,  Up: Advanced
+
+Q7.1.1: What is the difference in key sequences between XEmacs and GNU Emacs?
+-----------------------------------------------------------------------------
+
+Erik Naggum <clerik@naggum.no> writes;
+
+     Emacs has a legacy of keyboards that produced characters with
+     modifier bits, and therefore map a variety of input systems into
+     this scheme even today.  XEmacs is instead optimized for X events.
+     This causes an incompatibility in the way key sequences are
+     specified, but both Emacs and XEmacs will accept a key sequence as
+     a vector of lists of modifiers that ends with a key, e.g., to bind
+     `M-C-a', you would say `[(meta control a)]' in both Emacsen.
+     XEmacs has an abbreviated form for a single key, just (meta
+     control a).  Emacs has an abbreviated form for the Control and the
+     Meta modifiers to string-characters (the ASCII characters), as in
+     `\M-\C-a'.  XEmacs users need to be aware that the abbreviated
+     form works only for one-character key sequences, while Emacs users
+     need to be aware that the string-character is rather limited.
+     Specifically, the string-character can accommodate only 256
+     different values, 128 of which have the Meta modifier and 128 of
+     which have not.  In each of these blocks, only 32 characters have
+     the Control modifier.  Whereas `[(meta control A)]' differs from
+     `[(meta control a)]' because the case differs, `\M-\C-a' and
+     `\M-\C-A' do not.  Programmers are advised to use the full common
+     form, both because it is more readable and less error-prone, and
+     because it is supported by both Emacsen.
+
+   Another (even safer) way to be sure of the key-sequences is to use
+the `read-kbd-macro' function, which takes a string like `C-c <up>',
+and converts it to the internal key representation of the Emacs you
+use.  The function is available both on XEmacs and GNU Emacs.
+
+\1f
+File: xemacs-faq.info,  Node: Q7.1.2,  Next: Q7.1.3,  Prev: Q7.1.1,  Up: Advanced
+
+Q7.1.2: Can I generate "fake" keyboard events?
+----------------------------------------------
+
+I wonder if there is an interactive function that can generate "fake"
+keyboard events.  This way, I could simply map them inside XEmacs.
+
+   This seems to work:
+
+     (defun cg--generate-char-event (ch)
+       "Generate an event, as if ch has been typed"
+       (dispatch-event (character-to-event ch)))
+
+     ;;  Backspace and Delete stuff
+     (global-set-key [backspace]
+       (lambda () (interactive) (cg--generate-char-event 127)))
+     (global-set-key [unknown_keysym_0x4]
+       (lambda () (interactive) (cg--generate-char-event 4)))
+
+\1f
+File: xemacs-faq.info,  Node: Q7.1.3,  Next: Q7.1.4,  Prev: Q7.1.2,  Up: Advanced
+
+Q7.1.3: Could you explain `read-kbd-macro' in more detail?
+----------------------------------------------------------
+
+The `read-kbd-macro' function returns the internal Emacs representation
+of a human-readable string (which is its argument).  Thus:
+
+     (read-kbd-macro "C-c C-a")
+     => [(control ?c) (control ?a)]
+
+     (read-kbd-macro "C-c C-. <up>")
+     => [(control ?c) (control ?.) up]
+
+   In GNU Emacs the same forms will be evaluated to what GNU Emacs
+understands internally--the sequences `"\C-x\C-c"' and `[3 67108910
+up]', respectively.
+
+   The exact "human-readable" syntax is defined in the docstring of
+`edmacro-mode'.  I'll repeat it here, for completeness.
+
+     Format of keyboard macros during editing:
+
+     Text is divided into "words" separated by whitespace.  Except for
+     the words described below, the characters of each word go directly
+     as characters of the macro.  The whitespace that separates words is
+     ignored.  Whitespace in the macro must be written explicitly, as in
+     `foo <SPC> bar <RET>'.
+
+        * The special words `RET', `SPC', `TAB', `DEL', `LFD', `ESC',
+          and `NUL' represent special control characters.  The words
+          must be written in uppercase.
+
+        * A word in angle brackets, e.g., `<return>', `<down>', or
+          `<f1>', represents a function key.  (Note that in the standard
+          configuration, the function key `<return>' and the control key
+          <RET> are synonymous.)  You can use angle brackets on the
+          words <RET>, <SPC>, etc., but they are not required there.
+
+        * Keys can be written by their ASCII code, using a backslash
+          followed by up to six octal digits.  This is the only way to
+          represent keys with codes above \377.
+
+        * One or more prefixes `M-' (meta), `C-' (control), `S-'
+          (shift), `A-' (alt), `H-' (hyper), and `s-' (super) may
+          precede a character or key notation.  For function keys, the
+          prefixes may go inside or outside of the brackets: `C-<down>'
+          == `<C-down>'.  The prefixes may be written in any order:
+          `M-C-x' == `C-M-x'.
+
+          Prefixes are not allowed on multi-key words, e.g., `C-abc',
+          except that the Meta prefix is allowed on a sequence of
+          digits and optional minus sign: `M--123' == `M-- M-1 M-2 M-3'.
+
+        * The `^' notation for control characters also works: `^M' ==
+          `C-m'.
+
+        * Double angle brackets enclose command names: `<<next-line>>'
+          is shorthand for `M-x next-line <RET>'.
+
+        * Finally, `REM' or `;;' causes the rest of the line to be
+          ignored as a comment.
+
+     Any word may be prefixed by a multiplier in the form of a decimal
+     number and `*': `3*<right>' == `<right> <right> <right>', and
+     `10*foo' == `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 above notations: `; ; ;' is a keyboard macro with three
+     semicolons, but `;;;' is a comment.  Likewise, `\ 1 2 3' is four
+     keys but `\123' is a single key written in octal, and `< right >'
+     is seven keys but `<right>' is a single function key.  When in
+     doubt, use whitespace.
+
+\1f
+File: xemacs-faq.info,  Node: Q7.1.4,  Next: Q7.1.5,  Prev: Q7.1.3,  Up: Advanced
+
+Q7.1.4: What is the performance hit of `let'?
+---------------------------------------------
+
+In most cases, not noticeable.  Besides, there's no avoiding `let'--you
+have to bind your local variables, after all.  Some pose a question
+whether to nest `let's, or use one `let' per function.  I think because
+of clarity and maintenance (and possible future implementation),
+`let'-s should be used (nested) in a way to provide the clearest code.
+
+\1f
+File: xemacs-faq.info,  Node: Q7.1.5,  Next: Q7.1.6,  Prev: Q7.1.4,  Up: Advanced
+
+Q7.1.5: What is the recommended use of `setq'?
+----------------------------------------------
+
+   * Global variables
+
+     You will typically `defvar' your global variable to a default
+     value, and use `setq' to set it later.
+
+     It is never a good practice to `setq' user variables (like
+     `case-fold-search', etc.), as it ignores the user's choice
+     unconditionally.  Note that `defvar' doesn't change the value of a
+     variable if it was bound previously.  If you wish to change a
+     user-variable temporarily, use `let':
+
+          (let ((case-fold-search nil))
+            ...                                   ; code with searches that must be case-sensitive
+            ...)
+
+     You will notice the user-variables by their docstrings beginning
+     with an asterisk (a convention).
+
+   * Local variables
+
+     Bind them with `let', which will unbind them (or restore their
+     previous value, if they were bound) after exiting from the `let'
+     form.  Change the value of local variables with `setq' or whatever
+     you like (e.g. `incf', `setf' and such).  The `let' form can even
+     return one of its local variables.
+
+     Typical usage:
+
+          ;; iterate through the elements of the list returned by
+          ;; `hairy-function-that-returns-list'
+          (let ((l (hairy-function-that-returns-list)))
+            (while l
+              ... do something with (car l) ...
+              (setq l (cdr l))))
+
+     Another typical usage includes building a value simply to work
+     with it.
+
+          ;; Build the mode keymap out of the key-translation-alist
+          (let ((inbox (file-truename (expand-file-name box)))
+                (i 0))
+            ... code dealing with inbox ...
+            inbox)
+
+     This piece of code uses the local variable `inbox', which becomes
+     unbound (or regains old value) after exiting the form.  The form
+     also returns the value of `inbox', which can be reused, for
+     instance:
+
+          (setq foo-processed-inbox
+                (let .....))
+
+\1f
+File: xemacs-faq.info,  Node: Q7.1.6,  Next: Q7.1.7,  Prev: Q7.1.5,  Up: Advanced
+
+Q7.1.6: What is the typical misuse of `setq'?
+---------------------------------------------
+
+A typical misuse is probably `setq'ing a variable that was meant to be
+local.  Such a variable will remain bound forever, never to be
+garbage-collected.  For example, the code doing:
+
+     (defun my-function (whatever)
+       (setq a nil)
+       ... build a large list ...
+       ... and exit ...)
+
+   does a bad thing, as `a' will keep consuming memory, never to be
+unbound.  The correct thing is to do it like this:
+
+     (defun my-function (whatever)
+       (let (a)                              ; default initialization is to nil
+         ... build a large list ...
+         ... and exit, unbinding `a' in the process  ...)
+
+   Not only is this prettier syntactically, but it makes it possible for
+Emacs to garbage-collect the objects which `a' used to reference.
+
+   Note that even global variables should not be `setq'ed without
+`defvar'ing them first, because the byte-compiler issues warnings.  The
+reason for the warning is the following:
+
+     (defun flurgoze nil)                    ; ok, global internal variable
+     ...
+
+     (setq flurghoze t)                      ; ops!  a typo, but semantically correct.
+                                             ; however, the byte-compiler warns.
+
+     While compiling toplevel forms:
+     ** assignment to free variable flurghoze
+
+\1f
+File: xemacs-faq.info,  Node: Q7.1.7,  Next: Q7.1.8,  Prev: Q7.1.6,  Up: Advanced
+
+Q7.1.7: I like the `do' form of cl, does it slow things down?
+-------------------------------------------------------------
+
+It shouldn't.  Here is what Dave Gillespie has to say about cl.el
+performance:
+
+     Many of the advanced features of this package, such as `defun*',
+     `loop', and `setf', are implemented as Lisp macros.  In
+     byte-compiled code, these complex notations will be expanded into
+     equivalent Lisp code which is simple and efficient.  For example,
+     the forms
+
+          (incf i n)
+          (push x (car p))
+
+     are expanded at compile-time to the Lisp forms
+
+          (setq i (+ i n))
+          (setcar p (cons x (car p)))
+
+     which are the most efficient ways of doing these respective
+     operations in Lisp.  Thus, there is no performance penalty for
+     using the more readable `incf' and `push' forms in your compiled
+     code.
+
+     _Interpreted_ code, on the other hand, must expand these macros
+     every time they are executed.  For this reason it is strongly
+     recommended that code making heavy use of macros be compiled.  (The
+     features labelled "Special Form" instead of "Function" in this
+     manual are macros.)  A loop using `incf' a hundred times will
+     execute considerably faster if compiled, and will also
+     garbage-collect less because the macro expansion will not have to
+     be generated, used, and thrown away a hundred times.
+
+     You can find out how a macro expands by using the `cl-prettyexpand'
+     function.
+
+\1f
+File: xemacs-faq.info,  Node: Q7.1.8,  Next: Q7.1.9,  Prev: Q7.1.7,  Up: Advanced
+
+Q7.1.8: I like recursion, does it slow things down?
+---------------------------------------------------
+
+Yes.  The Emacs byte-compiler cannot do much to optimize recursion.  But
+think well whether this is a real concern in Emacs.  Much of the Emacs
+slowness comes from internal mechanisms such as redisplay, or from the
+fact that it is an interpreter.
+
+   Please try not to make your code much uglier to gain a very small
+speed gain.  It's not usually worth it.
+
+\1f
+File: xemacs-faq.info,  Node: Q7.1.9,  Next: Q7.1.10,  Prev: Q7.1.8,  Up: Advanced
+
+Q7.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:
+
+     (make-annotation (make-glyph '([FORMAT :file FILE]
+                                    [string :data "fallback-text"]))
+                      (point-min)
+                      'text
+                      (current-buffer))
+
+   Replace `FORMAT' with an unquoted symbol representing the format of
+the image (e.g. `xpm', `xbm', `gif', `jpeg', etc.)  Instead of `FILE',
+use the image file name (e.g.
+`/usr/local/lib/xemacs-21.4/etc/recycle.xpm').
+
+   You can turn this to a function (that optionally prompts you for a
+file name), and inserts the glyph at `(point)' instead of `(point-min)'.
+
+\1f
+File: xemacs-faq.info,  Node: Q7.1.10,  Next: Q7.1.11,  Prev: Q7.1.9,  Up: Advanced
+
+Q7.1.10: `map-extents' won't traverse all of my extents!
+--------------------------------------------------------
+
+I tried to use `map-extents' to do an operation on all the extents in a
+region.  However, it seems to quit after processing a random number of
+extents.  Is it buggy?
+
+   No.  The documentation of `map-extents' states that it will iterate
+across the extents as long as FUNCTION returns `nil'.  Unexperienced
+programmers often forget to return `nil' explicitly, which results in
+buggy code.  For instance, the following code is supposed to delete all
+the extents in a buffer, and issue as many `fubar!' messages.
+
+     (map-extents (lambda (ext ignore)
+                    (delete-extent ext)
+                    (message "fubar!")))
+
+   Instead, it will delete only the first extent, and stop right there -
+because `message' will return a non-nil value.  The correct code is:
+
+     (map-extents (lambda (ext ignore)
+                    (delete-extent ext)
+                    (message "fubar!")
+                    nil))
+
+\1f
+File: xemacs-faq.info,  Node: Q7.1.11,  Next: Q7.2.1,  Prev: Q7.1.10,  Up: Advanced
+
+Q7.1.11: My elisp program is horribly slow.  Is there an easy way to find out where it spends time?
+---------------------------------------------------------------------------------------------------
+
+Hrvoje Niksic <hniksic@xemacs.org> writes:
+
+     Under XEmacs 20.4 and later you can use `M-x profile-key-sequence',
+     press a key (say <RET> in the Gnus Group buffer), and get the
+     results using `M-x profile-results'.  It should give you an idea of
+     where the time is being spent.
+
+7.2: Mathematics
+================
+
+\1f
+File: xemacs-faq.info,  Node: Q7.2.1,  Next: Q7.2.2,  Prev: Q7.1.11,  Up: Advanced
+
+Q7.2.1: What are bignums, ratios, and bigfloats in Lisp?
+--------------------------------------------------------
+
+Thanks to Jerry James <james@xemacs.org>, XEmacs 21.5.18 and later can
+use the capabilities of multiple-precision libraries that may be
+available for your platform.  The GNU Multiple Precision (GMP) and BSD
+Multiple Precision (MP) libraries are partially supported.  GMP gives
+you "bignums" (arbitrary precision integers), "ratios" (arbitrary
+precision fractions), and "bigfloats" (arbitrary precision floating
+point numbers).  GNU MP is better-supported by XEmacs at the time of
+writing (2004-04-06).  BSD MP support does not include ratios or
+bigfloats, and it throws errors that aren't understood.
+
+   In most cases, bignum support should be transparent to users and Lisp
+programmers.  A bignum-enabled XEmacs will automatically convert from
+fixnums to bignums and back in pure integer arithmetic, and for GNU MP,
+from floats to bigfloats.  (Bigfloats must be explicitly coerced to
+other types, even if they are exactly representable by less precise
+types.)  The Lisp reader and printer have been enhanced to handle
+bignums, as have the mathematical functions.  Rationals (fixnums,
+bignums, and ratios) are printed using the `%d', `%o', `%x', and `%u'
+format conversions.  The read syntax for ratios is `3/5'.
+
+   User-visible changes in behavior include (in probable order of
+annoyance)
+
+   * Arithmetic can cause a segfault, depending on your MP library
+     *Note XEmacs segfaults when I use very big numbers!: Q7.2.2.
+
+   * Terminology is not Common-Lisp-conforming.  For example, "integer"
+     for Emacs Lisp means what Common Lisp calls "fixnum".  This issue
+     is being investigated, but the use of "integer" for fixnum is
+     pervasive and may cause backward-compatibility and
+     GNU-Emacs-compatibility problems.
+
+   * Many operations that used to cause a range error now succeed, with
+     intermediate results and return values coerced to bignums as
+     needed.
+
+   * An atom with ratio read syntax now returns a number, not a symbol.
+
+   * The `%u' format conversion will now give an error if its argument
+     is negative.  (Without MP, it prints a number which Lisp can't
+     read.)
+
+   _Surgeon General's Warning_: The automatic conversions cannot be
+disabled at runtime.  New functions have been added which produce
+ratios, so there should be few surprises with type conflicts, but they
+can't be ruled out.  "Arbitrary" precision means precisely what it
+says.  If you work with extremely large numbers, your machine may
+arbitrarily decide to hand you an unpleasant surprise rather than a
+bignum *Note XEmacs segfaults when I use very big numbers!: Q7.2.2.
+
+   To configure with GNU MP, add `--use-number-lib=gmp'
+(`--enable-bignum=gmp' in 21.5 or later) to your invocation of
+`configure'.  For BSD MP, use `--use-number-lib=mp'
+(`--enable-bignum=mp' for 21.5).
+
+   If you would like to help with bignum support, especially on BSD MP,
+please subscribe to the XEmacs Beta mailing list
+(http://www.xemacs.org/Lists/#xemacs-beta), and book up on
+`number-gmp.h' and `number-mp.h'.  Jerry has promised to write
+internals documentation eventually, but if your skills run more to
+analysis and documentation than to writing new code, feel free to fill
+in the gap!
+
diff --git a/info/xemacs-faq.info-2 b/info/xemacs-faq.info-2
new file mode 100644 (file)
index 0000000..78554cb
--- /dev/null
@@ -0,0 +1,814 @@
+This is ../info/xemacs-faq.info, produced by makeinfo version 4.8 from
+xemacs-faq.texi.
+
+INFO-DIR-SECTION XEmacs Editor
+START-INFO-DIR-ENTRY
+* FAQ: (xemacs-faq).            XEmacs FAQ.
+END-INFO-DIR-ENTRY
+
+\1f
+File: xemacs-faq.info,  Node: Q7.2.2,  Next: Q7.2.3,  Prev: Q7.2.1,  Up: Advanced
+
+Q7.2.2: XEmacs segfaults when I use very big numbers!
+-----------------------------------------------------
+
+GMP by default allocates temporaries on the stack.  If you run out of
+stack space, you're dead; there is no way that we know of to reliably
+detect this condition, because `alloca' is typically implemented to be
+_fast_ rather than robust.  If you just need a little more oomph, use a
+bigger stack (_e.g._, the `ulimit -s' command in bash(1)).  If you want
+robustness at the cost of speed, configure GMP with `--disable-alloca'
+and rebuild the GMP library.
+
+   We do not know whether BSD MP uses `alloca' or not.  Please send any
+information you have as a bug report (`M-x report-xemacs-bug <RET>'),
+which will give us platform information.  (We do know that BSD MP
+implementations vary across vendors, but how much, we do not know yet.)
+
+\1f
+File: xemacs-faq.info,  Node: Q7.2.3,  Next: Q7.2.4,  Prev: Q7.2.2,  Up: Advanced
+
+Q7.2.3: Bignums are really slow!
+--------------------------------
+
+Many Linux distributions compile all their packages for the i386, and
+this is costly.  An optimized version can give you two or three orders
+of magnitude better performance for a Pentium III or IV.  (Yes, really.
+See `http://www.swox.com/gmp/gmp-speed.html'.)
+
+\1f
+File: xemacs-faq.info,  Node: Q7.2.4,  Prev: Q7.2.3,  Up: Advanced
+
+Q7.2.4: Equal bignums don't compare as equal!  What gives?
+----------------------------------------------------------
+
+Ah, Grasshopper, I see you are using `(eq x y)'.  The Bodhisattva CLTL2
+warned of the illusion that equal numbers would be `eq'!  Meditate on
+the deeper truths of `eql', in which numbers of the same type which
+have equal values compare equal, and `=', which does any necessary type
+coercions before comparing for equality.
+
+   Yeah, yeah, it has always worked for integer types, because fixnums
+and characters have an immediate representation.  Sorry about that;
+arbitrary precision obviously requires consing new objects because the
+objects are "large" and of variable size, and the definition of `eq'
+does not permit different objects to compare as equal.
+
+\1f
+File: xemacs-faq.info,  Node: Other Packages,  Next: Current Events,  Prev: Advanced,  Up: Top
+
+8 Other External Packages
+*************************
+
+This is part 8 of the XEmacs Frequently Asked Questions list.  This
+section is devoted to miscellaneous external packages not covered
+elsewhere in XEmacs.
+
+* Menu:
+
+8.0: TeX
+* Q8.0.1::    Is there something better than LaTeX mode?
+* Q8.0.2::    What is AUCTeX?  Where do you get it?
+* Q8.0.3::    Problems installing AUCTeX.
+* Q8.0.4::    How do I turn off current chapter from AUCTeX modeline?
+
+8.1: Other Unbundled Packages
+* Q8.1.1::    Is there a reason for an Emacs package not to be included in XEmacs?
+* Q8.1.2::    Are there any Emacs Lisp Spreadsheets?
+* Q8.1.3::    Is there a MatLab mode?
+
+8.2: Environments Built Around XEmacs
+* Q8.2.1::    What are SPARCworks, EOS, and WorkShop?
+* Q8.2.2::    How do I start the Sun Workshop support in XEmacs 21?
+* Q8.2.3::    What is/was Energize?
+* Q8.2.4::    What is Infodock?
+
+8.0: TeX
+========
+
+\1f
+File: xemacs-faq.info,  Node: Q8.0.1,  Next: Q8.0.2,  Prev: Other Packages,  Up: Other Packages
+
+Q8.0.1: Is there something better than LaTeX mode?
+--------------------------------------------------
+
+David Kastrup <dak@fsnif.neuroinformatik.ruhr-uni-bochum.de> writes:
+
+     The standard TeX modes leave much to be desired, and are somewhat
+     leniently maintained.  Serious TeX users use AUCTeX (*note What is
+     AUCTeX? Where do you get it?: Q8.0.2.).
+
+\1f
+File: xemacs-faq.info,  Node: Q8.0.2,  Next: Q8.0.3,  Prev: Q8.0.1,  Up: Other Packages
+
+Q8.0.2: What is AUCTeX?  Where do you get it?
+---------------------------------------------
+
+AUCTeX is a complex and sophisticated editing package dedicated to TeX
+and related text formatting languages, including LaTeX and Texinfo.  It
+provides support for running TeX on a file or part of a file, include
+files, and of course shortcuts for entering common TeX macros, LaTeX
+environments, etc, and for fontlock.
+
+   AUCTeX is a standard package provided by XEmacs.  You can get it as
+usual through the `M-x list-packages' interface.  It is also included
+in the (non-Mule) SUMO package.  The AUCTeX XEmacs package is
+maintained by Uwe Brauer <GET MAIL ADDRESS>.
+
+   AUCTeX is extremely complicated, and its developers primarily use
+GNU Emacs.  Not all features of the bleeding edge version of AUCTeX are
+immediately ported to XEmacs; if you need these, you may be better off
+getting the most recent versions from the GNU AUCTeX project on
+`http://savannah.gnu.org'.
+
+\1f
+File: xemacs-faq.info,  Node: Q8.0.3,  Next: Q8.0.4,  Prev: Q8.0.2,  Up: Other Packages
+
+Q8.0.3: Problems installing AUCTeX.
+-----------------------------------
+
+Jan Vroonhof <vroonhof@math.ethz.ch> writes:
+
+     AUCTeX 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
+     `easymenu' package.  Which leads to what is probably the problem...
+
+   Most problems with AUCTeX are one of two things:
+
+   * The TeX-lisp-directory in `tex-site.el' and the makefile don't
+     match.
+
+     Fix: make sure you configure AUCTeX properly *before* installing.
+
+   * You have an old version of easymenu.el in your path.
+
+     Fix: use `locate-library' and remove old versions to make sure it
+     *only* finds the one that came with XEmacs.
+
+\1f
+File: xemacs-faq.info,  Node: Q8.0.4,  Next: Q8.1.1,  Prev: Q8.0.3,  Up: Other Packages
+
+Q8.0.4: How do I turn off current chapter from AUCTeX modeline?
+---------------------------------------------------------------
+
+With AUCTeX, fast typing is hard because the current chapter, section
+etc. are given in the modeline.  How can I turn this off?
+
+   It's not AUCTeX, it comes from `func-menu' in `func-menu.el'.
+
+   David Hughes <dhughes@origin-at.co.uk> writes:
+
+     Try this; you'll still get the function name displayed in the
+     modeline, but it won't attempt to keep track when you modify the
+     file. To refresh when it gets out of synch, you simply need click
+     on the `Rescan Buffer' option in the function-menu.
+
+          (setq-default fume-auto-rescan-buffer-p nil)
+
+8.1: Other Unbundled Packages
+=============================
+
+\1f
+File: xemacs-faq.info,  Node: Q8.1.1,  Next: Q8.1.2,  Prev: Q8.0.4,  Up: Other Packages
+
+Q8.1.1: 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:
+
+  1. The package has not been ported to XEmacs.  This will typically
+     happen when it uses GNU-Emacs-specific features, which make it
+     fail under XEmacs.
+
+     Porting a package to XEmacs can range from a trivial amount of
+     change to a partial or full rewrite.  Fortunately, the authors of
+     modern packages usually choose to support both Emacsen themselves.
+
+  2. The package has been decided not to be appropriate for XEmacs.  It
+     may have an equivalent or better replacement within XEmacs, in
+     which case the developers may choose not to burden themselves with
+     supporting an additional package.
+
+     Each package bundled with XEmacs means more work for the
+     maintainers, whether they want it or not.  If you are ready to
+     take over the maintenance responsibilities for the package you
+     port, be sure to say so--we will more likely include it.
+
+  3. The package simply hasn't been noted by the XEmacs development.  If
+     that's the case, the messages like yours are very useful for
+     attracting our attention.
+
+  4. The package was noted by the developers, but they simply haven't
+     yet gotten around to including/porting it.  Wait for the next
+     release or, even better, offer your help.  It will be gladly
+     accepted and appreciated.
+
+\1f
+File: xemacs-faq.info,  Node: Q8.1.2,  Next: Q8.1.3,  Prev: Q8.1.1,  Up: Other Packages
+
+Q8.1.2: Are there any Emacs Lisp Spreadsheets?
+----------------------------------------------
+
+Yes.  Check out "dismal" (which stands for Dis' Mode Ain't Lotus) at
+`http://acs.ist.psu.edu/dismal/dismal.html'.
+
+\1f
+File: xemacs-faq.info,  Node: Q8.1.3,  Next: Q8.2.1,  Prev: Q8.1.2,  Up: Other Packages
+
+Q8.1.3: Is there a MatLab mode?
+-------------------------------
+
+Yes, a matlab mode and other items are available at the
+`http://www.mathworks.com/matlabcentral/files/104/matlab.el'.
+
+8.2: Environments Built Around XEmacs
+=====================================
+
+\1f
+File: xemacs-faq.info,  Node: Q8.2.1,  Next: Q8.2.2,  Prev: Q8.1.3,  Up: Other Packages
+
+Q8.2.1: What are SPARCworks, EOS, and WorkShop?
+-----------------------------------------------
+
+SPARCworks was a development environment from Sun (circa 1993-1996) and
+consisted of compilers (C, C++, FORTRAN 77, Fortran 90, Ada, and
+Pascal), a debugger, and other tools such as TeamWare (for
+configuration management), MakeTool, etc.
+
+   EOS is the integration of XEmacs with the SPARCworks debugger.  It
+allows one to use an XEmacs frame to view code (complete with
+fontification, etc.), set breakpoints, print variables, etc., while
+using the SPARCworks debugger.
+
+   EOS stands for "Era on SPARCworks"; Era stood for "Emacs Rewritten
+Again" and was the name used by Sun for its modified version of Lucid
+Emacs (later XEmacs) in the early-mid 90's.  This is documented in more
+detail in the history section of the XEmacs About page.
+
+   EOS was replaced around 1996 with a newer graphical development
+environment called Sun WorkShop.  The current status of this is unknown.
+
+\1f
+File: xemacs-faq.info,  Node: Q8.2.2,  Next: Q8.2.3,  Prev: Q8.2.1,  Up: Other Packages
+
+Q8.2.2: How do I start the Sun Workshop support in XEmacs 21?
+-------------------------------------------------------------
+
+Add the switch --with-workshop to the configure command when building
+XEmacs and put the following in one of your startup files (e.g.
+site-start.el or .emacs):
+
+     (when (featurep 'tooltalk)
+       (load "tooltalk-macros")
+       (load "tooltalk-util")
+       (load "tooltalk-init"))
+     (when (featurep 'sparcworks)
+       (load "sunpro-init")
+       (load "ring")
+       (load "comint")
+       (load "annotations")
+       (sunpro-startup))
+
+   If you are not using the latest Workshop (5.0) you have to apply the
+following patch:
+
+-- /opt/SUNWspro/lib/eserve.el.ORIG    Fri May 14 15:23:26 1999
++++ /opt/SUNWspro/lib/eserve.el Fri May 14 15:24:54 1999
+@@ -42,7 +42,7 @@
+ (defvar running-xemacs nil "t if we're running XEmacs")
+ (defvar running-emacs  nil "t if we're running GNU Emacs 19")
+
+-(if (string-match "^\\(19\\|20\\)\..*\\(XEmacs\\|Lucid\\)" emacs-version)
++(if (string-match "\\(XEmacs\\|Lucid\\)" emacs-version)
+     (setq running-xemacs t)
+     (setq running-emacs  t))
+
+\1f
+File: xemacs-faq.info,  Node: Q8.2.3,  Next: Q8.2.4,  Prev: Q8.2.2,  Up: Other Packages
+
+Q8.2.3: What is/was Energize?
+-----------------------------
+
+The "Energize Programming System" was a C and C++ development
+environment sold by Lucid, Inc.  It was the reason why Lucid Emacs, now
+XEmacs, was created in the first place.  Unfortunately, Lucid went out
+of business in 1994.  The rights to sell it in Japan were purchased by
+INS Engineering (which briefly employed Stig Hackvan aka Jonathan
+Stigelman to work on Japanese support for XEmacs, in late 1994 and
+early 1995) and Tartan bought the rights to sell it in the rest of the
+world.  However, INS is not selling Energize at this point and may or
+may not have ever done so; Tartan certainly never did.
+
+\1f
+File: xemacs-faq.info,  Node: Q8.2.4,  Prev: Q8.2.3,  Up: Other Packages
+
+Q8.2.4: What is Infodock?
+-------------------------
+
+InfoDock (http://sourceforge.net/projects/infodock/) is an integrated
+productivity toolset, mainly aimed at technical people, hosted at
+SourceForge.
+
+   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 menu-based user interface.  The bottom portion of this
+text describes how it differs from XEmacs and GNU Emacs from the Free
+Software Foundation.
+
+   InfoDock is aimed at people who want a free, turn-key productivity
+environment.  Although InfoDock is customizable, it is not intended for
+people who like basic versions of Emacs which need to be customized
+extensively for local use; standard Emacs distributions are better for
+such uses.  InfoDock is for those people who want a complete,
+pre-customized environment in one package, which they need not touch
+more than once or twice a year to update to new revisions.
+
+   InfoDock is pre-built for SPARC SunOS/Solaris systems, PA-RISC HP-UX,
+and Intel Linux systems.  It is intended for use on a color display,
+although most features will work on monochrome monitors.  Simply unpack
+InfoDock according to the instructions in the ID-INSTALL file and you
+are ready to run.
+
+   The InfoDock Manual is concise, yet sufficient as a user guide for
+users who have never used an Emacs-type editor before.  For users who
+are already familiar with Emacs, it supplements the information in the
+GNU Emacs Manual.
+
+   InfoDock menus are much more extensive and more mature than standard
+Emacs menus.  Each menu offers a `Manual' item which displays
+documentation associated with the menu's functions.
+
+Four types of menubars are provided:
+  1. An extensive menubar providing access to global InfoDock commands.
+
+  2. Mode-specific menubars tailored to the current major mode.
+
+  3. A simple menubar for basic editing to help novices get started
+     with InfoDock.
+
+  4. The standard XEmacs menubar.
+
+   Most modes also include mode-specific popup menus.  Additionally,
+region and rectangle popup menus are included.
+
+   `Hyperbole', the everyday information manager, is a core part of
+InfoDock.  This provides context-sensitive mouse keys, a rolodex-type
+contact manager, programmable hypertext buttons, and an autonumbered
+outliner with embedded hyperlink anchors.
+
+   The `OO-Browser', a multi-language object-oriented code browser, is a
+standard part of InfoDock.
+
+   InfoDock saves a more extensive set of user options than other Emacs
+versions.
+
+   InfoDock inserts a useful file header in many file types, showing the
+author, summary, and last modification time of each file.  A summary
+program can then be used to summarize all of the files in a directory,
+for easy MANIFEST file creation.
+
+   Your working set of buffers is automatically saved and restored (if
+you answer yes to a prompt) between InfoDock sessions.
+
+   Refined color choices for code highlighting are provided for both
+dark and light background display frames.
+
+   The `C-z' key prefix performs frame-based commands which parallel the
+`C-x' key prefix for window-based commands.
+
+   The Smart Menu system is included for producing command menus on dumb
+terminals.
+
+   Lisp libraries are better categorized according to function.
+
+   Extensions and improvements to many areas of Emacs are included,
+such as: paragraph filling, mail reading with Rmail, shell handling,
+outlining, code highlighting and browsing, and man page browsing.
+
+   InfoDock questions, answers and discussion should go to the mail list
+<infodock@infodock.com>.  Use <infodock-request@infodock.com> to be
+added or removed from the list.  Always include your InfoDock version
+number when sending help requests.
+
+\1f
+File: xemacs-faq.info,  Node: Current Events,  Next: Legacy Versions,  Prev: Other Packages,  Up: Top
+
+9 What the Future Holds
+***********************
+
+This is part 9 of the XEmacs Frequently Asked Questions list.  This
+section will change frequently, and (in theory) should contain any
+interesting items that have transpired recently. (But in practice it's
+not getting updated like this.)
+
+   This section also contains descriptions of the new features in all
+the recent releases of XEmacs.  For the most part, the information
+below is a synopsis of the more complete information that can be found
+in the file `NEWS' in the `etc' directory of the XEmacs distribution.
+You can view this file in XEmacs using `C-h n' or the `Help' menu.
+
+   Information on older versions of XEmacs can be find in `ONEWS' in
+the same directory, or `OONEWS' for really old versions.
+
+* Menu:
+
+9.0: Changes
+* Q9.0.1::    What new features will be in XEmacs soon?
+* Q9.0.2::    What's new in XEmacs 21.4?
+* Q9.0.3::    What's new in XEmacs 21.1?
+* Q9.0.4::    What's new in XEmacs 20.4?
+* Q9.0.5::    What's new in XEmacs 20.3?
+* Q9.0.6::    What's new in XEmacs 20.2?
+
+9.0: Changes
+============
+
+\1f
+File: xemacs-faq.info,  Node: Q9.0.1,  Next: Q9.0.2,  Prev: Current Events,  Up: Current Events
+
+Q9.0.1: What new features will be in XEmacs soon?
+-------------------------------------------------
+
+#### Write me.
+
+\1f
+File: xemacs-faq.info,  Node: Q9.0.2,  Next: Q9.0.3,  Prev: Q9.0.1,  Up: Current Events
+
+Q9.0.2: What's new in XEmacs 21.4?
+----------------------------------
+
+21.4 was the "stable" version of the 21.2 series, which was considered
+"experimental" throughout its life; thus there were no "official"
+releases at all.  In essence, XEmacs is now following the "alternating"
+scheme of Linux, where at any point there are at least two different
+development branches, one "stable" and one "experimental".  Periodic
+releases happen in both branches, but those in the experimental branch
+are not tested as well, and there's no guarantee they will work at all.
+The experiemental branch is open to any and all code that's acceptable
+to the developers; the stable branch, however, is in general limited
+only to bug fixes, and all contributions are carefully reviewed to make
+sure they will increase and not decrease stability.
+
+   21.3 never existed at all; it was decided to follow the Linux scheme
+exactly, where odd-numbered series are experimental and even-numbered
+ones stable.
+
+   The following lists summarizes the essential changes made in this
+version.  For a fuller list, see the `NEWS' in the `etc' directory of
+the XEmacs distribution, or use `C-h n' or the `Help' menu to view this
+file inside of XEmacs.
+
+User-visible changes in XEmacs 21.4
+...................................
+
+   * The delete key now deletes forward by default.
+
+   * Shifted motion keys now select text by default.
+
+   * You can now build XEmacs with support for GTK+ widget set.
+
+   * ~/.xemacs/init.el is now the preferred location for the init file.
+     (XEmacs now supports a `~/.xemacs/init.el' startup file. Custom
+     file will move to ~/.xemacs/custom.el.)
+
+   * Much-improved sample init.el, showing how to use many useful
+     features.
+
+   * XEmacs support for menu accelerators has been much improved.
+
+   * Default menubar improvements. (Default menubar has many new
+     commands and better organization.  The font-menu is now available
+     under MS Windows.)
+
+   * Dialog box improvements, including a real file dialog box. (XEmacs
+     now has a proper file dialog box under MS Windows (and GTK)!  The
+     old clunky file dialog box is improved.  Keyboard traversal now
+     works correctly in MS Windows dialog boxes.  There is a Search
+     dialog box available from `Edit->Find...')
+
+   * New buffer tabs.
+
+   * There is a new MS Windows installer, netinstall, ported from
+     Cygwin.
+
+   * The subprocess quote-handling mechanism under Windows is much
+     improved.
+
+   * Printing support now available under MS Windows.
+
+   * Selection improvements. (Kill and yank now interact with the
+     clipboard under Windows.  MS Windows support for selection is now
+     much more robust.  Motif selection support is now more correct
+     (but slower).)
+
+   * Mail spool locking now works correctly.
+
+   * International support changes. (The default coding-priority-list
+     is now safer.  International keysyms are now supported under X.
+     MS Windows 1251 code page now supported.  Czech, Thai,
+     Cyrillic-KOI8, Vietnamese, Ethiopic now supported.  Proper support
+     for words in Latin 3 and Latin 4.)
+
+   * Help buffers contain hyperlinks, and other changes.
+
+   * The modeline's text is now scrollable.
+
+   * The mouse wheel under MS Windows now functions correctly.
+
+   * Interactive searching and matching case improvements. (Incremental
+     search will now highlight all visible matches.  Interactive
+     searches always respect uppercase characters.)
+
+   * Rectangle functions rewritten to avoid inserting extra spaces.
+
+   * New command `kill-entire-line' that always kills the entire line.
+
+   * Default values correctly stored in minibuffer histories.
+
+   * You can now create "indirect buffers", like in GNU Emacs.
+
+   * Pixel-based scrolling has been implemented.
+
+   * Operation progress can be displayed using graphical widgets.
+
+   * User names following a tilde can now be completed at file name
+     prompts.
+
+   * XEmacs can now play sound using Enlightenment Sound Daemon (ESD).
+
+   * X-Face support is now available under MS Windows.
+
+   * The PostgreSQL Relational Database Management System is now
+     supported.
+
+   * Indentation no longer indents comments that begin at column zero.
+
+   * Face and variable settings can have comments in Customize.
+
+   * New locations for early package hierarchies.
+
+   * The `auto-save' library has been greatly improved.
+
+   * New variable `mswindows-alt-by-itself-activates-menu'.
+
+   * Other init-file-related changes. (Init file in your home directory
+     may be called `.emacs.el'.  New command-line switches
+     -user-init-file and -user-init-directory.)
+
+   * Etags changes.  See `NEWS' for full details.
+
+Lisp and internal changes in XEmacs 21.4
+........................................
+
+Not yet written.
+
+\1f
+File: xemacs-faq.info,  Node: Q9.0.3,  Next: Q9.0.4,  Prev: Q9.0.2,  Up: Current Events
+
+Q9.0.3: What's new in XEmacs 21.1?
+----------------------------------
+
+21.1 was the "stable" version of "experimental" 21.0 series.  *Note
+What's new in XEmacs 21.4?: Q9.0.2.
+
+   The following lists summarizes the essential changes made in this
+version.  For a fuller list, see the `NEWS' in the `etc' directory of
+the XEmacs distribution, or use `C-h n' or the `Help' menu to view this
+file inside of XEmacs.
+
+User-visible changes in XEmacs 21.1
+...................................
+
+   * XEmacs is now supported under Microsoft Windows 95/98 and Windows
+     NT/2000/XP operating systems.  To discuss Windows-specific issues,
+     subscribe to the mailing list at <xemacs-winnt-request@xemacs.org>.
+
+   * XEmacs has been unbundled into constituent installable packages.
+
+   * *Other notable changes*: The `Options' menu has been ported to
+     Custom; XEmacs now is able to choose X visuals and use private
+     colormaps; You can drag the vertical divider of "horizontally"
+     (side-by-side) split windows.
+
+   * *Building changes*: XEmacs can be built with support for 31-bit
+     Lisp integers and 32-bit pointers (previously, it was 28-bit
+     integers and pointers); XEmacs can be built with LDAP support;
+     `dir' files can be removed in the Info subsystem, and will be
+     regenerated on-the-fly.
+
+   * *New packages*: `imenu', `popper', `gdb-highlight'
+
+   * *Package changes*: Many changes to `cc-mode', `gnus', `gnuclient'.
+     See `NEWS' for full details.
+
+   * *New commands, variables and functions*: `center-to-window-line'
+     (like `recenter' but doesn't force a redisplay); variable
+     `user-full-name' (customize what your full name looks like in
+     mail); `M-x customize-changed-options' (customize options whose
+     default values changes because you upgraded your XEmacs); `M-x
+     add-log-convert' (converts an old-style ChangeLog buffer to
+     new-style); `M-x zap-up-to-char' (like `zap-to-char' but doesn't
+     delete the char searched for); commands to store, retrieve and
+     increment numbers in registers, useful for macros.
+
+   * *Changes to commands, variables, and functions*: `M-x
+     query-replace' and friends operate only on the region when it's
+     active; `echo-keystrokes' can now be a floating-point number; `M-.'
+     searches exact tag matches before inexact ones; function
+     `user-full-name' with no arguments returns the var
+     `user-full-name'; a prefix arg to `M-:' and `C-h c' inserts the
+     result in the current buffer.
+
+   * *Other changes*: Under X, new application class `XEmacs';
+     byte-compilation of user-specs now works.
+
+   * *XEmacs/Mule (internationalization) changes*: Mule support now
+     works on TTY's; Egg/SJ3 input method now officially supported
+     (Quail and Egg/Skk already available through LEIM since 20.3);
+     localized Japanese menubars if XEmacs is built with the right
+     support.
+
+
+Lisp and internal changes in XEmacs 21.1
+........................................
+
+   * *Specifier changes*: The window locale now has a higher precedence
+     than the buffer locale when instantiating; new macro
+     `let-specifier'; new specifiers `vertical-scrollbar-visible-p',
+     horizontal-scrollbar-visible-p', `scrollbar-on-left-p',
+     `scrollbar-on-top-p', `vertical-divider-always-visible-p',
+     `vertical-divider-shadow-thickness',
+     `vertical-divider-line-width', `vertical-divider-spacing';
+     specifiers and symbols whose value is a specifier allowed as
+     modeline specifications.
+
+   * *Frame focus changes*: `focus-follows-mouse' works like FSF,
+     prevents any attempt to permanently change the selected frame; new
+     function `focus-frame' sets the window system focus a frame; new
+     special forms `save-selected-frame' and `with-selected-frame'.
+
+   * *Window function changes*: `select-window' now has optional
+     argument NORECORD to inhibit recording a buffer change;
+     `vertical-motion' now correctly handles optional WINDOW argument
+     and has new optional argument PIXELS, to have the returned values
+     be in pixels; new function `vertical-motion-pixels'; new functions
+     `window-text-area-pixel-{width,height,edges}'; new functions
+     `shrink-window-pixels' and `enlarge-window-pixels'; new function
+     `window-displayed-text-pixel-height'.
+
+   * *Other function changes*: Arithmetic comparison functions `<',
+     `>', `=', `/=' now accept a variable number of arguments;
+     hashtables now have a consistent read/print syntax; keyword
+     symbols cannot be set to a value other than themselves; `concat' no
+     longer accepts integer arguments; new function `string', like
+     `list', `vector', etc.; new function `temp-directory'
+     (OS-independent way to get a temp directory); `load-average' has
+     optional argument USE-FLOATS; `make-event' implemented completely;
+     new function `function-interactive' (returns a function's
+     interactive spec); new functions `lmessage', `lwarn' (printf-like
+     versions of `display-wessage', `display-warning'); new keyword
+     `:version' to `defcustom'.
+
+   * *Performance*: when the new GNU Malloc aka Doug Lea Malloc is
+     available, it will be used (better performance on libc6 Linux
+     systems); tracking line-numbers in modeline is now efficient;
+     profiling records a call-count of all called functions,
+     retrievable through `profile-call-count-results'.
+
+   * *Startup and path searching*: code to assemble paths at startup
+     rewritten for new package system; new function `split-path' (splits
+     by `path-separator'); `Info-default-directory-list' obsolete, use
+     `Info-directory-list' instead; site-lisp is deprecated and no
+     longer on the load-path by default.
+
+
+\1f
+File: xemacs-faq.info,  Node: Q9.0.4,  Next: Q9.0.5,  Prev: Q9.0.3,  Up: Current Events
+
+Q9.0.4: What's new in XEmacs 20.4?
+----------------------------------
+
+XEmacs 20.4 is a bugfix release with no user-visible changes.
+
+\1f
+File: xemacs-faq.info,  Node: Q9.0.5,  Next: Q9.0.6,  Prev: Q9.0.4,  Up: Current Events
+
+Q9.0.5: What's new in XEmacs 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,
+additional support for Mule (Multi-language extensions to Emacs), many
+more customizations, multiple frames on TTY-s, support for multiple info
+directories, an enhanced gnuclient, improvements to regexp matching,
+increased MIME support, and many, many synches with GNU Emacs 20.
+
+   The XEmacs/Mule support has been only seriously tested in a Japanese
+locale, and no doubt many problems still remain.  The support for
+ISO-Latin-1 and Japanese is fairly strong.  MULE support comes at a
+price--about a 30% slowdown from 19.16.  We're making progress on
+improving performance and XEmacs 20.3 compiled without Mule (which is
+the default) is definitely faster than XEmacs 19.16.
+
+   XEmacs 20.3 is the first non-beta v20 release, and will be the basis
+for all further development.
+
+\1f
+File: xemacs-faq.info,  Node: Q9.0.6,  Prev: Q9.0.5,  Up: Current Events
+
+Q9.0.6: What's new in XEmacs 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
+major mode for editing Tex and LaTeX, and a lot of other stuff).  Many
+bugs from 20.0 have been fixed for this release.  20.2 also contains a
+new system for customizing XEmacs options, invoked via `M-x customize'.
+
+   XEmacs 20.2 is the development release (20.0 was beta), and is no
+longer considered unstable.
+
+   For older news, see the file `ONEWS' in the `etc' directory of the
+XEmacs distribution.
+
+\1f
+File: xemacs-faq.info,  Node: Legacy Versions,  Prev: Current Events,  Up: Top
+
+10 New information about old XEmacsen
+*************************************
+
+This is part 10 of the XEmacs Frequently Asked Questions list.  It will
+occasionally be updated to reflect new information about versions which
+are no longer being revised by the XEmacs Project.  The primary purpose
+is advice on compatibility of older XEmacsen with new packages and
+updated versions of packages, but bug fixes (which will not be applied
+to released XEmacsen, but users can apply themselves) are also accepted.
+
+* Menu:
+
+10.0: XEmacs 21.1
+* Q10.0.1::   Gnus 5.10 won't display smileys in XEmacs 21.1.
+* Q10.0.2::   XEmacs won't start on Windows in XEmacs 21.1.
+
+10.0: XEmacs 21.1
+=================
+
+\1f
+File: xemacs-faq.info,  Node: Q10.0.1,  Next: Q10.0.2,  Prev: Legacy Versions,  Up: Legacy Versions
+
+Q10.0.1: Gnus 5.10 won't display smileys in XEmacs 21.1.
+--------------------------------------------------------
+
+Eric Eide <eeide@cs.utah.edu> wrote:
+
+     Previously I wrote:
+
+     Eric> Summary: with Gnus 5.10.1 in XEmacs 21.1.14, I don't see
+     Eric> any smileys :-(.
+
+     After a bit of sleuthing, I discovered the essence of the problem.
+     For me, the form:
+
+               (with-temp-buffer
+                 (insert-file-contents "foo.xpm")
+                 (buffer-string))
+
+     returns the empty string.  This is because something somewhere
+     replaces the XPM data with a glyph -- I haven't figured out where
+     this occurs.
+
+   Kyle Jones <kyle_jones@wonderworks.com> replies:
+
+     Do this:
+
+              (setq format-alist nil)
+
+     The image-mode stuff is gone from format-alist in the 21.4 branch,
+     praise be.
+
+\1f
+File: xemacs-faq.info,  Node: Q10.0.2,  Prev: Q10.0.1,  Up: Legacy Versions
+
+Q10.0.2: XEmacs won't start on Windows in XEmacs 21.1.
+------------------------------------------------------
+
+XEmacs relies on a process called "dumping" to generate a working
+executable. Under MS-Windows this process effectively fixes the memory
+addresses of information in the executable. When XEmacs starts up it
+tries to reserve these memory addresses so that the dumping process can
+be reversed - putting the information back at the correct addresses.
+Unfortunately some .DLLs (for instance the soundblaster driver) occupy
+memory addresses that can conflict with those needed by the dumped
+XEmacs executable. In this instance XEmacs will fail to start without
+any explanation. Note that this is extremely machine specific.
+
+   21.1.10 includes a fix for this that makes more intelligent guesses
+about which memory addresses will be free, and this should cure the
+problem for most people.  21.4 implements "portable dumping", which
+eliminates the problem altogether.  We recommend you use the 21.4
+binaries, but you can use the 21.1 binaries if you are very paranoid
+about stability.  *Note Are binaries available?: Q1.1.2.
+
+
index aca6f6f..d57a7fa 100644 (file)
        * files.el (insert-file-contents-literally): Treat file as binary;
        call file-name-handlers. [sync with Emacs 20.3.10]
 
+2006-01-28  Vin Shelton  <acs@xemacs.org>
+
+       * XEmacs 21.4.19 is released
+
+2006-01-03  Aidan Kehoe  <kehoea@parhasard.net>
+
+       * easymenu.el: Update copyright. 
+       * easymenu.el (easy-menu-all-popups):
+       Add a docstring. 
+       * easymenu.el (easy-menu-add):
+       Document a bug, rework the function to preserve any existing
+       non-default mode-popup-menu instead of overwriting it, and not to
+       bother normalising the menu title (nothing else does).
+       * easymenu.el (easy-menu-remove):
+       Restore the default mode-popup-menu instead of leaving an empty
+       one when we remove the last easy-menu popup. 
+
+2006-01-06  Adrian Aichner  <adrian@xemacs.org>
+
+       * package-get.el (package-get-download-sites): Add pt.xemacs.org,
+       as suggested by Rodrigo Ventura.
+       * package-get.el (package-get-pre-release-download-sites): Ditto,
+       with replacement of xemacs-21.5 by beta, which is the logical path
+       to our beta core and package pre-releases.
+
+2005-12-17  Adrian Aichner  <adrian@xemacs.org>
+
+       * package-get.el (package-get-download-sites): Add Hong Kong
+       download site.
+       * package-get.el (package-get-pre-release-download-sites): Ditto.
+
+2005-12-26  Vin Shelton  <acs@xemacs.org>
+
+       * find-paths.el:
+       * find-paths.el (paths-emacs-root-p): Add search for package root.
+       * find-paths.el (paths-find-emacs-root): Replaced with
+       paths-find-invocation-roots, which returns a list of roots.
+       * find-paths.el (paths-find-invocation-roots): New.
+       * find-paths.el (paths-find-emacs-roots): Call paths-find-invocation-roots.
+
+2005-12-05  Ville Skyttä  <scop@xemacs.org>
+
+       * minibuf.el (x-library-search-path): Add /usr(/local)/share/X11.
+       * font.el (font-lookup-rgb-components): Ditto, remove stale comment.
+
 2005-12-03  Vin Shelton <acs@xemacs.org>
 
        * XEmacs 21.4.18 is released
        <mincy@rcn.com> fixing false temporary load-path shadows reported
        after package installation and simplifying code.
 
-2005-10-18  Ville Skyttä  <scop@xemacs.org>
+2005-10-18  Ville Skyttä  <scop@xemacs.org>
 
        * package-get.el (package-get-download-sites): Sync mirrors list
        with the XEmacs website.
        * simple.el (shifted-motion-keys-select-region): Fix statement
        about unshifted-motion-keys-deselect-region.
 
-2004-12-15  Ville Skyttä  <scop@xemacs.org>
+2004-12-15  Ville Skyttä  <scop@xemacs.org>
 
        * bytecomp-runtime.el (make-obsolete): Add 3rd argument (no-op for
        now) for GNU Emacs compatibility.
 
        * isearch-mode.el (isearch-mode-map): GR (and C1) is printable.
 
-2003-01-06  Ville Skyttä  <scop@xemacs.org>
+2003-01-06  Ville Skyttä  <scop@xemacs.org>
 
        * menubar-items.el (default-menubar): Use browse-url-mozilla
        instead of browse-url-gnome-moz for Mozilla.
 
        * XEmacs 21.4.11 "Native Windows TTY Support" is released.
 
-2002-12-27  Ville Skyttä  <scop@xemacs.org>
+2002-12-27  Ville Skyttä  <scop@xemacs.org>
 
        * files.el (auto-mode-alist): Remove redundant entries for modes
        that live in packages.
        (interpreter-mode-alist): Ditto.
 
-2002-03-17  Ville Skyttä  <ville.skytta@xemacs.org>
+2002-03-17  Ville Skyttä  <ville.skytta@xemacs.org>
 
        * menubar-items.el (default-menubar): Sync with current
        browse-url-xemacs.el.
        (font-lock-fontify-keywords-region): Supply the argument to
        font-lock-compile-keywords.
 
-2002-09-22  Ville Skyttä  <ville.skytta@xemacs.org>
+2002-09-22  Ville Skyttä  <ville.skytta@xemacs.org>
 
        * package-get.el (package-get-download-sites): Bring sites list
        up to date, prefer xx.xemacs.org addresses.
        * gutter-items.el (set-progress-feedback-instantiator): Fix bad
        merge.
 
-2002-09-02  Ville Skyttä  <ville.skytta@xemacs.org>
+2002-09-02  Ville Skyttä  <ville.skytta@xemacs.org>
 
        * bytecomp-runtime.el (make-obsolete): Docstring argument nit.
        (make-obsolete-variable): Ditto.
 
        * XEmacs 21.4.9 "Informed Management" is released.
 
-2002-06-22  Ville Skyttä  <ville.skytta@xemacs.org>
+2002-06-22  Ville Skyttä  <ville.skytta@xemacs.org>
 
        * subr.el (add-to-list): Sync with GNU Emacs 21.2, adding the
        "&optional append" argument.
 
        * simple.el (join-line): New alias for `delete-indentation'.
 
-2002-08-02  Ville Skyttä  <ville.skytta@xemacs.org>
+2002-08-02  Ville Skyttä  <ville.skytta@xemacs.org>
 
        * font-lock.el: Some faces and doc typo fixes from GNU Emacs.
        (font-lock-doc-face): New alias to font-lock-doc-string-face.
        * find-paths.el (paths-find-architecture-directory): Search in
        `system-configuration'/`base', not `base'`system-configuration'.
 
-2002-06-23  Ville Skyttä  <ville.skytta@xemacs.org>
+2002-06-23  Ville Skyttä  <ville.skytta@xemacs.org>
 
        * info.el (Info-index): Add missing \ in [ t].
 
        * startup.el (normal-top-level): Prevent migration code from
        trashing .emacs on an error in loading the init files.
 
-2002-03-14  Ville Skyttä  <ville.skytta@xemacs.org>
+2002-03-14  Ville Skyttä  <ville.skytta@xemacs.org>
 
        * files.el (auto-mode-alist): GNUmakefile is a Makefile,
        "system default" Xdefaults and friends get xrdb-mode.
 2002-02-03  Adrian Aichner  <adrian@xemacs.org>
 
        * printer.el (generic-print-region): Pass correct arguments to
-       lpr-region.  Thanks to Nevin Kapur <nevin@jhu.edu> and Björn
+       lpr-region.  Thanks to Nevin Kapur <nevin@jhu.edu> and Björn
        Torkelsson <torkel@acc.umu.se>.
 
 2002-01-09  John Paul Wallington  <jpw@shootybangbang.com>
index 88caef1..d0afd32 100644 (file)
@@ -1506,9 +1506,9 @@ one version of a package available.")
 
 (defcustom package-get-install-to-user-init-directory nil "*If non-nil install packages under `user-init-directory'." :type 'boolean :group 'package-get)
 
-(defcustom package-get-download-sites '(("US (Main XEmacs Site)" "ftp.xemacs.org" "pub/xemacs/packages") ("Argentina (xmundo.net)" "xemacs.xmundo.net" "pub/mirrors/xemacs/packages") ("Australia (aarnet.edu.au)" "mirror.aarnet.edu.au" "pub/xemacs/packages") ("Australia (au.xemacs.org)" "ftp.au.xemacs.org" "pub/xemacs/packages") ("Austria (at.xemacs.org)" "ftp.at.xemacs.org" "editors/xemacs/packages") ("Belgium (be.xemacs.org)" "ftp.be.xemacs.org" "xemacs/packages") ("Brazil (br.xemacs.org)" "ftp.br.xemacs.org" "pub/xemacs/packages") ("Canada (ca.xemacs.org)" "ftp.ca.xemacs.org" "pub/Mirror/xemacs/packages") ("Canada (crc.ca)" "ftp.crc.ca" "pub/packages/editors/xemacs/packages") ("Canada (nrc.ca)" "ftp.nrc.ca" "pub/packages/editors/xemacs/packages") ("Czech Republic (cz.xemacs.org)" "ftp.cz.xemacs.org" "MIRRORS/ftp.xemacs.org/pub/xemacs/packages") ("Denmark (dk.xemacs.org)" "ftp.dk.xemacs.org" "pub/emacs/xemacs/packages") ("Finland (fi.xemacs.org)" "ftp.fi.xemacs.org" "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/packages") ("France (fr.xemacs.org)" "ftp.fr.xemacs.org" "pub/xemacs/packages") ("France (mirror.cict.fr)" "mirror.cict.fr" "xemacs/packages") ("France (pasteur.fr)" "ftp.pasteur.fr" "pub/computing/xemacs/packages") ("Germany (de.xemacs.org)" "ftp.de.xemacs.org" "pub/ftp.xemacs.org/tux/xemacs/packages") ("Iceland (is.xemacs.org)" "ftp.is.xemacs.org" "pub/xemacs/packages") ("Ireland (ie.xemacs.org)" "ftp.ie.xemacs.org" "mirrors/ftp.xemacs.org/pub/xemacs/packages") ("Ireland (heanet.ie)" "ftp.heanet.ie" "mirrors/ftp.xemacs.org/packages") ("Italy (it.xemacs.org)" "ftp.it.xemacs.org" "unix/packages/XEMACS/packages") ("Japan (aist.go.jp)" "ring.aist.go.jp" "pub/text/xemacs/packages") ("Japan (asahi-net.or.jp)" "ring.asahi-net.or.jp" "pub/text/xemacs/packages") ("Japan (dti.ad.jp)" "ftp.dti.ad.jp" "pub/unix/editor/xemacs/packages") ("Japan (sut.ac.jp)" "sunsite.sut.ac.jp" "pub/archives/packages/xemacs/packages") ("Korea (kr.xemacs.org)" "ftp.kr.xemacs.org" "pub/tools/emacs/xemacs/packages") ("New Zealand (nz.xemacs.org)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages") ("Norway (no.xemacs.org)" "ftp.no.xemacs.org" "pub/xemacs/packages") ("Poland (pl.xemacs.org)" "ftp.pl.xemacs.org" "pub/unix/editors/xemacs/packages") ("Russia (ru.xemacs.org)" "ftp.ru.xemacs.org" "pub/emacs/xemacs/packages") ("Sweden (se.xemacs.org)" "ftp.se.xemacs.org" "pub/gnu/xemacs/packages") ("Switzerland (ch.xemacs.org)" "ftp.ch.xemacs.org" "mirror/xemacs/packages") ("Taiwan (ftp.tw.xemacs.org)" "ftp.tw.xemacs.org" "Unix/Editors/XEmacs/packages") ("UK (uk.xemacs.org)" "ftp.uk.xemacs.org" "sites/ftp.xemacs.org/pub/xemacs/packages") ("US (ibiblio.org)" "mirrors.ibiblio.org" "pub/mirrors/xemacs/packages") ("US (stealth.net)" "ftp.stealth.net" "pub/mirrors/ftp.xemacs.org/pub/xemacs/packages") ("US (unc.edu)" "metalab.unc.edu" "pub/packages/editors/xemacs/packages") ("US (us.xemacs.org)" "ftp.us.xemacs.org" "pub/xemacs/packages")) "*List of remote sites available for downloading packages.\nList format is '(site-description site-name directory-on-site).\nSITE-DESCRIPTION is a textual description of the site.  SITE-NAME\nis the internet address of the download site.  DIRECTORY-ON-SITE\nis the directory on the site in which packages may be found.\nThis variable is used to initialize `package-get-remote', the\nvariable actually used to specify package download sites." :tag "Package download sites" :type '(repeat (list (string :tag "Name") host-name directory)) :group 'package-get)
+(defcustom package-get-download-sites '(("US (Main XEmacs Site)" "ftp.xemacs.org" "pub/xemacs/packages") ("Argentina (xmundo.net)" "xemacs.xmundo.net" "pub/mirrors/xemacs/packages") ("Australia (aarnet.edu.au)" "mirror.aarnet.edu.au" "pub/xemacs/packages") ("Australia (au.xemacs.org)" "ftp.au.xemacs.org" "pub/xemacs/packages") ("Austria (at.xemacs.org)" "ftp.at.xemacs.org" "editors/xemacs/packages") ("Belgium (be.xemacs.org)" "ftp.be.xemacs.org" "xemacs/packages") ("Brazil (br.xemacs.org)" "ftp.br.xemacs.org" "pub/xemacs/packages") ("Canada (ca.xemacs.org)" "ftp.ca.xemacs.org" "pub/Mirror/xemacs/packages") ("Canada (crc.ca)" "ftp.crc.ca" "pub/packages/editors/xemacs/packages") ("Canada (nrc.ca)" "ftp.nrc.ca" "pub/packages/editors/xemacs/packages") ("Czech Republic (cz.xemacs.org)" "ftp.cz.xemacs.org" "MIRRORS/ftp.xemacs.org/pub/xemacs/packages") ("Denmark (dk.xemacs.org)" "ftp.dk.xemacs.org" "pub/emacs/xemacs/packages") ("Finland (fi.xemacs.org)" "ftp.fi.xemacs.org" "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/packages") ("France (fr.xemacs.org)" "ftp.fr.xemacs.org" "pub/xemacs/packages") ("France (mirror.cict.fr)" "mirror.cict.fr" "xemacs/packages") ("France (pasteur.fr)" "ftp.pasteur.fr" "pub/computing/xemacs/packages") ("Germany (de.xemacs.org)" "ftp.de.xemacs.org" "pub/ftp.xemacs.org/tux/xemacs/packages") ("Hong Kong (hk.xemacs.org)" "ftp.hk.xemacs.org" "pub/xemacsftp/packages") ("Iceland (is.xemacs.org)" "ftp.is.xemacs.org" "pub/xemacs/packages") ("Ireland (ie.xemacs.org)" "ftp.ie.xemacs.org" "mirrors/ftp.xemacs.org/pub/xemacs/packages") ("Ireland (heanet.ie)" "ftp.heanet.ie" "mirrors/ftp.xemacs.org/packages") ("Italy (it.xemacs.org)" "ftp.it.xemacs.org" "unix/packages/XEMACS/packages") ("Japan (aist.go.jp)" "ring.aist.go.jp" "pub/text/xemacs/packages") ("Japan (asahi-net.or.jp)" "ring.asahi-net.or.jp" "pub/text/xemacs/packages") ("Japan (dti.ad.jp)" "ftp.dti.ad.jp" "pub/unix/editor/xemacs/packages") ("Japan (sut.ac.jp)" "sunsite.sut.ac.jp" "pub/archives/packages/xemacs/packages") ("Korea (kr.xemacs.org)" "ftp.kr.xemacs.org" "pub/tools/emacs/xemacs/packages") ("New Zealand (nz.xemacs.org)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages") ("Norway (no.xemacs.org)" "ftp.no.xemacs.org" "pub/xemacs/packages") ("Poland (pl.xemacs.org)" "ftp.pl.xemacs.org" "pub/unix/editors/xemacs/packages") ("Portugal (pt.xemacs.org)" "ftp.pt.xemacs.org" "pub/MIRRORS/ftp.xemacs.org/packages") ("Russia (ru.xemacs.org)" "ftp.ru.xemacs.org" "pub/emacs/xemacs/packages") ("Sweden (se.xemacs.org)" "ftp.se.xemacs.org" "pub/gnu/xemacs/packages") ("Switzerland (ch.xemacs.org)" "ftp.ch.xemacs.org" "mirror/xemacs/packages") ("Taiwan (ftp.tw.xemacs.org)" "ftp.tw.xemacs.org" "Unix/Editors/XEmacs/packages") ("UK (uk.xemacs.org)" "ftp.uk.xemacs.org" "sites/ftp.xemacs.org/pub/xemacs/packages") ("US (ibiblio.org)" "mirrors.ibiblio.org" "pub/mirrors/xemacs/packages") ("US (stealth.net)" "ftp.stealth.net" "pub/mirrors/ftp.xemacs.org/pub/xemacs/packages") ("US (unc.edu)" "metalab.unc.edu" "pub/packages/editors/xemacs/packages") ("US (us.xemacs.org)" "ftp.us.xemacs.org" "pub/xemacs/packages")) "*List of remote sites available for downloading packages.\nList format is '(site-description site-name directory-on-site).\nSITE-DESCRIPTION is a textual description of the site.  SITE-NAME\nis the internet address of the download site.  DIRECTORY-ON-SITE\nis the directory on the site in which packages may be found.\nThis variable is used to initialize `package-get-remote', the\nvariable actually used to specify package download sites." :tag "Package download sites" :type '(repeat (list (string :tag "Name") host-name directory)) :group 'package-get)
 
-(defcustom package-get-pre-release-download-sites '(("US Pre-Releases (Main XEmacs Site)" "ftp.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Argentina Pre-Releases (xmundo.net)" "xemacs.xmundo.net" "pub/mirrors/xemacs/beta/experimental/packages") ("Australia Pre-Releases (aarnet.edu.au)" "mirror.aarnet.edu.au" "pub/xemacs/beta/experimental/packages") ("Australia Pre-Releases (au.xemacs.org)" "ftp.au.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Austria Pre-Releases (at.xemacs.org)" "ftp.at.xemacs.org" "editors/xemacs/beta/experimental/packages") ("Belgium (be.xemacs.org)" "ftp.be.xemacs.org" "xemacs/beta/experimental/packages") ("Brazil Pre-Releases (br.xemacs.org)" "ftp.br.xemacs.org" "pub/xemacs/xemacs-21.5/experimental/packages") ("Canada Pre-Releases (ca.xemacs.org)" "ftp.ca.xemacs.org" "pub/Mirror/xemacs/beta/experimental/packages") ("Canada Pre-Releases (crc.ca)" "ftp.crc.ca" "pub/packages/editors/xemacs/beta/experimental/packages") ("Canada Pre-Releases (nrc.ca)" "ftp.nrc.ca" "pub/packages/editors/xemacs/beta/experimental/packages") ("Czech Republic Pre-Releases (cz.xemacs.org)" "ftp.cz.xemacs.org" "MIRRORS/ftp.xemacs.org/pub/xemacs/xemacs-21.5/experimental/packages") ("Denmark Pre-Releases (dk.xemacs.org)" "ftp.dk.xemacs.org" "pub/emacs/xemacs/beta/experimental/packages") ("Finland Pre-Releases (fi.xemacs.org)" "ftp.fi.xemacs.org" "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/beta/experimental/packages") ("France Pre-Releases (fr.xemacs.org)" "ftp.fr.xemacs.org" "pub/xemacs/beta/experimental/packages") ("France Pre-Releases (mirror.cict.fr)" "mirror.cict.fr" "xemacs/beta/experimental/packages") ("France Pre-Releases (pasteur.fr)" "ftp.pasteur.fr" "pub/computing/xemacs/beta/experimental/packages") ("Germany Pre-Releases (de.xemacs.org)" "ftp.de.xemacs.org" "pub/ftp.xemacs.org/tux/xemacs/beta/experimental/packages") ("Iceland Pre-Releases (is.xemacs.org)" "ftp.is.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Ireland Pre-Releases (ie.xemacs.org)" "ftp.ie.xemacs.org" "mirrors/ftp.xemacs.org/pub/xemacs/beta/experimental/packages") ("Ireland Pre-Releases (heanet.ie)" "ftp.heanet.ie" "mirrors/ftp.xemacs.org/beta/experimental/packages") ("Italy Pre-Releases (it.xemacs.org)" "ftp.it.xemacs.org" "unix/packages/XEMACS/beta/experimental/packages") ("Japan Pre-Releases (aist.go.jp)" "ring.aist.go.jp" "pub/text/xemacs/beta/experimental/packages") ("Japan Pre-Releases (asahi-net.or.jp)" "ring.asahi-net.or.jp" "pub/text/xemacs/beta/experimental/packages") ("Japan Pre-Releases (dti.ad.jp)" "ftp.dti.ad.jp" "pub/unix/editor/xemacs/beta/experimental/packages") ("Japan Pre-Releases (sut.ac.jp)" "sunsite.sut.ac.jp" "pub/archives/packages/xemacs/xemacs-21.5/experimental/packages") ("Korea (kr.xemacs.org)" "ftp.kr.xemacs.org" "pub/tools/emacs/xemacs/beta/experimental/packages") ("New Zealand Pre-Releases (nz.xemacs.org)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages") ("Norway Pre-Releases (no.xemacs.org)" "ftp.no.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Poland Pre-Releases (pl.xemacs.org)" "ftp.pl.xemacs.org" "pub/unix/editors/xemacs/beta/experimental/packages") ("Russia Pre-Releases (ru.xemacs.org)" "ftp.ru.xemacs.org" "pub/emacs/xemacs/beta/experimental/packages") ("Sweden Pre-Releases (se.xemacs.org)" "ftp.se.xemacs.org" "pub/gnu/xemacs/beta/experimental/packages") ("Switzerland Pre-Releases (ch.xemacs.org)" "ftp.ch.xemacs.org" "mirror/xemacs/beta/experimental/packages") ("Taiwan Pre-Releases (ftp.tw.xemacs.org)" "ftp.tw.xemacs.org" "Unix/Editors/XEmacs/beta/experimental/packages") ("UK Pre-Releases (uk.xemacs.org)" "ftp.uk.xemacs.org" "sites/ftp.xemacs.org/pub/xemacs/beta/experimental/packages") ("US Pre-Releases (ibiblio.org)" "mirrors.ibiblio.org" "pub/mirrors/xemacs/beta/experimental/packages") ("US Pre-Releases (stealth.net)" "ftp.stealth.net" "pub/mirrors/ftp.xemacs.org/pub/xemacs/beta/experimental/packages") ("US Pre-Releases (unc.edu)" "metalab.unc.edu" "pub/packages/editors/xemacs/beta/experimental/packages") ("US Pre-Releases (us.xemacs.org)" "ftp.us.xemacs.org" "pub/xemacs/beta/experimental/packages")) "*List of remote sites available for downloading \"Pre-Release\" packages.\nList format is '(site-description site-name directory-on-site).\nSITE-DESCRIPTION is a textual description of the site.  SITE-NAME\nis the internet address of the download site.  DIRECTORY-ON-SITE\nis the directory on the site in which packages may be found.\nThis variable is used to initialize `package-get-remote', the\nvariable actually used to specify package download sites." :tag "Pre-Release Package download sites" :type '(repeat (list (string :tag "Name") host-name directory)) :group 'package-get)
+(defcustom package-get-pre-release-download-sites '(("US Pre-Releases (Main XEmacs Site)" "ftp.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Argentina Pre-Releases (xmundo.net)" "xemacs.xmundo.net" "pub/mirrors/xemacs/beta/experimental/packages") ("Australia Pre-Releases (aarnet.edu.au)" "mirror.aarnet.edu.au" "pub/xemacs/beta/experimental/packages") ("Australia Pre-Releases (au.xemacs.org)" "ftp.au.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Austria Pre-Releases (at.xemacs.org)" "ftp.at.xemacs.org" "editors/xemacs/beta/experimental/packages") ("Belgium (be.xemacs.org)" "ftp.be.xemacs.org" "xemacs/beta/experimental/packages") ("Brazil Pre-Releases (br.xemacs.org)" "ftp.br.xemacs.org" "pub/xemacs/xemacs-21.5/experimental/packages") ("Canada Pre-Releases (ca.xemacs.org)" "ftp.ca.xemacs.org" "pub/Mirror/xemacs/beta/experimental/packages") ("Canada Pre-Releases (crc.ca)" "ftp.crc.ca" "pub/packages/editors/xemacs/beta/experimental/packages") ("Canada Pre-Releases (nrc.ca)" "ftp.nrc.ca" "pub/packages/editors/xemacs/beta/experimental/packages") ("Czech Republic Pre-Releases (cz.xemacs.org)" "ftp.cz.xemacs.org" "MIRRORS/ftp.xemacs.org/pub/xemacs/xemacs-21.5/experimental/packages") ("Denmark Pre-Releases (dk.xemacs.org)" "ftp.dk.xemacs.org" "pub/emacs/xemacs/beta/experimental/packages") ("Finland Pre-Releases (fi.xemacs.org)" "ftp.fi.xemacs.org" "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/beta/experimental/packages") ("France Pre-Releases (fr.xemacs.org)" "ftp.fr.xemacs.org" "pub/xemacs/beta/experimental/packages") ("France Pre-Releases (mirror.cict.fr)" "mirror.cict.fr" "xemacs/beta/experimental/packages") ("France Pre-Releases (pasteur.fr)" "ftp.pasteur.fr" "pub/computing/xemacs/beta/experimental/packages") ("Germany Pre-Releases (de.xemacs.org)" "ftp.de.xemacs.org" "pub/ftp.xemacs.org/tux/xemacs/beta/experimental/packages") ("Hong Kong Pre-Releases (hk.xemacs.org)" "ftp.hk.xemacs.org" "pub/xemacsftp/beta/experimental/packages") ("Iceland Pre-Releases (is.xemacs.org)" "ftp.is.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Ireland Pre-Releases (ie.xemacs.org)" "ftp.ie.xemacs.org" "mirrors/ftp.xemacs.org/pub/xemacs/beta/experimental/packages") ("Ireland Pre-Releases (heanet.ie)" "ftp.heanet.ie" "mirrors/ftp.xemacs.org/beta/experimental/packages") ("Italy Pre-Releases (it.xemacs.org)" "ftp.it.xemacs.org" "unix/packages/XEMACS/beta/experimental/packages") ("Japan Pre-Releases (aist.go.jp)" "ring.aist.go.jp" "pub/text/xemacs/beta/experimental/packages") ("Japan Pre-Releases (asahi-net.or.jp)" "ring.asahi-net.or.jp" "pub/text/xemacs/beta/experimental/packages") ("Japan Pre-Releases (dti.ad.jp)" "ftp.dti.ad.jp" "pub/unix/editor/xemacs/beta/experimental/packages") ("Japan Pre-Releases (sut.ac.jp)" "sunsite.sut.ac.jp" "pub/archives/packages/xemacs/xemacs-21.5/experimental/packages") ("Korea (kr.xemacs.org)" "ftp.kr.xemacs.org" "pub/tools/emacs/xemacs/beta/experimental/packages") ("New Zealand Pre-Releases (nz.xemacs.org)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages") ("Norway Pre-Releases (no.xemacs.org)" "ftp.no.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Poland Pre-Releases (pl.xemacs.org)" "ftp.pl.xemacs.org" "pub/unix/editors/xemacs/beta/experimental/packages") ("Portugal Pre-Releases (pt.xemacs.org)" "ftp.pt.xemacs.org" "pub/MIRRORS/ftp.xemacs.org/beta/experimental/packages") ("Russia Pre-Releases (ru.xemacs.org)" "ftp.ru.xemacs.org" "pub/emacs/xemacs/beta/experimental/packages") ("Sweden Pre-Releases (se.xemacs.org)" "ftp.se.xemacs.org" "pub/gnu/xemacs/beta/experimental/packages") ("Switzerland Pre-Releases (ch.xemacs.org)" "ftp.ch.xemacs.org" "mirror/xemacs/beta/experimental/packages") ("Taiwan Pre-Releases (ftp.tw.xemacs.org)" "ftp.tw.xemacs.org" "Unix/Editors/XEmacs/beta/experimental/packages") ("UK Pre-Releases (uk.xemacs.org)" "ftp.uk.xemacs.org" "sites/ftp.xemacs.org/pub/xemacs/beta/experimental/packages") ("US Pre-Releases (ibiblio.org)" "mirrors.ibiblio.org" "pub/mirrors/xemacs/beta/experimental/packages") ("US Pre-Releases (stealth.net)" "ftp.stealth.net" "pub/mirrors/ftp.xemacs.org/pub/xemacs/beta/experimental/packages") ("US Pre-Releases (unc.edu)" "metalab.unc.edu" "pub/packages/editors/xemacs/beta/experimental/packages") ("US Pre-Releases (us.xemacs.org)" "ftp.us.xemacs.org" "pub/xemacs/beta/experimental/packages")) "*List of remote sites available for downloading \"Pre-Release\" packages.\nList format is '(site-description site-name directory-on-site).\nSITE-DESCRIPTION is a textual description of the site.  SITE-NAME\nis the internet address of the download site.  DIRECTORY-ON-SITE\nis the directory on the site in which packages may be found.\nThis variable is used to initialize `package-get-remote', the\nvariable actually used to specify package download sites." :tag "Pre-Release Package download sites" :type '(repeat (list (string :tag "Name") host-name directory)) :group 'package-get)
 
 (defcustom package-get-site-release-download-sites nil "*List of remote sites available for downloading \"Site Release\" packages.\nList format is '(site-description site-name directory-on-site).\nSITE-DESCRIPTION is a textual description of the site.  SITE-NAME\nis the internet address of the download site.  DIRECTORY-ON-SITE\nis the directory on the site in which packages may be found.\nThis variable is used to initialize `package-get-remote', the\nvariable actually used to specify package download sites." :tag "Site Release Package download sites" :type '(repeat (list (string :tag "Name") host-name directory)) :group 'package-get)
 
index f02e55e..cad132a 100644 (file)
@@ -1,3 +1,7 @@
+2006-01-28  Vin Shelton  <acs@xemacs.org>
+
+       * XEmacs 21.4.19 is released
+
 2005-12-03  Vin Shelton <acs@xemacs.org>
 
        * XEmacs 21.4.18 is released
index af44b67..16c029e 100644 (file)
        (Vcharset_thai_tis620): Likewise.
        (Vcharset_katakana_jisx0201): Likewise.
 
+2006-01-28  Vin Shelton  <acs@xemacs.org>
+
+       * XEmacs 21.4.19 is released
+
+2006-01-20  Rick Rankin <rrankin1424-xemacs@yahoo.com>
+
+       * sysdir.h: Workaround missing d_ino field from 'struct dirent'.
+
+2005-12-24  Aidan Kehoe  <kehoea@parhasard.net>
+
+       * objects-gtk.c (MAX_FONT_COUNT): Increase MAX_FONT_COUNT from
+       5000 to INT_MAX.
+
+2005-12-05  Dr. Volker Zell  <Dr.Volker.Zell@oracle.com>
+
+       * database.c: Suppress compiler warning under Cygwin.
+       * database.c: Removed __FreeBSD__ check, should be handled by
+        HAVE_U_xxx_T defines.
+
+2005-12-18  Malcolm Purvis  <malcolmp@xemacs.org>
+
+       * console.c (stuff_buffered_input): Compile body only if
+       HAVE_TTY.
+
+2005-05-10  Aidan Kehoe  <kehoea@parhasard.net>
+
+       * callproc.c: #include sysdir.h, so that any appropriate Mule
+       magic happens with the chdir() call when calling a subprocess. 
+
+2005-12-06  Aidan Kehoe  <kehoea@parhasard.net>
+
+       * mule-ccl.c (POSSIBLE_LEADING_BYTE_P): Add.
+       * mule-ccl.c: Check that a character set exists before using it
+       to create a character. 
+
+2005-12-06  Vin Shelton  <acs@xemacs.org>
+
+       * objects-x.c (MAX_FONT_COUNT): Increase MAX_FONT_COUNT from 5000
+       to INT_MAX.
+
 2005-12-03  Vin Shelton <acs@xemacs.org>
 
        * XEmacs 21.4.18 is released
index 47f4f70..2edbee4 100644 (file)
@@ -43,9 +43,10 @@ Boston, MA 02111-1307, USA.  */
 /* glibc 2.1 doesn't have this problem with DB 2.x */
 #if !(defined __GLIBC__ && __GLIBC_MINOR__ >= 1)
 #ifdef HAVE_INTTYPES_H
+#ifndef __BIT_TYPES_DEFINED__
 #define __BIT_TYPES_DEFINED__
+#endif
 #include <inttypes.h>
-#ifndef __FreeBSD__
 #if !HAVE_U_INT8_T
 typedef uint8_t  u_int8_t;
 #endif
@@ -60,7 +61,6 @@ typedef uint32_t u_int32_t;
 typedef uint64_t u_int64_t;
 #endif
 #endif /* WE_DONT_NEED_QUADS */
-#endif /* !defined(__FreeBSD__) */
 #endif /* HAVE_INTTYPES_H */
 #endif /* !(defined __GLIBC__ && __GLIBC_MINOR__ >= 1) */
 /* Berkeley DB wants __STDC__ to be defined; else if does `#define const' */
index 83309a4..fccab69 100644 (file)
@@ -833,6 +833,9 @@ static int stack_idx_of_map_multiple;
       }                                                        \
   } while (0)
 
+#define POSSIBLE_LEADING_BYTE_P(leading_byte) \
+  ((leading_byte > MIN_LEADING_BYTE) && \
+   (leading_byte - MIN_LEADING_BYTE) < NUM_LEADING_BYTES)
 
 /* Set C to the character code made from CHARSET and CODE.  This is
    like MAKE_CHAR but check the validity of CHARSET and CODE.  If they
@@ -1297,6 +1300,16 @@ ccl_driver (struct ccl_program *ccl,
                    reg[rrr] = i;
                    reg[RRR] = LEADING_BYTE_ASCII;
                  }
+               /* Previously, these next two elses were reversed in order,
+                  which should have worked fine, but is more fragile than
+                  this order. */
+               else if (LEADING_BYTE_CONTROL_1 == i)
+                 {
+                   if (src >= src_end)
+                     goto ccl_read_multibyte_character_suspend;
+                   reg[RRR] = i;
+                   reg[rrr] = (*src++ - 0xA0);
+                 }
                else if (i <= MAX_LEADING_BYTE_OFFICIAL_1)
                  {
                    if (src >= src_end)
@@ -1360,15 +1373,29 @@ ccl_driver (struct ccl_program *ccl,
 #ifndef UTF2000
            case CCL_WriteMultibyteChar2:
              i = reg[RRR]; /* charset */
-             if (i == LEADING_BYTE_ASCII || i == LEADING_BYTE_CONTROL_1)
+             if (i == LEADING_BYTE_ASCII) 
                i = reg[rrr] & 0xFF;
-             else if (XCHARSET_DIMENSION (CHARSET_BY_LEADING_BYTE (i)) == 1)
-               i = (((i - FIELD2_TO_OFFICIAL_LEADING_BYTE) << 7)
-                    | (reg[rrr] & 0x7F));
-             else if (i < MAX_LEADING_BYTE_OFFICIAL_2)
-               i = ((i - FIELD1_TO_OFFICIAL_LEADING_BYTE) << 14) | reg[rrr];
-             else
-               i = ((i - FIELD1_TO_PRIVATE_LEADING_BYTE) << 14) | reg[rrr];
+             else if (LEADING_BYTE_CONTROL_1 == i)
+               i = ((reg[rrr] & 0xFF) - 0xA0);
+             else if (POSSIBLE_LEADING_BYTE_P(i) &&
+                      !NILP(CHARSET_BY_LEADING_BYTE(i)))
+               {
+                 if (XCHARSET_DIMENSION (CHARSET_BY_LEADING_BYTE (i)) == 1)
+                   i = (((i - FIELD2_TO_OFFICIAL_LEADING_BYTE) << 7)
+                        | (reg[rrr] & 0x7F));
+                 else if (i < MAX_LEADING_BYTE_OFFICIAL_2)
+                   i = ((i - FIELD1_TO_OFFICIAL_LEADING_BYTE) << 14) 
+                     | reg[rrr];
+                 else
+                   i = ((i - FIELD1_TO_PRIVATE_LEADING_BYTE) << 14) | reg[rrr];
+               }
+             else 
+               {
+                 /* No charset we know about; use U+3012 GETA MARK */
+                 i = MAKE_CHAR
+                   (CHARSET_BY_LEADING_BYTE(LEADING_BYTE_JAPANESE_JISX0208),
+                    34, 46);
+               }
 
              CCL_WRITE_CHAR (i);
 
@@ -1428,7 +1455,6 @@ ccl_driver (struct ccl_program *ccl,
 
                for (;i < j;i++)
                  {
-
                    size = XVECTOR (Vcode_conversion_map_vector)->size;
                    point = XINT (ccl_prog[ic++]);
                    if (point >= size) continue;
index 72fde7c..64bd305 100644 (file)
@@ -481,7 +481,7 @@ vars_of_objects_gtk (void)
 #include <X11/Xatom.h>
 
 /* Unbounded, for sufficiently small values of infinity... */
-#define MAX_FONT_COUNT 5000
+#define MAX_FONT_COUNT INT_MAX
 
 #ifdef MULE
 /* find a font spec that matches font spec FONT and also matches
@@ -529,7 +529,7 @@ gtk_find_charset_font (Lisp_Object device, Lisp_Object font, Lisp_Object charset
 #endif /* MULE */
 
 /* Unbounded, for sufficiently small values of infinity... */
-#define MAX_FONT_COUNT 5000
+#define MAX_FONT_COUNT INT_MAX
 
 static int
 valid_font_name_p (Display *dpy, char *name)
index c3eaffb..ab90516 100644 (file)
@@ -320,6 +320,27 @@ the Assert macro checks for correctness."
        (Assert (equal (file-truename name1) name1)))
 
       (ignore-file-errors (delete-file name1) (delete-file name2))))
+  ;; Is a non-Latin-1 directory name preserved for call-process?
+  (when (and
+        ;; The bug should manifest itself on Windows, but I've no access
+        ;; to a Windows machine to verify that any test works.
+        (eq directory-sep-char ?/)
+        ;; file-name-coding-system on Darwin is _always_ UTF-8--the system
+        ;; enforces this--which coding system we don't have available in
+        ;; 21.4, outside of packages. I could jump through lots of hoops to
+        ;; have the test work anyway, but I'm not really into that right
+        ;; now.
+        (not (eq system-type 'darwin)))
+    (let ((process-coding-system-alist '((".*" . iso-8859-1)))
+         (file-name-coding-system 'iso-8859-1)
+         default-directory)
+      (make-directory (concat (temp-directory) "/\260\354"))
+      (setq file-name-coding-system 'euc-jp)
+      (setq default-directory (format "%s/%c/" (temp-directory)
+                                     (make-char 'japanese-jisx0208 48 108)))
+      (Assert (equal (shell-command-to-string "pwd") 
+                    (format "%s/\260\354\n" (temp-directory))))
+      (delete-directory default-directory)))
 
   ;; Add many more file operation tests here...
 
index 1ebb9f1..62e2978 100644 (file)
 
       ;; this last used to crash
       (parse-partial-sexp point (point-max)))))
+
+;; Test backward-up-list
+;; Known-Bug: report = Evgeny Zacjev ca 2005-12-01, confirm = Aidan Kehoe
+
+(with-temp-buffer
+  ;; We are now using the standard syntax table.  Thus there's no need to
+  ;; worry about a bogus syntax setting, eg, in a Gnus Article buffer the
+  ;; bug doesn't manifest.
+
+  ;; value of point to the immediate left of this character
+  ;;       0          1           2
+  ;;       1234 56789 012 34567 890 12 3456 7
+  (insert "a ( \"b (c\" (\"defg\") \")\") h\n")
+
+  ;; #### This test should check *every* position.
+  (flet ((backward-up-list-moves-point-from-to (start expected-end)
+          (goto-char start)
+          (backward-up-list 1)
+          (= (point) expected-end)))
+    (Known-Bug-Expect-Failure
+     ;; Evgeny's case
+     (Assert (backward-up-list-moves-point-from-to 16 12)))
+    (Assert (backward-up-list-moves-point-from-to 19 12))
+    (Assert (backward-up-list-moves-point-from-to 20 3))
+    (Known-Bug-Expect-Failure
+     (Assert (backward-up-list-moves-point-from-to 22 3)))
+    (Known-Bug-Expect-Failure
+     (Assert (backward-up-list-moves-point-from-to 23 3)))
+    (Assert (backward-up-list-moves-point-from-to 24 3))
+    ;; This is maybe a little tricky, since we don't expect the position
+    ;; check to happen -- so use an illegal expected position
+    ;; I don't think there's any other way for this to fail that way,
+    ;; barring hardware error....
+    (Check-Error-Message syntax-error
+                        "Unbalanced parentheses"
+                        (backward-up-list-moves-point-from-to 25 nil))
+    ;; special-case check that point didn't move
+    (Assert (= (point) 25))))
+