changeset 392:1f50e6fe4f3f r21-2-11

Import from CVS: tag r21-2-11
author cvs
date Mon, 13 Aug 2007 11:10:50 +0200
parents e50d8e68d7a5
children 2e030b8965b1
files CHANGES-beta ChangeLog INSTALL PROBLEMS README.packages configure configure.in configure.usage etc/BETA etc/PACKAGES etc/package-index.LATEST.pgp lib-src/ChangeLog lib-src/config.values.in lib-src/update-autoloads.sh lib-src/update-custom.sh lib-src/update-elc.sh lisp/ChangeLog lisp/about.el lisp/auto-autoloads.el lisp/custom-load.el lisp/dumped-lisp.el lisp/etags.el lisp/menubar-items.el lisp/mule/arabic.el lisp/mule/canna-leim.el lisp/mule/chinese.el lisp/mule/cyrillic.el lisp/mule/english.el lisp/mule/european.el lisp/mule/greek.el lisp/mule/hebrew.el lisp/mule/japanese.el lisp/mule/kinsoku.el lisp/mule/korean.el lisp/mule/misc-lang.el lisp/mule/mule-category.el lisp/mule/mule-ccl.el lisp/mule/mule-charset.el lisp/mule/mule-cmds.el lisp/mule/mule-coding.el lisp/mule/mule-files.el lisp/mule/mule-help.el lisp/mule/mule-init.el lisp/mule/mule-misc.el lisp/mule/mule-tty-init.el lisp/mule/mule-x-init.el lisp/mule/viet-chars.el lisp/package-admin.el lisp/paths.el lisp/process.el lisp/userlock.el lwlib/lwlib.h man/ChangeLog nt/ChangeLog src/ChangeLog src/alloc.c src/console-tty.h src/event-msw.c src/event-stream.c src/event-tty.c src/gdbinit src/glyphs-x.c src/mule-charset.c src/s/bsdos4.h src/s/cygwin32.h src/xintrinsic.h tests/ChangeLog tests/automated/database-tests.el version.sh
diffstat 69 files changed, 7135 insertions(+), 1171 deletions(-) [+]
line wrap: on
line diff
--- a/CHANGES-beta	Mon Aug 13 11:10:04 2007 +0200
+++ b/CHANGES-beta	Mon Aug 13 11:10:50 2007 +0200
@@ -1,4 +1,14 @@
 							-*- indented-text -*-
+to 21.2 beta11 "Calliope"
+-- Dialog box fix from Jan Vroonhof
+-- unified mswindows and tty event loops from Andy Piper
+-- miscellaneous patches from Gleb Arshinov
+-- miscellaneous patches from Charles Waldman and Adrian Aichner
+-- Mule dump time files remerged from mule-base package
+-- Documentation fixes from Jan Vroonhof
+-- 24bit color image fix from Kazuo OISHI
+-- various build fixes from Martin Buchholz
+
 to 21.2 beta10 "Boreas"
 -- package UI fix from Jan Vroonhof
 -- MS Windows NT process fix from Gleb Arshinov
--- a/ChangeLog	Mon Aug 13 11:10:04 2007 +0200
+++ b/ChangeLog	Mon Aug 13 11:10:50 2007 +0200
@@ -1,3 +1,56 @@
+1999-03-01  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+	* XEmacs 21.2.11 is released
+
+1999-02-16  Andy Piper  <andy@xemacs.org>
+
+	* PROBLEMS: add entries for building under Cygwin.
+
+1999-02-14  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+	* README.packages: Clear up that mule-sumo packages is used _in
+	addition_ to the normal sumo.
+
+1999-02-16  Martin Buchholz  <martin@xemacs.org>
+
+	* configure.usage: Move quantify/purify into debug flags section
+
+1999-02-10  Martin Buchholz  <martin@xemacs.org>
+
+	* configure.in: 
+	- Fixup xfs comments and redundant option checking
+
+	* configure.in: 
+	* INSTALL: 
+	* lisp/paths.el:
+	- improved automounter tmp directory support.
+	- support 4 (!) empirically discovered automounter conventions
+
+1999-02-10  Martin Buchholz  <martin@xemacs.org>
+
+	* lwlib/lwlib.h: 
+	- redo CONST hacking to deal with X11 R4, which was 
+	broken in a previous patch.
+
+1999-02-10  Martin Buchholz  <martin@xemacs.org>
+
+	* configure.in: 
+	- irix uses -rpath
+
+1999-02-10  Martin Buchholz  <martin@xemacs.org>
+
+	* configure.in: 
+	- Check for XOpenIM before using xim=xlib
+	- only use XmIm if $have_motif = yes
+
+1999-02-10  Martin Buchholz  <martin@xemacs.org>
+
+	* configure.in.  Port to BSDI BSD/OS 4.0.
+
+1999-01-07  Michael Sperber [Mr. Preprocessor]  <sperber@informatik.uni-tuebingen.de>
+
+	* configure.in: Warn if using Motif dialog boxes on AIX 4.3.
+
 1999-02-05  XEmacs Build Bot <builds@cvs.xemacs.org>
 
 	* XEmacs 21.2.10 is released
--- a/INSTALL	Mon Aug 13 11:10:04 2007 +0200
+++ b/INSTALL	Mon Aug 13 11:10:50 2007 +0200
@@ -396,16 +396,12 @@
 variable should have.  If you don't pay attention to what you are
 doing, you'll make a mistake.
 
-Things may malfunction if the variable `directory-abbrev-alist' is not set
-up to translate "temporary" automounter mount points into the canonical
-form.  The default value of this variable contains the translation
-
-	("^/tmp_mnt/" . "/")
-
-meaning translate "/tmp_mnt/net/FOO" into "/net/FOO", which is appropriate
-for the default configuration of the Sun automounter, but which may be
-inappropriate for different vendor's automounters, or if you have customized
-your mount-point names.
+Things may malfunction if the variable `directory-abbrev-alist' is not
+set up to translate "temporary" automounter mount points into the
+canonical form.  XEmacs tries to detect how your automounter is
+configured.  If you have an unusual automounter configuration that
+XEmacs cannot detect, you may need to change the value of
+`directory-abbrev-alist'.
 
 5) Put into `./lisp/site-init.el' or `./lisp/site-load.el' any Emacs
 Lisp code you want XEmacs to load before it is dumped out.  Use
--- a/PROBLEMS	Mon Aug 13 11:10:04 2007 +0200
+++ b/PROBLEMS	Mon Aug 13 11:10:50 2007 +0200
@@ -119,6 +119,10 @@
 ** AIX
 *** On AIX 4.3, you must specify --with-dialogs=athena with configure
 
+*** The libXt shipped with AIX 4.3 is broken.  This causes xemacs -nw
+    to fail in various ways.  The solution is to build against stock
+    X11R6.
+
 *** On AIX, you get this compiler error message:
 
     Processing include file ./XMenuInt.h
@@ -463,6 +467,61 @@
 Note: Much of the above entry is probably not valid for XEmacs 21.0
 and later.
 
+** Cygwin
+*** In general use etc/check_cygwin_setup.sh to trap environment problems.
+
+The script etc/check_cygwin_setup.sh will attempt to detect whether
+you have a suitable environment for building. This script may not work
+correctly if you are using ash instead of bash (see below).
+
+*** X11 not detected.
+
+This is usually because xmkmf is not in your path or because you are
+using the default cygwin shell. The default cygwin shell (/bin/sh.exe)
+is ash which appears to work in most circumstances but has some wierd
+failure modes. I recommend replacing sh.exe with bash.exe, this will
+mean configure is slower but more reliable.
+
+*** Subprocesses do not work.
+
+You do not have "tty" in your CYGWIN32 (for b19) or CYGWIN (for b20)
+environment variable. This must be set in your autoexec.bat (win95) or
+the system properties (winnt) as it must be read before the cygwin dll
+initializes.
+
+*** ^G does not work on hung subprocesses.
+
+This is a known problem. It can be remedied with cygwin b20 or greater
+by defining BROKEN_SIGIO in src/s/cygwin32.h, however this currently
+leads to instability in XEmacs.
+
+*** The XEmacs executable crashes at startup.
+
+This can be caused by many things.  
+
+If you are running with X11 you need to have cygwin b19 or cygwin
+b20.1 or greater, cygwin b20 will not work.
+
+If you are running with cygwin b19 make sure you are using egcs 1.0.2
+rather than vanilla gcc. XEmacs builds by default with -O3 which does
+not work with the gcc that ships with b19. Alternatively use -O2.
+
+*** The info files will not build.
+
+makeinfo that ships with cygwin (all versions) is a noop. You need to
+obtain makeinfo from somewhere or build it yourself.
+
+*** I have no graphics.
+
+You need to obtain the various graphics libraries. Pre-built versions
+of these and the X libraries are located on the XEmacs website in
+ftp://ftp.xemacs.org/pub/aux/cygwin*.
+
+*** There are no images in the toolbar buttons.
+
+You need version 4.71 of commctrl.dll which does not ship with windows
+95. You can get this by installing IE 4.0 or downloading it from the
+microsoft website.
 
 
 * Problems with running XEmacs
--- a/README.packages	Mon Aug 13 11:10:04 2007 +0200
+++ b/README.packages	Mon Aug 13 11:10:50 2007 +0200
@@ -74,16 +74,16 @@
 
 Those with little time, cheap connections and plenty of disk space can
 install all packages at once using the sumo tarballs.
-Download the files
+Download the file
 
-xemacs-sumo-<date>.tar.gz if you have a latin-1 XEmacs.
+xemacs-sumo-<date>.tar.gz 
 
-or
+For an XEmacs compiled with Mule you also need
 
-xemacs-mule-sumo-<date>.tar.gz if you have a MULE XEmacs.
+xemacs-mule-sumo-<date>.tar.gz
 
-N.B. There are called 'Sumo Tarballs' for good reason. They are
-currently 15MB and 23MB (gzipped) respectively.
+N.B. They are called 'Sumo Tarballs' for good reason. They are
+currently about 15MB and 2.3MB (gzipped) respectively.
 
 Install them by
 
@@ -120,7 +120,7 @@
 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 alreadyin place. 
+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:
--- a/configure	Mon Aug 13 11:10:04 2007 +0200
+++ b/configure	Mon Aug 13 11:10:50 2007 +0200
@@ -2,7 +2,7 @@
 
 #### Configuration script for XEmacs.  Largely divergent from FSF.
 #### Guess values for system-dependent variables and create Makefiles.
-#### Generated automatically using autoconf version 2.12 
+#### Generated automatically using autoconf version 2.13 
 #### Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
 #### Copyright (C) 1993-1995 Board of Trustees, University of Illinois.
 #### Copyright (C) 1996, 1997 Sun Microsystems, Inc.
@@ -199,6 +199,8 @@
 ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&5'
 cross_compiling=no
 
+ac_exeext=
+ac_objext=o
 if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
   # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
   if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
@@ -781,7 +783,7 @@
 fi
 
 echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:785: checking whether ln -s works" >&5
+echo "configure:787: checking whether ln -s works" >&5
 
 rm -f conftestdata
 if ln -s X conftestdata 2>/dev/null
@@ -806,17 +808,26 @@
   fi
 done
 
+
 absolute_pwd="`pwd`";
 if test -n "$PWD" -a "`cd $PWD && pwd`" = "$absolute_pwd"
 then blddir="$PWD"
-else blddir="$absolute_pwd"
+else blddir="$absolute_pwd"; if test -d "/net"; then
+  if test -d "/tmp_mnt/net"; then tdir="tmp_mnt/net"; else tdir="tmp_mnt"; fi
+  blddir=`echo "$blddir" | \
+   sed -e "s|^${tdir}/|/net/|" -e "s|^/a/|/net/|" -e "s|^/amd/|/net/|"`
+fi
 fi
 
 
 case "$srcdir" in
   /* ) ;;
   .  ) srcdir="$blddir" ;;
-  *  ) srcdir="`cd $srcdir && pwd`" ;;
+  *  ) srcdir="`cd $srcdir && pwd`"; if test -d "/net"; then
+  if test -d "/tmp_mnt/net"; then tdir="tmp_mnt/net"; else tdir="tmp_mnt"; fi
+  srcdir=`echo "$srcdir" | \
+   sed -e "s|^${tdir}/|/net/|" -e "s|^/a/|/net/|" -e "s|^/amd/|/net/|"`
+fi ;;
 esac
 
 if test `pwd` != `sh -c cd $srcdir && pwd`  \
@@ -997,7 +1008,7 @@
 
 
 echo $ac_n "checking "host system type"""... $ac_c" 1>&6
-echo "configure:1001: checking "host system type"" >&5
+echo "configure:1012: checking "host system type"" >&5
 internal_configuration=`echo $configuration | sed 's/-\(workshop\)//'`
 canonical=`${CONFIG_SHELL-/bin/sh} $srcdir/config.sub "$internal_configuration"`
 configuration=`echo "$configuration" | sed 's/^\([^-][^-]*-[^-][^-]*-[^-][^-]*\)-.*$/\1/'`
@@ -1370,6 +1381,7 @@
       *-xenix* )		opsys=xenix ;;
       *-sco3.2v4* )		opsys=sco4 NON_GNU_CPP=/lib/cpp  ;;
       *-bsd386* | *-bsdi1* )	opsys=bsd386 ;;
+      *-bsdi4* )		opsys=bsdos4 ;;
       *-bsdi3* )		opsys=bsdos3 ;;
       *-bsdi2.1* )		opsys=bsdos2-1 ;;
       *-bsdi2* )		opsys=bsdos2 ;;
@@ -1486,13 +1498,14 @@
 # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1490: checking for $ac_word" >&5
+echo "configure:1502: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_CC="gcc"
@@ -1512,14 +1525,15 @@
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1516: checking for $ac_word" >&5
+echo "configure:1529: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
   ac_prog_rejected=no
-  for ac_dir in $PATH; do
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
@@ -1553,11 +1567,42 @@
   echo "$ac_t""no" 1>&6
 fi
 
+  if test -z "$CC"; then
+    case "`uname -s`" in
+    *win32* | *WIN32*)
+      # Extract the first word of "cl", so it can be a program name with args.
+set dummy cl; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1577: checking for $ac_word" >&5
+
+if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_CC="cl"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+ ;;
+    esac
+  fi
   test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1561: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1606: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
 ac_ext=c
 xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS'
@@ -1568,12 +1613,14 @@
 ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&5'
 cross_compiling=no
 
-cat > conftest.$ac_ext <<EOF
-#line 1573 "configure"
-#include "confdefs.h"
+cat > conftest.$ac_ext << EOF
+
+#line 1619 "configure"
+#include "confdefs.h"
+
 main(){return(0);}
 EOF
-if { (eval echo configure:1577: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1624: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -1587,25 +1634,33 @@
   ac_cv_prog_cc_works=no
 fi
 rm -fr conftest*
+ac_ext=c
+xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS'
+xe_ldflags='$LDFLAGS $ld_switch_site $ld_switch_machine $ld_switch_system $ld_switch_x_site $ld_switch_run'
+xe_libs='$ld_call_shared $xe_check_libs $X_EXTRA_LIBS $libs_x $X_PRE_LIBS $LIBS $libs_machine $libs_system $libs_standard'
+ac_cpp='$CPP '"$xe_cppflags"
+ac_compile='${CC-cc} -c $CFLAGS '"$xe_cppflags"' conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&5'
+cross_compiling=no
 
 echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
 if test $ac_cv_prog_cc_works = no; then
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1597: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1652: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1602: checking whether we are using GNU C" >&5
+echo "configure:1657: checking whether we are using GNU C" >&5
 
 cat > conftest.c <<EOF
 #ifdef __GNUC__
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1609: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1664: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -1615,11 +1670,15 @@
 
 if test $ac_cv_prog_gcc = yes; then
   GCC=yes
-  ac_test_CFLAGS="${CFLAGS+set}"
-  ac_save_CFLAGS="$CFLAGS"
-  CFLAGS=
-  echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1623: checking whether ${CC-cc} accepts -g" >&5
+else
+  GCC=
+fi
+
+ac_test_CFLAGS="${CFLAGS+set}"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS=
+echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+echo "configure:1682: checking whether ${CC-cc} accepts -g" >&5
 
 echo 'void f(){}' > conftest.c
 if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
@@ -1631,16 +1690,20 @@
 
 
 echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
-  if test "$ac_test_CFLAGS" = set; then
-    CFLAGS="$ac_save_CFLAGS"
-  elif test $ac_cv_prog_cc_g = yes; then
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS="$ac_save_CFLAGS"
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
     CFLAGS="-g -O2"
   else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
     CFLAGS="-O2"
-  fi
-else
-  GCC=
-  test "${CFLAGS+set}" = set || CFLAGS="-g"
+  else
+    CFLAGS=
+  fi
 fi
  
 if   test "$with_gcc" = "no"  -a "$GCC" = "yes"; then
@@ -1648,13 +1711,14 @@
   # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1652: checking for $ac_word" >&5
+echo "configure:1715: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_CC="gcc"
@@ -1674,14 +1738,15 @@
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1678: checking for $ac_word" >&5
+echo "configure:1742: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
   ac_prog_rejected=no
-  for ac_dir in $PATH; do
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
@@ -1715,11 +1780,42 @@
   echo "$ac_t""no" 1>&6
 fi
 
+  if test -z "$CC"; then
+    case "`uname -s`" in
+    *win32* | *WIN32*)
+      # Extract the first word of "cl", so it can be a program name with args.
+set dummy cl; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1790: checking for $ac_word" >&5
+
+if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_CC="cl"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+ ;;
+    esac
+  fi
   test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1723: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1819: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
 ac_ext=c
 xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS'
@@ -1730,12 +1826,14 @@
 ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&5'
 cross_compiling=no
 
-cat > conftest.$ac_ext <<EOF
-#line 1735 "configure"
-#include "confdefs.h"
+cat > conftest.$ac_ext << EOF
+
+#line 1832 "configure"
+#include "confdefs.h"
+
 main(){return(0);}
 EOF
-if { (eval echo configure:1739: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1837: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -1749,25 +1847,33 @@
   ac_cv_prog_cc_works=no
 fi
 rm -fr conftest*
+ac_ext=c
+xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS'
+xe_ldflags='$LDFLAGS $ld_switch_site $ld_switch_machine $ld_switch_system $ld_switch_x_site $ld_switch_run'
+xe_libs='$ld_call_shared $xe_check_libs $X_EXTRA_LIBS $libs_x $X_PRE_LIBS $LIBS $libs_machine $libs_system $libs_standard'
+ac_cpp='$CPP '"$xe_cppflags"
+ac_compile='${CC-cc} -c $CFLAGS '"$xe_cppflags"' conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&5'
+cross_compiling=no
 
 echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
 if test $ac_cv_prog_cc_works = no; then
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1759: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1865: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1764: checking whether we are using GNU C" >&5
+echo "configure:1870: checking whether we are using GNU C" >&5
 
 cat > conftest.c <<EOF
 #ifdef __GNUC__
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1771: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1877: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -1777,11 +1883,15 @@
 
 if test $ac_cv_prog_gcc = yes; then
   GCC=yes
-  ac_test_CFLAGS="${CFLAGS+set}"
-  ac_save_CFLAGS="$CFLAGS"
-  CFLAGS=
-  echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1785: checking whether ${CC-cc} accepts -g" >&5
+else
+  GCC=
+fi
+
+ac_test_CFLAGS="${CFLAGS+set}"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS=
+echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+echo "configure:1895: checking whether ${CC-cc} accepts -g" >&5
 
 echo 'void f(){}' > conftest.c
 if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
@@ -1793,16 +1903,20 @@
 
 
 echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
-  if test "$ac_test_CFLAGS" = set; then
-    CFLAGS="$ac_save_CFLAGS"
-  elif test $ac_cv_prog_cc_g = yes; then
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS="$ac_save_CFLAGS"
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
     CFLAGS="-g -O2"
   else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
     CFLAGS="-O2"
-  fi
-else
-  GCC=
-  test "${CFLAGS+set}" = set || CFLAGS="-g"
+  else
+    CFLAGS=
+  fi
 fi
 
 elif test "$with_gcc" = "yes" -a "$GCC" != "yes" ; then
@@ -1810,13 +1924,14 @@
   # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1814: checking for $ac_word" >&5
+echo "configure:1928: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_CC="gcc"
@@ -1836,14 +1951,15 @@
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1840: checking for $ac_word" >&5
+echo "configure:1955: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
   ac_prog_rejected=no
-  for ac_dir in $PATH; do
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
@@ -1877,11 +1993,42 @@
   echo "$ac_t""no" 1>&6
 fi
 
+  if test -z "$CC"; then
+    case "`uname -s`" in
+    *win32* | *WIN32*)
+      # Extract the first word of "cl", so it can be a program name with args.
+set dummy cl; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:2003: checking for $ac_word" >&5
+
+if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_CC="cl"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+ ;;
+    esac
+  fi
   test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1885: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:2032: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
 ac_ext=c
 xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS'
@@ -1892,12 +2039,14 @@
 ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&5'
 cross_compiling=no
 
-cat > conftest.$ac_ext <<EOF
-#line 1897 "configure"
-#include "confdefs.h"
+cat > conftest.$ac_ext << EOF
+
+#line 2045 "configure"
+#include "confdefs.h"
+
 main(){return(0);}
 EOF
-if { (eval echo configure:1901: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2050: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -1911,25 +2060,33 @@
   ac_cv_prog_cc_works=no
 fi
 rm -fr conftest*
+ac_ext=c
+xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS'
+xe_ldflags='$LDFLAGS $ld_switch_site $ld_switch_machine $ld_switch_system $ld_switch_x_site $ld_switch_run'
+xe_libs='$ld_call_shared $xe_check_libs $X_EXTRA_LIBS $libs_x $X_PRE_LIBS $LIBS $libs_machine $libs_system $libs_standard'
+ac_cpp='$CPP '"$xe_cppflags"
+ac_compile='${CC-cc} -c $CFLAGS '"$xe_cppflags"' conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&5'
+cross_compiling=no
 
 echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
 if test $ac_cv_prog_cc_works = no; then
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1921: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:2078: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1926: checking whether we are using GNU C" >&5
+echo "configure:2083: checking whether we are using GNU C" >&5
 
 cat > conftest.c <<EOF
 #ifdef __GNUC__
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1933: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2090: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -1939,11 +2096,15 @@
 
 if test $ac_cv_prog_gcc = yes; then
   GCC=yes
-  ac_test_CFLAGS="${CFLAGS+set}"
-  ac_save_CFLAGS="$CFLAGS"
-  CFLAGS=
-  echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1947: checking whether ${CC-cc} accepts -g" >&5
+else
+  GCC=
+fi
+
+ac_test_CFLAGS="${CFLAGS+set}"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS=
+echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+echo "configure:2108: checking whether ${CC-cc} accepts -g" >&5
 
 echo 'void f(){}' > conftest.c
 if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
@@ -1955,16 +2116,20 @@
 
 
 echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
-  if test "$ac_test_CFLAGS" = set; then
-    CFLAGS="$ac_save_CFLAGS"
-  elif test $ac_cv_prog_cc_g = yes; then
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS="$ac_save_CFLAGS"
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
     CFLAGS="-g -O2"
   else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
     CFLAGS="-O2"
-  fi
-else
-  GCC=
-  test "${CFLAGS+set}" = set || CFLAGS="-g"
+  else
+    CFLAGS=
+  fi
 fi
 
 fi
@@ -1976,7 +2141,7 @@
 test -n "$NON_GNU_CPP" -a "$GCC" != "yes" -a -z "$CPP" && CPP="$NON_GNU_CPP"
 
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1980: checking how to run the C preprocessor" >&5
+echo "configure:2145: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -1989,14 +2154,14 @@
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 1993 "configure"
+#line 2158 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1999: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:2164: \"$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
   :
 else
@@ -2006,14 +2171,31 @@
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 2010 "configure"
+#line 2175 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2016: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:2181: \"$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
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  CPP="${CC-cc} -nologo -E"
+  cat > conftest.$ac_ext <<EOF
+#line 2192 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2198: \"$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
   :
 else
@@ -2026,6 +2208,8 @@
 rm -f conftest*
 fi
 rm -f conftest*
+fi
+rm -f conftest*
   ac_cv_prog_CPP="$CPP"
   CPP="$ac_cv_prog_CPP"
 else
@@ -2035,9 +2219,9 @@
 
 
 echo $ac_n "checking for AIX""... $ac_c" 1>&6
-echo "configure:2039: checking for AIX" >&5
-cat > conftest.$ac_ext <<EOF
-#line 2041 "configure"
+echo "configure:2223: checking for AIX" >&5
+cat > conftest.$ac_ext <<EOF
+#line 2225 "configure"
 #include "confdefs.h"
 #ifdef _AIX
   yes
@@ -2064,9 +2248,9 @@
 
 
 echo $ac_n "checking for GNU libc""... $ac_c" 1>&6
-echo "configure:2068: checking for GNU libc" >&5
-cat > conftest.$ac_ext <<EOF
-#line 2070 "configure"
+echo "configure:2252: checking for GNU libc" >&5
+cat > conftest.$ac_ext <<EOF
+#line 2254 "configure"
 #include "confdefs.h"
 #include <features.h>
 int main() {
@@ -2078,7 +2262,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:2082: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2266: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   have_glibc=yes
 else
@@ -2100,7 +2284,7 @@
 
 
 cat > conftest.$ac_ext <<EOF
-#line 2104 "configure"
+#line 2288 "configure"
 #include "confdefs.h"
 int main () {
 #if defined __SUNPRO_C
@@ -2112,7 +2296,7 @@
 #endif
 }
 EOF
-if { (eval echo configure:2116: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:2300: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   :
 else
@@ -2380,7 +2564,7 @@
  fi
 
 echo $ac_n "checking for dynodump""... $ac_c" 1>&6
-echo "configure:2384: checking for dynodump" >&5
+echo "configure:2568: checking for dynodump" >&5
 if test "$unexec" != "unexsol2.o"; then
   echo "$ac_t""no" 1>&6
 else
@@ -2418,12 +2602,12 @@
   done
   
 echo $ac_n "checking for terminateAndUnload in -lC""... $ac_c" 1>&6
-echo "configure:2422: checking for terminateAndUnload in -lC" >&5
+echo "configure:2606: checking for terminateAndUnload in -lC" >&5
 ac_lib_var=`echo C'_'terminateAndUnload | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lC "
 cat > conftest.$ac_ext <<EOF
-#line 2427 "configure"
+#line 2611 "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
@@ -2434,7 +2618,7 @@
 terminateAndUnload()
 ; return 0; }
 EOF
-if { (eval echo configure:2438: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2622: \"$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
@@ -2538,10 +2722,10 @@
 
 if test "$add_runtime_path" = "yes"; then
       echo $ac_n "checking "for runtime libraries flag"""... $ac_c" 1>&6
-echo "configure:2542: checking "for runtime libraries flag"" >&5
+echo "configure:2726: checking "for runtime libraries flag"" >&5
   case "$opsys" in
     sol2 ) dash_r="-R" ;;
-    decosf* | linux* ) dash_r="-rpath " ;;
+    decosf* | linux* | irix*) dash_r="-rpath " ;;
     *)
       dash_r=""
       for try_dash_r in "-R" "-R " "-rpath "; do
@@ -2560,14 +2744,14 @@
   done
 fi
         cat > conftest.$ac_ext <<EOF
-#line 2564 "configure"
-#include "confdefs.h"
-
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:2571: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+#line 2748 "configure"
+#include "confdefs.h"
+
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:2755: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   dash_r="$try_dash_r"
 else
@@ -2669,10 +2853,10 @@
 fi
 after_morecore_hook_exists=yes
 echo $ac_n "checking for malloc_get_state""... $ac_c" 1>&6
-echo "configure:2673: checking for malloc_get_state" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 2676 "configure"
+echo "configure:2857: checking for malloc_get_state" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 2860 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char malloc_get_state(); below.  */
@@ -2695,7 +2879,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:2699: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2883: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_malloc_get_state=yes"
 else
@@ -2715,10 +2899,10 @@
 fi
 
 echo $ac_n "checking for malloc_set_state""... $ac_c" 1>&6
-echo "configure:2719: checking for malloc_set_state" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 2722 "configure"
+echo "configure:2903: checking for malloc_set_state" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 2906 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char malloc_set_state(); below.  */
@@ -2741,7 +2925,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:2745: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2929: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_malloc_set_state=yes"
 else
@@ -2761,16 +2945,16 @@
 fi
 
 echo $ac_n "checking whether __after_morecore_hook exists""... $ac_c" 1>&6
-echo "configure:2765: checking whether __after_morecore_hook exists" >&5
-cat > conftest.$ac_ext <<EOF
-#line 2767 "configure"
+echo "configure:2949: checking whether __after_morecore_hook exists" >&5
+cat > conftest.$ac_ext <<EOF
+#line 2951 "configure"
 #include "confdefs.h"
 extern void (* __after_morecore_hook)();
 int main() {
 __after_morecore_hook = 0
 ; return 0; }
 EOF
-if { (eval echo configure:2774: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2958: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -2829,13 +3013,14 @@
 # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2833: checking for $ac_word" >&5
+echo "configure:3017: checking for $ac_word" >&5
 
 if test -n "$RANLIB"; then
   ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
 else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_RANLIB="ranlib"
@@ -2878,26 +3063,28 @@
 # SunOS /usr/etc/install
 # IRIX /sbin/install
 # AIX /bin/install
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
 # AFS /usr/afsws/bin/install, which mishandles nonexistent args
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:2886: checking for a BSD compatible install" >&5
+echo "configure:3072: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
 
-  IFS="${IFS= 	}"; ac_save_IFS="$IFS"; IFS="${IFS}:"
+  IFS="${IFS= 	}"; ac_save_IFS="$IFS"; IFS=":"
   for ac_dir in $PATH; do
     # Account for people who put trailing slashes in PATH elements.
     case "$ac_dir/" in
     /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
     *)
       # OSF1 and SCO ODT 3.0 have their own names for install.
-      for ac_prog in ginstall installbsd scoinst install; do
+      # Don't use installbsd from OSF since it installs stuff as root
+      # by default.
+      for ac_prog in ginstall scoinst install; do
         if test -f $ac_dir/$ac_prog; then
 	  if test $ac_prog = install &&
             grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
 	    # AIX install.  It has an incompatible calling convention.
-	    # OSF/1 installbsd also uses dspmsg, but is usable.
 	    :
 	  else
 	    ac_cv_path_install="$ac_dir/$ac_prog -c"
@@ -2926,6 +3113,8 @@
 # It thinks the first close brace ends the variable substitution.
 test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
 
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
+
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
 for ac_prog in 'bison -y' byacc
@@ -2933,13 +3122,14 @@
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2937: checking for $ac_word" >&5
+echo "configure:3126: checking for $ac_word" >&5
 
 if test -n "$YACC"; then
   ac_cv_prog_YACC="$YACC" # Let the user override the test.
 else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_YACC="$ac_prog"
@@ -2964,16 +3154,16 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2968: checking for $ac_hdr" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 2971 "configure"
+echo "configure:3158: checking for $ac_hdr" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3161 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2976: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:3166: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -3005,16 +3195,16 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3009: checking for $ac_hdr" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3012 "configure"
+echo "configure:3199: checking for $ac_hdr" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3202 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3017: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:3207: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -3046,16 +3236,16 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3050: checking for $ac_hdr" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3053 "configure"
+echo "configure:3240: checking for $ac_hdr" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3243 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3058: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:3248: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -3084,10 +3274,10 @@
 done
 
 echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
-echo "configure:3088: checking for sys/wait.h that is POSIX.1 compatible" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3091 "configure"
+echo "configure:3278: checking for sys/wait.h that is POSIX.1 compatible" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3281 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/wait.h>
@@ -3103,7 +3293,7 @@
 s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
 ; return 0; }
 EOF
-if { (eval echo configure:3107: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3297: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_sys_wait_h=yes
 else
@@ -3127,10 +3317,10 @@
 fi
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:3131: checking for ANSI C header files" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3134 "configure"
+echo "configure:3321: checking for ANSI C header files" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3324 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -3138,8 +3328,8 @@
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3142: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:3332: \"$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_cv_header_stdc=yes
@@ -3155,7 +3345,7 @@
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 3159 "configure"
+#line 3349 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -3173,7 +3363,7 @@
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 3177 "configure"
+#line 3367 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -3191,7 +3381,7 @@
 if test $ac_cv_header_stdc = yes; then
   # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
 cat > conftest.$ac_ext <<EOF
-#line 3195 "configure"
+#line 3385 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -3202,7 +3392,7 @@
 exit (0); }
 
 EOF
-if { (eval echo configure:3206: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:3396: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   :
 else
@@ -3228,10 +3418,10 @@
 fi
 
 echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:3232: checking whether time.h and sys/time.h may both be included" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3235 "configure"
+echo "configure:3422: checking whether time.h and sys/time.h may both be included" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3425 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
@@ -3240,7 +3430,7 @@
 struct tm *tp;
 ; return 0; }
 EOF
-if { (eval echo configure:3244: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3434: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_time=yes
 else
@@ -3264,10 +3454,10 @@
 fi
 
 echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6
-echo "configure:3268: checking for sys_siglist declaration in signal.h or unistd.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3271 "configure"
+echo "configure:3458: checking for sys_siglist declaration in signal.h or unistd.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3461 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -3279,7 +3469,7 @@
 char *msg = *(sys_siglist + 1);
 ; return 0; }
 EOF
-if { (eval echo configure:3283: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3473: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_decl_sys_siglist=yes
 else
@@ -3304,9 +3494,9 @@
 
 
 echo $ac_n "checking for struct utimbuf""... $ac_c" 1>&6
-echo "configure:3308: checking for struct utimbuf" >&5
-cat > conftest.$ac_ext <<EOF
-#line 3310 "configure"
+echo "configure:3498: checking for struct utimbuf" >&5
+cat > conftest.$ac_ext <<EOF
+#line 3500 "configure"
 #include "confdefs.h"
 #ifdef TIME_WITH_SYS_TIME
 #include <sys/time.h>
@@ -3325,7 +3515,7 @@
 static struct utimbuf x; x.actime = x.modtime;
 ; return 0; }
 EOF
-if { (eval echo configure:3329: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3519: \"$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
@@ -3345,10 +3535,10 @@
 rm -f conftest*
 
 echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:3349: checking return type of signal handlers" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3352 "configure"
+echo "configure:3539: checking return type of signal handlers" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3542 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -3365,7 +3555,7 @@
 int i;
 ; return 0; }
 EOF
-if { (eval echo configure:3369: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3559: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_type_signal=void
 else
@@ -3387,10 +3577,10 @@
 
 
 echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:3391: checking for size_t" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3394 "configure"
+echo "configure:3581: checking for size_t" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3584 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3399,7 +3589,7 @@
 #endif
 EOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  egrep "(^|[^a-zA-Z_0-9])size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
   rm -rf conftest*
   ac_cv_type_size_t=yes
 else
@@ -3421,10 +3611,10 @@
 fi
 
 echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:3425: checking for pid_t" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3428 "configure"
+echo "configure:3615: checking for pid_t" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3618 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3433,7 +3623,7 @@
 #endif
 EOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "pid_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  egrep "(^|[^a-zA-Z_0-9])pid_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
   rm -rf conftest*
   ac_cv_type_pid_t=yes
 else
@@ -3455,10 +3645,10 @@
 fi
 
 echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:3459: checking for uid_t in sys/types.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3462 "configure"
+echo "configure:3649: checking for uid_t in sys/types.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3652 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 EOF
@@ -3494,10 +3684,10 @@
 fi
 
 echo $ac_n "checking for mode_t""... $ac_c" 1>&6
-echo "configure:3498: checking for mode_t" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3501 "configure"
+echo "configure:3688: checking for mode_t" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3691 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3506,7 +3696,7 @@
 #endif
 EOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "mode_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  egrep "(^|[^a-zA-Z_0-9])mode_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
   rm -rf conftest*
   ac_cv_type_mode_t=yes
 else
@@ -3528,10 +3718,10 @@
 fi
 
 echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:3532: checking for off_t" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3535 "configure"
+echo "configure:3722: checking for off_t" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3725 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3540,7 +3730,7 @@
 #endif
 EOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "off_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  egrep "(^|[^a-zA-Z_0-9])off_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
   rm -rf conftest*
   ac_cv_type_off_t=yes
 else
@@ -3563,9 +3753,9 @@
 
 
 echo $ac_n "checking for struct timeval""... $ac_c" 1>&6
-echo "configure:3567: checking for struct timeval" >&5
-cat > conftest.$ac_ext <<EOF
-#line 3569 "configure"
+echo "configure:3757: checking for struct timeval" >&5
+cat > conftest.$ac_ext <<EOF
+#line 3759 "configure"
 #include "confdefs.h"
 #ifdef TIME_WITH_SYS_TIME
 #include <sys/time.h>
@@ -3581,7 +3771,7 @@
 static struct timeval x; x.tv_sec = x.tv_usec;
 ; return 0; }
 EOF
-if { (eval echo configure:3585: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3775: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
   HAVE_TIMEVAL=yes
@@ -3603,10 +3793,10 @@
 rm -f conftest*
 
 echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6
-echo "configure:3607: checking whether struct tm is in sys/time.h or time.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3610 "configure"
+echo "configure:3797: checking whether struct tm is in sys/time.h or time.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3800 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <time.h>
@@ -3614,7 +3804,7 @@
 struct tm *tp; tp->tm_sec;
 ; return 0; }
 EOF
-if { (eval echo configure:3618: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3808: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_struct_tm=time.h
 else
@@ -3638,10 +3828,10 @@
 fi
 
 echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6
-echo "configure:3642: checking for tm_zone in struct tm" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3645 "configure"
+echo "configure:3832: checking for tm_zone in struct tm" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3835 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <$ac_cv_struct_tm>
@@ -3649,7 +3839,7 @@
 struct tm tm; tm.tm_zone;
 ; return 0; }
 EOF
-if { (eval echo configure:3653: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3843: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_struct_tm_zone=yes
 else
@@ -3672,10 +3862,10 @@
 
 else
   echo $ac_n "checking for tzname""... $ac_c" 1>&6
-echo "configure:3676: checking for tzname" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3679 "configure"
+echo "configure:3866: checking for tzname" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3869 "configure"
 #include "confdefs.h"
 #include <time.h>
 #ifndef tzname /* For SGI.  */
@@ -3685,7 +3875,7 @@
 atoi(*tzname);
 ; return 0; }
 EOF
-if { (eval echo configure:3689: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3879: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_var_tzname=yes
 else
@@ -3711,10 +3901,10 @@
 
 
 echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:3715: checking for working const" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3718 "configure"
+echo "configure:3905: checking for working const" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3908 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -3763,7 +3953,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:3767: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3957: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_const=yes
 else
@@ -3788,7 +3978,7 @@
 
 
 echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:3792: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:3982: checking whether ${MAKE-make} sets \${MAKE}" >&5
 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
 
 cat > conftestmake <<\EOF
@@ -3813,12 +4003,12 @@
 
 
 echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
-echo "configure:3817: checking whether byte ordering is bigendian" >&5
+echo "configure:4007: checking whether byte ordering is bigendian" >&5
 
 ac_cv_c_bigendian=unknown
 # See if sys/param.h defines the BYTE_ORDER macro.
 cat > conftest.$ac_ext <<EOF
-#line 3822 "configure"
+#line 4012 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -3829,11 +4019,11 @@
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:3833: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4023: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   # It does; now see whether it defined to BIG_ENDIAN or not.
 cat > conftest.$ac_ext <<EOF
-#line 3837 "configure"
+#line 4027 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -3844,7 +4034,7 @@
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:3848: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4038: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_bigendian=yes
 else
@@ -3861,7 +4051,7 @@
 rm -f conftest*
 if test $ac_cv_c_bigendian = unknown; then
 cat > conftest.$ac_ext <<EOF
-#line 3865 "configure"
+#line 4055 "configure"
 #include "confdefs.h"
 main () {
   /* Are we little or big endian?  From Harbison&Steele.  */
@@ -3874,7 +4064,7 @@
   exit (u.c[sizeof (long) - 1] == 1);
 }
 EOF
-if { (eval echo configure:3878: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4068: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_c_bigendian=no
 else
@@ -3901,10 +4091,10 @@
 
 
 echo $ac_n "checking size of short""... $ac_c" 1>&6
-echo "configure:3905: checking size of short" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3908 "configure"
+echo "configure:4095: checking size of short" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 4098 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -3915,7 +4105,7 @@
   exit(0);
 }
 EOF
-if { (eval echo configure:3919: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4109: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_sizeof_short=`cat conftestval`
 else
@@ -3943,10 +4133,10 @@
   exit 1
 fi
 echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:3947: checking size of int" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3950 "configure"
+echo "configure:4137: checking size of int" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 4140 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -3957,7 +4147,7 @@
   exit(0);
 }
 EOF
-if { (eval echo configure:3961: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4151: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_sizeof_int=`cat conftestval`
 else
@@ -3979,10 +4169,10 @@
 
 
 echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:3983: checking size of long" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3986 "configure"
+echo "configure:4173: checking size of long" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 4176 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -3993,7 +4183,7 @@
   exit(0);
 }
 EOF
-if { (eval echo configure:3997: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4187: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_sizeof_long=`cat conftestval`
 else
@@ -4015,10 +4205,10 @@
 
 
 echo $ac_n "checking size of long long""... $ac_c" 1>&6
-echo "configure:4019: checking size of long long" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 4022 "configure"
+echo "configure:4209: checking size of long long" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 4212 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -4029,7 +4219,7 @@
   exit(0);
 }
 EOF
-if { (eval echo configure:4033: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4223: \"$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
@@ -4051,10 +4241,10 @@
 
 
 echo $ac_n "checking size of void *""... $ac_c" 1>&6
-echo "configure:4055: checking size of void *" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 4058 "configure"
+echo "configure:4245: checking size of void *" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 4248 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -4065,7 +4255,7 @@
   exit(0);
 }
 EOF
-if { (eval echo configure:4069: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4259: \"$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
@@ -4088,7 +4278,7 @@
 
 
 echo $ac_n "checking for long file names""... $ac_c" 1>&6
-echo "configure:4092: checking for long file names" >&5
+echo "configure:4282: 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:
@@ -4135,12 +4325,12 @@
 
 
 echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6
-echo "configure:4139: checking for sin in -lm" >&5
+echo "configure:4329: 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 4144 "configure"
+#line 4334 "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
@@ -4151,7 +4341,7 @@
 sin()
 ; return 0; }
 EOF
-if { (eval echo configure:4155: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4345: \"$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
@@ -4193,14 +4383,14 @@
 
 
 cat > conftest.$ac_ext <<EOF
-#line 4197 "configure"
+#line 4387 "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:4204: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4394: \"$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
@@ -4217,7 +4407,7 @@
 rm -f conftest*
 
 echo "checking type of mail spool file locking" 1>&6
-echo "configure:4221: checking type of mail spool file locking" >&5
+echo "configure:4411: checking type of mail spool file locking" >&5
 test -z "$mail_locking" -a "$mail_use_flock" = "yes" && mail_locking=flock
 test -z "$mail_locking" -a "$mail_use_lockf" = "yes" && mail_locking=lockf
 if   test "$mail_locking" = "lockf"; then { test "$extra_verbose" = "yes" && cat << \EOF
@@ -4241,12 +4431,12 @@
 
 
 echo $ac_n "checking for kstat_open in -lkstat""... $ac_c" 1>&6
-echo "configure:4245: checking for kstat_open in -lkstat" >&5
+echo "configure:4435: 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 4250 "configure"
+#line 4440 "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
@@ -4257,7 +4447,7 @@
 kstat_open()
 ; return 0; }
 EOF
-if { (eval echo configure:4261: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4451: \"$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
@@ -4291,12 +4481,12 @@
 
 
 echo $ac_n "checking for kvm_read in -lkvm""... $ac_c" 1>&6
-echo "configure:4295: checking for kvm_read in -lkvm" >&5
+echo "configure:4485: 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 4300 "configure"
+#line 4490 "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
@@ -4307,7 +4497,7 @@
 kvm_read()
 ; return 0; }
 EOF
-if { (eval echo configure:4311: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4501: \"$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
@@ -4342,12 +4532,12 @@
 case "$opsys" in decosf*)
   
 echo $ac_n "checking for cma_open in -lpthreads""... $ac_c" 1>&6
-echo "configure:4346: checking for cma_open in -lpthreads" >&5
+echo "configure:4536: 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 4351 "configure"
+#line 4541 "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
@@ -4358,7 +4548,7 @@
 cma_open()
 ; return 0; }
 EOF
-if { (eval echo configure:4362: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4552: \"$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
@@ -4394,7 +4584,7 @@
 esac
 
 echo $ac_n "checking whether the -xildoff compiler flag is required""... $ac_c" 1>&6
-echo "configure:4398: checking whether the -xildoff compiler flag is required" >&5
+echo "configure:4588: 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;
@@ -4405,7 +4595,7 @@
 
 if test "$opsys" = "sol2" && test "$OS_RELEASE" -ge 56; then
   echo $ac_n "checking for \"-z ignore\" linker flag""... $ac_c" 1>&6
-echo "configure:4409: checking for \"-z ignore\" linker flag" >&5
+echo "configure:4599: 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 ;;
@@ -4415,7 +4605,7 @@
 
 
 echo "checking "for specified window system"" 1>&6
-echo "configure:4419: checking "for specified window system"" >&5
+echo "configure:4609: checking "for specified window system"" >&5
 
 if test "$with_x11" != "no"; then
     test "$x_includes $x_libraries" != "NONE NONE" && \
@@ -4448,7 +4638,7 @@
 # Uses ac_ vars as temps to allow command line to override cache and checks.
 # --without-x overrides everything else, but does not touch the cache.
 echo $ac_n "checking for X""... $ac_c" 1>&6
-echo "configure:4452: checking for X" >&5
+echo "configure:4642: checking for X" >&5
 
 # Check whether --with-x or --without-x was given.
 if test "${with_x+set}" = set; then
@@ -4508,13 +4698,13 @@
 
   # First, try using that file with no special directory specified.
 cat > conftest.$ac_ext <<EOF
-#line 4512 "configure"
+#line 4702 "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:4517: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:4707: \"$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*
   # We can compile using X headers with no special include directory.
@@ -4582,14 +4772,14 @@
   ac_save_LIBS="$LIBS"
   LIBS="-l$x_direct_test_library $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4586 "configure"
+#line 4776 "configure"
 #include "confdefs.h"
 
 int main() {
 ${x_direct_test_function}()
 ; return 0; }
 EOF
-if { (eval echo configure:4593: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4783: \"$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.
@@ -4698,17 +4888,17 @@
     case "`(uname -sr) 2>/dev/null`" in
     "SunOS 5"*)
       echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6
-echo "configure:4702: checking whether -R must be followed by a space" >&5
+echo "configure:4892: 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 4705 "configure"
-#include "confdefs.h"
-
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:4712: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+#line 4895 "configure"
+#include "confdefs.h"
+
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:4902: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_nospace=yes
 else
@@ -4724,14 +4914,14 @@
       else
 	LIBS="$ac_xsave_LIBS -R $x_libraries"
 	cat > conftest.$ac_ext <<EOF
-#line 4728 "configure"
-#include "confdefs.h"
-
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:4735: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+#line 4918 "configure"
+#include "confdefs.h"
+
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:4925: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_space=yes
 else
@@ -4767,12 +4957,12 @@
 else
 
 echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6
-echo "configure:4771: checking for dnet_ntoa in -ldnet" >&5
+echo "configure:4961: 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 4776 "configure"
+#line 4966 "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
@@ -4783,7 +4973,7 @@
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:4787: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4977: \"$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
@@ -4807,12 +4997,12 @@
     if test $ac_cv_lib_dnet_dnet_ntoa = no; then
       
 echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6
-echo "configure:4811: checking for dnet_ntoa in -ldnet_stub" >&5
+echo "configure:5001: 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 4816 "configure"
+#line 5006 "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
@@ -4823,7 +5013,7 @@
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:4827: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5017: \"$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
@@ -4852,10 +5042,10 @@
     # The nsl library prevents programs from opening the X display
     # on Irix 5.2, according to dickey@clark.net.
     echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6
-echo "configure:4856: checking for gethostbyname" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 4859 "configure"
+echo "configure:5046: checking for gethostbyname" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 5049 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char gethostbyname(); below.  */
@@ -4878,7 +5068,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:4882: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5072: \"$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
@@ -4899,12 +5089,12 @@
     if test $ac_cv_func_gethostbyname = no; then
       
 echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:4903: checking for gethostbyname in -lnsl" >&5
+echo "configure:5093: 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 4908 "configure"
+#line 5098 "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
@@ -4915,7 +5105,7 @@
 gethostbyname()
 ; return 0; }
 EOF
-if { (eval echo configure:4919: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5109: \"$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
@@ -4945,10 +5135,10 @@
     # -lsocket must be given before -lnsl if both are needed.
     # We assume that if connect needs -lnsl, so does gethostbyname.
     echo $ac_n "checking for connect""... $ac_c" 1>&6
-echo "configure:4949: checking for connect" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 4952 "configure"
+echo "configure:5139: checking for connect" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 5142 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char connect(); below.  */
@@ -4971,7 +5161,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:4975: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5165: \"$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
@@ -4994,12 +5184,12 @@
 xe_msg_checking="for connect in -lsocket"
 test -n "$X_EXTRA_LIBS" && xe_msg_checking="$xe_msg_checking using extra libs $X_EXTRA_LIBS"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:4998: checking "$xe_msg_checking"" >&5
+echo "configure:5188: 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 5003 "configure"
+#line 5193 "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
@@ -5010,7 +5200,7 @@
 connect()
 ; return 0; }
 EOF
-if { (eval echo configure:5014: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5204: \"$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
@@ -5034,10 +5224,10 @@
 
     # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
     echo $ac_n "checking for remove""... $ac_c" 1>&6
-echo "configure:5038: checking for remove" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 5041 "configure"
+echo "configure:5228: checking for remove" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 5231 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char remove(); below.  */
@@ -5060,7 +5250,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:5064: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5254: \"$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
@@ -5081,12 +5271,12 @@
     if test $ac_cv_func_remove = no; then
       
 echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
-echo "configure:5085: checking for remove in -lposix" >&5
+echo "configure:5275: 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 5090 "configure"
+#line 5280 "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
@@ -5097,7 +5287,7 @@
 remove()
 ; return 0; }
 EOF
-if { (eval echo configure:5101: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5291: \"$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
@@ -5121,10 +5311,10 @@
 
     # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
     echo $ac_n "checking for shmat""... $ac_c" 1>&6
-echo "configure:5125: checking for shmat" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 5128 "configure"
+echo "configure:5315: checking for shmat" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 5318 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char shmat(); below.  */
@@ -5147,7 +5337,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:5151: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5341: \"$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
@@ -5168,12 +5358,12 @@
     if test $ac_cv_func_shmat = no; then
       
 echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
-echo "configure:5172: checking for shmat in -lipc" >&5
+echo "configure:5362: 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 5177 "configure"
+#line 5367 "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
@@ -5184,7 +5374,7 @@
 shmat()
 ; return 0; }
 EOF
-if { (eval echo configure:5188: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5378: \"$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
@@ -5217,13 +5407,15 @@
   # libraries we check for below, so use a different variable.
   #  --interran@uluru.Stanford.EDU, kb@cs.umb.edu.
   
-echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6
-echo "configure:5222: checking for IceConnectionNumber in -lICE" >&5
+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:5414: checking "$xe_msg_checking"" >&5
 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'`
 
-xe_check_libs=" -lICE "
-cat > conftest.$ac_ext <<EOF
-#line 5227 "configure"
+xe_check_libs=" -lICE $X_EXTRA_LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 5419 "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
@@ -5234,7 +5426,7 @@
 IceConnectionNumber()
 ; return 0; }
 EOF
-if { (eval echo configure:5238: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5430: \"$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
@@ -5403,7 +5595,7 @@
 
 
     echo "checking for X defines extracted by xmkmf" 1>&6
-echo "configure:5407: checking for X defines extracted by xmkmf" >&5
+echo "configure:5599: checking for X defines extracted by xmkmf" >&5
   rm -fr conftestdir
   if mkdir conftestdir; then
     cd conftestdir
@@ -5435,16 +5627,16 @@
 
     ac_safe=`echo "X11/Intrinsic.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Intrinsic.h""... $ac_c" 1>&6
-echo "configure:5439: checking for X11/Intrinsic.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 5442 "configure"
+echo "configure:5631: checking for X11/Intrinsic.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 5634 "configure"
 #include "confdefs.h"
 #include <X11/Intrinsic.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5447: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:5639: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -5467,12 +5659,12 @@
 
       
 echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6
-echo "configure:5471: checking for XOpenDisplay in -lX11" >&5
+echo "configure:5663: 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 5476 "configure"
+#line 5668 "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
@@ -5483,7 +5675,7 @@
 XOpenDisplay()
 ; return 0; }
 EOF
-if { (eval echo configure:5487: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5679: \"$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
@@ -5508,12 +5700,12 @@
 xe_msg_checking="for XGetFontProperty in -lX11"
 test -n "-b i486-linuxaout" && xe_msg_checking="$xe_msg_checking using extra libs -b i486-linuxaout"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:5512: checking "$xe_msg_checking"" >&5
+echo "configure:5704: 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 5517 "configure"
+#line 5709 "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
@@ -5524,7 +5716,7 @@
 XGetFontProperty()
 ; return 0; }
 EOF
-if { (eval echo configure:5528: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5720: \"$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
@@ -5551,12 +5743,12 @@
 
     
 echo $ac_n "checking for XShapeSelectInput in -lXext""... $ac_c" 1>&6
-echo "configure:5555: checking for XShapeSelectInput in -lXext" >&5
+echo "configure:5747: 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 5560 "configure"
+#line 5752 "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
@@ -5567,7 +5759,7 @@
 XShapeSelectInput()
 ; return 0; }
 EOF
-if { (eval echo configure:5571: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5763: \"$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
@@ -5590,12 +5782,12 @@
 
     
 echo $ac_n "checking for XtOpenDisplay in -lXt""... $ac_c" 1>&6
-echo "configure:5594: checking for XtOpenDisplay in -lXt" >&5
+echo "configure:5786: 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 5599 "configure"
+#line 5791 "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
@@ -5606,7 +5798,7 @@
 XtOpenDisplay()
 ; return 0; }
 EOF
-if { (eval echo configure:5610: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5802: \"$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
@@ -5629,14 +5821,14 @@
 
 
   echo $ac_n "checking the version of X11 being used""... $ac_c" 1>&6
-echo "configure:5633: checking the version of X11 being used" >&5
+echo "configure:5825: checking the version of X11 being used" >&5
   cat > conftest.$ac_ext <<EOF
-#line 5635 "configure"
+#line 5827 "configure"
 #include "confdefs.h"
 #include <X11/Intrinsic.h>
     int main(int c, char *v[]) { return c>1 ? XlibSpecificationRelease : 0; }
 EOF
-if { (eval echo configure:5640: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:5832: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ./conftest foobar; x11_release=$?
 else
@@ -5661,16 +5853,16 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5665: checking for $ac_hdr" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 5668 "configure"
+echo "configure:5857: checking for $ac_hdr" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 5860 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5673: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:5865: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -5700,7 +5892,7 @@
 
 
     echo $ac_n "checking for XFree86""... $ac_c" 1>&6
-echo "configure:5704: checking for XFree86" >&5
+echo "configure:5896: checking for XFree86" >&5
   if test -d "/usr/X386/include" -o \
           -f "/etc/XF86Config"    -o \
 	  -f "/etc/X11/XF86Config" -o \
@@ -5720,12 +5912,12 @@
 
     test -z "$with_xmu" && { 
 echo $ac_n "checking for XmuReadBitmapDataFromFile in -lXmu""... $ac_c" 1>&6
-echo "configure:5724: checking for XmuReadBitmapDataFromFile in -lXmu" >&5
+echo "configure:5916: 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 5729 "configure"
+#line 5921 "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
@@ -5736,7 +5928,7 @@
 XmuReadBitmapDataFromFile()
 ; return 0; }
 EOF
-if { (eval echo configure:5740: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5932: \"$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
@@ -5775,19 +5967,19 @@
 
       
 echo $ac_n "checking for main in -lXbsd""... $ac_c" 1>&6
-echo "configure:5779: checking for main in -lXbsd" >&5
+echo "configure:5971: 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 5784 "configure"
+#line 5976 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:5791: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5983: \"$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
@@ -5824,22 +6016,22 @@
 fi 
 if test "$with_msw" != "no"; then
   echo "checking for MS-Windows" 1>&6
-echo "configure:5828: checking for MS-Windows" >&5
+echo "configure:6020: checking for MS-Windows" >&5
   
 echo $ac_n "checking for main in -lgdi32""... $ac_c" 1>&6
-echo "configure:5831: checking for main in -lgdi32" >&5
+echo "configure:6023: 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 5836 "configure"
+#line 6028 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:5843: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6035: \"$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 +6096,12 @@
  fi
     fi
         cat > conftest.$ac_ext <<EOF
-#line 5908 "configure"
+#line 6100 "configure"
 #include "confdefs.h"
 #include <fcntl.h>
     int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; }
 EOF
-if { (eval echo configure:5913: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:6105: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_MSG_SELECT
@@ -5964,7 +6156,7 @@
 fi
 
 if test "$with_x11" != "yes"; then
-            for feature in tooltalk cde offix session xim xmu 
+            for feature in tooltalk cde offix session xim xmu
   do
     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
        echo "configure: warning: --with-$feature ignored:  Not valid without X support" 1>&2
@@ -5987,7 +6179,7 @@
 esac
 
 echo "checking for session-management option" 1>&6
-echo "configure:5991: checking for session-management option" >&5;
+echo "configure:6183: checking for session-management option" >&5;
 if test "$with_session" != "no"; then
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_SESSION
@@ -6002,16 +6194,16 @@
 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:6006: checking for X11/Xauth.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 6009 "configure"
+echo "configure:6198: checking for X11/Xauth.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 6201 "configure"
 #include "confdefs.h"
 #include <X11/Xauth.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6014: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:6206: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -6033,12 +6225,12 @@
  }
 test -z "$with_xauth" && { 
 echo $ac_n "checking for XauGetAuthByAddr in -lXau""... $ac_c" 1>&6
-echo "configure:6037: checking for XauGetAuthByAddr in -lXau" >&5
+echo "configure:6229: 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 6042 "configure"
+#line 6234 "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
@@ -6049,7 +6241,7 @@
 XauGetAuthByAddr()
 ; return 0; }
 EOF
-if { (eval echo configure:6053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6245: \"$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
@@ -6094,16 +6286,16 @@
       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:6098: checking for ${dir}tt_c.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 6101 "configure"
+echo "configure:6290: checking for ${dir}tt_c.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 6293 "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:6106: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:6298: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -6138,12 +6330,12 @@
 xe_msg_checking="for tt_message_create in -ltt"
 test -n "$extra_libs" && xe_msg_checking="$xe_msg_checking using extra libs $extra_libs"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:6142: checking "$xe_msg_checking"" >&5
+echo "configure:6334: 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 6147 "configure"
+#line 6339 "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
@@ -6154,7 +6346,7 @@
 tt_message_create()
 ; return 0; }
 EOF
-if { (eval echo configure:6158: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6350: \"$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
@@ -6211,16 +6403,16 @@
 
 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:6215: checking for Dt/Dt.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 6218 "configure"
+echo "configure:6407: checking for Dt/Dt.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 6410 "configure"
 #include "confdefs.h"
 #include <Dt/Dt.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6223: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:6415: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -6242,12 +6434,12 @@
  }
 test -z "$with_cde" && { 
 echo $ac_n "checking for DtDndDragStart in -lDtSvc""... $ac_c" 1>&6
-echo "configure:6246: checking for DtDndDragStart in -lDtSvc" >&5
+echo "configure:6438: 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 6251 "configure"
+#line 6443 "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
@@ -6258,7 +6450,7 @@
 DtDndDragStart()
 ; return 0; }
 EOF
-if { (eval echo configure:6262: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6454: \"$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
@@ -6327,7 +6519,7 @@
 fi
 
 echo $ac_n "checking if drag and drop API is needed""... $ac_c" 1>&6
-echo "configure:6331: checking if drag and drop API is needed" >&5
+echo "configure:6523: checking if drag and drop API is needed" >&5
 if test "$with_dragndrop" != "no" ; then
   if test -n "$dragndrop_proto" ; then
     with_dragndrop=yes
@@ -6348,19 +6540,19 @@
 fi
 
 echo "checking for LDAP" 1>&6
-echo "configure:6352: checking for LDAP" >&5
+echo "configure:6544: 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:6355: checking for ldap.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 6358 "configure"
+echo "configure:6547: checking for ldap.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 6550 "configure"
 #include "confdefs.h"
 #include <ldap.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6363: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:6555: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -6382,16 +6574,16 @@
  }
 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:6386: checking for lber.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 6389 "configure"
+echo "configure:6578: checking for lber.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 6581 "configure"
 #include "confdefs.h"
 #include <lber.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6394: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:6586: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -6416,12 +6608,12 @@
 xe_msg_checking="for ldap_open in -lldap"
 test -n "-llber" && xe_msg_checking="$xe_msg_checking using extra libs -llber"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:6420: checking "$xe_msg_checking"" >&5
+echo "configure:6612: checking "$xe_msg_checking"" >&5
 ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lldap -llber"
 cat > conftest.$ac_ext <<EOF
-#line 6425 "configure"
+#line 6617 "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
@@ -6432,7 +6624,7 @@
 ldap_open()
 ; return 0; }
 EOF
-if { (eval echo configure:6436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6628: \"$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
@@ -6455,12 +6647,12 @@
  }
   test "$with_umich_ldap" = "no" && { 
 echo $ac_n "checking for ldap_set_option in -lldap10""... $ac_c" 1>&6
-echo "configure:6459: checking for ldap_set_option in -lldap10" >&5
+echo "configure:6651: checking for ldap_set_option in -lldap10" >&5
 ac_lib_var=`echo ldap10'_'ldap_set_option | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lldap10 "
 cat > conftest.$ac_ext <<EOF
-#line 6464 "configure"
+#line 6656 "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
@@ -6471,7 +6663,7 @@
 ldap_set_option()
 ; return 0; }
 EOF
-if { (eval echo configure:6475: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6667: \"$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
@@ -6535,15 +6727,15 @@
 
 if test "$window_system" != "none"; then
   echo "checking for graphics libraries" 1>&6
-echo "configure:6539: checking for graphics libraries" >&5
+echo "configure:6731: checking for graphics libraries" >&5
 
     xpm_problem=""
   if test -z "$with_xpm"; then
     echo $ac_n "checking for Xpm - no older than 3.4f""... $ac_c" 1>&6
-echo "configure:6544: checking for Xpm - no older than 3.4f" >&5
+echo "configure:6736: checking for Xpm - no older than 3.4f" >&5
     xe_check_libs=-lXpm
     cat > conftest.$ac_ext <<EOF
-#line 6547 "configure"
+#line 6739 "configure"
 #include "confdefs.h"
 #include <X11/xpm.h>
     int main(int c, char **v) {
@@ -6551,7 +6743,7 @@
       XpmIncludeVersion != XpmLibraryVersion() ? 1 :
       XpmIncludeVersion < 30406 ? 2 : 0 ;}
 EOF
-if { (eval echo configure:6555: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:6747: \"$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
@@ -6593,17 +6785,17 @@
 
     libs_x="-lXpm $libs_x" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-lXpm\" to \$libs_x"; fi
     echo $ac_n "checking for \"FOR_MSW\" xpm""... $ac_c" 1>&6
-echo "configure:6597: checking for \"FOR_MSW\" xpm" >&5
+echo "configure:6789: checking for \"FOR_MSW\" xpm" >&5
     xe_check_libs=-lXpm
     cat > conftest.$ac_ext <<EOF
-#line 6600 "configure"
+#line 6792 "configure"
 #include "confdefs.h"
 
 int main() {
 XpmCreatePixmapFromData()
 ; return 0; }
 EOF
-if { (eval echo configure:6607: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6799: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   xpm_for_msw=no
 else
@@ -6629,16 +6821,16 @@
 
     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:6633: checking for compface.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 6636 "configure"
+echo "configure:6825: checking for compface.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 6828 "configure"
 #include "confdefs.h"
 #include <compface.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6641: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:6833: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -6660,12 +6852,12 @@
  }
   test -z "$with_xface" && { 
 echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6
-echo "configure:6664: checking for UnGenFace in -lcompface" >&5
+echo "configure:6856: 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 6669 "configure"
+#line 6861 "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
@@ -6676,7 +6868,7 @@
 UnGenFace()
 ; return 0; }
 EOF
-if { (eval echo configure:6680: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6872: \"$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
@@ -6728,12 +6920,12 @@
       if test "$with_png $with_tiff" != "no no"; then
     
 echo $ac_n "checking for inflate in -lc""... $ac_c" 1>&6
-echo "configure:6732: checking for inflate in -lc" >&5
+echo "configure:6924: 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 6737 "configure"
+#line 6929 "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
@@ -6744,7 +6936,7 @@
 inflate()
 ; return 0; }
 EOF
-if { (eval echo configure:6748: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6940: \"$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
@@ -6763,12 +6955,12 @@
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for inflate in -lz""... $ac_c" 1>&6
-echo "configure:6767: checking for inflate in -lz" >&5
+echo "configure:6959: 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 6772 "configure"
+#line 6964 "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
@@ -6779,7 +6971,7 @@
 inflate()
 ; return 0; }
 EOF
-if { (eval echo configure:6783: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6975: \"$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
@@ -6798,12 +6990,12 @@
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for inflate in -lgz""... $ac_c" 1>&6
-echo "configure:6802: checking for inflate in -lgz" >&5
+echo "configure:6994: 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 6807 "configure"
+#line 6999 "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
@@ -6814,7 +7006,7 @@
 inflate()
 ; return 0; }
 EOF
-if { (eval echo configure:6818: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7010: \"$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
@@ -6844,16 +7036,16 @@
 
     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:6848: checking for jpeglib.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 6851 "configure"
+echo "configure:7040: checking for jpeglib.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 7043 "configure"
 #include "confdefs.h"
 #include <jpeglib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6856: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:7048: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -6875,12 +7067,12 @@
  }
   test -z "$with_jpeg" && { 
 echo $ac_n "checking for jpeg_destroy_decompress in -ljpeg""... $ac_c" 1>&6
-echo "configure:6879: checking for jpeg_destroy_decompress in -ljpeg" >&5
+echo "configure:7071: 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 6884 "configure"
+#line 7076 "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
@@ -6891,7 +7083,7 @@
 jpeg_destroy_decompress()
 ; return 0; }
 EOF
-if { (eval echo configure:6895: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7087: \"$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
@@ -6927,10 +7119,10 @@
 
     png_problem=""
   test -z "$with_png" && { echo $ac_n "checking for pow""... $ac_c" 1>&6
-echo "configure:6931: checking for pow" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 6934 "configure"
+echo "configure:7123: checking for pow" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 7126 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char pow(); below.  */
@@ -6953,7 +7145,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:6957: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7149: \"$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
@@ -6974,16 +7166,16 @@
  }
   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:6978: checking for png.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 6981 "configure"
+echo "configure:7170: checking for png.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 7173 "configure"
 #include "confdefs.h"
 #include <png.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6986: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:7178: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -7005,12 +7197,12 @@
  }
   test -z "$with_png" && { 
 echo $ac_n "checking for png_read_image in -lpng""... $ac_c" 1>&6
-echo "configure:7009: checking for png_read_image in -lpng" >&5
+echo "configure:7201: 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 7014 "configure"
+#line 7206 "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
@@ -7021,7 +7213,7 @@
 png_read_image()
 ; return 0; }
 EOF
-if { (eval echo configure:7025: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7217: \"$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
@@ -7044,10 +7236,10 @@
  }
   if test -z "$with_png"; then
     echo $ac_n "checking for workable png version information""... $ac_c" 1>&6
-echo "configure:7048: checking for workable png version information" >&5
+echo "configure:7240: checking for workable png version information" >&5
     xe_check_libs="-lpng -lz"
     cat > conftest.$ac_ext <<EOF
-#line 7051 "configure"
+#line 7243 "configure"
 #include "confdefs.h"
 #include <png.h>
     int main(int c, char **v) {
@@ -7055,7 +7247,7 @@
     if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING) != 0) return 1;
     return (PNG_LIBPNG_VER < 10002) ? 2 : 0 ;}
 EOF
-if { (eval echo configure:7059: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:7251: \"$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
@@ -7098,16 +7290,16 @@
 
     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:7102: checking for tiffio.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 7105 "configure"
+echo "configure:7294: checking for tiffio.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 7297 "configure"
 #include "confdefs.h"
 #include <tiffio.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7110: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:7302: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -7129,12 +7321,12 @@
  }
   test -z "$with_tiff" && { 
 echo $ac_n "checking for TIFFClientOpen in -ltiff""... $ac_c" 1>&6
-echo "configure:7133: checking for TIFFClientOpen in -ltiff" >&5
+echo "configure:7325: 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 7138 "configure"
+#line 7330 "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
@@ -7145,7 +7337,7 @@
 TIFFClientOpen()
 ; return 0; }
 EOF
-if { (eval echo configure:7149: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7341: \"$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
@@ -7184,16 +7376,16 @@
 if test "$with_x11" = "yes"; then
 
   echo "checking for X11 graphics libraries" 1>&6
-echo "configure:7188: checking for X11 graphics libraries" >&5
+echo "configure:7380: checking for X11 graphics libraries" >&5
 
     
 echo $ac_n "checking for XawScrollbarSetThumb in -lXaw""... $ac_c" 1>&6
-echo "configure:7192: checking for XawScrollbarSetThumb in -lXaw" >&5
+echo "configure:7384: checking for XawScrollbarSetThumb in -lXaw" >&5
 ac_lib_var=`echo Xaw'_'XawScrollbarSetThumb | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXaw "
 cat > conftest.$ac_ext <<EOF
-#line 7197 "configure"
+#line 7389 "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
@@ -7204,7 +7396,7 @@
 XawScrollbarSetThumb()
 ; return 0; }
 EOF
-if { (eval echo configure:7208: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7400: \"$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
@@ -7228,16 +7420,16 @@
                     
     ac_safe=`echo "Xm/Xm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for Xm/Xm.h""... $ac_c" 1>&6
-echo "configure:7232: checking for Xm/Xm.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 7235 "configure"
+echo "configure:7424: checking for Xm/Xm.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 7427 "configure"
 #include "confdefs.h"
 #include <Xm/Xm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7240: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:7432: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -7253,12 +7445,12 @@
   echo "$ac_t""yes" 1>&6
   
 echo $ac_n "checking for XmStringFree in -lXm""... $ac_c" 1>&6
-echo "configure:7257: checking for XmStringFree in -lXm" >&5
+echo "configure:7449: 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 7262 "configure"
+#line 7454 "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
@@ -7269,7 +7461,7 @@
 XmStringFree()
 ; return 0; }
 EOF
-if { (eval echo configure:7273: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7465: \"$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
@@ -7298,9 +7490,9 @@
 
   if test "$have_motif" = "yes"; then
         echo $ac_n "checking for Lesstif""... $ac_c" 1>&6
-echo "configure:7302: checking for Lesstif" >&5
+echo "configure:7494: checking for Lesstif" >&5
     cat > conftest.$ac_ext <<EOF
-#line 7304 "configure"
+#line 7496 "configure"
 #include "confdefs.h"
 #include <Xm/Xm.h>
 #ifdef LESSTIF_VERSION
@@ -7581,7 +7773,7 @@
 
 if test "$with_mule" = "yes" ; then
   echo "checking for Mule-related features" 1>&6
-echo "configure:7585: checking for Mule-related features" >&5
+echo "configure:7777: checking for Mule-related features" >&5
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining MULE
 EOF
@@ -7606,16 +7798,16 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:7610: checking for $ac_hdr" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 7613 "configure"
+echo "configure:7802: checking for $ac_hdr" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 7805 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7618: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:7810: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -7645,12 +7837,12 @@
 
   
 echo $ac_n "checking for strerror in -lintl""... $ac_c" 1>&6
-echo "configure:7649: checking for strerror in -lintl" >&5
+echo "configure:7841: 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 7654 "configure"
+#line 7846 "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
@@ -7661,7 +7853,7 @@
 strerror()
 ; return 0; }
 EOF
-if { (eval echo configure:7665: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7857: \"$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
@@ -7694,19 +7886,58 @@
 
 
   echo "checking for Mule input methods" 1>&6
-echo "configure:7698: checking for Mule input methods" >&5
+echo "configure:7890: checking for Mule input methods" >&5
         case "$with_xim" in "" | "yes" )
     echo "checking for XIM" 1>&6
-echo "configure:7701: checking for XIM" >&5
-        if test "$have_lesstif" = "yes"; then with_xim=xlib
-    else 
+echo "configure:7893: checking for XIM" >&5
+    
+echo $ac_n "checking for XOpenIM in -lX11""... $ac_c" 1>&6
+echo "configure:7896: 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 7901 "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
+    builtin and then its argument prototype would still apply.  */
+char XOpenIM();
+
+int main() {
+XOpenIM()
+; return 0; }
+EOF
+if { (eval echo configure:7912: \"$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
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+xe_check_libs=""
+
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
+  echo "$ac_t""yes" 1>&6
+  with_xim=xlib
+else
+  echo "$ac_t""no" 1>&6
+with_xim=no
+fi
+
+
+        if test "$have_motif $have_lesstif" = "yes no"; then
+      
 echo $ac_n "checking for XmImMbLookupString in -lXm""... $ac_c" 1>&6
-echo "configure:7705: checking for XmImMbLookupString in -lXm" >&5
+echo "configure:7936: 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 7710 "configure"
+#line 7941 "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
@@ -7717,7 +7948,7 @@
 XmImMbLookupString()
 ; return 0; }
 EOF
-if { (eval echo configure:7721: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7952: \"$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
@@ -7734,11 +7965,10 @@
   with_xim=motif
 else
   echo "$ac_t""no" 1>&6
-with_xim=xlib
-fi
-
-
-    fi
+fi
+
+
+    fi ;;
   esac
   if test "$with_xim" != "no"; then
     { test "$extra_verbose" = "yes" && cat << \EOF
@@ -7783,15 +8013,15 @@
 
     if test "$with_xfs" = "yes" ; then
     echo "checking for XFontSet" 1>&6
-echo "configure:7787: checking for XFontSet" >&5
+echo "configure:8017: checking for XFontSet" >&5
     
 echo $ac_n "checking for XmbDrawString in -lX11""... $ac_c" 1>&6
-echo "configure:7790: checking for XmbDrawString in -lX11" >&5
+echo "configure:8020: 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 7795 "configure"
+#line 8025 "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
@@ -7802,7 +8032,7 @@
 XmbDrawString()
 ; return 0; }
 EOF
-if { (eval echo configure:7806: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8036: \"$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
@@ -7842,16 +8072,16 @@
     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:7846: checking for wnn/jllib.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 7849 "configure"
+echo "configure:8076: checking for wnn/jllib.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8079 "configure"
 #include "confdefs.h"
 #include <wnn/jllib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7854: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:8084: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -7875,10 +8105,10 @@
     for ac_func in crypt
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7879: checking for $ac_func" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 7882 "configure"
+echo "configure:8109: checking for $ac_func" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8112 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -7901,7 +8131,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:7905: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8135: \"$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
@@ -7930,12 +8160,12 @@
 
     test "$ac_cv_func_crypt" != "yes" && { 
 echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
-echo "configure:7934: checking for crypt in -lcrypt" >&5
+echo "configure:8164: 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 7939 "configure"
+#line 8169 "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
@@ -7946,7 +8176,7 @@
 crypt()
 ; return 0; }
 EOF
-if { (eval echo configure:7950: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8180: \"$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
@@ -7981,12 +8211,12 @@
     if test -z "$with_wnn" -o "$with_wnn" = "yes"; then
     
 echo $ac_n "checking for jl_dic_list_e in -lwnn""... $ac_c" 1>&6
-echo "configure:7985: checking for jl_dic_list_e in -lwnn" >&5
+echo "configure:8215: 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 7990 "configure"
+#line 8220 "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
@@ -7997,7 +8227,7 @@
 jl_dic_list_e()
 ; return 0; }
 EOF
-if { (eval echo configure:8001: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8231: \"$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
@@ -8015,12 +8245,12 @@
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for jl_dic_list_e in -lwnn4""... $ac_c" 1>&6
-echo "configure:8019: checking for jl_dic_list_e in -lwnn4" >&5
+echo "configure:8249: 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 8024 "configure"
+#line 8254 "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
@@ -8031,7 +8261,7 @@
 jl_dic_list_e()
 ; return 0; }
 EOF
-if { (eval echo configure:8035: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8265: \"$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
@@ -8049,12 +8279,12 @@
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for jl_dic_list_e in -lwnn6""... $ac_c" 1>&6
-echo "configure:8053: checking for jl_dic_list_e in -lwnn6" >&5
+echo "configure:8283: 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 8058 "configure"
+#line 8288 "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
@@ -8065,7 +8295,7 @@
 jl_dic_list_e()
 ; return 0; }
 EOF
-if { (eval echo configure:8069: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8299: \"$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
@@ -8083,12 +8313,12 @@
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for dic_list_e in -lwnn6_fromsrc""... $ac_c" 1>&6
-echo "configure:8087: checking for dic_list_e in -lwnn6_fromsrc" >&5
+echo "configure:8317: 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 8092 "configure"
+#line 8322 "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
@@ -8099,7 +8329,7 @@
 dic_list_e()
 ; return 0; }
 EOF
-if { (eval echo configure:8103: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8333: \"$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
@@ -8147,12 +8377,12 @@
     if test "$with_wnn6" != "no"; then
       
 echo $ac_n "checking for jl_fi_dic_list in -l$libwnn""... $ac_c" 1>&6
-echo "configure:8151: checking for jl_fi_dic_list in -l$libwnn" >&5
+echo "configure:8381: 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 8156 "configure"
+#line 8386 "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
@@ -8163,7 +8393,7 @@
 jl_fi_dic_list()
 ; return 0; }
 EOF
-if { (eval echo configure:8167: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8397: \"$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
@@ -8198,16 +8428,16 @@
   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:8202: checking for canna/jrkanji.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8205 "configure"
+echo "configure:8432: checking for canna/jrkanji.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8435 "configure"
 #include "confdefs.h"
 #include <canna/jrkanji.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8210: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:8440: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -8233,16 +8463,16 @@
     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:8237: checking for canna/jrkanji.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8240 "configure"
+echo "configure:8467: checking for canna/jrkanji.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8470 "configure"
 #include "confdefs.h"
 #include <canna/jrkanji.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8245: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:8475: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -8269,16 +8499,16 @@
 
   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:8273: checking for canna/RK.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8276 "configure"
+echo "configure:8503: checking for canna/RK.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8506 "configure"
 #include "confdefs.h"
 #include <canna/RK.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8281: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:8511: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -8300,12 +8530,12 @@
  }
   test -z "$with_canna" && { 
 echo $ac_n "checking for RkBgnBun in -lRKC""... $ac_c" 1>&6
-echo "configure:8304: checking for RkBgnBun in -lRKC" >&5
+echo "configure:8534: 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 8309 "configure"
+#line 8539 "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
@@ -8316,7 +8546,7 @@
 RkBgnBun()
 ; return 0; }
 EOF
-if { (eval echo configure:8320: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8550: \"$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
@@ -8339,12 +8569,12 @@
  }
   test -z "$with_canna" && { 
 echo $ac_n "checking for jrKanjiControl in -lcanna""... $ac_c" 1>&6
-echo "configure:8343: checking for jrKanjiControl in -lcanna" >&5
+echo "configure:8573: 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 8348 "configure"
+#line 8578 "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
@@ -8355,7 +8585,7 @@
 jrKanjiControl()
 ; return 0; }
 EOF
-if { (eval echo configure:8359: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8589: \"$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
@@ -8404,12 +8634,12 @@
   libs_x="-lXm $libs_x" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-lXm\" to \$libs_x"; fi
     
 echo $ac_n "checking for layout_object_getvalue in -li18n""... $ac_c" 1>&6
-echo "configure:8408: checking for layout_object_getvalue in -li18n" >&5
+echo "configure:8638: 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 8413 "configure"
+#line 8643 "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
@@ -8420,7 +8650,7 @@
 layout_object_getvalue()
 ; return 0; }
 EOF
-if { (eval echo configure:8424: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8654: \"$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
@@ -8506,10 +8736,10 @@
 for ac_func in cbrt closedir dup2 eaccess fmod fpathconf frexp ftime gethostname getpagesize gettimeofday getcwd getwd logb lrand48 matherr mkdir mktime perror poll random rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask snprintf strcasecmp strerror tzset ulimit usleep utimes waitpid vsnprintf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8510: checking for $ac_func" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8513 "configure"
+echo "configure:8740: checking for $ac_func" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8743 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -8532,7 +8762,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:8536: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8766: \"$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
@@ -8573,10 +8803,10 @@
       * ) for ac_func in realpath
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8577: checking for $ac_func" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8580 "configure"
+echo "configure:8807: checking for $ac_func" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8810 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -8599,7 +8829,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:8603: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8833: \"$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
@@ -8633,16 +8863,16 @@
 esac
 
 echo $ac_n "checking whether netdb declares h_errno""... $ac_c" 1>&6
-echo "configure:8637: checking whether netdb declares h_errno" >&5
-cat > conftest.$ac_ext <<EOF
-#line 8639 "configure"
+echo "configure:8867: checking whether netdb declares h_errno" >&5
+cat > conftest.$ac_ext <<EOF
+#line 8869 "configure"
 #include "confdefs.h"
 #include <netdb.h>
 int main() {
 return h_errno;
 ; return 0; }
 EOF
-if { (eval echo configure:8646: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8876: \"$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
@@ -8662,16 +8892,16 @@
 rm -f conftest*
 
 echo $ac_n "checking for sigsetjmp""... $ac_c" 1>&6
-echo "configure:8666: checking for sigsetjmp" >&5
-cat > conftest.$ac_ext <<EOF
-#line 8668 "configure"
+echo "configure:8896: checking for sigsetjmp" >&5
+cat > conftest.$ac_ext <<EOF
+#line 8898 "configure"
 #include "confdefs.h"
 #include <setjmp.h>
 int main() {
 sigjmp_buf bar; sigsetjmp (bar, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:8675: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8905: \"$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
@@ -8691,11 +8921,11 @@
 rm -f conftest*
 
 echo $ac_n "checking whether localtime caches TZ""... $ac_c" 1>&6
-echo "configure:8695: checking whether localtime caches TZ" >&5
+echo "configure:8925: checking whether localtime caches TZ" >&5
 
 if test "$ac_cv_func_tzset" = "yes"; then
 cat > conftest.$ac_ext <<EOF
-#line 8699 "configure"
+#line 8929 "configure"
 #include "confdefs.h"
 #include <time.h>
 #if STDC_HEADERS
@@ -8730,7 +8960,7 @@
   exit (0);
 }
 EOF
-if { (eval echo configure:8734: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:8964: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   emacs_cv_localtime_cache=no
 else
@@ -8760,9 +8990,9 @@
 
 if test "$HAVE_TIMEVAL" = "yes"; then
 echo $ac_n "checking whether gettimeofday accepts one or two arguments""... $ac_c" 1>&6
-echo "configure:8764: checking whether gettimeofday accepts one or two arguments" >&5
-cat > conftest.$ac_ext <<EOF
-#line 8766 "configure"
+echo "configure:8994: checking whether gettimeofday accepts one or two arguments" >&5
+cat > conftest.$ac_ext <<EOF
+#line 8996 "configure"
 #include "confdefs.h"
 
 #ifdef TIME_WITH_SYS_TIME
@@ -8784,7 +9014,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:8788: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:9018: \"$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
@@ -8806,19 +9036,19 @@
 
 
 echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:8810: checking for inline" >&5
+echo "configure:9040: checking for inline" >&5
 
 ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat > conftest.$ac_ext <<EOF
-#line 8815 "configure"
+#line 9045 "configure"
 #include "confdefs.h"
 
 int main() {
 } $ac_kw foo() {
 ; return 0; }
 EOF
-if { (eval echo configure:8822: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9052: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_inline=$ac_kw; break
 else
@@ -8868,17 +9098,17 @@
 # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
 # for constant arguments.  Useless!
 echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:8872: checking for working alloca.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8875 "configure"
+echo "configure:9102: checking for working alloca.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9105 "configure"
 #include "confdefs.h"
 #include <alloca.h>
 int main() {
 char *p = alloca(2 * sizeof(int));
 ; return 0; }
 EOF
-if { (eval echo configure:8882: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:9112: \"$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
@@ -8902,23 +9132,28 @@
 fi
 
 echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:8906: checking for alloca" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8909 "configure"
+echo "configure:9136: checking for alloca" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9139 "configure"
 #include "confdefs.h"
 
 #ifdef __GNUC__
 # define alloca __builtin_alloca
 #else
-# if HAVE_ALLOCA_H
-#  include <alloca.h>
+# ifdef _MSC_VER
+#  include <malloc.h>
+#  define alloca _alloca
 # else
-#  ifdef _AIX
- #pragma alloca
+#  if HAVE_ALLOCA_H
+#   include <alloca.h>
 #  else
-#   ifndef alloca /* predefined by HP cc +Olibcalls */
+#   ifdef _AIX
+ #pragma alloca
+#   else
+#    ifndef alloca /* predefined by HP cc +Olibcalls */
 char *alloca ();
+#    endif
 #   endif
 #  endif
 # endif
@@ -8928,7 +9163,7 @@
 char *p = (char *) alloca(1);
 ; return 0; }
 EOF
-if { (eval echo configure:8932: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:9167: \"$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
@@ -8956,7 +9191,7 @@
   # that cause trouble.  Some versions do not even contain alloca or
   # contain a buggy version.  If you still want to use their alloca,
   # use ar to extract alloca.o from them instead of compiling alloca.c.
-  ALLOCA=alloca.o
+  ALLOCA=alloca.${ac_objext}
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining C_ALLOCA
 EOF
@@ -8967,10 +9202,10 @@
 
 
 echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:8971: checking whether alloca needs Cray hooks" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8974 "configure"
+echo "configure:9206: checking whether alloca needs Cray hooks" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9209 "configure"
 #include "confdefs.h"
 #if defined(CRAY) && ! defined(CRAY2)
 webecray
@@ -8994,10 +9229,10 @@
 if test $ac_cv_os_cray = yes; then
 for ac_func in _getb67 GETB67 getb67; do
   echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8998: checking for $ac_func" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9001 "configure"
+echo "configure:9233: checking for $ac_func" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9236 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -9020,7 +9255,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:9024: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:9259: \"$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
@@ -9050,10 +9285,10 @@
 fi
 
 echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:9054: checking stack direction for C alloca" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9057 "configure"
+echo "configure:9289: checking stack direction for C alloca" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9292 "configure"
 #include "confdefs.h"
 find_stack_direction ()
 {
@@ -9072,7 +9307,7 @@
   exit (find_stack_direction() < 0);
 }
 EOF
-if { (eval echo configure:9076: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:9311: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_c_stack_direction=1
 else
@@ -9101,16 +9336,16 @@
 
 ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for vfork.h""... $ac_c" 1>&6
-echo "configure:9105: checking for vfork.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9108 "configure"
+echo "configure:9340: checking for vfork.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9343 "configure"
 #include "confdefs.h"
 #include <vfork.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9113: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:9348: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -9137,10 +9372,10 @@
 fi
 
 echo $ac_n "checking for working vfork""... $ac_c" 1>&6
-echo "configure:9141: checking for working vfork" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9144 "configure"
+echo "configure:9376: checking for working vfork" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9379 "configure"
 #include "confdefs.h"
 /* Thanks to Paul Eggert for this test.  */
 #include <stdio.h>
@@ -9235,7 +9470,7 @@
   }
 }
 EOF
-if { (eval echo configure:9239: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:9474: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_func_vfork_works=yes
 else
@@ -9261,10 +9496,10 @@
 
 
 echo $ac_n "checking for working strcoll""... $ac_c" 1>&6
-echo "configure:9265: checking for working strcoll" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9268 "configure"
+echo "configure:9500: checking for working strcoll" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9503 "configure"
 #include "confdefs.h"
 #include <string.h>
 main ()
@@ -9274,7 +9509,7 @@
 	strcoll ("123", "456") >= 0);
 }
 EOF
-if { (eval echo configure:9278: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:9513: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_func_strcoll_works=yes
 else
@@ -9302,10 +9537,10 @@
 for ac_func in getpgrp
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:9306: checking for $ac_func" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9309 "configure"
+echo "configure:9541: checking for $ac_func" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9544 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -9328,7 +9563,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:9332: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:9567: \"$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
@@ -9356,10 +9591,10 @@
 done
 
 echo $ac_n "checking whether getpgrp takes no argument""... $ac_c" 1>&6
-echo "configure:9360: checking whether getpgrp takes no argument" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9363 "configure"
+echo "configure:9595: checking whether getpgrp takes no argument" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9598 "configure"
 #include "confdefs.h"
 
 /*
@@ -9414,7 +9649,7 @@
 }
 
 EOF
-if { (eval echo configure:9418: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:9653: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_func_getpgrp_void=yes
 else
@@ -9441,10 +9676,10 @@
 
 
 echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:9445: checking for working mmap" >&5
+echo "configure:9680: checking for working mmap" >&5
 case "$opsys" in ultrix* ) have_mmap=no ;; *)
 cat > conftest.$ac_ext <<EOF
-#line 9448 "configure"
+#line 9683 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <unistd.h>
@@ -9477,7 +9712,7 @@
   return 1;
 }
 EOF
-if { (eval echo configure:9481: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:9716: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   have_mmap=yes
 else
@@ -9502,16 +9737,16 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:9506: checking for $ac_hdr" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9509 "configure"
+echo "configure:9741: checking for $ac_hdr" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9744 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9514: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (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*
   eval "ac_cv_header_$ac_safe=yes"
@@ -9542,10 +9777,10 @@
 for ac_func in getpagesize
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:9546: checking for $ac_func" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9549 "configure"
+echo "configure:9781: checking for $ac_func" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9784 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -9568,7 +9803,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:9572: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:9807: \"$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
@@ -9596,10 +9831,10 @@
 done
 
 echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:9600: checking for working mmap" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9603 "configure"
+echo "configure:9835: checking for working mmap" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9838 "configure"
 #include "confdefs.h"
 
 /* Thanks to Mike Haertel and Jim Avera for this test.
@@ -9739,7 +9974,7 @@
 }
 
 EOF
-if { (eval echo configure:9743: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:9978: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_func_mmap_fixed_mapped=yes
 else
@@ -9777,16 +10012,16 @@
 
 ac_safe=`echo "termios.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for termios.h""... $ac_c" 1>&6
-echo "configure:9781: checking for termios.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9784 "configure"
+echo "configure:10016: checking for termios.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10019 "configure"
 #include "confdefs.h"
 #include <termios.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9789: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:10024: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -9828,16 +10063,16 @@
   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:9832: checking for termio.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9835 "configure"
+echo "configure:10067: checking for termio.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10070 "configure"
 #include "confdefs.h"
 #include <termio.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9840: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:10075: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -9868,10 +10103,10 @@
 
 
 echo $ac_n "checking for socket""... $ac_c" 1>&6
-echo "configure:9872: checking for socket" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9875 "configure"
+echo "configure:10107: checking for socket" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10110 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char socket(); below.  */
@@ -9894,7 +10129,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:9898: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10133: \"$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
@@ -9909,16 +10144,16 @@
   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:9913: checking for netinet/in.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9916 "configure"
+echo "configure:10148: checking for netinet/in.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10151 "configure"
 #include "confdefs.h"
 #include <netinet/in.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9921: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:10156: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -9934,16 +10169,16 @@
   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:9938: checking for arpa/inet.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9941 "configure"
+echo "configure:10173: checking for arpa/inet.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10176 "configure"
 #include "confdefs.h"
 #include <arpa/inet.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9946: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:10181: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -9967,9 +10202,9 @@
 }
 
       echo $ac_n "checking "for sun_len member in struct sockaddr_un"""... $ac_c" 1>&6
-echo "configure:9971: checking "for sun_len member in struct sockaddr_un"" >&5
+echo "configure:10206: checking "for sun_len member in struct sockaddr_un"" >&5
       cat > conftest.$ac_ext <<EOF
-#line 9973 "configure"
+#line 10208 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -9980,7 +10215,7 @@
 static struct sockaddr_un x; x.sun_len = 1;
 ; return 0; }
 EOF
-if { (eval echo configure:9984: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10219: \"$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
@@ -9998,9 +10233,9 @@
 fi
 rm -f conftest*
       echo $ac_n "checking "for ip_mreq struct in netinet/in.h"""... $ac_c" 1>&6
-echo "configure:10002: checking "for ip_mreq struct in netinet/in.h"" >&5
+echo "configure:10237: checking "for ip_mreq struct in netinet/in.h"" >&5
       cat > conftest.$ac_ext <<EOF
-#line 10004 "configure"
+#line 10239 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -10010,7 +10245,7 @@
 static struct ip_mreq x;
 ; return 0; }
 EOF
-if { (eval echo configure:10014: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10249: \"$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
@@ -10041,10 +10276,10 @@
 
 
 echo $ac_n "checking for msgget""... $ac_c" 1>&6
-echo "configure:10045: checking for msgget" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10048 "configure"
+echo "configure:10280: checking for msgget" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10283 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char msgget(); below.  */
@@ -10067,7 +10302,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:10071: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10306: \"$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
@@ -10082,16 +10317,16 @@
   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:10086: checking for sys/ipc.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10089 "configure"
+echo "configure:10321: checking for sys/ipc.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10324 "configure"
 #include "confdefs.h"
 #include <sys/ipc.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10094: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:10329: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -10107,16 +10342,16 @@
   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:10111: checking for sys/msg.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10114 "configure"
+echo "configure:10346: checking for sys/msg.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10349 "configure"
 #include "confdefs.h"
 #include <sys/msg.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10119: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:10354: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -10153,16 +10388,16 @@
 
 ac_safe=`echo "dirent.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for dirent.h""... $ac_c" 1>&6
-echo "configure:10157: checking for dirent.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10160 "configure"
+echo "configure:10392: checking for dirent.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10395 "configure"
 #include "confdefs.h"
 #include <dirent.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10165: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:10400: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -10188,16 +10423,16 @@
   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:10192: checking for sys/dir.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10195 "configure"
+echo "configure:10427: checking for sys/dir.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10430 "configure"
 #include "confdefs.h"
 #include <sys/dir.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10200: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:10435: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -10229,16 +10464,16 @@
 
 ac_safe=`echo "nlist.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for nlist.h""... $ac_c" 1>&6
-echo "configure:10233: checking for nlist.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10236 "configure"
+echo "configure:10468: checking for nlist.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10471 "configure"
 #include "confdefs.h"
 #include <nlist.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10241: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:10476: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -10267,7 +10502,7 @@
 
 
 echo "checking "for sound support"" 1>&6
-echo "configure:10271: checking "for sound support"" >&5
+echo "configure:10506: checking "for sound support"" >&5
 case "$with_sound" in
   native | both ) with_native_sound=yes;;
   nas    | no   ) with_native_sound=no;;
@@ -10278,16 +10513,16 @@
     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:10282: checking for multimedia/audio_device.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10285 "configure"
+echo "configure:10517: checking for multimedia/audio_device.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10520 "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:10290: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:10525: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -10334,12 +10569,12 @@
       if test -z "$native_sound_lib"; then
         
 echo $ac_n "checking for ALopenport in -laudio""... $ac_c" 1>&6
-echo "configure:10338: checking for ALopenport in -laudio" >&5
+echo "configure:10573: 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 10343 "configure"
+#line 10578 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -10350,7 +10585,7 @@
 ALopenport()
 ; return 0; }
 EOF
-if { (eval echo configure:10354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10589: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10381,12 +10616,12 @@
       if test -z "$native_sound_lib"; then
 	
 echo $ac_n "checking for AOpenAudio in -lAlib""... $ac_c" 1>&6
-echo "configure:10385: checking for AOpenAudio in -lAlib" >&5
+echo "configure:10620: 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 10390 "configure"
+#line 10625 "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
@@ -10397,7 +10632,7 @@
 AOpenAudio()
 ; return 0; }
 EOF
-if { (eval echo configure:10401: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10636: \"$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
@@ -10435,16 +10670,16 @@
     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:10439: checking for ${dir}/soundcard.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10442 "configure"
+echo "configure:10674: checking for ${dir}/soundcard.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10677 "configure"
 #include "confdefs.h"
 #include <${dir}/soundcard.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10447: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:10682: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -10513,7 +10748,7 @@
  fi
   libs_x="-laudio $libs_x" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-laudio\" to \$libs_x"; fi
       cat > conftest.$ac_ext <<EOF
-#line 10517 "configure"
+#line 10752 "configure"
 #include "confdefs.h"
 #include <audio/Xtutil.h>
 EOF
@@ -10540,7 +10775,7 @@
 
 if test "$with_tty" = "yes"  ; then
   echo "checking for TTY-related features" 1>&6
-echo "configure:10544: checking for TTY-related features" >&5
+echo "configure:10779: checking for TTY-related features" >&5
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_TTY
 EOF
@@ -10556,12 +10791,12 @@
     if test -z "$with_ncurses"; then
     
 echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6
-echo "configure:10560: checking for tgetent in -lncurses" >&5
+echo "configure:10795: 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 10565 "configure"
+#line 10800 "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
@@ -10572,7 +10807,7 @@
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:10576: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10811: \"$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
@@ -10605,16 +10840,16 @@
 
     ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6
-echo "configure:10609: checking for ncurses/curses.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10612 "configure"
+echo "configure:10844: checking for ncurses/curses.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10847 "configure"
 #include "confdefs.h"
 #include <ncurses/curses.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10617: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:10852: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -10635,16 +10870,16 @@
 
     ac_safe=`echo "ncurses/term.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ncurses/term.h""... $ac_c" 1>&6
-echo "configure:10639: checking for ncurses/term.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10642 "configure"
+echo "configure:10874: checking for ncurses/term.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10877 "configure"
 #include "confdefs.h"
 #include <ncurses/term.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10647: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:10882: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -10673,16 +10908,16 @@
       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:10677: checking for ncurses/curses.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10680 "configure"
+echo "configure:10912: checking for ncurses/curses.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10915 "configure"
 #include "confdefs.h"
 #include <ncurses/curses.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10685: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:10920: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -10716,12 +10951,12 @@
 	for lib in curses termlib termcap; do
 	  
 echo $ac_n "checking for tgetent in -l$lib""... $ac_c" 1>&6
-echo "configure:10720: checking for tgetent in -l$lib" >&5
+echo "configure:10955: 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 10725 "configure"
+#line 10960 "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
@@ -10732,7 +10967,7 @@
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:10736: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10971: \"$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
@@ -10763,12 +10998,12 @@
       else
 	
 echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6
-echo "configure:10767: checking for tgetent in -lcurses" >&5
+echo "configure:11002: 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 10772 "configure"
+#line 11007 "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
@@ -10779,7 +11014,7 @@
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:10783: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11018: \"$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
@@ -10797,12 +11032,12 @@
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6
-echo "configure:10801: checking for tgetent in -ltermcap" >&5
+echo "configure:11036: 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 10806 "configure"
+#line 11041 "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
@@ -10813,7 +11048,7 @@
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:10817: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11052: \"$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
@@ -10861,16 +11096,16 @@
 
     test -z "$with_gpm" && { ac_safe=`echo "gpm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for gpm.h""... $ac_c" 1>&6
-echo "configure:10865: checking for gpm.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10868 "configure"
+echo "configure:11100: checking for gpm.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 11103 "configure"
 #include "confdefs.h"
 #include <gpm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10873: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:11108: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -10892,12 +11127,12 @@
  }
   test -z "$with_gpm" && { 
 echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
-echo "configure:10896: checking for Gpm_Open in -lgpm" >&5
+echo "configure:11131: 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 10901 "configure"
+#line 11136 "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
@@ -10908,7 +11143,7 @@
 Gpm_Open()
 ; return 0; }
 EOF
-if { (eval echo configure:10912: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11147: \"$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
@@ -10958,21 +11193,21 @@
 
 test "$with_database_gnudbm $with_database_dbm $with_database_berkdb" \
   != "no no no" && echo "checking for database support" 1>&6
-echo "configure:10962: checking for database support" >&5
+echo "configure:11197: checking for database support" >&5
 
 if test "$with_database_gnudbm $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:10967: checking for ndbm.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10970 "configure"
+echo "configure:11202: checking for ndbm.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 11205 "configure"
 #include "confdefs.h"
 #include <ndbm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10975: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:11210: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -11001,12 +11236,12 @@
 if test "$with_database_gnudbm" != "no"; then
   
 echo $ac_n "checking for dbm_open in -lgdbm""... $ac_c" 1>&6
-echo "configure:11005: checking for dbm_open in -lgdbm" >&5
+echo "configure:11240: 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 11010 "configure"
+#line 11245 "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
@@ -11017,7 +11252,7 @@
 dbm_open()
 ; return 0; }
 EOF
-if { (eval echo configure:11021: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11256: \"$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
@@ -11045,10 +11280,10 @@
 
 if test "$with_database_dbm" != "no"; then
   echo $ac_n "checking for dbm_open""... $ac_c" 1>&6
-echo "configure:11049: checking for dbm_open" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 11052 "configure"
+echo "configure:11284: checking for dbm_open" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 11287 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char dbm_open(); below.  */
@@ -11071,7 +11306,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:11075: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11310: \"$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
@@ -11090,12 +11325,12 @@
 
     
 echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6
-echo "configure:11094: checking for dbm_open in -ldbm" >&5
+echo "configure:11329: 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 11099 "configure"
+#line 11334 "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
@@ -11106,7 +11341,7 @@
 dbm_open()
 ; return 0; }
 EOF
-if { (eval echo configure:11110: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11345: \"$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
@@ -11147,10 +11382,10 @@
 
 if test "$with_database_berkdb" != "no"; then
   echo $ac_n "checking for Berkeley db.h""... $ac_c" 1>&6
-echo "configure:11151: checking for Berkeley db.h" >&5
+echo "configure:11386: checking for Berkeley db.h" >&5
   for path in "db/db.h" "db.h"; do
     cat > conftest.$ac_ext <<EOF
-#line 11154 "configure"
+#line 11389 "configure"
 #include "confdefs.h"
 #ifdef HAVE_INTTYPES_H
 #define __BIT_TYPES_DEFINED__
@@ -11168,7 +11403,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:11172: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11407: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   db_h_path="$path"; break
 else
@@ -11184,9 +11419,9 @@
 
   if test "$with_database_berkdb" != "no"; then
     echo $ac_n "checking for Berkeley DB version""... $ac_c" 1>&6
-echo "configure:11188: checking for Berkeley DB version" >&5
+echo "configure:11423: checking for Berkeley DB version" >&5
     cat > conftest.$ac_ext <<EOF
-#line 11190 "configure"
+#line 11425 "configure"
 #include "confdefs.h"
 #include <$db_h_path>
 #if DB_VERSION_MAJOR > 1
@@ -11205,10 +11440,10 @@
 rm -f conftest*
 
     echo $ac_n "checking for $dbfunc""... $ac_c" 1>&6
-echo "configure:11209: checking for $dbfunc" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 11212 "configure"
+echo "configure:11444: checking for $dbfunc" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 11447 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $dbfunc(); below.  */
@@ -11231,7 +11466,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:11235: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11470: \"$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
@@ -11250,12 +11485,12 @@
 
     
 echo $ac_n "checking for $dbfunc in -ldb""... $ac_c" 1>&6
-echo "configure:11254: checking for $dbfunc in -ldb" >&5
+echo "configure:11489: 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 11259 "configure"
+#line 11494 "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
@@ -11266,7 +11501,7 @@
 $dbfunc()
 ; return 0; }
 EOF
-if { (eval echo configure:11270: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11505: \"$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
@@ -11330,12 +11565,12 @@
 if test "$with_socks" = "yes"; then
   
 echo $ac_n "checking for SOCKSinit in -lsocks""... $ac_c" 1>&6
-echo "configure:11334: checking for SOCKSinit in -lsocks" >&5
+echo "configure:11569: 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 11339 "configure"
+#line 11574 "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
@@ -11346,7 +11581,7 @@
 SOCKSinit()
 ; return 0; }
 EOF
-if { (eval echo configure:11350: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11585: \"$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
@@ -11403,16 +11638,16 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:11407: checking for $ac_hdr" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 11410 "configure"
+echo "configure:11642: checking for $ac_hdr" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 11645 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11415: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:11650: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
   eval "ac_cv_header_$ac_safe=yes"
@@ -11450,12 +11685,12 @@
 
 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { 
 echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:11454: checking for dlopen in -ldl" >&5
+echo "configure:11689: checking for dlopen in -ldl" >&5
 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldl "
 cat > conftest.$ac_ext <<EOF
-#line 11459 "configure"
+#line 11694 "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
@@ -11466,7 +11701,7 @@
 dlopen()
 ; return 0; }
 EOF
-if { (eval echo configure:11470: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11705: \"$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
@@ -11495,12 +11730,12 @@
  }
 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { 
 echo $ac_n "checking for _dlopen in -lc""... $ac_c" 1>&6
-echo "configure:11499: checking for _dlopen in -lc" >&5
+echo "configure:11734: checking for _dlopen in -lc" >&5
 ac_lib_var=`echo c'_'_dlopen | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lc "
 cat > conftest.$ac_ext <<EOF
-#line 11504 "configure"
+#line 11739 "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
@@ -11511,7 +11746,7 @@
 _dlopen()
 ; return 0; }
 EOF
-if { (eval echo configure:11515: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11750: \"$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
@@ -11540,12 +11775,12 @@
  }
 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { 
 echo $ac_n "checking for dlopen in -lc""... $ac_c" 1>&6
-echo "configure:11544: checking for dlopen in -lc" >&5
+echo "configure:11779: checking for dlopen in -lc" >&5
 ac_lib_var=`echo c'_'dlopen | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lc "
 cat > conftest.$ac_ext <<EOF
-#line 11549 "configure"
+#line 11784 "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
@@ -11556,7 +11791,7 @@
 dlopen()
 ; return 0; }
 EOF
-if { (eval echo configure:11560: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11795: \"$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
@@ -11585,12 +11820,12 @@
  }
 test -z "$with_shlib" && { 
 echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
-echo "configure:11589: checking for shl_load in -ldld" >&5
+echo "configure:11824: 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 11594 "configure"
+#line 11829 "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
@@ -11601,7 +11836,7 @@
 shl_load()
 ; return 0; }
 EOF
-if { (eval echo configure:11605: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11840: \"$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
@@ -11630,12 +11865,12 @@
  }
 test -z "$with_shlib" && { 
 echo $ac_n "checking for dld_init in -ldld""... $ac_c" 1>&6
-echo "configure:11634: checking for dld_init in -ldld" >&5
+echo "configure:11869: 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 11639 "configure"
+#line 11874 "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
@@ -11646,7 +11881,7 @@
 dld_init()
 ; return 0; }
 EOF
-if { (eval echo configure:11650: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11885: \"$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
@@ -11685,7 +11920,7 @@
 xealias=$internal_configuration
 
 echo "checking how to build dynamic libraries for ${xehost}" 1>&6
-echo "configure:11689: checking how to build dynamic libraries for ${xehost}" >&5
+echo "configure:11924: checking how to build dynamic libraries for ${xehost}" >&5
 # Transform *-*-linux* to *-*-linux-gnu*, to support old configure scripts.
 case "$xehost" in
 *-*-linux-gnu*) ;;
@@ -11713,9 +11948,9 @@
   XEGCC=yes
 else
   echo $ac_n "checking checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:11717: checking checking whether we are using GNU C" >&5
+echo "configure:11952: checking checking whether we are using GNU C" >&5
   cat > conftest.$ac_ext <<EOF
-#line 11719 "configure"
+#line 11954 "configure"
 #include "confdefs.h"
 
 #ifdef __GNUC__
@@ -11737,7 +11972,7 @@
 fi
 
 echo $ac_n "checking how to produce PIC code""... $ac_c" 1>&6
-echo "configure:11741: checking how to produce PIC code" >&5
+echo "configure:11976: checking how to produce PIC code" >&5
 wl=
 
 can_build_shared=yes
@@ -11830,18 +12065,18 @@
   
   # Check to make sure the dll_cflags actually works.
   echo $ac_n "checking if PIC flag ${dll_cflags} really works""... $ac_c" 1>&6
-echo "configure:11834: checking if PIC flag ${dll_cflags} really works" >&5
+echo "configure:12069: checking if PIC flag ${dll_cflags} really works" >&5
   save_CFLAGS="$CFLAGS"
   CFLAGS="$CFLAGS $dll_cflags -DPIC"
   cat > conftest.$ac_ext <<EOF
-#line 11838 "configure"
+#line 12073 "configure"
 #include "confdefs.h"
 
 int main() {
 int x=0;
 ; return 0; }
 EOF
-if { (eval echo configure:11845: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12080: \"$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
@@ -11872,7 +12107,7 @@
 xldf=
 xcldf=
 echo $ac_n "checking if C compiler can produce shared libraries""... $ac_c" 1>&6
-echo "configure:11876: checking if C compiler can produce shared libraries" >&5
+echo "configure:12111: checking if C compiler can produce shared libraries" >&5
 if test "$XEGCC" = yes; then
   xcldf="-shared"
   xldf="-shared"
@@ -11923,14 +12158,14 @@
   xe_libs=
   ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&5'
   cat > conftest.$ac_ext <<EOF
-#line 11927 "configure"
+#line 12162 "configure"
 #include "confdefs.h"
 
 int main() {
 int x=0;
 ; return 0; }
 EOF
-if { (eval echo configure:11934: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:12169: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cc_produces_so=yes
 else
@@ -11955,7 +12190,7 @@
   if test "$XEGCC" = yes; then
     # Check if gcc -print-prog-name=ld gives a path.
     echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6
-echo "configure:11959: checking for ld used by GCC" >&5
+echo "configure:12194: checking for ld used by GCC" >&5
     ac_prog=`($CC -print-prog-name=ld) 2>&5`
     case "$ac_prog" in
     # Accept absolute paths.
@@ -11980,7 +12215,7 @@
     esac
   else
     echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
-echo "configure:11984: checking for GNU ld" >&5
+echo "configure:12219: checking for GNU ld" >&5
   fi
 
   if test -z "$LTLD"; then
@@ -12018,7 +12253,7 @@
 
 # Check to see if it really is or isn't GNU ld.
 echo $ac_n "checking if the linker is GNU ld""... $ac_c" 1>&6
-echo "configure:12022: checking if the linker is GNU ld" >&5
+echo "configure:12257: 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
@@ -12045,7 +12280,7 @@
   # OK - only NOW do we futz about with ld.
   # See if the linker supports building shared libraries.
   echo $ac_n "checking whether the linker supports shared libraries""... $ac_c" 1>&6
-echo "configure:12049: checking whether the linker supports shared libraries" >&5
+echo "configure:12284: checking whether the linker supports shared libraries" >&5
   dll_ld=$CC
   dll_ldflags=$LDFLAGS
   ld_shlibs=yes
@@ -12257,10 +12492,10 @@
     for ac_func in dlerror _dlerror
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12261: checking for $ac_func" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 12264 "configure"
+echo "configure:12496: checking for $ac_func" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 12499 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -12283,7 +12518,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:12287: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:12522: \"$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
@@ -12317,11 +12552,11 @@
 fi
 
 cat > conftest.$ac_ext <<EOF
-#line 12321 "configure"
+#line 12556 "configure"
 #include "confdefs.h"
 int main(int c,char *v[]){return 0;}
 EOF
-if { (eval echo configure:12325: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:12560: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   :
 else
@@ -13002,7 +13237,15 @@
   athena3d ) echo "  Using Athena-3d scrollbars." ;;
 esac
 case "$with_dialogs" in
-  motif    ) echo "  Using Motif dialog boxes."     ;;
+  motif    )
+    echo "  Using Motif dialog boxes."
+    if test "$unexec" = "unexaix.o" -a `uname -v` = 4 -a `uname -r` -ge 3; then
+      echo "  *WARNING*  The Motif dialog boxes cause problems on AIX 4.3 and higher."
+      echo "             We recommend using the Athena dialog boxes instead."
+      echo "             Install libXaw and re-run configure with --with-dialogs='athena'."
+      echo "             Read the PROBLEMS file for more information."
+    fi	
+    ;;
   athena   ) echo "  Using Athena dialog boxes."    ;;
   athena3d ) echo "  Using Athena-3d dialog boxes." ;;
 esac
@@ -13097,7 +13340,7 @@
     echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
     exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
   -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
-    echo "$CONFIG_STATUS generated by autoconf version 2.12"
+    echo "$CONFIG_STATUS generated by autoconf version 2.13"
     exit 0 ;;
   -help | --help | --hel | --he | --h)
     echo "\$ac_cs_usage"; exit 0 ;;
@@ -13117,9 +13360,11 @@
  s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
 $ac_vpsub
 $extrasub
+s%@SHELL@%$SHELL%g
 s%@CFLAGS@%$CFLAGS%g
 s%@CPPFLAGS@%$CPPFLAGS%g
 s%@CXXFLAGS@%$CXXFLAGS%g
+s%@FFLAGS@%$FFLAGS%g
 s%@DEFS@%$DEFS%g
 s%@LDFLAGS@%$LDFLAGS%g
 s%@LIBS@%$LIBS%g
@@ -13149,6 +13394,7 @@
 s%@lib_gcc@%$lib_gcc%g
 s%@RANLIB@%$RANLIB%g
 s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
 s%@INSTALL_DATA@%$INSTALL_DATA%g
 s%@YACC@%$YACC%g
 s%@SET_MAKE@%$SET_MAKE%g
--- a/configure.in	Mon Aug 13 11:10:04 2007 +0200
+++ b/configure.in	Mon Aug 13 11:10:50 2007 +0200
@@ -876,13 +876,22 @@
   fi
 done
 
+dnl Do our best to deal with automounter brokenness
+dnl CANONICALIZE_PATH(varname)
+define([CANONICALIZE_PATH],
+[if test -d "/net"; then
+  if test -d "/tmp_mnt/net"; then tdir="tmp_mnt/net"; else tdir="tmp_mnt"; fi
+  $1=`echo "[$]$1" | \
+   sed -e "s|^${tdir}/|/net/|" -e "s|^/a/|/net/|" -e "s|^/amd/|/net/|"`
+fi])dnl
+
 dnl Calculate canonical name for blddir (i.e. current directory).
 dnl PWD may already be the preferable absolute name for ".",
 dnl but we can't trust it - it is sometimes inaccurate.
 absolute_pwd="`pwd`";
 if test -n "$PWD" -a "`cd $PWD && pwd`" = "$absolute_pwd"
 then blddir="$PWD"
-else blddir="$absolute_pwd"
+else blddir="$absolute_pwd"; CANONICALIZE_PATH(blddir)
 fi
 AC_SUBST(blddir)
 
@@ -892,7 +901,7 @@
 case "$srcdir" in
   /* ) ;;
   .  ) srcdir="$blddir" ;;
-  *  ) srcdir="`cd $srcdir && pwd`" ;;
+  *  ) srcdir="`cd $srcdir && pwd`"; CANONICALIZE_PATH(srcdir) ;;
 esac
 
 dnl Check if the source directory already has a configured system in it.
@@ -1456,6 +1465,7 @@
       *-xenix* )		opsys=xenix ;;
       *-sco3.2v4* )		opsys=sco4 NON_GNU_CPP=/lib/cpp  ;;
       *-bsd386* | *-bsdi1* )	opsys=bsd386 ;;
+      *-bsdi4* )		opsys=bsdos4 ;;
       *-bsdi3* )		opsys=bsdos3 ;;
       *-bsdi2.1* )		opsys=bsdos2-1 ;;
       *-bsdi2* )		opsys=bsdos2 ;;
@@ -1941,7 +1951,7 @@
   AC_MSG_CHECKING("for runtime libraries flag")
   case "$opsys" in
     sol2 ) dash_r="-R" ;;
-    decosf* | linux* ) dash_r="-rpath " ;;
+    decosf* | linux* | irix*) dash_r="-rpath " ;;
     *)
       dash_r=""
       for try_dash_r in "-R" "-R " "-rpath "; do
@@ -2535,7 +2545,7 @@
   dnl if test "$with_tty" = "no" ; then
   dnl   AC_MSG_ERROR([No window system support and no TTY support - Unable to proceed.])
   dnl fi
-  for feature in tooltalk cde offix session xim xmu 
+  for feature in tooltalk cde offix session xim xmu
   do
     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
        AC_MSG_WARN([--with-$feature ignored:  Not valid without X support])
@@ -2985,10 +2995,11 @@
   dnl test -z "$with_xim" -a "$opsys" != "sol2" && with_xim=no
   case "$with_xim" in "" | "yes" )
     AC_CHECKING(for XIM)
+    AC_CHECK_LIB(X11, XOpenIM, with_xim=xlib, with_xim=no)
     dnl XIM + Lesstif is not (yet?) usable
-    if test "$have_lesstif" = "yes"; then with_xim=xlib
-    else AC_CHECK_LIB(Xm, XmImMbLookupString, with_xim=motif, with_xim=xlib)
-    fi
+    if test "$have_motif $have_lesstif" = "yes no"; then
+      AC_CHECK_LIB(Xm, XmImMbLookupString, with_xim=motif)
+    fi ;;
   esac
   if test "$with_xim" != "no"; then
     AC_DEFINE(HAVE_XIM)
@@ -3006,7 +3017,7 @@
     fi
   fi
 
-  dnl "with_xim" = "yes"
+  dnl "with_xfs" = "yes"
   if test "$with_xfs" = "yes" ; then
     AC_CHECKING(for XFontSet)
     AC_CHECK_LIB(X11, XmbDrawString, [:], with_xfs=no)
@@ -3016,7 +3027,7 @@
         XE_ADD_OBJS(input-method-xfs.o)
       fi
     fi
-  fi dnl with_xim
+  fi dnl with_xfs
 
   dnl Autodetect WNN
   test "$with_wnn6" = "yes" && with_wnn=yes # wnn6 implies wnn support
@@ -4090,7 +4101,15 @@
   athena3d ) echo "  Using Athena-3d scrollbars." ;;
 esac
 case "$with_dialogs" in
-  motif    ) echo "  Using Motif dialog boxes."     ;;
+  motif    )
+    echo "  Using Motif dialog boxes."
+    if test "$unexec" = "unexaix.o" -a `uname -v` = 4 -a `uname -r` -ge 3; then
+      echo "  *WARNING*  The Motif dialog boxes cause problems on AIX 4.3 and higher."
+      echo "             We recommend using the Athena dialog boxes instead."
+      echo "             Install libXaw and re-run configure with --with-dialogs='athena'."
+      echo "             Read the PROBLEMS file for more information."
+    fi	
+    ;;
   athena   ) echo "  Using Athena dialog boxes."    ;;
   athena3d ) echo "  Using Athena-3d dialog boxes." ;;
 esac
--- a/configure.usage	Mon Aug 13 11:10:04 2007 +0200
+++ b/configure.usage	Mon Aug 13 11:10:50 2007 +0200
@@ -204,6 +204,8 @@
                         int, for the fundamental Lisp_Object type; this
                         provides stricter type-checking.  Only works with
                         some systems and compilers.
+--with-quantify         Add support for performance debugging using Quantify.
+--with-purify           Add support for memory debugging using Purify.
 
 
 Other options:
@@ -214,15 +216,13 @@
 --with-dlmalloc         Control usage of Doug Lea malloc on systems that have
                         it in the standard C library (default is to use it if
                         it is available).
+--with-system-malloc    Force use of the system malloc, rather than GNU malloc.
+--with-debug-malloc     Use the debugging malloc package.
 --with-clash-detection  Use lock files to detect multiple edits of the same
                         file.  The default is to not do clash detection.
 --lockdir=DIR           The directory to put clash detection files in, such as
                         `/var/lock/emacs'.
                         Defaults to `${statedir}/xemacs/lock'.
---with-system-malloc    Force use of the system malloc, rather than GNU malloc.
---with-debug-malloc     Use the debugging malloc package.
---with-quantify         Add support for performance debugging using Quantify.
---with-purify           Add support for memory debugging using Purify.
 
 You may also specify any of the `path' variables found in Makefile.in,
 including --bindir, --libdir, --lispdir, --sitelispdir, --datadir,
--- a/etc/BETA	Mon Aug 13 11:10:04 2007 +0200
+++ b/etc/BETA	Mon Aug 13 11:10:50 2007 +0200
@@ -224,6 +224,10 @@
 Each patch will be reviewed by the patches review board, and will be
 acked and added to the distribution, or rejected with an explanation.
 
+Patches to XEmacs Lisp packages should be sent to the maintainer of
+the package.  If the maintainer is listed as `XEmacs Development Team'
+patches should be sent to <xemacs-patches@xemacs.org>.
+
 Emailed patches should preferably be sent in MIME format and quoted
 printable encoding (if necessary).
 
--- a/etc/PACKAGES	Mon Aug 13 11:10:04 2007 +0200
+++ b/etc/PACKAGES	Mon Aug 13 11:10:50 2007 +0200
@@ -1,7 +1,7 @@
 * Description of available packages by category
 ===============================================
 
-This data is up-to-date as of 13 January 1998.
+This data is up-to-date as of 10 February 1999.
 
 ** Library Packages (libs)
 ==========================
@@ -12,8 +12,7 @@
 
 *** Sun
 
-Support for Sparcworks.  Must be installed prior to XEmacs build to be 
-effective.
+Support for Sparcworks.
 
 *** apel
 
@@ -38,8 +37,7 @@
 
 *** tooltalk
 
-Support for building with Tooltalk.  Must be installed prior to XEmacs 
-build to be effective.
+Support for building with Tooltalk.
 
 *** xemacs-base
 
@@ -101,7 +99,7 @@
 
 *** vm
 
-An Emacs mailer.  This package must be installed prior to building XEmacs.
+An Emacs mailer.
 
 *** w3
 
@@ -280,8 +278,7 @@
 
 *** vc
 
-Version Control for Free systems.  This package must be installed
-prior to building XEmacs.
+Version Control for Free systems.
 
 *** vc-cc
 
--- a/etc/package-index.LATEST.pgp	Mon Aug 13 11:10:04 2007 +0200
+++ b/etc/package-index.LATEST.pgp	Mon Aug 13 11:10:50 2007 +0200
@@ -1,6 +1,28 @@
 ;; Package Index file -- Do not edit manually.
 ;;;@@@
 (package-get-update-base-entry (quote
+(ediff
+  (standards-version 1.0
+   version "1.17"
+   author-version "2.72"
+   date "1999-02-16"
+   build-date "1999-03-01"
+   maintainer "Michael Kifer <kifer@cs.sunysb.edu>"
+   distribution stable
+   priority medium
+   category "prog"
+   dump nil
+   description "Interface over GNU patch."
+   filename "ediff-1.17-pkg.tar.gz"
+   md5sum "b69c621d1943a9b668374f0babd243f3"
+   size 281481
+   provides (ediff)
+   requires (pcl-cvs elib dired xemacs-base)
+   type regular
+))
+))
+;;;@@@
+(package-get-update-base-entry (quote
 (hm--html-menus
   (standards-version 1.0
    version "1.12"
@@ -157,19 +179,19 @@
 (package-get-update-base-entry (quote
 (mule-base
   (standards-version 1.0
-   version "1.27"
-   author-version "21.0b62"
-   date "1998-12-05"
-   build-date "1999-02-02"
+   version "1.28"
+   author-version "21.0b63"
+   date "1999-02-17"
+   build-date "1999-03-01"
    maintainer "SL Baur <steve@altair.xemacs.org>"
    distribution mule
    priority high
    category "mule"
    dump t
    description "Basic Mule support, required for building with Mule."
-   filename "mule-base-1.27-pkg.tar.gz"
-   md5sum "7a9732261af6d612e3800c23b3491e41"
-   size 508690
+   filename "mule-base-1.28-pkg.tar.gz"
+   md5sum "498d725e923476af3df12b83fef6277d"
+   size 441953
    provides (canna-leim canna char-table china-util cyril-util isearch-ext japan-util ccl can-n-egg mule-help)
    requires (fsf-compat xemacs-base)
    type regular
@@ -223,19 +245,19 @@
 (package-get-update-base-entry (quote
 (text-modes
   (standards-version 1.0
-   version "1.17"
-   author-version "21.0b62"
-   date "1998-12-30"
-   build-date "1999-02-02"
+   version "1.18"
+   author-version "21.0b63"
+   date "1999-02-15"
+   build-date "1999-03-01"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority high
    category "oa"
    dump nil
    description "Miscellaneous support for editing text files."
-   filename "text-modes-1.17-pkg.tar.gz"
-   md5sum "3004046c35c63dd6df85094c2796d020"
-   size 195328
+   filename "text-modes-1.18-pkg.tar.gz"
+   md5sum "f9d30bd220d0806179397194603b0b0f"
+   size 207596
    provides (autoinsert crontab-edit filladapt fold-isearch folding image-mode iso-acc iso-ascii iso-cvt iso-insert iso-swed swedish tabify whitespace-mode winmgr-mode xpm-mode xrdb-mode)
    requires (ispell fsf-compat xemacs-base)
    type regular
@@ -399,19 +421,19 @@
 (package-get-update-base-entry (quote
 (calendar
   (standards-version 1.0
-   version "1.09"
-   author-version "21.0b62"
-   date "1998-09-01"
-   build-date "1999-02-02"
+   version "1.10"
+   author-version "21.0b63"
+   date "1999-02-08"
+   build-date "1999-03-01"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
    category "oa"
    dump nil
    description "Calendar and diary support."
-   filename "calendar-1.09-pkg.tar.gz"
-   md5sum "92e267eb29597430b85834cc57271e86"
-   size 248518
+   filename "calendar-1.10-pkg.tar.gz"
+   md5sum "09e93d157d2853a35e735a6a04f54055"
+   size 248580
    provides (appt cal-dst cal-french cal-mayan cal-x cal-xemacs calendar diary-ins diary-lib holidays lunar solar)
    requires (xemacs-base)
    type regular
@@ -465,19 +487,19 @@
 (package-get-update-base-entry (quote
 (edit-utils
   (standards-version 1.0
-   version "1.36"
-   author-version "21.0b62"
-   date "1998-12-30"
-   build-date "1999-02-02"
+   version "1.37"
+   author-version "21.0b63"
+   date "1999-02-18"
+   build-date "1999-03-01"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority high
    category "oa"
    dump nil
    description "Miscellaneous editor extensions, you probably need this."
-   filename "edit-utils-1.36-pkg.tar.gz"
-   md5sum "c8465a98c57d1c91ccfd2ce1aee3b508"
-   size 574967
+   filename "edit-utils-1.37-pkg.tar.gz"
+   md5sum "fb7f38fd037c0fa045a199796c69e6d7"
+   size 577293
    provides (abbrevlist atomic-extents avoid backup-dir balloon-help big-menubar blink-cursor blink-paren bookmark compare-w completion dabbrev desktop detached-minibuf edit-toolbar fast-lock file-part floating-toolbar flow-ctrl foldout func-menu hippie-exp icomplete id-select info-look iswitchb lazy-lock lazy-shot live-icon man mic-paren paren popper mode-motion+ outl-mouse page-ext blink-paren paren permanent-buffers recent-files redo reportmail rsz-minibuf saveconfsavehist saveplace scroll-in-place tempo toolbar-utils tree-menu uniquify where-was-i-db)
    requires (xemacs-base)
    type single
@@ -597,19 +619,19 @@
 (package-get-update-base-entry (quote
 (viper
   (standards-version 1.0
-   version "1.12"
-   author-version "3.05"
-   date " to viper-"
-   build-date "1999-02-02"
-   maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
+   version "1.13"
+   author-version "3.061"
+   date "1999-02-17"
+   build-date "1999-03-01"
+   maintainer "Michael Kifer <kifer@cs.sunysb.edu>"
    distribution stable
    priority low
    category "wp"
    dump nil
    description "VI emulation support."
-   filename "viper-1.12-pkg.tar.gz"
-   md5sum "ded88cfaad39a6001389918808549efa"
-   size 317341
+   filename "viper-1.13-pkg.tar.gz"
+   md5sum "b369c53c499c3ab2e1478031ddaf6071"
+   size 317868
    provides (viper)
    requires (xemacs-base)
    type regular
@@ -795,19 +817,19 @@
 (package-get-update-base-entry (quote
 (vc
   (standards-version 1.0
-   version "1.16"
-   author-version "21.0b62"
-   date "1998-10-16"
-   build-date "1999-02-02"
+   version "1.17"
+   author-version "21.0b63"
+   date "1999-02-25"
+   build-date "1999-03-01"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
    category "prog"
    dump nil
    description "Version Control for Free systems."
-   filename "vc-1.16-pkg.tar.gz"
-   md5sum "59229957e35e7109cb92407cf9c9dcaf"
-   size 84381
+   filename "vc-1.17-pkg.tar.gz"
+   md5sum "4e80458c0e6d4cf2805ed6a46135e1c6"
+   size 84499
    provides (vc)
    requires (dired xemacs-base)
    type regular
@@ -883,19 +905,19 @@
 (package-get-update-base-entry (quote
 (prog-modes
   (standards-version 1.0
-   version "1.17"
-   author-version "21.0b62"
-   date "1998-12-30"
-   build-date "1999-02-02"
+   version "1.18"
+   author-version "21.0b63"
+   date "1999-02-05"
+   build-date "1999-03-01"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority medium
    category "prog"
    dump nil
    description "Support for various programming languages."
-   filename "prog-modes-1.17-pkg.tar.gz"
-   md5sum "23daac543cf9622f12fab0aff788ba26"
-   size 594744
+   filename "prog-modes-1.18-pkg.tar.gz"
+   md5sum "b6b86a7a88544c54e5231e11e0a9af79"
+   size 595658
    provides (autoconf-mode cperl-mode eiffel3 f90 fortran ksh-mode m4-mode makefile perl-mode postscript python-mode rexx-mode simula-mode tcl teco verilog-mod)
    requires (mail-lib xemacs-devel xemacs-base)
    type regular
@@ -949,19 +971,19 @@
 (package-get-update-base-entry (quote
 (c-support
   (standards-version 1.0
-   version "1.10"
-   author-version "21.0b62"
-   date "1998-03-25"
-   build-date "1999-02-02"
+   version "1.11"
+   author-version "21.0b63"
+   date "1999-02-06"
+   build-date "1999-03-01"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution contrib
    priority low
    category "prog"
    dump nil
    description "Basic single-file add-ons for editing C code."
-   filename "c-support-1.10-pkg.tar.gz"
-   md5sum "40abc17d38e4a4a206cfc6b1eb0f6a8e"
-   size 69812
+   filename "c-support-1.11-pkg.tar.gz"
+   md5sum "d93566b09c3d9e79ac12a644250e7ca0"
+   size 69876
    provides (c-comment-edit cmacexp ctypes hideif hideshow)
    requires (cc-mode xemacs-base)
    type regular
@@ -1191,19 +1213,19 @@
 (package-get-update-base-entry (quote
 (tm
   (standards-version 1.0
-   version "1.16"
-   author-version "21.0b62"
-   date "1998-08-27"
-   build-date "1999-02-02"
+   version "1.17"
+   author-version "21.0b63"
+   date "1999-02-06"
+   build-date "1999-02-06"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
    category "comm"
    dump nil
    description "Emacs MIME support."
-   filename "tm-1.16-pkg.tar.gz"
-   md5sum "e8a3e6856d5fcfc674f95bc5b82a343e"
-   size 329571
+   filename "tm-1.17-pkg.tar.gz"
+   md5sum "ee33e9f5fb4cd461e19e5ff23b4a3ea2"
+   size 329581
    provides (tm tm-edit tm-view mime-setup)
    requires (gnus mh-e rmail vm mailcrypt mail-lib apel xemacs-base)
    type regular
@@ -1213,19 +1235,19 @@
 (package-get-update-base-entry (quote
 (gnus
   (standards-version 1.0
-   version "1.37"
+   version "1.38"
    author-version "5.6.45"
-   date "1998-09-25"
-   build-date "1999-02-02"
+   date "1999-02-17"
+   build-date "1999-03-01"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority medium
    category "comm"
    dump nil
    description "The Gnus Newsreader and Mailreader."
-   filename "gnus-1.37-pkg.tar.gz"
-   md5sum "8af2b47c6ebbe850d7e8c9906aa1611a"
-   size 1875259
+   filename "gnus-1.38-pkg.tar.gz"
+   md5sum "22f00c391c4680d0a4fe53a5e6b85f40"
+   size 1869217
    provides (gnus message)
    requires (gnus tm apel w3 mh-e mailcrypt rmail mail-lib xemacs-base)
    type regular
@@ -1367,19 +1389,19 @@
 (package-get-update-base-entry (quote
 (eudc
   (standards-version 1.0
-   version "1.27"
-   author-version "1.26"
-   date "1998-12-14"
-   build-date "1999-02-02"
+   version "1.28"
+   author-version "1.28"
+   date "1999-02-13"
+   build-date "1999-03-01"
    maintainer "Oscar Figueiredo <Oscar.Figueiredo@epfl.ch>"
    distribution stable
    priority low
    category "comm"
    dump nil
    description "Emacs Unified Directory Client (LDAP, PH)."
-   filename "eudc-1.27-pkg.tar.gz"
-   md5sum "60dfa739f2949117e7d7a5e382383419"
-   size 60248
+   filename "eudc-1.28-pkg.tar.gz"
+   md5sum "e88e7ed791d16105824812edcd743bc6"
+   size 62476
    provides (eudc eudc-ldap eudc-ph)
    requires (fsf-compat xemacs-base bbdb)
    type regular
@@ -1411,19 +1433,19 @@
 (package-get-update-base-entry (quote
 (w3
   (standards-version 1.0
-   version "1.11"
-   author-version "4.0pre23"
-   date "1998-07-18"
-   build-date "1999-02-02"
+   version "1.12"
+   author-version "4.0pre39"
+   date "1999-01-08"
+   build-date "1999-03-01"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution experimental
    priority high
    category "comm"
    dump nil
    description "A Web browser."
-   filename "w3-1.11-pkg.tar.gz"
-   md5sum "98237890a9a0ba5b76b2daf1129b2384"
-   size 612581
+   filename "w3-1.12-pkg.tar.gz"
+   md5sum "e7afce350e99f71dfde7ec752290670c"
+   size 679826
    provides (w3 url)
    requires (w3 mail-lib xemacs-base)
    type regular
@@ -1433,19 +1455,19 @@
 (package-get-update-base-entry (quote
 (vm
   (standards-version 1.0
-   version "1.15"
-   author-version "6.62"
+   version "1.16"
+   author-version "6.67"
    date "1998-09-22"
-   build-date "1999-02-02"
+   build-date "1999-03-01"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority medium
    category "comm"
    dump nil
    description "An Emacs mailer."
-   filename "vm-1.15-pkg.tar.gz"
-   md5sum "732ed51ac098cf14a7a164db9cd88f2d"
-   size 548653
+   filename "vm-1.16-pkg.tar.gz"
+   md5sum "e5ad7011473b17f7d1e9521407199b64"
+   size 603773
    provides (vm)
    requires (mail-lib xemacs-base)
    type regular
@@ -1609,19 +1631,19 @@
 (package-get-update-base-entry (quote
 (apel
   (standards-version 1.0
-   version "1.08"
+   version "1.09"
    author-version "3.3"
    date "1998-07-23"
-   build-date "1999-02-02"
+   build-date "1999-03-01"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution mule
    priority high
    category "libs"
    dump nil
    description "A Portable Emacs Library.  Used by XEmacs MIME support."
-   filename "apel-1.08-pkg.tar.gz"
-   md5sum "125d8a29874f82ba1b1900848869e3c3"
-   size 34725
+   filename "apel-1.09-pkg.tar.gz"
+   md5sum "2030f4f38ef76da3104f77f36b797916"
+   size 35302
    provides (atype emu-20 emu-e19 emu-x20 emu-xemacs emu file-detect filename install mule-caesar path-util richtext std11-parse std11 tinyrich)
    requires (fsf-compat xemacs-base)
    type regular
@@ -1719,19 +1741,19 @@
 (package-get-update-base-entry (quote
 (xemacs-base
   (standards-version 1.0
-   version "1.29"
-   author-version "21.0b62"
-   date "1998-12-05"
-   build-date "1999-02-02"
+   version "1.30"
+   author-version "21.0b63"
+   date "1998-11-30"
+   build-date "1999-03-01"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution mule
    priority high
    category "libs"
    dump nil
    description "Fundamental XEmacs support, you almost certainly need this."
-   filename "xemacs-base-1.29-pkg.tar.gz"
-   md5sum "da907ff396bc3d1143a7d2f5142f5dd2"
-   size 430466
+   filename "xemacs-base-1.30-pkg.tar.gz"
+   md5sum "e0c4ffb2561c10755c8132b2b88e11b2"
+   size 430503
    provides (add-log advice annotations assoc case-table chistory comint-xemacs comint compile debug ebuff-menu echistory edmacro ehelp electric enriched env facemenu ffap helper imenu iso-syntax macros novice outline overlay passwd pp regi ring shell skeleton sort thing time-stamp timezone xbm-button xpm-button)
    requires ()
    type regular
--- a/lib-src/ChangeLog	Mon Aug 13 11:10:04 2007 +0200
+++ b/lib-src/ChangeLog	Mon Aug 13 11:10:50 2007 +0200
@@ -1,3 +1,21 @@
+1999-03-01  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+	* XEmacs 21.2.11 is released
+
+1999-02-17  SL Baur  <steve@xemacs.org>
+
+	* update-elc.sh (ignore_dirs): Ignore lisp/mule subdirectory when
+	running latin-1 XEmacs.  Eliminate 20.4 bundled kludges.
+	* update-custom.sh (ignore_dirs): Ditto.
+
+1999-02-15  Martin Buchholz  <martin@xemacs.org>
+
+	* update-elc.sh:
+	* update-autoloads.sh:
+	* update-custom.sh:
+	- improved automounter tmp directory support.
+	- support 4 (!) empirically discovered automounter conventions
+
 1999-02-05  XEmacs Build Bot <builds@cvs.xemacs.org>
 
 	* XEmacs 21.2.10 is released
--- a/lib-src/config.values.in	Mon Aug 13 11:10:04 2007 +0200
+++ b/lib-src/config.values.in	Mon Aug 13 11:10:50 2007 +0200
@@ -43,6 +43,8 @@
 LOCKDIR "@LOCKDIR@"
 LOCKDIR_USER_DEFINED "@LOCKDIR_USER_DEFINED@"
 MAKE_SUBDIR "@MAKE_SUBDIR@"
+MODULEDIR "@MODULEDIR@"
+MODULEDIR_USER_DEFINED "@MODULEDIR_USER_DEFINED@"
 PACKAGE_PATH "@PACKAGE_PATH@"
 PACKAGE_PATH_USER_DEFINED "@PACKAGE_PATH_USER_DEFINED@"
 PREFIX "@PREFIX@"
@@ -50,8 +52,13 @@
 RANLIB "@RANLIB@"
 RECURSIVE_MAKE "@RECURSIVE_MAKE@"
 SET_MAKE "@SET_MAKE@"
+SITELISPDIR "@SITELISPDIR@"
+SITELISPDIR_USER_DEFINED "@SITELISPDIR_USER_DEFINED@"
+SITEMODULEDIR "@SITEMODULEDIR@"
+SITEMODULEDIR_USER_DEFINED "@SITEMODULEDIR_USER_DEFINED@"
 SRC_SUBDIR_DEPS "@SRC_SUBDIR_DEPS@"
 SUBDIR_MAKEFILES "@SUBDIR_MAKEFILES@"
+XEMACS_CC "@XEMACS_CC@"
 X_CFLAGS "@X_CFLAGS@"
 X_EXTRA_LIBS "@X_EXTRA_LIBS@"
 X_LIBS "@X_LIBS@"
@@ -70,8 +77,9 @@
 datadir "@datadir@"
 dll_cflags "@dll_cflags@"
 dll_ld "@dll_ld@"
-dll_lflags "@dll_lflags@"
-dll_oflags "@dll_oflags@"
+dll_ldflags "@dll_ldflags@"
+dll_ldo "@dll_ldo@"
+dll_post "@dll_post@"
 dnd_objs "@dnd_objs@"
 docdir "@docdir@"
 dynodump_arch "@dynodump_arch@"
@@ -102,6 +110,7 @@
 lwlib_objs "@lwlib_objs@"
 machfile "@machfile@"
 mandir "@mandir@"
+moduledir "@moduledir@"
 native_sound_lib "@native_sound_lib@"
 oldincludedir "@oldincludedir@"
 opsysfile "@opsysfile@"
@@ -111,6 +120,8 @@
 program_transform_name "@program_transform_name@"
 sbindir "@sbindir@"
 sharedstatedir "@sharedstatedir@"
+sitelispdir "@sitelispdir@"
+sitemoduledir "@sitemoduledir@"
 sound_cflags "@sound_cflags@"
 srcdir "@srcdir@"
 start_files "@start_files@"
--- a/lib-src/update-autoloads.sh	Mon Aug 13 11:10:04 2007 +0200
+++ b/lib-src/update-autoloads.sh	Mon Aug 13 11:10:50 2007 +0200
@@ -43,14 +43,24 @@
 
 export EMACS
 
-REAL=`cd \`dirname $EMACS\` ; pwd | sed 's|^/tmp_mnt||'`/`basename $EMACS`
+EMACS_DIR=`cd \`dirname $EMACS\` && pwd`;
+CANON_PWD=`pwd`
+# Account for various system automounter configurations
+if test -d "/net"; then
+  if test -d "/tmp_mnt/net"; then tdir="/tmp_mnt/net"; else tdir="/tmp_mnt"; fi
+  EMACS_DIR=`echo "$EMACS_DIR" | \
+   sed -e "s|^${tdir}/|/net/|" -e "s|^/a/|/net/|" -e "s|^/amd/|/net/|"`
+  CANON_PWD=`echo "$CANON_PWD" | \
+   sed -e "s|^${tdir}/|/net/|" -e "s|^/a/|/net/|" -e "s|^/amd/|/net/|"`
+fi
+REAL="$EMACS_DIR/`basename $EMACS`"
 
-echo "Rebuilding autoloads in `pwd|sed 's|^/tmp_mnt||'`"
+echo "Rebuilding autoloads in $CANON_PWD"
 echo "          with $REAL..."
 
 if [ "`uname -r | sed 's/\(.\).*/\1/'`" -gt 4 ]; then
   echon()
-  {    
+  {
     /bin/echo $* '\c'
   }
 else
--- a/lib-src/update-custom.sh	Mon Aug 13 11:10:04 2007 +0200
+++ b/lib-src/update-custom.sh	Mon Aug 13 11:10:50 2007 +0200
@@ -45,13 +45,20 @@
 
 export EMACS
 
-REAL=`cd \`dirname $EMACS\` ; pwd | sed 's|^/tmp_mnt||'`/`basename $EMACS`
+EMACS_DIR=`cd \`dirname $EMACS\` && pwd`;
+# Account for various system automounter configurations
+if test -d "/net"; then
+  if test -d "/tmp_mnt/net"; then tdir="/tmp_mnt/net"; else tdir="/tmp_mnt"; fi
+  EMACS_DIR=`echo "$EMACS_DIR" | \
+   sed -e "s|^${tdir}/|/net/|" -e "s|^/a/|/net/|" -e "s|^/amd/|/net/|"`
+fi
+REAL="$EMACS_DIR/`basename $EMACS`"
 
 echo "Rebuilding custom-loads with $REAL..."
 
 if [ "`uname -r | sed 's/\(.\).*/\1/'`" -gt 4 ]; then
   echon()
-  {    
+  {
     /bin/echo $* '\c'
   }
 else
@@ -62,12 +69,7 @@
 fi
 
 # Compute patterns to ignore when searching for files
-# These directories don't have customizations, or are partially broken.
-# If some of the packages listed here are customized, don't forget to
-#  remove the directory!
-ignore_dirs="cl egg eos its language locale sunpro term \
-tooltalk iso electric \
-hm--html-menus gnats pcl-cvs vm"
+ignore_dirs=""
 
 # Only use Mule XEmacs to build Mule-specific autoloads & custom-loads.
 echon "Checking for Mule support..."
@@ -75,7 +77,7 @@
 mule_p="`$EMACS -batch -q -no-site-file -eval \"$lisp_prog\"`"
 if test "$mule_p" = nil ; then
 	echo No
-	ignore_dirs="$ignore_dirs mule leim skk"
+	ignore_dirs="$ignore_dirs mule"
 else
 	echo Yes
 fi
--- a/lib-src/update-elc.sh	Mon Aug 13 11:10:04 2007 +0200
+++ b/lib-src/update-elc.sh	Mon Aug 13 11:10:50 2007 +0200
@@ -60,12 +60,24 @@
   }
 fi
 
-REAL=`cd \`dirname $EMACS\` ; pwd | sed 's|^/tmp_mnt||'`/`basename $EMACS`
-BYTECOMP="$REAL -batch -vanilla "
-echo "Recompiling in `pwd|sed 's|^/tmp_mnt||'`"
+EMACS_DIR=`cd \`dirname $EMACS\` && pwd`;
+CANON_PWD=`pwd`
+# Account for various system automounter configurations
+if test -d "/net"; then
+  if test -d "/tmp_mnt/net"; then tdir="/tmp_mnt/net"; else tdir="/tmp_mnt"; fi
+  EMACS_DIR=`echo "$EMACS_DIR" | \
+   sed -e "s|^${tdir}/|/net/|" -e "s|^/a/|/net/|" -e "s|^/amd/|/net/|"`
+  CANON_PWD=`echo "$CANON_PWD" | \
+   sed -e "s|^${tdir}/|/net/|" -e "s|^/a/|/net/|" -e "s|^/amd/|/net/|"`
+fi
+REAL="$EMACS_DIR/`basename $EMACS`"
+
+echo "Recompiling in $CANON_PWD"
 echo "          with $REAL..."
 
-$EMACS -batch -vanilla -l `pwd`/lisp/cleantree -f batch-remove-old-elc lisp
+BYTECOMP="$REAL -batch -vanilla "
+
+$EMACS -batch -vanilla -l $CANON_PWD/lisp/cleantree -f batch-remove-old-elc lisp
 
 prune_vc="( -name '.*' -o -name SCCS -o -name RCS -o -name CVS ) -prune -o"
 
@@ -94,11 +106,7 @@
 mule_p="`$EMACS -batch -vanilla -eval \"$lisp_prog\"`"
 if test "$mule_p" = nil ; then
 	echo No
-	ignore_dirs="$ignore_dirs its egg mule language leim skk"
-	ignore_pattern='\!/tl/char-table.el$!d
-\!/tl/chartblxmas.el$!d
-\!/mu/latex-math-symbol.el$!d
-'
+	ignore_dirs="$ignore=dirs mule"
 else
   echo Yes
 fi
--- a/lisp/ChangeLog	Mon Aug 13 11:10:04 2007 +0200
+++ b/lisp/ChangeLog	Mon Aug 13 11:10:50 2007 +0200
@@ -1,3 +1,84 @@
+1999-03-01  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+	* XEmacs 21.2.11 is released
+
+1999-02-22  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+	* userlock.el (ask-user-about-supersession-threat-dbox): Guard
+	against window close (Fix Bug #460).
+	(ask-user-about-lock-dbox): Idem.
+
+1999-02-25  SL Baur  <steve@xemacs.org>
+
+	* mule/mule-charset.el (charset-leading-byte): New function.
+	From Kazuyuki IENAGA <ienaga@jsys.co.jp>
+
+1999-02-12  Andy Piper  <andy@xemacs.org>
+
+	* about.el (xemacs-hackers): change andy's email address.
+	(about-url-alist): change andy's web page address.
+	(about-xemacs): add piper.
+
+1999-02-16  SL Baur  <steve@xemacs.org>
+
+	* dumped-lisp.el (preloaded-file-list): Core mule files moved out
+	of mule-base into lisp/mule.
+
+1999-02-16  SL Baur  <steve@xemacs.org>
+
+	* mule/arabic.el:
+	mule/canna-leim.el:
+	mule/chinese.el:
+	mule/cyrillic.el:
+	mule/english.el:
+	mule/european.el:
+	mule/greek.el:
+	mule/hebrew.el:
+	mule/japanese.el:
+	mule/kinsoku.el:
+	mule/korean.el:
+	mule/misc-lang.el:
+	mule/mule-category.el:
+	mule/mule-ccl.el:
+	mule/mule-charset.el:
+	mule/mule-cmds.el:
+	mule/mule-coding.el:
+	mule/mule-files.el:
+	mule/mule-help.el:
+	mule/mule-init.el:
+	mule/mule-misc.el:
+	mule/mule-tty-init.el:
+	mule/mule-x-init.el:
+	mule/viet-chars.el:  Remerge from mule-base.
+
+	* dumped-lisp.el (preloaded-file-list): Core mule files moved out
+	of mule-base into lisp/mule.
+
+1999-02-10  Adrian Aichner  <aichner@ecf.teradyne.com>
+
+	* process.el (exec-to-string): Use `shell-command-switch' in place
+	of hard-wired "-c" (for WindowsNT).
+
+1999-02-08  Charles G Waldman  <cgw@pgt.com>
+
+	* menubar-items.el (default-menubar):  Remove obsolete
+	"Gopher" item
+
+1999-02-06  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+	* package-admin.el (package-admin-get-install-dir): First fall
+	back to the location of xemacs-base for non-mule packages.
+
+1999-02-15  Martin Buchholz  <martin@xemacs.org>
+
+	* paths.el: 
+	- improved automounter tmp directory support.
+	- support 4 (!) empirically discovered automounter conventions
+
+1999-02-12  SL Baur  <steve@xemacs.org>
+
+	* etags.el (pop-tag-mark): autoload to match key binding.
+
 1999-02-05  XEmacs Build Bot <builds@cvs.xemacs.org>
 
 	* XEmacs 21.2.10 is released
--- a/lisp/about.el	Mon Aug 13 11:10:04 2007 +0200
+++ b/lisp/about.el	Mon Aug 13 11:10:50 2007 +0200
@@ -283,7 +283,7 @@
 			     :value who)
 	      (widget-insert (format "  <%s>\n" address)))))
       ;; Setup persons responsible for this release.
-      (mapc 'setup-person '(slb hniksic kyle martin))
+      (mapc 'setup-person '(slb hniksic kyle martin piper))
       (widget-insert "\n\t* ")
       (widget-create 'link :help-echo "A legion of XEmacs hackers"
 		     :action 'about-hackers
--- a/lisp/auto-autoloads.el	Mon Aug 13 11:10:04 2007 +0200
+++ b/lisp/auto-autoloads.el	Mon Aug 13 11:10:50 2007 +0200
@@ -254,7 +254,7 @@
 
 (autoload 'return-from "cl-macs" "\
 (return-from NAME [RESULT]): return from the block named NAME.
-This jump out to the innermost enclosing `(block NAME ...)' form,
+This jumps out to the innermost enclosing `(block NAME ...)' form,
 returning RESULT from that form (or nil if RESULT is omitted).
 This is compatible with Common Lisp, but note that `defun' and
 `defmacro' do not create implicit blocks as they do in Common Lisp." nil 'macro)
@@ -744,7 +744,7 @@
 
 ;;;***
 
-;;;### (autoloads (tags-apropos list-tags tags-query-replace tags-search tags-loop-continue next-file tag-complete-symbol find-tag-other-window find-tag visit-tags-table) "etags" "lisp/etags.el")
+;;;### (autoloads (pop-tag-mark tags-apropos list-tags tags-query-replace tags-search tags-loop-continue next-file tag-complete-symbol find-tag-other-window find-tag visit-tags-table) "etags" "lisp/etags.el")
 
 (autoload 'visit-tags-table "etags" "\
 Tell tags commands to use tags table file FILE when all else fails.
@@ -844,6 +844,11 @@
 Display list of all tags in tag table REGEXP matches." t nil)
 (define-key esc-map "*" 'pop-tag-mark)
 
+(autoload 'pop-tag-mark "etags" "\
+Go to last tag position.
+`find-tag' maintains a mark-stack seperate from the \\[set-mark-command] mark-stack.
+This function pops (and moves to) the tag at the top of this stack." t nil)
+
 ;;;***
 
 ;;;### (autoloads (finder-by-keyword) "finder" "lisp/finder.el")
--- a/lisp/custom-load.el	Mon Aug 13 11:10:04 2007 +0200
+++ b/lisp/custom-load.el	Mon Aug 13 11:10:50 2007 +0200
@@ -35,10 +35,12 @@
 (custom-add-loads 'help '("help" "cus-edit" "hyper-apropos" "info"))
 (custom-add-loads 'keyboard '("cmdloop"))
 (custom-add-loads 'hyper-apropos-faces '("hyper-apropos"))
+(custom-add-loads 'ldap '("ldap"))
 (custom-add-loads 'widget-browse '("wid-browse"))
 (custom-add-loads 'data '("auto-save"))
 (custom-add-loads 'warnings '("simple"))
 (custom-add-loads 'widget-documentation '("wid-edit"))
+(custom-add-loads 'comm '("ldap"))
 (custom-add-loads 'backup '("files"))
 (custom-add-loads 'frames '("frame" "window-xemacs" "gui" "gnuserv"))
 (custom-add-loads 'customize '("cus-edit" "wid-edit"))
--- a/lisp/dumped-lisp.el	Mon Aug 13 11:10:04 2007 +0200
+++ b/lisp/dumped-lisp.el	Mon Aug 13 11:10:50 2007 +0200
@@ -126,11 +126,11 @@
 
 	(when-feature mule "arabic")
 	(when-feature mule "chinese")
-	(when-feature mule "mule-base/cyrillic") ; overloaded in leim/quail
+	(when-feature mule "mule/cyrillic") ; overloaded in leim/quail
 	(when-feature mule "english")
 ;;	(when-feature mule "ethiopic")
 	(when-feature mule "european")
-	(when-feature mule "mule-base/greek") ; overloaded in leim/quail
+	(when-feature mule "mule/greek") ; overloaded in leim/quail
 	(when-feature mule "hebrew")
 	(when-feature mule "japanese")
 	(when-feature mule "korean")
--- a/lisp/etags.el	Mon Aug 13 11:10:04 2007 +0200
+++ b/lisp/etags.el	Mon Aug 13 11:10:50 2007 +0200
@@ -1189,6 +1189,7 @@
 
 ;;;###autoload (define-key esc-map "*" 'pop-tag-mark)
 
+;;;###autoload
 (defun pop-tag-mark (arg)
   "Go to last tag position.
 `find-tag' maintains a mark-stack seperate from the \\[set-mark-command] mark-stack.
@@ -1203,3 +1204,5 @@
 
 (provide 'etags)
 (provide 'tags)
+
+;;; etags.el ends here
--- a/lisp/menubar-items.el	Mon Aug 13 11:10:04 2007 +0200
+++ b/lisp/menubar-items.el	Mon Aug 13 11:10:50 2007 +0200
@@ -176,8 +176,6 @@
        :active (fboundp 'gnus)]
       ["Browse the Web" w3
        :active (fboundp 'w3)]
-      ["Gopher" gopher
-       :active (fboundp 'gopher)]
       "----"
       ["Spell-Check Buffer" ispell-buffer
        :active (fboundp 'ispell-buffer)]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/mule/arabic.el	Mon Aug 13 11:10:50 2007 +0200
@@ -0,0 +1,67 @@
+;;; arabic.el --- pre-loaded support for Arabic.
+
+;; Copyright (C) 1992,93,94,95 Free Software Foundation, Inc.
+;; Copyright (C) 1995 Amdahl Corporation.
+;; Copyright (C) 1995 Sun Microsystems.
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the 
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+
+;; Synched up with: Mule 2.3.
+
+;;; Code:
+
+;; Three character sets for Arabic
+(make-charset 'arabic-digit "Arabic digits"
+	      '(registry "MuleArabic-0"
+		dimension 1
+		chars 94
+		final ?2
+		graphic 0
+		direction l2r
+		))
+
+(make-charset 'arabic-1-column "Arabic 1-column"
+	      '(registry "MuleArabic-1"
+		dimension 1
+		chars 94
+		final ?3
+		graphic 0
+		direction r2l
+		))
+
+(make-charset 'arabic-2-column "Arabic 2-column"
+	      '(registry "MuleArabic-2"
+		dimension 1
+		chars 94
+		final ?4
+		graphic 0
+		direction r2l
+		))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; ARABIC
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;; (define-language-environment 'arabic
+;;   "Arabic"
+;;   (lambda ()
+;;     (require 'arabic)))
+
+;;; arabic.el ends here
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/mule/canna-leim.el	Mon Aug 13 11:10:50 2007 +0200
@@ -0,0 +1,55 @@
+;;; canna-leim.el --- Canna-related code for LEIM
+;; Copyright (C) 1997  Stephen Turnbull <turnbull@sk.tsukuba.ac.jp>
+;; Copyright (C) 1997 Free Software Foundation, Inc.
+;;
+;; Shamelessly ripped off from
+;;
+;; skk-leim.el --- SKK related code for LEIM
+;; Copyright (C) 1997
+;; Murata Shuuichirou <mrt@mickey.ai.kyutech.ac.jp>
+;;
+;; Author: Stephen Turnbull <turnbull@sk.tsukuba.ac.jp>
+;; Version: canna-leim.el,v 1.2 1997/10/27 10:08:49 steve Exp
+;; Keywords: japanese, input method, LEIM
+;; Last Modified: 1997/10/27 10:08:49
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either versions 2, or (at your option)
+;; any later version.
+
+;; This program is distributed in the hope that it will be useful
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs, see the file COPYING.  If not, write to the Free
+;; Software Foundation Inc., 59 Temple Place - Suite 330, Boston,
+;; MA 02111-1307, USA.
+
+;;; TODO
+;;
+;;  Add pointers to Canna documentation in LEIM format
+
+(defun canna-activate (&optional name)
+  (if (featurep 'CANNA)
+      (require 'canna)
+    (error "Canna is not built into this XEmacs"))
+  (setq inactivate-current-input-method-function 'canna-inactivate)
+  (unless (featurep 'leim-canna-initialized)
+    (canna)
+    (provide 'leim-canna-initialized))
+  (canna-toggle-japanese-mode))
+
+(defun canna-inactivate ()
+  (cond (canna:*japanese-mode* (canna-toggle-japanese-mode))) )
+
+(register-input-method
+ 'japanese-canna "Japanese"
+ 'canna-activate nil
+ "Canna - a kana to kanji conversion program" )
+
+(provide 'canna-leim)
+
+;;; canna-leim.el ends here
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/mule/chinese.el	Mon Aug 13 11:10:50 2007 +0200
@@ -0,0 +1,268 @@
+;;; chinese.el --- Support for Chinese
+
+;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
+;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1997 MORIOKA Tomohiko
+
+;; Keywords: multilingual, Chinese
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; Commentary:
+
+;; For Chinese, three character sets GB2312, BIG5, and CNS11643 are
+;; supported.
+
+;;; Code:
+
+;; Syntax of Chinese characters.
+(modify-syntax-entry 'chinese-gb2312 "w")
+(loop for row in '(33 34 41)
+      do (modify-syntax-entry `[chinese-gb2312 ,row] "."))
+;;(loop for row from 35 to  40
+;;      do (modify-syntax-entry `[chinese-gb2312 ,row] "w"))
+;;(loop for row from 42 to 126
+;;      do (modify-syntax-entry `[chinese-gb2312 ,row] "w"))
+
+(modify-syntax-entry 'chinese-cns11643-1  "w")
+(modify-syntax-entry 'chinese-cns11643-2  "w")
+(modify-syntax-entry 'chinese-big5-1 "w")
+(modify-syntax-entry 'chinese-big5-2 "w")
+
+;; CNS11643 Plane3 thru Plane7
+;; These represent more and more obscure Chinese characters.
+;; By the time you get to Plane 7, we're talking about characters
+;; that appear once in some ancient manuscript and whose meaning
+;; is unknown.
+
+(flet
+    ((make-chinese-cns11643-charset
+      (name plane final)
+      (make-charset
+       name (concat "CNS 11643 Plane " plane " (Chinese traditional)")
+       `(registry 
+         ,(concat "CNS11643[.-]\\(.*[.-]\\)?" plane "$")
+         dimension 2
+         chars 94
+         final ,final
+         graphic 0))
+      (modify-syntax-entry   name "w")
+      (modify-category-entry name ?t)
+      ))
+  (make-chinese-cns11643-charset 'chinese-cns11643-3 "3" ?I)
+  (make-chinese-cns11643-charset 'chinese-cns11643-4 "4" ?J)
+  (make-chinese-cns11643-charset 'chinese-cns11643-5 "5" ?K)
+  (make-chinese-cns11643-charset 'chinese-cns11643-6 "6" ?L)
+  (make-chinese-cns11643-charset 'chinese-cns11643-7 "7" ?M)
+  )
+
+;; ISO-IR-165 (CCITT Extended GB)
+;;    It is based on CCITT Recommendation T.101, includes GB 2312-80 +
+;;    GB 8565-88 table A4 + 293 characters.
+(make-charset
+ 'chinese-isoir165
+ "ISO-IR-165 (CCITT Extended GB; Chinese simplified)"
+ `(registry "isoir165"
+   dimension 2
+   chars 94
+   final ?E
+   graphic 0))
+
+;; PinYin-ZhuYin
+(make-charset 'sisheng "PinYin-ZhuYin"
+	      '(registry "sisheng_cwnn\\|OMRON_UDC_ZH"
+		dimension 1
+		chars 94
+		final ?0
+		graphic 0
+		))
+
+;; If you prefer QUAIL to EGG, please modify below as you wish.
+;;(when (and (featurep 'egg) (featurep 'wnn))
+;;  (setq wnn-server-type 'cserver)
+;;  (load "pinyin")
+;;  (setq its:*standard-modes*
+;;        (cons (its:get-mode-map "PinYin") its:*standard-modes*)))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; Chinese (general)
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;; (make-coding-system
+;;  'chinese-iso-7bit 2 ?C
+;;  "ISO 2022 based 7bit encoding for Chinese GB and CNS (MIME:ISO-2022-CN)"
+;;  '(ascii
+;;    (nil chinese-gb2312 chinese-cns11643-1)
+;;    (nil chinese-cns11643-2)
+;;    (nil chinese-cns11643-3 chinese-cns11643-4 chinese-cns11643-5
+;;         chinese-cns11643-6 chinese-cns11643-7)
+;;    nil ascii-eol ascii-cntl seven locking-shift single-shift nil nil nil
+;;    init-bol))
+
+;; (define-coding-system-alias 'iso-2022-cn 'chinese-iso-7bit)
+;; (define-coding-system-alias 'iso-2022-cn-ext 'chinese-iso-7bit)
+
+;; (define-prefix-command 'describe-chinese-environment-map)
+;; (define-key-after describe-language-environment-map [Chinese]
+;;   '("Chinese" . describe-chinese-environment-map)
+;;   t)
+
+;; (define-prefix-command 'setup-chinese-environment-map)
+;; (define-key-after setup-language-environment-map [Chinese]
+;;   '("Chinese" . setup-chinese-environment-map)
+;;   t)
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; Chinese GB2312 (simplified) 
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;; (make-coding-system
+;;  'chinese-iso-8bit 2 ?c
+;;  "ISO 2022 based EUC encoding for Chinese GB2312 (MIME:CN-GB-2312)"
+;;  '((ascii t) chinese-gb2312 chinese-sisheng nil
+;;    nil ascii-eol ascii-cntl nil nil single-shift nil))
+
+(make-coding-system
+ 'cn-gb-2312 'iso2022
+ "Coding-system of Chinese EUC (Extended Unix Code)."
+ '(charset-g0 ascii
+   charset-g1 chinese-gb2312
+   charset-g2 sisheng
+   charset-g3 t
+   mnemonic "Zh-GB/EUC"
+   ))
+
+;; (define-coding-system-alias 'cn-gb-2312 'chinese-iso-8bit)
+;; (define-coding-system-alias 'euc-china 'chinese-iso-8bit)
+
+(copy-coding-system 'cn-gb-2312 'gb2312)
+(copy-coding-system 'cn-gb-2312 'chinese-euc)
+
+;; (make-coding-system
+;;  'chinese-hz 0 ?z
+;;  "Hz/ZW 7-bit encoding for Chinese GB2312 (MIME:HZ-GB-2312)"
+;;  nil)
+;; (put 'chinese-hz 'post-read-conversion 'post-read-decode-hz)
+;; (put 'chinese-hz 'pre-write-conversion 'pre-write-encode-hz)
+
+(make-coding-system
+ 'hz-gb-2312 'no-conversion
+ "Coding-system of Hz/ZW used for Chinese."
+ '(mnemonic "Zh-GB/Hz"
+   eol-type lf
+   post-read-conversion post-read-decode-hz
+   pre-write-conversion pre-write-encode-hz))
+
+;; (define-coding-system-alias 'hz-gb-2312 'chinese-hz)
+;; (define-coding-system-alias 'hz 'chinese-hz)
+
+(copy-coding-system 'hz-gb-2312 'hz)
+(copy-coding-system 'hz-gb-2312 'chinese-hz)
+
+(defun post-read-decode-hz (len)
+  (let ((pos (point)))
+    (decode-hz-region pos (+ pos len))))
+
+(defun pre-write-encode-hz (from to)
+  (let ((buf (current-buffer))
+	(work (get-buffer-create " *pre-write-encoding-work*")))
+    (set-buffer work)
+    (erase-buffer)
+    (if (stringp from)
+	(insert from)
+      (insert-buffer-substring buf from to))
+    (encode-hz-region 1 (point-max))
+    nil))
+	   
+(set-language-info-alist
+ "Chinese-GB" '((setup-function . (setup-chinese-gb-environment
+				   . setup-chinese-environment-map))
+		(charset . (chinese-gb2312 sisheng))
+		(coding-system
+		 . (cn-gb-2312 iso-2022-7bit hz-gb-2312))
+		(sample-text . "Chinese ($AVPND(B,$AFUM(;0(B,$A::So(B)	$ADc:C(B")
+		(documentation . ("Support for Chinese GB2312 character set."
+				  . describe-chinese-environment-map))
+		))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Chinese BIG5 (traditional)
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;; (make-coding-system
+;;  'chinese-big5 3 ?B "BIG5 8-bit encoding for Chinese (MIME:CN-BIG5)")
+
+(make-coding-system
+ 'big5 'big5
+ "Coding-system of BIG5."
+ '(mnemonic "Zh/Big5"))
+
+;; (define-coding-system-alias 'big5 'chinese-big5)
+;; (define-coding-system-alias 'cn-big5 'chinese-big5)
+
+(copy-coding-system 'big5 'cn-big5)
+(copy-coding-system 'big5 'chinese-big5)
+
+;; Big5 font requires special encoding.
+(define-ccl-program ccl-encode-big5-font
+  `(0
+    ;; In:  R0:chinese-big5-1 or chinese-big5-2
+    ;;      R1:position code 1
+    ;;      R2:position code 2
+    ;; Out: R1:font code point 1
+    ;;      R2:font code point 2
+    ((r2 = ((((r1 - ?\x21) * 94) + r2) - ?\x21))
+     (if (r0 == ,(charset-id 'chinese-big5-2)) (r2 += 6280))
+     (r1 = ((r2 / 157) + ?\xA1))
+     (r2 %= 157)
+     (if (r2 < ?\x3F) (r2 += ?\x40) (r2 += ?\x62))))
+  "CCL program to encode a Big5 code to code point of Big5 font.")
+
+;; (setq font-ccl-encoder-alist
+;;       (cons (cons "big5" ccl-encode-big5-font) font-ccl-encoder-alist))
+
+(set-charset-ccl-program 'chinese-big5-1 ccl-encode-big5-font)
+(set-charset-ccl-program 'chinese-big5-2 ccl-encode-big5-font)
+
+(set-language-info-alist
+ "Chinese-BIG5" '((setup-function . (setup-chinese-big5-environment
+				     . setup-chinese-environment-map))
+		  (charset . (chinese-big5-1 chinese-big5-2))
+		  (coding-system . (big5 iso-2022-7bit))
+		  (sample-text . "Cantonese ($(0GnM$(B,$(0N]0*Hd(B)	$(0*/=((B, $(0+$)p(B")
+		  (documentation . ("Support for Chinese Big5 character set."
+				    . describe-chinese-environment-map))
+		  ))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Chinese CNS11643 (traditional)
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;; (set-language-info-alist
+;;  "Chinese-CNS" '((setup-function . (setup-chinese-cns-environment
+;;                                     . setup-chinese-environment-map))
+;;                  (charset . (chinese-cns11643-1 chinese-cns11643-2
+;;                              chinese-cns11643-3 chinese-cns11643-4
+;;                              chinese-cns11643-5 chinese-cns11643-6
+;;                              chinese-cns11643-7))
+;;                  (coding-system . (chinese-iso-7bit))
+;;                  (documentation . ("Support for Chinese CNS character sets."
+;;                                    . describe-chinese-environment-map))
+;;                  ))
+
+;;; chinese.el ends here
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/mule/cyrillic.el	Mon Aug 13 11:10:50 2007 +0200
@@ -0,0 +1,294 @@
+;;; cyrillic.el --- Support for languages which use Cyrillic characters
+
+;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
+;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1997 MORIOKA Tomohiko
+
+;; Keywords: multilingual, Cyrillic
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; Commentary:
+
+;; The character set ISO8859-5 is supported.  KOI-8 and ALTERNATIVNYJ
+;; are converted to ISO8859-5 internally.
+
+;;; Code:
+
+;; For syntax of Cyrillic
+(modify-syntax-entry 'cyrillic-iso8859-5 "w")
+(modify-syntax-entry ?,L-(B ".")
+(modify-syntax-entry ?,Lp(B ".")
+(modify-syntax-entry ?,L}(B ".")
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; CYRILLIC
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;; (define-prefix-command 'describe-cyrillic-environment-map)
+;; (define-key-after describe-language-environment-map [Cyrillic]
+;;   '("Cyrillic" . describe-cyrillic-environment-map)
+;;   t)
+
+;; (define-prefix-command 'setup-cyrillic-environment-map)
+;; (define-key-after setup-language-environment-map [Cyrillic]
+;;   '("Cyrillic" . setup-cyrillic-environment-map)
+;;   t)
+
+
+;; ISO-8859-5 staff
+
+;; (make-coding-system
+;;  'cyrillic-iso-8bit 2 ?5
+;;  "ISO 2022 based 8-bit encoding for Cyrillic script (MIME:ISO-8859-5)"
+;;  '((ascii t) (cyrillic-iso8859-5 t) nil nil
+;;    nil ascii-eol ascii-cntl nil nil nil nil))
+
+;; (define-coding-system-alias 'iso-8859-5 'cyrillic-iso-8bit)
+
+(make-coding-system
+ 'iso-8859-5 'iso2022
+ "MIME ISO-8859-5"
+ '(charset-g0 ascii
+   charset-g1 cyrillic-iso8859-5
+   charset-g2 t
+   charset-g3 t
+   mnemonic "ISO8/Cyr"
+   ))
+
+(set-language-info-alist
+ "Cyrillic-ISO" '((setup-function . (setup-cyrillic-iso-environment
+				     . setup-cyrillic-environment-map))
+		  (charset . (cyrillic-iso8859-5))
+		  (tutorial . "TUTORIAL.ru")
+		  (coding-system . (iso-8859-5))
+		  (sample-text . "Russian (,L@caaZXY(B)	,L7T`PRabRcYbU(B!")
+		  (documentation . ("Support for Cyrillic ISO-8859-5."
+				    . describe-cyrillic-environment-map))))
+
+;; KOI-8 staff
+
+(define-ccl-program ccl-decode-koi8
+  '(3
+    ((read r0)
+     (loop
+       (write-read-repeat
+	r0
+	[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+	   16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
+	   32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
+	   48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
+	   64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
+	   80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
+	   96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
+	   112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
+	   128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
+	   144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
+	    32  32  32 ?,Lq(B   32  32  32  32  32  32  32  32  32  32  32  32
+	    32  32  32 ?,L!(B   32  32  32  32  32  32  32  32  32  32  32  32
+	   ?,Ln(B  ?,LP(B  ?,LQ(B  ?,Lf(B  ?,LT(B  ?,LU(B  ?,Ld(B  ?,LS(B  ?,Le(B  ?,LX(B  ?,LY(B  ?,LZ(B  ?,L[(B  ?,L\(B  ?,L](B  ?,L^(B 
+	   ?,L_(B  ?,Lo(B  ?,L`(B  ?,La(B  ?,Lb(B  ?,Lc(B  ?,LV(B  ?,LR(B  ?,Ll(B  ?,Lk(B  ?,LW(B  ?,Lh(B  ?,Lm(B  ?,Li(B  ?,Lg(B  ?,Lj(B 
+	   ?,LN(B  ?,L0(B  ?,L1(B  ?,LF(B  ?,L4(B  ?,L5(B  ?,LD(B  ?,L3(B  ?,LE(B  ?,L8(B  ?,L9(B  ?,L:(B  ?,L;(B  ?,L<(B  ?,L=(B  ?,L>(B 
+	   ?,L?(B  ?,LO(B  ?,L@(B  ?,LA(B  ?,LB(B  ?,LC(B  ?,L6(B  ?,L2(B  ?,LL(B  ?,LK(B  ?,L7(B  ?,LH(B  ?,LM(B  ?,LI(B  ?,LG(B  ?,LJ(B ]))))
+  "CCL program to decode KOI8.")
+
+(define-ccl-program ccl-encode-koi8
+  `(1
+    ((read r0)
+     (loop
+       (if (r0 != ,(charset-id 'cyrillic-iso8859-5))
+	   (write-read-repeat r0)
+	 ((read r0)
+	  (r0 -= 160)
+	  (write-read-repeat
+	   r0
+	   [ 32 179  32  32  32  32  32  32  32  32  32  32  32  32  32  32
+		225 226 247 231 228 229 246 250 233 234 235 236 237 238 239 240
+		242 243 244 245 230 232 227 254 251 253 255 249 248 252 224 241
+		193 194 215 199 196 197 214 218 201 202 203 204 205 206 207 208
+		210 211 212 213 198 200 195 222 219 221 223 217 216 220 192 209
+		32 163  32  32  32  32  32  32  32  32  32  32  32  32  32  32])
+	  )))))
+  "CCL program to encode KOI8.")
+
+;(make-coding-system
+;  'cyrillic-koi8 4
+;  ;; We used to use ?K.  It is true that ?K is more strictly correct,
+;  ;; but it is also used for Korean.
+;  ;; So people who use koi8 for languages other than Russian
+;  ;; will have to forgive us.
+;  ?R "KOI8 8-bit encoding for Cyrillic (MIME: KOI8-R)"
+;  (cons ccl-decode-koi8 ccl-encode-koi8))
+
+;(define-coding-system-alias 'koi8-r 'cyrillic-koi8)
+;(define-coding-system-alias 'koi8 'cyrillic-koi8)
+
+(make-coding-system
+ 'koi8-r 'ccl
+ "Coding-system used for KOI8-R."
+ `(decode ,ccl-decode-koi8
+   encode ,ccl-encode-koi8
+   mnemonic "KOI8"))
+
+;(define-coding-system-alias 'koi8-r 'koi8)
+
+;; (define-ccl-program ccl-encode-koi8-font
+;;   '(0
+;;     ((r1 -= 160)
+;;      (r1 = r1
+;;          [ 32 179  32  32  32  32  32  32  32  32  32  32  32  32  32  32
+;;               225 226 247 231 228 229 246 250 233 234 235 236 237 238 239 240
+;;               242 243 244 245 230 232 227 254 251 253 255 249 248 252 224 241
+;;               193 194 215 199 196 197 214 218 201 202 203 204 205 206 207 208
+;;               210 211 212 213 198 200 195 222 219 221 223 217 216 220 192 209
+;;               32 163  32  32  32  32  32  32  32  32  32  32  32  32  32  32])
+;;      ))
+;;   "CCL program to encode Cyrillic chars to KOI font.")
+
+;; (setq font-ccl-encoder-alist
+;;       (cons (cons "koi8" ccl-encode-koi8-font) font-ccl-encoder-alist))
+
+(set-language-info-alist
+ "Cyrillic-KOI8" '((setup-function . (setup-cyrillic-koi8-environment
+				      . setup-cyrillic-environment-map))
+		   (charset . (cyrillic-iso8859-5))
+		   (coding-system . (koi8-r))
+		   (tutorial . "TUTORIAL.ru")
+		   (sample-text . "Russian (,L@caaZXY(B)	,L7T`PRabRcYbU(B!")
+		   (documentation . ("Support for Cyrillic KOI-8."
+				     . describe-cyrillic-environment-map))))
+
+;;; ALTERNATIVNYJ staff
+
+(define-ccl-program ccl-decode-alternativnyj
+  '(3
+    ((read r0)
+     (loop
+       (write-read-repeat
+	r0
+	[  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15
+	       16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31
+	       32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47
+	       48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63
+	       64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79
+	       80  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95
+	       96  97  98  99 100 101 102 103 104 105 106 107 108 109 110 111
+	       112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
+	       ?,L0(B  ?,L1(B  ?,L2(B  ?,L3(B  ?,L4(B  ?,L5(B  ?,L6(B  ?,L7(B  ?,L8(B  ?,L9(B  ?,L:(B  ?,L;(B  ?,L<(B  ?,L=(B  ?,L>(B  ?,L?(B
+	       ?,L@(B  ?,LA(B  ?,LB(B  ?,LC(B  ?,LD(B  ?,LE(B  ?,LF(B  ?,LG(B  ?,LH(B  ?,LI(B  ?,LJ(B  ?,LK(B  ?,LL(B  ?,LM(B  ?,LN(B  ?,LO(B
+	       ?,LP(B  ?,LQ(B  ?,LR(B  ?,LS(B  ?,LT(B  ?,LU(B  ?,LV(B  ?,LW(B  ?,LX(B  ?,LY(B  ?,LZ(B  ?,L[(B  ?,L\(B  ?,L](B  ?,L^(B  ?,L_(B
+	       32  32  32  32  32  32  32  32  32  32  32  32  32  32  32  32
+	       32  32  32  32  32  32  32  32  32  32  32  32  32  32  32  32
+	       32  32  32  32  32  32  32  32  32  32  32  32  32  32  32  32
+	       ?,L`(B  ?,La(B  ?,Lb(B  ?,Lc(B  ?,Ld(B  ?,Le(B  ?,Lf(B  ?,Lg(B  ?,Lh(B  ?,Li(B  ?,Lj(B  ?,Lk(B  ?,Ll(B  ?,Lm(B  ?,Ln(B  ?,Lo(B
+	       ?,L!(B  ?,Lq(B   32  32  32  32  32  32  32  32  32  32  32  32  32 ?,Lp(B]))))
+  "CCL program to decode Alternativnyj.")
+
+(define-ccl-program ccl-encode-alternativnyj
+  `(1
+    ((read r0)
+     (loop
+       (if (r0 != ,(charset-id 'cyrillic-iso8859-5))
+	   (write-read-repeat r0)
+	 ((read r0)
+	  (r0 -= 160)
+	  (write-read-repeat
+	   r0
+	   [ 32 240  32  32  32  32  32  32  32  32  32  32  32  32  32  32
+		128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
+		144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
+		160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
+		224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239
+		255 241  32  32  32  32  32  32  32  32  32  32  32  32  32  32])
+	  )))))
+  "CCL program to encode Alternativnyj.")
+
+;; (make-coding-system
+;;  'alternativnyj 4
+;;  ?A "Coding-system used for Alternativnyj"
+;;  (cons ccl-decode-alternativnyj ccl-encode-alternativnyj))
+
+(make-coding-system
+ 'alternativnyj 'ccl
+ "Coding-system used for Alternativnyj"
+ `(decode ,ccl-decode-alternativnyj
+   encode ,ccl-encode-alternativnyj
+   mnemonic "Cy.Alt"))
+
+;; (define-ccl-program ccl-encode-alternativnyj-font
+;;   '(0
+;;     ((r1 -= 160)
+;;      (r1 = r1
+;;       [ 32 240  32  32  32  32  32  32  32  32  32  32  32  32  32  32
+;;        128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
+;;        144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
+;;        160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
+;;        224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239
+;;        255 241  32  32  32  32  32  32  32  32  32  32  32  32  32  32])
+;;      ))
+;;   "CCL program to encode Cyrillic chars to Alternativnyj font.")
+
+;; (setq font-ccl-encoder-alist
+;;       (cons (cons "alternativnyj" ccl-encode-alternativnyj-font)
+;;             font-ccl-encoder-alist))
+
+(set-language-info-alist
+ "Cyrillic-ALT" '((setup-function . (setup-cyrillic-alternativnyj-environment
+				     . setup-cyrillic-environment-map))
+		  (charset . (cyrillic-iso8859-5))
+		  (coding-system . (alternativnyj))
+		  (tutorial . "TUTORIAL.ru")
+		  (sample-text . "Russian (,L@caaZXY(B)	,L7T`PRabRcYbU(B!")
+		  (documentation . ("Support for Cyrillic ALTERNATIVNYJ."
+				    . describe-cyrillic-environment-map))))
+
+;;; GENERAL
+
+(defun setup-cyrillic-environment ()
+  "Setup multilingual environment for Cyrillic users."
+  (interactive)
+  (setq primary-language "Cyrillic")
+
+  (setq coding-category-iso-8-1 'iso-8859-5)
+
+  (set-coding-priority
+   '(coding-category-iso-7
+     coding-category-iso-8-1))
+
+  (setq-default buffer-file-coding-system 'iso-8859-5)
+  (set-terminal-coding-system 'iso-8859-5)
+  (set-keyboard-coding-system 'iso-8859-5)
+
+  (setq default-input-method '("Cyrillic" . "quail-yawerty"))
+  )
+
+(defun describe-cyrillic-support ()
+  "Describe how Emacs support Cyrillic."
+  (interactive)
+  (describe-language-support-internal "Cyrillic"))
+
+(set-language-info-alist
+ "Cyrillic" '((setup-function . setup-cyrillic-environment)
+              (describe-function . describe-cyrillic-support)
+              (charset . (cyrillic-iso8859-5))
+	      (tutorial . "TUTORIAL.ru")
+              (coding-system . (iso-8859-5 koi8-r alternativnyj))
+              (sample-text . "Russian (,L@caaZXY(B) ,L7T`PRabRcYbU(B!")
+              (documentation . nil)))
+
+;;; cyrillic.el ends here
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/mule/english.el	Mon Aug 13 11:10:50 2007 +0200
@@ -0,0 +1,125 @@
+;;; english.el --- English support
+
+;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
+;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1997 MORIOKA Tomohiko
+
+;; Keywords: multibyte character, character set, syntax, category
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; Commentary:
+
+;; We need nothing special to support English on Emacs.  Selecting
+;; English as a language environment is one of the ways to reset
+;; various multilingual environment to the original settting.
+
+;; modified for XEmacs by MORIOKA Tomohiko
+
+;;; Code
+
+(defun setup-english-environment ()
+  "Reset multilingual environment of Emacs to the default status.
+The default status is as follows.
+
+  The default value of enable-multibyte-characters is t.
+
+  The default value of buffer-file-coding-system is nil.
+  The coding system for terminal output is nil.
+  The coding system for keyboard input is nil.
+
+  The order of priorities of coding categories and the coding system
+  bound to each category are as follows
+	coding category			coding system
+	--------------------------------------------------
+	coding-category-iso-7		iso-2022-7bit
+	coding-category-iso-8-1		iso-8859-1
+	coding-category-iso-8-2		iso-8859-1
+	coding-category-iso-7-else	iso-2022-7bit-lock
+	coding-category-iso-8-else	iso-2022-8bit-ss2
+	coding-category-emacs-mule 	no-conversion
+	coding-category-sjis		japanese-shift-jis
+	coding-category-big5		chinese-big5
+	coding-category-binarry		no-conversion
+"
+  (interactive)
+  ;; (setq-default enable-multibyte-characters t)
+
+  ;; (setq coding-category-iso-7           'iso-2022-7bit
+  ;;       coding-category-iso-8-1         'iso-8859-1
+  ;;       coding-category-iso-8-2         'iso-8859-1
+  ;;       coding-category-iso-7-else      'iso-2022-7bit-lock
+  ;;       coding-category-iso-8-else      'iso-2022-8bit-ss2
+  ;;       coding-category-emacs-mule      'no-conversion
+  ;;       coding-category-sjis            'japanese-shift-jis
+  ;;       coding-category-big5            'chinese-big5
+  ;;       coding-category-binary          'binary)
+  (set-coding-category-system 'iso-7		'iso-2022-7bit)
+  (set-coding-category-system 'iso-8-1		'iso-8859-1)
+  (set-coding-category-system 'iso-8-2		'iso-8859-1)
+  (set-coding-category-system 'iso-lock-shift	'iso-2022-lock)
+  (set-coding-category-system 'iso-8-designate	'ctext)
+  (set-coding-category-system 'no-conversion	'no-conversion)
+  (set-coding-category-system 'shift-jis	'shift_jis)
+  (set-coding-category-system 'big5		'big5)
+  
+  ;; (set-coding-priority
+  ;;  '(coding-category-iso-7
+  ;;    coding-category-iso-8-2
+  ;;    coding-category-iso-8-1
+  ;;    coding-category-iso-7-else
+  ;;    coding-category-iso-8-else
+  ;;    coding-category-emacs-mule 
+  ;;    coding-category-raw-text
+  ;;    coding-category-sjis
+  ;;    coding-category-big5
+  ;;    coding-category-binary))
+  (set-coding-priority-list
+   '(iso-7
+     iso-8-2
+     iso-8-1
+     iso-8-designate
+     iso-lock-shift
+     no-conversion
+     shift-jis
+     big5))
+  
+  (set-default-coding-systems nil)
+  ;; Don't alter the terminal and keyboard coding systems here.
+  ;; The terminal still supports the same coding system
+  ;; that it supported a minute ago.
+;;;  (set-terminal-coding-system-internal nil)
+;;;  (set-keyboard-coding-system-internal nil)
+
+  ;;(setq nonascii-insert-offset 0)
+  )
+
+(set-language-info-alist
+ "English" '((setup-function . setup-english-environment)
+	     (tutorial . "TUTORIAL")
+	     (charset . (ascii))
+	     (sample-text . "Hello!, Hi!, How are you?")
+	     (documentation . "\
+Nothing special is needed to handle English.")
+	     ))
+
+;; Make "ASCII" an alias of "English" language environment.
+(set-language-info-alist
+ "ASCII" (cdr (assoc "English" language-info-alist)))
+
+;;; english.el ends here
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/mule/european.el	Mon Aug 13 11:10:50 2007 +0200
@@ -0,0 +1,386 @@
+;;; european.el --- Support for European languages
+
+;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
+;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1997 MORIOKA Tomohiko
+
+;; Keywords: multilingual, European
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; Commentary:
+
+;; For Europeans, five character sets ISO8859-1,2,3,4,9 are supported.
+
+;;; Code:
+
+;; For syntax of Latin-1 characters.
+(loop for c from 64 to 127              ; from ',A@(B' to ',A(B'
+      do (modify-syntax-entry (make-char 'latin-iso8859-1 c) "w"))
+
+(modify-syntax-entry (make-char 'latin-iso8859-1 32) "w") ; no-break space
+(modify-syntax-entry ?,AW(B "_")
+(modify-syntax-entry ?,Aw(B "_")
+
+;; For syntax of Latin-2
+(loop for c in '(?,B!(B ?,B#(B ?,B%(B ?,B&(B ?,B)(B ?,B*(B ?,B+(B ?,B,(B ?,B.(B ?,B/(B ?,B1(B ?,B3(B ?,B5(B ?,B6(B ?,B9(B ?,B:(B ?,B;(B ?,B<(B)
+      do (modify-syntax-entry c "w"))
+
+(loop for c from 62 to 126
+      do (modify-syntax-entry (make-char 'latin-iso8859-2 c) "w"))
+
+(modify-syntax-entry (make-char 'latin-iso8859-2 32) "w") ; no-break space
+(modify-syntax-entry ?,BW(B ".")
+(modify-syntax-entry ?,Bw(B ".")
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; EUROPEANS
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;; (define-prefix-command 'describe-european-environment-map)
+;; (define-key-after describe-language-environment-map [European]
+;;   '("European" . describe-european-environment-map)
+;;   t)
+
+;; (define-prefix-command 'setup-european-environment-map)
+;; (define-key-after setup-language-environment-map [European]
+;;   '("European" . setup-european-environment-map)
+;;   t)
+
+;; Setup for LANGAUGE which uses one-byte 8-bit CHARSET, one-byte
+;; 8-bit CODING-SYSTEM, and INPUT-METHOD.
+(defun setup-8-bit-environment (language charset coding-system input-method)
+  (setup-english-environment)
+  (set-default-coding-systems coding-system)
+  ;; (setq coding-category-iso-8-1 coding-system
+  ;;       coding-category-iso-8-2 coding-system)
+  (set-coding-category-system 'iso-8-1 coding-system)
+  (set-coding-category-system 'iso-8-2 coding-system)
+
+  ;; (if charset
+  ;;     (let ((nonascii-offset (- (make-char charset) 128)))
+  ;;       ;; Set up for insertion of characters in this character set
+  ;;       ;; when codes 0200 - 0377 are typed in.
+  ;;       (setq nonascii-insert-offset nonascii-offset)))
+
+  (if input-method
+      (setq default-input-method input-method))
+
+  ;; If this is a Latin-N character set, set up syntax for it in
+  ;; single-byte mode.  We can't use require because the file
+  ;; must be eval'd each time in case we change from one Latin-N to another.
+  ;; (if (string-match "^Latin-\\([1-9]\\)$" language)
+  ;;     (load (downcase language) nil t))
+  )
+
+;; Latin-1 (ISO-8859-1)
+
+;; (make-coding-system
+;;  'iso-latin-1 2 ?1
+;;  "ISO 2022 based 8-bit encoding (MIME:ISO-8859-1, Compound Text Encoding)"
+;;  '((ascii t) (latin-iso8859-1 t) nil nil
+;;    nil ascii-eol ascii-cntl nil nil nil nil nil nil nil nil nil t))
+
+;; (define-coding-system-alias 'iso-8859-1 'iso-latin-1)
+;; (define-coding-system-alias 'latin-1 'iso-latin-1)
+;; (define-coding-system-alias 'ctext 'iso-latin-1)
+
+(defun setup-latin1-environment ()
+  "Set up multilingual environment (MULE) for European Latin-1 users."
+  (interactive)
+  (setup-8-bit-environment "Latin-1" 'latin-iso8859-1 'iso-8859-1
+			   "latin-1-prefix"))
+
+(set-language-info-alist
+ "Latin-1" '((setup-function . (setup-latin1-environment
+				. setup-european-environment-map))
+	     (charset . (ascii latin-iso8859-1))
+	     (coding-system . (iso-8859-1))
+	     (sample-text
+	      . "Hello, Hej, Tere, Hei, Bonjour, Gr,A|_(B Gott, Ciao, ,A!(BHola!")
+	     (documentation . ("\
+These languages are supported with the Latin-1 (ISO-8859-1) character set:
+ Danish, Dutch, English, Faeroese, Finnish, French, German, Icelandic,
+ Irish, Italian, Norwegian, Portuguese, Spanish, and Swedish.
+" . describe-european-environment-map))
+	     ))
+
+(set-language-info-alist
+ "German" '((setup-function . (setup-latin1-environment
+				. setup-european-environment-map))
+	     (charset . (ascii latin-iso8859-1))
+	     (coding-system . (iso-8859-1))
+	     (tutorial . "TUTORIAL.de")
+	     (sample-text
+	      . "Hello, Hej, Tere, Hei, Bonjour, Gr,A|_(B Gott, Ciao, ,A!(BHola!")
+	     (documentation . ("\
+These languages are supported with the Latin-1 (ISO-8859-1) character set:
+ Danish, Dutch, English, Faeroese, Finnish, French, German, Icelandic,
+ Irish, Italian, Norwegian, Portuguese, Spanish, and Swedish.
+" . describe-european-environment-map))
+	     ))
+
+(set-language-info-alist
+ "French" '((setup-function . (setup-latin1-environment
+				. setup-european-environment-map))
+	     (charset . (ascii latin-iso8859-1))
+	     (coding-system . (iso-8859-1))
+	     (tutorial . "TUTORIAL.fr")
+	     (sample-text
+	      . "Hello, Hej, Tere, Hei, Bonjour, Gr,A|_(B Gott, Ciao, ,A!(BHola!")
+	     (documentation . ("\
+These languages are supported with the Latin-1 (ISO-8859-1) character set:
+ Danish, Dutch, English, Faeroese, Finnish, French, German, Icelandic,
+ Irish, Italian, Norwegian, Portuguese, Spanish, and Swedish.
+" . describe-european-environment-map))
+	     ))
+
+(set-language-info-alist
+ "Norwegian" '((setup-function . (setup-latin1-environment
+				. setup-european-environment-map))
+	     (charset . (ascii latin-iso8859-1))
+	     (coding-system . (iso-8859-1))
+	     (tutorial . "TUTORIAL.no")
+	     (sample-text
+	      . "Hello, Hej, Tere, Hei, Bonjour, Gr,A|_(B Gott, Ciao, ,A!(BHola!")
+	     (documentation . ("\
+These languages are supported with the Latin-1 (ISO-8859-1) character set:
+ Danish, Dutch, English, Faeroese, Finnish, French, German, Icelandic,
+ Irish, Italian, Norwegian, Portuguese, Spanish, and Swedish.
+" . describe-european-environment-map))
+	     ))
+
+;; Latin-2 (ISO-8859-2)
+
+;; (make-coding-system
+;;  'iso-latin-2 2 ?2
+;;  "ISO 2022 based 8-bit encoding (MIME:ISO-8859-2)"
+;;  '((ascii t) (latin-iso8859-2 t) nil nil
+;;    nil ascii-eol ascii-cntl nil nil nil nil))
+
+;; (define-coding-system-alias 'iso-8859-2 'iso-latin-2)
+;; (define-coding-system-alias 'latin-2 'iso-latin-2)
+
+(make-coding-system
+ 'iso-8859-2 'iso2022 "MIME ISO-8859-2"
+ '(charset-g0 ascii
+   charset-g1 latin-iso8859-2
+   charset-g2 t
+   charset-g3 t
+   mnemonic "MIME/Ltn-2"
+   ))
+
+(defun setup-latin2-environment ()
+  "Set up multilingual environment (MULE) for European Latin-2 users."
+  (interactive)
+  (setup-8-bit-environment "Latin-2" 'latin-iso8859-2 'iso-8859-2
+			   "latin-2-prefix"))
+
+(set-language-info-alist
+ "Latin-2" '((setup-function . (setup-latin2-environment
+				. setup-european-environment-map))
+	     (charset . (ascii latin-iso8859-2))
+	     (coding-system . (iso-8859-2))
+	     (documentation . ("\
+These languages are supported with the Latin-2 (ISO-8859-2) character set:
+ Albanian, Czech, English, German, Hungarian, Polish, Romanian,
+ Serbian, Croatian, Slovak, Slovene, and Swedish.
+" . describe-european-environment-map))
+	     ))
+
+(set-language-info-alist
+ "Croatian" '((setup-function . (setup-latin2-environment
+				. setup-european-environment-map))
+	      (charset . (ascii latin-iso8859-2))
+	      (tutorial . "TUTORIAL.hr")
+	      (coding-system . (iso-8859-2))
+	      (documentation . ("\
+These languages are supported with the Latin-2 (ISO-8859-2) character set:
+ Albanian, Czech, English, German, Hungarian, Polish, Romanian,
+ Serbian, Croatian, Slovak, Slovene, and Swedish.
+" . describe-european-environment-map))
+	      ))
+
+(set-language-info-alist
+ "Polish" '((setup-function . (setup-latin2-environment
+				. setup-european-environment-map))
+	      (charset . (ascii latin-iso8859-2))
+	      (tutorial . "TUTORIAL.pl")
+	      (coding-system . (iso-8859-2))
+	      (documentation . ("\
+These languages are supported with the Latin-2 (ISO-8859-2) character set:
+ Albanian, Czech, English, German, Hungarian, Polish, Romanian,
+ Serbian, Croatian, Slovak, Slovene, and Swedish.
+" . describe-european-environment-map))
+	      ))
+
+(set-language-info-alist
+ "Romanian" '((setup-function . (setup-latin2-environment
+				 . setup-european-environment-map))
+	      (charset . (ascii latin-iso8859-2))
+	      (tutorial . "TUTORIAL.ro")
+	      (coding-system . (iso-8859-2))
+	      (documentation . ("\
+These languages are supported with the Latin-2 (ISO-8859-2) character set:
+ Albanian, Czech, English, German, Hungarian, Polish, Romanian,
+ Serbian, Croatian, Slovak, Slovene, and Swedish.
+" . describe-european-environment-map))
+	      ))
+
+;; Latin-3 (ISO-8859-3)
+
+;; (make-coding-system
+;;  'iso-latin-3 2 ?3
+;;  "ISO 2022 based 8-bit encoding (MIME:ISO-8859-3)"
+;;  '((ascii t) (latin-iso8859-3 t) nil nil
+;;    nil ascii-eol ascii-cntl nil nil nil nil))
+
+;; (define-coding-system-alias 'iso-8859-3 'iso-latin-3)
+;; (define-coding-system-alias 'latin-3 'iso-latin-3)
+
+(make-coding-system
+ 'iso-8859-3 'iso2022 "MIME ISO-8859-3"
+ '(charset-g0 ascii
+   charset-g1 latin-iso8859-3
+   charset-g2 t
+   charset-g3 t
+   mnemonic "MIME/Ltn-3"
+   ))
+
+(defun setup-latin3-environment ()
+  "Set up multilingual environment (MULE) for European Latin-3 users."
+  (interactive)
+  (setup-8-bit-environment "Latin-3" 'latin-iso8859-3 'iso-8859-3
+			   "latin-3-prefix"))
+
+(set-language-info-alist
+ "Latin-3" '((setup-function . (setup-latin3-environment
+				. setup-european-environment-map))
+	     (charset . (ascii latin-iso8859-3))
+	     (coding-system . (iso-8859-3))
+	     (documentation . ("\
+These languages are supported with the Latin-3 (ISO-8859-3) character set:
+ Afrikaans, Catalan, Dutch, English, Esperanto, French, Galician,
+ German, Italian, Maltese, Spanish, and Turkish.
+" . describe-european-environment-map))
+	     ))
+
+;; Latin-4 (ISO-8859-4)
+
+;; (make-coding-system
+;;  'iso-latin-4 2 ?4
+;;  "ISO 2022 based 8-bit encoding (MIME:ISO-8859-4)"
+;;  '((ascii t) (latin-iso8859-4 t) nil nil
+;;    nil ascii-eol ascii-cntl nil nil nil nil))
+
+;; (define-coding-system-alias 'iso-8859-4 'iso-latin-4)
+;; (define-coding-system-alias 'latin-4 'iso-latin-4)
+
+(make-coding-system
+ 'iso-8859-4 'iso2022 "MIME ISO-8859-4"
+ '(charset-g0 ascii
+   charset-g1 latin-iso8859-4
+   charset-g2 t
+   charset-g3 t
+   mnemonic "MIME/Ltn-4"
+   ))
+
+(defun setup-latin4-environment ()
+  "Set up multilingual environment (MULE) for European Latin-4 users."
+  (interactive)
+  (setup-8-bit-environment "Latin-4" 'latin-iso8859-4 'iso-8859-4
+			   "latin-4-prefix"))
+
+(set-language-info-alist
+ "Latin-4" '((setup-function . (setup-latin4-environment
+				. setup-european-environment-map))
+	     (charset . (ascii latin-iso8859-4))
+	     (coding-system . (iso-8859-4))
+	     (documentation . ("\
+These languages are supported with the Latin-4 (ISO-8859-4) character set:
+ Danish, English, Estonian, Finnish, German, Greenlandic, Lappish,
+ Latvian, Lithuanian, and Norwegian.
+" . describe-european-environment-map))
+	     ))
+
+;; Latin-5 (ISO-8859-9)
+
+;; (make-coding-system
+;;  'iso-latin-5 2 ?9
+;;  "ISO 2022 based 8-bit encoding (MIME:ISO-8859-9)"
+;;  '((ascii t) (latin-iso8859-9 t) nil nil
+;;    nil ascii-eol ascii-cntl nil nil nil nil))
+
+;; (define-coding-system-alias 'iso-8859-9 'iso-latin-5)
+;; (define-coding-system-alias 'latin-5 'iso-latin-5)
+
+(make-coding-system
+ 'iso-8859-9 'iso2022 "MIME ISO-8859-9"
+ '(charset-g0 ascii
+   charset-g1 latin-iso8859-9
+   charset-g2 t
+   charset-g3 t
+   mnemonic "MIME/Ltn-5"
+   ))
+
+(defun setup-latin5-environment ()
+  "Set up multilingual environment (MULE) for European Latin-5 users."
+  (interactive)
+  (setup-8-bit-environment "Latin-5" 'latin-iso8859-9 'iso-8859-5
+			   "latin-5-prefix"))
+
+(set-language-info-alist
+ "Latin-5" '((setup-function . (setup-latin5-environment
+				. setup-european-environment-map))
+	     (charset . (ascii latin-iso8859-9))
+	     (coding-system . (iso-8859-5))
+	     (documentation . ("\
+These languages are supported with the Latin-5 (ISO-8859-9) character set.
+" . describe-european-environment-map))
+	     ))
+
+;; (defun setup-european-environment ()
+;;   "Setup multilingual environment (MULE) for European languages users.
+;; It actually reset MULE to the default status, and
+;; set quail-latin-1 as the default input method to be selected.
+;; See also the documentation of setup-english-environment."
+;;   (setup-english-environment)
+;;   (setq default-input-method '("European" . "quail-latin-1")))
+
+;; (defun describe-european-support ()
+;;   "Describe how Emacs support European languages."
+;;   (interactive)
+;;   (describe-language-support-internal "European"))
+
+;; (set-language-info-alist
+;;  "European" '((setup-function . setup-european-environment)
+;;               (describe-function . describe-european-support)
+;;               (charset . (ascii latin-iso8859-1 latin-iso8859-2
+;;                           latin-iso8859-3 latin-iso8859-4 latin-iso8859-9))
+;;               (coding-system . (iso-8859-1 iso-8859-2 iso-8859-3
+;;                                 iso-8859-4 iso-8859-9))
+;;               (sample-text
+;;                . "Hello, Hej, Tere, Hei, Bonjour, Gr,A|_(B Gott, Ciao, ,A!(BHola!")
+;;               (documentation . "\
+;; Almost all of European languages are supported by the character sets and
+;; coding systems listed below.
+;; To input them, LEIM (Libraries for Emacs Input Methods) should have been
+;; installed.")
+;;               ))
+
+;;; european.el ends here
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/mule/greek.el	Mon Aug 13 11:10:50 2007 +0200
@@ -0,0 +1,84 @@
+;;; greek.el --- Support for Greek
+
+;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
+;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1997 MORIOKA Tomohiko
+
+;; Keywords: multilingual, Greek
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; Commentary:
+
+;; For Greek, the character set ISO8859-7 is supported.
+
+;;; Code:
+
+;; For syntax of Greek
+(loop for c from 54 to 126
+      do (modify-syntax-entry (make-char 'greek-iso8859-7 c) "w"))
+(modify-syntax-entry (make-char 'greek-iso8859-7 32) "w") ; no-break space
+(modify-syntax-entry ?,F7(B ".")
+(modify-syntax-entry ?,F;(B ".")
+(modify-syntax-entry ?,F=(B ".")
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; GREEK
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;; (define-language-environment 'greek
+;;   "Greek"
+;;   (lambda ()
+;;     (set-coding-category-system 'iso-8-designate 'iso-8859-7)
+;;     (set-coding-priority-list '(iso-8-designate iso-8-1))
+;;     (set-default-buffer-file-coding-system 'iso-8859-7)
+;;     (setq terminal-coding-system 'iso-8859-7)
+;;     (setq keyboard-coding-system 'iso-8859-7)
+;;     ;; (setq-default quail-current-package
+;;     ;;               (assoc "greek" quail-package-alist))
+;;     ))
+
+;; (make-coding-system
+;;  'iso-8859-7 2 ?7 "MIME ISO-8859-7"
+;;  '((ascii t) (greek-iso8859-7 t) nil nil
+;;    nil ascii-eol ascii-cntl nil nil nil nil))
+
+(make-coding-system
+ 'iso-8859-7 'iso2022 "MIME ISO-8859-7"
+ '(charset-g0 ascii
+   charset-g1 greek-iso8859-7
+   charset-g2 t
+   charset-g3 t
+   mnemonic "Grk"
+   ))
+
+(defun setup-greek-environment ()
+  "Setup multilingual environment (MULE) for Greek."
+  (interactive)
+  (setup-8-bit-environment "Greek" 'greek-iso8859-7 'iso-8859-7 "greek")
+  )
+
+(set-language-info-alist
+ "Greek" '((setup-function . setup-greek-environment)
+	   (charset . (greek-iso8859-7))
+	   (coding-system . (iso-8859-7))
+	   (sample-text . "Greek (,FGkk]mija(B)	,FCei\(B ,Fsar(B")
+	   (documentation . t)))
+
+;;; greek.el ends here
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/mule/hebrew.el	Mon Aug 13 11:10:50 2007 +0200
@@ -0,0 +1,93 @@
+;;; hebrew.el --- Support for Hebrew
+
+;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
+;; Licensed to the Free Software Foundation.
+
+;; Keywords: multilingual, Hebrew
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+
+;; For Hebrew, the character sets ISO8859-8 is supported.
+
+;;; Code:
+
+;; Syntax of Hebrew characters
+(loop for c from 96 to 122
+      do (modify-syntax-entry (make-char 'hebrew-iso8859-8 c) "w"))
+(modify-syntax-entry (make-char 'hebrew-iso8859-8 32) "w") ; no-break space
+
+
+;; (make-coding-system
+;;  'hebrew-iso-8bit 2 ?8
+;;  "ISO 2022 based 8-bit encoding for Hebrew (MIME:ISO-8859-8)"
+;;  '((ascii t) (hebrew-iso8859-8 t) nil nil
+;;    nil ascii-eol ascii-cntl nil nil nil nil nil t))
+
+;; (define-coding-system-alias 'iso-8859-8 'hebrew-iso-8bit)
+
+(make-coding-system
+ 'iso-8859-8 'iso2022
+ "MIME ISO-8859-8"
+ '(charset-g0 ascii
+   charset-g1 hebrew-iso8859-8
+   charset-g2 t
+   charset-g3 t
+   no-iso6429 t
+   mnemonic "MIME/Hbrw"
+))
+
+(make-coding-system
+ 'ctext-hebrew 'iso2022
+ "Coding-system of Hebrew."
+ '(charset-g0 ascii
+   charset-g1 hebrew-iso8859-8
+   charset-g2 t
+   charset-g3 t
+   mnemonic "CText/Hbrw"
+   ))
+
+(defun setup-hebrew-environment ()
+  "Setup multilingual environment (MULE) for Hebrew.
+But, please note that right-to-left writing is not yet supported."
+  (interactive)
+  (setup-8-bit-environment "Hebrew" 'hebrew-iso8859-8 'iso-8859-8
+			   "hebrew")
+  (set-coding-category-system 'iso-8-designate 'iso-8859-8)
+  (set-coding-priority-list
+   '(iso-8-designate
+     iso-8-1
+     iso-7
+     iso-8-2
+     iso-lock-shift
+     no-conversion
+     shift-jis
+     big5))
+  )
+
+(set-language-info-alist
+ "Hebrew" '((setup-function . setup-hebrew-environment)
+	    (describe-function . describe-hebrew-support)
+	    (charset . (hebrew-iso8859-8))
+	    (coding-system . (iso-8859-8))
+	    (sample-text . "Hebrew	,Hylem(B")
+	    (documentation . "Right-to-left writing is not yet supported.")
+	    ))
+
+;;; hebrew.el ends here
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/mule/japanese.el	Mon Aug 13 11:10:50 2007 +0200
@@ -0,0 +1,232 @@
+;;; japanese.el --- Japanese support
+
+;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
+;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1997 MORIOKA Tomohiko
+
+;; Keywords: multilingual, Japanese
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; Commentary:
+
+;; For Japanese, character sets JISX0201, JISX0208, JISX0212 are
+;; supported.
+
+;;; Code:
+
+;;; Syntax of Japanese characters.
+(modify-syntax-entry 'katakana-jisx0201 "w")
+(modify-syntax-entry 'japanese-jisx0212 "w")
+
+(modify-syntax-entry 'japanese-jisx0208 "w")
+(loop for row in '(33 34 40)
+      do (modify-syntax-entry `[japanese-jisx0208 ,row] "_"))
+(loop for char in '(?$B!<(B ?$B!+(B ?$B!,(B ?$B!3(B ?$B!4(B ?$B!5(B ?$B!6(B ?$B!7(B ?$B!8(B ?$B!9(B ?$B!:(B ?$B!;(B)
+      do (modify-syntax-entry char "w"))
+(modify-syntax-entry ?\$B!J(B "($B!K(B")
+(modify-syntax-entry ?\$B!N(B "($B!O(B")
+(modify-syntax-entry ?\$B!P(B "($B!Q(B")
+(modify-syntax-entry ?\$B!V(B "($B!W(B")
+(modify-syntax-entry ?\$B!X(B "($B!Y(B")
+(modify-syntax-entry ?\$B!K(B ")$B!J(B")
+(modify-syntax-entry ?\$B!O(B ")$B!N(B")
+(modify-syntax-entry ?\$B!Q(B ")$B!P(B")
+(modify-syntax-entry ?\$B!W(B ")$B!V(B")
+(modify-syntax-entry ?\$B!Y(B ")$B!X(B")
+
+;;; Character categories S, A, H, K, G, Y, and C
+(define-category ?S "Japanese 2-byte symbol character.")
+(modify-category-entry [japanese-jisx0208 33] ?S)
+(modify-category-entry [japanese-jisx0208 34] ?S)
+(modify-category-entry [japanese-jisx0208 40] ?S)
+(define-category ?A "Japanese 2-byte Alphanumeric character.")
+(modify-category-entry [japanese-jisx0208 35] ?A)
+(define-category ?H "Japanese 2-byte Hiragana character.")
+(modify-category-entry [japanese-jisx0208 36] ?H)
+(define-category ?K "Japanese 2-byte Katakana character.")
+(modify-category-entry [japanese-jisx0208 37] ?K)
+(define-category ?G "Japanese 2-byte Greek character.")
+(modify-category-entry [japanese-jisx0208 38] ?G)
+(define-category ?Y "Japanese 2-byte Cyrillic character.")
+(modify-category-entry [japanese-jisx0208 39] ?Y)
+(define-category ?C "Japanese 2-byte Kanji characters.")
+(loop for row from 48 to 126
+      do (modify-category-entry `[japanese-jisx0208 ,row] ?C))
+(loop for char in '(?$B!<(B ?$B!+(B ?$B!,(B)
+      do (modify-category-entry char ?K)
+         (modify-category-entry char ?H))
+(loop for char in '(?$B!3(B ?$B!4(B ?$B!5(B ?$B!6(B ?$B!7(B ?$B!8(B ?$B!9(B ?$B!:(B ?$B!;(B)
+      do (modify-category-entry char ?C))
+(modify-category-entry 'japanese-jisx0212 ?C)
+
+(defvar japanese-word-regexp
+  "\\cA+\\cH*\\|\\cK+\\cH*\\|\\cC+\\cH*\\|\\cH+\\|\\ck+\\|\\sw+"
+  "Regular expression used to match a Japanese word.")
+
+(set-word-regexp japanese-word-regexp)
+(setq forward-word-regexp  "\\w\\>")
+(setq backward-word-regexp "\\<\\w")
+
+;;; Paragraph setting
+(setq sentence-end
+      (concat
+       "\\("
+       "\\("
+       "[.?!][]\"')}]*"
+       "\\|"
+       "[$B!%!)!*(B][$B!O!I!G!K!Q!M!S!U!W!Y(B]*"
+       "\\)"
+       "\\($\\|\t\\|  \\)"
+       "\\|"
+       "$B!#(B"
+       "\\)"
+       "[ \t\n]*"))
+(setq paragraph-start    "^[ $B!!(B\t\n\f]")
+(setq paragraph-separate "^[ $B!!(B\t\f]*$")
+
+;; EGG specific setup
+(define-egg-environment 'japanese
+  "Japanese settings for egg."
+  (lambda ()
+    (when (not (featurep 'egg-jpn))
+      (load "its-hira")
+      (load "its-kata")
+      (load "its-hankaku")
+      (load "its-zenkaku")
+      (setq its:*standard-modes*
+	    (append
+	     (list (its:get-mode-map "roma-kana")
+		   (its:get-mode-map "roma-kata")
+		   (its:get-mode-map "downcase")
+		   (its:get-mode-map "upcase")
+		   (its:get-mode-map "zenkaku-downcase")
+		   (its:get-mode-map "zenkaku-upcase"))
+	     its:*standard-modes*))
+      (provide 'egg-jpn))
+    (setq wnn-server-type 'jserver)
+    ;; Can't do this here any more.  Must do it when selecting egg-wnn
+    ;; or egg-sj3
+    ;; (setq egg-default-startup-file "eggrc-wnn")
+    (setq-default its:*current-map* (its:get-mode-map "roma-kana"))))
+
+;; stuff for providing gramatic processing of Japanese text
+;; something like this should probably be created for all environments...
+
+(defvar aletter (concat "\\(" ascii-char "\\|" kanji-char "\\)"))
+(defvar kanji-space-insertable (concat 
+	   "$B!"(B" aletter                   "\\|"
+	   "$B!#(B" aletter                   "\\|"
+	   aletter "$B!J(B"                   "\\|"
+	   "$B!K(B" aletter                   "\\|"
+	   ascii-alphanumeric  kanji-kanji-char "\\|"
+	   kanji-kanji-char    ascii-alphanumeric ))
+
+(defvar space-insertable (concat " " aletter "\\|" kanji-space-insertable)
+  "Regexp for finding points that can have spaces inserted into them for justification")
+
+;; (make-coding-system
+;;  'iso-2022-jp 2 ?J
+;;  "ISO 2022 based 7bit encoding for Japanese (MIME:ISO-2022-JP)"
+;;  '((ascii japanese-jisx0208-1978 japanese-jisx0208
+;;           latin-jisx0201 japanese-jisx0212 katakana-jisx0201 t) nil nil nil
+;;    short ascii-eol ascii-cntl seven))
+
+;; (define-coding-system-alias 'junet 'iso-2022-jp)
+
+(make-coding-system
+ 'iso-2022-jp 'iso2022
+ "Coding-system used for communication with mail and news in Japan."
+ '(charset-g0 ascii
+   short t
+   seven t
+   input-charset-conversion ((latin-jisx0201 ascii)
+			     (japanese-jisx0208-1978 japanese-jisx0208))
+   mnemonic "MULE/7bit"
+   ))
+
+(copy-coding-system 'iso-2022-jp 'junet)
+
+;; (make-coding-system
+;;  'shift_jis 1 ?S
+;;  "Coding-system of Shift-JIS used in Japan." t)
+
+(make-coding-system
+ 'shift_jis 'shift-jis
+ "Coding-system of Shift-JIS used in Japan."
+ '(mnemonic "Ja/SJIS"))
+
+;;(define-coding-system-alias 'shift_jis 'sjis)
+
+(copy-coding-system 'shift_jis 'sjis)
+
+;; (make-coding-system
+;;  'iso-2022-jp-1978-irv 2 ?J
+;;  "Coding-system used for old jis terminal."
+;;  '((ascii t) nil nil nil
+;;    short ascii-eol ascii-cntl seven nil nil use-roman use-oldjis))
+
+(make-coding-system
+ 'iso-2022-jp-1978-irv 'iso2022
+ "Coding-system used for old JIS terminal."
+ '(charset-g0 ascii
+   short t
+   seven t
+   output-charset-conversion ((ascii latin-jisx0201)
+			      (japanese-jisx0208 japanese-jisx0208-1978))
+   mnemonic "Ja-78/7bit"
+   ))
+
+;;(define-coding-system-alias 'iso-2022-jp-1978-irv 'old-jis)
+
+(copy-coding-system 'iso-2022-jp-1978-irv 'old-jis)
+
+;; (make-coding-system
+;;  'euc-japan-1990 2 ?E
+;;  "Coding-system of Japanese EUC (Extended Unix Code)."
+;;  '(ascii japanese-jisx0208 katakana-jisx0201 japanese-jisx0212
+;;          short ascii-eol ascii-cntl nil nil single-shift))
+
+(make-coding-system
+ 'euc-jp 'iso2022
+ "Coding-system of Japanese EUC (Extended Unix Code)."
+ '(charset-g0 ascii
+   charset-g1 japanese-jisx0208
+   charset-g2 katakana-jisx0201
+   charset-g3 japanese-jisx0212
+   short t
+   mnemonic "Ja/EUC"
+   ))
+
+;;(define-coding-system-alias 'euc-japan-1990 'euc-japan)
+
+(copy-coding-system 'euc-jp 'euc-japan) ; only for w3
+(copy-coding-system 'euc-jp 'japanese-euc)
+
+(set-language-info-alist
+ "Japanese" '((setup-function . setup-japanese-environment)
+	      (tutorial . "TUTORIAL.ja")
+	      (charset . (japanese-jisx0208 japanese-jisx0208-1978
+			  japanese-jisx0212 latin-jisx0201
+			  katakana-jisx0201))
+	      (coding-system . (iso-2022-jp euc-jp
+				shift_jis iso-2022-jp-1978-irv))
+	      (sample-text . "Japanese ($BF|K\8l(B)		$B$3$s$K$A$O(B, (I:]FAJ(B")
+	      (documentation . t)))
+
+;;; japanese.el ends here
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/mule/kinsoku.el	Mon Aug 13 11:10:50 2007 +0200
@@ -0,0 +1,285 @@
+;; kinsoku.el -- Kinsoku (line wrap) processing for XEmacs/Mule
+
+;; Copyright (C) 1997 Free Software Foundation, Inc.
+;; This file is part of Mule (MULtilingual Enhancement of XEmacs).
+;; This file contains Japanese and Chinese characters.
+
+;; XEmacs is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the 
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;; Written by Jareth Hein (jhod@po.iijnet.or.jp) based off of
+;; code by S.Tomura, Electrotechnical Lab. (tomura@etl.go.jp) from
+;; Mule-2.3
+
+;;;    Special characters for JIS code
+;;;     "$B!!!"!#!$!%!&!'!'!(!)!*!+!,!-!.!/(B"
+;;;   "$B!0!1!2!3!4!5!6!7!8!9!:!;!<!=!>!?(B"
+;;;   "$B!@!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O(B"
+;;;   "$B!P!Q!R!S!T!U!V!W!X!Y!Z![!\!]!^!_(B"
+;;;   "$B!`!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o(B"
+;;;   "$B!p!q!r!s!t!u!v!w!x!y!z!{!|!}!~(B"
+;;;     "$B"!"""#"$"%"&"'"(")"*"+","-".(B "
+;;;     "$B&!&"&#&$&%&&&'&(&)&*&+&,&-&.&/(B"
+;;;   "$B&0&1&2&3&4&5&6&7&8(B"
+;;;     "$B&A&B&C&D&E&F&G&H&I&J&K&L&M&N&O(B"
+;;;   "$B&P&Q&R&S&T&U&V&W&X(B"
+;;;     "$B'!'"'#'$'%'&'''(')'*'+','-'.'/(B"
+;;;   "$B'0'1'2'3'4'5'6'7'8'9':';'<'='>'?(B"
+;;;   "$B'@'A(B"
+;;;     "$B'Q'R'S'T'U'V'W'X'Y'Z'['\']'^'_!I(B
+;;;   "$B'`'a'b'c'd'e'f'g'h'i'j'k'l'm'n'o(B"
+;;;   "$B'p'q(B"
+;;;    $B#0#1#2#3#4#5#6#7#8#9#A#B#C#D#E#F(B
+;;;   "$B$!$#$%$'$)$C$c$e$g$n(B"
+;;;   "$B%!%#%%%'%)%C%c%e%g%n%u%v(B"
+
+;;; Special characters for GB
+;;;
+;;;  $A!!!"!#!$!%!&!'!(!)!*!+!,!-!.!/(B
+;;;$A!0!1!2!3!4!5!6!7!8!9!:!;!<!=!>!?(B
+;;;$A!@!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O(B
+;;;$A!P!Q!R!S!T!U!V!W!X!Y!Z![!\!]!^!_(B
+;;;$A!`!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o(B
+;;;$A!p!q!r!s!t!u!v!w!x!y!z!{!|!}!~(B
+;;;  $A"1"2"3"4"5"6"7"8"9":";"<"=">"?(B
+;;;$A"@"A"B"C"D"E"F"G"H"I"J"K"L"M"N"O(B
+;;;$A"P"Q"R"S"T"U"V"W"X"Y"Z"["\"]"^"_(B
+;;;$A"`"a"b"c"d"e"f"g"h"i"j"k"l"m"n"o(B
+;;;$A"p"q"r"s"t"u"v"w"x"y"z"{"|"}"~(B
+;;;  $A#!#"###$#%#&#'#(#)#*#+#,#-#.#/(B
+;;;$A#0#1#2#3#4#5#6#7#8#9#:#;#<#=#>#?(B
+;;;$A#@#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O(B
+;;;$A#P#Q#R#S#T#U#V#W#X#Y#Z#[#\#]#^#_(B
+;;;$A#`#a#b#c#d#e#f#g#h#i#j#k#l#m#n#o(B
+;;;$A#p#q#r#s#t#u#v#w#x#y#z#{#|#}#~(B
+;;;  $A$!$"$#$$$%$&$'$($)$*$+$,$-$.$/(B
+;;;$A$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?(B
+;;;$A$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O(B
+;;;$A$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_(B
+;;;$A$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o(B
+;;;$A$p$q$r$s$t$u$v$w$x$y$z${$|$}$~(B
+;;;  $A%!%"%#%$%%%&%'%(%)%*%+%,%-%.%/(B
+;;;$A%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?(B
+;;;$A%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O(B
+;;;$A%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_(B
+;;;$A%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o(B
+;;;$A%p%q%r%s%t%u%v%w%x%y%z%{%|%}%~(B
+;;;  $A&!&"&#&$&%&&&'&(&)&*&+&,&-&.&/(B
+;;;$A&0&1&2&3&4&5&6&7&8&9&:&;&<&=&>&?(B
+;;;$A&@&A&B&C&D&E&F&G&H&I&J&K&L&M&N&O(B
+;;;$A&P&Q&R&S&T&U&V&W&X&Y&Z&[&\&]&^&_(B
+;;;$A&`&a&b&c&d&e&f&g&h&i&j&k&l&m&n&o(B
+;;;$A&p&q&r&s&t&u&v&w&x&y&z&{&|&}&~(B
+;;;  $A'!'"'#'$'%'&'''(')'*'+','-'.'/(B
+;;;$A'0'1'2'3'4'5'6'7'8'9':';'<'='>'?(B
+;;;$A'@'A'B'C'D'E'F'G'H'I'J'K'L'M'N'O(B
+;;;$A'P'Q'R'S'T'U'V'W'X'Y'Z'['\']'^'_(B
+;;;$A'`'a'b'c'd'e'f'g'h'i'j'k'l'm'n'o(B
+;;;$A'p'q'r's't'u'v'w'x'y'z'{'|'}'~(B
+;;;  $A(!("(#($(%(&('((()(*(+(,(-(.(/(B
+;;;$A(0(1(2(3(4(5(6(7(8(9(:(;(<(=(>(?(B
+;;;$A(@(A(B(C(D(E(F(G(H(I(J(K(L(M(N(O(B
+;;;$A(P(Q(R(S(T(U(V(W(X(Y(Z([(\(](^(_(B
+;;;$A(`(a(b(c(d(e(f(g(h(i(j(k(l(m(n(o(B
+
+;;; Special characters for BIG5
+;;;
+;;;  $(0!!!"!#!$!%!&!'!(!)!*!+!,!-!.!/(B
+;;;$(0!0!1!2!3!4!5!6!7!8!9!:!;!<!=!>!?(B
+;;;$(0!@!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O(B
+;;;$(0!P!Q!R!S!T!U!V!W!X!Y!Z![!\!]!^!_(B
+;;;$(0!`!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o(B
+;;;$(0!p!q!r!s!t!u!v!w!x!y!z!{!|!}!~(B
+;;;  $(0"!"""#"$"%"&"'"(")"*"+","-"."/(B
+;;;$(0"0"1"2"3"4"5"6"7"8"9":";"<"=">"?(B
+;;;$(0"@"A"B"C"D"E"F"G"H"I"J"K"L"M"N"O(B
+;;;$(0"P"Q"R"S"T"U"V"W"X"Y"Z"["\"]"^"_(B
+;;;$(0"`"a"b"c"d"e"f"g"h"i"j"k"l"m"n"o(B
+;;;$(0"p"q"r"s"t"u"v"w"x"y"z"{"|"}"~(B
+;;;  $(0#!#"###$#%#&#'#(#)#*#+#,#-#.#/(B
+;;;$(0#0#1#2#3#4#5#6#7#8#9#:#;#<#=#>#?(B
+;;;$(0#@#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O(B
+;;;$(0#P#Q#R#S#T#U#V#W#X#Y#Z#[#\#]#^#_(B
+;;;$(0#`#a#b#c#d#e#f#g#h#i#j#k#l#m#n#o(B
+;;;$(0#p#q#r#s#t#u#v#w#x#y#z#{#|#}#~(B
+;;;  $(0$!$"$#$$$%$&$'$($)$*$+$,$-$.$/(B
+;;;$(0$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?(B
+;;;$(0$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O(B
+;;;$(0$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_(B
+;;;$(0$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o(B
+;;;$(0$p$q$r$s$t$u$v$w$x$y$z${$|$}$~(B
+;;;  $(0%!%"%#%$%%%&%'%(%)%*%+%,%-%.%/(B
+;;;$(0%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?(B
+
+(defvar kinsoku-ascii nil "Do kinsoku-processing for ASCII.")
+(make-variable-buffer-local 'kinsoku-ascii)
+(set-default 'kinsoku-ascii nil)
+(defvar kinsoku-jis t "Do kinsoku-processing for JISX0208.")
+(make-variable-buffer-local 'kinsoku-jis)
+(set-default 'kinsoku-jis t)
+(defvar kinsoku-gb t "Do kinsoku-processing for GB2312.")
+(make-variable-buffer-local 'kinsoku-gb)
+(set-default 'kinsoku-gb t)
+(defvar kinsoku-big5 t "Do kinsoku-processing for Big5..")
+(make-variable-buffer-local 'kinsoku-big5)
+(set-default 'kinsoku-big5 t)
+
+(defvar kinsoku-ascii-bol "!)-_~}]:;',.?" "BOL kinsoku for ASCII.")
+(defvar kinsoku-ascii-eol "({[" "EOL kinsoku for ASCII.")
+(defvar kinsoku-jis-bol
+  (concat  "$B!"!#!$!%!&!'!(!)!*!+!,!-!.!/!0!1!2!3!4!5!6!7!8!9!:!;!<!=!>(B"
+	   "$B!?!@!A!B!C!D!E!G!I!K!M!O!Q!S!U!W!Y![!k!l!m!n(B"
+	   "$B$!$#$%$'$)$C$c$e$g$n%!%#%%%'%)%C%c%e%g%n%u%v(B")
+  "BOL kinsoku for JISX0208.")
+(defvar kinsoku-jis-eol
+  "$B!F!H!J!L!N!P!R!T!V!X!Z!k!l!m!n!w!x(B"
+  "EOL kinsoku for JISX0208.")
+(defvar kinsoku-gb-bol
+  (concat  "$A!"!##.#,!$!%!&!'!(!)!*!+!,!-!/!1#)!3!5!7!9!;!=(B"
+	   "$A!?#;#:#?#!!@!A!B!C!c!d!e!f#/#\#"#_#~#|(e(B")
+  "BOL kinsoku for GB2312.")
+(defvar kinsoku-gb-eol
+  (concat "$A!.!0#"#(!2!4!6!8!:!<!>!c!d!e#@!f!l(B"
+	  "$A(E(F(G(H(I(J(K(L(M(N(O(P(Q(R(S(T(U(V(W(X(Y(h(B")
+  "EOL kinsoku for GB2312.")
+(defvar kinsoku-big5-bol
+  (concat  "$(0!"!#!$!%!&!'!(!)!*!+!,!-!.!/!0!1!2(B"
+ 	   "$(0!3!4!5!6!7!8!9!:!;!<!=!?!A!C!E!G!I!K(B"
+ 	   "$(0!M!O!Q(B	$(0!S!U!W!Y![!]!_!a!c!e!g!i!k!q(B"
+ 	   "$(0"#"$"%"&"'"(")"*"+","2"3"4"j"k"l"x%7(B")
+  "BOL kinsoku for BIG5.")
+(defvar kinsoku-big5-eol
+  (concat "$(0!>!@!B!D!F!H!J!L!N!P!R!T!V!X!Z!\!^!`!b(B"
+ 	  "$(0!d!f!h!j!k!q!p"i"j"k"n"x$u$v$w$x$y$z${(B"
+ 	  "$(0$|$}$~%!%"%#%$%%%&%'%(%)%*%+%:(B")
+  "EOL kinsoku for BIG5.")
+
+(define-category ?s "Kinsoku forbidden start of line characters")
+(define-category ?e "Kinsoku forbidden end of line characters")
+
+;; kinsoku ascii
+(loop for char in (string-to-char-list kinsoku-ascii-bol)
+      do (modify-category-entry char ?s))
+(loop for char in kinsoku-ascii-eol
+      do (modify-category-entry char ?e))
+;; kinsoku-jis
+(loop for char in (string-to-char-list kinsoku-jis-bol)
+      do (modify-category-entry char ?s))
+(loop for char in (string-to-char-list kinsoku-jis-eol)
+      do (modify-category-entry char ?e))
+;; kinsoku-gb
+(loop for char in kinsoku-gb-bol
+      do (modify-category-entry char ?s))
+(loop for char in kinsoku-gb-eol
+      do (modify-category-entry char ?e))
+;; kinsoku-big5
+(loop for char in kinsoku-big5-bol
+      do (modify-category-entry char ?s))
+(loop for char in kinsoku-big5-eol
+      do (modify-category-entry char ?e))
+
+(defun kinsoku-bol-p ()
+  "Check if point would break forbidden beginning-of-line rules
+Uses category \'s\' to check.
+point$B$G2~9T$9$k$H9TF,6XB'$K?($l$k$+$I$&$+$r$+$($9!#(B
+$B9TF,6XB'J8;z$O(B\'s\'$B$N(Bcategory$B$G;XDj$9$k!#(B"
+  (let ((ch (char-after)))
+    (if (and ch
+	     (or
+	      (and kinsoku-ascii (char-in-category-p ch ?a))
+	      (and kinsoku-jis (char-in-category-p ch ?j))
+	      (and kinsoku-gb (char-in-category-p ch ?c))
+	      (and kinsoku-big5 (char-in-category-p ch ?t))))
+	(char-in-category-p ch ?s)
+      nil)))
+
+(defun kinsoku-eol-p ()
+  "Check if point would break forbidden end-of-line rules
+Uses category \'e\' to check.
+point$B$G2~9T$9$k$H9TKv6XB'$K?($l$k$+$I$&$+$r$+$($9!#(B
+$B9TKv6XB'J8;z$O(B\'s\'$B$N(Bcategory$B$G;XDj$9$k!#(B"
+  (let ((ch (char-before)))
+    (if (and ch
+	     (or
+	      (and kinsoku-ascii (char-in-category-p ch ?a))
+	      (and kinsoku-jis (char-in-category-p ch ?j))
+	      (and kinsoku-gb (char-in-category-p ch ?c))
+	      (and kinsoku-big5 (char-in-category-p ch ?t))))
+	(char-in-category-p ch ?e)
+      nil)))
+
+(defvar kinsoku-extend-limit nil
+  "Defines how many characters kinsoku will search forward before giving up.
+A value of nil equates to infinity.
+$B6XB'=hM}$G9T$r?-$P$7$FNI$$H>3QJ8;z?t$r;XDj$9$k!#(B
+$BHsIi@0?t0J30$N>l9g$OL58BBg$r0UL#$9$k!#(B")
+
+(defun kinsoku-process ()
+  "Move to a point that will not break forbidden line break rules.
+$B6XB'$K?($l$J$$E@$X0\F0$9$k!#(B
+point$B$,9TF,6XB'$K?($l$k>l9g$O9T$r?-$P$7$F!"6XB'$K?($l$J$$E@$rC5$9!#(B
+point$B$,9TKv6XB'$K?($l$k>l9g$O9T$r=L$a$F!"6XB'$K?($l$J$$E@$rC5$9!#(B
+$B$?$@$7!"9T?-$P$7H>3QJ8;z?t$,(Bkinsoku-extend-limit$B$r1[$($k$H!"(B
+$B9T$r=L$a$F6XB'$K?($l$J$$E@$rC5$9!#(B"
+  (let ((bol-kin nil) (eol-kin nil))
+    (if (and (not (bolp))
+	     (not (eolp))
+	     (or (setq bol-kin (kinsoku-bol-p))
+		 (setq eol-kin (kinsoku-eol-p))))
+	(cond(bol-kin (kinsoku-process-extend))
+	     (eol-kin (kinsoku-process-shrink))))))
+
+(defun kinsoku-process-extend ()
+  "Move point forward to a permissable for line-breaking.
+$B9T$r?-$P$7$F6XB'$K?($l$J$$E@$X0\F0$9$k!#(B"
+  (let ((max-column (+ fill-column 
+		       (if (and (numberp kinsoku-extend-limit)
+				(>= kinsoku-extend-limit 0))
+			   kinsoku-extend-limit
+			 10000)))  ;;; 10000 is deliberatly unreasonably large
+	ch1 ch2)
+    (while (and (setq ch1 (char-after))
+		(<= (+ (current-column)
+		       (char-width ch1 ))
+		    max-column)
+		(not (bolp))
+		(not (eolp))
+		(or (kinsoku-eol-p)
+		    (kinsoku-bol-p)
+	            ;;; don't break in the middle of an English word
+		    (and (char-in-category-p ch1 ?a)
+			 (setq ch2 (char-before))
+			 (char-in-category-p ch2 ?a)
+			 (= ?w (char-syntax ch2))
+			 (= ?w (char-syntax ch1)))))
+      (forward-char))
+    (if (or (kinsoku-eol-p) (kinsoku-bol-p))
+	(kinsoku-process-shrink))))
+
+(defun kinsoku-process-shrink ()
+  "Move point backward to a point permissable for line-breaking.
+$B9T$r=L$a$F6XB'$K?($l$J$$E@$X0\F0$9$k!#(B"
+  (let (ch1 ch2)
+    (while (and (not (bolp))
+		(not (eolp))
+		(or (kinsoku-bol-p)
+		    (kinsoku-eol-p)
+		;;; don't break in the middle of an English word
+		    (and
+		     (char-in-category-p (setq ch1 (following-char)) ?a)
+		     (char-in-category-p (setq ch2 (preceding-char)) ?a)
+		     (= ?w (char-syntax ch2))
+		     (= ?w (char-syntax ch1)))))
+      (backward-char))))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/mule/korean.el	Mon Aug 13 11:10:50 2007 +0200
@@ -0,0 +1,149 @@
+;;; korean.el --- Support for Korean
+
+;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
+;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1997 MORIOKA Tomohiko
+
+;; Keywords: multilingual, Korean
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; Commentary:
+
+;; For Korean, the character set KSC5601 is supported.
+
+;;; Code:
+
+;; Syntax of Korean characters.
+(loop for row from 33 to  34 do
+      (modify-syntax-entry `[korean-ksc5601 ,row] "."))
+(loop for row from 35 to  37 do
+      (modify-syntax-entry `[korean-ksc5601 ,row] "w"))
+(loop for row from 38 to  41 do
+      (modify-syntax-entry `[korean-ksc5601 ,row] "."))
+(loop for row from 42 to 126 do
+      (modify-syntax-entry `[korean-ksc5601 ,row] "w"))
+
+;; Setting for coding-system and quail were moved to
+;; language/korean.el.
+
+(make-coding-system
+ 'iso-2022-int-1 'iso2022
+ "ISO-2022-INT-1"
+ '(charset-g0 ascii
+   charset-g1 korean-ksc5601
+   short t
+   seven t
+   lock-shift t
+   mnemonic "INT-1"))
+
+;; EGG specific setup
+(define-egg-environment 'korean
+  "Korean settings for egg"
+  (lambda ()
+    (when (not (featurep 'egg-kor))
+      (load "its-hangul")
+      (setq its:*standard-modes*
+	    (cons (its:get-mode-map "hangul") its:*standard-modes*))
+      (provide 'egg-kor))
+    (setq wnn-server-type 'kserver)
+    (setq egg-default-startup-file "eggrc-wnn")
+    (setq-default its:*current-map* (its:get-mode-map "hangul"))))
+
+;; (make-coding-system
+;;  'euc-kr 2 ?K
+;;  "Coding-system of Korean EUC (Extended Unix Code)."
+;;  '((ascii t) korean-ksc5601 nil nil
+;;    nil ascii-eol ascii-cntl))
+
+(make-coding-system
+ 'euc-kr 'iso2022
+ "Coding-system of Korean EUC (Extended Unix Code)."
+ '(charset-g0 ascii
+   charset-g1 korean-ksc5601
+   mnemonic "ko/EUC"
+   eol-type nil))
+
+;;(define-coding-system-alias 'euc-kr 'euc-korea)
+
+(copy-coding-system 'euc-kr 'korean-euc)
+
+;; (make-coding-system
+;;  'iso-2022-kr 2 ?k
+;;  "MIME ISO-2022-KR"
+;;  '(ascii (nil korean-ksc5601) nil nil
+;;          nil ascii-eol ascii-cntl seven locking-shift nil nil nil nil nil
+;;          designation-bol))
+
+(make-coding-system
+ 'iso-2022-kr 'iso2022
+ "Coding-System used for communication with mail in Korea."
+ '(charset-g0 ascii
+   charset-g1 korean-ksc5601
+   force-g1-on-output t
+   seven t
+   lock-shift t
+   mnemonic "Ko/7bit"
+   eol-type lf))
+
+(defun setup-korean-environment ()
+  "Setup multilingual environment (MULE) for Korean."
+  (interactive)
+  (setup-english-environment)
+  ;; (setq coding-category-iso-8-2 'euc-kr)
+  (set-coding-category-system 'iso-8-2 'euc-kr)
+
+  ;; (set-coding-priority
+  ;;  '(coding-category-iso-7
+  ;;    coding-category-iso-8-2
+  ;;    coding-category-iso-8-1))
+  (set-coding-priority-list
+   '(iso-8-2
+     iso-7
+     iso-8-1
+     iso-8-designate
+     iso-lock-shift
+     no-conversion
+     shift-jis
+     big5))
+
+  (set-default-coding-systems 'euc-kr)
+
+  ;; (when (eq 'x (device-type (selected-device)))
+  ;;   (x-use-halfwidth-roman-font 'korean-ksc5601 "ksc5636"))
+
+  ;; EGG specific setup 97.02.05 jhod
+  (when (featurep 'egg)
+    (when (not (featurep 'egg-kor))
+      (provide 'egg-kor)
+      (load "its-hangul")
+      (setq its:*standard-modes*
+	    (cons (its:get-mode-map "hangul") its:*standard-modes*)))
+    (setq-default its:*current-map* (its:get-mode-map "hangul")))
+
+  (setq default-input-method "korean-hangul"))
+
+(set-language-info-alist
+ "Korean" '((setup-function . setup-korean-environment)
+	    (tutorial . "TUTORIAL.ko")
+	    (charset . (korean-ksc5601))
+	    (coding-system . (iso-2022-kr euc-kr))
+	    (sample-text . "Hangul ($(CGQ1[(B)	$(C>H3gGO<<?d(B, $(C>H3gGO=J4O1n(B")
+	    (documentation . t)))
+
+;;; korean.el ends here
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/mule/misc-lang.el	Mon Aug 13 11:10:50 2007 +0200
@@ -0,0 +1,52 @@
+;;; misc-lang.el --- support for miscellaneous languages (characters)
+
+;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
+;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1997 MORIOKA Tomohiko
+
+;; Keywords: multilingual, character set, coding system
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; Code:
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; IPA (International Phonetic Alphabet)
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(make-charset 'ipa "International Phonetic Alphabet"
+	      '(registry "MuleIPA"
+		dimension 1
+		chars 96
+		final ?0
+		graphic 1
+		))		; for XEmacs
+
+(defun setup-ipa-environment ()
+  "Setup multilingual environment (MULE) for IPA."
+  (interactive)
+  (setup-english-environment))
+
+(set-language-info-alist
+ "IPA" '((setup-function . setup-ipa-environment)
+	 (charset . (ipa))
+	 (documentation . "\
+IPA is International Phonetic Alphabet for English, French, German
+and Italian.")))
+
+;;; misc-lang.el ends here
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/mule/mule-category.el	Mon Aug 13 11:10:50 2007 +0200
@@ -0,0 +1,286 @@
+;;; mule-category.el --- category functions for XEmacs/Mule.
+
+;; Copyright (C) 1992,93,94,95 Free Software Foundation, Inc.
+;; Copyright (C) 1995 Amdahl Corporation.
+;; Copyright (C) 1995 Sun Microsystems.
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the 
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+
+;; Functions for working with category tables, which are a particular
+;; type of char table.  Some function names / arguments should be
+;; parallel with syntax tables.
+
+;; Written by Ben Wing <wing@666.com>.  The initialization code
+;; at the end of this file comes from Mule.
+;; Some bugfixes by Jareth Hein <jhod@po.iijnet.or.jp>
+
+;;; Code:
+
+(defvar defined-category-hashtable (make-hashtable 50))
+
+(defun define-category (designator doc-string)
+  "Make a new category whose designator is DESIGNATOR.
+DESIGNATOR should be a visible letter of ' ' thru '~'.
+STRING is a doc string for the category.
+Letters of 'a' thru 'z' are already used or kept for the system."
+  (check-argument-type 'category-designator-p designator)
+  (check-argument-type 'stringp doc-string)
+  (puthash designator doc-string defined-category-hashtable))
+
+(defun undefine-category (designator)
+  "Undefine DESIGNATOR as a designator for a category."
+  (check-argument-type 'category-designator-p designator)
+  (remhash designator defined-category-hashtable))
+
+(defun defined-category-p (designator)
+  "Return non-nil if DESIGNATOR is a designator for a defined category."
+  (and (category-designator-p designator)
+       (gethash designator defined-category-hashtable)))
+
+(defun defined-category-list ()
+  "Return a list of the currently defined categories.
+Categories are given by their designators."
+  (let (list)
+    (maphash #'(lambda (key value)
+		 (setq list (cons key list)))
+	     defined-category-hashtable)
+    (nreverse list)))
+
+(defun undefined-category-designator ()
+  "Return an undefined category designator, or nil if there are none."
+  (let ((a 32) found)
+    (while (and (< a 127) (not found))
+      (if (gethash a defined-category-hashtable)
+	  (setq found a))
+      (setq a (1+ a)))
+    found))
+
+(defun category-doc-string (designator)
+  "Return the doc-string for the category denoted by DESIGNATOR."
+  (check-argument-type 'defined-category-p designator)
+  (gethash designator defined-category-hashtable))
+
+(defun modify-category-entry (char-range designator &optional table reset)
+  "Add a category to the categories associated with CHAR-RANGE.
+CHAR-RANGE is a single character or a range of characters,
+ as per `put-char-table'.
+The category is given by a designator character.
+The changes are made in TABLE, which defaults to the current buffer's
+ category table.
+If optional fourth argument RESET is non-nil, previous categories associated
+ with CHAR-RANGE are removed before adding the specified category."
+  (or table (setq table (category-table)))
+  (check-argument-type 'category-table-p table)
+  (check-argument-type 'defined-category-p designator)
+  (if reset
+      ;; clear all existing stuff.
+      (put-char-table char-range nil table))
+  (map-char-table
+   #'(lambda (key value)
+       ;; make sure that this range has a bit-vector assigned to it
+       (if (not (bit-vector-p value))
+	   (setq value (make-bit-vector 95 0))
+	 (setq value (copy-sequence value)))
+       ;; set the appropriate bit in that vector.
+       (aset value (- designator 32) 1)
+       ;; put the vector back, thus assuring we have a unique setting for this range
+       (put-char-table key value table))
+   table char-range))
+
+(defun char-category-list (char &optional table)
+  "Return a list of the categories that CHAR is in.
+TABLE defaults to the current buffer's category table.
+The categories are given by their designators."
+  (or table (setq table (category-table)))
+  (check-argument-type 'category-table-p table)
+  (let ((vec (get-char-table char table)))
+    (if (null vec) nil
+      (let ((a 32) list)
+	(while (< a 127)
+	  (if (= 1 (aref vec (- a 32)))
+	      (setq list (cons a list)))
+	  (setq a (1+ a)))
+	(nreverse list)))))
+
+;; implimented in c, file chartab.c (97/3/14 jhod@po.iijnet.or.jp)
+;(defun char-in-category-p (char category &optional table)
+;  "Return non-nil if CHAR is in CATEGORY.
+;TABLE defaults to the current buffer's category table.
+;Categories are specified by their designators."
+;  (or table (setq table (category-table)))
+;  (check-argument-type 'category-table-p table)
+;  (check-argument-type 'category-designator-p category)
+;  (let ((vec (get-char-table char table)))
+;    (if (null vec) nil
+;      (= 1 (aref vec (- category 32))))))
+
+(defun describe-category ()
+  "Describe the category specifications in the category table.
+The descriptions are inserted in a buffer, which is then displayed."
+  (interactive)
+  (with-output-to-temp-buffer "*Help*"
+    (describe-category-table (category-table) standard-output)))
+
+(defun describe-category-table (table stream)
+  (let (first-char
+	last-char
+	prev-val
+	(describe-one
+	 (lambda (first last value stream)
+	   (if (and (bit-vector-p value)
+		    (> (reduce '+ value) 0))
+	       (progn
+		 (if (equal first last)
+		     (cond ((vectorp first)
+			    (princ (format "%s, row %d"
+					   (charset-name
+					    (aref first 0))
+					   (aref first 1))
+				   stream))
+			   ((charsetp first)
+			    (princ (charset-name first) stream))
+			   (t (princ first stream)))
+		   (cond ((vectorp first)
+			  (princ (format "%s, rows %d .. %d"
+					 (charset-name
+					  (aref first 0))
+					 (aref first 1)
+					 (aref last 1))
+				 stream))
+			 (t
+			  (princ (format "%s .. %s" first last)
+				 stream))))
+		 (describe-category-code value stream))))))
+    (map-char-table
+     (lambda (range value)
+       (if (and (or
+		 (and (characterp range)
+		      (characterp first-char)
+		      (eq (char-charset range) (char-charset first-char))
+		      (= (char-to-int last-char) (1- (char-to-int range))))
+		 (and (vectorp range)
+		      (vectorp first-char)
+		      (eq (aref range 0) (aref first-char 0))
+		      (= (aref last-char 1) (1- (aref range 1))))
+		 (equal value prev-val)))
+	   (setq last-char range)
+	 (if first-char
+	     (progn
+	       (funcall describe-one first-char last-char prev-val stream)
+	       (setq first-char nil)))
+	 (funcall describe-one range range value stream))
+       nil)
+     table)
+    (if first-char
+	(funcall describe-one first-char last-char prev-val stream))))
+
+(defun describe-category-code (code stream)
+  (let ((standard-output (or stream standard-output)))
+    (princ "\tin categories: ")
+    (if (not (bit-vector-p code))
+	(princ "(none)")
+      (let ((i 0)
+	    already-matched)
+	(while (< i 95)
+	  (if (= 1 (aref code i))
+	      (progn
+		(if (not already-matched)
+		    (setq already-matched t)
+		  (princ " "))
+		(princ (int-to-char (+ 32 i)))))
+	  (setq i (1+ i)))
+	(if (not already-matched)
+	    (princ "(none)")))
+      (let ((i 0))
+	(while (< i 95)
+	  (if (= 1 (aref code i))
+	      (princ (format "\n\t\tmeaning: %s"
+			    (category-doc-string (int-to-char (+ 32 i))))))
+	  (setq i (1+ i)))))
+    (terpri)))
+
+(defconst predefined-category-list
+  '((latin-iso8859-1	?l "Latin-1 through Latin-5 character set")
+    (latin-iso8859-2	?l)
+    (latin-iso8859-3	?l)
+    (latin-iso8859-4	?l)
+    (latin-iso8859-9	?l)
+    (cyrillic-iso8859-5 ?y "Cyrillic character set")
+    (arabic-iso8859-6	?b "Arabic character set")
+    (greek-iso8859-7	?g "Greek character set")
+    (hebrew-iso8859-8	?w "Hebrew character set")
+    (katakana-jisx0201	?k "Japanese 1-byte Katakana character set")
+    (latin-jisx0201	?r "Japanese 1-byte Roman character set")
+    (japanese-jisx0208-1978 ?j "Japanese 2-byte character set (old)")
+    (japanese-jisx0208	?j "Japanese 2-byte character set")
+    (japanese-jisx0212	?j)
+    (chinese-gb2312	?c "Chinese GB (China, PRC) 2-byte character set")
+    (chinese-cns11643-1	?t "Chinese Taiwan (CNS or Big5) 2-byte character set")
+    (chinese-cns11643-2	?t)
+    (chinese-big5-1	?t)
+    (chinese-big5-2	?t)
+    (korean-ksc5601	?h "Hangul (Korean) 2-byte character set")
+    )
+  "List of predefined categories.
+Each element is a list of a charset, a designator, and maybe a doc string.")
+
+(let (i l)
+  (define-category ?a "ASCII character set.")
+  (setq i 32)
+  (while (< i 127)
+    (modify-category-entry i ?a)
+    (setq i (1+ i)))
+  (setq l predefined-category-list)
+  (while l
+    (if (and (nth 2 (car l))
+	     (not (defined-category-p (nth 2 (car l)))))
+	(define-category (nth 1 (car l)) (nth 2 (car l))))
+    (modify-category-entry (car (car l)) (nth 1 (car l)))
+    (setq l (cdr l))))
+
+;;; At the present, I know Japanese and Chinese text can
+;;; break line at any point under a restriction of 'kinsoku'.
+(defvar word-across-newline "\\(\\cj\\|\\cc\\|\\ct\\)"
+  "Regular expression of such characters which can be a word across newline.")
+
+(defvar ascii-char "[\40-\176]")
+(defvar ascii-space "[ \t]")
+(defvar ascii-symbols "[\40-\57\72-\100\133-\140\173-\176]")
+(defvar ascii-numeric "[\60-\71]")
+(defvar ascii-English-Upper "[\101-\132]")
+(defvar ascii-English-Lower "[\141-\172]")
+(defvar ascii-alphanumeric "[\60-\71\101-\132\141-\172]")
+
+(defvar kanji-char "\\cj")
+(defvar kanji-space "$B!!(B")
+(defvar kanji-symbols "\\cS")
+(defvar kanji-numeric "[$B#0(B-$B#9(B]")
+(defvar kanji-English-Upper "[$B#A(B-$B#Z(B]")
+(defvar kanji-English-Lower  "[$B#a(B-$B#z(B]")
+(defvar kanji-hiragana "\\cH")
+(defvar kanji-katakana "\\cK")
+(defvar kanji-Greek-Upper "[$B&!(B-$B&8(B]")
+(defvar kanji-Greek-Lower "[$B&A(B-$B&X(B]")
+(defvar kanji-Russian-Upper "[$B'!(B-$B'A(B]")
+(defvar kanji-Russian-Lower "[$B'Q(B-$B'q(B]")
+(defvar kanji-Kanji-1st-Level  "[$B0!(B-$BOS(B]")
+(defvar kanji-Kanji-2nd-Level  "[$BP!(B-$Bt$(B]")
+
+(defvar kanji-kanji-char "\\(\\cH\\|\\cK\\|\\cC\\)")
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/mule/mule-ccl.el	Mon Aug 13 11:10:50 2007 +0200
@@ -0,0 +1,1110 @@
+;;; ccl.el --- CCL (Code Conversion Language) compiler
+
+;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
+;; Licensed to the Free Software Foundation.
+
+;; Keywords: CCL, mule, multilingual, character set, coding-system
+
+;; This file is part of X Emacs.
+
+;; GNU Emacs is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;; Synched up with: FSF 20.2
+
+;;; Commentary:
+
+;; CCL (Code Conversion Language) is a simple programming language to
+;; be used for various kind of code conversion.  CCL program is
+;; compiled to CCL code (vector of integers) and executed by CCL
+;; interpreter of Emacs.
+;;
+;; CCL is used for code conversion at process I/O and file I/O for
+;; non-standard coding-system.  In addition, it is used for
+;; calculating a code point of X's font from a character code.
+;; However, since CCL is designed as a powerful programming language,
+;; it can be used for more generic calculation.  For instance,
+;; combination of three or more arithmetic operations can be
+;; calculated faster than Emacs Lisp.
+;;
+;; Here's the syntax of CCL program in BNF notation.
+;;
+;; CCL_PROGRAM :=
+;;	(BUFFER_MAGNIFICATION
+;;	 CCL_MAIN_BLOCK
+;;	 [ CCL_EOF_BLOCK ])
+;;
+;; BUFFER_MAGNIFICATION := integer
+;; CCL_MAIN_BLOCK := CCL_BLOCK
+;; CCL_EOF_BLOCK := CCL_BLOCK
+;;
+;; CCL_BLOCK :=
+;;	STATEMENT | (STATEMENT [STATEMENT ...])
+;; STATEMENT :=
+;;	SET | IF | BRANCH | LOOP | REPEAT | BREAK | READ | WRITE | CALL
+;;
+;; SET :=
+;;	(REG = EXPRESSION)
+;;	| (REG ASSIGNMENT_OPERATOR EXPRESSION)
+;;	| integer
+;;
+;; EXPRESSION := ARG | (EXPRESSION OPERATOR ARG)
+;;
+;; IF := (if EXPRESSION CCL_BLOCK CCL_BLOCK)
+;; BRANCH := (branch EXPRESSION CCL_BLOCK [CCL_BLOCK ...])
+;; LOOP := (loop STATEMENT [STATEMENT ...])
+;; BREAK := (break)
+;; REPEAT :=
+;;	(repeat)
+;;	| (write-repeat [REG | integer | string])
+;;	| (write-read-repeat REG [integer | ARRAY])
+;; READ :=
+;;	(read REG ...)
+;;	| (read-if (REG OPERATOR ARG) CCL_BLOCK CCL_BLOCK)
+;;	| (read-branch REG CCL_BLOCK [CCL_BLOCK ...])
+;; WRITE :=
+;;	(write REG ...)
+;;	| (write EXPRESSION)
+;;	| (write integer) | (write string) | (write REG ARRAY)
+;;	| string
+;; CALL := (call ccl-program-name)
+;; END := (end)
+;;
+;; REG := r0 | r1 | r2 | r3 | r4 | r5 | r6 | r7
+;; ARG := REG | integer
+;; OPERATOR :=
+;;	+ | - | * | / | % | & | '|' | ^ | << | >> | <8 | >8 | //
+;;	| < | > | == | <= | >= | != | de-sjis | en-sjis
+;; ASSIGNMENT_OPERATOR :=
+;;	+= | -= | *= | /= | %= | &= | '|=' | ^= | <<= | >>=
+;; ARRAY := '[' interger ... ']'
+
+;;; Code:
+
+(defconst ccl-command-table
+  [if branch loop break repeat write-repeat write-read-repeat
+      read read-if read-branch write call end]
+  "*Vector of CCL commands (symbols).")
+
+;; Put a property to each symbol of CCL commands for the compiler.
+(let (op (i 0) (len (length ccl-command-table)))
+  (while (< i len)
+    (setq op (aref ccl-command-table i))
+    (put op 'ccl-compile-function (intern (format "ccl-compile-%s" op)))
+    (setq i (1+ i))))
+
+(defconst ccl-code-table
+  [set-register
+   set-short-const
+   set-const
+   set-array
+   jump
+   jump-cond
+   write-register-jump
+   write-register-read-jump
+   write-const-jump
+   write-const-read-jump
+   write-string-jump
+   write-array-read-jump
+   read-jump
+   branch
+   read-register
+   write-expr-const
+   read-branch
+   write-register
+   write-expr-register
+   call
+   write-const-string
+   write-array
+   end
+   set-assign-expr-const
+   set-assign-expr-register
+   set-expr-const
+   set-expr-register
+   jump-cond-expr-const
+   jump-cond-expr-register
+   read-jump-cond-expr-const
+   read-jump-cond-expr-register
+   ]
+  "*Vector of CCL compiled codes (symbols).")
+
+;; Put a property to each symbol of CCL codes for the disassembler.
+(let (code (i 0) (len (length ccl-code-table)))
+  (while (< i len)
+    (setq code (aref ccl-code-table i))
+    (put code 'ccl-code i)
+    (put code 'ccl-dump-function (intern (format "ccl-dump-%s" code)))
+    (setq i (1+ i))))
+
+(defconst ccl-jump-code-list
+  '(jump jump-cond write-register-jump write-register-read-jump
+    write-const-jump write-const-read-jump write-string-jump
+    write-array-read-jump read-jump))
+
+;; Put a property `jump-flag' to each CCL code which execute jump in
+;; some way.
+(let ((l ccl-jump-code-list))
+  (while l
+    (put (car l) 'jump-flag t)
+    (setq l (cdr l))))
+
+(defconst ccl-register-table
+  [r0 r1 r2 r3 r4 r5 r6 r7]
+  "*Vector of CCL registers (symbols).")
+
+;; Put a property to indicate register number to each symbol of CCL.
+;; registers.
+(let (reg (i 0) (len (length ccl-register-table)))
+  (while (< i len)
+    (setq reg (aref ccl-register-table i))
+    (put reg 'ccl-register-number i)
+    (setq i (1+ i))))
+
+(defconst ccl-arith-table
+  [+ - * / % & | ^ << >> <8 >8 // nil nil nil
+   < > == <= >= != de-sjis en-sjis]
+  "*Vector of CCL arithmetic/logical operators (symbols).")
+
+;; Put a property to each symbol of CCL operators for the compiler.
+(let (arith (i 0) (len (length ccl-arith-table)))
+  (while (< i len)
+    (setq arith (aref ccl-arith-table i))
+    (if arith (put arith 'ccl-arith-code i))
+    (setq i (1+ i))))
+
+(defconst ccl-assign-arith-table
+  [+= -= *= /= %= &= |= ^= <<= >>= <8= >8= //=]
+  "*Vector of CCL assignment operators (symbols).")
+
+;; Put a property to each symbol of CCL assignment operators for the compiler.
+(let (arith (i 0) (len (length ccl-assign-arith-table)))
+  (while (< i len)
+    (setq arith (aref ccl-assign-arith-table i))
+    (put arith 'ccl-self-arith-code i)
+    (setq i (1+ i))))
+
+(defvar ccl-program-vector nil
+  "Working vector of CCL codes produced by CCL compiler.")
+(defvar ccl-current-ic 0
+  "The current index for `ccl-program-vector'.")
+
+;; Embed integer DATA in `ccl-program-vector' at `ccl-current-ic' and
+;; increment it.  If IC is specified, embed DATA at IC.
+(defun ccl-embed-data (data &optional ic)
+  (let ((val (if (characterp data) (char-int data) data)))
+    (if ic
+	(aset ccl-program-vector ic val)
+      (aset ccl-program-vector ccl-current-ic val)
+      (setq ccl-current-ic (1+ ccl-current-ic)))))
+
+;; Embed string STR of length LEN in `ccl-program-vector' at
+;; `ccl-current-ic'.
+(defun ccl-embed-string (len str)
+  (let ((i 0))
+    (while (< i len)
+      (ccl-embed-data (logior (ash (aref str i) 16)
+			       (if (< (1+ i) len)
+				   (ash (aref str (1+ i)) 8)
+				 0)
+			       (if (< (+ i 2) len)
+				   (aref str (+ i 2))
+				 0)))
+      (setq i (+ i 3)))))
+
+;; Embed a relative jump address to `ccl-current-ic' in
+;; `ccl-program-vector' at IC without altering the other bit field.
+(defun ccl-embed-current-address (ic)
+  (let ((relative (- ccl-current-ic (1+ ic))))
+    (aset ccl-program-vector ic
+	  (logior (aref ccl-program-vector ic) (ash relative 8)))))
+
+;; Embed CCL code for the operation OP and arguments REG and DATA in
+;; `ccl-program-vector' at `ccl-current-ic' in the following format.
+;;	|----------------- integer (28-bit) ------------------|
+;;	|------------ 20-bit ------------|- 3-bit --|- 5-bit -|
+;;	|------------- DATA -------------|-- REG ---|-- OP ---|
+;; If REG2 is specified, embed a code in the following format.
+;;	|------- 17-bit ------|- 3-bit --|- 3-bit --|- 5-bit -|
+;;	|-------- DATA -------|-- REG2 --|-- REG ---|-- OP ---|
+
+;; If REG is a CCL register symbol (e.g. r0, r1...), the register
+;; number is embedded.  If OP is one of unconditional jumps, DATA is
+;; changed to an relative jump address.
+
+(defun ccl-embed-code (op reg data &optional reg2)
+  (if (and (> data 0) (get op 'jump-flag))
+      ;; DATA is an absolute jump address.  Make it relative to the
+      ;; next of jump code.
+      (setq data (- data (1+ ccl-current-ic))))
+  (let ((code (logior (get op 'ccl-code)
+		      (ash
+		       (if (symbolp reg) (get reg 'ccl-register-number) reg) 5)
+		      (if reg2
+			  (logior (ash (get reg2 'ccl-register-number) 8)
+				  (ash data 11))
+			(ash data 8)))))
+    (aset ccl-program-vector ccl-current-ic code)
+    (setq ccl-current-ic (1+ ccl-current-ic))))
+
+;; Just advance `ccl-current-ic' by INC.
+(defun ccl-increment-ic (inc)
+  (setq ccl-current-ic (+ ccl-current-ic inc)))
+
+;;;###autoload
+(defun ccl-program-p (obj)
+  "T if OBJECT is a valid CCL compiled code."
+  (and (vectorp obj)
+       (let ((i 0) (len (length obj)) (flag t))
+	 (if (> len 1)
+	     (progn
+	       (while (and flag (< i len))
+		 (setq flag (integerp (aref obj i)))
+		 (setq i (1+ i)))
+	       flag)))))
+
+;; If non-nil, index of the start of the current loop.
+(defvar ccl-loop-head nil)
+;; If non-nil, list of absolute addresses of the breaking points of
+;; the current loop.
+(defvar ccl-breaks nil)
+
+;;;###autoload
+(defun ccl-compile (ccl-program)
+  "Return a compiled code of CCL-PROGRAM as a vector of integer."
+  (if (or (null (consp ccl-program))
+	  (null (integer-or-char-p (car ccl-program)))
+	  (null (listp (car (cdr ccl-program)))))
+      (error "CCL: Invalid CCL program: %s" ccl-program))
+  (if (null (vectorp ccl-program-vector))
+      (setq ccl-program-vector (make-vector 8192 0)))
+  (setq ccl-loop-head nil ccl-breaks nil)
+  (setq ccl-current-ic 0)
+
+  ;; The first element is the buffer magnification.
+  (ccl-embed-data (car ccl-program))
+
+  ;; The second element is the address of the start CCL code for
+  ;; processing end of input buffer (we call it eof-processor).  We
+  ;; set it later.
+  (ccl-increment-ic 1)
+
+  ;; Compile the main body of the CCL program.
+  (ccl-compile-1 (car (cdr ccl-program)))
+
+  ;; Embed the address of eof-processor.
+  (ccl-embed-data ccl-current-ic 1)
+
+  ;; Then compile eof-processor.
+  (if (nth 2 ccl-program)
+      (ccl-compile-1 (nth 2 ccl-program)))
+
+  ;; At last, embed termination code.
+  (ccl-embed-code 'end 0 0)
+
+  (let ((vec (make-vector ccl-current-ic 0))
+	(i 0))
+    (while (< i ccl-current-ic)
+      (aset vec i (aref ccl-program-vector i))
+      (setq i (1+ i)))
+    vec))
+
+;; Signal syntax error.
+(defun ccl-syntax-error (cmd)
+  (error "CCL: Syntax error: %s" cmd))
+
+;; Check if ARG is a valid CCL register.
+(defun ccl-check-register (arg cmd)
+  (if (get arg 'ccl-register-number)
+      arg
+    (error "CCL: Invalid register %s in %s." arg cmd)))
+
+;; Check if ARG is a valid CCL command.
+(defun ccl-check-compile-function (arg cmd)
+  (or (get arg 'ccl-compile-function)
+      (error "CCL: Invalid command: %s" cmd)))
+
+;; In the following code, most ccl-compile-XXXX functions return t if
+;; they end with unconditional jump, else return nil.
+
+;; Compile CCL-BLOCK (see the syntax above).
+(defun ccl-compile-1 (ccl-block)
+  (let (unconditional-jump
+	cmd)
+    (if (or (integer-or-char-p ccl-block)
+	    (stringp ccl-block)
+	    (and ccl-block (symbolp (car ccl-block))))
+	;; This block consists of single statement.
+	(setq ccl-block (list ccl-block)))
+
+    ;; Now CCL-BLOCK is a list of statements.  Compile them one by
+    ;; one.
+    (while ccl-block
+      (setq cmd (car ccl-block))
+      (setq unconditional-jump
+	    (cond ((integer-or-char-p cmd)
+		   ;; SET statement for the register 0.
+		   (ccl-compile-set (list 'r0 '= cmd)))
+
+		  ((stringp cmd)
+		   ;; WRITE statement of string argument.
+		   (ccl-compile-write-string cmd))
+
+		  ((listp cmd)
+		   ;; The other statements.
+		   (cond ((eq (nth 1 cmd) '=)
+			  ;; SET statement of the form `(REG = EXPRESSION)'.
+			  (ccl-compile-set cmd))
+
+			 ((and (symbolp (nth 1 cmd))
+			       (get (nth 1 cmd) 'ccl-self-arith-code))
+			  ;; SET statement with an assignment operation.
+			  (ccl-compile-self-set cmd))
+
+			 (t
+			  (funcall (ccl-check-compile-function (car cmd) cmd)
+				   cmd))))
+
+		  (t
+		   (ccl-syntax-error cmd))))
+      (setq ccl-block (cdr ccl-block)))
+    unconditional-jump))
+
+(defconst ccl-max-short-const (ash 1 19))
+(defconst ccl-min-short-const (ash -1 19))
+
+;; Compile SET statement.
+(defun ccl-compile-set (cmd)
+  (let ((rrr (ccl-check-register (car cmd) cmd))
+	(right (nth 2 cmd)))
+    (cond ((listp right)
+	   ;; CMD has the form `(RRR = (XXX OP YYY))'.
+	   (ccl-compile-expression rrr right))
+
+	  ((integer-or-char-p right)
+	   ;; CMD has the form `(RRR = integer)'.
+	   (if (and (<= right ccl-max-short-const)
+		    (>= right ccl-min-short-const))
+	       (ccl-embed-code 'set-short-const rrr right)
+	     (ccl-embed-code 'set-const rrr 0)
+	     (ccl-embed-data right)))
+
+	  (t
+	   ;; CMD has the form `(RRR = rrr [ array ])'.
+	   (ccl-check-register right cmd)
+	   (let ((ary (nth 3 cmd)))
+	     (if (vectorp ary)
+		 (let ((i 0) (len (length ary)))
+		   (ccl-embed-code 'set-array rrr len right)
+		   (while (< i len)
+		     (ccl-embed-data (aref ary i))
+		     (setq i (1+ i))))
+	       (ccl-embed-code 'set-register rrr 0 right))))))
+  nil)
+
+;; Compile SET statement with ASSIGNMENT_OPERATOR.
+(defun ccl-compile-self-set (cmd)
+  (let ((rrr (ccl-check-register (car cmd) cmd))
+	(right (nth 2 cmd)))
+    (if (listp right)
+	;; CMD has the form `(RRR ASSIGN_OP (XXX OP YYY))', compile
+	;; the right hand part as `(r7 = (XXX OP YYY))' (note: the
+	;; register 7 can be used for storing temporary value).
+	(progn
+	  (ccl-compile-expression 'r7 right)
+	  (setq right 'r7)))
+    ;; Now CMD has the form `(RRR ASSIGN_OP ARG)'.  Compile it as
+    ;; `(RRR = (RRR OP ARG))'.
+    (ccl-compile-expression
+     rrr
+     (list rrr (intern (substring (symbol-name (nth 1 cmd)) 0 -1)) right)))
+  nil)
+
+;; Compile SET statement of the form `(RRR = EXPR)'.
+(defun ccl-compile-expression (rrr expr)
+  (let ((left (car expr))
+	(op (get (nth 1 expr) 'ccl-arith-code))
+	(right (nth 2 expr)))
+    (if (listp left)
+	(progn
+	  ;; EXPR has the form `((EXPR2 OP2 ARG) OP RIGHT)'.  Compile
+	  ;; the first term as `(r7 = (EXPR2 OP2 ARG)).'
+	  (ccl-compile-expression 'r7 left)
+	  (setq left 'r7)))
+
+    ;; Now EXPR has the form (LEFT OP RIGHT).
+    (if (eq rrr left)
+	;; Compile this SET statement as `(RRR OP= RIGHT)'.
+	(if (integer-or-char-p right)
+	    (progn
+	      (ccl-embed-code 'set-assign-expr-const rrr (ash op 3) 'r0)
+	      (ccl-embed-data right))
+	  (ccl-check-register right expr)
+	  (ccl-embed-code 'set-assign-expr-register rrr (ash op 3) right))
+
+      ;; Compile this SET statement as `(RRR = (LEFT OP RIGHT))'.
+      (if (integer-or-char-p right)
+	  (progn
+	    (ccl-embed-code 'set-expr-const rrr (ash op 3) left)
+	    (ccl-embed-data right))
+	(ccl-check-register right expr)
+	(ccl-embed-code 'set-expr-register
+			rrr
+			(logior (ash op 3) (get right 'ccl-register-number))
+			left)))))
+
+;; Compile WRITE statement with string argument.
+(defun ccl-compile-write-string (str)
+  (let ((len (length str)))
+    (ccl-embed-code 'write-const-string 1 len)
+    (ccl-embed-string len str))
+  nil)
+
+;; Compile IF statement of the form `(if CONDITION TRUE-PART FALSE-PART)'.
+;; If READ-FLAG is non-nil, this statement has the form
+;; `(read-if (REG OPERATOR ARG) TRUE-PART FALSE-PART)'.
+(defun ccl-compile-if (cmd &optional read-flag)
+  (if (and (/= (length cmd) 3) (/= (length cmd) 4))
+      (error "CCL: Invalid number of arguments: %s" cmd))
+  (let ((condition (nth 1 cmd))
+	(true-cmds (nth 2 cmd))
+	(false-cmds (nth 3 cmd))
+	jump-cond-address
+	false-ic)
+    (if (and (listp condition)
+	     (listp (car condition)))
+	;; If CONDITION is a nested expression, the inner expression
+	;; should be compiled at first as SET statement, i.e.:
+	;; `(if ((X OP2 Y) OP Z) ...)' is compiled into two statements:
+	;; `(r7 = (X OP2 Y)) (if (r7 OP Z) ...)'.
+	(progn
+	  (ccl-compile-expression 'r7 (car condition))
+	  (setq condition (cons 'r7 (cdr condition)))
+	  (setq cmd (cons (car cmd)
+			  (cons condition (cdr (cdr cmd)))))))
+
+    (setq jump-cond-address ccl-current-ic)
+    ;; Compile CONDITION.
+    (if (symbolp condition)
+	;; CONDITION is a register.
+	(progn
+	  (ccl-check-register condition cmd)
+	  (ccl-embed-code 'jump-cond condition 0))
+      ;; CONDITION is a simple expression of the form (RRR OP ARG).
+      (let ((rrr (car condition))
+	    (op (get (nth 1 condition) 'ccl-arith-code))
+	    (arg (nth 2 condition)))
+	(ccl-check-register rrr cmd)
+	(if (integer-or-char-p arg)
+	    (progn
+	      (ccl-embed-code (if read-flag 'read-jump-cond-expr-const
+				'jump-cond-expr-const)
+			      rrr 0)
+	      (ccl-embed-data op)
+	      (ccl-embed-data arg))
+	  (ccl-check-register arg cmd)
+	  (ccl-embed-code (if read-flag 'read-jump-cond-expr-register 
+			    'jump-cond-expr-register)
+			  rrr 0)
+	  (ccl-embed-data op)
+	  (ccl-embed-data (get arg 'ccl-register-number)))))
+
+    ;; Compile TRUE-PART.
+    (let ((unconditional-jump (ccl-compile-1 true-cmds)))
+      (if (null false-cmds)
+	  ;; This is the place to jump to if condition is false.
+	  (ccl-embed-current-address jump-cond-address)
+	(let (end-true-part-address)
+	  (if (not unconditional-jump)
+	      (progn
+		;; If TRUE-PART does not end with unconditional jump, we
+		;; have to jump to the end of FALSE-PART from here.
+		(setq end-true-part-address ccl-current-ic)
+		(ccl-embed-code 'jump 0 0)))
+	  ;; This is the place to jump to if CONDITION is false.
+	  (ccl-embed-current-address jump-cond-address)
+	  ;; Compile FALSE-PART.
+	  (setq unconditional-jump
+		(and (ccl-compile-1 false-cmds) unconditional-jump))
+	  (if end-true-part-address
+	      ;; This is the place to jump to after the end of TRUE-PART.
+	      (ccl-embed-current-address end-true-part-address))))
+      unconditional-jump)))
+
+;; Compile BRANCH statement.
+(defun ccl-compile-branch (cmd)
+  (if (< (length cmd) 3)
+      (error "CCL: Invalid number of arguments: %s" cmd))
+  (ccl-compile-branch-blocks 'branch
+			     (ccl-compile-branch-expression (nth 1 cmd) cmd)
+			     (cdr (cdr cmd))))
+
+;; Compile READ statement of the form `(read-branch EXPR BLOCK0 BLOCK1 ...)'.
+(defun ccl-compile-read-branch (cmd)
+  (if (< (length cmd) 3)
+      (error "CCL: Invalid number of arguments: %s" cmd))
+  (ccl-compile-branch-blocks 'read-branch
+			     (ccl-compile-branch-expression (nth 1 cmd) cmd)
+			     (cdr (cdr cmd))))
+
+;; Compile EXPRESSION part of BRANCH statement and return register
+;; which holds a value of the expression.
+(defun ccl-compile-branch-expression (expr cmd)
+  (if (listp expr)
+      ;; EXPR has the form `(EXPR2 OP ARG)'.  Compile it as SET
+      ;; statement of the form `(r7 = (EXPR2 OP ARG))'.
+      (progn
+	(ccl-compile-expression 'r7 expr)
+	'r7)
+    (ccl-check-register expr cmd)))
+
+;; Compile BLOCKs of BRANCH statement.  CODE is 'branch or 'read-branch.
+;; REG is a register which holds a value of EXPRESSION part.  BLOCKs
+;; is a list of CCL-BLOCKs.
+(defun ccl-compile-branch-blocks (code rrr blocks)
+  (let ((branches (length blocks))
+	branch-idx
+	jump-table-head-address
+	empty-block-indexes
+	block-tail-addresses
+	block-unconditional-jump)
+    (ccl-embed-code code rrr branches)
+    (setq jump-table-head-address ccl-current-ic)
+    ;; The size of jump table is the number of blocks plus 1 (for the
+    ;; case RRR is out of range).
+    (ccl-increment-ic (1+ branches))
+    (setq empty-block-indexes (list branches))
+    ;; Compile each block.
+    (setq branch-idx 0)
+    (while blocks
+      (if (null (car blocks))
+	  ;; This block is empty.
+	  (setq empty-block-indexes (cons branch-idx empty-block-indexes)
+		block-unconditional-jump t)
+	;; This block is not empty.
+	(ccl-embed-data (- ccl-current-ic jump-table-head-address)
+			(+ jump-table-head-address branch-idx))
+	(setq block-unconditional-jump (ccl-compile-1 (car blocks)))
+	(if (not block-unconditional-jump)
+	    (progn
+	      ;; Jump address of the end of branches are embedded later.
+	      ;; For the moment, just remember where to embed them.
+	      (setq block-tail-addresses
+		    (cons ccl-current-ic block-tail-addresses))
+	      (ccl-embed-code 'jump 0 0))))
+      (setq branch-idx (1+ branch-idx))
+      (setq blocks (cdr blocks)))
+    (if (not block-unconditional-jump)
+	;; We don't need jump code at the end of the last block.
+	(setq block-tail-addresses (cdr block-tail-addresses)
+	      ccl-current-ic (1- ccl-current-ic)))
+    ;; Embed jump address at the tailing jump commands of blocks.
+    (while block-tail-addresses
+      (ccl-embed-current-address (car block-tail-addresses))
+      (setq block-tail-addresses (cdr block-tail-addresses)))
+    ;; For empty blocks, make entries in the jump table point directly here.
+    (while empty-block-indexes
+      (ccl-embed-data (- ccl-current-ic jump-table-head-address)
+		      (+ jump-table-head-address (car empty-block-indexes)))
+      (setq empty-block-indexes (cdr empty-block-indexes))))
+  ;; Branch command ends by unconditional jump if RRR is out of range.
+  nil)
+
+;; Compile LOOP statement.
+(defun ccl-compile-loop (cmd)
+  (if (< (length cmd) 2)
+      (error "CCL: Invalid number of arguments: %s" cmd))
+  (let* ((ccl-loop-head ccl-current-ic)
+	 (ccl-breaks nil)
+	 unconditional-jump)
+    (setq cmd (cdr cmd))
+    (if cmd
+	(progn
+	  (setq unconditional-jump t)
+	  (while cmd
+	    (setq unconditional-jump
+		  (and (ccl-compile-1 (car cmd)) unconditional-jump))
+	    (setq cmd (cdr cmd)))
+	  (if (not ccl-breaks)
+	      unconditional-jump
+	    ;; Embed jump address for break statements encountered in
+	    ;; this loop.
+	    (while ccl-breaks
+	      (ccl-embed-current-address (car ccl-breaks))
+	      (setq ccl-breaks (cdr ccl-breaks))))
+	  nil))))
+
+;; Compile BREAK statement.
+(defun ccl-compile-break (cmd)
+  (if (/= (length cmd) 1)
+      (error "CCL: Invalid number of arguments: %s" cmd))
+  (if (null ccl-loop-head)
+      (error "CCL: No outer loop: %s" cmd))
+  (setq ccl-breaks (cons ccl-current-ic ccl-breaks))
+  (ccl-embed-code 'jump 0 0)
+  t)
+
+;; Compile REPEAT statement.
+(defun ccl-compile-repeat (cmd)
+  (if (/= (length cmd) 1)
+      (error "CCL: Invalid number of arguments: %s" cmd))
+  (if (null ccl-loop-head)
+      (error "CCL: No outer loop: %s" cmd))
+  (ccl-embed-code 'jump 0 ccl-loop-head)
+  t)
+
+;; Compile WRITE-REPEAT statement.
+(defun ccl-compile-write-repeat (cmd)
+  (if (/= (length cmd) 2)
+      (error "CCL: Invalid number of arguments: %s" cmd))
+  (if (null ccl-loop-head)
+      (error "CCL: No outer loop: %s" cmd))
+  (let ((arg (nth 1 cmd)))
+    (cond ((integer-or-char-p arg)
+	   (ccl-embed-code 'write-const-jump 0 ccl-loop-head)
+	   (ccl-embed-data arg))
+	  ((stringp arg)
+	   (let ((len (length arg))
+		 (i 0))
+	     (ccl-embed-code 'write-string-jump 0 ccl-loop-head)
+	     (ccl-embed-data len)
+	     (ccl-embed-string len arg)))
+	  (t
+	   (ccl-check-register arg cmd)
+	   (ccl-embed-code 'write-register-jump arg ccl-loop-head))))
+  t)
+
+;; Compile WRITE-READ-REPEAT statement.
+(defun ccl-compile-write-read-repeat (cmd)
+  (if (or (< (length cmd) 2) (> (length cmd) 3))
+      (error "CCL: Invalid number of arguments: %s" cmd))
+  (if (null ccl-loop-head)
+      (error "CCL: No outer loop: %s" cmd))
+  (let ((rrr (ccl-check-register (nth 1 cmd) cmd))
+	(arg (nth 2 cmd)))
+    (cond ((null arg)
+	   (ccl-embed-code 'write-register-read-jump rrr ccl-loop-head))
+	  ((integer-or-char-p arg)
+	   (ccl-embed-code 'write-const-read-jump rrr arg ccl-loop-head))
+	  ((vectorp arg)
+	   (let ((len (length arg))
+		 (i 0))
+	     (ccl-embed-code 'write-array-read-jump rrr ccl-loop-head)
+	     (ccl-embed-data len)
+	     (while (< i len)
+	       (ccl-embed-data (aref arg i))
+	       (setq i (1+ i)))))
+	  (t
+	   (error "CCL: Invalid argument %s: %s" arg cmd)))
+    (ccl-embed-code 'read-jump rrr ccl-loop-head))
+  t)
+			    
+;; Compile READ statement.
+(defun ccl-compile-read (cmd)
+  (if (< (length cmd) 2)
+      (error "CCL: Invalid number of arguments: %s" cmd))
+  (let* ((args (cdr cmd))
+	 (i (1- (length args))))
+    (while args
+      (let ((rrr (ccl-check-register (car args) cmd)))
+	(ccl-embed-code 'read-register rrr i)
+	(setq args (cdr args) i (1- i)))))
+  nil)
+
+;; Compile READ-IF statement.
+(defun ccl-compile-read-if (cmd)
+  (ccl-compile-if cmd 'read))
+
+;; Compile WRITE statement.
+(defun ccl-compile-write (cmd)
+  (if (< (length cmd) 2)
+      (error "CCL: Invalid number of arguments: %s" cmd))
+  (let ((rrr (nth 1 cmd)))
+    (cond ((integer-or-char-p rrr)
+	   (ccl-embed-code 'write-const-string 0 rrr))
+	  ((stringp rrr)
+	   (ccl-compile-write-string rrr))
+	  ((and (symbolp rrr) (vectorp (nth 2 cmd)))
+	   (ccl-check-register rrr cmd)
+	   ;; CMD has the form `(write REG ARRAY)'.
+	   (let* ((arg (nth 2 cmd))
+		  (len (length arg))
+		  (i 0))
+	     (ccl-embed-code 'write-array rrr len)
+	     (while (< i len)
+	       (if (not (integer-or-char-p (aref arg i)))
+		   (error "CCL: Invalid argument %s: %s" arg cmd))
+	       (ccl-embed-data (aref arg i))
+	       (setq i (1+ i)))))
+
+	  ((symbolp rrr)
+	   ;; CMD has the form `(write REG ...)'.
+	   (let* ((args (cdr cmd))
+		  (i (1- (length args))))
+	     (while args
+	       (setq rrr (ccl-check-register (car args) cmd))
+	       (ccl-embed-code 'write-register rrr i)
+	       (setq args (cdr args) i (1- i)))))
+
+	  ((listp rrr)
+	   ;; CMD has the form `(write (LEFT OP RIGHT))'.
+	   (let ((left (car rrr))
+		 (op (get (nth 1 rrr) 'ccl-arith-code))
+		 (right (nth 2 rrr)))
+	     (if (listp left)
+		 (progn
+		   ;; RRR has the form `((EXPR OP2 ARG) OP RIGHT)'.
+		   ;; Compile the first term as `(r7 = (EXPR OP2 ARG))'.
+		   (ccl-compile-expression 'r7 left)
+		   (setq left 'r7)))
+	     ;; Now RRR has the form `(ARG OP RIGHT)'.
+	     (if (integer-or-char-p right)
+		 (progn
+		   (ccl-embed-code 'write-expr-const 0 (ash op 3) left)
+		   (ccl-embed-data right))
+	       (ccl-check-register right rrr)
+	       (ccl-embed-code 'write-expr-register 0
+			       (logior (ash op 3)
+				       (get right 'ccl-register-number))))))
+
+	  (t
+	   (error "CCL: Invalid argument: %s" cmd))))
+  nil)
+
+;; Compile CALL statement.
+(defun ccl-compile-call (cmd)
+  (if (/= (length cmd) 2)
+      (error "CCL: Invalid number of arguments: %s" cmd))
+  (if (not (symbolp (nth 1 cmd)))
+      (error "CCL: Subroutine should be a symbol: %s" cmd))
+  (let* ((name (nth 1 cmd))
+	 (idx (get name 'ccl-program-idx)))
+    (if (not idx)
+	(error "CCL: Unknown subroutine name: %s" name))
+    (ccl-embed-code 'call 0 idx))
+  nil)
+
+;; Compile END statement.
+(defun ccl-compile-end (cmd)
+  (if (/= (length cmd) 1)
+      (error "CCL: Invalid number of arguments: %s" cmd))
+  (ccl-embed-code 'end 0 0)
+  t)
+
+;;; CCL dump staffs
+
+;; To avoid byte-compiler warning.
+(defvar ccl-code)
+
+;;;###autoload
+(defun ccl-dump (ccl-code)
+  "Disassemble compiled CCL-CODE."
+  (let ((len (length ccl-code))
+	(buffer-mag (aref ccl-code 0)))
+    (cond ((= buffer-mag 0)
+	   (insert "Don't output anything.\n"))
+	  ((= buffer-mag 1)
+	   (insert "Out-buffer must be as large as in-buffer.\n"))
+	  (t
+	   (insert
+	    (format "Out-buffer must be %d times bigger than in-buffer.\n"
+		    buffer-mag))))
+    (insert "Main-body:\n")
+    (setq ccl-current-ic 2)
+    (if (> (aref ccl-code 1) 0)
+	(progn
+	  (while (< ccl-current-ic (aref ccl-code 1))
+	    (ccl-dump-1))
+	  (insert "At EOF:\n")))
+    (while (< ccl-current-ic len)
+      (ccl-dump-1))
+    ))
+
+;; Return a CCL code in `ccl-code' at `ccl-current-ic'.
+(defun ccl-get-next-code ()
+  (prog1
+      (aref ccl-code ccl-current-ic)
+    (setq ccl-current-ic (1+ ccl-current-ic))))
+
+(defun ccl-dump-1 ()
+  (let* ((code (ccl-get-next-code))
+	 (cmd (aref ccl-code-table (logand code 31)))
+	 (rrr (ash (logand code 255) -5))
+	 (cc (ash code -8)))
+    (insert (format "%5d:[%s] " (1- ccl-current-ic) cmd))
+    (funcall (get cmd 'ccl-dump-function) rrr cc))) 
+
+(defun ccl-dump-set-register (rrr cc)
+  (insert (format "r%d = r%d\n" rrr cc)))
+
+(defun ccl-dump-set-short-const (rrr cc)
+  (insert (format "r%d = %d\n" rrr cc)))
+
+(defun ccl-dump-set-const (rrr ignore)
+  (insert (format "r%d = %d\n" rrr (ccl-get-next-code))))
+
+(defun ccl-dump-set-array (rrr cc)
+  (let ((rrr2 (logand cc 7))
+	(len (ash cc -3))
+	(i 0))
+    (insert (format "r%d = array[r%d] of length %d\n\t"
+		    rrr rrr2 len))
+    (while (< i len)
+      (insert (format "%d " (ccl-get-next-code)))
+      (setq i (1+ i)))
+    (insert "\n")))
+
+(defun ccl-dump-jump (ignore cc &optional address)
+  (insert (format "jump to %d(" (+ (or address ccl-current-ic) cc)))
+  (if (>= cc 0)
+      (insert "+"))
+  (insert (format "%d)\n" (1+ cc))))
+
+(defun ccl-dump-jump-cond (rrr cc)
+  (insert (format "if (r%d == 0), " rrr))
+  (ccl-dump-jump nil cc))
+
+(defun ccl-dump-write-register-jump (rrr cc)
+  (insert (format "write r%d, " rrr))
+  (ccl-dump-jump nil cc))
+
+(defun ccl-dump-write-register-read-jump (rrr cc)
+  (insert (format "write r%d, read r%d, " rrr rrr))
+  (ccl-dump-jump nil cc)
+  (ccl-get-next-code)			; Skip dummy READ-JUMP
+  )
+
+(defun ccl-extract-arith-op (cc)
+  (aref ccl-arith-table (ash cc -6)))
+
+(defun ccl-dump-write-expr-const (ignore cc)
+  (insert (format "write (r%d %s %d)\n"
+		  (logand cc 7)
+		  (ccl-extract-arith-op cc)
+		  (ccl-get-next-code))))
+
+(defun ccl-dump-write-expr-register (ignore cc)
+  (insert (format "write (r%d %s r%d)\n"
+		  (logand cc 7)
+		  (ccl-extract-arith-op cc)
+		  (logand (ash cc -3) 7))))
+
+(defun ccl-dump-insert-char (cc)
+  (cond ((= cc ?\t) (insert " \"^I\""))
+	((= cc ?\n) (insert " \"^J\""))
+	(t (insert (format " \"%c\"" cc)))))
+
+(defun ccl-dump-write-const-jump (ignore cc)
+  (let ((address ccl-current-ic))
+    (insert "write char")
+    (ccl-dump-insert-char (ccl-get-next-code))
+    (insert ", ")
+    (ccl-dump-jump nil cc address)))
+
+(defun ccl-dump-write-const-read-jump (rrr cc)
+  (let ((address ccl-current-ic))
+    (insert "write char")
+    (ccl-dump-insert-char (ccl-get-next-code))
+    (insert (format ", read r%d, " rrr))
+    (ccl-dump-jump cc address)
+    (ccl-get-next-code)			; Skip dummy READ-JUMP
+    ))
+
+(defun ccl-dump-write-string-jump (ignore cc)
+  (let ((address ccl-current-ic)
+	(len (ccl-get-next-code))
+	(i 0))
+    (insert "write \"")
+    (while (< i len)
+      (let ((code (ccl-get-next-code)))
+	(insert (ash code -16))
+	(if (< (1+ i) len) (insert (logand (ash code -8) 255)))
+	(if (< (+ i 2) len) (insert (logand code 255))))
+      (setq i (+ i 3)))
+    (insert "\", ")
+    (ccl-dump-jump nil cc address)))
+
+(defun ccl-dump-write-array-read-jump (rrr cc)
+  (let ((address ccl-current-ic)
+	(len (ccl-get-next-code))
+	(i 0))
+    (insert (format "write array[r%d] of length %d,\n\t" rrr len))
+    (while (< i len)
+      (ccl-dump-insert-char (ccl-get-next-code))
+      (setq i (1+ i)))
+    (insert (format "\n\tthen read r%d, " rrr))
+    (ccl-dump-jump nil cc address)
+    (ccl-get-next-code)			; Skip dummy READ-JUMP.
+    ))
+
+(defun ccl-dump-read-jump (rrr cc)
+  (insert (format "read r%d, " rrr))
+  (ccl-dump-jump nil cc))
+
+(defun ccl-dump-branch (rrr len)
+  (let ((jump-table-head ccl-current-ic)
+	(i 0))
+    (insert (format "jump to array[r%d] of length %d\n\t" rrr len))
+    (while (<= i len)
+      (insert (format "%d " (+ jump-table-head (ccl-get-next-code))))
+      (setq i (1+ i)))
+    (insert "\n")))
+
+(defun ccl-dump-read-register (rrr cc)
+  (insert (format "read r%d (%d remaining)\n" rrr cc)))
+
+(defun ccl-dump-read-branch (rrr len)
+  (insert (format "read r%d, " rrr))
+  (ccl-dump-branch rrr len))
+
+(defun ccl-dump-write-register (rrr cc)
+  (insert (format "write r%d (%d remaining)\n" rrr cc)))
+
+(defun ccl-dump-call (ignore cc)
+  (insert (format "call subroutine #%d\n" cc)))
+
+(defun ccl-dump-write-const-string (rrr cc)
+  (if (= rrr 0)
+      (progn
+	(insert "write char")
+	(ccl-dump-insert-char cc)
+	(newline))
+    (let ((len cc)
+	  (i 0))
+      (insert "write \"")
+      (while (< i len)
+	(let ((code (ccl-get-next-code)))
+	  (insert (format "%c" (lsh code -16)))
+	  (if (< (1+ i) len)
+	      (insert (format "%c" (logand (lsh code -8) 255))))
+	  (if (< (+ i 2) len)
+	      (insert (format "%c" (logand code 255))))
+	  (setq i (+ i 3))))
+      (insert "\"\n"))))
+
+(defun ccl-dump-write-array (rrr cc)
+  (let ((i 0))
+    (insert (format "write array[r%d] of length %d\n\t" rrr cc))
+    (while (< i cc)
+      (ccl-dump-insert-char (ccl-get-next-code))
+      (setq i (1+ i)))
+    (insert "\n")))
+
+(defun ccl-dump-end (&rest ignore)
+  (insert "end\n"))
+
+(defun ccl-dump-set-assign-expr-const (rrr cc)
+  (insert (format "r%d %s= %d\n"
+		  rrr
+		  (ccl-extract-arith-op cc)
+		  (ccl-get-next-code))))
+
+(defun ccl-dump-set-assign-expr-register (rrr cc)
+  (insert (format "r%d %s= r%d\n"
+		  rrr
+		  (ccl-extract-arith-op cc)
+		  (logand cc 7))))
+
+(defun ccl-dump-set-expr-const (rrr cc)
+  (insert (format "r%d = r%d %s %d\n"
+		  rrr
+		  (logand cc 7)
+		  (ccl-extract-arith-op cc)
+		  (ccl-get-next-code))))
+
+(defun ccl-dump-set-expr-register (rrr cc)
+  (insert (format "r%d = r%d %s r%d\n"
+		  rrr
+		  (logand cc 7)
+		  (ccl-extract-arith-op cc)
+		  (logand (ash cc -3) 7))))
+
+(defun ccl-dump-jump-cond-expr-const (rrr cc)
+  (let ((address ccl-current-ic))
+    (insert (format "if !(r%d %s %d), "
+		    rrr
+		    (aref ccl-arith-table (ccl-get-next-code))
+		    (ccl-get-next-code)))
+    (ccl-dump-jump nil cc address)))
+
+(defun ccl-dump-jump-cond-expr-register (rrr cc)
+  (let ((address ccl-current-ic))
+    (insert (format "if !(r%d %s r%d), "
+		    rrr
+		    (aref ccl-arith-table (ccl-get-next-code))
+		    (ccl-get-next-code)))
+    (ccl-dump-jump nil cc address)))
+
+(defun ccl-dump-read-jump-cond-expr-const (rrr cc)
+  (insert (format "read r%d, " rrr))
+  (ccl-dump-jump-cond-expr-const rrr cc))
+
+(defun ccl-dump-read-jump-cond-expr-register (rrr cc)
+  (insert (format "read r%d, " rrr))
+  (ccl-dump-jump-cond-expr-register rrr cc))
+
+(defun ccl-dump-binary (ccl-code)
+  (let ((len (length ccl-code))
+	(i 2))
+    (while (< i len)
+      (let ((code (aref ccl-code i))
+	    (j 27))
+	(while (>= j 0)
+	  (insert (if (= (logand code (ash 1 j)) 0) ?0 ?1))
+	  (setq j (1- j)))
+	(setq code (logand code 31))
+	(if (< code (length ccl-code-table))
+	    (insert (format ":%s" (aref ccl-code-table code))))
+	(insert "\n"))
+      (setq i (1+ i)))))
+
+;; CCL emulation staffs 
+
+;; Not yet implemented.
+
+;;;###autoload
+(defmacro declare-ccl-program (name)
+  "Declare NAME as a name of CCL program.
+
+To compile a CCL program which calls another CCL program not yet
+defined, it must be declared as a CCL program in advance."
+  `(put ',name 'ccl-program-idx (register-ccl-program ',name nil)))
+
+;;;###autoload
+(defmacro define-ccl-program (name ccl-program &optional doc)
+  "Set NAME the compiled code of CCL-PROGRAM.
+CCL-PROGRAM is `eval'ed before being handed to the CCL compiler `ccl-compile'.
+The compiled code is a vector of integers."
+  `(let ((prog ,(ccl-compile (eval ccl-program))))
+     (defconst ,name prog ,doc)
+     (put ',name 'ccl-program-idx (register-ccl-program ',name prog))
+     nil))
+
+;;;###autoload
+(defun ccl-execute-with-args (ccl-prog &rest args)
+  "Execute CCL-PROGRAM with registers initialized by the remaining args.
+The return value is a vector of resulting CCL registeres."
+  (let ((reg (make-vector 8 0))
+	(i 0))
+    (while (and args (< i 8))
+      (if (not (integerp (car args)))
+	  (error "Arguments should be integer"))
+      (aset reg i (car args))
+      (setq args (cdr args) i (1+ i)))
+    (ccl-execute ccl-prog reg)
+    reg))
+
+(provide 'ccl)
+
+;; ccl.el ends here
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/mule/mule-charset.el	Mon Aug 13 11:10:50 2007 +0200
@@ -0,0 +1,142 @@
+;;; mule-charset.el --- Charset functions for Mule.
+;; Copyright (C) 1992 Free Software Foundation, Inc.
+;; Copyright (C) 1995 Amdahl Corporation.
+;; Copyright (C) 1996 Sun Microsystems.
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the 
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+
+;;;; Composite character support
+
+(defun compose-region (start end &optional buffer)
+  "Compose characters in the current region into one composite character.
+From a Lisp program, pass two arguments, START to END.
+The composite character replaces the composed characters.
+BUFFER defaults to the current buffer if omitted."
+  (interactive "r")
+  (let ((ch (make-composite-char (buffer-substring start end buffer))))
+    (delete-region start end buffer)
+    (insert-char ch nil nil buffer)))
+
+(defun decompose-region (start end &optional buffer)
+  "Decompose any composite characters in the current region.
+From a Lisp program, pass two arguments, START to END.
+This converts each composite character into one or more characters,
+the individual characters out of which the composite character was formed.
+Non-composite characters are left as-is.  BUFFER defaults to the current
+buffer if omitted."
+  (interactive "r")
+  (save-excursion
+    (set-buffer buffer)
+    (save-restriction
+      (narrow-to-region start end)
+      (goto-char (point-min))
+      (let ((compcharset (get-charset 'composite)))
+	(while (< (point) (point-max))
+	  (let ((ch (char-after (point))))
+	    (if (eq compcharset (char-charset ch))
+		(progn
+		  (delete-char 1)
+		  (insert (composite-char-string ch))))))))))
+
+
+;;;; Classifying text according to charsets
+
+(defun charsets-in-region (start end &optional buffer)
+  "Return a list of the charsets in the region between START and END.
+BUFFER defaults to the current buffer if omitted."
+  (let (list)
+    (save-excursion
+      (if buffer
+	  (set-buffer buffer))
+      (save-restriction
+	(narrow-to-region start end)
+	(goto-char (point-min))
+	(while (not (eobp))
+	  (let* (prev-charset
+		 (ch (char-after (point)))
+		 (charset (char-charset ch)))
+	    (if (not (eq prev-charset charset))
+		(progn
+		  (setq prev-charset charset)
+		  (or (memq charset list)
+		      (setq list (cons charset list))))))
+	  (forward-char))))
+    list))
+
+(defun charsets-in-string (string)
+  "Return a list of the charsets in STRING."
+  (let ((i 0)
+ 	(len (length string))
+ 	prev-charset charset list)
+    (while (< i len)
+      (setq charset (char-charset (aref string i)))
+      (if (not (eq prev-charset charset))
+ 	  (progn
+ 	    (setq prev-charset charset)
+ 	    (or (memq charset list)
+ 		(setq list (cons charset list)))))
+      (setq i (1+ i)))
+    list))
+
+
+;;;; Charset accessors
+
+(defun charset-graphic (charset)
+  "Return the `graphic' property of CHARSET.
+See `make-charset'."
+  (charset-property charset 'graphic))
+
+(defun charset-final (charset)
+  "Return the final byte of the ISO 2022 escape sequence designating CHARSET."
+  (charset-property charset 'final))
+
+(defun charset-chars (charset)
+  "Return the number of characters per dimension of CHARSET."
+  (charset-property charset 'chars))
+
+(defun charset-columns (charset)
+  "Return the number of display columns per character of CHARSET.
+This only applies to TTY mode (under X, the actual display width can
+be automatically determined)."
+  (charset-property charset 'columns))
+
+(defun charset-direction (charset)
+  "Return the display direction (`l2r' or `r2l') of CHARSET."
+  (charset-property charset 'direction))
+
+(defun charset-registry (charset)
+  "Return the registry of CHARSET.
+This is a regular expression matching the registry field of fonts
+that can display the characters in CHARSET."
+  (charset-property charset 'registry))
+
+(defun charset-ccl-program (charset)
+  "Return the CCL program of CHARSET.
+See `make-charset'."
+  (charset-property charset 'ccl-program))
+
+(defun charset-leading-byte (charset)
+  "Return the leading byte of CHARSET.
+See `make-charset'."
+  (charset-property charset 'leading-byte))
+
+;;;; Define setf methods for all settable Charset properties
+
+(defsetf charset-registry    set-charset-registry)
+(defsetf charset-ccl-program set-charset-ccl-program)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/mule/mule-cmds.el	Mon Aug 13 11:10:50 2007 +0200
@@ -0,0 +1,706 @@
+;;; mule-cmds.el --- Commands for multilingual environment
+
+;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
+;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1997 MORIOKA Tomohiko
+
+;; Keywords: mule, multilingual
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; Code:
+
+;;; MULE related key bindings and menus.
+
+(defvar mule-keymap (make-sparse-keymap "MULE")
+  "Keymap for MULE (Multilingual environment) specific commands.")
+
+;; Keep "C-x C-m ..." for mule specific commands.
+(define-key ctl-x-map "\C-m" mule-keymap)
+
+(define-key mule-keymap "f" 'set-buffer-file-coding-system)
+(define-key mule-keymap "F" 'set-default-buffer-file-coding-system) ; XEmacs
+(define-key mule-keymap "t" 'set-terminal-coding-system)
+(define-key mule-keymap "k" 'set-keyboard-coding-system)
+(define-key mule-keymap "p" 'set-buffer-process-coding-system)
+(define-key mule-keymap "\C-\\" 'select-input-method)
+(define-key mule-keymap "c" 'universal-coding-system-argument)
+;;(define-key mule-keymap "c" 'list-coding-system-briefly) ; XEmacs
+(define-key mule-keymap "C" 'list-coding-system)	 ; XEmacs
+(define-key mule-keymap "r" 'toggle-display-direction)	 ; XEmacs
+(define-key mule-keymap "l" 'set-language-environment)
+
+(define-key help-map "\C-L" 'describe-language-support)
+(define-key help-map "L" 'describe-language-environment)
+(define-key help-map "\C-\\" 'describe-input-method)
+(define-key help-map "I" 'describe-input-method)
+(define-key help-map "C" 'describe-coding-system)
+(define-key help-map "h" 'view-hello-file)
+
+;; Menu for XEmacs were moved to menubar-items.el.
+
+
+;; This should be a single character key binding because users use it
+;; very frequently while editing multilingual text.  Now we can use
+;; only two such keys: "\C-\\" and "\C-^", but the latter is not
+;; convenient because it requires shifting on most keyboards.  An
+;; alternative is "\C-\]" which is now bound to `abort-recursive-edit'
+;; but it won't be used that frequently.
+(define-key global-map "\C-\\" 'toggle-input-method)
+
+(defun view-hello-file ()
+  "Display the HELLO file which list up many languages and characters."
+  (interactive)
+  ;; We have to decode the file in any environment.
+  (let ((coding-system-for-read 'iso-2022-7))
+    (find-file-read-only (expand-file-name "HELLO" data-directory))))
+
+(defun universal-coding-system-argument ()
+  "Execute an I/O command using the specified coding system."
+  (interactive)
+  (let* ((coding-system
+	  (read-coding-system "Coding system for following command: "))
+	 (keyseq (read-key-sequence
+		  (format "Command to execute with %s:" coding-system)))
+	 (cmd (key-binding keyseq)))
+    (let ((coding-system-for-read coding-system)
+	  (coding-system-for-write coding-system))
+      (message "")
+      (call-interactively cmd))))
+
+(defun set-default-coding-systems (coding-system)
+  "Set default value of various coding systems to CODING-SYSTEM.
+The follwing coding systems are set:
+  o coding system of a newly created buffer
+  o default coding system for terminal output
+  o default coding system for keyboard input
+  o default coding system for subprocess I/O"
+  (check-coding-system coding-system)
+  ;;(setq-default buffer-file-coding-system coding-system)
+  (set-default-buffer-file-coding-system coding-system)
+  ;;(setq default-terminal-coding-system coding-system)
+  (setq terminal-coding-system coding-system)
+  ;;(setq default-keyboard-coding-system coding-system)
+  (setq keyboard-coding-system coding-system)
+  ;;(setq default-process-coding-system (cons coding-system coding-system))
+  (add-hook 'comint-exec-hook
+	    `(lambda ()
+	       (let ((proc (get-buffer-process (current-buffer))))
+		 (set-process-input-coding-system  proc ',coding-system)
+		 (set-process-output-coding-system proc ',coding-system)))
+	    'append)
+  (setq file-name-coding-system coding-system))
+
+(defun prefer-coding-system (coding-system)
+  "Add CODING-SYSTEM at the front of the priority list for automatic detection.
+This also sets the following coding systems to CODING-SYSTEM:
+  o coding system of a newly created buffer
+  o default coding system for terminal output
+  o default coding system for keyboard input
+  o default coding system for subprocess I/O"
+  (interactive "zPrefer coding system: ")
+  (if (not (and coding-system (coding-system-p coding-system)))
+      (error "Invalid coding system `%s'" coding-system))
+  (let ((coding-category (coding-system-category coding-system))
+	(parent (coding-system-parent coding-system)))
+    (if (not coding-category)
+	;; CODING-SYSTEM is no-conversion or undecided.
+	(error "Can't prefer the coding system `%s'" coding-system))
+    (set coding-category (or parent coding-system))
+    (if (not (eq coding-category (car coding-category-list)))
+	;; We must change the order.
+	(setq coding-category-list
+	      (cons coding-category
+		    (delq coding-category coding-category-list))))
+    (if (and parent (interactive-p))
+	(message "Highest priority is set to %s (parent of %s)"
+		 parent coding-system))
+    (set-default-coding-systems (or parent coding-system))))
+
+
+;;; Language support staffs.
+
+(defvar language-info-alist nil
+  "Alist of language names vs the corresponding information of various kind.
+Each element looks like:
+	(LANGUAGE-NAME . ((KEY . INFO) ...))
+where LANGUAGE-NAME is a string,
+KEY is a symbol denoting the kind of information,
+INFO is any Lisp object which contains the actual information related
+to KEY.")
+
+(defun get-language-info (language-name key)
+  "Return the information for LANGUAGE-NAME of the kind KEY.
+KEY is a symbol denoting the kind of required information."
+  (if (symbolp language-name)
+      (setq language-name (symbol-name language-name)))
+  (let ((lang-slot (assoc-ignore-case language-name language-info-alist)))
+    (if lang-slot
+	(cdr (assq key (cdr lang-slot))))))
+
+(defun set-language-info (language-name key info)
+  "Set for LANGUAGE-NAME the information INFO under KEY.
+KEY is a symbol denoting the kind of information.
+INFO is any Lisp object which contains the actual information.
+
+Currently, the following KEYs are used by Emacs:
+
+charset: list of symbols whose values are charsets specific to the language.
+
+coding-system: list of coding systems specific to the language.
+
+tutorial: a tutorial file name written in the language.
+
+sample-text: one line short text containing characters of the language.
+
+documentation: t or a string describing how Emacs supports the language.
+      If a string is specified, it is shown before any other information
+      of the language by the command `describe-language-environment'.
+
+setup-function: a function to call for setting up environment
+       convenient for a user of the language.
+
+If KEY is documentation or setup-function, you can also specify
+a cons cell as INFO, in which case, the car part should be
+a normal value as INFO for KEY (as described above),
+and the cdr part should be a symbol whose value is a menu keymap
+in which an entry for the language is defined.  But, only the car part
+is actually set as the information.
+
+We will define more KEYs in the future.  To avoid conflict,
+if you want to use your own KEY values, make them start with `user-'."
+  (if (symbolp language-name)
+      (setq language-name (symbol-name language-name)))
+  (let (lang-slot key-slot)
+    (setq lang-slot (assoc language-name language-info-alist))
+    (if (null lang-slot)		; If no slot for the language, add it.
+	(setq lang-slot (list language-name)
+	      language-info-alist (cons lang-slot language-info-alist)))
+    (setq key-slot (assq key lang-slot))
+    (if (null key-slot)			; If no slot for the key, add it.
+	(progn
+	  (setq key-slot (list key))
+	  (setcdr lang-slot (cons key-slot (cdr lang-slot)))))
+    ;; Setup menu.
+    (cond ((eq key 'documentation)
+           ;; (define-key-after
+           ;;   (if (consp info)
+           ;;       (prog1 (symbol-value (cdr info))
+           ;;         (setq info (car info)))
+           ;;     describe-language-environment-map)
+           ;;   (vector (intern language-name))
+           ;;   (cons language-name 'describe-specified-language-support)
+           ;;   t)
+	   (if (consp info)
+	       (setq info (car info)))
+	   (when (featurep 'menubar)
+	     (eval-after-load
+	      "menubar-items.elc"
+	      `(add-menu-button
+		'("Mule" "Describe Language Support")
+		(vector ,language-name
+			'(describe-language-environment ,language-name)
+			t))))
+	   )
+	  ((eq key 'setup-function)
+           ;; (define-key-after
+           ;;   (if (consp info)
+           ;;       (prog1 (symbol-value (cdr info))
+           ;;         (setq info (car info)))
+           ;;     setup-language-environment-map)
+           ;;   (vector (intern language-name))
+           ;;   (cons language-name 'setup-specified-language-environment)
+           ;;   t)
+	   (if (consp info)
+	       (setq info (car info)))
+	   (when (featurep 'menubar)
+	     (eval-after-load
+	      "menubar-items.elc"
+	      `(add-menu-button
+		'("Mule" "Set Language Environment")
+		(vector ,language-name
+			'(set-language-environment ,language-name)
+			t))))
+           ))
+
+    (setcdr key-slot info)
+    ))
+
+(defun set-language-info-alist (language-name alist)
+  "Set for LANGUAGE-NAME the information in ALIST.
+ALIST is an alist of KEY and INFO.  See the documentation of
+`set-language-info' for the meanings of KEY and INFO."
+  (if (symbolp language-name)
+      (setq language-name (symbol-name language-name)))
+  (while alist
+    (set-language-info language-name (car (car alist)) (cdr (car alist)))
+    (setq alist (cdr alist))))
+
+(defun read-language-name (key prompt &optional default)
+  "Read language name which has information for KEY, prompting with PROMPT.
+DEFAULT is the default choice of language.
+This returns a language name as a string."
+  (let* ((completion-ignore-case t)
+	 (name (completing-read prompt
+				language-info-alist
+				(function (lambda (elm) (assq key elm)))
+				t nil default)))
+    (if (and (> (length name) 0)
+	     (get-language-info name key))
+	name)))
+
+;;; Multilingual input methods.
+
+(defconst leim-list-file-name "leim-list.el"
+  "Name of LEIM list file.
+This file contains a list of libraries of Emacs input methods (LEIM)
+in the format of Lisp expression for registering each input method.
+Emacs loads this file at startup time.")
+
+(defvar leim-list-header (format 
+";;; %s -- list of LEIM (Library of Emacs Input Method)
+;;
+;; This file contains a list of LEIM (Library of Emacs Input Method)
+;; in the same directory as this file.  Loading this file registeres
+;; the whole input methods in Emacs.
+;;
+;; Each entry has the form:
+;;   (register-input-method
+;;    INPUT-METHOD LANGUAGE-NAME ACTIVATE-FUNC
+;;    TITLE DESCRIPTION
+;;    ARG ...)
+;; See the function `register-input-method' for the meanings of arguments.
+;;
+;; If this directory is included in load-path, Emacs automatically
+;; loads this file at startup time.
+
+"
+				 leim-list-file-name)
+  "Header to be inserted in LEIM list file.")
+
+(defvar leim-list-entry-regexp "^(register-input-method"
+  "Regexp matching head of each entry in LEIM list file.
+See also the variable `leim-list-header'")
+
+(defvar update-leim-list-functions
+  '(quail-update-leim-list-file)
+  "List of functions to call to update LEIM list file.
+Each function is called with one arg, LEIM directory name.")
+
+(defun update-leim-list-file (&rest dirs)
+  "Update LEIM list file in directories DIRS."
+  (let ((functions update-leim-list-functions))
+    (while functions
+      (apply (car functions) dirs)
+      (setq functions (cdr functions)))))
+
+(defvar current-input-method nil
+  "The current input method for multilingual text.
+If nil, that means no input method is activated now.")
+(make-variable-buffer-local 'current-input-method)
+(put 'current-input-method 'permanent-local t)
+
+(defvar current-input-method-title nil
+  "Title string of the current input method shown in mode line.")
+(make-variable-buffer-local 'current-input-method-title)
+(put 'current-input-method-title 'permanent-local t)
+
+(defcustom default-input-method nil
+  "*Default input method for multilingual text.
+This is the input method activated automatically by the command
+`toggle-input-method' (\\[toggle-input-method])."
+  :group 'mule)
+
+(defvar input-method-history nil
+  "History list for some commands that read input methods.")
+(make-variable-buffer-local 'input-method-history)
+(put 'input-method-history 'permanent-local t)
+
+(defvar inactivate-current-input-method-function nil
+  "Function to call for inactivating the current input method.
+Every input method should set this to an appropriate value when activated.
+This function is called with no argument.
+
+This function should never change the value of `current-input-method'.
+It is set to nil by the function `inactivate-input-method'.")
+(make-variable-buffer-local 'inactivate-current-input-method-function)
+(put 'inactivate-current-input-method-function 'permanent-local t)
+
+(defvar describe-current-input-method-function nil
+  "Function to call for describing the current input method.
+This function is called with no argument.")
+(make-variable-buffer-local 'describe-current-input-method-function)
+(put 'describe-current-input-method-function 'permanent-local t)
+
+(defvar input-method-alist nil
+  "Alist of input method names vs the corresponding information to use it.
+Each element has the form:
+	(INPUT-METHOD LANGUAGE-NAME ACTIVATE-FUNC TITLE DESCRIPTION ...)
+See the function `register-input-method' for the meanings of each elements.")
+
+(defun register-input-method (input-method language-name &rest args)
+  "Register INPUT-METHOD as an input method for LANGUAGE-NAME.
+INPUT-METHOD and LANGUAGE-NAME are symbols or strings.
+The remaining arguments are:
+	ACTIVATE-FUNC, TITLE, DESCRIPTION, and ARG ...
+ where,
+ACTIVATE-FUNC is a function to call for activating this method.
+TITLE is a string shown in mode-line while this method is active,
+DESCRIPTION is a string describing about this method,
+Arguments to ACTIVATE-FUNC are INPUT-METHOD and ARGs."
+  (if (symbolp language-name)
+      (setq language-name (symbol-name language-name)))
+  (if (symbolp input-method)
+      (setq input-method (symbol-name input-method)))
+  (let ((info (cons language-name args))
+	(slot (assoc input-method input-method-alist)))
+    (if slot
+	(setcdr slot info)
+      (setq slot (cons input-method info))
+      (setq input-method-alist (cons slot input-method-alist)))))
+
+(defun read-input-method-name (prompt &optional default inhibit-null)
+  "Read a name of input method from a minibuffer prompting with PROMPT.
+If DEFAULT is non-nil, use that as the default,
+  and substitute it into PROMPT at the first `%s'.
+If INHIBIT-NULL is non-nil, null input signals an error.
+
+The return value is a string."
+  (if default
+      (setq prompt (format prompt default)))
+  (let* ((completion-ignore-case t)
+	 ;; This binding is necessary because input-method-history is
+	 ;; buffer local.
+	 (input-method (completing-read prompt input-method-alist
+					nil t nil 'input-method-history)
+		       ;;default)
+		       ))
+    (if (> (length input-method) 0)
+	input-method
+      (if inhibit-null
+	  (error "No valid input method is specified")))))
+
+(defun activate-input-method (input-method)
+  "Turn INPUT-METHOD on.
+If some input method is already on, turn it off at first."
+  (if (symbolp input-method)
+      (setq input-method (symbol-name input-method)))
+  (if (and current-input-method
+	   (not (string= current-input-method input-method)))
+    (inactivate-input-method))
+  (unless current-input-method
+    (let ((slot (assoc input-method input-method-alist)))
+      (if (null slot)
+	  (error "Can't activate input method `%s'" input-method))
+      (apply (nth 2 slot) input-method (nthcdr 5 slot))
+      (setq current-input-method input-method)
+      (setq current-input-method-title (nth 3 slot))
+      (run-hooks 'input-method-activate-hook))))
+
+(defun inactivate-input-method ()
+  "Turn off the current input method."
+  (when current-input-method
+    (if input-method-history
+	(unless (string= current-input-method (car input-method-history))
+	  (setq input-method-history
+		(cons current-input-method
+		      (delete current-input-method input-method-history))))
+      (setq input-method-history (list current-input-method)))
+    (unwind-protect
+	(funcall inactivate-current-input-method-function)
+      (unwind-protect
+	  (run-hooks 'input-method-inactivate-hook)
+	(setq current-input-method nil
+	      current-input-method-title nil)))))
+
+(defun select-input-method (input-method)
+  "Select and turn on INPUT-METHOD.
+This sets the default input method to what you specify,
+and turn it on for the current buffer."
+  (interactive
+   (let* ((default (or (car input-method-history) default-input-method)))
+     (list (read-input-method-name
+	    (if default "Select input method (default %s): " "Select input method: ")
+	    default t))))
+  (activate-input-method input-method)
+  (setq default-input-method input-method))
+
+(defun toggle-input-method (&optional arg)
+  "Turn on or off a multilingual text input method for the current buffer.
+
+With arg, read an input method from minibuffer and turn it on.
+
+Without arg, if some input method is currently activated, turn it off,
+else turn on an input method selected last time
+or the default input method (see `default-input-method').
+
+When there's no input method to turn on, turn on what read from minibuffer."
+  (interactive "P")
+  (let* ((default (or (car input-method-history) default-input-method)))
+    (if (and current-input-method (not arg))
+	(inactivate-input-method)
+      (activate-input-method
+       (if (or arg (not default))
+	   (read-input-method-name
+	    (if default "Input method (default %s): " "Input method: " )
+	    default t)  
+	 default))
+      (or default-input-method
+	  (setq default-input-method current-input-method)))))
+
+(defun describe-input-method (input-method)
+  "Describe  input method INPUT-METHOD."
+  (interactive
+   (list (read-input-method-name
+	  "Describe input method (default, current choice): ")))
+  (if (and input-method (symbolp input-method))
+      (setq input-method (symbol-name input-method)))
+  (if (null input-method)
+      (describe-current-input-method)
+    (with-output-to-temp-buffer "*Help*"
+      (let ((elt (assoc input-method input-method-alist)))
+	(princ (format "Input method: %s (`%s' in mode line) for %s\n  %s\n"
+		       input-method (nth 3 elt) (nth 1 elt) (nth 4 elt)))))))
+
+(defun describe-current-input-method ()
+  "Describe the input method currently in use."
+  (if current-input-method
+      (if (and (symbolp describe-current-input-method-function)
+	       (fboundp describe-current-input-method-function))
+	  (funcall describe-current-input-method-function)
+	(message "No way to describe the current input method `%s'"
+		 (cdr current-input-method))
+	(ding))
+    (error "No input method is activated now")))
+
+(defun read-multilingual-string (prompt &optional initial-input
+					input-method)
+  "Read a multilingual string from minibuffer, prompting with string PROMPT.
+The input method selected last time is activated in minibuffer.
+If optional second arg INITIAL-INPUT is non-nil, insert it in the minibuffer
+initially.
+Optional 3rd argument INPUT-METHOD specifies the input method
+to be activated instead of the one selected last time.  It is a symbol
+or a string."
+  (setq input-method
+	(or input-method
+	    default-input-method
+	    (read-input-method-name "Input method: " nil t)))
+  (if (and input-method (symbolp input-method))
+      (setq input-method (symbol-name input-method)))
+  (let ((current-input-method input-method))
+    ;; FSFmacs
+    ;; (read-string prompt initial-input nil nil t)))
+    (read-string prompt initial-input nil)))
+
+;; Variables to control behavior of input methods.  All input methods
+;; should react to these variables.
+
+(defcustom input-method-verbose-flag t
+  "*If this flag is non-nil, input methods give extra guidance.
+
+The extra guidance is done by showing list of available keys in echo
+area.
+
+For complex input methods such as `chinese-py' and `japanese',
+when you use the input method in the minibuffer, the guidance is
+shown at the bottom short window (split from the existing window).
+For simple input methods, guidance is not shown
+when you are in the minibuffer."
+  :type 'boolean
+  :group 'mule)
+
+(defcustom input-method-highlight-flag t
+  "*If this flag is non-nil, input methods highlight partially-entered text.
+For instance, while you are in the middle of a Quail input method sequence,
+the text inserted so far is temporarily underlined.
+The underlining goes away when you finish or abort the input method sequence."
+  :type 'boolean
+  :group 'mule)
+
+(defvar input-method-activate-hook nil
+  "Normal hook run just after an input method is activated.
+
+The variable `current-input-method' keeps the input method name
+just activated.")
+
+(defvar input-method-inactivate-hook nil
+  "Normal hook run just after an input method is inactivated.
+
+The variable `current-input-method' still keeps the input method name
+just inacitvated.")
+
+(defvar input-method-after-insert-chunk-hook nil
+  "Normal hook run just after an input method insert some chunk of text.")
+
+(defvar input-method-exit-on-invalid-key nil
+  "This flag controls the behaviour of an input method on invalid key input.
+Usually, when a user types a key which doesn't start any character
+handled by the input method, the key is handled by turning off the
+input method temporalily.  After the key is handled, the input method is 
+back on.
+But, if this flag is non-nil, the input method is never back on.")
+
+
+(defun setup-specified-language-environment ()
+  "Set up multi-lingual environment convenient for the specified language."
+  (interactive)
+  (let (language-name)
+    (if (and (symbolp last-command-event)
+	     (or (not (eq last-command-event 'Default))
+		 (setq last-command-event 'English))
+	     (setq language-name (symbol-name last-command-event)))
+	(set-language-environment language-name)
+      (error "Bogus calling sequence"))))
+
+(defvar current-language-environment "English"
+  "The last language environment specified with `set-language-environment'.")
+
+(defun set-language-environment (language-name)
+  "Set up multi-lingual environment for using LANGUAGE-NAME.
+This sets the coding system priority and the default input method
+and sometimes other things."
+  (interactive (list (read-language-name 'setup-function
+					 "Set language environment: ")))
+  (if language-name
+      (if (symbolp language-name)
+	  (setq language-name (symbol-name language-name)))
+    (setq language-name "English"))
+  (if (null (get-language-info language-name 'setup-function))
+      (error "Language environment not defined: %S" language-name))
+  (funcall (get-language-info language-name 'setup-function))
+  (setq current-language-environment language-name)
+  (force-mode-line-update t))
+
+;; Print all arguments with `princ', then print "\n".
+(defsubst princ-list (&rest args)
+  (while args (princ (car args)) (setq args (cdr args)))
+  (princ "\n"))
+
+;; Print a language specific information such as input methods,
+;; charsets, and coding systems.  This function is intended to be
+;; called from the menu:
+;;   [menu-bar mule describe-language-environment LANGUAGE]
+;; and should not run it by `M-x describe-current-input-method-function'.
+(defun describe-specified-language-support ()
+  "Describe how Emacs supports the specified language environment."
+  (interactive)
+  (let (language-name)
+    (if (not (and (symbolp last-command-event)
+		  (setq language-name (symbol-name last-command-event))))
+	(error "Bogus calling sequence"))
+    (describe-language-environment language-name)))
+
+(defun describe-language-environment (language-name)
+  "Describe how Emacs supports language environment LANGUAGE-NAME."
+  (interactive
+   (list (read-language-name
+	  'documentation
+	  "Describe language environment (default, current choise): ")))
+  (if (null language-name)
+      (setq language-name current-language-environment))
+  (if (or (null language-name)
+	  (null (get-language-info language-name 'documentation)))
+      (error "No documentation for the specified language"))
+  (if (symbolp language-name)
+      (setq language-name (symbol-name language-name)))
+  (let ((doc (get-language-info language-name 'documentation)))
+    (with-output-to-temp-buffer "*Help*"
+      (if (stringp doc)
+  	  (progn
+	    (princ-list doc)
+	    (terpri)))
+      (let ((str (get-language-info language-name 'sample-text)))
+	(if (stringp str)
+	    (progn
+	      (princ "Sample text:\n")
+	      (princ-list "  " str)
+	      (terpri))))
+      (princ "Input methods:\n")
+      (let ((l input-method-alist))
+  	(while l
+	  (if (string= language-name (nth 1 (car l)))
+	      (princ-list "  " (car (car l))
+			  (format " (`%s' in mode line)" (nth 3 (car l)))))
+	  (setq l (cdr l))))
+      (terpri)
+      (princ "Character sets:\n")
+      (let ((l (get-language-info language-name 'charset)))
+	(if (null l)
+	    (princ-list "  nothing specific to " language-name)
+	  (while l
+	    (princ-list "  " (car l) ": "
+			(charset-description (car l)))
+	    (setq l (cdr l)))))
+      (terpri)
+      (princ "Coding systems:\n")
+      (let ((l (get-language-info language-name 'coding-system)))
+	(if (null l)
+	    (princ-list "  nothing specific to " language-name)
+	  (while l
+	    (princ ; (format "  %s (`%c' in mode line):\n\t%s\n"
+	     ;; In XEmacs, `coding-system-mnemonic' returns string.
+	     (format "  %s (`%s' in mode line):\n\t%s\n"
+		     (car l)
+		     (coding-system-mnemonic (car l))
+		     (coding-system-doc-string (car l))))
+	    (setq l (cdr l))))))))
+
+;;; Charset property
+
+;; (defsubst get-charset-property (charset propname)
+;;   "Return the value of CHARSET's PROPNAME property.
+;; This is the last value stored with
+;; `(put-charset-property CHARSET PROPNAME VALUE)'."
+;;   (plist-get (charset-plist charset) propname))
+
+;; (defsubst put-charset-property (charset propname value)
+;;   "Store CHARSETS's PROPNAME property with value VALUE.
+;; It can be retrieved with `(get-charset-property CHARSET PROPNAME)'."
+;;   (set-charset-plist charset
+;;                      (plist-put (charset-plist charset) propname value)))
+
+(defvar char-code-property-table
+  (make-char-table 'generic)
+  "Char-table containing a property list of each character code.
+;; 
+See also the documentation of `get-char-code-property' and
+`put-char-code-property'")
+;;   (let ((plist (aref char-code-property-table char)))
+(defun get-char-code-property (char propname)
+  "Return the value of CHAR's PROPNAME property in `char-code-property-table'."
+  (let ((plist (get-char-table char char-code-property-table)))
+    (if (listp plist)
+	(car (cdr (memq propname plist))))))
+
+(defun put-char-code-property (char propname value)
+  "Store CHAR's PROPNAME property with VALUE in `char-code-property-table'.
+It can be retrieved with `(get-char-code-property CHAR PROPNAME)'."
+  (let ((plist (get-char-table char char-code-property-table)))
+    (if plist
+	(let ((slot (memq propname plist)))
+	  (if slot
+	      (setcar (cdr slot) value)
+	    (nconc plist (list propname value))))
+      (put-char-table char (list propname value) char-code-property-table)
+      )))
+;;               (setcar (cdr slot) value)
+;;             (nconc plist (list propname value))))
+;;       (aset char-code-property-table char (list propname value)))))
+
+;;; mule-cmds.el ends here
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/mule/mule-coding.el	Mon Aug 13 11:10:50 2007 +0200
@@ -0,0 +1,188 @@
+;;; mule-coding.el --- Coding-system functions for Mule.
+
+;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
+;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1995 Amdahl Corporation.
+;; Copyright (C) 1995 Sun Microsystems.
+;; Copyright (C) 1997 MORIOKA Tomohiko
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the 
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+
+;;; split off of mule.el and mostly moved to coding.el
+
+;;; Code:
+
+(defun coding-system-force-on-output (coding-system register)
+  "Return the 'force-on-output property of CODING-SYSTEM for the specified REGISTER."
+  (unless (integerp register)
+    (signal 'wrong-type-argument (list 'integerp register)))
+  (coding-system-property
+   coding-system
+   (case register
+     (0 'force-g0-on-output)
+     (1 'force-g1-on-output)
+     (2 'force-g2-on-output)
+     (3 'force-g3-on-output)
+     (t (signal 'args-out-of-range (list register 0 3))))))
+
+(defun coding-system-short (coding-system)
+  "Return the 'short property of CODING-SYSTEM."
+  (coding-system-property coding-system 'short))
+
+(defun coding-system-no-ascii-eol (coding-system)
+  "Return the 'no-ascii-eol property of CODING-SYSTEM."
+  (coding-system-property coding-system 'no-ascii-eol))
+
+(defun coding-system-no-ascii-cntl (coding-system)
+  "Return the 'no-ascii-cntl property of CODING-SYSTEM."
+  (coding-system-property coding-system 'no-ascii-cntl))
+
+(defun coding-system-seven (coding-system)
+  "Return the 'seven property of CODING-SYSTEM."
+  (coding-system-property coding-system 'seven))
+
+(defun coding-system-lock-shift (coding-system)
+  "Return the 'lock-shift property of CODING-SYSTEM."
+  (coding-system-property coding-system 'lock-shift))
+
+;;(defun coding-system-use-japanese-jisx0201-roman (coding-system)
+;;  "Return the 'use-japanese-jisx0201-roman property of CODING-SYSTEM."
+;;  (coding-system-property coding-system 'use-japanese-jisx0201-roman))
+
+;;(defun coding-system-use-japanese-jisx0208-1978 (coding-system)
+;;  "Return the 'use-japanese-jisx0208-1978 property of CODING-SYSTEM."
+;;  (coding-system-property coding-system 'use-japanese-jisx0208-2978))
+
+(defun coding-system-no-iso6429 (coding-system)
+  "Return the 'no-iso6429 property of CODING-SYSTEM."
+  (coding-system-property coding-system 'no-iso6429))
+
+(defun coding-system-ccl-encode (coding-system)
+  "Return the CCL 'encode property of CODING-SYSTEM."
+  (coding-system-property coding-system 'encode))
+
+(defun coding-system-ccl-decode (coding-system)
+  "Return the CCL 'decode property of CODING-SYSTEM."
+  (coding-system-property coding-system 'decode))
+
+
+;;;; Definitions of predefined coding systems
+
+(make-coding-system
+ 'ctext 'iso2022
+ "Coding-system used in X as Compound Text Encoding."
+ '(charset-g0 ascii
+   charset-g1 latin-iso8859-1
+   eol-type nil
+   mnemonic "CText"))
+
+;;; iso-8859-1 and ctext are aliases.
+
+;; (copy-coding-system 'ctext 'iso-8859-1)
+(make-coding-system
+ 'iso-8859-1 'no-conversion
+ "Coding-system used in X as Compound Text Encoding."
+ '(eol-type nil mnemonic "Noconv"))
+
+(make-coding-system
+ 'iso-2022-8bit-ss2 'iso2022
+ "ISO-2022 coding system using SS2 for 96-charset in 8-bit code."
+ '(charset-g0 ascii
+   charset-g1 latin-iso8859-1
+   charset-g2 t ;; unspecified but can be used later.
+   short t
+   mnemonic "ISO8/SS"
+   ))
+
+(make-coding-system
+ 'iso-2022-7bit-ss2 'iso2022
+ "ISO-2022 coding system using SS2 for 96-charset in 7-bit code."
+ '(charset-g0 ascii
+   charset-g2 t ;; unspecified but can be used later.
+   seven t
+   short t
+   mnemonic "ISO7/SS"
+   eol-type nil))
+
+;; (copy-coding-system 'iso-2022-7bit-ss2 'iso-2022-jp-2)
+(make-coding-system
+ 'iso-2022-jp-2 'iso2022
+ "ISO-2022 coding system using SS2 for 96-charset in 7-bit code."
+ '(charset-g0 ascii
+   charset-g2 t ;; unspecified but can be used later.
+   seven t
+   short t
+   mnemonic "ISO7/SS"
+   eol-type nil))
+
+(make-coding-system
+ 'iso-2022-7bit 'iso2022
+ "ISO 2022 based 7-bit encoding using only G0"
+ '(charset-g0 ascii
+   seven t
+   short t
+   mnemonic "ISO7"))
+
+;; compatibility for old XEmacsen
+(copy-coding-system 'iso-2022-7bit 'iso-2022-7)
+
+(make-coding-system
+ 'iso-2022-8 'iso2022
+ "ISO-2022 eight-bit coding system.  No single-shift or locking-shift."
+ '(charset-g0 ascii
+   charset-g1 latin-iso8859-1
+   short t
+   mnemonic "ISO8"
+   ))
+
+(make-coding-system
+ 'escape-quoted 'iso2022
+ "ISO-2022 eight-bit coding system with escape quoting; used for .ELC files."
+ '(charset-g0 ascii
+   charset-g1 latin-iso8859-1
+   eol-type lf
+   escape-quoted t
+   mnemonic "ESC/Quot"
+   ))
+
+(make-coding-system
+ 'iso-2022-lock 'iso2022
+ "ISO-2022 coding system using Locking-Shift for 96-charset."
+ '(charset-g0 ascii
+   charset-g1 t ;; unspecified but can be used later.
+   seven t
+   lock-shift t
+   mnemonic "ISO7/Lock"
+   ))
+
+;; initialize the coding categories to something semi-reasonable
+;; so that the remaining Lisp files can contain extended characters.
+;; (They will be in ISO-7 format)
+
+(set-coding-priority-list '(iso-8-2 iso-8-designate iso-8-1
+			    iso-7 iso-lock-shift no-conversion))
+
+(set-coding-category-system 'iso-7 'iso-2022-7)
+(set-coding-category-system 'iso-8-designate 'ctext)
+(set-coding-category-system 'iso-8-1 'ctext)
+(set-coding-category-system 'iso-lock-shift 'iso-2022-lock)
+(set-coding-category-system 'no-conversion 'no-conversion)
+
+;;; mule-coding.el ends here
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/mule/mule-files.el	Mon Aug 13 11:10:50 2007 +0200
@@ -0,0 +1,35 @@
+;;; mule-files.el --- File I/O functions for XEmacs/Mule.
+
+;; Copyright (C) 1992,93,94,95 Free Software Foundation, Inc.
+;; Copyright (C) 1995 Amdahl Corporation.
+;; Copyright (C) 1995 Sun Microsystems.
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the 
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+
+;;; Derived from mule.el in the original Mule but heavily modified
+;;; by Ben Wing. Mostly moved to code-files.el
+
+;; 1997/3/11 modified by MORIOKA Tomohiko to sync with Emacs 20 API.
+
+;;; Code:
+
+(setq-default buffer-file-coding-system 'iso-2022-8)
+
+;;; mule-files.el ends here
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/mule/mule-help.el	Mon Aug 13 11:10:50 2007 +0200
@@ -0,0 +1,86 @@
+;;; mule-help.el --- Mule-ized Help functions 
+
+;; Copyright (C) 1997 by Free Software Foundation, Inc.
+
+;; Author: SL Baur <steve@altair.xemacs.org>
+;; Keywords: help, internal
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; Synched up with: Emacs 20.1
+
+;;; Commentary:
+
+;; 
+
+;;; Code:
+
+;; TUTORIAL arg is XEmacs addition
+(defun help-with-tutorial (&optional arg tutorial)
+  "Select the XEmacs learn-by-doing tutorial.
+If there is a tutorial version written in the language
+of the selected language environment, that version is used.
+If there's no tutorial in that language, `TUTORIAL' is selected.
+With arg, you are asked to select which language."
+  (interactive "P")
+  (let (lang filename file)
+    (if arg
+	(or (setq lang (read-language-name 'tutorial "Language: "))
+	    (error "No tutorial file of the specified language"))
+      (setq lang current-language-environment))
+    ;; The menubar buttons call this function like this:
+    ;; (help-with-tutorial nil "tutorial.lang")
+    (setq filename (if (and (not arg) tutorial)
+		       tutorial
+		     (or (get-language-info lang 'tutorial)
+			 (or tutorial "TUTORIAL"))))
+    (setq file (expand-file-name (concat "~/" filename)))
+    (delete-other-windows)
+    (if (get-file-buffer file)
+	(switch-to-buffer (get-file-buffer file))
+      (switch-to-buffer (create-file-buffer file))
+      (setq buffer-file-name file)
+      (setq default-directory (expand-file-name "~/"))
+      (setq buffer-auto-save-file-name nil)
+      (insert-file-contents (locate-data-file filename))
+      (goto-char (point-min))
+      ;; The 'didactic' blank lines: Possibly insert blank lines
+      ;; around <<nya nya nya>>, and change << >> to [ ].
+      (if (re-search-forward "^<<.+>>" nil t)
+	  (let ((n (- (window-height (selected-window))
+		      (count-lines (point-min) (point-at-bol))
+		      6)))
+	    (if (< n 12)
+		(progn (beginning-of-line) (kill-line))
+	      ;; Some people get confused by the large gap
+	      (delete-backward-char 2)
+	      (insert "]")
+	      (beginning-of-line)
+	      (save-excursion
+		(delete-char 2)
+		(insert "["))
+	      (newline (/ n 2))
+	      (next-line 1)
+	      (newline (- n (/ n 2))))))
+      (goto-char (point-min))
+      (set-buffer-modified-p nil))))
+
+
+(provide 'mule-help)
+
+;;; mule-help.el ends here
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/mule/mule-init.el	Mon Aug 13 11:10:50 2007 +0200
@@ -0,0 +1,132 @@
+;; Mule default configuration file
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the 
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; 87.6.9   created by K.handa
+;;; (Note: following comment obsolete -- mrb)
+
+;;; IMPORTANT NOTICE -- DON'T EDIT THIS FILE!!!
+;;;  Keep this file unmodified for further patches being applied successfully.
+;;;  All language specific basic environments are defined here.
+;;;  By default, Japanese is set as the primary environment.
+;;;  You can change primary environment in `./lisp/site-init.el by
+;;;  `set-primary-environment'.  For instance,
+;;;  	(set-primary-environment 'chinese)
+;;;  makes Chinese the primary environment.
+;;;  If you are still not satisfied with the settings, you can
+;;;  override them after the above line.  For instance,
+;;;  	(set-default-buffer-file-coding-system 'big5)
+;;;  makes big5 be used for file I/O by default.
+;;;  If you are not satisfied with other default settings in this file,
+;;;  override any of them also in `./lisp/site-init.el'.  For instance,
+;;;	(define-program-coding-system nil ".*mail.*" 'iso-8859-1)
+;;;  makes the coding-system 'iso-8859-1 be used in mail.
+
+
+;;;; GLOBAL ENVIRONMENT SETUP
+(require 'cl)
+
+
+;; (setq language-environment-list
+;;       (sort (language-environment-list) 'string-lessp))
+
+;; MULE keymap codes were moved to mule-cmds.el.
+
+;; Alternative key definitions
+;; Original mapping will be altered by set-keyboard-coding-system.
+(define-key global-map [(meta \#)] 'ispell-word)	;originally "$"
+;; (define-key global-map [(meta {)] 'insert-parentheses) ;originally "("
+
+;; Following line isn't mule-specific --mrb
+;;(setq-default modeline-buffer-identification '("XEmacs: %17b"))
+
+;; MULE keymap codes were moved to mule-cmds.el.
+
+;; (define-key help-map "T" 'help-with-tutorial-for-mule)
+
+;; (defvar help-with-tutorial-language-alist
+;;  '(("Japanese" . ".jp")
+;;    ("Korean"   . ".kr")
+;;    ("Thai"     . ".th")))
+
+;(defun help-with-tutorial-for-mule (language)
+;  "Select the Mule learn-by-doing tutorial."
+;  (interactive (list (let ((completion-ignore-case t)
+;			   lang)
+;		       (completing-read
+;			"Language: "
+;			help-with-tutorial-language-alist))))
+;  (setq language (cdr (assoc language help-with-tutorial-language-alist)))
+;  (help-with-tutorial (concat "mule/TUTORIAL" (or language ""))))
+
+(defvar auto-language-alist
+  '(("^ja" . "Japanese")
+    ("^zh" . "Chinese")
+    ("^ko" . "Korean"))
+  "Alist of LANG patterns vs. corresponding language environment.
+Each element looks like (REGEXP . LANGUAGE-ENVIRONMENT).
+It the value of the environment variable LANG matches the regexp REGEXP,
+then `set-language-environment' is called with LANGUAGE-ENVIRONMENT.")
+
+(defun init-mule ()
+  "Initialize MULE environment at startup.  Don't call this."
+  (let ((lang (or (getenv "LC_ALL") (getenv "LC_MESSAGES") (getenv "LANG"))))
+    (unless (or (null lang) (string-equal "C" lang))
+      (let ((case-fold-search t))
+	(loop for elt in auto-language-alist
+	      if (string-match (car elt) lang)
+	      return (progn
+		       (setq lang (substring lang 0 (match-end 0)))
+		       (set-language-environment (cdr elt))
+		       )))
+      ;; Load a (localizable) locale-specific init file, if it exists.
+      (load (format "%s%s/locale-start"
+		    (locate-data-directory "start-files")
+		    lang) t t)))
+  
+  (when current-language-environment
+    ;; Translate remaining args on command line using file-name-coding-system
+    (loop for arg in-ref command-line-args-left do
+	  (setf arg (decode-coding-string arg file-name-coding-system)))
+    
+    ;; rman seems to be incompatible with encoded text
+    (setq Manual-use-rosetta-man nil)
+
+    ;; Make sure ls -l output is readable by dired and encoded using
+    ;; file-name-coding-system
+    (add-hook
+     'dired-mode-hook
+     (lambda ()
+       (make-local-variable 'process-environment)
+       (setenv "LC_MESSAGES" "C")
+       (setenv "LC_TIME"     "C"))))
+  
+  ;; Register avairable input methods by loading LEIM list file.
+  (load "leim-list.el" 'noerror 'nomessage 'nosuffix)
+  )
+
+(add-hook 'before-init-hook 'init-mule)
+
+;;;;; Enable the tm package by default
+;;(defun init-mule-tm ()
+;;  "Load MIME (TM) support for GNUS, VM, MH-E, and RMAIL."
+;;  (load "mime-setup"))
+
+;;(add-hook 'after-init-hook 'init-mule-tm)
+
+;;; mule-init.el ends here
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/mule/mule-misc.el	Mon Aug 13 11:10:50 2007 +0200
@@ -0,0 +1,295 @@
+;; mule-misc.el --- Miscellaneous Mule functions.
+
+;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
+;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1992,93,94,95 Free Software Foundation, Inc.
+;; Copyright (C) 1995 Amdahl Corporation.
+;; Copyright (C) 1995 Sun Microsystems.
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the 
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;;
+;;;  protect specified local variables from kill-all-local-variables
+;;;
+
+(defvar self-insert-after-hook nil
+  "Hook to run when extended self insertion command exits.  Should take
+two arguments START and END corresponding to character position.")
+
+(make-variable-buffer-local 'self-insert-after-hook)
+
+(defun toggle-display-direction ()
+  (interactive)
+  (setq display-direction (not display-direction))
+  (if (interactive-p) (redraw-display)))
+
+;;;
+;;; Utility functions for Mule
+;;;
+
+;(defun string-to-char-list (str)
+;  (let ((len (length str))
+;	(idx 0)
+;	c l)
+;    (while (< idx len)
+;      (setq c (sref str idx))
+;      (setq idx (+ idx (charset-dimension (char-charset c))))
+;      (setq l (cons c l)))
+;    (nreverse l)))
+
+(defun string-to-char-list (str)
+  (mapcar 'identity str))
+
+(defun string-width (string)
+  "Return number of columns STRING occupies when displayed.
+Uses the charset-columns attribute of the characters in STRING,
+which may not accurately represent the actual display width when
+using a window system."
+  (let ((col 0)
+	(len (length string))
+	(i 0))
+    (while (< i len)
+      (setq col (+ col (charset-columns (char-charset (aref string i)))))
+      (setq i (1+ i)))
+    col))
+
+(defalias 'string-columns 'string-width)
+(make-obsolete 'string-columns 'string-width)
+
+(defun delete-text-in-column (from to)
+  "Delete the text between column FROM and TO (exclusive) of the current line.
+Nil of FORM or TO means the current column.
+
+If there's a character across the borders, the character is replaced
+with the same width of spaces before deleting."
+  (save-excursion
+    (let (p1 p2)
+      (if from
+	  (progn
+	    (setq p1 (move-to-column from))
+	    (if (> p1 from)
+		(progn
+		  (delete-char -1)
+		  (insert-char ?  (- p1 (current-column)))
+		  (forward-char (- from p1))))))
+      (setq p1 (point))
+      (if to
+	  (progn
+	    (setq p2 (move-to-column to))
+	    (if (> p2 to)
+		(progn
+		  (delete-char -1)
+		  (insert-char ?  (- p2 (current-column)))
+		  (forward-char (- to p2))))))
+      (setq p2 (point))
+      (delete-region p1 p2))))
+
+;; #### Someone translate this!!
+
+(defun mc-normal-form-string (str)
+  "$BJ8;zNs(B STR $B$N4A;zI8=`7AJ8;zNs$rJV$9!%(B"
+  (let ((i 0))
+    (while (setq i (string-match "\n" str i))
+      (if (and (<= 1 i) (< i (1- (length str)))
+	       (< (aref str (1- i)) 128)
+	       (< (aref str (1+ i)) 128))
+	  (aset str i ? ))
+      (setq i (1+ i)))
+    (if (string-match "\n" str 0)
+	(let ((c 0) (i 0) new)
+	  (while (setq i (string-match "\n" str i))
+	    (setq i (1+ i))
+	    (setq c (1+ c)))
+	  (setq new (make-string (- (length str) c) 0))
+	  (setq i 0 c 0)
+	  (while (< i (length str))
+	    (cond((not (= (aref str i) ?\n ))
+		  (aset new c (aref str i))
+		  (setq c (1+ c))))
+
+	    (setq i (1+ i))
+	    )
+	  new)
+      str)))
+
+
+(defun string-memq (str list)
+  "Returns non-nil if STR is an element of LIST.  Comparison done with string=.
+The value is actually the tail of LIST whose car is STR.
+If each element of LIST is not a string, it is converted to string
+ before comparison."
+  (let (find elm)
+    (while (and (not find) list)
+      (setq elm (car list))
+      (if (numberp elm) (setq elm (char-to-string elm)))
+      (if (string= str elm)
+	  (setq find list)
+	(setq list (cdr list))))
+    find))
+
+(defun cancel-undo-boundary ()
+  "Cancel undo boundary."
+  (if (and (consp buffer-undo-list)
+	   ;; if car is nil.
+	   (null (car buffer-undo-list)) )
+      (setq buffer-undo-list (cdr buffer-undo-list)) ))
+
+
+;;; Common API emulation functions for GNU Emacs-merged Mule.
+;;; As suggested by MORIOKA Tomohiko
+
+;; Following definition were imported from Emacs/mule-delta.
+
+;; Function `truncate-string-to-width' was moved to mule-util.el.
+
+;; end of imported definition
+
+
+(defalias 'sref 'aref)
+(defalias 'map-char-concat 'mapcar)
+(defun char-bytes (character)
+  "Return number of length a CHARACTER occupies in a string or buffer.
+It returns only 1 in XEmacs.  It is for compatibility with MULE 2.3."
+  1)
+(defalias 'char-length 'char-bytes)
+
+(defun char-width (character)
+  "Return number of columns a CHARACTER occupies when displayed."
+  (charset-columns (char-charset character)))
+
+(defalias 'char-columns 'char-width)
+(make-obsolete 'char-columns 'char-width)
+
+(defalias 'charset-description 'charset-doc-string)
+
+(defalias 'find-charset-string 'charsets-in-string)
+(defalias 'find-charset-region 'charsets-in-region)
+
+(defun find-non-ascii-charset-string (string)
+  "Return a list of charsets in the STRING except ascii.
+It might be available for compatibility with Mule 2.3,
+because its `find-charset-string' ignores ASCII charset."
+  (delq 'ascii (charsets-in-string string)))
+
+(defun find-non-ascii-charset-region (start end)
+  "Return a list of charsets except ascii in the region between START and END.
+It might be available for compatibility with Mule 2.3,
+because its `find-charset-string' ignores ASCII charset."
+  (delq 'ascii (charsets-in-region start end)))
+
+(defun split-char (char)
+  "Return list of charset and one or two position-codes of CHAR."
+  (let ((charset (char-charset char)))
+    (if (eq charset 'ascii)
+	(list charset (char-int char))
+      (let ((i 0)
+	    (len (charset-dimension charset))
+	    (code (if (integerp char)
+		      char
+		    (char-int char)))
+	    dest)
+	(while (< i len)
+	  (setq dest (cons (logand code 127) dest)
+		code (lsh code -7)
+		i (1+ i)))
+	(cons charset dest)
+	))))
+
+
+;;; Commands
+
+(defun set-buffer-process-coding-system (decoding encoding)
+  "Set coding systems for the process associated with the current buffer.
+DECODING is the coding system to be used to decode input from the process,
+ENCODING is the coding system to be used to encode output to the process.
+
+For a list of possible values of CODING-SYSTEM, use \\[list-coding-systems]."
+  (interactive
+   "zCoding-system for process input: \nzCoding-system for process output: ")
+  (let ((proc (get-buffer-process (current-buffer))))
+    (if (null proc)
+	(error "no process")
+      (check-coding-system decoding)
+      (check-coding-system encoding)
+      (set-process-coding-system proc decoding encoding)))
+  (force-mode-line-update))
+
+
+;;; Language environments
+
+;; (defvar current-language-environment nil)
+
+;; (defvar language-environment-list nil)
+
+;; (defun current-language-environment ()
+;;   "Return the current language environment as a symbol.
+;; Returns nil if `set-language-environment' has not been called."
+;;   current-language-environment)
+
+;; (defun language-environment-list ()
+;;   "Return a list of all currently defined language environments."
+;;   language-environment-list)
+
+;; (defun language-environment-p (sym)
+;;   "True if SYM names a defined language environment."
+;;   (memq sym (language-environment-list)))
+
+;; (defun set-language-environment (env)
+;;   "Set the current language environment to ENV."
+;;   (interactive
+;;    (list (intern (completing-read "Language environment: "
+;;                                   obarray 'language-environment-p
+;;                                   'require-match))))
+;;   (when (not (string= (charset-registry 'ascii) "iso8859-1"))
+;;     (set-charset-registry 'ascii "iso8859-1"))
+;;   (let ((func (get env 'set-lang-environ)))
+;;     (if (not (null func))
+;;         (funcall func)))
+;;   (setq current-language-environment env)
+;;   (if (featurep 'egg)
+;;       (egg-lang-switch-callback))
+;; ;;  (if (featurep 'quail)
+;; ;;      (quail-lang-switch-callback))
+;; )
+
+;; (defun define-language-environment (env-sym doc-string enable-function)
+;;   "Define a new language environment, named by ENV-SYM.
+;; DOC-STRING should be a string describing the environment.
+;; ENABLE-FUNCTION should be a function of no arguments that will be called
+;; when the language environment is made current."
+;;   (put env-sym 'lang-environ-doc-string doc-string)
+;;   (put env-sym 'set-lang-environ enable-function)
+;;   (setq language-environment-list (cons env-sym language-environment-list)))
+
+(defun define-egg-environment (env-sym doc-string enable-function)
+  "Define a new language environment for egg, named by ENV-SYM.
+DOC-STRING should be a string describing the environment.
+ENABLE-FUNCTION should be a function of no arguments that will be called
+when the language environment is made current."
+  (put env-sym 'egg-environ-doc-string doc-string)
+  (put env-sym 'set-egg-environ enable-function))
+
+;; (defun define-quail-environment (env-sym doc-string enable-function)
+;;   "Define a new language environment for quail, named by ENV-SYM.
+;; DOC-STRING should be a string describing the environment.
+;; ENABLE-FUNCTION should be a function of no arguments that will be called
+;; when the language environment is made current."
+;;   (put env-sym 'quail-environ-doc-string doc-string)
+;;   (put env-sym 'set-quail-environ enable-function))
+
+;;; mule-misc.el ends here
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/mule/mule-tty-init.el	Mon Aug 13 11:10:50 2007 +0200
@@ -0,0 +1,47 @@
+;;; mule-tty-init.el --- Initialization code for console tty under MULE
+
+;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998 Kazuyuki IENAGA <kazz@imasy.or.jp>
+
+;; Author: Kazuyuki IENAGA <kazz@imasy.or.jp>
+;; Keywords: mule, tty, console, dumped
+
+;; This file is part of XEmacs.
+;;
+;; XEmacs is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+;;
+;; XEmacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+
+;; This file is dumped with XEmacs when Mule and TTY support are enabled.
+
+;;; Code:
+
+(defvar mule-tty-win-initted nil)
+
+(defun init-mule-tty-win ()
+  "Initialize TTY for MULE at startup. Don't call this."
+  (unless mule-tty-win-initted
+    (add-hook
+     'before-init-hook
+     (lambda ()
+       (when (eq (device-type) 'tty)
+	 (when (string-match "^kterm" (getenv "TERM"))
+	   (set-terminal-coding-system 'euc-jp)
+	   (set-keyboard-coding-system 'euc-jp))
+	 (set-console-tty-coding-system))))
+    (setq mule-tty-win-initted t)))
+
+;;; mule-tty-init.el ends here
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/mule/mule-x-init.el	Mon Aug 13 11:10:50 2007 +0200
@@ -0,0 +1,126 @@
+;;; mule-x-init.el --- initialization code for X Windows under MULE
+;; Copyright (C) 1994 Free Software Foundation, Inc.
+;; Copyright (C) 1996 Ben Wing <wing@666.com>
+
+;; Author: various
+;; Keywords: mule X11
+
+;; This file is part of XEmacs.
+;;
+;; XEmacs is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+;;
+;; XEmacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+
+;;; Code:
+
+;;; Work around what is arguably a Sun CDE bug.
+
+(defun x-use-halfwidth-roman-font (fullwidth-charset roman-registry)
+  "Maybe set charset registry of the 'ascii charset to ROMAN-REGISTRY.
+
+Do this only if:
+ - the current display is an X device
+ - the displayed width of FULLWIDTH-CHARSET is twice the displayed
+   width of the 'ascii charset, but only when using ROMAN-REGISTRY.
+
+Traditionally, Asian characters have been displayed so that they
+occupy exactly twice the screen space of ASCII (`halfwidth')
+characters.  On many systems, e.g. Sun CDE systems, this can only be
+achieved by using a national variant roman font to display ASCII."
+  (let ((charset-font-width
+	 (lambda (charset)
+	   (font-instance-width
+	    (face-font-instance 'default (selected-device) charset))))
+
+	(twice-as-wide
+	 (lambda (cs1 cs2)
+	   (let ((width1 (funcall charset-font-width cs1))
+		 (width2 (funcall charset-font-width cs2)))
+	     (and width1 width2 (eq (+ width1 width1) width2))))))
+
+    (when (eq 'x (device-type))
+      (condition-case nil
+	  (unless (funcall twice-as-wide 'ascii fullwidth-charset)
+	    (set-charset-registry 'ascii roman-registry)
+	    (unless (funcall twice-as-wide 'ascii fullwidth-charset)
+	      ;; Restore if roman-registry didn't help
+	      (set-charset-registry 'ascii "iso8859-1")))
+	(error (set-charset-registry 'ascii "iso8859-1"))))))
+
+;;;;
+
+(defvar mule-x-win-initted nil)
+
+(defun init-mule-x-win ()
+  "Initialize X Windows for MULE at startup.  Don't call this."
+  (when (not mule-x-win-initted)
+    (define-specifier-tag 'mule-fonts
+      (lambda (device) (eq 'x (device-type device))))
+
+    (set-face-font
+     'default
+     '("-*-fixed-medium-r-*--16-*-iso8859-1"
+       "-*-fixed-medium-r-*--*-iso8859-1"
+       "-*-fixed-medium-r-*--*-iso8859-2"
+       "-*-fixed-medium-r-*--*-iso8859-3"
+       "-*-fixed-medium-r-*--*-iso8859-4"
+       "-*-fixed-medium-r-*--*-iso8859-7"
+       "-*-fixed-medium-r-*--*-iso8859-8"
+       "-*-fixed-medium-r-*--*-iso8859-5"
+       "-*-fixed-medium-r-*--*-iso8859-9"
+
+       ;; Following 3 fonts proposed by Teruhiko.Kurosaka@Japan.eng.sun
+       "-sun-gothic-medium-r-normal--14-120-75-75-c-60-jisx0201.1976-0"
+       "-sun-gothic-medium-r-normal--14-120-75-75-c-120-jisx0208.1983-0"
+       "-wadalab-gothic-medium-r-normal--14-120-75-75-c-120-jisx0212.1990-0"
+       ;; Other Japanese fonts
+       "-*-fixed-medium-r-*--*-jisx0201.1976-*"
+       "-*-fixed-medium-r-*--*-jisx0208.1983-*"
+       "-*-fixed-medium-r-*--*-jisx0212*-*"
+
+       ;; Chinese fonts
+       "-*-*-medium-r-*--*-gb2312.1980-*"
+       
+       ;; Use One font specification for CNS chinese
+       ;; Too many variations in font naming
+       "-*-fixed-medium-r-*--*-cns11643*-*"
+       ;; "-*-fixed-medium-r-*--*-cns11643*2"
+       ;; "-*-fixed-medium-r-*--*-cns11643*3"
+       ;; "-*-fixed-medium-r-*--*-cns11643*4"
+       ;; "-*-fixed-medium-r-*--*-cns11643.5-0"
+       ;; "-*-fixed-medium-r-*--*-cns11643.6-0"
+       ;; "-*-fixed-medium-r-*--*-cns11643.7-0"
+       
+       "-*-fixed-medium-r-*--*-big5*-*"
+       "-*-fixed-medium-r-*--*-sisheng_cwnn-0"
+
+       ;; Other fonts
+       
+       ;; "-*-fixed-medium-r-*--*-viscii1.1-1"
+       
+       ;; "-*-fixed-medium-r-*--*-mulearabic-0"
+       ;; "-*-fixed-medium-r-*--*-mulearabic-1"
+       ;; "-*-fixed-medium-r-*--*-mulearabic-2"
+
+       ;; "-*-fixed-medium-r-*--*-muleipa-1"
+       ;; "-*-fixed-medium-r-*--*-ethio-*"
+
+       "-*-mincho-medium-r-*--*-ksc5601.1987-*" ; Korean
+       "-*-fixed-medium-r-*--*-tis620.2529-1"   ; Thai
+       )
+     'global '(mule-fonts) 'append)
+
+    (setq mule-x-win-initted t)))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/mule/viet-chars.el	Mon Aug 13 11:10:50 2007 +0200
@@ -0,0 +1,57 @@
+;;; vietnamese-chars.el --- pre-loaded support for Vietnamese, part 1.
+
+;; Copyright (C) 1992,93,94,95 Free Software Foundation, Inc.
+;; Copyright (C) 1995 Amdahl Corporation.
+;; Copyright (C) 1995 Sun Microsystems.
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the 
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Synched up with: Mule 2.3.
+
+;; We have to split up the Vietnamese stuff into two files because
+;; we are registering new charsets and then immediately using characters
+;; from those sets.  We cannot reliably expect this to work if they
+;; are in the same file because of the buffering that happens while
+;; reading -- the place where we use the newly-defined sets may be
+;; read in before the code that creates those sets is evaluated.
+
+;; Vietnamese VISCII with two tables.
+(make-charset 'vietnamese-viscii-lower "VISCII lower (Vietnamese)"
+	      '(registry "VISCII1.1"
+		dimension 1
+		chars 96
+		final ?1
+		graphic 1
+		))
+
+(make-charset 'vietnamese-viscii-upper "VISCII upper (Vietnamese)"
+	      '(registry "VISCII1.1"
+		dimension 1
+		chars 96
+		final ?2
+		graphic 1
+		))
+
+(modify-syntax-entry 'vietnamese-viscii-lower "w")
+(modify-syntax-entry 'vietnamese-viscii-upper "w")
+
+(define-category ?v "Vietnamese character.")
+(modify-category-entry 'vietnamese-viscii-lower ?v)
+(modify-category-entry 'vietnamese-viscii-upper ?v)
+
+;;; vietnamese-chars.el ends here
--- a/lisp/package-admin.el	Mon Aug 13 11:10:04 2007 +0200
+++ b/lisp/package-admin.el	Mon Aug 13 11:10:50 2007 +0200
@@ -177,7 +177,9 @@
 	;; Ok we need to guess
 	(if mule-related
 	    (package-admin-get-install-dir 'mule-base nil nil)
-	  (car (last late-packages)))))))
+	  (if (eq package 'xemacs-base)
+	      (car (last late-packages))
+	    (package-admin-get-install-dir 'xemacs-base nil nil)))))))
 	  
 
 
--- a/lisp/paths.el	Mon Aug 13 11:10:04 2007 +0200
+++ b/lisp/paths.el	Mon Aug 13 11:10:50 2007 +0200
@@ -129,28 +129,7 @@
 (defconst abbrev-file-name (purecopy "~/.abbrev_defs")
   "*Default name of file to read abbrevs from.")
 
-(defconst directory-abbrev-alist
-  (list
-   ;;
-   ;; This matches the default Sun automounter temporary mount points.  These
-   ;; temporary mount points may go away, so it's important that we only try
-   ;; to read files under the "advertised" mount point, rather than the
-   ;; temporary one, or it will look like files have been deleted on us.
-   ;; Whoever came up with this design is clearly a moron of the first order,
-   ;; but now we're stuck with it, no doubt until the end of time.
-   ;;
-   ;; For best results, automounter junk should go near the front of this
-   ;; list, and other user translations should come after it.
-   ;;
-   ;; You may need to change this if you're not running the Sun automounter,
-   ;; if you're not running in the default configuration.  Because the
-   ;; designers (and I use that term loosely) of the automounters failed to
-   ;; provide any uniform way of disambiguating a pathname, emacs needs to
-   ;; have knowledge about exactly how the automounter mangles pathnames
-   ;; (and this knowledge is basically impossible to derive at run-time.)
-   ;;
-   (cons (purecopy "\\`/tmp_mnt/") (purecopy "/"))
-   ))
+(defconst directory-abbrev-alist nil)
 
 ;; Formerly, the values of these variables were computed once
 ;; (at dump time).  However, with the advent of pre-compiled binaries
@@ -203,7 +182,7 @@
      l 'rmail-spool-directory
      (cond ((string-match "^[^-]+-[^-]+-sco3.2v4" system-configuration)
 	    "/usr/spool/mail/")
-	   ;; On The Bull DPX/2 /usr/spool/mail is used although 
+	   ;; On The Bull DPX/2 /usr/spool/mail is used although
 	   ;; it is usg-unix-v.
 	   ((string-match "^m68k-bull-sysv3" system-configuration)
 	    "/usr/spool/mail/")
@@ -256,8 +235,42 @@
      ;; Solaris 2 has both of these files; prefer /usr/ucb/man
      ;; because the other has nonstandard argument conventions.
      (if (file-exists-p "/usr/ucb/man")
-	 "/usr/ucb/man" "/usr/bin/man")))
-)
+	 "/usr/ucb/man" "/usr/bin/man"))
+
+    (funcall
+     l 'directory-abbrev-alist
+     ;; Try to match various conventions for automounter temporary
+     ;; mount points.  These temporary mount points may go away, so
+     ;; it's important that we only try to read files under the
+     ;; "advertised" mount point, rather than the temporary one, or it
+     ;; will look like files have been deleted on us.  Whoever came up
+     ;; with this design is clearly a moron of the first order, but
+     ;; now we're stuck with it, no doubt until the end of time.
+     ;;
+     ;; For best results, automounter junk should go near the front of this
+     ;; list, and other user translations should come after it.
+     ;;
+     ;; Our code handles the following empirically observed conventions:
+     ;; /net is an actual directory! (some systems are not broken!)
+     ;; /net/HOST -> /tmp_mnt/net/HOST (`standard' old Sun automounter)
+     ;; /net/HOST -> /tmp_mnt/HOST (BSDI 4.0)
+     ;; /net/HOST -> /a/HOST (Freebsd 2.2.x)
+     ;; /net/HOST -> /amd/HOST (seen in amd sample config files)
+     ;;
+     ;; If your system has a different convention, you may have to change this.
+     ;; Don't forget to send in a patch!
+     (when (file-directory-p "/net")
+       (append
+	(when (file-directory-p "/tmp_mnt")
+	  (if (file-directory-p "/tmp_mnt/net")
+	      '(("\\`/tmp_mnt/net/" . "/net/"))
+	    '(("\\`/tmp_mnt/" . "/net/"))))
+	(when (file-directory-p "/a")
+	  '(("\\`/a/" . "/net/")))
+	(when (file-directory-p "/amd")
+	  '(("\\`/amd/" . "/net/")))
+	)))
+))
 
 (if (running-temacs-p)
     (initialize-xemacs-paths))
--- a/lisp/process.el	Mon Aug 13 11:10:04 2007 +0200
+++ b/lisp/process.el	Mon Aug 13 11:10:50 2007 +0200
@@ -337,7 +337,7 @@
 process as a string"
   ;; by "William G. Dubuque" <wgd@zurich.ai.mit.edu>
   (with-output-to-string
-    (call-process shell-file-name nil t nil "-c" command)))
+    (call-process shell-file-name nil t nil shell-command-switch command)))
 
 (defalias 'shell-command-to-string 'exec-to-string)
 
--- a/lisp/userlock.el	Mon Aug 13 11:10:04 2007 +0200
+++ b/lisp/userlock.el	Mon Aug 13 11:10:50 2007 +0200
@@ -154,6 +154,9 @@
 		 (throw 'aual-done t))
 		((and (misc-user-event-p event) (eq (event-object event) 'yield))
 		 (signal 'file-locked (list "File is locked" fn opponent)))
+		((and (misc-user-event-p event)
+		      (eq (event-object event) 'menu-no-selection-hook))
+		 (signal 'quit nil))
 		((button-release-event-p event) ;; don't beep twice
 		 nil)
 		(t
@@ -189,6 +192,9 @@
 		 (revert-buffer nil t)
 		 (signal 'file-supersession
 			 (list fn "(reverted)")))
+		((and (misc-user-event-p event)
+		      (eq (event-object event) 'menu-no-selection-hook))
+		 (signal 'quit nil))
 		((button-release-event-p event) ;; don't beep twice
 		 nil)
 		(t
--- a/lwlib/lwlib.h	Mon Aug 13 11:10:04 2007 +0200
+++ b/lwlib/lwlib.h	Mon Aug 13 11:10:50 2007 +0200
@@ -1,8 +1,17 @@
 #ifndef LWLIB_H
 #define LWLIB_H
 
+#undef CONST
+
 #include <X11/Intrinsic.h>
 
+/* To eliminate use of `const' in the lwlib sources, define CONST_IS_LOSING. */
+#ifdef CONST_IS_LOSING
+# define CONST
+#else
+# define CONST const
+#endif
+
 #if defined (LWLIB_MENUBARS_LUCID) || defined (LWLIB_MENUBARS_MOTIF) || defined (LWLIB_MENUBARS_ATHENA)
 #define NEED_MENUBARS
 #endif
--- a/man/ChangeLog	Mon Aug 13 11:10:04 2007 +0200
+++ b/man/ChangeLog	Mon Aug 13 11:10:50 2007 +0200
@@ -1,3 +1,7 @@
+1999-03-01  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+	* XEmacs 21.2.11 is released
+
 1999-02-05  XEmacs Build Bot <builds@cvs.xemacs.org>
 
 	* XEmacs 21.2.10 is released
--- a/nt/ChangeLog	Mon Aug 13 11:10:04 2007 +0200
+++ b/nt/ChangeLog	Mon Aug 13 11:10:50 2007 +0200
@@ -1,3 +1,7 @@
+1999-03-01  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+	* XEmacs 21.2.11 is released
+
 1999-02-05  XEmacs Build Bot <builds@cvs.xemacs.org>
 
 	* XEmacs 21.2.10 is released
--- a/src/ChangeLog	Mon Aug 13 11:10:04 2007 +0200
+++ b/src/ChangeLog	Mon Aug 13 11:10:50 2007 +0200
@@ -1,3 +1,35 @@
+1999-03-01  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+	* XEmacs 21.2.11 is released
+
+1999-02-25  SL Baur  <steve@xemacs.org>
+
+	* mule-charset.c (Qleading_byte): New variable to implement
+	charset-leading-byte function.
+	(Fcharset_property): Use it.
+	(syms_of_mule_charset): Initialize it.
+	From Kazuyuki IENAGA <ienaga@jsys.co.jp>
+
+1999-02-17  Kazuo Oishi <oishi@ae.agr.yamaguchi-u.ac.jp>
+
+	* glyphs-x.c (cononvert_EImage_to_XImage): correct 
+	bytes per pixel counting.
+
+1999-02-15  Andy Piper  <andy@xemacs.org>
+
+	* s/cygwin32.h (BROKEN_SIGIO): don't define this as it causes
+	major lockups.
+
+1999-02-16  Martin Buchholz  <martin@xemacs.org>
+
+	* gdbinit:  Fix up commands to run temacs.  Add lisp-shadows command.
+	* alloc.c (xcalloc):  undef xcalloc, just like xmalloc
+
+1999-02-10  Martin Buchholz  <martin@xemacs.org>
+
+	* s/bsdos4.h: New file.  Port to BSDI BSD/OS 4.0.
+	* xintrinsic.h:  Redo CONST support for X11 R4 compatibility.
+
 1999-02-05  XEmacs Build Bot <builds@cvs.xemacs.org>
 
 	* XEmacs 21.2.10 is released
--- a/src/alloc.c	Mon Aug 13 11:10:04 2007 +0200
+++ b/src/alloc.c	Mon Aug 13 11:10:50 2007 +0200
@@ -382,6 +382,10 @@
   return val;
 }
 
+#ifdef xcalloc
+#undef xcalloc
+#endif
+
 static void *
 xcalloc (size_t nelem, size_t elsize)
 {
--- a/src/console-tty.h	Mon Aug 13 11:10:04 2007 +0200
+++ b/src/console-tty.h	Mon Aug 13 11:10:50 2007 +0200
@@ -293,5 +293,6 @@
 						     Error_behavior errb);
 Lisp_Object tty_canonicalize_device_connection (Lisp_Object connection,
 						Error_behavior errb);
+struct console * tty_find_console_from_fd (int fd);
 
 #endif /* _XEMACS_CONSOLE_TTY_H_ */
--- a/src/event-msw.c	Mon Aug 13 11:10:04 2007 +0200
+++ b/src/event-msw.c	Mon Aug 13 11:10:50 2007 +0200
@@ -65,6 +65,7 @@
 #include "events-mod.h"
 #ifdef HAVE_MSG_SELECT
 #include "sysfile.h"
+#include "console-tty.h"
 #elif defined(__CYGWIN32__)
 typedef unsigned int SOCKET;
 #endif
@@ -121,10 +122,10 @@
 /* The number of things we can wait on */
 #define MAX_WAITABLE (MAXIMUM_WAIT_OBJECTS - 1)
 
+#ifndef HAVE_MSG_SELECT
 /* List of mswindows waitable handles. */
 static HANDLE mswindows_waitable_handles[MAX_WAITABLE];
 
-#ifndef HAVE_MSG_SELECT
 /* Number of wait handles */
 static int mswindows_waitable_count=0;
 #endif /* HAVE_MSG_SELECT */
@@ -1322,28 +1323,6 @@
 	  pointer_to_this = &select_time_to_block;
 	}
 
-      /* select() is slow and buggy so if we don't have any processes
-         just wait as normal */
-      if (memcmp (&process_only_mask, &zero_mask, sizeof(SELECT_TYPE))==0)
-	{
-	  /* Now try getting a message or process event */
-	  active = MsgWaitForMultipleObjects (0, mswindows_waitable_handles,
-					      FALSE, badly_p ? INFINITE : 0,
-					      QS_ALLINPUT);
-	  
-	  if (active == WAIT_TIMEOUT)
-	    {
-	      /* No luck trying - just return what we've already got */
-	      return;
-	    }
-	  else if (active == WAIT_OBJECT_0)
-	    {
-	      /* Got your message, thanks */
-	      mswindows_drain_windows_queue ();
-	      continue;
-	    }
-	}
-
       active = select (MAXDESC, &temp_mask, 0, 0, pointer_to_this);
       
       if (active == 0)
@@ -1356,7 +1335,28 @@
 	    {
 	      mswindows_drain_windows_queue ();
 	    }
-	  
+#ifdef HAVE_TTY	  
+	  /* Look for a TTY event */
+	  for (i = 0; i < MAXDESC-1; i++)
+	    {
+	      /* To avoid race conditions (among other things, an infinite
+		 loop when called from Fdiscard_input()), we must return
+		 user events ahead of process events. */
+	      if (FD_ISSET (i, &temp_mask) && FD_ISSET (i, &tty_only_mask))
+		{
+		  struct console *c = tty_find_console_from_fd (i);
+		  Lisp_Object emacs_event = Fmake_event (Qnil, Qnil);
+		  struct Lisp_Event* event = XEVENT (emacs_event);
+		  
+		  assert (c);
+		  if (read_event_from_tty_or_stream_desc (event, c, i))
+		    {
+		      mswindows_enqueue_dispatch_event (emacs_event);
+		      return;
+		    }
+		}
+	    }
+#endif
 	  /* Look for a process event */
 	  for (i = 0; i < MAXDESC-1; i++)
 	    {
@@ -1369,11 +1369,6 @@
 		      
 		      mswindows_enqueue_process_event (p);
 		    }
-		  else if (FD_ISSET (i, &tty_only_mask))
-		    {
-				/* do we care about tty events? Do we
-                                   ever get tty events? */
-		    }
 		  else
 		    {
 		      /* We might get here when a fake event came
@@ -2674,11 +2669,23 @@
 static void
 emacs_mswindows_select_console (struct console *con)
 {
+#ifdef HAVE_MSG_SELECT
+  if (CONSOLE_MSWINDOWS_P (con))
+    return; /* mswindows consoles are automatically selected */
+
+  event_stream_unixoid_select_console (con);
+#endif
 }
 
 static void
 emacs_mswindows_unselect_console (struct console *con)
 {
+#ifdef HAVE_MSG_SELECT
+  if (CONSOLE_MSWINDOWS_P (con))
+    return; /* mswindows consoles are automatically selected */
+
+  event_stream_unixoid_unselect_console (con);
+#endif
 }
 
 static void
--- a/src/event-stream.c	Mon Aug 13 11:10:04 2007 +0200
+++ b/src/event-stream.c	Mon Aug 13 11:10:50 2007 +0200
@@ -5374,8 +5374,7 @@
   if (initialized)
     {
 #ifdef HAVE_UNIXOID_EVENT_LOOP
-      /*      if (strcmp (display_use, "mswindows") != 0)*/
-	init_event_unixoid ();
+      init_event_unixoid ();
 #endif
 #ifdef HAVE_X_WINDOWS
       if (!strcmp (display_use, "x"))
@@ -5390,12 +5389,13 @@
 	  {
 	    /* For TTY's, use the Xt event loop if we can; it allows
 	       us to later open an X connection. */
-#if defined (HAVE_X_WINDOWS) && !defined (DEBUG_TTY_EVENT_STREAM)
+#if defined (HAVE_MS_WINDOWS) && defined (HAVE_MSG_SELECT) \
+	    && !defined (DEBUG_TTY_EVENT_STREAM)
+	    init_event_mswindows_late ();
+#elif defined (HAVE_X_WINDOWS) && !defined (DEBUG_TTY_EVENT_STREAM)
 	    init_event_Xt_late ();
 #elif defined (HAVE_TTY)
 	    init_event_tty_late ();
-#elif defined (HAVE_MS_WINDOWS)
-	    init_event_mswindows_late ();
 #endif
 	  }
       init_interrupts_late ();
--- a/src/event-tty.c	Mon Aug 13 11:10:04 2007 +0200
+++ b/src/event-tty.c	Mon Aug 13 11:10:50 2007 +0200
@@ -94,8 +94,8 @@
 			     non_fake_input_wait_mask);
 }
 
-static struct console *
-find_console_from_fd (int fd)
+struct console *
+tty_find_console_from_fd (int fd)
 {
   Lisp_Object concons;
 
@@ -142,7 +142,7 @@
 		 user events ahead of process events. */
 	      if (FD_ISSET (i, &temp_mask) && FD_ISSET (i, &tty_only_mask))
 		{
-		  struct console *c = find_console_from_fd (i);
+		  struct console *c = tty_find_console_from_fd (i);
 
 		  assert (c);
 		  if (read_event_from_tty_or_stream_desc (emacs_event, c, i))
--- a/src/gdbinit	Mon Aug 13 11:10:04 2007 +0200
+++ b/src/gdbinit	Mon Aug 13 11:10:50 2007 +0200
@@ -122,9 +122,23 @@
   end
 end
 
-define run-temacs
+define lisp-shadows
+  run -batch -vanilla -f list-load-path-shadows
+end
+
+document lisp-shadows
+Usage: lisp-shadows
+Run xemacs to check for lisp shadows
+end
+
+define environment-to-run-temacs
   unset env EMACSLOADPATH
-  set env EMACSBOOTSTRAPLOADPATH ../lisp/:..
+  set env EMACSBOOTSTRAPLOADPATH   = ../lisp/:..
+  set env EMACSBOOTSTRAPMODULEPATH = ../lisp/
+end
+
+define run-temacs
+  environment-to-run-temacs
   run -batch -l ../lisp/loadup.el run-temacs -q
 end
 
@@ -136,8 +150,7 @@
 end
 
 define update-elc
-  unset env EMACSLOADPATH
-  set env EMACSBOOTSTRAPLOADPATH ../lisp/:..
+  environment-to-run-temacs
   run -batch -l ../lisp/update-elc.el
 end
 
@@ -149,8 +162,7 @@
 end
 
 define dump-temacs
-  unset env EMACSLOADPATH
-  set env EMACSBOOTSTRAPLOADPATH ../lisp/:..
+  environment-to-run-temacs
   run -batch -l ../lisp/loadup.el dump
 end
 
--- a/src/glyphs-x.c	Mon Aug 13 11:10:04 2007 +0200
+++ b/src/glyphs-x.c	Mon Aug 13 11:10:50 2007 +0200
@@ -124,7 +124,7 @@
   Colormap cmap;
   Visual *vis;
   XImage *outimg;
-  int depth, bitmap_pad, byte_cnt, i, j;
+  int depth, bitmap_pad, bits_per_pixel, byte_cnt, i, j;
   int rd,gr,bl,q;
   unsigned char *data, *ip, *dp;
   quant_table *qtable = 0;
@@ -149,13 +149,15 @@
   bitmap_pad = ((depth > 16) ? 32 :
 		(depth >  8) ? 16 :
 		8);
-  byte_cnt = bitmap_pad >> 3;
 
   outimg = XCreateImage (dpy, vis,
 			 depth, ZPixmap, 0, 0, width, height,
 			 bitmap_pad, 0);
   if (!outimg) return NULL;
 
+  bits_per_pixel = outimg->bits_per_pixel;
+  byte_cnt = bits_per_pixel >> 3;
+
   data = (unsigned char *) xmalloc (outimg->bytes_per_line * height);
   if (!data)
     {
--- a/src/mule-charset.c	Mon Aug 13 11:10:04 2007 +0200
+++ b/src/mule-charset.c	Mon Aug 13 11:10:50 2007 +0200
@@ -108,6 +108,7 @@
 Lisp_Object Qdirection;
 Lisp_Object Qreverse_direction_charset;
 Lisp_Object Qccl_program;
+Lisp_Object Qleading_byte;
 
 Lisp_Object Qascii, Qcontrol_1,
 
@@ -922,6 +923,7 @@
   if (EQ (prop, Qchars))       return make_int (CHARSET_CHARS (cs));
   if (EQ (prop, Qregistry))    return CHARSET_REGISTRY (cs);
   if (EQ (prop, Qccl_program)) return CHARSET_CCL_PROGRAM (cs);
+  if (EQ (prop, Qleading_byte)) return make_char (CHARSET_LEADING_BYTE (cs));
   if (EQ (prop, Qdirection))
     return CHARSET_DIRECTION (cs) == CHARSET_LEFT_TO_RIGHT ? Ql2r : Qr2l;
   if (EQ (prop, Qreverse_direction_charset))
@@ -1173,6 +1175,7 @@
   defsymbol (&Qdirection, "direction");
   defsymbol (&Qreverse_direction_charset, "reverse-direction-charset");
   defsymbol (&Qccl_program, "ccl-program");
+  defsymbol (&Qleading_byte, "leading-byte");
 
   defsymbol (&Ql2r, "l2r");
   defsymbol (&Qr2l, "r2l");
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/s/bsdos4.h	Mon Aug 13 11:10:50 2007 +0200
@@ -0,0 +1,10 @@
+#include "bsdos3.h"
+
+/* BSD/OS seems to have switched to ELF format for executables. */
+#ifdef __ELF__
+
+#undef ORDINARY_LINK
+#define ORDINARY_LINK 1
+#define UNEXEC unexelf.o
+
+#endif /* ELF */
--- a/src/s/cygwin32.h	Mon Aug 13 11:10:04 2007 +0200
+++ b/src/s/cygwin32.h	Mon Aug 13 11:10:50 2007 +0200
@@ -127,7 +127,12 @@
 #define UNEXEC "unexcw.o"
 
 #ifdef CYGWIN_VERSION_DLL_MAJOR
+#if 0
+/* ### FIXME: although defining BROKEN_SIGIO is correct for proper ^G
+   behavior, bugs in cygwin mean that xemacs locks up frequently if
+   this is defined.  */
 #define BROKEN_SIGIO
+#endif
 #else
 #define PROCESS_IO_BLOCKING
 #endif
--- a/src/xintrinsic.h	Mon Aug 13 11:10:04 2007 +0200
+++ b/src/xintrinsic.h	Mon Aug 13 11:10:50 2007 +0200
@@ -23,4 +23,8 @@
 
 #include <X11/Intrinsic.h>
 
-#define CONST const
+#ifdef CONST_IS_LOSING
+# define CONST
+#else
+# define CONST const
+#endif
--- a/tests/ChangeLog	Mon Aug 13 11:10:04 2007 +0200
+++ b/tests/ChangeLog	Mon Aug 13 11:10:50 2007 +0200
@@ -1,3 +1,7 @@
+1999-03-01  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+	* XEmacs 21.2.11 is released
+
 1999-02-05  XEmacs Build Bot <builds@cvs.xemacs.org>
 
 	* XEmacs 21.2.10 is released
--- a/tests/automated/database-tests.el	Mon Aug 13 11:10:04 2007 +0200
+++ b/tests/automated/database-tests.el	Mon Aug 13 11:10:50 2007 +0200
@@ -36,8 +36,11 @@
      (push (file-name-directory load-file-name) load-path)
      (require 'test-harness))))
 
-(flet ((test-database
-	(db)
+(flet ((delete-database-files (filename)
+	(dolist (fn (list filename (concat filename ".db")))
+	  (ignore-file-errors (delete-file fn))))
+
+       (test-database (db)
 	(Assert (databasep db))
 	(put-database "key1" "val1" db)
 	(Assert (equal "val1" (get-database "key1" db)))
@@ -45,18 +48,13 @@
 	(Assert (equal nil (get-database "key1" db)))
 	(close-database db)
 	(Assert (not (database-live-p db)))
-	(Assert (databasep db))
-	(let ((filename (database-file-name db)))
-	  (dolist (fn (list filename (concat filename ".db")))
-	    (condition-case nil (delete-file fn) (file-error nil))))))
+	(Assert (databasep db))))
 
   (let ((filename (expand-file-name "test-harness" (temp-directory))))
 
-    (dolist (fn (list filename (concat filename ".db")))
-      (ignore-file-errors (delete-file fn)))
-
     (dolist (db-type `(dbm berkeley-db))
       (when (featurep db-type)
 	(princ "\n")
-	(test-database (open-database filename db-type))))
-    ))
+	(delete-database-files filename)
+	(test-database (open-database filename db-type))
+	(delete-database-files filename)))))
--- a/version.sh	Mon Aug 13 11:10:04 2007 +0200
+++ b/version.sh	Mon Aug 13 11:10:50 2007 +0200
@@ -1,8 +1,8 @@
 #!/bin/sh
 emacs_major_version=21
 emacs_minor_version=2
-emacs_beta_version=10
-xemacs_codename="Boreas"
+emacs_beta_version=11
+xemacs_codename="Calliope"
 infodock_major_version=4
 infodock_minor_version=0
 infodock_build_version=1