XEmacs 21.2.44 "Thalia".
authortomo <tomo>
Mon, 31 Dec 2001 20:02:55 +0000 (20:02 +0000)
committertomo <tomo>
Mon, 31 Dec 2001 20:02:55 +0000 (20:02 +0000)
89 files changed:
CHANGES-beta
ChangeLog
Makefile.in.in
config.guess
config.sub
configure
configure.in
etc/etags.1
info/lispref.info
info/lispref.info-7
info/lispref.info-9
info/xemacs.info
info/xemacs.info-1
lib-src/ChangeLog
lib-src/etags.c
lib-src/gnuclient.c
lib-src/gnuserv.c
lib-src/gnuslib.c
lib-src/pop.c
lisp/ChangeLog
lisp/gutter-items.el
lisp/gutter.el
lisp/mwheel.el
lisp/sound.el
lisp/startup.el
lwlib/ChangeLog
lwlib/config.h.in
lwlib/lwlib-Xm.c
lwlib/xlwcheckbox.c
lwlib/xlwgauge.c
lwlib/xlwgcs.c
lwlib/xlwgcs.h
lwlib/xlwradio.c
man/ChangeLog
man/lispref/eval.texi
man/lispref/variables.texi
man/xemacs/packages.texi
man/xemacs/programs.texi
man/xemacs/xemacs.texi
netinstall/ChangeLog
netinstall/res.rc
nt/ChangeLog
src/.gdbinit
src/ChangeLog
src/abbrev.c
src/alloc.c
src/buffer.c
src/chartab.c
src/chartab.h
src/cmdloop.c
src/commands.h
src/config.h.in
src/console-x.h
src/data.c
src/dired-msw.c
src/dumper.c
src/eldap.c
src/elhash.c
src/emacs.c
src/eval.c
src/event-Xt.c
src/event-msw.c
src/event-stream.c
src/extents.c
src/glyphs-widget.c
src/hpplay.c
src/keymap.c
src/lisp-disunion.h
src/lisp.h
src/m/hp9000s300.h
src/m/sun386.h
src/mule-canna.c
src/mule-wnnfns.c
src/nt.c
src/process-unix.c
src/profile.c
src/ralloc.c
src/redisplay.c
src/regex.c
src/select-x.c
src/select.c
src/sound.c
src/symbols.c
src/symeval.h
src/sysproc.h
src/tparam.c
src/window.c
tests/ChangeLog
version.sh

index ed3607b..1421817 100644 (file)
@@ -1,3 +1,21 @@
+to 21.2.44 "Thalia"
+-- Upgrade to etags 14.15 -- Francesco Potorti
+-- XEmacs now works on Unixware 7 -- Martin Buchholz
+-- Work around AIX C compiler bug causing "scroll-up has no effect" 
+   -- Martin Buchholz
+-- Fix crash in kill-emacs -- Martin Buchholz
+-- XEmacs builds with gcc 2.97 -- Martin Buchholz
+-- XEmacs builds with g++ 2.97 -- Martin Buchholz
+-- Port .gdbinit debugging support to many systems -- Martin Buchholz
+-- XEmacs builds on mips-sgi-irix6.5 with 64-bit compilers -- Martin Buchholz
+-- The C variable containing the value of a DEFVAR_INT is now
+   EMACS_INT, not int -- Martin Buchholz
+-- config.sug, config.guess upgraded to official versions -- Martin Buchholz
+-- Support mouse-6 and mouse-7 for newfangled mice -- Martin Buchholz
+-- portable dumper alignment fixes -- Martin Buchholz
+-- sound fixes -- Didier Verna
+-- Progress gauge now goes away if C-g'ed -- Andy Piper
+
 to 21.2.43 "Terspichore"
 -- Important gnuserv security fix.  Upgrade if you use gnuserv.
    -- Klaus Frank, Jan Vroonhof, Gunnar Evermann
index 8310742..b81197a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,31 @@
+2001-02-08  Martin Buchholz <martin@xemacs.org>
+
+       * XEmacs 21.2.44 "Thalia" is released.
+
+2001-01-16  Mike Sperber <mike@xemacs.org>
+
+       * configure.in: Remove bogus path variable definitions.
+       Reflect the fact that specifying --datadir also affects docdir and
+       archlibdir.
+
+2001-02-06  Martin Buchholz  <martin@xemacs.org>
+
+       * configure.in: Only use -Wpointer-arith on non-glibc systems.
+
+2001-02-02  Martin Buchholz  <martin@xemacs.org>
+
+       * configure.in (wnn): Make sure wnn/commonhd.h can be #included,
+       for the sake of gcc 2.97 fixincludes, which breaks it.
+
+2001-01-27  Martin Buchholz  <martin@xemacs.org>
+
+       * configure.in: Check for util.h for NetBSD's openpty.
+
+2001-01-28  Martin Buchholz  <martin@xemacs.org>
+
+       * config.sub: Upgrade to offical version 2001-01-12.
+       * config.guess: Upgrade to offical version 2001-01-17.
+
 2001-01-26  Martin Buchholz <martin@xemacs.org>
 
        * XEmacs 21.2.43 "Terspichore" is released.
index 04c1805..10150e6 100644 (file)
@@ -300,14 +300,6 @@ lisp/auto-autoloads.el:    FRC.lisp.auto.autoloads.el
        ${blddir}/src/${PROGNAME} -batch -vanilla \
                -f batch-byte-compile lisp/auto-autoloads.el
        @$(RM) lisp/auto-autoloads.el~
-#ifdef MULE
-       $(RM) lisp/mule/auto-autoloads.el
-       ${blddir}/src/${PROGNAME} -batch -vanilla \
-               -l autoload -f batch-update-directory lisp/mule
-       ${blddir}/src/${PROGNAME} -batch -vanilla \
-               -f batch-byte-compile lisp/mule/auto-autoloads.el
-       @$(RM) lisp/mule/auto-autoloads.el~
-#endif
 
 FRC.lisp.custom.load.el:
 lisp/custom-load.el: FRC.lisp.custom.load.el
index b4faaed..32a779b 100755 (executable)
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
 #   Free Software Foundation, Inc.
 
-version='2000-05-30'
+timestamp='2001-01-17'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -32,7 +32,7 @@ version='2000-05-30'
 # exits with 0.  Otherwise, it exits with 1.
 #
 # The plan is that this can be called by configure scripts if you
-# don't specify an explicit system type (host/target name).
+# don't specify an explicit build system type.
 #
 # Only a few systems have been added to this list; please add others
 # (but try to keep the structure clean).
@@ -43,19 +43,34 @@ me=`echo "$0" | sed -e 's,.*/,,'`
 usage="\
 Usage: $0 [OPTION]
 
-Output the configuration name of this system.
+Output the configuration name of the system \`$me' is run on.
 
 Operation modes:
-  -h, --help               print this help, then exit
-  -V, --version            print version number, then exit"
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99, 2000
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
 
 help="
 Try \`$me --help' for more information."
 
 # Parse command line
 while test $# -gt 0 ; do
-  case "$1" in
-    --version | --vers* | -V )
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit 0 ;;
+    --version | -v )
        echo "$version" ; exit 0 ;;
     --help | --h* | -h )
        echo "$usage"; exit 0 ;;
@@ -64,9 +79,7 @@ while test $# -gt 0 ; do
     - )        # Use stdin as input.
        break ;;
     -* )
-       exec >&2
-       echo "$me: invalid option $1"
-       echo "$help"
+       echo "$me: invalid option $1$help" >&2
        exit 1 ;;
     * )
        break ;;
@@ -78,19 +91,30 @@ if test $# != 0; then
   exit 1
 fi
 
-# Use $HOST_CC if defined. $CC may point to a cross-compiler
-if test x"$CC_FOR_BUILD" = x; then
-  if test x"$HOST_CC" != x; then
-    CC_FOR_BUILD="$HOST_CC"
-  else
-    if test x"$CC" != x; then
-      CC_FOR_BUILD="$CC"
-    else
-      CC_FOR_BUILD=cc
-    fi
-  fi
-fi
 
+dummy=dummy-$$
+trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script.
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,)    echo "int dummy(){}" > $dummy.c
+       for c in cc gcc c89 ; do
+         ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1
+         if test $? = 0 ; then
+            CC_FOR_BUILD="$c"; break
+         fi
+       done
+       rm -f $dummy.c $dummy.o $dummy.rel
+       if test x"$CC_FOR_BUILD" = x ; then
+         CC_FOR_BUILD=no_compiler_found
+       fi
+       ;;
+ ,,*)   CC_FOR_BUILD=$CC ;;
+ ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
+esac
 
 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
 # (ghazi@noc.rutgers.edu 8/24/94.)
@@ -100,12 +124,9 @@ fi
 
 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
-dummy=dummy-$$
-trap 'rm -f $dummy.c $dummy.o $dummy; exit 1' 1 2 15
-
 # Note: order is significant - the case branches are not exclusive.
 
 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
@@ -119,7 +140,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        # object file format.
        # Determine the machine/vendor (is the vendor relevant).
        case "${UNAME_MACHINE}" in
-           amiga) machine=m68k-cbm ;;
+           amiga) machine=m68k-unknown ;;
            arm32) machine=arm-unknown ;;
            atari*) machine=m68k-atari ;;
            sun3*) machine=m68k-sun ;;
@@ -129,16 +150,24 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
            ibmrt|romp-ibm) machine=romp-ibm ;;
            *) machine=${UNAME_MACHINE}-unknown ;;
        esac
-       # The Operating System including object format.
-       if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
-               | grep __ELF__ >/dev/null
-       then
-           # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
-           # Return netbsd for either.  FIX?
-           os=netbsd
-       else
-           os=netbsdelf
-       fi
+       # The Operating System including object format, if it has switched
+       # to ELF recently, or will in the future.
+       case "${UNAME_MACHINE}" in
+           i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k)
+               if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+                       | grep __ELF__ >/dev/null
+               then
+                   # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+                   # Return netbsd for either.  FIX?
+                   os=netbsd
+               else
+                   os=netbsdelf
+               fi
+               ;;
+           *)
+               os=netbsd
+               ;;
+       esac
        # The OS release
        release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
        # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
@@ -215,7 +244,7 @@ EOF
        echo alpha-dec-winnt3.5
        exit 0 ;;
     Amiga*:UNIX_System_V:4.0:*)
-       echo m68k-cbm-sysv4
+       echo m68k-unknown-sysv4
        exit 0;;
     amiga:OpenBSD:*:*)
        echo m68k-unknown-openbsd${UNAME_RELEASE}
@@ -247,7 +276,7 @@ EOF
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
        echo arm-acorn-riscix${UNAME_RELEASE}
        exit 0;;
-    SR2?01:HI-UX/MPP:*:*)
+    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
        echo hppa1.1-hitachi-hiuxmpp
        exit 0;;
     Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
@@ -473,6 +502,19 @@ EOF
        fi
        echo ${IBM_ARCH}-ibm-aix${IBM_REV}
        exit 0 ;;
+    *:AIX:*:5)
+       case "`lsattr -El proc0 -a type -F value`" in
+           PowerPC*) IBM_ARCH=powerpc
+                     IBM_MANUF=ibm ;;
+           Itanium)  IBM_ARCH=ia64
+                     IBM_MANUF=unknown ;;
+           POWER*)   IBM_ARCH=power
+                     IBM_MANUF=ibm ;;
+           *)        IBM_ARCH=powerpc
+                     IBM_MANUF=ibm ;;
+       esac
+       echo ${IBM_ARCH}-${IBM_MANUF}-aix${UNAME_VERSION}.${UNAME_RELEASE}
+       exit 0 ;;
     *:AIX:*:*)
        echo rs6000-ibm-aix
        exit 0 ;;
@@ -495,10 +537,28 @@ EOF
        echo m68k-hp-bsd4.4
        exit 0 ;;
     9000/[34678]??:HP-UX:*:*)
+       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
        case "${UNAME_MACHINE}" in
            9000/31? )            HP_ARCH=m68000 ;;
            9000/[34]?? )         HP_ARCH=m68k ;;
            9000/[678][0-9][0-9])
+              case "${HPUX_REV}" in
+                11.[0-9][0-9])
+                  if [ -x /usr/bin/getconf ]; then
+                    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+                    case "${sc_cpu_version}" in
+                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+                      532)                      # CPU_PA_RISC2_0
+                        case "${sc_kernel_bits}" in
+                          32) HP_ARCH="hppa2.0n" ;;
+                          64) HP_ARCH="hppa2.0w" ;;
+                        esac ;;
+                    esac
+                  fi ;;
+              esac
+              if [ "${HP_ARCH}" = "" ]; then
               sed 's/^              //' << EOF >$dummy.c
 
               #define _HPUX_SOURCE
@@ -533,11 +593,16 @@ EOF
               }
 EOF
        (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
+       if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
        rm -f $dummy.c $dummy
+       fi ;;
        esac
-       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
        echo ${HP_ARCH}-hp-hpux${HPUX_REV}
        exit 0 ;;
+    ia64:HP-UX:*:*)
+       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+       echo ia64-hp-hpux${HPUX_REV}
+       exit 0 ;;
     3050*:HI-UX:*:*)
        sed 's/^        //' << EOF >$dummy.c
        #include <unistd.h>
@@ -628,23 +693,24 @@ EOF
     CRAY*TS:*:*:*)
        echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
        exit 0 ;;
-    CRAY*T3E:*:*:*)
+    CRAY*T3D:*:*:*)
        echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
        exit 0 ;;
+    CRAY*T3E:*:*:*)
+       echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit 0 ;;
     CRAY*SV1:*:*:*)
        echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
        exit 0 ;;
     CRAY-2:*:*:*)
        echo cray2-cray-unicos
         exit 0 ;;
-    F300:UNIX_System_V:*:*)
+    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+       FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
         FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
         FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
-        echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
         exit 0 ;;
-    F301:UNIX_System_V:*:*)
-       echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'`
-       exit 0 ;;
     hp300:OpenBSD:*:*)
        echo m68k-unknown-openbsd${UNAME_RELEASE}
        exit 0 ;;
@@ -669,6 +735,9 @@ EOF
     i*:MINGW*:*)
        echo ${UNAME_MACHINE}-pc-mingw32
        exit 0 ;;
+    i*:PW*:*)
+       echo ${UNAME_MACHINE}-pc-pw32
+       exit 0 ;;
     i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
        # How do we know it's Interix rather than the generic POSIX subsystem?
        # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
@@ -687,13 +756,15 @@ EOF
     *:GNU:*:*)
        echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
        exit 0 ;;
+    i*86:Minix:*:*)
+       echo ${UNAME_MACHINE}-pc-minix
+       exit 0 ;;
     *:Linux:*:*)
 
        # The BFD linker knows what the default object file format is, so
        # first see if it will tell us. cd to the root directory to prevent
        # problems with other programs or directories called `ld' in the path.
-       ld_help_string=`cd /; ld --help 2>&1`
-       ld_supported_emulations=`echo $ld_help_string \
+       ld_supported_emulations=`cd /; ld --help 2>&1 \
                         | sed -ne '/supported emulations:/!d
                                    s/[         ][      ]*/ /g
                                    s/.*supported emulations: *//
@@ -709,8 +780,7 @@ EOF
                exit 0
                ;;
          elf_i?86)
-               echo "${UNAME_MACHINE}-pc-linux"
-               exit 0
+               TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
                ;;
          i?86coff)
                echo "${UNAME_MACHINE}-pc-linux-gnucoff"
@@ -720,6 +790,10 @@ EOF
                echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
                exit 0
                ;;
+         elf32_sparc)
+               echo "${UNAME_MACHINE}-unknown-linux-gnu"
+               exit 0
+               ;;
          armlinux)
                echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
                exit 0
@@ -853,14 +927,30 @@ EOF
          rm -f $dummy.c $dummy
        elif test "${UNAME_MACHINE}" = "s390"; then
          echo s390-ibm-linux && exit 0
+       elif test "${UNAME_MACHINE}" = "x86_64"; then
+         echo x86_64-unknown-linux-gnu && exit 0
+       elif test "${UNAME_MACHINE}" = "parisc" -o "${UNAME_MACHINE}" = "hppa"; then
+         # Look for CPU level
+         case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+           PA7*)
+               echo hppa1.1-unknown-linux-gnu
+               ;;
+           PA8*)
+               echo hppa2.0-unknown-linux-gnu
+               ;;
+           *)
+               echo hppa-unknown-linux-gnu
+               ;;
+         esac
+         exit 0
        else
          # Either a pre-BFD a.out linker (linux-gnuoldld)
          # or one that does not give us useful --help.
          # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout.
          # If ld does not provide *any* "supported emulations:"
          # that means it is gnuoldld.
-         echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:"
-         test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
+         test -z "$ld_supported_emulations" \
+           && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
 
          case "${UNAME_MACHINE}" in
          i?86)
@@ -897,6 +987,7 @@ EOF
 EOF
          $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
          rm -f $dummy.c $dummy
+         test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
        fi ;;
 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.  earlier versions
 # are messed up and put the nodename in both sysname and nodename.
@@ -974,7 +1065,7 @@ EOF
        exit 0 ;;
     M68*:*:R3V[567]*:*)
        test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
-    3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
+    3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
        OS_REL=''
        test -r /etc/.relid \
        && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
@@ -997,9 +1088,12 @@ EOF
     TSUNAMI:LynxOS:2.*:*)
        echo sparc-unknown-lynxos${UNAME_RELEASE}
        exit 0 ;;
-    rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*)
+    rs6000:LynxOS:2.*:*)
        echo rs6000-unknown-lynxos${UNAME_RELEASE}
        exit 0 ;;
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:*)
+       echo powerpc-unknown-lynxos${UNAME_RELEASE}
+       exit 0 ;;
     SM[BE]S:UNIX_SV:*:*)
        echo mips-dde-sysv${UNAME_RELEASE}
        exit 0 ;;
@@ -1033,7 +1127,7 @@ EOF
     mc68*:A/UX:*:*)
        echo m68k-apple-aux${UNAME_RELEASE}
        exit 0 ;;
-    news*:NEWS-OS:*:6*)
+    news*:NEWS-OS:6*:*)
        echo mips-sony-newsos6
        exit 0 ;;
     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
@@ -1076,15 +1170,52 @@ EOF
     *:QNX:*:4*)
        echo i386-pc-qnx
        exit 0 ;;
-    NSR-W:NONSTOP_KERNEL:*:*)
+    NSR-[KW]:NONSTOP_KERNEL:*:*)
        echo nsr-tandem-nsk${UNAME_RELEASE}
        exit 0 ;;
+    *:NonStop-UX:*:*)
+       echo mips-compaq-nonstopux
+       exit 0 ;;
     BS2000:POSIX*:*:*)
        echo bs2000-siemens-sysv
        exit 0 ;;
     DS/*:UNIX_System_V:*:*)
        echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
        exit 0 ;;
+    *:Plan9:*:*)
+       # "uname -m" is not consistent, so use $cputype instead. 386
+       # is converted to i386 for consistency with other x86
+       # operating systems.
+       if test "$cputype" = "386"; then
+           UNAME_MACHINE=i386
+       else
+           UNAME_MACHINE="$cputype"
+       fi
+       echo ${UNAME_MACHINE}-unknown-plan9
+       exit 0 ;;
+    i?86:OS/2:*:*)
+       # If we were able to find `uname', then EMX Unix compatibility
+       # is probably installed.
+       echo ${UNAME_MACHINE}-pc-os2-emx
+       exit 0 ;;
+    *:TOPS-10:*:*)
+       echo pdp10-unknown-tops10
+       exit 0 ;;
+    *:TENEX:*:*)
+       echo pdp10-unknown-tenex
+       exit 0 ;;
+    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+       echo pdp10-dec-tops20
+       exit 0 ;;
+    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+       echo pdp10-xkl-tops20
+       exit 0 ;;
+    *:TOPS-20:*:*)
+       echo pdp10-unknown-tops20
+       exit 0 ;;
+    *:ITS:*:*)
+       echo pdp10-unknown-its
+       exit 0 ;;
 esac
 
 #echo '(No uname command or uname output not recognized.)' 1>&2
@@ -1227,8 +1358,9 @@ fi
 cat >&2 <<EOF
 $0: unable to guess system type
 
-The $version version of this script cannot recognize your system type.
-Please download the most up to date version of the config scripts:
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
 
     ftp://ftp.gnu.org/pub/gnu/config/
 
@@ -1237,7 +1369,7 @@ send the following data and any information you think might be
 pertinent to <config-patches@gnu.org> in order to provide the needed
 information to handle your system.
 
-config.guess version = $version
+config.guess timestamp = $timestamp
 
 uname -m = `(uname -m) 2>/dev/null || echo unknown`
 uname -r = `(uname -r) 2>/dev/null || echo unknown`
@@ -1264,7 +1396,7 @@ exit 1
 
 # Local variables:
 # eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "version='"
+# time-stamp-start: "timestamp='"
 # time-stamp-format: "%:y-%02m-%02d"
 # time-stamp-end: "'"
 # End:
index cb86fe1..fe8d4ac 100755 (executable)
@@ -1,9 +1,9 @@
 #! /bin/sh
-# Configuration validation subroutine script, version 1.1.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
+# Configuration validation subroutine script.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
 #   Free Software Foundation, Inc.
 
-version='2000-05-31'
+timestamp='2001-01-12'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -29,7 +29,6 @@ version='2000-05-31'
 # configuration script generated by Autoconf, you may include it under
 # the same distribution terms that you use for the rest of that program.
 
-# Written by Per Bothner <bothner@cygnus.com>.
 # Please send patches to <config-patches@gnu.org>.
 #
 # Configuration subroutine to validate and canonicalize a configuration type.
@@ -61,16 +60,30 @@ Usage: $0 [OPTION] CPU-MFR-OPSYS
 Canonicalize a configuration name.
 
 Operation modes:
-  -h, --help               print this help, then exit
-  -V, --version            print version number, then exit"
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
 
 help="
 Try \`$me --help' for more information."
 
 # Parse command line
 while test $# -gt 0 ; do
-  case "$1" in
-    --version | --vers* | -V )
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit 0 ;;
+    --version | -v )
        echo "$version" ; exit 0 ;;
     --help | --h* | -h )
        echo "$usage"; exit 0 ;;
@@ -79,9 +92,7 @@ while test $# -gt 0 ; do
     - )        # Use stdin as input.
        break ;;
     -* )
-       exec >&2
-       echo "$me: invalid option $1"
-       echo "$help"
+       echo "$me: invalid option $1$help"
        exit 1 ;;
 
     *local*)
@@ -106,7 +117,7 @@ esac
 # Here we must recognize all the valid KERNEL-OS combinations.
 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
-  nto-qnx* | linux-gnu*)
+  nto-qnx* | linux-gnu* | storm-chaos* | os2-emx*)
     os=-$maybe_os
     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
     ;;
@@ -132,7 +143,7 @@ case $os in
        -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
        -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
        -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-       -apple)
+       -apple | -axis)
                os=
                basic_machine=$1
                ;;
@@ -204,30 +215,38 @@ esac
 case $basic_machine in
        # Recognize the basic CPU types without company name.
        # Some are omitted here because they have special meanings below.
-       tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
-               | arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \
+       tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc \
+               | arm | arme[lb] | arm[bl]e | armv[2345] | armv[345][lb] | strongarm | xscale \
+               | pyramid | mn10200 | mn10300 | tron | a29k \
                | 580 | i960 | h8300 \
-               | x86 | ppcbe | mipsbe | mipsle | shbe | shle | armbe | armle \
+               | x86 | ppcbe | mipsbe | mipsle | shbe | shle \
                | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
                | hppa64 \
                | alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \
                | alphaev6[78] \
-               | we32k | ns16k | clipper | i370 | sh | powerpc | powerpcle \
-               | 1750a | dsp16xx | pdp11 | mips16 | mips64 | mipsel | mips64el \
+               | we32k | ns16k | clipper | i370 | sh | sh[34] \
+               | powerpc | powerpcle \
+               | 1750a | dsp16xx | pdp10 | pdp11 \
+               | mips16 | mips64 | mipsel | mips64el \
                | mips64orion | mips64orionel | mipstx39 | mipstx39el \
                | mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \
                | mips64vr5000 | miprs64vr5000el | mcore \
                | sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x \
-               | thumb | d10v | fr30 | avr)
+               | thumb | d10v | d30v | fr30 | avr | openrisc)
                basic_machine=$basic_machine-unknown
                ;;
+       m6811 | m68hc11 | m6812 | m68hc12)
+               # Motorola 68HC11/12.
+               basic_machine=$basic_machine-unknown
+               os=-none
+               ;;
        m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65 | pj | pjl)
                ;;
 
        # We use `pc' rather than `unknown'
        # because (1) that's what they normally are, and
        # (2) the word "unknown" tends to confuse beginning users.
-       i[34567]86)
+       i[234567]86 | x86_64)
          basic_machine=$basic_machine-pc
          ;;
        # Object if more than one company name word.
@@ -237,27 +256,28 @@ case $basic_machine in
                ;;
        # Recognize the basic CPU types with company name.
        # FIXME: clean up the formatting here.
-       vax-* | tahoe-* | i[34567]86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \
-             | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \
+       vax-* | tahoe-* | i[234567]86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \
+             | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | c[123]* \
+             | arm-*  | armbe-* | armle-* | armv*-* | strongarm-* | xscale-* \
              | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
              | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \
              | xmp-* | ymp-* \
-             | x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* | armbe-* | armle-* \
+             | x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* \
              | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \
              | hppa2.0n-* | hppa64-* \
              | alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \
              | alphaev6[78]-* \
              | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \
              | clipper-* | orion-* \
-             | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
+             | sparclite-* | pdp10-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
              | sparc64-* | sparcv9-* | sparc86x-* | mips16-* | mips64-* | mipsel-* \
              | mips64el-* | mips64orion-* | mips64orionel-* \
              | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \
              | mipstx39-* | mipstx39el-* | mcore-* \
-             | f301-* | armv*-* | s390-* | sv1-* | t3e-* \
+             | f30[01]-* | f700-* | s390-* | sv1-* | t3e-* \
              | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \
              | thumb-* | v850-* | d30v-* | tic30-* | c30-* | fr30-* \
-             | bs2000-*)
+             | bs2000-* | tic54x-* | c54x-* | x86_64-*)
                ;;
        # Recognize the various machine names and aliases which stand
        # for a CPU type and a company and sometimes even an OS.
@@ -294,14 +314,14 @@ case $basic_machine in
                os=-sysv
                ;;
        amiga | amiga-*)
-               basic_machine=m68k-cbm
+               basic_machine=m68k-unknown
                ;;
        amigaos | amigados)
-               basic_machine=m68k-cbm
+               basic_machine=m68k-unknown
                os=-amigaos
                ;;
        amigaunix | amix)
-               basic_machine=m68k-cbm
+               basic_machine=m68k-unknown
                os=-sysv4
                ;;
        apollo68)
@@ -355,6 +375,9 @@ case $basic_machine in
        crds | unos)
                basic_machine=m68k-crds
                ;;
+       cris | cris-* | etrax*)
+               basic_machine=cris-axis
+               ;;
        da30 | da30-*)
                basic_machine=m68k-da30
                ;;
@@ -402,6 +425,10 @@ case $basic_machine in
                basic_machine=tron-gmicro
                os=-sysv
                ;;
+       go32)
+               basic_machine=i386-pc
+               os=-go32
+               ;;
        h3050r* | hiux*)
                basic_machine=hppa1.1-hitachi
                os=-hiuxwe2
@@ -501,14 +528,6 @@ case $basic_machine in
                basic_machine=i386-unknown
                os=-vsta
                ;;
-       i386-go32 | go32)
-               basic_machine=i386-unknown
-               os=-go32
-               ;;
-       i386-mingw32 | mingw32)
-               basic_machine=i386-unknown
-               os=-mingw32
-               ;;
        iris | iris4d)
                basic_machine=mips-sgi
                case $os in
@@ -534,6 +553,10 @@ case $basic_machine in
                basic_machine=ns32k-utek
                os=-sysv
                ;;
+       mingw32)
+               basic_machine=i386-pc
+               os=-mingw32
+               ;;
        miniframe)
                basic_machine=m68000-convergent
                ;;
@@ -564,7 +587,7 @@ case $basic_machine in
                os=-coff
                ;;
        msdos)
-               basic_machine=i386-unknown
+               basic_machine=i386-pc
                os=-msdos
                ;;
        mvs)
@@ -628,6 +651,10 @@ case $basic_machine in
                basic_machine=i960-intel
                os=-mon960
                ;;
+       nonstopux)
+               basic_machine=mips-compaq
+               os=-nonstopux
+               ;;
        np1)
                basic_machine=np1-gould
                ;;
@@ -663,28 +690,28 @@ case $basic_machine in
         pc532 | pc532-*)
                basic_machine=ns32k-pc532
                ;;
-       pentium | p5 | k5 | k6 | nexen)
+       pentium | p5 | k5 | k6 | nexgen)
                basic_machine=i586-pc
                ;;
        pentiumpro | p6 | 6x86 | athlon)
                basic_machine=i686-pc
                ;;
        pentiumii | pentium2)
-               basic_machine=i786-pc
+               basic_machine=i686-pc
                ;;
-       pentium-* | p5-* | k5-* | k6-* | nexen-*)
+       pentium-* | p5-* | k5-* | k6-* | nexgen-*)
                basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
        pentiumpro-* | p6-* | 6x86-* | athlon-*)
                basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
        pentiumii-* | pentium2-*)
-               basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
        pn)
                basic_machine=pn-gould
                ;;
-       power)  basic_machine=rs6000-ibm
+       power)  basic_machine=power-ibm
                ;;
        ppc)    basic_machine=powerpc-unknown
                ;;
@@ -699,6 +726,10 @@ case $basic_machine in
        ps2)
                basic_machine=i386-ibm
                ;;
+       pw32)
+               basic_machine=i586-unknown
+               os=-pw32
+               ;;
        rom68k)
                basic_machine=m68k-rom68k
                os=-coff
@@ -790,6 +821,10 @@ case $basic_machine in
                basic_machine=t3e-cray
                os=-unicos
                ;;
+       tic54x | c54x*)
+               basic_machine=tic54x-unknown
+               os=-coff
+               ;;
        tx39)
                basic_machine=mipstx39-unknown
                ;;
@@ -885,12 +920,19 @@ case $basic_machine in
        vax)
                basic_machine=vax-dec
                ;;
+       pdp10)
+               # there are many clones, so DEC is not a safe bet
+               basic_machine=pdp10-unknown
+               ;;
        pdp11)
                basic_machine=pdp11-dec
                ;;
        we32k)
                basic_machine=we32k-att
                ;;
+       sh3 | sh4)
+               basic_machine=sh-unknown
+               ;;
        sparc | sparcv9)
                basic_machine=sparc-sun
                ;;
@@ -972,7 +1014,8 @@ case $os in
              | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
              | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
              | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
-             | -openstep* | -oskit*)
+             | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+             | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* | -os2*)
        # Remember, each alternative MUST END IN *, to match a version number.
                ;;
        -qnx*)
@@ -1033,7 +1076,7 @@ case $os in
        -ns2 )
                os=-nextstep2
                ;;
-       -nsk)
+       -nsk*)
                os=-nsk
                ;;
        # Preserve the version number of sinix5.
@@ -1070,7 +1113,7 @@ case $os in
        -xenix)
                os=-xenix
                ;;
-        -*mint | -*MiNT)
+        -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
                os=-mint
                ;;
        -none)
@@ -1104,6 +1147,9 @@ case $basic_machine in
        arm*-semi)
                os=-aout
                ;;
+       pdp10-*)
+               os=-tops20
+               ;;
         pdp11-*)
                os=-none
                ;;
@@ -1212,7 +1258,7 @@ case $basic_machine in
        *-masscomp)
                os=-rtu
                ;;
-       f301-fujitsu)
+       f30[01]-fujitsu | f700-fujitsu)
                os=-uxpv
                ;;
        *-rom68k)
@@ -1290,7 +1336,7 @@ case $basic_machine in
                        -mpw* | -macos*)
                                vendor=apple
                                ;;
-                       -*mint | -*MiNT)
+                       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
                                vendor=atari
                                ;;
                esac
@@ -1303,7 +1349,7 @@ exit 0
 
 # Local variables:
 # eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "version='"
+# time-stamp-start: "timestamp='"
 # time-stamp-format: "%:y-%02m-%02d"
 # time-stamp-end: "'"
 # End:
index 5353c07..873d9c3 100755 (executable)
--- a/configure
+++ b/configure
@@ -77,19 +77,6 @@ verbose=
 x_includes=NONE
 x_libraries=NONE
 
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${{exec_prefix}}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
 subdirs=
 MFLAGS= MAKEFLAGS=
 SHELL=${CONFIG_SHELL-/bin/sh}
@@ -662,7 +649,7 @@ EOF
 }
  ;;
              datadir )
-               { test "$extra_verbose" = "yes" && cat << \EOF
+               { test "$extra_verbose" = "yes" && cat << \EOF
     Defining INFODIR_USER_DEFINED
 EOF
 cat >> confdefs.h <<\EOF
@@ -670,7 +657,7 @@ cat >> confdefs.h <<\EOF
 EOF
 }
 
-               { test "$extra_verbose" = "yes" && cat << \EOF
+               { test "$extra_verbose" = "yes" && cat << \EOF
     Defining LISPDIR_USER_DEFINED
 EOF
 cat >> confdefs.h <<\EOF
@@ -678,7 +665,7 @@ cat >> confdefs.h <<\EOF
 EOF
 }
 
-            { test "$extra_verbose" = "yes" && cat << \EOF
+               { test "$extra_verbose" = "yes" && cat << \EOF
     Defining MODULEDIR_USER_DEFINED
 EOF
 cat >> confdefs.h <<\EOF
@@ -693,6 +680,22 @@ cat >> confdefs.h <<\EOF
 #define ETCDIR_USER_DEFINED 1
 EOF
 }
+
+               { test "$extra_verbose" = "yes" && cat << \EOF
+    Defining DOCDIR_USER_DEFINED
+EOF
+cat >> confdefs.h <<\EOF
+#define DOCDIR_USER_DEFINED 1
+EOF
+}
+
+                { test "$extra_verbose" = "yes" && cat << \EOF
+    Defining ARCHLIBDIR_USER_DEFINED
+EOF
+cat >> confdefs.h <<\EOF
+#define ARCHLIBDIR_USER_DEFINED 1
+EOF
+}
  ;;
             docdir ) { test "$extra_verbose" = "yes" && cat << \EOF
     Defining DOCDIR_USER_DEFINED
@@ -832,7 +835,7 @@ echo "  Use \`$progname --help' to show usage.") >&2 && exit 1
 fi
 
 echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:836: checking whether ln -s works" >&5
+echo "configure:839: checking whether ln -s works" >&5
 
 rm -f conftestdata
 if ln -s X conftestdata 2>/dev/null
@@ -1097,7 +1100,7 @@ EOF
 
 
 echo $ac_n "checking "host system type"""... $ac_c" 1>&6
-echo "configure:1101: checking "host system type"" >&5
+echo "configure:1104: 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/'`
@@ -1616,7 +1619,7 @@ xe_save_CFLAGS="$CFLAGS"
 # 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:1620: checking for $ac_word" >&5
+echo "configure:1623: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -1643,7 +1646,7 @@ if test -z "$CC"; then
   # 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:1647: checking for $ac_word" >&5
+echo "configure:1650: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -1691,7 +1694,7 @@ fi
       # 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:1695: checking for $ac_word" >&5
+echo "configure:1698: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -1720,7 +1723,7 @@ fi
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1724: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1727: 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'
@@ -1733,12 +1736,12 @@ cross_compiling=no
 
 cat > conftest.$ac_ext << EOF
 
-#line 1737 "configure"
+#line 1740 "configure"
 #include "confdefs.h"
 
 main(){return(0);}
 EOF
-if { (eval echo configure:1742: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1745: \"$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
@@ -1766,19 +1769,19 @@ 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:1770: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1773: 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:1775: checking whether we are using GNU C" >&5
+echo "configure:1778: 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:1782: \"$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:1785: \"$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
@@ -1796,7 +1799,7 @@ 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:1800: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1803: checking whether ${CC-cc} accepts -g" >&5
 
 echo 'void f(){}' > conftest.c
 if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
@@ -1829,7 +1832,7 @@ if   test "$with_gcc" = "no"  -a "$GCC" = "yes"; then
   # 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:1833: checking for $ac_word" >&5
+echo "configure:1836: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -1856,7 +1859,7 @@ if test -z "$CC"; then
   # 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:1860: checking for $ac_word" >&5
+echo "configure:1863: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -1904,7 +1907,7 @@ fi
       # 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:1908: checking for $ac_word" >&5
+echo "configure:1911: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -1933,7 +1936,7 @@ fi
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1937: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1940: 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'
@@ -1946,12 +1949,12 @@ cross_compiling=no
 
 cat > conftest.$ac_ext << EOF
 
-#line 1950 "configure"
+#line 1953 "configure"
 #include "confdefs.h"
 
 main(){return(0);}
 EOF
-if { (eval echo configure:1955: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1958: \"$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
@@ -1979,19 +1982,19 @@ 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:1983: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1986: 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:1988: checking whether we are using GNU C" >&5
+echo "configure:1991: 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:1995: \"$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:1998: \"$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
@@ -2009,7 +2012,7 @@ 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:2013: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:2016: checking whether ${CC-cc} accepts -g" >&5
 
 echo 'void f(){}' > conftest.c
 if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
@@ -2042,7 +2045,7 @@ elif test "$with_gcc" = "yes" -a "$GCC" != "yes" ; then
   # 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:2046: checking for $ac_word" >&5
+echo "configure:2049: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -2069,7 +2072,7 @@ if test -z "$CC"; then
   # 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:2073: checking for $ac_word" >&5
+echo "configure:2076: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -2117,7 +2120,7 @@ fi
       # 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:2121: checking for $ac_word" >&5
+echo "configure:2124: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -2146,7 +2149,7 @@ fi
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:2150: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:2153: 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'
@@ -2159,12 +2162,12 @@ cross_compiling=no
 
 cat > conftest.$ac_ext << EOF
 
-#line 2163 "configure"
+#line 2166 "configure"
 #include "confdefs.h"
 
 main(){return(0);}
 EOF
-if { (eval echo configure:2168: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2171: \"$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
@@ -2192,19 +2195,19 @@ 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:2196: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:2199: 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:2201: checking whether we are using GNU C" >&5
+echo "configure:2204: 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:2208: \"$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:2211: \"$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
@@ -2222,7 +2225,7 @@ 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:2226: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:2229: checking whether ${CC-cc} accepts -g" >&5
 
 echo 'void f(){}' > conftest.c
 if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
@@ -2259,7 +2262,7 @@ test -n "$CPP" -a -d "$CPP" && CPP=
 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:2263: checking how to run the C preprocessor" >&5
+echo "configure:2266: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -2272,13 +2275,13 @@ if test -z "$CPP"; then
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 2276 "configure"
+#line 2279 "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:2282: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2285: \"$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
   :
@@ -2289,13 +2292,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 2293 "configure"
+#line 2296 "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:2299: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2302: \"$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
   :
@@ -2306,13 +2309,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
   cat > conftest.$ac_ext <<EOF
-#line 2310 "configure"
+#line 2313 "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:2316: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2319: \"$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
   :
@@ -2338,9 +2341,9 @@ echo "$ac_t""$CPP" 1>&6
 
 
 echo $ac_n "checking for AIX""... $ac_c" 1>&6
-echo "configure:2342: checking for AIX" >&5
+echo "configure:2345: checking for AIX" >&5
 cat > conftest.$ac_ext <<EOF
-#line 2344 "configure"
+#line 2347 "configure"
 #include "confdefs.h"
 #ifdef _AIX
   yes
@@ -2367,9 +2370,9 @@ rm -f conftest*
  
 
 echo $ac_n "checking for GNU libc""... $ac_c" 1>&6
-echo "configure:2371: checking for GNU libc" >&5
+echo "configure:2374: checking for GNU libc" >&5
 cat > conftest.$ac_ext <<EOF
-#line 2373 "configure"
+#line 2376 "configure"
 #include "confdefs.h"
 #include <features.h>
 int main() {
@@ -2381,7 +2384,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:2385: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2388: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   have_glibc=yes
 else
@@ -2458,7 +2461,7 @@ EOF
 esac
 
 cat > conftest.$ac_ext <<EOF
-#line 2462 "configure"
+#line 2465 "configure"
 #include "confdefs.h"
 int main () {
 #if defined __SUNPRO_C
@@ -2472,7 +2475,7 @@ return 0;
 #endif
 }
 EOF
-if { (eval echo configure:2476: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:2479: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   :
 else
@@ -2688,15 +2691,15 @@ fi
 test "$extra_verbose" = "yes" && \
   for var in libs_machine libs_system libs_termcap libs_standard   objects_machine objects_system c_switch_machine c_switch_system   ld_switch_machine ld_switch_system unexec ld_switch_shared   ld lib_gcc ld_text_start_addr start_files ordinary_link   have_terminfo mail_use_flock mail_use_lockf; do eval "echo \"$var = '\$$var'\""; done && echo ""
 
-case "$opsys" in mingw* | cygwin*) 
+case "$opsys" in mingw* | cygwin*)
   cygwin_include=`eval "gcc -print-file-name=libc.a"` ;
   cygwin_include=`eval "dirname $cygwin_include"` ;
   cygwin_include="-I$cygwin_include/../include" ;
   extra_includes="$cygwin_include/mingw32 $cygwin_include/mingw $cygwin_include" ;
-  case "$opsys" in mingw*) 
+  case "$opsys" in mingw*)
     c_switch_system="$c_switch_system $extra_includes" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"$extra_includes\" to \$c_switch_system"; fi ;;
   esac
-  ;;   
+  ;;
 esac
 
 test "$ordinary_link" = "no" -a -z "$libs_standard" && libs_standard="-lc"
@@ -2706,17 +2709,17 @@ test "$__DECC" = "yes" && c_switch_site="$c_switch_site -std1" &&  if test "$ext
 
 if test "$__USLC__" = yes; then
   echo $ac_n "checking for whether the -Kalloca compiler flag is needed""... $ac_c" 1>&6
-echo "configure:2710: checking for whether the -Kalloca compiler flag is needed" >&5
+echo "configure:2713: checking for whether the -Kalloca compiler flag is needed" >&5
   need_kalloca=no
   cat > conftest.$ac_ext <<EOF
-#line 2713 "configure"
+#line 2716 "configure"
 #include "confdefs.h"
 
 int main() {
 void *x = alloca(4);
 ; return 0; }
 EOF
-if { (eval echo configure:2720: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2723: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   :
 else
@@ -2727,14 +2730,14 @@ else
     xe_save_c_switch_system="$c_switch_system"
     c_switch_system="$c_switch_system -Kalloca"
     cat > conftest.$ac_ext <<EOF
-#line 2731 "configure"
+#line 2734 "configure"
 #include "confdefs.h"
 
 int main() {
 void *x = alloca(4);
 ; return 0; }
 EOF
-if { (eval echo configure:2738: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2741: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
    need_kalloca=yes 
 else
@@ -2751,7 +2754,8 @@ fi
 
 if test "$cflags_specified" = "no"; then
       if   test "$GCC" = "yes"; then
-    CFLAGS="-g -O3 -Wall -Wno-switch -Wpointer-arith -Winline -Wmissing-prototypes -Wshadow"
+    CFLAGS="-g -O3 -Wall -Wno-switch -Winline -Wmissing-prototypes -Wshadow"
+            test "$have_glibc" != "yes" && CFLAGS="$CFLAGS -Wpointer-arith"
               elif test "$__SUNPRO_C" = "yes"; then
     case "$opsys" in
       sol2    ) CFLAGS="-v -xO4" ;;
@@ -2767,7 +2771,7 @@ fi
 
 if test "$GCC" = "yes"; then
 echo $ac_n "checking for buggy gcc versions""... $ac_c" 1>&6
-echo "configure:2771: checking for buggy gcc versions" >&5
+echo "configure:2775: checking for buggy gcc versions" >&5
 GCC_VERSION=`$CC --version`
 case `uname -s`:`uname -m`:$GCC_VERSION in
                    *:sun4*:2.8.1|*:sun4*:egcs-2.90.*)
@@ -2890,7 +2894,7 @@ test "$pdump" = "yes" && extra_objs="$extra_objs dumper.o" &&  if test "$extra_v
  fi
 
 echo $ac_n "checking for dynodump""... $ac_c" 1>&6
-echo "configure:2894: checking for dynodump" >&5
+echo "configure:2898: checking for dynodump" >&5
 if test "$unexec" != "unexsol2.o"; then
   echo "$ac_t""no" 1>&6
 else
@@ -2928,12 +2932,12 @@ if test "$unexec" = "unexaix.o"; then
   done
   
 echo $ac_n "checking for terminateAndUnload in -lC""... $ac_c" 1>&6
-echo "configure:2932: checking for terminateAndUnload in -lC" >&5
+echo "configure:2936: 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 2937 "configure"
+#line 2941 "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
@@ -2944,7 +2948,7 @@ int main() {
 terminateAndUnload()
 ; return 0; }
 EOF
-if { (eval echo configure:2948: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2952: \"$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
@@ -3052,7 +3056,7 @@ fi
 
 if test "$add_runtime_path" = "yes"; then
       echo $ac_n "checking "for runtime libraries flag"""... $ac_c" 1>&6
-echo "configure:3056: checking "for runtime libraries flag"" >&5
+echo "configure:3060: checking "for runtime libraries flag"" >&5
   case "$opsys" in
     sol2 ) dash_r="-R" ;;
     decosf* | linux* | irix*) dash_r="-rpath " ;;
@@ -3074,14 +3078,14 @@ if test "$GCC" = "yes"; then
   done
 fi
         cat > conftest.$ac_ext <<EOF
-#line 3078 "configure"
+#line 3082 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:3085: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3089: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   dash_r="$try_dash_r"
 else
@@ -3183,10 +3187,10 @@ else
 fi
 after_morecore_hook_exists=yes
 echo $ac_n "checking for malloc_set_state""... $ac_c" 1>&6
-echo "configure:3187: checking for malloc_set_state" >&5
+echo "configure:3191: checking for malloc_set_state" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 3190 "configure"
+#line 3194 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char malloc_set_state(); below.  */
@@ -3209,7 +3213,7 @@ malloc_set_state();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3213: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3217: \"$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
@@ -3229,16 +3233,16 @@ doug_lea_malloc=no
 fi
 
 echo $ac_n "checking whether __after_morecore_hook exists""... $ac_c" 1>&6
-echo "configure:3233: checking whether __after_morecore_hook exists" >&5
+echo "configure:3237: checking whether __after_morecore_hook exists" >&5
 cat > conftest.$ac_ext <<EOF
-#line 3235 "configure"
+#line 3239 "configure"
 #include "confdefs.h"
 extern void (* __after_morecore_hook)();
 int main() {
 __after_morecore_hook = 0
 ; return 0; }
 EOF
-if { (eval echo configure:3242: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3246: \"$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
@@ -3294,7 +3298,7 @@ fi
 # 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:3298: checking for $ac_word" >&5
+echo "configure:3302: checking for $ac_word" >&5
 
 if test -n "$RANLIB"; then
   ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
@@ -3349,7 +3353,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
 # 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:3353: checking for a BSD compatible install" >&5
+echo "configure:3357: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
 
   IFS="${IFS=  }"; ac_save_IFS="$IFS"; IFS=":"
@@ -3403,7 +3407,7 @@ do
 # 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:3407: checking for $ac_word" >&5
+echo "configure:3411: checking for $ac_word" >&5
 
 if test -n "$YACC"; then
   ac_cv_prog_YACC="$YACC" # Let the user override the test.
@@ -3435,15 +3439,15 @@ for ac_hdr in   a.out.h   elf.h   cygwin/version.h   fcntl.h   inttypes.h   libg
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3439: checking for $ac_hdr" >&5
+echo "configure:3443: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 3442 "configure"
+#line 3446 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3447: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3451: \"$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*
@@ -3473,10 +3477,10 @@ fi
 done
 
 echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
-echo "configure:3477: checking for sys/wait.h that is POSIX.1 compatible" >&5
+echo "configure:3481: checking for sys/wait.h that is POSIX.1 compatible" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 3480 "configure"
+#line 3484 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/wait.h>
@@ -3492,7 +3496,7 @@ wait (&s);
 s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
 ; return 0; }
 EOF
-if { (eval echo configure:3496: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3500: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_sys_wait_h=yes
 else
@@ -3516,10 +3520,10 @@ EOF
 fi
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:3520: checking for ANSI C header files" >&5
+echo "configure:3524: checking for ANSI C header files" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 3523 "configure"
+#line 3527 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -3527,7 +3531,7 @@ cat > conftest.$ac_ext <<EOF
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3531: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3535: \"$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*
@@ -3544,7 +3548,7 @@ rm -f conftest*
 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 3548 "configure"
+#line 3552 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -3562,7 +3566,7 @@ fi
 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 3566 "configure"
+#line 3570 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -3580,7 +3584,7 @@ fi
 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 3584 "configure"
+#line 3588 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -3591,7 +3595,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
 exit (0); }
 
 EOF
-if { (eval echo configure:3595: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:3599: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   :
 else
@@ -3617,10 +3621,10 @@ EOF
 fi
 
 echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:3621: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:3625: checking whether time.h and sys/time.h may both be included" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 3624 "configure"
+#line 3628 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
@@ -3629,7 +3633,7 @@ int main() {
 struct tm *tp;
 ; return 0; }
 EOF
-if { (eval echo configure:3633: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3637: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_time=yes
 else
@@ -3653,10 +3657,10 @@ EOF
 fi
 
 echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6
-echo "configure:3657: checking for sys_siglist declaration in signal.h or unistd.h" >&5
+echo "configure:3661: checking for sys_siglist declaration in signal.h or unistd.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 3660 "configure"
+#line 3664 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -3668,7 +3672,7 @@ int main() {
 char *msg = *(sys_siglist + 1);
 ; return 0; }
 EOF
-if { (eval echo configure:3672: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3676: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_decl_sys_siglist=yes
 else
@@ -3693,9 +3697,9 @@ fi
 
 
 echo $ac_n "checking for struct utimbuf""... $ac_c" 1>&6
-echo "configure:3697: checking for struct utimbuf" >&5
+echo "configure:3701: checking for struct utimbuf" >&5
 cat > conftest.$ac_ext <<EOF
-#line 3699 "configure"
+#line 3703 "configure"
 #include "confdefs.h"
 #ifdef TIME_WITH_SYS_TIME
 #include <sys/time.h>
@@ -3714,7 +3718,7 @@ int main() {
 static struct utimbuf x; x.actime = x.modtime;
 ; return 0; }
 EOF
-if { (eval echo configure:3718: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3722: \"$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
@@ -3734,10 +3738,10 @@ fi
 rm -f conftest*
 
 echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:3738: checking return type of signal handlers" >&5
+echo "configure:3742: checking return type of signal handlers" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 3741 "configure"
+#line 3745 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -3754,7 +3758,7 @@ int main() {
 int i;
 ; return 0; }
 EOF
-if { (eval echo configure:3758: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3762: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_type_signal=void
 else
@@ -3776,10 +3780,10 @@ EOF
 
 
 echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:3780: checking for size_t" >&5
+echo "configure:3784: checking for size_t" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 3783 "configure"
+#line 3787 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3810,10 +3814,10 @@ EOF
 fi
 
 echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:3814: checking for pid_t" >&5
+echo "configure:3818: checking for pid_t" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 3817 "configure"
+#line 3821 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3844,10 +3848,10 @@ EOF
 fi
 
 echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:3848: checking for uid_t in sys/types.h" >&5
+echo "configure:3852: checking for uid_t in sys/types.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 3851 "configure"
+#line 3855 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 EOF
@@ -3883,10 +3887,10 @@ EOF
 fi
 
 echo $ac_n "checking for mode_t""... $ac_c" 1>&6
-echo "configure:3887: checking for mode_t" >&5
+echo "configure:3891: checking for mode_t" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 3890 "configure"
+#line 3894 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3917,10 +3921,10 @@ EOF
 fi
 
 echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:3921: checking for off_t" >&5
+echo "configure:3925: checking for off_t" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 3924 "configure"
+#line 3928 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3951,10 +3955,10 @@ EOF
 fi
 
 echo $ac_n "checking for ssize_t""... $ac_c" 1>&6
-echo "configure:3955: checking for ssize_t" >&5
+echo "configure:3959: checking for ssize_t" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 3958 "configure"
+#line 3962 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3986,9 +3990,9 @@ fi
 
 
 echo $ac_n "checking for socklen_t""... $ac_c" 1>&6
-echo "configure:3990: checking for socklen_t" >&5
+echo "configure:3994: checking for socklen_t" >&5
 cat > conftest.$ac_ext <<EOF
-#line 3992 "configure"
+#line 3996 "configure"
 #include "confdefs.h"
 #include <sys/socket.h>
 socklen_t x;
@@ -3997,7 +4001,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:4001: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4005: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -4006,7 +4010,7 @@ else
   rm -rf conftest*
   
 cat > conftest.$ac_ext <<EOF
-#line 4010 "configure"
+#line 4014 "configure"
 #include "confdefs.h"
 #include <sys/socket.h>
 int accept (int, struct sockaddr *, size_t *);
@@ -4015,7 +4019,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:4019: \"$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*
   
 echo "$ac_t""size_t" 1>&6
@@ -4047,9 +4051,9 @@ fi
 rm -f conftest*
 
 echo $ac_n "checking for struct timeval""... $ac_c" 1>&6
-echo "configure:4051: checking for struct timeval" >&5
+echo "configure:4055: checking for struct timeval" >&5
 cat > conftest.$ac_ext <<EOF
-#line 4053 "configure"
+#line 4057 "configure"
 #include "confdefs.h"
 #ifdef TIME_WITH_SYS_TIME
 #include <sys/time.h>
@@ -4065,7 +4069,7 @@ int main() {
 static struct timeval x; x.tv_sec = x.tv_usec;
 ; return 0; }
 EOF
-if { (eval echo configure:4069: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4073: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
   HAVE_TIMEVAL=yes
@@ -4087,10 +4091,10 @@ fi
 rm -f conftest*
 
 echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6
-echo "configure:4091: checking whether struct tm is in sys/time.h or time.h" >&5
+echo "configure:4095: checking whether struct tm is in sys/time.h or time.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 4094 "configure"
+#line 4098 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <time.h>
@@ -4098,7 +4102,7 @@ int main() {
 struct tm *tp; tp->tm_sec;
 ; return 0; }
 EOF
-if { (eval echo configure:4102: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4106: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_struct_tm=time.h
 else
@@ -4122,10 +4126,10 @@ EOF
 fi
 
 echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6
-echo "configure:4126: checking for tm_zone in struct tm" >&5
+echo "configure:4130: checking for tm_zone in struct tm" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 4129 "configure"
+#line 4133 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <$ac_cv_struct_tm>
@@ -4133,7 +4137,7 @@ int main() {
 struct tm tm; tm.tm_zone;
 ; return 0; }
 EOF
-if { (eval echo configure:4137: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4141: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_struct_tm_zone=yes
 else
@@ -4156,10 +4160,10 @@ EOF
 
 else
   echo $ac_n "checking for tzname""... $ac_c" 1>&6
-echo "configure:4160: checking for tzname" >&5
+echo "configure:4164: checking for tzname" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 4163 "configure"
+#line 4167 "configure"
 #include "confdefs.h"
 #include <time.h>
 #ifndef tzname /* For SGI.  */
@@ -4169,7 +4173,7 @@ int main() {
 atoi(*tzname);
 ; return 0; }
 EOF
-if { (eval echo configure:4173: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4177: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_var_tzname=yes
 else
@@ -4195,10 +4199,10 @@ fi
 
 
 echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:4199: checking for working const" >&5
+echo "configure:4203: checking for working const" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 4202 "configure"
+#line 4206 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -4247,7 +4251,7 @@ ccp = (char const *const *) p;
 
 ; return 0; }
 EOF
-if { (eval echo configure:4251: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4255: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_const=yes
 else
@@ -4272,7 +4276,7 @@ fi
 
 
 echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:4276: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:4280: checking whether ${MAKE-make} sets \${MAKE}" >&5
 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
 
 cat > conftestmake <<\EOF
@@ -4297,12 +4301,12 @@ fi
 
 
 echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
-echo "configure:4301: checking whether byte ordering is bigendian" >&5
+echo "configure:4305: 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 4306 "configure"
+#line 4310 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -4313,11 +4317,11 @@ int main() {
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:4317: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4321: \"$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 4321 "configure"
+#line 4325 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -4328,7 +4332,7 @@ int main() {
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:4332: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4336: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_bigendian=yes
 else
@@ -4345,7 +4349,7 @@ fi
 rm -f conftest*
 if test $ac_cv_c_bigendian = unknown; then
 cat > conftest.$ac_ext <<EOF
-#line 4349 "configure"
+#line 4353 "configure"
 #include "confdefs.h"
 main () {
   /* Are we little or big endian?  From Harbison&Steele.  */
@@ -4358,7 +4362,7 @@ main () {
   exit (u.c[sizeof (long) - 1] == 1);
 }
 EOF
-if { (eval echo configure:4362: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4366: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_c_bigendian=no
 else
@@ -4385,10 +4389,10 @@ fi
 
 
 echo $ac_n "checking size of short""... $ac_c" 1>&6
-echo "configure:4389: checking size of short" >&5
+echo "configure:4393: checking size of short" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 4392 "configure"
+#line 4396 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -4399,7 +4403,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4403: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4407: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_sizeof_short=`cat conftestval`
 else
@@ -4427,10 +4431,10 @@ if test "$ac_cv_sizeof_short" = 0; then
   exit 1
 fi
 echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:4431: checking size of int" >&5
+echo "configure:4435: checking size of int" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 4434 "configure"
+#line 4438 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -4441,7 +4445,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4445: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4449: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_sizeof_int=`cat conftestval`
 else
@@ -4463,10 +4467,10 @@ EOF
 
 
 echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:4467: checking size of long" >&5
+echo "configure:4471: checking size of long" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 4470 "configure"
+#line 4474 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -4477,7 +4481,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4481: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4485: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_sizeof_long=`cat conftestval`
 else
@@ -4499,10 +4503,10 @@ EOF
 
 
 echo $ac_n "checking size of long long""... $ac_c" 1>&6
-echo "configure:4503: checking size of long long" >&5
+echo "configure:4507: checking size of long long" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 4506 "configure"
+#line 4510 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -4513,7 +4517,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4517: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4521: \"$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
@@ -4535,10 +4539,10 @@ EOF
 
 
 echo $ac_n "checking size of void *""... $ac_c" 1>&6
-echo "configure:4539: checking size of void *" >&5
+echo "configure:4543: checking size of void *" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 4542 "configure"
+#line 4546 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -4549,7 +4553,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:4553: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4557: \"$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
@@ -4572,7 +4576,7 @@ EOF
 
 
 echo $ac_n "checking for long file names""... $ac_c" 1>&6
-echo "configure:4576: checking for long file names" >&5
+echo "configure:4580: 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:
@@ -4618,10 +4622,10 @@ fi
 
 
 echo $ac_n "checking for sin""... $ac_c" 1>&6
-echo "configure:4622: checking for sin" >&5
+echo "configure:4626: checking for sin" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 4625 "configure"
+#line 4629 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char sin(); below.  */
@@ -4644,7 +4648,7 @@ sin();
 
 ; return 0; }
 EOF
-if { (eval echo configure:4648: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4652: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_sin=yes"
 else
@@ -4662,12 +4666,12 @@ else
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6
-echo "configure:4666: checking for sin in -lm" >&5
+echo "configure:4670: 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 4671 "configure"
+#line 4675 "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
@@ -4678,7 +4682,7 @@ int main() {
 sin()
 ; return 0; }
 EOF
-if { (eval echo configure:4682: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4686: \"$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
@@ -4722,14 +4726,14 @@ EOF
 
 
 cat > conftest.$ac_ext <<EOF
-#line 4726 "configure"
+#line 4730 "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:4733: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4737: \"$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
@@ -4746,14 +4750,14 @@ fi
 rm -f conftest*
 
 echo "checking type of mail spool file locking" 1>&6
-echo "configure:4750: checking type of mail spool file locking" >&5
+echo "configure:4754: checking type of mail spool file locking" >&5
 for ac_func in lockf flock
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4754: checking for $ac_func" >&5
+echo "configure:4758: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 4757 "configure"
+#line 4761 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -4776,7 +4780,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:4780: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4784: \"$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
@@ -4858,12 +4862,12 @@ test "$mail_locking" = "locking" -a "$ac_cv_func_locking" != "yes" && \
 case "$opsys" in decosf*)
   
 echo $ac_n "checking for cma_open in -lpthreads""... $ac_c" 1>&6
-echo "configure:4862: checking for cma_open in -lpthreads" >&5
+echo "configure:4866: 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 4867 "configure"
+#line 4871 "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
@@ -4874,7 +4878,7 @@ int main() {
 cma_open()
 ; return 0; }
 EOF
-if { (eval echo configure:4878: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4882: \"$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
@@ -4910,7 +4914,7 @@ fi
 esac
 
 echo $ac_n "checking whether the -xildoff compiler flag is required""... $ac_c" 1>&6
-echo "configure:4914: checking whether the -xildoff compiler flag is required" >&5
+echo "configure:4918: 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;
@@ -4922,7 +4926,7 @@ fi
 if test "$opsys" = "sol2"; then
   if test "$os_release" -ge 56; then
     echo $ac_n "checking for \"-z ignore\" linker flag""... $ac_c" 1>&6
-echo "configure:4926: checking for \"-z ignore\" linker flag" >&5
+echo "configure:4930: 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 ;;
@@ -4933,7 +4937,7 @@ fi
 
 
 echo "checking "for specified window system"" 1>&6
-echo "configure:4937: checking "for specified window system"" >&5
+echo "configure:4941: checking "for specified window system"" >&5
 
 if test "$with_x11" != "no"; then
     test "$x_includes $x_libraries" != "NONE NONE" && \
@@ -4966,7 +4970,7 @@ if test "$with_x11" != "no"; then
 # Uses ac_ vars as temps to allow command line to override cache and checks.
 # --without-x overrides everything else, but does not touch the cache.
 echo $ac_n "checking for X""... $ac_c" 1>&6
-echo "configure:4970: checking for X" >&5
+echo "configure:4974: checking for X" >&5
 
 # Check whether --with-x or --without-x was given.
 if test "${with_x+set}" = set; then
@@ -5026,12 +5030,12 @@ if test "$ac_x_includes" = NO; then
 
   # First, try using that file with no special directory specified.
 cat > conftest.$ac_ext <<EOF
-#line 5030 "configure"
+#line 5034 "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:5035: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5039: \"$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*
@@ -5100,14 +5104,14 @@ if test "$ac_x_libraries" = NO; then
   ac_save_LIBS="$LIBS"
   LIBS="-l$x_direct_test_library $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5104 "configure"
+#line 5108 "configure"
 #include "confdefs.h"
 
 int main() {
 ${x_direct_test_function}()
 ; return 0; }
 EOF
-if { (eval echo configure:5111: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5115: \"$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.
@@ -5216,17 +5220,17 @@ else
     case "`(uname -sr) 2>/dev/null`" in
     "SunOS 5"*)
       echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6
-echo "configure:5220: checking whether -R must be followed by a space" >&5
+echo "configure:5224: 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 5223 "configure"
+#line 5227 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:5230: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5234: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_nospace=yes
 else
@@ -5242,14 +5246,14 @@ rm -f conftest*
       else
        LIBS="$ac_xsave_LIBS -R $x_libraries"
        cat > conftest.$ac_ext <<EOF
-#line 5246 "configure"
+#line 5250 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:5253: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5257: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_space=yes
 else
@@ -5285,12 +5289,12 @@ ac_cv_lib_dnet_dnet_ntoa=no
 else
 
 echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6
-echo "configure:5289: checking for dnet_ntoa in -ldnet" >&5
+echo "configure:5293: 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 5294 "configure"
+#line 5298 "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
@@ -5301,7 +5305,7 @@ int main() {
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:5305: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5309: \"$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
@@ -5325,12 +5329,12 @@ fi
     if test $ac_cv_lib_dnet_dnet_ntoa = no; then
       
 echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6
-echo "configure:5329: checking for dnet_ntoa in -ldnet_stub" >&5
+echo "configure:5333: 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 5334 "configure"
+#line 5338 "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
@@ -5341,7 +5345,7 @@ int main() {
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:5345: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5349: \"$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
@@ -5370,10 +5374,10 @@ fi
     # The nsl library prevents programs from opening the X display
     # on Irix 5.2, according to dickey@clark.net.
     echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6
-echo "configure:5374: checking for gethostbyname" >&5
+echo "configure:5378: checking for gethostbyname" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 5377 "configure"
+#line 5381 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char gethostbyname(); below.  */
@@ -5396,7 +5400,7 @@ gethostbyname();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5400: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5404: \"$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
@@ -5417,12 +5421,12 @@ fi
     if test $ac_cv_func_gethostbyname = no; then
       
 echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:5421: checking for gethostbyname in -lnsl" >&5
+echo "configure:5425: 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 5426 "configure"
+#line 5430 "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
@@ -5433,7 +5437,7 @@ int main() {
 gethostbyname()
 ; return 0; }
 EOF
-if { (eval echo configure:5437: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5441: \"$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
@@ -5463,10 +5467,10 @@ fi
     # -lsocket must be given before -lnsl if both are needed.
     # We assume that if connect needs -lnsl, so does gethostbyname.
     echo $ac_n "checking for connect""... $ac_c" 1>&6
-echo "configure:5467: checking for connect" >&5
+echo "configure:5471: checking for connect" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 5470 "configure"
+#line 5474 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char connect(); below.  */
@@ -5489,7 +5493,7 @@ connect();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5493: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5497: \"$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
@@ -5512,12 +5516,12 @@ fi
 xe_msg_checking="for connect in -lsocket"
 test -n "$X_EXTRA_LIBS" && xe_msg_checking="$xe_msg_checking using extra libs $X_EXTRA_LIBS"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:5516: checking "$xe_msg_checking"" >&5
+echo "configure:5520: 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 5521 "configure"
+#line 5525 "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
@@ -5528,7 +5532,7 @@ int main() {
 connect()
 ; return 0; }
 EOF
-if { (eval echo configure:5532: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5536: \"$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
@@ -5552,10 +5556,10 @@ fi
 
     # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
     echo $ac_n "checking for remove""... $ac_c" 1>&6
-echo "configure:5556: checking for remove" >&5
+echo "configure:5560: checking for remove" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 5559 "configure"
+#line 5563 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char remove(); below.  */
@@ -5578,7 +5582,7 @@ remove();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5582: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5586: \"$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
@@ -5599,12 +5603,12 @@ fi
     if test $ac_cv_func_remove = no; then
       
 echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
-echo "configure:5603: checking for remove in -lposix" >&5
+echo "configure:5607: 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 5608 "configure"
+#line 5612 "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
@@ -5615,7 +5619,7 @@ int main() {
 remove()
 ; return 0; }
 EOF
-if { (eval echo configure:5619: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5623: \"$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
@@ -5639,10 +5643,10 @@ fi
 
     # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
     echo $ac_n "checking for shmat""... $ac_c" 1>&6
-echo "configure:5643: checking for shmat" >&5
+echo "configure:5647: checking for shmat" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 5646 "configure"
+#line 5650 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char shmat(); below.  */
@@ -5665,7 +5669,7 @@ shmat();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5669: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5673: \"$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
@@ -5686,12 +5690,12 @@ fi
     if test $ac_cv_func_shmat = no; then
       
 echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
-echo "configure:5690: checking for shmat in -lipc" >&5
+echo "configure:5694: 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 5695 "configure"
+#line 5699 "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
@@ -5702,7 +5706,7 @@ int main() {
 shmat()
 ; return 0; }
 EOF
-if { (eval echo configure:5706: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5710: \"$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
@@ -5738,12 +5742,12 @@ fi
 xe_msg_checking="for IceConnectionNumber in -lICE"
 test -n "$X_EXTRA_LIBS" && xe_msg_checking="$xe_msg_checking using extra libs $X_EXTRA_LIBS"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:5742: checking "$xe_msg_checking"" >&5
+echo "configure:5746: checking "$xe_msg_checking"" >&5
 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lICE $X_EXTRA_LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5747 "configure"
+#line 5751 "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
@@ -5754,7 +5758,7 @@ int main() {
 IceConnectionNumber()
 ; return 0; }
 EOF
-if { (eval echo configure:5758: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5762: \"$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
@@ -5925,7 +5929,7 @@ EOF
 
 
     echo "checking for X defines extracted by xmkmf" 1>&6
-echo "configure:5929: checking for X defines extracted by xmkmf" >&5
+echo "configure:5933: checking for X defines extracted by xmkmf" >&5
   rm -fr conftestdir
   if mkdir conftestdir; then
     cd conftestdir
@@ -5972,15 +5976,15 @@ EOF
 
     ac_safe=`echo "X11/Intrinsic.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Intrinsic.h""... $ac_c" 1>&6
-echo "configure:5976: checking for X11/Intrinsic.h" >&5
+echo "configure:5980: checking for X11/Intrinsic.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 5979 "configure"
+#line 5983 "configure"
 #include "confdefs.h"
 #include <X11/Intrinsic.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5984: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5988: \"$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*
@@ -6004,12 +6008,12 @@ fi
 
       
 echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6
-echo "configure:6008: checking for XOpenDisplay in -lX11" >&5
+echo "configure:6012: 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 6013 "configure"
+#line 6017 "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
@@ -6020,7 +6024,7 @@ int main() {
 XOpenDisplay()
 ; return 0; }
 EOF
-if { (eval echo configure:6024: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6028: \"$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
@@ -6045,12 +6049,12 @@ fi
 xe_msg_checking="for XGetFontProperty in -lX11"
 test -n "-b i486-linuxaout" && xe_msg_checking="$xe_msg_checking using extra libs -b i486-linuxaout"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:6049: checking "$xe_msg_checking"" >&5
+echo "configure:6053: 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 6054 "configure"
+#line 6058 "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
@@ -6061,7 +6065,7 @@ int main() {
 XGetFontProperty()
 ; return 0; }
 EOF
-if { (eval echo configure:6065: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6069: \"$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
@@ -6088,12 +6092,12 @@ fi
 
     
 echo $ac_n "checking for XShapeSelectInput in -lXext""... $ac_c" 1>&6
-echo "configure:6092: checking for XShapeSelectInput in -lXext" >&5
+echo "configure:6096: 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 6097 "configure"
+#line 6101 "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
@@ -6104,7 +6108,7 @@ int main() {
 XShapeSelectInput()
 ; return 0; }
 EOF
-if { (eval echo configure:6108: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6112: \"$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
@@ -6127,12 +6131,12 @@ fi
 
     
 echo $ac_n "checking for XtOpenDisplay in -lXt""... $ac_c" 1>&6
-echo "configure:6131: checking for XtOpenDisplay in -lXt" >&5
+echo "configure:6135: 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 6136 "configure"
+#line 6140 "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
@@ -6143,7 +6147,7 @@ int main() {
 XtOpenDisplay()
 ; return 0; }
 EOF
-if { (eval echo configure:6147: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6151: \"$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
@@ -6166,14 +6170,14 @@ fi
 
 
   echo $ac_n "checking the version of X11 being used""... $ac_c" 1>&6
-echo "configure:6170: checking the version of X11 being used" >&5
+echo "configure:6174: checking the version of X11 being used" >&5
   cat > conftest.$ac_ext <<EOF
-#line 6172 "configure"
+#line 6176 "configure"
 #include "confdefs.h"
 #include <X11/Intrinsic.h>
     int main(int c, char *v[]) { return c>1 ? XlibSpecificationRelease : 0; }
 EOF
-if { (eval echo configure:6177: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:6181: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ./conftest foobar; x11_release=$?
 else
@@ -6204,10 +6208,10 @@ EOF
   for ac_func in XConvertCase
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6208: checking for $ac_func" >&5
+echo "configure:6212: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 6211 "configure"
+#line 6215 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -6230,7 +6234,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6234: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6238: \"$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
@@ -6262,15 +6266,15 @@ done
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:6266: checking for $ac_hdr" >&5
+echo "configure:6270: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 6269 "configure"
+#line 6273 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6274: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6278: \"$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*
@@ -6303,10 +6307,10 @@ done
     for ac_func in XRegisterIMInstantiateCallback
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6307: checking for $ac_func" >&5
+echo "configure:6311: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 6310 "configure"
+#line 6314 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -6329,7 +6333,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6333: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6337: \"$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
@@ -6357,9 +6361,9 @@ fi
 done
 
   echo $ac_n "checking for standard XRegisterIMInstantiateCallback prototype""... $ac_c" 1>&6
-echo "configure:6361: checking for standard XRegisterIMInstantiateCallback prototype" >&5
+echo "configure:6365: checking for standard XRegisterIMInstantiateCallback prototype" >&5
   cat > conftest.$ac_ext <<EOF
-#line 6363 "configure"
+#line 6367 "configure"
 #include "confdefs.h"
 
 #define NeedFunctionPrototypes 1
@@ -6371,7 +6375,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:6375: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6379: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -6392,12 +6396,12 @@ rm -f conftest*
 
     test -z "$with_xmu" && { 
 echo $ac_n "checking for XmuReadBitmapDataFromFile in -lXmu""... $ac_c" 1>&6
-echo "configure:6396: checking for XmuReadBitmapDataFromFile in -lXmu" >&5
+echo "configure:6400: 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 6401 "configure"
+#line 6405 "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
@@ -6408,7 +6412,7 @@ int main() {
 XmuReadBitmapDataFromFile()
 ; return 0; }
 EOF
-if { (eval echo configure:6412: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6416: \"$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
@@ -6447,19 +6451,19 @@ EOF
 
       
 echo $ac_n "checking for main in -lXbsd""... $ac_c" 1>&6
-echo "configure:6451: checking for main in -lXbsd" >&5
+echo "configure:6455: 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 6456 "configure"
+#line 6460 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:6463: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6467: \"$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
@@ -6496,22 +6500,22 @@ fi
 fi 
 if test "$with_msw" != "no"; then
   echo "checking for MS-Windows" 1>&6
-echo "configure:6500: checking for MS-Windows" >&5
+echo "configure:6504: checking for MS-Windows" >&5
   
 echo $ac_n "checking for main in -lgdi32""... $ac_c" 1>&6
-echo "configure:6503: checking for main in -lgdi32" >&5
+echo "configure:6507: 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 6508 "configure"
+#line 6512 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:6515: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6519: \"$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
@@ -6544,7 +6548,7 @@ EOF
         MAKE_SUBDIR="$MAKE_SUBDIR netinstall" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"netinstall\" to \$MAKE_SUBDIR"; fi
     SRC_SUBDIR_DEPS="$SRC_SUBDIR_DEPS netinstall" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"netinstall\" to \$SRC_SUBDIR_DEPS"; fi
     INSTALL_ARCH_DEP_SUBDIR="$INSTALL_ARCH_DEP_SUBDIR netinstall" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"netinstall\" to \$INSTALL_ARCH_DEP_SUBDIR"; fi
-       
+
     install_pp="$blddir/lib-src/installexe.sh"
     libs_system="$libs_system -lshell32 -lgdi32 -luser32 -lcomdlg32 -lcomctl32 -lwinspool" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"-lshell32 -lgdi32 -luser32 -lcomdlg32 -lcomctl32 -lwinspool\" to \$libs_system"; fi
     test "$with_dragndrop" != no && dragndrop_proto="$dragndrop_proto msw" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"msw\" to \$dragndrop_proto"; fi
@@ -6582,12 +6586,12 @@ EOF
  fi
     fi
         cat > conftest.$ac_ext <<EOF
-#line 6586 "configure"
+#line 6590 "configure"
 #include "confdefs.h"
 #include <fcntl.h>
     int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; }
 EOF
-if { (eval echo configure:6591: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:6595: \"$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
@@ -6651,15 +6655,15 @@ fi
 if test "$with_x11" = "yes"; then
   ac_safe=`echo "X11/extensions/shape.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/extensions/shape.h""... $ac_c" 1>&6
-echo "configure:6655: checking for X11/extensions/shape.h" >&5
+echo "configure:6659: checking for X11/extensions/shape.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 6658 "configure"
+#line 6662 "configure"
 #include "confdefs.h"
 #include <X11/extensions/shape.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6663: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6667: \"$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*
@@ -6706,7 +6710,7 @@ case "$x_libraries" in *X11R4* )
 esac
 
 echo "checking for WM_COMMAND option" 1>&6
-echo "configure:6710: checking for WM_COMMAND option" >&5;
+echo "configure:6714: checking for WM_COMMAND option" >&5;
 if test "$with_wmcommand" != "no"; then
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_WMCOMMAND
@@ -6721,15 +6725,15 @@ fi
 test -z "$with_xauth" && test "$window_system" = "none" && with_xauth=no
 test -z "$with_xauth" && { ac_safe=`echo "X11/Xauth.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Xauth.h""... $ac_c" 1>&6
-echo "configure:6725: checking for X11/Xauth.h" >&5
+echo "configure:6729: checking for X11/Xauth.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 6728 "configure"
+#line 6732 "configure"
 #include "confdefs.h"
 #include <X11/Xauth.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6733: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6737: \"$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*
@@ -6752,12 +6756,12 @@ fi
  }
 test -z "$with_xauth" && { 
 echo $ac_n "checking for XauGetAuthByAddr in -lXau""... $ac_c" 1>&6
-echo "configure:6756: checking for XauGetAuthByAddr in -lXau" >&5
+echo "configure:6760: 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 6761 "configure"
+#line 6765 "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
@@ -6768,7 +6772,7 @@ int main() {
 XauGetAuthByAddr()
 ; return 0; }
 EOF
-if { (eval echo configure:6772: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6776: \"$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
@@ -6813,15 +6817,15 @@ if test "$with_tooltalk" != "no" ; then
       for dir in "" "Tt/" "desktop/" ; do
     ac_safe=`echo "${dir}tt_c.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ${dir}tt_c.h""... $ac_c" 1>&6
-echo "configure:6817: checking for ${dir}tt_c.h" >&5
+echo "configure:6821: checking for ${dir}tt_c.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 6820 "configure"
+#line 6824 "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:6825: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6829: \"$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*
@@ -6857,12 +6861,12 @@ if test "$with_tooltalk" != "no" ; then
 xe_msg_checking="for tt_message_create in -ltt"
 test -n "$extra_libs" && xe_msg_checking="$xe_msg_checking using extra libs $extra_libs"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:6861: checking "$xe_msg_checking"" >&5
+echo "configure:6865: 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 6866 "configure"
+#line 6870 "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
@@ -6873,7 +6877,7 @@ int main() {
 tt_message_create()
 ; return 0; }
 EOF
-if { (eval echo configure:6877: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6881: \"$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
@@ -6930,15 +6934,15 @@ fi
 
 test -z "$with_cde" && { ac_safe=`echo "Dt/Dt.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for Dt/Dt.h""... $ac_c" 1>&6
-echo "configure:6934: checking for Dt/Dt.h" >&5
+echo "configure:6938: checking for Dt/Dt.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 6937 "configure"
+#line 6941 "configure"
 #include "confdefs.h"
 #include <Dt/Dt.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6942: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6946: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6961,12 +6965,12 @@ fi
  }
 test -z "$with_cde" && { 
 echo $ac_n "checking for DtDndDragStart in -lDtSvc""... $ac_c" 1>&6
-echo "configure:6965: checking for DtDndDragStart in -lDtSvc" >&5
+echo "configure:6969: 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 6970 "configure"
+#line 6974 "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
@@ -6977,7 +6981,7 @@ int main() {
 DtDndDragStart()
 ; return 0; }
 EOF
-if { (eval echo configure:6981: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6985: \"$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
@@ -7047,7 +7051,7 @@ fi
 
 if test "$with_dragndrop" != "no" ; then
   echo $ac_n "checking if drag and drop API is needed""... $ac_c" 1>&6
-echo "configure:7051: checking if drag and drop API is needed" >&5
+echo "configure:7055: checking if drag and drop API is needed" >&5
   if test -n "$dragndrop_proto" ; then
     with_dragndrop=yes
     echo "$ac_t""yes (${dragndrop_proto} )" 1>&6
@@ -7067,18 +7071,18 @@ EOF
 fi
 
 echo "checking for LDAP" 1>&6
-echo "configure:7071: checking for LDAP" >&5
+echo "configure:7075: 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:7074: checking for ldap.h" >&5
+echo "configure:7078: checking for ldap.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 7077 "configure"
+#line 7081 "configure"
 #include "confdefs.h"
 #include <ldap.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7082: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7086: \"$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*
@@ -7101,15 +7105,15 @@ fi
  }
 test -z "$with_ldap" && { ac_safe=`echo "lber.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for lber.h""... $ac_c" 1>&6
-echo "configure:7105: checking for lber.h" >&5
+echo "configure:7109: checking for lber.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 7108 "configure"
+#line 7112 "configure"
 #include "confdefs.h"
 #include <lber.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7113: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7117: \"$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*
@@ -7133,12 +7137,12 @@ fi
 if test "$with_ldap" != "no"; then
   
 echo $ac_n "checking for ldap_search in -lldap""... $ac_c" 1>&6
-echo "configure:7137: checking for ldap_search in -lldap" >&5
+echo "configure:7141: checking for ldap_search in -lldap" >&5
 ac_lib_var=`echo ldap'_'ldap_search | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lldap "
 cat > conftest.$ac_ext <<EOF
-#line 7142 "configure"
+#line 7146 "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
@@ -7149,7 +7153,7 @@ int main() {
 ldap_search()
 ; return 0; }
 EOF
-if { (eval echo configure:7153: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7157: \"$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
@@ -7174,12 +7178,12 @@ fi
 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:7178: checking "$xe_msg_checking"" >&5
+echo "configure:7182: 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 7183 "configure"
+#line 7187 "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
@@ -7190,7 +7194,7 @@ int main() {
 ldap_open()
 ; return 0; }
 EOF
-if { (eval echo configure:7194: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7198: \"$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
@@ -7215,12 +7219,12 @@ fi
 xe_msg_checking="for ldap_open in -lldap"
 test -n "-llber -lkrb" && xe_msg_checking="$xe_msg_checking using extra libs -llber -lkrb"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:7219: checking "$xe_msg_checking"" >&5
+echo "configure:7223: checking "$xe_msg_checking"" >&5
 ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lldap -llber -lkrb"
 cat > conftest.$ac_ext <<EOF
-#line 7224 "configure"
+#line 7228 "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
@@ -7231,7 +7235,7 @@ int main() {
 ldap_open()
 ; return 0; }
 EOF
-if { (eval echo configure:7235: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7239: \"$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
@@ -7256,12 +7260,12 @@ fi
 xe_msg_checking="for ldap_open in -lldap"
 test -n "-llber -lkrb -ldes" && xe_msg_checking="$xe_msg_checking using extra libs -llber -lkrb -ldes"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:7260: checking "$xe_msg_checking"" >&5
+echo "configure:7264: checking "$xe_msg_checking"" >&5
 ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lldap -llber -lkrb -ldes"
 cat > conftest.$ac_ext <<EOF
-#line 7265 "configure"
+#line 7269 "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
@@ -7272,7 +7276,7 @@ int main() {
 ldap_open()
 ; return 0; }
 EOF
-if { (eval echo configure:7276: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7280: \"$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
@@ -7323,10 +7327,10 @@ EOF
   for ac_func in ldap_set_option ldap_get_lderrno ldap_result2error ldap_parse_result
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7327: checking for $ac_func" >&5
+echo "configure:7331: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 7330 "configure"
+#line 7334 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -7349,7 +7353,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7353: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7357: \"$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
@@ -7380,20 +7384,20 @@ fi
 
 if test "$with_postgresql" != "no"; then
   echo "checking for PostgreSQL" 1>&6
-echo "configure:7384: checking for PostgreSQL" >&5
+echo "configure:7388: checking for PostgreSQL" >&5
 
   for header_dir in "" "pgsql/" "postgresql/"; do
     ac_safe=`echo "${header_dir}libpq-fe.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ${header_dir}libpq-fe.h""... $ac_c" 1>&6
-echo "configure:7389: checking for ${header_dir}libpq-fe.h" >&5
+echo "configure:7393: checking for ${header_dir}libpq-fe.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 7392 "configure"
+#line 7396 "configure"
 #include "confdefs.h"
 #include <${header_dir}libpq-fe.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7397: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7401: \"$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*
@@ -7417,12 +7421,12 @@ fi
 
   test -n "$libpq_fe_h_file" && { 
 echo $ac_n "checking for PQconnectdb in -lpq""... $ac_c" 1>&6
-echo "configure:7421: checking for PQconnectdb in -lpq" >&5
+echo "configure:7425: checking for PQconnectdb in -lpq" >&5
 ac_lib_var=`echo pq'_'PQconnectdb | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lpq "
 cat > conftest.$ac_ext <<EOF
-#line 7426 "configure"
+#line 7430 "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
@@ -7433,7 +7437,7 @@ int main() {
 PQconnectdb()
 ; return 0; }
 EOF
-if { (eval echo configure:7437: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7441: \"$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
@@ -7466,12 +7470,12 @@ EOF
 
     
 echo $ac_n "checking for PQconnectStart in -lpq""... $ac_c" 1>&6
-echo "configure:7470: checking for PQconnectStart in -lpq" >&5
+echo "configure:7474: checking for PQconnectStart in -lpq" >&5
 ac_lib_var=`echo pq'_'PQconnectStart | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lpq "
 cat > conftest.$ac_ext <<EOF
-#line 7475 "configure"
+#line 7479 "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
@@ -7482,7 +7486,7 @@ int main() {
 PQconnectStart()
 ; return 0; }
 EOF
-if { (eval echo configure:7486: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7490: \"$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
@@ -7530,15 +7534,15 @@ fi
 
 if test "$window_system" != "none"; then
   echo "checking for graphics libraries" 1>&6
-echo "configure:7534: checking for graphics libraries" >&5
+echo "configure:7538: 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:7539: checking for Xpm - no older than 3.4f" >&5
+echo "configure:7543: checking for Xpm - no older than 3.4f" >&5
     xe_check_libs=-lXpm
     cat > conftest.$ac_ext <<EOF
-#line 7542 "configure"
+#line 7546 "configure"
 #include "confdefs.h"
 #define XPM_NUMBERS
 #include <X11/xpm.h>
@@ -7547,7 +7551,7 @@ echo "configure:7539: checking for Xpm - no older than 3.4f" >&5
       XpmIncludeVersion != XpmLibraryVersion() ? 1 :
       XpmIncludeVersion < 30406 ? 2 : 0 ;}
 EOF
-if { (eval echo configure:7551: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:7555: \"$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
@@ -7579,7 +7583,7 @@ rm -fr conftest*
     echo "$ac_t""$with_xpm" 1>&6
   fi
   if test "$with_xpm" = "yes"; then
-    { test "$extra_verbose" = "yes" && cat << \EOF
+                { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_XPM
 EOF
 cat >> confdefs.h <<\EOF
@@ -7589,17 +7593,17 @@ EOF
 
     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:7593: checking for \"FOR_MSW\" xpm" >&5
+echo "configure:7597: checking for \"FOR_MSW\" xpm" >&5
     xe_check_libs=-lXpm
     cat > conftest.$ac_ext <<EOF
-#line 7596 "configure"
+#line 7600 "configure"
 #include "confdefs.h"
 
 int main() {
 XpmCreatePixmapFromData()
 ; return 0; }
 EOF
-if { (eval echo configure:7603: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7607: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   xpm_for_msw=no
 else
@@ -7625,15 +7629,15 @@ EOF
 
     test -z "$with_xface" && { ac_safe=`echo "compface.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for compface.h""... $ac_c" 1>&6
-echo "configure:7629: checking for compface.h" >&5
+echo "configure:7633: checking for compface.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 7632 "configure"
+#line 7636 "configure"
 #include "confdefs.h"
 #include <compface.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7637: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7641: \"$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*
@@ -7656,12 +7660,12 @@ fi
  }
   test -z "$with_xface" && { 
 echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6
-echo "configure:7660: checking for UnGenFace in -lcompface" >&5
+echo "configure:7664: 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 7665 "configure"
+#line 7669 "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
@@ -7672,7 +7676,7 @@ int main() {
 UnGenFace()
 ; return 0; }
 EOF
-if { (eval echo configure:7676: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7680: \"$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
@@ -7724,12 +7728,12 @@ EOF
       if test "$with_png $with_tiff" != "no no"; then
     
 echo $ac_n "checking for inflate in -lc""... $ac_c" 1>&6
-echo "configure:7728: checking for inflate in -lc" >&5
+echo "configure:7732: 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 7733 "configure"
+#line 7737 "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
@@ -7740,7 +7744,7 @@ int main() {
 inflate()
 ; return 0; }
 EOF
-if { (eval echo configure:7744: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7748: \"$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
@@ -7759,12 +7763,12 @@ else
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for inflate in -lz""... $ac_c" 1>&6
-echo "configure:7763: checking for inflate in -lz" >&5
+echo "configure:7767: 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 7768 "configure"
+#line 7772 "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
@@ -7775,7 +7779,7 @@ int main() {
 inflate()
 ; return 0; }
 EOF
-if { (eval echo configure:7779: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7783: \"$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
@@ -7794,12 +7798,12 @@ else
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for inflate in -lgz""... $ac_c" 1>&6
-echo "configure:7798: checking for inflate in -lgz" >&5
+echo "configure:7802: 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 7803 "configure"
+#line 7807 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7810,7 +7814,7 @@ int main() {
 inflate()
 ; return 0; }
 EOF
-if { (eval echo configure:7814: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7818: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7840,15 +7844,15 @@ fi
 
     test -z "$with_jpeg" && { ac_safe=`echo "jpeglib.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for jpeglib.h""... $ac_c" 1>&6
-echo "configure:7844: checking for jpeglib.h" >&5
+echo "configure:7848: checking for jpeglib.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 7847 "configure"
+#line 7851 "configure"
 #include "confdefs.h"
 #include <jpeglib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7852: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7856: \"$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*
@@ -7871,12 +7875,12 @@ fi
  }
   test -z "$with_jpeg" && { 
 echo $ac_n "checking for jpeg_destroy_decompress in -ljpeg""... $ac_c" 1>&6
-echo "configure:7875: checking for jpeg_destroy_decompress in -ljpeg" >&5
+echo "configure:7879: 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 7880 "configure"
+#line 7884 "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
@@ -7887,7 +7891,7 @@ int main() {
 jpeg_destroy_decompress()
 ; return 0; }
 EOF
-if { (eval echo configure:7891: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7895: \"$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
@@ -7923,10 +7927,10 @@ EOF
 
     png_problem=""
   test -z "$with_png" && { echo $ac_n "checking for pow""... $ac_c" 1>&6
-echo "configure:7927: checking for pow" >&5
+echo "configure:7931: checking for pow" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 7930 "configure"
+#line 7934 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char pow(); below.  */
@@ -7949,7 +7953,7 @@ pow();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7953: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7957: \"$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
@@ -7970,15 +7974,15 @@ fi
  }
   test -z "$with_png" && { ac_safe=`echo "png.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for png.h""... $ac_c" 1>&6
-echo "configure:7974: checking for png.h" >&5
+echo "configure:7978: checking for png.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 7977 "configure"
+#line 7981 "configure"
 #include "confdefs.h"
 #include <png.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7982: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7986: \"$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*
@@ -8001,12 +8005,12 @@ fi
  }
   test -z "$with_png" && { 
 echo $ac_n "checking for png_read_image in -lpng""... $ac_c" 1>&6
-echo "configure:8005: checking for png_read_image in -lpng" >&5
+echo "configure:8009: 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 8010 "configure"
+#line 8014 "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
@@ -8017,7 +8021,7 @@ int main() {
 png_read_image()
 ; return 0; }
 EOF
-if { (eval echo configure:8021: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8025: \"$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
@@ -8040,10 +8044,10 @@ fi
  }
   if test -z "$with_png"; then
     echo $ac_n "checking for workable png version information""... $ac_c" 1>&6
-echo "configure:8044: checking for workable png version information" >&5
+echo "configure:8048: checking for workable png version information" >&5
     xe_check_libs="-lpng -lz"
     cat > conftest.$ac_ext <<EOF
-#line 8047 "configure"
+#line 8051 "configure"
 #include "confdefs.h"
 #include <png.h>
     int main(int c, char **v) {
@@ -8051,7 +8055,7 @@ echo "configure:8044: checking for workable png version information" >&5
     if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING) != 0) return 1;
     return (PNG_LIBPNG_VER < 10002) ? 2 : 0 ;}
 EOF
-if { (eval echo configure:8055: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:8059: \"$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
@@ -8094,15 +8098,15 @@ EOF
 
     test -z "$with_tiff" && { ac_safe=`echo "tiffio.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for tiffio.h""... $ac_c" 1>&6
-echo "configure:8098: checking for tiffio.h" >&5
+echo "configure:8102: checking for tiffio.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 8101 "configure"
+#line 8105 "configure"
 #include "confdefs.h"
 #include <tiffio.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8106: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8110: \"$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*
@@ -8125,12 +8129,12 @@ fi
  }
   test -z "$with_tiff" && { 
 echo $ac_n "checking for TIFFClientOpen in -ltiff""... $ac_c" 1>&6
-echo "configure:8129: checking for TIFFClientOpen in -ltiff" >&5
+echo "configure:8133: 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 8134 "configure"
+#line 8138 "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
@@ -8141,7 +8145,7 @@ int main() {
 TIFFClientOpen()
 ; return 0; }
 EOF
-if { (eval echo configure:8145: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8149: \"$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
@@ -8180,10 +8184,10 @@ fi
 if test "$with_x11" = "yes"; then
 
   echo "checking for X11 graphics libraries" 1>&6
-echo "configure:8184: checking for X11 graphics libraries" >&5
+echo "configure:8188: checking for X11 graphics libraries" >&5
 
   echo "checking for the Athena widgets" 1>&6
-echo "configure:8187: checking for the Athena widgets" >&5
+echo "configure:8191: checking for the Athena widgets" >&5
 
     case "$with_athena" in
         "xaw" | "")    athena_variant=Xaw      athena_3d=no  ;;
@@ -8197,12 +8201,12 @@ echo "configure:8187: checking for the Athena widgets" >&5
     if test "$athena_3d" = "no"; then
     
 echo $ac_n "checking for XawScrollbarSetThumb in -l$athena_variant""... $ac_c" 1>&6
-echo "configure:8201: checking for XawScrollbarSetThumb in -l$athena_variant" >&5
+echo "configure:8205: checking for XawScrollbarSetThumb in -l$athena_variant" >&5
 ac_lib_var=`echo $athena_variant'_'XawScrollbarSetThumb | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -l$athena_variant "
 cat > conftest.$ac_ext <<EOF
-#line 8206 "configure"
+#line 8210 "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
@@ -8213,7 +8217,7 @@ int main() {
 XawScrollbarSetThumb()
 ; return 0; }
 EOF
-if { (eval echo configure:8217: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8221: \"$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
@@ -8229,12 +8233,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
   echo "$ac_t""yes" 1>&6
           
 echo $ac_n "checking for threeDClassRec in -l$athena_variant""... $ac_c" 1>&6
-echo "configure:8233: checking for threeDClassRec in -l$athena_variant" >&5
+echo "configure:8237: checking for threeDClassRec in -l$athena_variant" >&5
 ac_lib_var=`echo $athena_variant'_'threeDClassRec | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -l$athena_variant "
 cat > conftest.$ac_ext <<EOF
-#line 8238 "configure"
+#line 8242 "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
@@ -8245,7 +8249,7 @@ int main() {
 threeDClassRec()
 ; return 0; }
 EOF
-if { (eval echo configure:8249: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8253: \"$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
@@ -8276,12 +8280,12 @@ fi
   else
         
 echo $ac_n "checking for threeDClassRec in -l$athena_variant""... $ac_c" 1>&6
-echo "configure:8280: checking for threeDClassRec in -l$athena_variant" >&5
+echo "configure:8284: checking for threeDClassRec in -l$athena_variant" >&5
 ac_lib_var=`echo $athena_variant'_'threeDClassRec | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -l$athena_variant "
 cat > conftest.$ac_ext <<EOF
-#line 8285 "configure"
+#line 8289 "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
@@ -8292,7 +8296,7 @@ int main() {
 threeDClassRec()
 ; return 0; }
 EOF
-if { (eval echo configure:8296: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8300: \"$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
@@ -8310,12 +8314,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for threeDClassRec in -lXaw""... $ac_c" 1>&6
-echo "configure:8314: checking for threeDClassRec in -lXaw" >&5
+echo "configure:8318: checking for threeDClassRec in -lXaw" >&5
 ac_lib_var=`echo Xaw'_'threeDClassRec | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXaw "
 cat > conftest.$ac_ext <<EOF
-#line 8319 "configure"
+#line 8323 "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
@@ -8326,7 +8330,7 @@ int main() {
 threeDClassRec()
 ; return 0; }
 EOF
-if { (eval echo configure:8330: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8334: \"$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
@@ -8357,15 +8361,15 @@ fi
     if test "$athena_3d" = "no"; then
     ac_safe=`echo "X11/Xaw/ThreeD.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Xaw/ThreeD.h""... $ac_c" 1>&6
-echo "configure:8361: checking for X11/Xaw/ThreeD.h" >&5
+echo "configure:8365: checking for X11/Xaw/ThreeD.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 8364 "configure"
+#line 8368 "configure"
 #include "confdefs.h"
 #include <X11/Xaw/ThreeD.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8369: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8373: \"$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*
@@ -8385,15 +8389,15 @@ else
   echo "$ac_t""no" 1>&6
 ac_safe=`echo "X11/Xaw/XawInit.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Xaw/XawInit.h""... $ac_c" 1>&6
-echo "configure:8389: checking for X11/Xaw/XawInit.h" >&5
+echo "configure:8393: checking for X11/Xaw/XawInit.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 8392 "configure"
+#line 8396 "configure"
 #include "confdefs.h"
 #include <X11/Xaw/XawInit.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8397: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8401: \"$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*
@@ -8419,15 +8423,15 @@ fi
   else
             ac_safe=`echo "X11/$athena_variant/XawInit.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/$athena_variant/XawInit.h""... $ac_c" 1>&6
-echo "configure:8423: checking for X11/$athena_variant/XawInit.h" >&5
+echo "configure:8427: checking for X11/$athena_variant/XawInit.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 8426 "configure"
+#line 8430 "configure"
 #include "confdefs.h"
 #include <X11/$athena_variant/XawInit.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8431: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8435: \"$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*
@@ -8444,15 +8448,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   ac_safe=`echo "X11/$athena_variant/ThreeD.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/$athena_variant/ThreeD.h""... $ac_c" 1>&6
-echo "configure:8448: checking for X11/$athena_variant/ThreeD.h" >&5
+echo "configure:8452: checking for X11/$athena_variant/ThreeD.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 8451 "configure"
+#line 8455 "configure"
 #include "confdefs.h"
 #include <X11/$athena_variant/ThreeD.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8456: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8460: \"$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*
@@ -8480,15 +8484,15 @@ fi
         if test -z "$athena_h_path"; then
       ac_safe=`echo "$athena_variant/XawInit.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $athena_variant/XawInit.h""... $ac_c" 1>&6
-echo "configure:8484: checking for $athena_variant/XawInit.h" >&5
+echo "configure:8488: checking for $athena_variant/XawInit.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 8487 "configure"
+#line 8491 "configure"
 #include "confdefs.h"
 #include <$athena_variant/XawInit.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8492: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8496: \"$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*
@@ -8505,15 +8509,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   ac_safe=`echo "$athena_variant/ThreeD.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $athena_variant/ThreeD.h""... $ac_c" 1>&6
-echo "configure:8509: checking for $athena_variant/ThreeD.h" >&5
+echo "configure:8513: checking for $athena_variant/ThreeD.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 8512 "configure"
+#line 8516 "configure"
 #include "confdefs.h"
 #include <$athena_variant/ThreeD.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8517: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8521: \"$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*
@@ -8542,15 +8546,15 @@ fi
         if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then
       ac_safe=`echo "X11/Xaw3d/XawInit.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Xaw3d/XawInit.h""... $ac_c" 1>&6
-echo "configure:8546: checking for X11/Xaw3d/XawInit.h" >&5
+echo "configure:8550: checking for X11/Xaw3d/XawInit.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 8549 "configure"
+#line 8553 "configure"
 #include "confdefs.h"
 #include <X11/Xaw3d/XawInit.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8554: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8558: \"$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*
@@ -8567,15 +8571,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   ac_safe=`echo "X11/Xaw3d/ThreeD.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Xaw3d/ThreeD.h""... $ac_c" 1>&6
-echo "configure:8571: checking for X11/Xaw3d/ThreeD.h" >&5
+echo "configure:8575: checking for X11/Xaw3d/ThreeD.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 8574 "configure"
+#line 8578 "configure"
 #include "confdefs.h"
 #include <X11/Xaw3d/ThreeD.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8579: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8583: \"$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*
@@ -8607,15 +8611,15 @@ fi
         if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then
       ac_safe=`echo "Xaw3d/XawInit.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for Xaw3d/XawInit.h""... $ac_c" 1>&6
-echo "configure:8611: checking for Xaw3d/XawInit.h" >&5
+echo "configure:8615: checking for Xaw3d/XawInit.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 8614 "configure"
+#line 8618 "configure"
 #include "confdefs.h"
 #include <Xaw3d/XawInit.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8619: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8623: \"$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*
@@ -8632,15 +8636,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   ac_safe=`echo "Xaw3d/ThreeD.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for Xaw3d/ThreeD.h""... $ac_c" 1>&6
-echo "configure:8636: checking for Xaw3d/ThreeD.h" >&5
+echo "configure:8640: checking for Xaw3d/ThreeD.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 8639 "configure"
+#line 8643 "configure"
 #include "confdefs.h"
 #include <Xaw3d/ThreeD.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8644: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8648: \"$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*
@@ -8672,15 +8676,15 @@ fi
             if test -z "$athena_h_path"; then
       ac_safe=`echo "X11/Xaw/ThreeD.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Xaw/ThreeD.h""... $ac_c" 1>&6
-echo "configure:8676: checking for X11/Xaw/ThreeD.h" >&5
+echo "configure:8680: checking for X11/Xaw/ThreeD.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 8679 "configure"
+#line 8683 "configure"
 #include "confdefs.h"
 #include <X11/Xaw/ThreeD.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8684: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8688: \"$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*
@@ -8715,15 +8719,15 @@ fi
 
     ac_safe=`echo "Xm/Xm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for Xm/Xm.h""... $ac_c" 1>&6
-echo "configure:8719: checking for Xm/Xm.h" >&5
+echo "configure:8723: checking for Xm/Xm.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 8722 "configure"
+#line 8726 "configure"
 #include "confdefs.h"
 #include <Xm/Xm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8727: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8731: \"$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*
@@ -8740,12 +8744,12 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   
 echo $ac_n "checking for XmStringFree in -lXm""... $ac_c" 1>&6
-echo "configure:8744: checking for XmStringFree in -lXm" >&5
+echo "configure:8748: 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 8749 "configure"
+#line 8753 "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
@@ -8756,7 +8760,7 @@ int main() {
 XmStringFree()
 ; return 0; }
 EOF
-if { (eval echo configure:8760: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8764: \"$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
@@ -8785,9 +8789,9 @@ fi
 
   if test "$have_motif" = "yes"; then
         echo $ac_n "checking for Lesstif""... $ac_c" 1>&6
-echo "configure:8789: checking for Lesstif" >&5
+echo "configure:8793: checking for Lesstif" >&5
     cat > conftest.$ac_ext <<EOF
-#line 8791 "configure"
+#line 8795 "configure"
 #include "confdefs.h"
 #include <Xm/Xm.h>
 #ifdef LESSTIF_VERSION
@@ -9193,7 +9197,7 @@ fi
 
 if test "$with_mule" = "yes" ; then
   echo "checking for Mule-related features" 1>&6
-echo "configure:9197: checking for Mule-related features" >&5
+echo "configure:9201: checking for Mule-related features" >&5
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining MULE
 EOF
@@ -9218,15 +9222,15 @@ EOF
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:9222: checking for $ac_hdr" >&5
+echo "configure:9226: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 9225 "configure"
+#line 9229 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9230: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9234: \"$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*
@@ -9257,12 +9261,12 @@ done
 
   
 echo $ac_n "checking for strerror in -lintl""... $ac_c" 1>&6
-echo "configure:9261: checking for strerror in -lintl" >&5
+echo "configure:9265: 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 9266 "configure"
+#line 9270 "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
@@ -9273,7 +9277,7 @@ int main() {
 strerror()
 ; return 0; }
 EOF
-if { (eval echo configure:9277: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9281: \"$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
@@ -9306,18 +9310,18 @@ fi
 
 
   echo "checking for Mule input methods" 1>&6
-echo "configure:9310: checking for Mule input methods" >&5
+echo "configure:9314: checking for Mule input methods" >&5
         case "$with_xim" in "" | "yes" )
     echo "checking for XIM" 1>&6
-echo "configure:9313: checking for XIM" >&5
+echo "configure:9317: checking for XIM" >&5
     
 echo $ac_n "checking for XOpenIM in -lX11""... $ac_c" 1>&6
-echo "configure:9316: checking for XOpenIM in -lX11" >&5
+echo "configure:9320: 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 9321 "configure"
+#line 9325 "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
@@ -9328,7 +9332,7 @@ int main() {
 XOpenIM()
 ; return 0; }
 EOF
-if { (eval echo configure:9332: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9336: \"$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
@@ -9352,12 +9356,12 @@ fi
         if test "$have_motif $have_lesstif" = "yes no"; then
       
 echo $ac_n "checking for XmImMbLookupString in -lXm""... $ac_c" 1>&6
-echo "configure:9356: checking for XmImMbLookupString in -lXm" >&5
+echo "configure:9360: 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 9361 "configure"
+#line 9365 "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
@@ -9368,7 +9372,7 @@ int main() {
 XmImMbLookupString()
 ; return 0; }
 EOF
-if { (eval echo configure:9372: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9376: \"$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
@@ -9433,15 +9437,15 @@ EOF
 
     if test "$with_xfs" = "yes" ; then
     echo "checking for XFontSet" 1>&6
-echo "configure:9437: checking for XFontSet" >&5
+echo "configure:9441: checking for XFontSet" >&5
     
 echo $ac_n "checking for XmbDrawString in -lX11""... $ac_c" 1>&6
-echo "configure:9440: checking for XmbDrawString in -lX11" >&5
+echo "configure:9444: 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 9445 "configure"
+#line 9449 "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
@@ -9452,7 +9456,7 @@ int main() {
 XmbDrawString()
 ; return 0; }
 EOF
-if { (eval echo configure:9456: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9460: \"$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
@@ -9492,15 +9496,46 @@ EOF
     test "$with_wnn6" = "yes" && with_wnn=yes # wnn6 implies wnn support
   test -z "$with_wnn" && { ac_safe=`echo "wnn/jllib.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for wnn/jllib.h""... $ac_c" 1>&6
-echo "configure:9496: checking for wnn/jllib.h" >&5
+echo "configure:9500: checking for wnn/jllib.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 9499 "configure"
+#line 9503 "configure"
 #include "confdefs.h"
 #include <wnn/jllib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9504: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9508: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
+with_wnn=no
+fi
+ }
+    test -z "$with_wnn" && { ac_safe=`echo "wnn/commonhd.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for wnn/commonhd.h""... $ac_c" 1>&6
+echo "configure:9531: checking for wnn/commonhd.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9534 "configure"
+#include "confdefs.h"
+#include <wnn/commonhd.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:9539: \"$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*
@@ -9525,10 +9560,10 @@ fi
     for ac_func in crypt
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:9529: checking for $ac_func" >&5
+echo "configure:9564: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 9532 "configure"
+#line 9567 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -9551,7 +9586,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:9555: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9590: \"$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
@@ -9580,12 +9615,12 @@ done
 
     test "$ac_cv_func_crypt" != "yes" && { 
 echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
-echo "configure:9584: checking for crypt in -lcrypt" >&5
+echo "configure:9619: 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 9589 "configure"
+#line 9624 "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
@@ -9596,7 +9631,7 @@ int main() {
 crypt()
 ; return 0; }
 EOF
-if { (eval echo configure:9600: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9635: \"$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
@@ -9631,12 +9666,12 @@ fi
     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:9635: checking for jl_dic_list_e in -lwnn" >&5
+echo "configure:9670: 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 9640 "configure"
+#line 9675 "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
@@ -9647,7 +9682,7 @@ int main() {
 jl_dic_list_e()
 ; return 0; }
 EOF
-if { (eval echo configure:9651: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9686: \"$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
@@ -9665,12 +9700,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for jl_dic_list_e in -lwnn4""... $ac_c" 1>&6
-echo "configure:9669: checking for jl_dic_list_e in -lwnn4" >&5
+echo "configure:9704: 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 9674 "configure"
+#line 9709 "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
@@ -9681,7 +9716,7 @@ int main() {
 jl_dic_list_e()
 ; return 0; }
 EOF
-if { (eval echo configure:9685: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9720: \"$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
@@ -9699,12 +9734,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for jl_dic_list_e in -lwnn6""... $ac_c" 1>&6
-echo "configure:9703: checking for jl_dic_list_e in -lwnn6" >&5
+echo "configure:9738: 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 9708 "configure"
+#line 9743 "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
@@ -9715,7 +9750,7 @@ int main() {
 jl_dic_list_e()
 ; return 0; }
 EOF
-if { (eval echo configure:9719: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9754: \"$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
@@ -9733,12 +9768,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for dic_list_e in -lwnn6_fromsrc""... $ac_c" 1>&6
-echo "configure:9737: checking for dic_list_e in -lwnn6_fromsrc" >&5
+echo "configure:9772: 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 9742 "configure"
+#line 9777 "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
@@ -9749,7 +9784,7 @@ int main() {
 dic_list_e()
 ; return 0; }
 EOF
-if { (eval echo configure:9753: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9788: \"$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
@@ -9797,12 +9832,12 @@ EOF
     if test "$with_wnn6" != "no"; then
       
 echo $ac_n "checking for jl_fi_dic_list in -l$libwnn""... $ac_c" 1>&6
-echo "configure:9801: checking for jl_fi_dic_list in -l$libwnn" >&5
+echo "configure:9836: 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 9806 "configure"
+#line 9841 "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
@@ -9813,7 +9848,7 @@ int main() {
 jl_fi_dic_list()
 ; return 0; }
 EOF
-if { (eval echo configure:9817: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9852: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9848,15 +9883,15 @@ EOF
   if test "$with_canna" != "no"; then
     ac_safe=`echo "canna/jrkanji.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for canna/jrkanji.h""... $ac_c" 1>&6
-echo "configure:9852: checking for canna/jrkanji.h" >&5
+echo "configure:9887: checking for canna/jrkanji.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 9855 "configure"
+#line 9890 "configure"
 #include "confdefs.h"
 #include <canna/jrkanji.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9860: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9895: \"$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*
@@ -9883,15 +9918,15 @@ fi
     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:9887: checking for canna/jrkanji.h" >&5
+echo "configure:9922: checking for canna/jrkanji.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 9890 "configure"
+#line 9925 "configure"
 #include "confdefs.h"
 #include <canna/jrkanji.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9895: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9930: \"$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*
@@ -9919,15 +9954,15 @@ fi
 
   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:9923: checking for canna/RK.h" >&5
+echo "configure:9958: checking for canna/RK.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 9926 "configure"
+#line 9961 "configure"
 #include "confdefs.h"
 #include <canna/RK.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9931: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9966: \"$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*
@@ -9950,12 +9985,12 @@ fi
  }
   test -z "$with_canna" && { 
 echo $ac_n "checking for RkBgnBun in -lRKC""... $ac_c" 1>&6
-echo "configure:9954: checking for RkBgnBun in -lRKC" >&5
+echo "configure:9989: 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 9959 "configure"
+#line 9994 "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
@@ -9966,7 +10001,7 @@ int main() {
 RkBgnBun()
 ; return 0; }
 EOF
-if { (eval echo configure:9970: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10005: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
  }
   test -z "$with_canna" && { 
 echo $ac_n "checking for jrKanjiControl in -lcanna""... $ac_c" 1>&6
-echo "configure:9993: checking for jrKanjiControl in -lcanna" >&5
+echo "configure:10028: 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 9998 "configure"
+#line 10033 "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
@@ -10005,7 +10040,7 @@ int main() {
 jrKanjiControl()
 ; return 0; }
 EOF
-if { (eval echo configure:10009: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10044: \"$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
@@ -10054,12 +10089,12 @@ if test "$need_motif" = "yes" ; then
   libs_x="-lXm $libs_x" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-lXm\" to \$libs_x"; fi
     
 echo $ac_n "checking for layout_object_getvalue in -li18n""... $ac_c" 1>&6
-echo "configure:10058: checking for layout_object_getvalue in -li18n" >&5
+echo "configure:10093: 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 10063 "configure"
+#line 10098 "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
@@ -10070,7 +10105,7 @@ int main() {
 layout_object_getvalue()
 ; return 0; }
 EOF
-if { (eval echo configure:10074: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10109: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
 for ac_func in cbrt closedir dup2 eaccess fmod fpathconf frexp ftime getaddrinfo gethostname getnameinfo getpagesize gettimeofday getcwd getwd logb lrand48 matherr mkdir mktime perror poll random rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask snprintf stpcpy strerror tzset ulimit usleep utimes waitpid vsnprintf fsync ftruncate umask
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:10160: checking for $ac_func" >&5
+echo "configure:10195: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 10163 "configure"
+#line 10198 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -10182,7 +10217,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:10186: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10221: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
 done
 
 
+
 for ac_func in getpt _getpty grantpt unlockpt ptsname killpg tcgetpgrp
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:10217: checking for $ac_func" >&5
+echo "configure:10253: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 10220 "configure"
+#line 10256 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -10239,7 +10275,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:10243: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10279: \"$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
@@ -10268,10 +10304,10 @@ done
 
 
 echo $ac_n "checking for openpty""... $ac_c" 1>&6
-echo "configure:10272: checking for openpty" >&5
+echo "configure:10308: checking for openpty" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 10275 "configure"
+#line 10311 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char openpty(); below.  */
@@ -10294,7 +10330,7 @@ openpty();
 
 ; return 0; }
 EOF
-if { (eval echo configure:10298: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10334: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_openpty=yes"
 else
@@ -10313,12 +10349,12 @@ else
 
   
 echo $ac_n "checking for openpty in -lutil""... $ac_c" 1>&6
-echo "configure:10317: checking for openpty in -lutil" >&5
+echo "configure:10353: checking for openpty in -lutil" >&5
 ac_lib_var=`echo util'_'openpty | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lutil "
 cat > conftest.$ac_ext <<EOF
-#line 10322 "configure"
+#line 10358 "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
@@ -10329,7 +10365,7 @@ int main() {
 openpty()
 ; return 0; }
 EOF
-if { (eval echo configure:10333: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10369: \"$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
@@ -10360,19 +10396,19 @@ cat >> confdefs.h <<\EOF
 EOF
 }
 
-  for ac_hdr in pty.h libutil.h
+  for ac_hdr in pty.h libutil.h util.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:10368: checking for $ac_hdr" >&5
+echo "configure:10404: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 10371 "configure"
+#line 10407 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10376: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10412: \"$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*
@@ -10395,7 +10431,7 @@ cat >> confdefs.h <<EOF
 #define $ac_tr_hdr 1
 EOF
 }
+ break
 else
   echo "$ac_t""no" 1>&6
 fi
@@ -10408,15 +10444,15 @@ for ac_hdr in stropts.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:10412: checking for $ac_hdr" >&5
+echo "configure:10448: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 10415 "configure"
+#line 10451 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10420: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10456: \"$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*
@@ -10449,10 +10485,10 @@ if test "$ac_cv_header_stropts_h" = "yes"; then
   for ac_func in isastream
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:10453: checking for $ac_func" >&5
+echo "configure:10489: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 10456 "configure"
+#line 10492 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -10475,7 +10511,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:10479: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10515: \"$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
@@ -10506,15 +10542,15 @@ done
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:10510: checking for $ac_hdr" >&5
+echo "configure:10546: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 10513 "configure"
+#line 10549 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10518: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10554: \"$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*
@@ -10551,10 +10587,10 @@ extra_objs="$extra_objs realpath.o" &&  if test "$extra_verbose" = "yes"; then
 for ac_func in getloadavg
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:10555: checking for $ac_func" >&5
+echo "configure:10591: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 10558 "configure"
+#line 10594 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -10577,7 +10613,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:10581: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10617: \"$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
@@ -10610,15 +10646,15 @@ if test "$ac_cv_func_getloadavg" = "yes"; then
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:10614: checking for $ac_hdr" >&5
+echo "configure:10650: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 10617 "configure"
+#line 10653 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10622: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10658: \"$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*
@@ -10654,12 +10690,12 @@ else
 
     
 echo $ac_n "checking for kstat_open in -lkstat""... $ac_c" 1>&6
-echo "configure:10658: checking for kstat_open in -lkstat" >&5
+echo "configure:10694: 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 10663 "configure"
+#line 10699 "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
@@ -10670,7 +10706,7 @@ int main() {
 kstat_open()
 ; return 0; }
 EOF
-if { (eval echo configure:10674: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10710: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:10709: checking for $ac_hdr" >&5
+echo "configure:10745: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 10712 "configure"
+#line 10748 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10717: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10753: \"$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*
@@ -10745,12 +10781,12 @@ done
 
     
 echo $ac_n "checking for kvm_read in -lkvm""... $ac_c" 1>&6
-echo "configure:10749: checking for kvm_read in -lkvm" >&5
+echo "configure:10785: 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 10754 "configure"
+#line 10790 "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
@@ -10761,7 +10797,7 @@ int main() {
 kvm_read()
 ; return 0; }
 EOF
-if { (eval echo configure:10765: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10801: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
 fi
 
 echo $ac_n "checking whether netdb declares h_errno""... $ac_c" 1>&6
-echo "configure:10799: checking whether netdb declares h_errno" >&5
+echo "configure:10835: checking whether netdb declares h_errno" >&5
 cat > conftest.$ac_ext <<EOF
-#line 10801 "configure"
+#line 10837 "configure"
 #include "confdefs.h"
 #include <netdb.h>
 int main() {
 return h_errno;
 ; return 0; }
 EOF
-if { (eval echo configure:10808: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10844: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
    { test "$extra_verbose" = "yes" && cat << \EOF
 rm -f conftest*
 
 echo $ac_n "checking for sigsetjmp""... $ac_c" 1>&6
-echo "configure:10828: checking for sigsetjmp" >&5
+echo "configure:10864: checking for sigsetjmp" >&5
 cat > conftest.$ac_ext <<EOF
-#line 10830 "configure"
+#line 10866 "configure"
 #include "confdefs.h"
 #include <setjmp.h>
 int main() {
 sigjmp_buf bar; sigsetjmp (bar, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:10837: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10873: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
    { test "$extra_verbose" = "yes" && cat << \EOF
 rm -f conftest*
 
 echo $ac_n "checking whether localtime caches TZ""... $ac_c" 1>&6
-echo "configure:10857: checking whether localtime caches TZ" >&5
+echo "configure:10893: checking whether localtime caches TZ" >&5
 
 if test "$ac_cv_func_tzset" = "yes"; then
 cat > conftest.$ac_ext <<EOF
-#line 10861 "configure"
+#line 10897 "configure"
 #include "confdefs.h"
 #include <time.h>
 #if STDC_HEADERS
@@ -10892,7 +10928,7 @@ main()
   exit (0);
 }
 EOF
-if { (eval echo configure:10896: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:10932: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   emacs_cv_localtime_cache=no
 else
@@ -10922,9 +10958,9 @@ fi
 
 if test "$HAVE_TIMEVAL" = "yes"; then
 echo $ac_n "checking whether gettimeofday accepts one or two arguments""... $ac_c" 1>&6
-echo "configure:10926: checking whether gettimeofday accepts one or two arguments" >&5
+echo "configure:10962: checking whether gettimeofday accepts one or two arguments" >&5
 cat > conftest.$ac_ext <<EOF
-#line 10928 "configure"
+#line 10964 "configure"
 #include "confdefs.h"
 
 #ifdef TIME_WITH_SYS_TIME
@@ -10945,7 +10981,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:10949: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10985: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""two" 1>&6
 else
 
 
 echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:10971: checking for inline" >&5
+echo "configure:11007: checking for inline" >&5
 
 ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat > conftest.$ac_ext <<EOF
-#line 10976 "configure"
+#line 11012 "configure"
 #include "confdefs.h"
 
 int main() {
 } $ac_kw foo() {
 ; return 0; }
 EOF
-if { (eval echo configure:10983: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11019: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_inline=$ac_kw; break
 else
@@ -11020,17 +11056,17 @@ if test "$__DECC" != "yes"; then
   # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
 # for constant arguments.  Useless!
 echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:11024: checking for working alloca.h" >&5
+echo "configure:11060: checking for working alloca.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 11027 "configure"
+#line 11063 "configure"
 #include "confdefs.h"
 #include <alloca.h>
 int main() {
 char *p = alloca(2 * sizeof(int));
 ; return 0; }
 EOF
-if { (eval echo configure:11034: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11070: \"$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
@@ -11054,10 +11090,10 @@ EOF
 fi
 
 echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:11058: checking for alloca" >&5
+echo "configure:11094: checking for alloca" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 11061 "configure"
+#line 11097 "configure"
 #include "confdefs.h"
 
 #ifdef __GNUC__
@@ -11085,7 +11121,7 @@ int main() {
 char *p = (char *) alloca(1);
 ; return 0; }
 EOF
-if { (eval echo configure:11089: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11125: \"$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
@@ -11124,10 +11160,10 @@ EOF
 
 
 echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:11128: checking whether alloca needs Cray hooks" >&5
+echo "configure:11164: checking whether alloca needs Cray hooks" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 11131 "configure"
+#line 11167 "configure"
 #include "confdefs.h"
 #if defined(CRAY) && ! defined(CRAY2)
 webecray
@@ -11151,10 +11187,10 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6
 if test $ac_cv_os_cray = yes; then
 for ac_func in _getb67 GETB67 getb67; do
   echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11155: checking for $ac_func" >&5
+echo "configure:11191: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 11158 "configure"
+#line 11194 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -11177,7 +11213,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:11181: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11217: \"$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
@@ -11207,10 +11243,10 @@ done
 fi
 
 echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:11211: checking stack direction for C alloca" >&5
+echo "configure:11247: checking stack direction for C alloca" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 11214 "configure"
+#line 11250 "configure"
 #include "confdefs.h"
 find_stack_direction ()
 {
@@ -11229,7 +11265,7 @@ main ()
   exit (find_stack_direction() < 0);
 }
 EOF
-if { (eval echo configure:11233: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:11269: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_c_stack_direction=1
 else
 
 ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for vfork.h""... $ac_c" 1>&6
-echo "configure:11263: checking for vfork.h" >&5
+echo "configure:11299: checking for vfork.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 11266 "configure"
+#line 11302 "configure"
 #include "confdefs.h"
 #include <vfork.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11271: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11307: \"$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*
@@ -11295,10 +11331,10 @@ else
 fi
 
 echo $ac_n "checking for working vfork""... $ac_c" 1>&6
-echo "configure:11299: checking for working vfork" >&5
+echo "configure:11335: checking for working vfork" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 11302 "configure"
+#line 11338 "configure"
 #include "confdefs.h"
 /* Thanks to Paul Eggert for this test.  */
 #include <stdio.h>
@@ -11393,7 +11429,7 @@ main() {
   }
 }
 EOF
-if { (eval echo configure:11397: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:11433: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_func_vfork_works=yes
 else
 
 
 echo $ac_n "checking for working strcoll""... $ac_c" 1>&6
-echo "configure:11423: checking for working strcoll" >&5
+echo "configure:11459: checking for working strcoll" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 11426 "configure"
+#line 11462 "configure"
 #include "confdefs.h"
 #include <string.h>
 main ()
@@ -11432,7 +11468,7 @@ main ()
        strcoll ("123", "456") >= 0);
 }
 EOF
-if { (eval echo configure:11436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:11472: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_func_strcoll_works=yes
 else
 for ac_func in getpgrp
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11464: checking for $ac_func" >&5
+echo "configure:11500: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 11467 "configure"
+#line 11503 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -11486,7 +11522,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:11490: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11526: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
 done
 
 echo $ac_n "checking whether getpgrp takes no argument""... $ac_c" 1>&6
-echo "configure:11518: checking whether getpgrp takes no argument" >&5
+echo "configure:11554: checking whether getpgrp takes no argument" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 11521 "configure"
+#line 11557 "configure"
 #include "confdefs.h"
 
 /*
@@ -11572,7 +11608,7 @@ main()
 }
 
 EOF
-if { (eval echo configure:11576: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:11612: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_func_getpgrp_void=yes
 else
 
 
 echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:11603: checking for working mmap" >&5
+echo "configure:11639: checking for working mmap" >&5
 case "$opsys" in ultrix* ) have_mmap=no ;; *)
 cat > conftest.$ac_ext <<EOF
-#line 11606 "configure"
+#line 11642 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <unistd.h>
@@ -11635,7 +11671,7 @@ int main (int argc, char *argv[])
   return 1;
 }
 EOF
-if { (eval echo configure:11639: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:11675: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   have_mmap=yes
 else
@@ -11661,9 +11697,9 @@ test "$GNU_MALLOC" != "yes" -a "$have_mmap" != "yes" && rel_alloc=no
 if test "$rel_alloc $have_mmap" = "default yes"; then
   if test "$doug_lea_malloc" = "yes"; then
         echo $ac_n "checking for M_MMAP_THRESHOLD""... $ac_c" 1>&6
-echo "configure:11665: checking for M_MMAP_THRESHOLD" >&5
+echo "configure:11701: checking for M_MMAP_THRESHOLD" >&5
     cat > conftest.$ac_ext <<EOF
-#line 11667 "configure"
+#line 11703 "configure"
 #include "confdefs.h"
 #include <malloc.h>
 int main() {
@@ -11675,7 +11711,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:11679: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11715: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   rel_alloc=no; echo "$ac_t""yes" 1>&6;
 else
@@ -11700,15 +11736,15 @@ EOF
 
 ac_safe=`echo "termios.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for termios.h""... $ac_c" 1>&6
-echo "configure:11704: checking for termios.h" >&5
+echo "configure:11740: checking for termios.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 11707 "configure"
+#line 11743 "configure"
 #include "confdefs.h"
 #include <termios.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11712: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11748: \"$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*
@@ -11751,15 +11787,15 @@ else
   echo "$ac_t""no" 1>&6
 ac_safe=`echo "termio.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for termio.h""... $ac_c" 1>&6
-echo "configure:11755: checking for termio.h" >&5
+echo "configure:11791: checking for termio.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 11758 "configure"
+#line 11794 "configure"
 #include "confdefs.h"
 #include <termio.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11763: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11799: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
 
 
 echo $ac_n "checking for socket""... $ac_c" 1>&6
-echo "configure:11795: checking for socket" >&5
+echo "configure:11831: checking for socket" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 11798 "configure"
+#line 11834 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char socket(); below.  */
@@ -11817,7 +11853,7 @@ socket();
 
 ; return 0; }
 EOF
-if { (eval echo configure:11821: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11857: \"$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
@@ -11832,15 +11868,15 @@ if eval "test \"`echo '$ac_cv_func_'socket`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   ac_safe=`echo "netinet/in.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for netinet/in.h""... $ac_c" 1>&6
-echo "configure:11836: checking for netinet/in.h" >&5
+echo "configure:11872: checking for netinet/in.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 11839 "configure"
+#line 11875 "configure"
 #include "confdefs.h"
 #include <netinet/in.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11844: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11880: \"$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*
@@ -11857,15 +11893,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   ac_safe=`echo "arpa/inet.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for arpa/inet.h""... $ac_c" 1>&6
-echo "configure:11861: checking for arpa/inet.h" >&5
+echo "configure:11897: checking for arpa/inet.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 11864 "configure"
+#line 11900 "configure"
 #include "confdefs.h"
 #include <arpa/inet.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11869: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11905: \"$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*
@@ -11890,9 +11926,9 @@ EOF
 }
 
       echo $ac_n "checking "for sun_len member in struct sockaddr_un"""... $ac_c" 1>&6
-echo "configure:11894: checking "for sun_len member in struct sockaddr_un"" >&5
+echo "configure:11930: checking "for sun_len member in struct sockaddr_un"" >&5
       cat > conftest.$ac_ext <<EOF
-#line 11896 "configure"
+#line 11932 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -11903,7 +11939,7 @@ int main() {
 static struct sockaddr_un x; x.sun_len = 1;
 ; return 0; }
 EOF
-if { (eval echo configure:11907: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11943: \"$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
@@ -11921,9 +11957,9 @@ else
 fi
 rm -f conftest*
       echo $ac_n "checking "for ip_mreq struct in netinet/in.h"""... $ac_c" 1>&6
-echo "configure:11925: checking "for ip_mreq struct in netinet/in.h"" >&5
+echo "configure:11961: checking "for ip_mreq struct in netinet/in.h"" >&5
       cat > conftest.$ac_ext <<EOF
-#line 11927 "configure"
+#line 11963 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -11933,7 +11969,7 @@ int main() {
 static struct ip_mreq x;
 ; return 0; }
 EOF
-if { (eval echo configure:11937: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11973: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6; { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_MULTICAST
 
 
 echo $ac_n "checking for msgget""... $ac_c" 1>&6
-echo "configure:11968: checking for msgget" >&5
+echo "configure:12004: checking for msgget" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 11971 "configure"
+#line 12007 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char msgget(); below.  */
@@ -11990,7 +12026,7 @@ msgget();
 
 ; return 0; }
 EOF
-if { (eval echo configure:11994: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12030: \"$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
@@ -12005,15 +12041,15 @@ if eval "test \"`echo '$ac_cv_func_'msgget`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   ac_safe=`echo "sys/ipc.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for sys/ipc.h""... $ac_c" 1>&6
-echo "configure:12009: checking for sys/ipc.h" >&5
+echo "configure:12045: checking for sys/ipc.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 12012 "configure"
+#line 12048 "configure"
 #include "confdefs.h"
 #include <sys/ipc.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12017: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12053: \"$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*
@@ -12030,15 +12066,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   ac_safe=`echo "sys/msg.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for sys/msg.h""... $ac_c" 1>&6
-echo "configure:12034: checking for sys/msg.h" >&5
+echo "configure:12070: checking for sys/msg.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 12037 "configure"
+#line 12073 "configure"
 #include "confdefs.h"
 #include <sys/msg.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12042: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12078: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
 
 ac_safe=`echo "dirent.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for dirent.h""... $ac_c" 1>&6
-echo "configure:12080: checking for dirent.h" >&5
+echo "configure:12116: checking for dirent.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 12083 "configure"
+#line 12119 "configure"
 #include "confdefs.h"
 #include <dirent.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12088: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12124: \"$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*
@@ -12111,15 +12147,15 @@ else
   echo "$ac_t""no" 1>&6
 ac_safe=`echo "sys/dir.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for sys/dir.h""... $ac_c" 1>&6
-echo "configure:12115: checking for sys/dir.h" >&5
+echo "configure:12151: checking for sys/dir.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 12118 "configure"
+#line 12154 "configure"
 #include "confdefs.h"
 #include <sys/dir.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12123: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12159: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
 
 ac_safe=`echo "nlist.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for nlist.h""... $ac_c" 1>&6
-echo "configure:12156: checking for nlist.h" >&5
+echo "configure:12192: checking for nlist.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 12159 "configure"
+#line 12195 "configure"
 #include "confdefs.h"
 #include <nlist.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12164: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12200: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
 
 
 echo "checking "for sound support"" 1>&6
-echo "configure:12194: checking "for sound support"" >&5
+echo "configure:12230: checking "for sound support"" >&5
 test -z "$with_native_sound" -a -n "$native_sound_lib" && with_native_sound=yes
 
 if test "$with_native_sound" != "no"; then
     if test -n "$native_sound_lib"; then
     ac_safe=`echo "multimedia/audio_device.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for multimedia/audio_device.h""... $ac_c" 1>&6
-echo "configure:12201: checking for multimedia/audio_device.h" >&5
+echo "configure:12237: checking for multimedia/audio_device.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 12204 "configure"
+#line 12240 "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:12209: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12245: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
       if test -z "$native_sound_lib"; then
         
 echo $ac_n "checking for ALopenport in -laudio""... $ac_c" 1>&6
-echo "configure:12257: checking for ALopenport in -laudio" >&5
+echo "configure:12293: 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 12262 "configure"
+#line 12298 "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
@@ -12269,7 +12305,7 @@ int main() {
 ALopenport()
 ; return 0; }
 EOF
-if { (eval echo configure:12273: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12309: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
       if test -z "$native_sound_lib"; then
        
 echo $ac_n "checking for AOpenAudio in -lAlib""... $ac_c" 1>&6
-echo "configure:12304: checking for AOpenAudio in -lAlib" >&5
+echo "configure:12340: 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 12309 "configure"
+#line 12345 "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
@@ -12316,7 +12352,7 @@ int main() {
 AOpenAudio()
 ; return 0; }
 EOF
-if { (eval echo configure:12320: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12356: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
     for dir in "machine" "sys" "linux"; do
       ac_safe=`echo "${dir}/soundcard.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ${dir}/soundcard.h""... $ac_c" 1>&6
-echo "configure:12358: checking for ${dir}/soundcard.h" >&5
+echo "configure:12394: checking for ${dir}/soundcard.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 12361 "configure"
+#line 12397 "configure"
 #include "confdefs.h"
 #include <${dir}/soundcard.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12366: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12402: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
 if test "$with_nas_sound" != "no"; then
   ac_safe=`echo "audio/audiolib.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for audio/audiolib.h""... $ac_c" 1>&6
-echo "configure:12427: checking for audio/audiolib.h" >&5
+echo "configure:12463: checking for audio/audiolib.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 12430 "configure"
+#line 12466 "configure"
 #include "confdefs.h"
 #include <audio/audiolib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12435: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12471: \"$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*
@@ -12449,12 +12485,12 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   
     
 echo $ac_n "checking for AuOpenServer in -laudio""... $ac_c" 1>&6
-echo "configure:12453: checking for AuOpenServer in -laudio" >&5
+echo "configure:12489: checking for AuOpenServer in -laudio" >&5
 ac_lib_var=`echo audio'_'AuOpenServer | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -laudio "
 cat > conftest.$ac_ext <<EOF
-#line 12458 "configure"
+#line 12494 "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
@@ -12465,7 +12501,7 @@ int main() {
 AuOpenServer()
 ; return 0; }
 EOF
-if { (eval echo configure:12469: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12505: \"$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
@@ -12504,7 +12540,7 @@ EOF
  fi
     libs_x="-laudio $libs_x" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-laudio\" to \$libs_x"; fi
             cat > conftest.$ac_ext <<EOF
-#line 12508 "configure"
+#line 12544 "configure"
 #include "confdefs.h"
 #include <audio/Xtutil.h>
 EOF
@@ -12535,7 +12571,7 @@ if test "$with_esd_sound" != "no"; then
   # Extract the first word of "esd-config", so it can be a program name with args.
 set dummy esd-config; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:12539: checking for $ac_word" >&5
+echo "configure:12575: checking for $ac_word" >&5
 
 if test -n "$have_esd_config"; then
   ac_cv_prog_have_esd_config="$have_esd_config" # Let the user override the test.
     c_switch_site="$c_switch_site `esd-config --cflags`" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"`esd-config --cflags`\" to \$c_switch_site"; fi
     LIBS="`esd-config --libs` $LIBS" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"`esd-config --libs`\" to \$LIBS"; fi
     echo $ac_n "checking for esd_play_stream""... $ac_c" 1>&6
-echo "configure:12568: checking for esd_play_stream" >&5
+echo "configure:12604: checking for esd_play_stream" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 12571 "configure"
+#line 12607 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char esd_play_stream(); below.  */
@@ -12590,7 +12626,7 @@ esd_play_stream();
 
 ; return 0; }
 EOF
-if { (eval echo configure:12594: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12630: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_esd_play_stream=yes"
 else
@@ -12641,7 +12677,7 @@ test -z "$with_tty" && with_tty=yes
 
 if test "$with_tty" = "yes"  ; then
   echo "checking for TTY-related features" 1>&6
-echo "configure:12645: checking for TTY-related features" >&5
+echo "configure:12681: checking for TTY-related features" >&5
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_TTY
 EOF
@@ -12657,12 +12693,12 @@ EOF
     if test -z "$with_ncurses"; then
     
 echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6
-echo "configure:12661: checking for tgetent in -lncurses" >&5
+echo "configure:12697: 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 12666 "configure"
+#line 12702 "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
@@ -12673,7 +12709,7 @@ int main() {
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:12677: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12713: \"$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
@@ -12706,15 +12742,15 @@ EOF
 
     ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6
-echo "configure:12710: checking for ncurses/curses.h" >&5
+echo "configure:12746: checking for ncurses/curses.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 12713 "configure"
+#line 12749 "configure"
 #include "confdefs.h"
 #include <ncurses/curses.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12718: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12754: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
 
     ac_safe=`echo "ncurses/term.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ncurses/term.h""... $ac_c" 1>&6
-echo "configure:12740: checking for ncurses/term.h" >&5
+echo "configure:12776: checking for ncurses/term.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 12743 "configure"
+#line 12779 "configure"
 #include "confdefs.h"
 #include <ncurses/term.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12748: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12784: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
       c_switch_site="$c_switch_site -I/usr/include/ncurses"
       ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6
-echo "configure:12778: checking for ncurses/curses.h" >&5
+echo "configure:12814: checking for ncurses/curses.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 12781 "configure"
+#line 12817 "configure"
 #include "confdefs.h"
 #include <ncurses/curses.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12786: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12822: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
        for lib in curses termlib termcap; do
          
 echo $ac_n "checking for tgetent in -l$lib""... $ac_c" 1>&6
-echo "configure:12821: checking for tgetent in -l$lib" >&5
+echo "configure:12857: 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 12826 "configure"
+#line 12862 "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
@@ -12833,7 +12869,7 @@ int main() {
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:12837: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12873: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
       else
        
 echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6
-echo "configure:12868: checking for tgetent in -lcurses" >&5
+echo "configure:12904: 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 12873 "configure"
+#line 12909 "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
@@ -12880,7 +12916,7 @@ int main() {
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:12884: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12920: \"$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
@@ -12898,12 +12934,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6
-echo "configure:12902: checking for tgetent in -ltermcap" >&5
+echo "configure:12938: 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 12907 "configure"
+#line 12943 "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
@@ -12914,7 +12950,7 @@ int main() {
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:12918: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12954: \"$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
@@ -12962,15 +12998,15 @@ EOF
 
     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:12966: checking for gpm.h" >&5
+echo "configure:13002: checking for gpm.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 12969 "configure"
+#line 13005 "configure"
 #include "confdefs.h"
 #include <gpm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12974: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13010: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
  }
   test -z "$with_gpm" && { 
 echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
-echo "configure:12997: checking for Gpm_Open in -lgpm" >&5
+echo "configure:13033: 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 13002 "configure"
+#line 13038 "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
@@ -13009,7 +13045,7 @@ int main() {
 Gpm_Open()
 ; return 0; }
 EOF
-if { (eval echo configure:13013: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13049: \"$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
@@ -13059,20 +13095,20 @@ test "$with_x11" = "yes" -o "$with_tty" = "yes" && extra_objs="$extra_objs event
 
 test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \
   != "no no no" && echo "checking for database support" 1>&6
-echo "configure:13063: checking for database support" >&5
+echo "configure:13099: checking for database support" >&5
 
 if test "$with_database_gdbm $with_database_dbm" != "no no"; then
   ac_safe=`echo "ndbm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ndbm.h""... $ac_c" 1>&6
-echo "configure:13068: checking for ndbm.h" >&5
+echo "configure:13104: checking for ndbm.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 13071 "configure"
+#line 13107 "configure"
 #include "confdefs.h"
 #include <ndbm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13076: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13112: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
 if test "$with_database_gdbm" != "no"; then
   
 echo $ac_n "checking for dbm_open in -lgdbm""... $ac_c" 1>&6
-echo "configure:13106: checking for dbm_open in -lgdbm" >&5
+echo "configure:13142: 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 13111 "configure"
+#line 13147 "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
@@ -13118,7 +13154,7 @@ int main() {
 dbm_open()
 ; return 0; }
 EOF
-if { (eval echo configure:13122: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13158: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
 
 if test "$with_database_dbm" != "no"; then
   echo $ac_n "checking for dbm_open""... $ac_c" 1>&6
-echo "configure:13150: checking for dbm_open" >&5
+echo "configure:13186: checking for dbm_open" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 13153 "configure"
+#line 13189 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char dbm_open(); below.  */
@@ -13172,7 +13208,7 @@ dbm_open();
 
 ; return 0; }
 EOF
-if { (eval echo configure:13176: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13212: \"$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
@@ -13191,12 +13227,12 @@ else
 
     
 echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6
-echo "configure:13195: checking for dbm_open in -ldbm" >&5
+echo "configure:13231: 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 13200 "configure"
+#line 13236 "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
@@ -13207,7 +13243,7 @@ int main() {
 dbm_open()
 ; return 0; }
 EOF
-if { (eval echo configure:13211: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13247: \"$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
@@ -13248,10 +13284,10 @@ EOF
 
 if test "$with_database_berkdb" != "no"; then
   echo $ac_n "checking for Berkeley db.h""... $ac_c" 1>&6
-echo "configure:13252: checking for Berkeley db.h" >&5
+echo "configure:13288: checking for Berkeley db.h" >&5
   for header in "db/db.h" "db.h"; do
     cat > conftest.$ac_ext <<EOF
-#line 13255 "configure"
+#line 13291 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -13273,7 +13309,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:13277: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13313: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   db_h_file="$header"; break
 else
@@ -13289,9 +13325,9 @@ rm -f conftest*
 
   if test "$with_database_berkdb" != "no"; then
     echo $ac_n "checking for Berkeley DB version""... $ac_c" 1>&6
-echo "configure:13293: checking for Berkeley DB version" >&5
+echo "configure:13329: checking for Berkeley DB version" >&5
     cat > conftest.$ac_ext <<EOF
-#line 13295 "configure"
+#line 13331 "configure"
 #include "confdefs.h"
 #include <$db_h_file>
 #if DB_VERSION_MAJOR > 1
@@ -13303,7 +13339,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "yes" >/dev/null 2>&1; then
   rm -rf conftest*
   cat > conftest.$ac_ext <<EOF
-#line 13307 "configure"
+#line 13343 "configure"
 #include "confdefs.h"
 #include <$db_h_file>
 #if DB_VERSION_MAJOR > 2
 rm -f conftest*
 
     echo $ac_n "checking for $dbfunc""... $ac_c" 1>&6
-echo "configure:13334: checking for $dbfunc" >&5
+echo "configure:13370: checking for $dbfunc" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 13337 "configure"
+#line 13373 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $dbfunc(); below.  */
@@ -13356,7 +13392,7 @@ $dbfunc();
 
 ; return 0; }
 EOF
-if { (eval echo configure:13360: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13396: \"$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
@@ -13375,12 +13411,12 @@ else
 
     
 echo $ac_n "checking for $dbfunc in -ldb""... $ac_c" 1>&6
-echo "configure:13379: checking for $dbfunc in -ldb" >&5
+echo "configure:13415: 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 13384 "configure"
+#line 13420 "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
@@ -13391,7 +13427,7 @@ int main() {
 $dbfunc()
 ; return 0; }
 EOF
-if { (eval echo configure:13395: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13431: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
 if test "$with_socks" = "yes"; then
   
 echo $ac_n "checking for SOCKSinit in -lsocks""... $ac_c" 1>&6
-echo "configure:13459: checking for SOCKSinit in -lsocks" >&5
+echo "configure:13495: 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 13464 "configure"
+#line 13500 "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
@@ -13471,7 +13507,7 @@ int main() {
 SOCKSinit()
 ; return 0; }
 EOF
-if { (eval echo configure:13475: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13511: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
 
 if test "$with_modules" != "no"; then
   echo "checking for module support" 1>&6
-echo "configure:13530: checking for module support" >&5
+echo "configure:13566: checking for module support" >&5
 
     if test "$with_msw" = "yes"; then
     have_dl=yes;
   else
         ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6
-echo "configure:13537: checking for dlfcn.h" >&5
+echo "configure:13573: checking for dlfcn.h" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 13540 "configure"
+#line 13576 "configure"
 #include "confdefs.h"
 #include <dlfcn.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13545: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13581: \"$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*
@@ -13558,16 +13594,16 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   
       echo $ac_n "checking for dlopen in -lc""... $ac_c" 1>&6
-echo "configure:13562: checking for dlopen in -lc" >&5
+echo "configure:13598: checking for dlopen in -lc" >&5
       cat > conftest.$ac_ext <<EOF
-#line 13564 "configure"
+#line 13600 "configure"
 #include "confdefs.h"
 #include <dlfcn.h>
 int main() {
        dlopen ("", 0);
 ; return 0; }
 EOF
-if { (eval echo configure:13571: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13607: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
    have_dl=yes 
 else
@@ -13576,18 +13612,18 @@ else
   rm -rf conftest*
   
       echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:13580: checking for dlopen in -ldl" >&5
+echo "configure:13616: checking for dlopen in -ldl" >&5
       ac_save_LIBS="$LIBS"
       LIBS="-ldl $LIBS"
       cat > conftest.$ac_ext <<EOF
-#line 13584 "configure"
+#line 13620 "configure"
 #include "confdefs.h"
 #include <dlfcn.h>
 int main() {
        dlopen ("", 0);
 ; return 0; }
 EOF
-if { (eval echo configure:13591: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13627: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
    have_dl=yes 
 else
@@ -13616,12 +13652,12 @@ EOF
     else
       
 echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
-echo "configure:13620: checking for shl_load in -ldld" >&5
+echo "configure:13656: 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 13625 "configure"
+#line 13661 "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
@@ -13632,7 +13668,7 @@ int main() {
 shl_load()
 ; return 0; }
 EOF
-if { (eval echo configure:13636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13672: \"$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
@@ -13659,12 +13695,12 @@ else
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for dld_init in -ldld""... $ac_c" 1>&6
-echo "configure:13663: checking for dld_init in -ldld" >&5
+echo "configure:13699: 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 13668 "configure"
+#line 13704 "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
@@ -13675,7 +13711,7 @@ int main() {
 dld_init()
 ; return 0; }
 EOF
-if { (eval echo configure:13679: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13715: \"$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
@@ -13720,7 +13756,7 @@ xehost=$canonical
 xealias=$internal_configuration
 
 echo "checking how to build dynamic libraries for ${xehost}" 1>&6
-echo "configure:13724: checking how to build dynamic libraries for ${xehost}" >&5
+echo "configure:13760: checking how to build dynamic libraries for ${xehost}" >&5
 # Transform *-*-linux* to *-*-linux-gnu*, to support old configure scripts.
 case "$xehost" in
 *-*-linux-gnu*) ;;
@@ -13748,9 +13784,9 @@ if test "$GCC" = "yes"; then
   XEGCC=yes
 else
   echo $ac_n "checking checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:13752: checking checking whether we are using GNU C" >&5
+echo "configure:13788: checking checking whether we are using GNU C" >&5
   cat > conftest.$ac_ext <<EOF
-#line 13754 "configure"
+#line 13790 "configure"
 #include "confdefs.h"
 
 #ifdef __GNUC__
@@ -13772,7 +13808,7 @@ rm -f conftest*
 fi
 
 echo $ac_n "checking how to produce PIC code""... $ac_c" 1>&6
-echo "configure:13776: checking how to produce PIC code" >&5
+echo "configure:13812: checking how to produce PIC code" >&5
 wl=
 
 can_build_shared=yes
@@ -13868,18 +13904,18 @@ if test -n "$dll_cflags"; then
 
   # Check to make sure the dll_cflags actually works.
   echo $ac_n "checking if PIC flag ${dll_cflags} really works""... $ac_c" 1>&6
-echo "configure:13872: checking if PIC flag ${dll_cflags} really works" >&5
+echo "configure:13908: checking if PIC flag ${dll_cflags} really works" >&5
   save_CFLAGS="$CFLAGS"
   CFLAGS="$CFLAGS $dll_cflags -DPIC"
   cat > conftest.$ac_ext <<EOF
-#line 13876 "configure"
+#line 13912 "configure"
 #include "confdefs.h"
 
 int main() {
 int x=0;
 ; return 0; }
 EOF
-if { (eval echo configure:13883: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13919: \"$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
@@ -13910,7 +13946,7 @@ cc_produces_so=no
 xldf=
 xcldf=
 echo $ac_n "checking if C compiler can produce shared libraries""... $ac_c" 1>&6
-echo "configure:13914: checking if C compiler can produce shared libraries" >&5
+echo "configure:13950: checking if C compiler can produce shared libraries" >&5
 if test "$XEGCC" = yes; then
   xcldf="-shared"
   xldf="-shared"
@@ -13961,14 +13997,14 @@ if test -n "$xcldf"; then
   xe_libs=
   ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&5'
   cat > conftest.$ac_ext <<EOF
-#line 13965 "configure"
+#line 14001 "configure"
 #include "confdefs.h"
 
 int main() {
 int x=0;
 ; return 0; }
 EOF
-if { (eval echo configure:13972: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14008: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cc_produces_so=yes
 else
@@ -13993,7 +14029,7 @@ if test -z "$LTLD"; then
   if test "$XEGCC" = yes; then
     # Check if gcc -print-prog-name=ld gives a path.
     echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6
-echo "configure:13997: checking for ld used by GCC" >&5
+echo "configure:14033: checking for ld used by GCC" >&5
     ac_prog=`($CC -print-prog-name=ld) 2>&5`
     case "$ac_prog" in
     # Accept absolute paths.
@@ -14018,7 +14054,7 @@ echo "configure:13997: checking for ld used by GCC" >&5
     esac
   else
     echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
-echo "configure:14022: checking for GNU ld" >&5
+echo "configure:14058: checking for GNU ld" >&5
   fi
 
   if test -z "$LTLD"; then
@@ -14056,7 +14092,7 @@ ld_dynamic_link_flags=
 
 # Check to see if it really is or isn't GNU ld.
 echo $ac_n "checking if the linker is GNU ld""... $ac_c" 1>&6
-echo "configure:14060: checking if the linker is GNU ld" >&5
+echo "configure:14096: 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
@@ -14084,7 +14120,7 @@ else
   # OK - only NOW do we futz about with ld.
   # See if the linker supports building shared libraries.
   echo $ac_n "checking whether the linker supports shared libraries""... $ac_c" 1>&6
-echo "configure:14088: checking whether the linker supports shared libraries" >&5
+echo "configure:14124: checking whether the linker supports shared libraries" >&5
   dll_ld=$CC
   dll_ldflags=$LDFLAGS
   ld_shlibs=yes
@@ -14299,10 +14335,10 @@ EOF
     for ac_func in dlerror _dlerror
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:14303: checking for $ac_func" >&5
+echo "configure:14339: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
-#line 14306 "configure"
+#line 14342 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -14325,7 +14361,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:14329: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14365: \"$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
@@ -14364,11 +14400,11 @@ done
 fi
 
 cat > conftest.$ac_ext <<EOF
-#line 14368 "configure"
+#line 14404 "configure"
 #include "confdefs.h"
 int main(int c,char *v[]){return 0;}
 EOF
-if { (eval echo configure:14372: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:14408: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   :
 else
index ebad6d6..c7ab828 100644 (file)
@@ -284,26 +284,6 @@ verbose=
 x_includes=NONE
 x_libraries=NONE
 
-dnl Installation directory options.
-dnl These are left unexpanded so users can "make install exec_prefix=/foo"
-dnl and all the variables that are supposed to be based on exec_prefix
-dnl by default will actually change.
-dnl Use braces instead of parens because sh, perl, etc. also accept them.
-dnl If you change these, you need to synchronize with the settings of the
-dnl various ..._USER_DEFINED variables further down.
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${{exec_prefix}}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
 dnl Initialize some other variables.
 subdirs=
 MFLAGS= MAKEFLAGS=
@@ -770,10 +750,12 @@ The default is to autodetect all sound support."])
              infopath ) AC_DEFINE(INFOPATH_USER_DEFINED) ;;
              package_path ) AC_DEFINE(PACKAGE_PATH_USER_DEFINED) ;;
              datadir )
-               AC_DEFINE(INFODIR_USER_DEFINED)
-               AC_DEFINE(LISPDIR_USER_DEFINED)
-            AC_DEFINE(MODULEDIR_USER_DEFINED)
-               AC_DEFINE(ETCDIR_USER_DEFINED) ;;
+               AC_DEFINE(INFODIR_USER_DEFINED)
+               AC_DEFINE(LISPDIR_USER_DEFINED)
+               AC_DEFINE(MODULEDIR_USER_DEFINED)
+               AC_DEFINE(ETCDIR_USER_DEFINED)
+               AC_DEFINE(DOCDIR_USER_DEFINED)
+                AC_DEFINE(ARCHLIBDIR_USER_DEFINED) ;;
             docdir ) AC_DEFINE(DOCDIR_USER_DEFINED) ;;
              exec_prefix | libdir | archlibdir ) AC_DEFINE(ARCHLIBDIR_USER_DEFINED) ;;
            esac
@@ -1866,15 +1848,15 @@ test "$extra_verbose" = "yes" && \
   have_terminfo mail_use_flock mail_use_lockf) && echo ""
 
 dnl Pick up mingw32 include path
-case "$opsys" in mingw* | cygwin*) 
+case "$opsys" in mingw* | cygwin*)
   cygwin_include=`eval "gcc -print-file-name=libc.a"` ;
   cygwin_include=`eval "dirname $cygwin_include"` ;
   cygwin_include="-I$cygwin_include/../include" ;
   extra_includes="$cygwin_include/mingw32 $cygwin_include/mingw $cygwin_include" ;
-  case "$opsys" in mingw*) 
+  case "$opsys" in mingw*)
     XE_APPEND($extra_includes, c_switch_system) ;;
   esac
-  ;;   
+  ;;
 esac
 
 dnl Non-ordinary link usually requires -lc
@@ -1906,7 +1888,10 @@ if test "$cflags_specified" = "no"; then
   dnl Following values of CFLAGS are known to work well.
   dnl Should we take debugging options into consideration?
   if   test "$GCC" = "yes"; then
-    CFLAGS="-g -O3 -Wall -Wno-switch -Wpointer-arith -Winline -Wmissing-prototypes -Wshadow"
+    CFLAGS="-g -O3 -Wall -Wno-switch -Winline -Wmissing-prototypes -Wshadow"
+    dnl glibc is intentionally not `-Wpointer-arith'-clean.
+    dnl Ulrich Drepper has rejected patches to fix the glibc header files.
+    test "$have_glibc" != "yes" && CFLAGS="$CFLAGS -Wpointer-arith"
     dnl I'm not convinced this is a good idea any more. -sb
     dnl test "$opsys $machine" = "linux intel386" && \
     dnl CFLAGS="$CFLAGS -fno-strength-reduce -malign-loops=2 -malign-jumps=2 -malign-functions=2"
@@ -2726,7 +2711,7 @@ dnl Avoid re-AC_DEFINE-ing xmkmf symbols we've already defined above.
 #include <X11/Xlib.h>
 extern Bool XRegisterIMInstantiateCallback(
    Display*, struct _XrmHashBucketRec*, char*, char*, XIMProc, XPointer*);
-], [], 
+], [],
   [AC_MSG_RESULT(yes)],
   [AC_MSG_RESULT(no)
    AC_DEFINE(XREGISTERIMINSTANTIATECALLBACK_NONSTANDARD_PROTOTYPE)])
@@ -2772,7 +2757,7 @@ if test "$with_msw" != "no"; then
     XE_APPEND(netinstall, MAKE_SUBDIR)
     XE_APPEND(netinstall, SRC_SUBDIR_DEPS)
     XE_APPEND(netinstall, INSTALL_ARCH_DEP_SUBDIR)
-       
+
     install_pp="$blddir/lib-src/installexe.sh"
     XE_APPEND(-lshell32 -lgdi32 -luser32 -lcomdlg32 -lcomctl32 -lwinspool, libs_system)
     test "$with_dragndrop" != no && XE_APPEND(msw, dragndrop_proto)
@@ -3087,6 +3072,9 @@ if test "$window_system" != "none"; then
     AC_MSG_RESULT($with_xpm)
   fi
   if test "$with_xpm" = "yes"; then
+    dnl #### This code assumes that if AC_CHECK_LIB fails, 
+    dnl #### then it will succeed if FOR_MSW is defined, 
+    dnl #### but doesn't actually verify this assumption.
     AC_DEFINE(HAVE_XPM)
     XE_PREPEND(-lXpm, libs_x)
     AC_MSG_CHECKING(for \"FOR_MSW\" xpm)
@@ -3502,6 +3490,8 @@ if test "$with_mule" = "yes" ; then
   dnl Autodetect WNN
   test "$with_wnn6" = "yes" && with_wnn=yes # wnn6 implies wnn support
   test -z "$with_wnn" && { AC_CHECK_HEADER(wnn/jllib.h, ,with_wnn=no) }
+  dnl gcc 2.97 fixincludes breaks inclusion of wnn/commonhd.h
+  test -z "$with_wnn" && { AC_CHECK_HEADER(wnn/commonhd.h, ,with_wnn=no) }
   dnl Detour to find crypt
   if test "$with_wnn" != "no"; then
     AC_CHECK_FUNCS(crypt)
@@ -3571,19 +3561,26 @@ fi
 
 AC_CHECK_FUNCS(cbrt closedir dup2 eaccess fmod fpathconf frexp ftime getaddrinfo gethostname getnameinfo getpagesize gettimeofday getcwd getwd logb lrand48 matherr mkdir mktime perror poll random rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask snprintf stpcpy strerror tzset ulimit usleep utimes waitpid vsnprintf fsync ftruncate umask)
 
+dnl ----------------------------------------------------------------
 dnl Check for PTY support functions.
-dnl  getpt  is the preferred pty allocation method on glibc systems.
-dnl _getpty is the preferred pty allocation method on SGI systems.
-dnl grantpt, unlockpt, ptsname are defined by Unix98.
+dnl ----------------------------------------------------------------
+
+dnl There is no "standard" pty allocation method.  Every system is different.
+dnl  getpt()  is the preferred pty allocation method on glibc systems.
+dnl _getpty() is the preferred pty allocation method on SGI systems.
+dnl grantpt(), unlockpt(), ptsname() are defined by Unix98.
 AC_CHECK_FUNCS(getpt _getpty grantpt unlockpt ptsname killpg tcgetpgrp)
 
-dnl openpty is the preferred pty allocation method on BSD and Tru64 systems.
-dnl openpty might be declared in pty.h or in libutil.h.
+dnl openpty() is the preferred pty allocation method on BSD and Tru64 systems.
+dnl openpty() might be declared in:
+dnl - pty.h (Tru64 or Linux)
+dnl - libutil.h (FreeBSD)
+dnl - util.h (NetBSD)
 AC_CHECK_FUNC(openpty, have_openpty=yes, [
   AC_CHECK_LIB(util, openpty, have_openpty=yes need_libutil=yes)])
 if test "$have_openpty" = "yes"; then
   AC_DEFINE(HAVE_OPENPTY)
-  AC_CHECK_HEADERS(pty.h libutil.h)
+  AC_CHECK_HEADERS(pty.h libutil.h util.h, break)
   test "$need_libutil" = "yes" && XE_APPEND(-lutil, libs_system)
 fi
 
index 735b187..3ae60ec 100644 (file)
@@ -1,6 +1,6 @@
 .\" Copyright (c) 1992 Free Software Foundation
 .\" See section COPYING for conditions for redistribution
-.TH etags 1 "02nov1999" "GNU Tools" "GNU Tools"
+.TH etags 1 "14gen2001" "GNU Tools" "GNU Tools"
 .de BP
 .sp
 .ti -.2i
@@ -16,28 +16,28 @@ etags, ctags \- generate tag file for Emacs, vi
 .if n .br
 .B [\|\-o \fItagfile\fP\|] [\|\-r \fIregexp\fP\|]
 .br
-[\|\-\-append\|] [\|\-\-c++\|] [\|\-\-no\-defines\|]
-[\|\-\-no\-globals\|] [\|\-\-include=\fIfile\fP\|]
-[\|\-\-ignore\-indentation\|] [\|\-\-language=\fIlanguage\fP\|]
-[\|\-\-members\|] [\|\-\-output=\fItagfile\fP\|]
-[\|\-\-regex=\fIregexp\fP\|] [\|\-\-no\-regex\|]
-[\|\-\-ignore\-case\-regex=\fIregexp\fP\|]
-[\|\-\-help\|] [\|\-\-version\|]
+.B [\|\-\-append\|] [\|\-\-no\-defines\|]
+.B [\|\-\-no\-globals\|] [\|\-\-include=\fIfile\fP\|]
+.B [\|\-\-ignore\-indentation\|] [\|\-\-language=\fIlanguage\fP\|]
+.B [\|\-\-members\|] [\|\-\-output=\fItagfile\fP\|]
+.B [\|\-\-regex=\fIregexp\fP\|] [\|\-\-no\-regex\|]
+.B [\|\-\-ignore\-case\-regex=\fIregexp\fP\|]
+.B [\|\-\-help\|] [\|\-\-version\|]
 \fIfile\fP .\|.\|.
 
 .B ctags [\|\-aCdgImRVh\|] [\|\-BtTuvwx\|] [\|\-l \fIlanguage\fP\|]
 .if n .br
 .B [\|\-o \fItagfile\fP\|] [\|\-r \fIregexp\fP\|]
 .br
-[\|\-\-append\|] [\|\-\-backward\-search\|] [\|\-\-c++\|]
-[\|\-\-cxref\|] [\|\-\-defines\|] [\|\-\-forward\-search\|]
-[\|\-\-globals\|] [\|\-\-ignore\-indentation\|]
-[\|\-\-language=\fIlanguage\fP\|] [\|\-\-members\|]
-[\|\-\-output=\fItagfile\fP\|] [\|\-\-regex=\fIregexp\fP\|]
-[\|\-\-ignore\-case\-regex=\fIregexp\fP\|]
-[\|\-\-typedefs\|] [\|\-\-typedefs\-and\-c++\|]
-[\|\-\-update\|] [\|\-\-no\-warn\|]
-[\|\-\-help\|] [\|\-\-version\|]
+.B [\|\-\-append\|] [\|\-\-backward\-search\|]
+.B [\|\-\-cxref\|] [\|\-\-defines\|] [\|\-\-forward\-search\|]
+.B [\|\-\-globals\|] [\|\-\-ignore\-indentation\|]
+.B [\|\-\-language=\fIlanguage\fP\|] [\|\-\-members\|]
+.B [\|\-\-output=\fItagfile\fP\|] [\|\-\-regex=\fIregexp\fP\|]
+.B [\|\-\-ignore\-case\-regex=\fIregexp\fP\|]
+.B [\|\-\-typedefs\|] [\|\-\-typedefs\-and\-c++\|]
+.B [\|\-\-update\|] [\|\-\-no\-warn\|]
+.B [\|\-\-help\|] [\|\-\-version\|]
 \fIfile\fP .\|.\|.
 .ad b
 .hy 1
@@ -48,10 +48,10 @@ understood by
 \&; the `\|\fBctags\fP\|' program is used to create a similar table in a
 format understood by
 .BR vi ( 1 )\c
-\&.  Both forms of the program understand
-the syntax of C, Objective C, C++, Java, Fortran, Pascal, Cobol, Ada, Perl,
-LaTeX, Scheme, Emacs Lisp/Common Lisp, Postscript, Erlang, Python, Prolog and
-most assembler\-like syntaxes.
+\&.  Both forms of the program understand the syntax of C, Objective C,
+C++, Java, Fortran, Ada, Cobol, Erlang, LaTeX, Emacs Lisp/Common Lisp,
+makefiles, Pascal, Perl, Postscript, Python, Prolog, Scheme and most
+assembler\-like syntaxes.
 Both forms read the files specified on the command line, and write a tag
 table (defaults: `\|TAGS\|' for \fBetags\fP, `\|tags\|' for
 \fBctags\fP) in the current working directory.
@@ -81,11 +81,6 @@ The default is to use the delimiter `\|\fB/\fP\|', to search \fIforwards\fP
 through files.
 Only \fBctags\fP accepts this option.
 .TP
-.B \-C, \-\-c++
-Treat files with `\|.c\|' and `\|.h\|' extensions as C++ code, not C
-code.  Files with `\|.C\|', `\|.H\|', `\|.cxx\|', `\|.hxx\|', or
-`\|.cc\|' extensions are always assumed to be C++ code.
-.TP
 .B \-\-declarations
 In C and derived languages, create tags for function declarations,
 and create tags for extern variables unless \-\-no\-globals is used.
@@ -125,7 +120,7 @@ Parse the following files according to the given language.  More than
 one such options may be intermixed with filenames.  Use \fB\-\-help\fP
 to get a list of the available languages and their default filename
 extensions.  The `auto' language can be used to restore automatic
-detection of language based on filename extension.  The `none'
+detection of language based on the file name.  The `none'
 language may be used to disable language parsing altogether; only
 regexp matching is done in this case (see the \fB\-\-regex\fP option).
 .TP
@@ -143,8 +138,7 @@ Only tag packages in Ada files.
 Explicit name of file for tag table; overrides default `\|TAGS\|' or
 `\|tags\|'.   (But ignored with \fB\-v\fP or \fB\-x\fP.)
 .TP
-\fB\-r\fP \fIregexp\fP, \fB\-\-regex=\fIregexp\fP
-\fB\-\-ignore\-case\-regex=\fIregexp\fP\
+\fB\-r\fP \fIregexp\fP, \fB\-\-regex=\fIregexp\fP, \fB\-\-ignore\-case\-regex=\fIregexp\fP
 Make tags based on regexp matching for each line of the files following
 this option, in addition to the tags made with the standard parsing based
 on language.  When using \-\-regex, case is significant, while it is not
@@ -187,9 +181,9 @@ Tag TCL files (this last example shows the usage of a \fItagregexp\fP):
 
 .br
 A regexp can be preceded by {lang}, thus restriciting it to match lines of
-files of the specified language.  Use \fBetags --help\bP to obtain a list
+files of the specified language.  Use \fBetags --help\fP to obtain a list
 of the recognised languages.  This feature is particularly useful inside
-\fBregex files\fB.  A regex file contains one regex per line.  Empty lines,
+\fBregex files\fP.  A regex file contains one regex per line.  Empty lines,
 and those lines beginning with space or tab are ignored.  Lines beginning
 with @ are references to regex files whose name follows the @ sign.  Other
 lines are considered regular expressions like those following \-\-regex.
index f9132e6..2f1244d 100644 (file)
@@ -58,47 +58,47 @@ lispref.info-4: 147443
 lispref.info-5: 197182
 lispref.info-6: 245536
 lispref.info-7: 293943
-lispref.info-8: 342608
-lispref.info-9: 387690
-lispref.info-10: 436621
-lispref.info-11: 485478
-lispref.info-12: 534009
-lispref.info-13: 581561
-lispref.info-14: 629419
-lispref.info-15: 678834
-lispref.info-16: 726829
-lispref.info-17: 772166
-lispref.info-18: 819636
-lispref.info-19: 867194
-lispref.info-20: 914820
-lispref.info-21: 962847
-lispref.info-22: 1011769
-lispref.info-23: 1058032
-lispref.info-24: 1104496
-lispref.info-25: 1154156
-lispref.info-26: 1202847
-lispref.info-27: 1251702
-lispref.info-28: 1300369
-lispref.info-29: 1350320
-lispref.info-30: 1398469
-lispref.info-31: 1444124
-lispref.info-32: 1494113
-lispref.info-33: 1542683
-lispref.info-34: 1589888
-lispref.info-35: 1639714
-lispref.info-36: 1688390
-lispref.info-37: 1734123
-lispref.info-38: 1783262
-lispref.info-39: 1830704
-lispref.info-40: 1879257
-lispref.info-41: 1925810
-lispref.info-42: 1974505
-lispref.info-43: 2018880
-lispref.info-44: 2063249
-lispref.info-45: 2109743
-lispref.info-46: 2150585
-lispref.info-47: 2199803
-lispref.info-48: 2213672
+lispref.info-8: 342609
+lispref.info-9: 387691
+lispref.info-10: 436623
+lispref.info-11: 485480
+lispref.info-12: 534011
+lispref.info-13: 581563
+lispref.info-14: 629421
+lispref.info-15: 678836
+lispref.info-16: 726831
+lispref.info-17: 772168
+lispref.info-18: 819638
+lispref.info-19: 867196
+lispref.info-20: 914822
+lispref.info-21: 962849
+lispref.info-22: 1011771
+lispref.info-23: 1058034
+lispref.info-24: 1104498
+lispref.info-25: 1154158
+lispref.info-26: 1202849
+lispref.info-27: 1251704
+lispref.info-28: 1300371
+lispref.info-29: 1350322
+lispref.info-30: 1398471
+lispref.info-31: 1444126
+lispref.info-32: 1494115
+lispref.info-33: 1542685
+lispref.info-34: 1589890
+lispref.info-35: 1639716
+lispref.info-36: 1688392
+lispref.info-37: 1734125
+lispref.info-38: 1783264
+lispref.info-39: 1830706
+lispref.info-40: 1879259
+lispref.info-41: 1925812
+lispref.info-42: 1974507
+lispref.info-43: 2018882
+lispref.info-44: 2063251
+lispref.info-45: 2109745
+lispref.info-46: 2150587
+lispref.info-47: 2199805
+lispref.info-48: 2213674
 \1f
 Tag Table:
 (Indirect)
@@ -241,679 +241,679 @@ Node: Evaluation\7f332738
 Node: Intro Eval\7f333543
 Ref: Intro Eval-Footnote-1\7f336896
 Node: Eval\7f337031
-Node: Forms\7f341449
-Node: Self-Evaluating Forms\7f342608
-Node: Symbol Forms\7f344121
-Node: Classifying Lists\7f345038
-Node: Function Indirection\7f345794
-Node: Function Forms\7f348893
-Node: Macro Forms\7f349890
-Node: Special Forms\7f351490
-Node: Autoloading\7f353799
-Node: Quoting\7f354297
-Node: Control Structures\7f355658
-Node: Sequencing\7f357278
-Node: Conditionals\7f360143
-Node: Combining Conditions\7f363566
-Node: Iteration\7f366836
-Node: Nonlocal Exits\7f368615
-Node: Catch and Throw\7f369317
-Node: Examples of Catch\7f373156
-Node: Errors\7f375175
-Node: Signaling Errors\7f376664
-Node: Processing of Errors\7f385411
-Node: Handling Errors\7f387690
-Node: Error Symbols\7f394931
-Node: Cleanups\7f398887
-Node: Variables\7f402665
-Node: Global Variables\7f404434
-Node: Constant Variables\7f405510
-Node: Local Variables\7f406136
-Node: Void Variables\7f411073
-Node: Defining Variables\7f414589
-Node: Accessing Variables\7f421753
-Node: Setting Variables\7f423178
-Node: Variable Scoping\7f427697
-Node: Scope\7f429296
-Node: Extent\7f430821
-Node: Impl of Scope\7f432300
-Node: Using Scoping\7f434263
-Node: Buffer-Local Variables\7f435785
-Node: Intro to Buffer-Local\7f436621
-Node: Creating Buffer-Local\7f439164
-Node: Default Value\7f445063
-Node: Variable Aliases\7f448206
-Node: Functions\7f450057
-Node: What Is a Function\7f451151
-Node: Lambda Expressions\7f455197
-Node: Lambda Components\7f456107
-Node: Simple Lambda\7f457939
-Node: Argument List\7f459596
-Node: Function Documentation\7f463324
-Node: Function Names\7f465266
-Node: Defining Functions\7f467839
-Node: Calling Functions\7f470879
-Node: Mapping Functions\7f474727
-Node: Anonymous Functions\7f477415
-Node: Function Cells\7f480660
-Node: Inline Functions\7f485478
-Node: Related Topics\7f487288
-Node: Macros\7f488341
-Node: Simple Macro\7f489625
-Node: Expansion\7f490360
-Node: Compiling Macros\7f493364
-Node: Defining Macros\7f495200
-Node: Backquote\7f496517
-Node: Problems with Macros\7f498914
-Node: Argument Evaluation\7f499609
-Node: Surprising Local Vars\7f502524
-Node: Eval During Expansion\7f504592
-Node: Repeated Expansion\7f506285
-Node: Customization\7f508201
-Node: Common Keywords\7f508670
-Node: Group Definitions\7f511515
-Node: Variable Definitions\7f513707
-Node: Customization Types\7f518697
-Node: Simple Types\7f520132
-Node: Composite Types\7f522289
-Node: Splicing into Lists\7f526979
-Node: Type Keywords\7f528814
-Node: Loading\7f532334
-Node: How Programs Do Loading\7f534009
-Node: Autoload\7f543135
-Node: Repeated Loading\7f549205
-Node: Named Features\7f551318
-Node: Unloading\7f557748
-Node: Hooks for Loading\7f559904
-Node: Byte Compilation\7f560621
-Node: Speed of Byte-Code\7f562614
-Node: Compilation Functions\7f563821
-Node: Docs and Compilation\7f570478
-Node: Dynamic Loading\7f573131
-Node: Eval During Compile\7f575495
-Node: Compiled-Function Objects\7f576760
-Node: Disassembly\7f581561
-Node: Different Behavior\7f588842
-Node: Debugging\7f590187
-Node: Debugger\7f591599
-Node: Error Debugging\7f592744
-Node: Infinite Loops\7f595497
-Node: Function Debugging\7f596741
-Node: Explicit Debug\7f599541
-Node: Using Debugger\7f600312
-Node: Debugger Commands\7f602174
-Node: Invoking the Debugger\7f606491
-Node: Internals of Debugger\7f610406
-Node: Syntax Errors\7f615293
-Node: Excess Open\7f616541
-Node: Excess Close\7f618416
-Node: Compilation Errors\7f619837
-Node: Edebug\7f621125
-Node: Using Edebug\7f623233
-Node: Instrumenting\7f625930
-Node: Edebug Execution Modes\7f629419
-Node: Jumping\7f632529
-Node: Edebug Misc\7f634872
-Node: Breakpoints\7f636261
-Node: Global Break Condition\7f639067
-Node: Embedded Breakpoints\7f640022
-Node: Trapping Errors\7f640977
-Node: Edebug Views\7f643053
-Node: Edebug Eval\7f645018
-Node: Eval List\7f646195
-Node: Reading in Edebug\7f649580
-Node: Printing in Edebug\7f650379
-Node: Tracing\7f652094
-Node: Coverage Testing\7f653982
-Node: The Outside Context\7f656023
-Node: Checking Whether to Stop\7f656972
-Node: Edebug Display Update\7f657619
-Node: Edebug Recursive Edit\7f659642
-Node: Instrumenting Macro Calls\7f661297
-Node: Specification List\7f663779
-Node: Backtracking\7f673190
-Node: Debugging Backquote\7f675128
-Node: Specification Examples\7f678834
-Node: Edebug Options\7f680901
-Node: Read and Print\7f686240
-Node: Streams Intro\7f687217
-Node: Input Streams\7f689235
-Node: Input Functions\7f694136
-Node: Output Streams\7f696196
-Node: Output Functions\7f700247
-Node: Output Variables\7f704547
-Node: Minibuffers\7f709348
-Node: Intro to Minibuffers\7f710500
-Node: Text from Minibuffer\7f712688
-Node: Object from Minibuffer\7f717782
-Node: Minibuffer History\7f721875
-Node: Completion\7f724854
-Node: Basic Completion\7f726829
-Node: Minibuffer Completion\7f731712
-Node: Completion Commands\7f735289
-Node: High-Level Completion\7f739946
-Node: Reading File Names\7f744695
-Node: Programmed Completion\7f748387
-Node: Yes-or-No Queries\7f750769
-Node: Multiple Queries\7f756506
-Node: Reading a Password\7f760573
-Node: Minibuffer Misc\7f761916
-Node: Command Loop\7f766796
-Node: Command Overview\7f768140
-Node: Defining Commands\7f771418
-Node: Using Interactive\7f772166
-Node: Interactive Codes\7f776939
-Node: Interactive Examples\7f782731
-Node: Interactive Call\7f784045
-Node: Command Loop Info\7f789460
-Node: Events\7f794439
-Node: Event Types\7f795900
-Node: Event Contents\7f797823
-Node: Event Predicates\7f802299
-Node: Accessing Mouse Event Positions\7f803617
-Node: Frame-Level Event Position Info\7f804316
-Node: Window-Level Event Position Info\7f805356
-Node: Event Text Position Info\7f807120
-Node: Event Glyph Position Info\7f809612
-Node: Event Toolbar Position Info\7f810935
-Node: Other Event Position Info\7f811606
-Node: Accessing Other Event Info\7f812015
-Node: Working With Events\7f813635
-Node: Converting Events\7f819636
-Node: Reading Input\7f823035
-Node: Key Sequence Input\7f824037
-Node: Reading One Event\7f826672
-Node: Dispatching an Event\7f829496
-Node: Quoted Character Input\7f829947
-Node: Peeking and Discarding\7f831295
-Node: Waiting\7f835199
-Node: Quitting\7f837513
-Node: Prefix Command Arguments\7f841921
-Node: Recursive Editing\7f847008
-Node: Disabling Commands\7f851803
-Node: Command History\7f853871
-Node: Keyboard Macros\7f855608
-Node: Keymaps\7f857825
-Node: Keymap Terminology\7f859402
-Node: Format of Keymaps\7f862331
-Node: Creating Keymaps\7f862742
-Node: Inheritance and Keymaps\7f864822
-Node: Key Sequences\7f867194
-Node: Prefix Keys\7f871990
-Node: Active Keymaps\7f875575
-Node: Key Lookup\7f884946
-Node: Functions for Key Lookup\7f890109
-Node: Changing Key Bindings\7f895810
-Node: Key Binding Commands\7f902972
-Node: Scanning Keymaps\7f905037
-Node: Other Keymap Functions\7f913606
-Node: Menus\7f914228
-Node: Menu Format\7f914820
-Node: Menubar Format\7f923466
-Node: Menubar\7f924091
-Node: Modifying Menus\7f927204
-Node: Menu Filters\7f932548
-Node: Pop-Up Menus\7f934444
-Node: Menu Accelerators\7f936772
-Node: Creating Menu Accelerators\7f937528
-Node: Keyboard Menu Traversal\7f938888
-Node: Menu Accelerator Functions\7f939615
-Node: Buffers Menu\7f942691
-Node: Dialog Boxes\7f943985
-Node: Dialog Box Format\7f944152
-Node: Dialog Box Functions\7f945577
-Node: Toolbar\7f945974
-Node: Toolbar Intro\7f946409
-Node: Creating Toolbar\7f948809
-Node: Toolbar Descriptor Format\7f949726
-Node: Specifying the Toolbar\7f954223
-Node: Other Toolbar Variables\7f957830
-Node: Gutter\7f962258
-Node: Gutter Intro\7f962847
-Node: Creating Gutter\7f964850
-Node: Gutter Descriptor Format\7f967737
-Node: Specifying a Gutter\7f972194
-Node: Other Gutter Variables\7f975729
-Node: Common Gutter Widgets\7f980116
-Node: Buffer Tabs\7f981108
-Node: Progress Bars\7f981249
-Node: Scrollbars\7f981394
-Node: Drag and Drop\7f981529
-Node: Supported Protocols\7f982605
-Node: OffiX DND\7f983108
-Node: CDE dt\7f984115
-Node: MSWindows OLE\7f984706
-Node: Loose ends\7f984877
-Node: Drop Interface\7f985269
-Node: Drag Interface\7f986291
-Node: Modes\7f986465
-Node: Major Modes\7f987416
-Node: Major Mode Conventions\7f990331
-Node: Example Major Modes\7f996286
-Node: Auto Major Mode\7f1004319
-Node: Mode Help\7f1011769
-Node: Derived Modes\7f1012870
-Node: Minor Modes\7f1015061
-Node: Minor Mode Conventions\7f1016363
-Node: Keymaps and Minor Modes\7f1019226
-Node: Modeline Format\7f1020061
-Node: Modeline Data\7f1021829
-Node: Modeline Variables\7f1026982
-Node: %-Constructs\7f1031698
-Node: Hooks\7f1034685
-Node: Documentation\7f1041445
-Node: Documentation Basics\7f1042868
-Node: Accessing Documentation\7f1045919
-Node: Keys in Documentation\7f1052200
-Node: Describing Characters\7f1055683
-Node: Help Functions\7f1058032
-Node: Obsoleteness\7f1064482
-Node: Files\7f1067474
-Node: Visiting Files\7f1069399
-Node: Visiting Functions\7f1070904
-Node: Subroutines of Visiting\7f1076062
-Node: Saving Buffers\7f1078135
-Node: Reading from Files\7f1084228
-Node: Writing to Files\7f1086389
-Node: File Locks\7f1089106
-Node: Information about Files\7f1092173
-Node: Testing Accessibility\7f1092934
-Node: Kinds of Files\7f1096674
-Node: Truenames\7f1098355
-Node: File Attributes\7f1099357
-Node: Changing File Attributes\7f1104496
-Node: File Names\7f1109918
-Node: File Name Components\7f1111491
-Node: Directory Names\7f1113936
-Node: Relative File Names\7f1117166
-Node: File Name Expansion\7f1118136
-Node: Unique File Names\7f1121890
-Node: File Name Completion\7f1123505
-Node: User Name Completion\7f1126773
-Node: Contents of Directories\7f1128180
-Node: Create/Delete Dirs\7f1131493
-Node: Magic File Names\7f1132599
-Node: Partial Files\7f1138247
-Node: Intro to Partial Files\7f1138475
-Node: Creating a Partial File\7f1139715
-Node: Detached Partial Files\7f1140651
-Node: Format Conversion\7f1141773
-Node: Files and MS-DOS\7f1147271
-Node: Backups and Auto-Saving\7f1149335
-Node: Backup Files\7f1150010
-Node: Making Backups\7f1151407
-Node: Rename or Copy\7f1154156
-Node: Numbered Backups\7f1156649
-Node: Backup Names\7f1158884
-Node: Auto-Saving\7f1162176
-Node: Reverting\7f1170338
-Node: Buffers\7f1173674
-Node: Buffer Basics\7f1175090
-Node: Current Buffer\7f1177143
-Node: Buffer Names\7f1181847
-Node: Buffer File Name\7f1185054
-Node: Buffer Modification\7f1189173
-Node: Modification Time\7f1191416
-Node: Read Only Buffers\7f1194791
-Node: The Buffer List\7f1198030
-Node: Creating Buffers\7f1202847
-Node: Killing Buffers\7f1204993
-Node: Indirect Buffers\7f1208825
-Node: Windows\7f1211399
-Node: Basic Windows\7f1212877
-Node: Splitting Windows\7f1215975
-Node: Deleting Windows\7f1221301
-Node: Selecting Windows\7f1225219
-Node: Cyclic Window Ordering\7f1229442
-Node: Buffers and Windows\7f1234597
-Node: Displaying Buffers\7f1236375
-Node: Choosing Window\7f1241714
-Node: Window Point\7f1249632
-Node: Window Start\7f1251702
-Node: Vertical Scrolling\7f1256501
-Node: Horizontal Scrolling\7f1262699
-Node: Size of Window\7f1266228
-Node: Position of Window\7f1270946
-Node: Resizing Windows\7f1273199
-Node: Window Configurations\7f1278637
-Node: Frames\7f1282134
-Node: Creating Frames\7f1284475
-Node: Frame Properties\7f1285815
-Node: Property Access\7f1286631
-Node: Initial Properties\7f1287538
-Node: X Frame Properties\7f1290024
-Node: Size and Position\7f1294658
-Node: Frame Name\7f1296656
-Node: Frame Titles\7f1297570
-Node: Deleting Frames\7f1299394
-Node: Finding All Frames\7f1300369
-Node: Frames and Windows\7f1303597
-Node: Minibuffers and Frames\7f1306379
-Node: Input Focus\7f1307297
-Node: Visibility of Frames\7f1310402
-Node: Raising and Lowering\7f1312392
-Node: Frame Configurations\7f1314768
-Node: Frame Hooks\7f1315825
-Node: Consoles and Devices\7f1317630
-Node: Basic Console Functions\7f1320373
-Node: Basic Device Functions\7f1320796
-Node: Console Types and Device Classes\7f1321642
-Node: Connecting to a Console or Device\7f1323909
-Node: The Selected Console and Device\7f1326093
-Node: Console and Device I/O\7f1327119
-Node: Positions\7f1327883
-Node: Point\7f1328852
-Node: Motion\7f1331942
-Node: Character Motion\7f1332709
-Node: Word Motion\7f1334946
-Node: Buffer End Motion\7f1336336
-Node: Text Lines\7f1337873
-Node: Screen Lines\7f1342774
-Node: List Motion\7f1346837
-Node: Skipping Characters\7f1350320
-Node: Excursions\7f1352539
-Node: Narrowing\7f1355579
-Node: Markers\7f1360910
-Node: Overview of Markers\7f1361816
-Node: Predicates on Markers\7f1366508
-Node: Creating Markers\7f1367754
-Node: Information from Markers\7f1371954
-Node: Changing Markers\7f1373052
-Node: The Mark\7f1374580
-Node: The Region\7f1383083
-Node: Text\7f1388769
-Node: Near Point\7f1391468
-Node: Buffer Contents\7f1395655
-Node: Comparing Text\7f1397061
-Node: Insertion\7f1398469
-Node: Commands for Insertion\7f1402379
-Node: Deletion\7f1405273
-Node: User-Level Deletion\7f1408923
-Node: The Kill Ring\7f1413083
-Node: Kill Ring Concepts\7f1415257
-Node: Kill Functions\7f1416311
-Node: Yank Commands\7f1418234
-Node: Low-Level Kill Ring\7f1420105
-Node: Internals of Kill Ring\7f1423191
-Node: Undo\7f1425971
-Node: Maintaining Undo\7f1430308
-Node: Filling\7f1432926
-Node: Margins\7f1438920
-Node: Auto Filling\7f1442943
-Node: Sorting\7f1444124
-Node: Columns\7f1453438
-Node: Indentation\7f1456519
-Node: Primitive Indent\7f1457298
-Node: Mode-Specific Indent\7f1458623
-Node: Region Indent\7f1461155
-Node: Relative Indent\7f1464102
-Node: Indent Tabs\7f1466484
-Node: Motion by Indent\7f1467805
-Node: Case Changes\7f1468584
-Node: Text Properties\7f1471937
-Node: Examining Properties\7f1473750
-Node: Changing Properties\7f1475633
-Node: Property Search\7f1479224
-Node: Special Properties\7f1483943
-Node: Saving Properties\7f1484224
-Node: Substitution\7f1487366
-Node: Registers\7f1490636
-Node: Transposition\7f1493219
-Node: Change Hooks\7f1494113
-Node: Transformations\7f1496153
-Node: Searching and Matching\7f1501257
-Node: String Search\7f1502388
-Node: Regular Expressions\7f1507369
-Node: Syntax of Regexps\7f1508736
-Node: Regexp Example\7f1523339
-Node: Regexp Search\7f1525509
-Node: POSIX Regexps\7f1531846
-Node: Search and Replace\7f1533923
-Node: Match Data\7f1537288
-Node: Simple Match Data\7f1538418
-Node: Replacing Match\7f1542683
-Node: Entire Match Data\7f1545364
-Node: Saving Match Data\7f1547602
-Node: Searching and Case\7f1548990
-Node: Standard Regexps\7f1551024
-Node: Syntax Tables\7f1553222
-Node: Syntax Basics\7f1554336
-Node: Syntax Descriptors\7f1557308
-Node: Syntax Class Table\7f1559158
-Node: Syntax Flags\7f1565196
-Node: Syntax Table Functions\7f1568413
-Node: Motion and Syntax\7f1572701
-Node: Parsing Expressions\7f1574153
-Node: Standard Syntax Tables\7f1580251
-Node: Syntax Table Internals\7f1581095
-Node: Abbrevs\7f1582121
-Node: Abbrev Mode\7f1583925
-Node: Abbrev Tables\7f1584645
-Node: Defining Abbrevs\7f1586184
-Node: Abbrev Files\7f1588105
-Node: Abbrev Expansion\7f1589888
-Node: Standard Abbrev Tables\7f1594519
-Node: Extents\7f1595678
-Node: Intro to Extents\7f1596921
-Node: Creating and Modifying Extents\7f1600913
-Node: Extent Endpoints\7f1602494
-Node: Finding Extents\7f1605757
-Node: Mapping Over Extents\7f1609879
-Node: Extent Properties\7f1616002
-Node: Detached Extents\7f1626163
-Node: Extent Parents\7f1628022
-Node: Duplicable Extents\7f1629716
-Node: Extents and Events\7f1632937
-Node: Atomic Extents\7f1634844
-Node: Specifiers\7f1635291
-Node: Introduction to Specifiers\7f1637404
-Node: Specifiers In-Depth\7f1639714
-Node: Specifier Instancing\7f1644626
-Node: Specifier Types\7f1647888
-Node: Adding Specifications\7f1652962
-Node: Retrieving Specifications\7f1662383
-Node: Specifier Tag Functions\7f1666128
-Node: Specifier Instancing Functions\7f1669362
-Node: Specifier Example\7f1672769
-Node: Creating Specifiers\7f1675925
-Node: Specifier Validation Functions\7f1680242
-Node: Other Specification Functions\7f1682628
-Node: Faces and Window-System Objects\7f1686449
-Node: Faces\7f1686773
-Node: Merging Faces\7f1688390
-Node: Basic Face Functions\7f1690351
-Node: Face Properties\7f1692499
-Node: Face Convenience Functions\7f1702772
-Node: Other Face Display Functions\7f1705992
-Node: Fonts\7f1706804
-Node: Font Specifiers\7f1707505
-Node: Font Instances\7f1708690
-Node: Font Instance Names\7f1709657
-Node: Font Instance Size\7f1710498
-Node: Font Instance Characteristics\7f1711784
-Node: Font Convenience Functions\7f1712962
-Node: Colors\7f1714252
-Node: Color Specifiers\7f1714692
-Node: Color Instances\7f1717052
-Node: Color Instance Properties\7f1717796
-Node: Color Convenience Functions\7f1718422
-Node: Glyphs\7f1719475
-Node: Glyph Functions\7f1721076
-Node: Creating Glyphs\7f1721483
-Node: Glyph Properties\7f1734123
-Node: Glyph Convenience Functions\7f1743290
-Node: Glyph Dimensions\7f1747237
-Node: Images\7f1748317
-Node: Image Specifiers\7f1748766
-Node: Image Instantiator Conversion\7f1764257
-Node: Image Instances\7f1765622
-Node: Image Instance Types\7f1766373
-Node: Image Instance Functions\7f1769138
-Node: Glyph Types\7f1776195
-Node: Mouse Pointer\7f1777967
-Node: Redisplay Glyphs\7f1780970
-Node: Subwindows\7f1782003
-Node: Annotations\7f1782246
-Node: Annotation Basics\7f1783262
-Node: Annotation Primitives\7f1787200
-Node: Annotation Properties\7f1788539
-Node: Locating Annotations\7f1791579
-Node: Margin Primitives\7f1792416
-Node: Annotation Hooks\7f1794310
-Node: Display\7f1794970
-Node: Refresh Screen\7f1795948
-Node: Truncation\7f1798142
-Node: The Echo Area\7f1800667
-Node: Warnings\7f1807110
-Node: Invisible Text\7f1811546
-Node: Selective Display\7f1814125
-Node: Overlay Arrow\7f1818251
-Node: Temporary Displays\7f1819604
-Node: Blinking\7f1823725
-Node: Usual Display\7f1825909
-Node: Display Tables\7f1828458
-Node: Display Table Format\7f1829262
-Node: Active Display Table\7f1830704
-Node: Character Descriptors\7f1834699
-Node: Beeping\7f1835456
-Node: Hash Tables\7f1840222
-Node: Introduction to Hash Tables\7f1840830
-Node: Working With Hash Tables\7f1847389
-Node: Weak Hash Tables\7f1848506
-Node: Range Tables\7f1850523
-Node: Introduction to Range Tables\7f1851212
-Node: Working With Range Tables\7f1851658
-Node: Databases\7f1852617
-Node: Connecting to a Database\7f1852916
-Node: Working With a Database\7f1854023
-Node: Other Database Functions\7f1854897
-Node: Processes\7f1855466
-Node: Subprocess Creation\7f1857690
-Node: Synchronous Processes\7f1861141
-Node: MS-DOS Subprocesses\7f1867863
-Node: Asynchronous Processes\7f1868937
-Node: Deleting Processes\7f1873294
-Node: Process Information\7f1875165
-Node: Input to Processes\7f1879257
-Node: Signals to Processes\7f1881952
-Node: Output from Processes\7f1886767
-Node: Process Buffers\7f1887579
-Node: Filter Functions\7f1890458
-Node: Accepting Output\7f1896049
-Node: Sentinels\7f1897576
-Node: Process Window Size\7f1901066
-Node: Transaction Queues\7f1901415
-Node: Network\7f1903113
-Node: System Interface\7f1905747
-Node: Starting Up\7f1907017
-Node: Start-up Summary\7f1907611
-Node: Init File\7f1911165
-Node: Terminal-Specific\7f1913546
-Node: Command Line Arguments\7f1916705
-Node: Getting Out\7f1920194
-Node: Killing XEmacs\7f1920763
-Node: Suspending XEmacs\7f1922431
-Node: System Environment\7f1925810
-Node: User Identification\7f1931991
-Node: Time of Day\7f1935520
-Node: Time Conversion\7f1938307
-Node: Timers\7f1943549
-Node: Terminal Input\7f1945722
-Node: Input Modes\7f1946225
-Node: Translating Input\7f1948684
-Node: Recording Input\7f1952849
-Node: Terminal Output\7f1954949
-Node: Flow Control\7f1958570
-Node: Batch Mode\7f1962532
-Node: X-Windows\7f1963914
-Node: X Selections\7f1964785
-Node: X Server\7f1967536
-Node: Resources\7f1967987
-Node: Server Data\7f1973298
-Node: Grabs\7f1974505
-Node: X Miscellaneous\7f1976085
-Node: ToolTalk Support\7f1978470
-Node: XEmacs ToolTalk API Summary\7f1978687
-Node: Sending Messages\7f1979987
-Node: Example of Sending Messages\7f1980238
-Node: Elisp Interface for Sending Messages\7f1981300
-Node: Receiving Messages\7f1987896
-Node: Example of Receiving Messages\7f1988119
-Node: Elisp Interface for Receiving Messages\7f1988955
-Node: LDAP Support\7f1992812
-Node: Building XEmacs with LDAP support\7f1993306
-Node: XEmacs LDAP API\7f1994283
-Node: LDAP Variables\7f1995335
-Node: The High-Level LDAP API\7f1997935
-Node: The Low-Level LDAP API\7f2001408
-Node: The LDAP Lisp Object\7f2002239
-Node: Opening and Closing a LDAP Connection\7f2002794
-Node: Low-level Operations on a LDAP Server\7f2004600
-Node: LDAP Internationalization\7f2007324
-Node: LDAP Internationalization Variables\7f2008229
-Node: Encoder/Decoder Functions\7f2009960
-Node: Syntax of Search Filters\7f2010997
-Node: PostgreSQL Support\7f2012295
-Node: Building XEmacs with PostgreSQL support\7f2012690
-Node: XEmacs PostgreSQL libpq API\7f2014037
-Node: libpq Lisp Variables\7f2015916
-Node: libpq Lisp Symbols and DataTypes\7f2018880
-Node: Synchronous Interface Functions\7f2032120
-Node: Asynchronous Interface Functions\7f2036611
-Node: Large Object Support\7f2040116
-Node: Other libpq Functions\7f2040743
-Node: Unimplemented libpq Functions\7f2043778
-Node: XEmacs PostgreSQL libpq Examples\7f2049097
-Node: Internationalization\7f2055188
-Node: I18N Levels 1 and 2\7f2055531
-Node: I18N Level 3\7f2056237
-Node: Level 3 Basics\7f2056518
-Node: Level 3 Primitives\7f2057351
-Node: Dynamic Messaging\7f2058957
-Node: Domain Specification\7f2059420
-Node: Documentation String Extraction\7f2061090
-Node: I18N Level 4\7f2062008
-Node: MULE\7f2062200
-Node: Internationalization Terminology\7f2063249
-Node: Charsets\7f2075448
-Node: Charset Properties\7f2076144
-Node: Basic Charset Functions\7f2080859
-Node: Charset Property Functions\7f2083040
-Node: Predefined Charsets\7f2085110
-Node: MULE Characters\7f2088030
-Node: Composite Characters\7f2088905
-Node: Coding Systems\7f2090172
-Node: Coding System Types\7f2092312
-Node: ISO 2022\7f2096296
-Node: EOL Conversion\7f2108571
-Node: Coding System Properties\7f2109743
-Node: Basic Coding System Functions\7f2114066
-Node: Coding System Property Functions\7f2116100
-Node: Encoding and Decoding Text\7f2116658
-Node: Detection of Textual Encoding\7f2117794
-Node: Big5 and Shift-JIS Functions\7f2119330
-Node: Predefined Coding Systems\7f2120482
-Node: CCL\7f2132576
-Node: CCL Syntax\7f2135680
-Node: CCL Statements\7f2137256
-Node: CCL Expressions\7f2141904
-Node: Calling CCL\7f2144443
-Node: CCL Examples\7f2147448
-Node: Category Tables\7f2147585
-Node: Tips\7f2149944
-Node: Style Tips\7f2150585
-Node: Compilation Tips\7f2160104
-Node: Documentation Tips\7f2162018
-Node: Comment Tips\7f2167527
-Node: Library Headers\7f2170530
-Node: Building XEmacs and Object Allocation\7f2174502
-Node: Building XEmacs\7f2175385
-Node: Pure Storage\7f2181963
-Node: Garbage Collection\7f2184751
-Node: Standard Errors\7f2195594
-Node: Standard Buffer-Local Variables\7f2199803
-Node: Standard Keymaps\7f2202438
-Node: Standard Hooks\7f2206172
-Node: Index\7f2213672
+Node: Forms\7f341450
+Node: Self-Evaluating Forms\7f342609
+Node: Symbol Forms\7f344122
+Node: Classifying Lists\7f345039
+Node: Function Indirection\7f345795
+Node: Function Forms\7f348894
+Node: Macro Forms\7f349891
+Node: Special Forms\7f351491
+Node: Autoloading\7f353800
+Node: Quoting\7f354298
+Node: Control Structures\7f355659
+Node: Sequencing\7f357279
+Node: Conditionals\7f360144
+Node: Combining Conditions\7f363567
+Node: Iteration\7f366837
+Node: Nonlocal Exits\7f368616
+Node: Catch and Throw\7f369318
+Node: Examples of Catch\7f373157
+Node: Errors\7f375176
+Node: Signaling Errors\7f376665
+Node: Processing of Errors\7f385412
+Node: Handling Errors\7f387691
+Node: Error Symbols\7f394932
+Node: Cleanups\7f398888
+Node: Variables\7f402666
+Node: Global Variables\7f404435
+Node: Constant Variables\7f405511
+Node: Local Variables\7f406137
+Node: Void Variables\7f411075
+Node: Defining Variables\7f414591
+Node: Accessing Variables\7f421755
+Node: Setting Variables\7f423180
+Node: Variable Scoping\7f427699
+Node: Scope\7f429298
+Node: Extent\7f430823
+Node: Impl of Scope\7f432302
+Node: Using Scoping\7f434265
+Node: Buffer-Local Variables\7f435787
+Node: Intro to Buffer-Local\7f436623
+Node: Creating Buffer-Local\7f439166
+Node: Default Value\7f445065
+Node: Variable Aliases\7f448208
+Node: Functions\7f450059
+Node: What Is a Function\7f451153
+Node: Lambda Expressions\7f455199
+Node: Lambda Components\7f456109
+Node: Simple Lambda\7f457941
+Node: Argument List\7f459598
+Node: Function Documentation\7f463326
+Node: Function Names\7f465268
+Node: Defining Functions\7f467841
+Node: Calling Functions\7f470881
+Node: Mapping Functions\7f474729
+Node: Anonymous Functions\7f477417
+Node: Function Cells\7f480662
+Node: Inline Functions\7f485480
+Node: Related Topics\7f487290
+Node: Macros\7f488343
+Node: Simple Macro\7f489627
+Node: Expansion\7f490362
+Node: Compiling Macros\7f493366
+Node: Defining Macros\7f495202
+Node: Backquote\7f496519
+Node: Problems with Macros\7f498916
+Node: Argument Evaluation\7f499611
+Node: Surprising Local Vars\7f502526
+Node: Eval During Expansion\7f504594
+Node: Repeated Expansion\7f506287
+Node: Customization\7f508203
+Node: Common Keywords\7f508672
+Node: Group Definitions\7f511517
+Node: Variable Definitions\7f513709
+Node: Customization Types\7f518699
+Node: Simple Types\7f520134
+Node: Composite Types\7f522291
+Node: Splicing into Lists\7f526981
+Node: Type Keywords\7f528816
+Node: Loading\7f532336
+Node: How Programs Do Loading\7f534011
+Node: Autoload\7f543137
+Node: Repeated Loading\7f549207
+Node: Named Features\7f551320
+Node: Unloading\7f557750
+Node: Hooks for Loading\7f559906
+Node: Byte Compilation\7f560623
+Node: Speed of Byte-Code\7f562616
+Node: Compilation Functions\7f563823
+Node: Docs and Compilation\7f570480
+Node: Dynamic Loading\7f573133
+Node: Eval During Compile\7f575497
+Node: Compiled-Function Objects\7f576762
+Node: Disassembly\7f581563
+Node: Different Behavior\7f588844
+Node: Debugging\7f590189
+Node: Debugger\7f591601
+Node: Error Debugging\7f592746
+Node: Infinite Loops\7f595499
+Node: Function Debugging\7f596743
+Node: Explicit Debug\7f599543
+Node: Using Debugger\7f600314
+Node: Debugger Commands\7f602176
+Node: Invoking the Debugger\7f606493
+Node: Internals of Debugger\7f610408
+Node: Syntax Errors\7f615295
+Node: Excess Open\7f616543
+Node: Excess Close\7f618418
+Node: Compilation Errors\7f619839
+Node: Edebug\7f621127
+Node: Using Edebug\7f623235
+Node: Instrumenting\7f625932
+Node: Edebug Execution Modes\7f629421
+Node: Jumping\7f632531
+Node: Edebug Misc\7f634874
+Node: Breakpoints\7f636263
+Node: Global Break Condition\7f639069
+Node: Embedded Breakpoints\7f640024
+Node: Trapping Errors\7f640979
+Node: Edebug Views\7f643055
+Node: Edebug Eval\7f645020
+Node: Eval List\7f646197
+Node: Reading in Edebug\7f649582
+Node: Printing in Edebug\7f650381
+Node: Tracing\7f652096
+Node: Coverage Testing\7f653984
+Node: The Outside Context\7f656025
+Node: Checking Whether to Stop\7f656974
+Node: Edebug Display Update\7f657621
+Node: Edebug Recursive Edit\7f659644
+Node: Instrumenting Macro Calls\7f661299
+Node: Specification List\7f663781
+Node: Backtracking\7f673192
+Node: Debugging Backquote\7f675130
+Node: Specification Examples\7f678836
+Node: Edebug Options\7f680903
+Node: Read and Print\7f686242
+Node: Streams Intro\7f687219
+Node: Input Streams\7f689237
+Node: Input Functions\7f694138
+Node: Output Streams\7f696198
+Node: Output Functions\7f700249
+Node: Output Variables\7f704549
+Node: Minibuffers\7f709350
+Node: Intro to Minibuffers\7f710502
+Node: Text from Minibuffer\7f712690
+Node: Object from Minibuffer\7f717784
+Node: Minibuffer History\7f721877
+Node: Completion\7f724856
+Node: Basic Completion\7f726831
+Node: Minibuffer Completion\7f731714
+Node: Completion Commands\7f735291
+Node: High-Level Completion\7f739948
+Node: Reading File Names\7f744697
+Node: Programmed Completion\7f748389
+Node: Yes-or-No Queries\7f750771
+Node: Multiple Queries\7f756508
+Node: Reading a Password\7f760575
+Node: Minibuffer Misc\7f761918
+Node: Command Loop\7f766798
+Node: Command Overview\7f768142
+Node: Defining Commands\7f771420
+Node: Using Interactive\7f772168
+Node: Interactive Codes\7f776941
+Node: Interactive Examples\7f782733
+Node: Interactive Call\7f784047
+Node: Command Loop Info\7f789462
+Node: Events\7f794441
+Node: Event Types\7f795902
+Node: Event Contents\7f797825
+Node: Event Predicates\7f802301
+Node: Accessing Mouse Event Positions\7f803619
+Node: Frame-Level Event Position Info\7f804318
+Node: Window-Level Event Position Info\7f805358
+Node: Event Text Position Info\7f807122
+Node: Event Glyph Position Info\7f809614
+Node: Event Toolbar Position Info\7f810937
+Node: Other Event Position Info\7f811608
+Node: Accessing Other Event Info\7f812017
+Node: Working With Events\7f813637
+Node: Converting Events\7f819638
+Node: Reading Input\7f823037
+Node: Key Sequence Input\7f824039
+Node: Reading One Event\7f826674
+Node: Dispatching an Event\7f829498
+Node: Quoted Character Input\7f829949
+Node: Peeking and Discarding\7f831297
+Node: Waiting\7f835201
+Node: Quitting\7f837515
+Node: Prefix Command Arguments\7f841923
+Node: Recursive Editing\7f847010
+Node: Disabling Commands\7f851805
+Node: Command History\7f853873
+Node: Keyboard Macros\7f855610
+Node: Keymaps\7f857827
+Node: Keymap Terminology\7f859404
+Node: Format of Keymaps\7f862333
+Node: Creating Keymaps\7f862744
+Node: Inheritance and Keymaps\7f864824
+Node: Key Sequences\7f867196
+Node: Prefix Keys\7f871992
+Node: Active Keymaps\7f875577
+Node: Key Lookup\7f884948
+Node: Functions for Key Lookup\7f890111
+Node: Changing Key Bindings\7f895812
+Node: Key Binding Commands\7f902974
+Node: Scanning Keymaps\7f905039
+Node: Other Keymap Functions\7f913608
+Node: Menus\7f914230
+Node: Menu Format\7f914822
+Node: Menubar Format\7f923468
+Node: Menubar\7f924093
+Node: Modifying Menus\7f927206
+Node: Menu Filters\7f932550
+Node: Pop-Up Menus\7f934446
+Node: Menu Accelerators\7f936774
+Node: Creating Menu Accelerators\7f937530
+Node: Keyboard Menu Traversal\7f938890
+Node: Menu Accelerator Functions\7f939617
+Node: Buffers Menu\7f942693
+Node: Dialog Boxes\7f943987
+Node: Dialog Box Format\7f944154
+Node: Dialog Box Functions\7f945579
+Node: Toolbar\7f945976
+Node: Toolbar Intro\7f946411
+Node: Creating Toolbar\7f948811
+Node: Toolbar Descriptor Format\7f949728
+Node: Specifying the Toolbar\7f954225
+Node: Other Toolbar Variables\7f957832
+Node: Gutter\7f962260
+Node: Gutter Intro\7f962849
+Node: Creating Gutter\7f964852
+Node: Gutter Descriptor Format\7f967739
+Node: Specifying a Gutter\7f972196
+Node: Other Gutter Variables\7f975731
+Node: Common Gutter Widgets\7f980118
+Node: Buffer Tabs\7f981110
+Node: Progress Bars\7f981251
+Node: Scrollbars\7f981396
+Node: Drag and Drop\7f981531
+Node: Supported Protocols\7f982607
+Node: OffiX DND\7f983110
+Node: CDE dt\7f984117
+Node: MSWindows OLE\7f984708
+Node: Loose ends\7f984879
+Node: Drop Interface\7f985271
+Node: Drag Interface\7f986293
+Node: Modes\7f986467
+Node: Major Modes\7f987418
+Node: Major Mode Conventions\7f990333
+Node: Example Major Modes\7f996288
+Node: Auto Major Mode\7f1004321
+Node: Mode Help\7f1011771
+Node: Derived Modes\7f1012872
+Node: Minor Modes\7f1015063
+Node: Minor Mode Conventions\7f1016365
+Node: Keymaps and Minor Modes\7f1019228
+Node: Modeline Format\7f1020063
+Node: Modeline Data\7f1021831
+Node: Modeline Variables\7f1026984
+Node: %-Constructs\7f1031700
+Node: Hooks\7f1034687
+Node: Documentation\7f1041447
+Node: Documentation Basics\7f1042870
+Node: Accessing Documentation\7f1045921
+Node: Keys in Documentation\7f1052202
+Node: Describing Characters\7f1055685
+Node: Help Functions\7f1058034
+Node: Obsoleteness\7f1064484
+Node: Files\7f1067476
+Node: Visiting Files\7f1069401
+Node: Visiting Functions\7f1070906
+Node: Subroutines of Visiting\7f1076064
+Node: Saving Buffers\7f1078137
+Node: Reading from Files\7f1084230
+Node: Writing to Files\7f1086391
+Node: File Locks\7f1089108
+Node: Information about Files\7f1092175
+Node: Testing Accessibility\7f1092936
+Node: Kinds of Files\7f1096676
+Node: Truenames\7f1098357
+Node: File Attributes\7f1099359
+Node: Changing File Attributes\7f1104498
+Node: File Names\7f1109920
+Node: File Name Components\7f1111493
+Node: Directory Names\7f1113938
+Node: Relative File Names\7f1117168
+Node: File Name Expansion\7f1118138
+Node: Unique File Names\7f1121892
+Node: File Name Completion\7f1123507
+Node: User Name Completion\7f1126775
+Node: Contents of Directories\7f1128182
+Node: Create/Delete Dirs\7f1131495
+Node: Magic File Names\7f1132601
+Node: Partial Files\7f1138249
+Node: Intro to Partial Files\7f1138477
+Node: Creating a Partial File\7f1139717
+Node: Detached Partial Files\7f1140653
+Node: Format Conversion\7f1141775
+Node: Files and MS-DOS\7f1147273
+Node: Backups and Auto-Saving\7f1149337
+Node: Backup Files\7f1150012
+Node: Making Backups\7f1151409
+Node: Rename or Copy\7f1154158
+Node: Numbered Backups\7f1156651
+Node: Backup Names\7f1158886
+Node: Auto-Saving\7f1162178
+Node: Reverting\7f1170340
+Node: Buffers\7f1173676
+Node: Buffer Basics\7f1175092
+Node: Current Buffer\7f1177145
+Node: Buffer Names\7f1181849
+Node: Buffer File Name\7f1185056
+Node: Buffer Modification\7f1189175
+Node: Modification Time\7f1191418
+Node: Read Only Buffers\7f1194793
+Node: The Buffer List\7f1198032
+Node: Creating Buffers\7f1202849
+Node: Killing Buffers\7f1204995
+Node: Indirect Buffers\7f1208827
+Node: Windows\7f1211401
+Node: Basic Windows\7f1212879
+Node: Splitting Windows\7f1215977
+Node: Deleting Windows\7f1221303
+Node: Selecting Windows\7f1225221
+Node: Cyclic Window Ordering\7f1229444
+Node: Buffers and Windows\7f1234599
+Node: Displaying Buffers\7f1236377
+Node: Choosing Window\7f1241716
+Node: Window Point\7f1249634
+Node: Window Start\7f1251704
+Node: Vertical Scrolling\7f1256503
+Node: Horizontal Scrolling\7f1262701
+Node: Size of Window\7f1266230
+Node: Position of Window\7f1270948
+Node: Resizing Windows\7f1273201
+Node: Window Configurations\7f1278639
+Node: Frames\7f1282136
+Node: Creating Frames\7f1284477
+Node: Frame Properties\7f1285817
+Node: Property Access\7f1286633
+Node: Initial Properties\7f1287540
+Node: X Frame Properties\7f1290026
+Node: Size and Position\7f1294660
+Node: Frame Name\7f1296658
+Node: Frame Titles\7f1297572
+Node: Deleting Frames\7f1299396
+Node: Finding All Frames\7f1300371
+Node: Frames and Windows\7f1303599
+Node: Minibuffers and Frames\7f1306381
+Node: Input Focus\7f1307299
+Node: Visibility of Frames\7f1310404
+Node: Raising and Lowering\7f1312394
+Node: Frame Configurations\7f1314770
+Node: Frame Hooks\7f1315827
+Node: Consoles and Devices\7f1317632
+Node: Basic Console Functions\7f1320375
+Node: Basic Device Functions\7f1320798
+Node: Console Types and Device Classes\7f1321644
+Node: Connecting to a Console or Device\7f1323911
+Node: The Selected Console and Device\7f1326095
+Node: Console and Device I/O\7f1327121
+Node: Positions\7f1327885
+Node: Point\7f1328854
+Node: Motion\7f1331944
+Node: Character Motion\7f1332711
+Node: Word Motion\7f1334948
+Node: Buffer End Motion\7f1336338
+Node: Text Lines\7f1337875
+Node: Screen Lines\7f1342776
+Node: List Motion\7f1346839
+Node: Skipping Characters\7f1350322
+Node: Excursions\7f1352541
+Node: Narrowing\7f1355581
+Node: Markers\7f1360912
+Node: Overview of Markers\7f1361818
+Node: Predicates on Markers\7f1366510
+Node: Creating Markers\7f1367756
+Node: Information from Markers\7f1371956
+Node: Changing Markers\7f1373054
+Node: The Mark\7f1374582
+Node: The Region\7f1383085
+Node: Text\7f1388771
+Node: Near Point\7f1391470
+Node: Buffer Contents\7f1395657
+Node: Comparing Text\7f1397063
+Node: Insertion\7f1398471
+Node: Commands for Insertion\7f1402381
+Node: Deletion\7f1405275
+Node: User-Level Deletion\7f1408925
+Node: The Kill Ring\7f1413085
+Node: Kill Ring Concepts\7f1415259
+Node: Kill Functions\7f1416313
+Node: Yank Commands\7f1418236
+Node: Low-Level Kill Ring\7f1420107
+Node: Internals of Kill Ring\7f1423193
+Node: Undo\7f1425973
+Node: Maintaining Undo\7f1430310
+Node: Filling\7f1432928
+Node: Margins\7f1438922
+Node: Auto Filling\7f1442945
+Node: Sorting\7f1444126
+Node: Columns\7f1453440
+Node: Indentation\7f1456521
+Node: Primitive Indent\7f1457300
+Node: Mode-Specific Indent\7f1458625
+Node: Region Indent\7f1461157
+Node: Relative Indent\7f1464104
+Node: Indent Tabs\7f1466486
+Node: Motion by Indent\7f1467807
+Node: Case Changes\7f1468586
+Node: Text Properties\7f1471939
+Node: Examining Properties\7f1473752
+Node: Changing Properties\7f1475635
+Node: Property Search\7f1479226
+Node: Special Properties\7f1483945
+Node: Saving Properties\7f1484226
+Node: Substitution\7f1487368
+Node: Registers\7f1490638
+Node: Transposition\7f1493221
+Node: Change Hooks\7f1494115
+Node: Transformations\7f1496155
+Node: Searching and Matching\7f1501259
+Node: String Search\7f1502390
+Node: Regular Expressions\7f1507371
+Node: Syntax of Regexps\7f1508738
+Node: Regexp Example\7f1523341
+Node: Regexp Search\7f1525511
+Node: POSIX Regexps\7f1531848
+Node: Search and Replace\7f1533925
+Node: Match Data\7f1537290
+Node: Simple Match Data\7f1538420
+Node: Replacing Match\7f1542685
+Node: Entire Match Data\7f1545366
+Node: Saving Match Data\7f1547604
+Node: Searching and Case\7f1548992
+Node: Standard Regexps\7f1551026
+Node: Syntax Tables\7f1553224
+Node: Syntax Basics\7f1554338
+Node: Syntax Descriptors\7f1557310
+Node: Syntax Class Table\7f1559160
+Node: Syntax Flags\7f1565198
+Node: Syntax Table Functions\7f1568415
+Node: Motion and Syntax\7f1572703
+Node: Parsing Expressions\7f1574155
+Node: Standard Syntax Tables\7f1580253
+Node: Syntax Table Internals\7f1581097
+Node: Abbrevs\7f1582123
+Node: Abbrev Mode\7f1583927
+Node: Abbrev Tables\7f1584647
+Node: Defining Abbrevs\7f1586186
+Node: Abbrev Files\7f1588107
+Node: Abbrev Expansion\7f1589890
+Node: Standard Abbrev Tables\7f1594521
+Node: Extents\7f1595680
+Node: Intro to Extents\7f1596923
+Node: Creating and Modifying Extents\7f1600915
+Node: Extent Endpoints\7f1602496
+Node: Finding Extents\7f1605759
+Node: Mapping Over Extents\7f1609881
+Node: Extent Properties\7f1616004
+Node: Detached Extents\7f1626165
+Node: Extent Parents\7f1628024
+Node: Duplicable Extents\7f1629718
+Node: Extents and Events\7f1632939
+Node: Atomic Extents\7f1634846
+Node: Specifiers\7f1635293
+Node: Introduction to Specifiers\7f1637406
+Node: Specifiers In-Depth\7f1639716
+Node: Specifier Instancing\7f1644628
+Node: Specifier Types\7f1647890
+Node: Adding Specifications\7f1652964
+Node: Retrieving Specifications\7f1662385
+Node: Specifier Tag Functions\7f1666130
+Node: Specifier Instancing Functions\7f1669364
+Node: Specifier Example\7f1672771
+Node: Creating Specifiers\7f1675927
+Node: Specifier Validation Functions\7f1680244
+Node: Other Specification Functions\7f1682630
+Node: Faces and Window-System Objects\7f1686451
+Node: Faces\7f1686775
+Node: Merging Faces\7f1688392
+Node: Basic Face Functions\7f1690353
+Node: Face Properties\7f1692501
+Node: Face Convenience Functions\7f1702774
+Node: Other Face Display Functions\7f1705994
+Node: Fonts\7f1706806
+Node: Font Specifiers\7f1707507
+Node: Font Instances\7f1708692
+Node: Font Instance Names\7f1709659
+Node: Font Instance Size\7f1710500
+Node: Font Instance Characteristics\7f1711786
+Node: Font Convenience Functions\7f1712964
+Node: Colors\7f1714254
+Node: Color Specifiers\7f1714694
+Node: Color Instances\7f1717054
+Node: Color Instance Properties\7f1717798
+Node: Color Convenience Functions\7f1718424
+Node: Glyphs\7f1719477
+Node: Glyph Functions\7f1721078
+Node: Creating Glyphs\7f1721485
+Node: Glyph Properties\7f1734125
+Node: Glyph Convenience Functions\7f1743292
+Node: Glyph Dimensions\7f1747239
+Node: Images\7f1748319
+Node: Image Specifiers\7f1748768
+Node: Image Instantiator Conversion\7f1764259
+Node: Image Instances\7f1765624
+Node: Image Instance Types\7f1766375
+Node: Image Instance Functions\7f1769140
+Node: Glyph Types\7f1776197
+Node: Mouse Pointer\7f1777969
+Node: Redisplay Glyphs\7f1780972
+Node: Subwindows\7f1782005
+Node: Annotations\7f1782248
+Node: Annotation Basics\7f1783264
+Node: Annotation Primitives\7f1787202
+Node: Annotation Properties\7f1788541
+Node: Locating Annotations\7f1791581
+Node: Margin Primitives\7f1792418
+Node: Annotation Hooks\7f1794312
+Node: Display\7f1794972
+Node: Refresh Screen\7f1795950
+Node: Truncation\7f1798144
+Node: The Echo Area\7f1800669
+Node: Warnings\7f1807112
+Node: Invisible Text\7f1811548
+Node: Selective Display\7f1814127
+Node: Overlay Arrow\7f1818253
+Node: Temporary Displays\7f1819606
+Node: Blinking\7f1823727
+Node: Usual Display\7f1825911
+Node: Display Tables\7f1828460
+Node: Display Table Format\7f1829264
+Node: Active Display Table\7f1830706
+Node: Character Descriptors\7f1834701
+Node: Beeping\7f1835458
+Node: Hash Tables\7f1840224
+Node: Introduction to Hash Tables\7f1840832
+Node: Working With Hash Tables\7f1847391
+Node: Weak Hash Tables\7f1848508
+Node: Range Tables\7f1850525
+Node: Introduction to Range Tables\7f1851214
+Node: Working With Range Tables\7f1851660
+Node: Databases\7f1852619
+Node: Connecting to a Database\7f1852918
+Node: Working With a Database\7f1854025
+Node: Other Database Functions\7f1854899
+Node: Processes\7f1855468
+Node: Subprocess Creation\7f1857692
+Node: Synchronous Processes\7f1861143
+Node: MS-DOS Subprocesses\7f1867865
+Node: Asynchronous Processes\7f1868939
+Node: Deleting Processes\7f1873296
+Node: Process Information\7f1875167
+Node: Input to Processes\7f1879259
+Node: Signals to Processes\7f1881954
+Node: Output from Processes\7f1886769
+Node: Process Buffers\7f1887581
+Node: Filter Functions\7f1890460
+Node: Accepting Output\7f1896051
+Node: Sentinels\7f1897578
+Node: Process Window Size\7f1901068
+Node: Transaction Queues\7f1901417
+Node: Network\7f1903115
+Node: System Interface\7f1905749
+Node: Starting Up\7f1907019
+Node: Start-up Summary\7f1907613
+Node: Init File\7f1911167
+Node: Terminal-Specific\7f1913548
+Node: Command Line Arguments\7f1916707
+Node: Getting Out\7f1920196
+Node: Killing XEmacs\7f1920765
+Node: Suspending XEmacs\7f1922433
+Node: System Environment\7f1925812
+Node: User Identification\7f1931993
+Node: Time of Day\7f1935522
+Node: Time Conversion\7f1938309
+Node: Timers\7f1943551
+Node: Terminal Input\7f1945724
+Node: Input Modes\7f1946227
+Node: Translating Input\7f1948686
+Node: Recording Input\7f1952851
+Node: Terminal Output\7f1954951
+Node: Flow Control\7f1958572
+Node: Batch Mode\7f1962534
+Node: X-Windows\7f1963916
+Node: X Selections\7f1964787
+Node: X Server\7f1967538
+Node: Resources\7f1967989
+Node: Server Data\7f1973300
+Node: Grabs\7f1974507
+Node: X Miscellaneous\7f1976087
+Node: ToolTalk Support\7f1978472
+Node: XEmacs ToolTalk API Summary\7f1978689
+Node: Sending Messages\7f1979989
+Node: Example of Sending Messages\7f1980240
+Node: Elisp Interface for Sending Messages\7f1981302
+Node: Receiving Messages\7f1987898
+Node: Example of Receiving Messages\7f1988121
+Node: Elisp Interface for Receiving Messages\7f1988957
+Node: LDAP Support\7f1992814
+Node: Building XEmacs with LDAP support\7f1993308
+Node: XEmacs LDAP API\7f1994285
+Node: LDAP Variables\7f1995337
+Node: The High-Level LDAP API\7f1997937
+Node: The Low-Level LDAP API\7f2001410
+Node: The LDAP Lisp Object\7f2002241
+Node: Opening and Closing a LDAP Connection\7f2002796
+Node: Low-level Operations on a LDAP Server\7f2004602
+Node: LDAP Internationalization\7f2007326
+Node: LDAP Internationalization Variables\7f2008231
+Node: Encoder/Decoder Functions\7f2009962
+Node: Syntax of Search Filters\7f2010999
+Node: PostgreSQL Support\7f2012297
+Node: Building XEmacs with PostgreSQL support\7f2012692
+Node: XEmacs PostgreSQL libpq API\7f2014039
+Node: libpq Lisp Variables\7f2015918
+Node: libpq Lisp Symbols and DataTypes\7f2018882
+Node: Synchronous Interface Functions\7f2032122
+Node: Asynchronous Interface Functions\7f2036613
+Node: Large Object Support\7f2040118
+Node: Other libpq Functions\7f2040745
+Node: Unimplemented libpq Functions\7f2043780
+Node: XEmacs PostgreSQL libpq Examples\7f2049099
+Node: Internationalization\7f2055190
+Node: I18N Levels 1 and 2\7f2055533
+Node: I18N Level 3\7f2056239
+Node: Level 3 Basics\7f2056520
+Node: Level 3 Primitives\7f2057353
+Node: Dynamic Messaging\7f2058959
+Node: Domain Specification\7f2059422
+Node: Documentation String Extraction\7f2061092
+Node: I18N Level 4\7f2062010
+Node: MULE\7f2062202
+Node: Internationalization Terminology\7f2063251
+Node: Charsets\7f2075450
+Node: Charset Properties\7f2076146
+Node: Basic Charset Functions\7f2080861
+Node: Charset Property Functions\7f2083042
+Node: Predefined Charsets\7f2085112
+Node: MULE Characters\7f2088032
+Node: Composite Characters\7f2088907
+Node: Coding Systems\7f2090174
+Node: Coding System Types\7f2092314
+Node: ISO 2022\7f2096298
+Node: EOL Conversion\7f2108573
+Node: Coding System Properties\7f2109745
+Node: Basic Coding System Functions\7f2114068
+Node: Coding System Property Functions\7f2116102
+Node: Encoding and Decoding Text\7f2116660
+Node: Detection of Textual Encoding\7f2117796
+Node: Big5 and Shift-JIS Functions\7f2119332
+Node: Predefined Coding Systems\7f2120484
+Node: CCL\7f2132578
+Node: CCL Syntax\7f2135682
+Node: CCL Statements\7f2137258
+Node: CCL Expressions\7f2141906
+Node: Calling CCL\7f2144445
+Node: CCL Examples\7f2147450
+Node: Category Tables\7f2147587
+Node: Tips\7f2149946
+Node: Style Tips\7f2150587
+Node: Compilation Tips\7f2160106
+Node: Documentation Tips\7f2162020
+Node: Comment Tips\7f2167529
+Node: Library Headers\7f2170532
+Node: Building XEmacs and Object Allocation\7f2174504
+Node: Building XEmacs\7f2175387
+Node: Pure Storage\7f2181965
+Node: Garbage Collection\7f2184753
+Node: Standard Errors\7f2195596
+Node: Standard Buffer-Local Variables\7f2199805
+Node: Standard Keymaps\7f2202440
+Node: Standard Hooks\7f2206174
+Node: Index\7f2213674
 \1f
 End Tag Table
index 15f63b7..f680a25 100644 (file)
@@ -1202,7 +1202,7 @@ values.  Loading a file also does evaluation (*note Loading::).
      This limit, with the associated error when it is exceeded, is one
      way that Lisp avoids infinite recursion on an ill-defined function.
 
-     The default value of this variable is 500.  If you set it to a
+     The default value of this variable is 1000.  If you set it to a
      value less than 100, Lisp will reset it to 100 if the given value
      is reached.
 
index a0554c4..5e15da6 100644 (file)
@@ -583,7 +583,7 @@ rather than localized in time.
      This limit, with the associated error when it is exceeded, is one
      way that Lisp avoids infinite recursion on an ill-defined function.
 
-     The default value is 600.
+     The default value is 3000.
 
      `max-lisp-eval-depth' provides another limit on depth of nesting.
      *Note Eval::.
index b2ba08b..459dc9d 100644 (file)
@@ -32,401 +32,408 @@ translation approved by the author instead of in the original English.
 \1f
 Indirect:
 xemacs.info-1: 1350
-xemacs.info-2: 48996
-xemacs.info-3: 96978
-xemacs.info-4: 146218
-xemacs.info-5: 195369
-xemacs.info-6: 243029
-xemacs.info-7: 283112
-xemacs.info-8: 333075
-xemacs.info-9: 380545
-xemacs.info-10: 429063
-xemacs.info-11: 476887
-xemacs.info-12: 526058
-xemacs.info-13: 575241
-xemacs.info-14: 624318
-xemacs.info-15: 673698
-xemacs.info-16: 723565
-xemacs.info-17: 772201
-xemacs.info-18: 820896
-xemacs.info-19: 869813
-xemacs.info-20: 915996
-xemacs.info-21: 965400
-xemacs.info-22: 1007986
+xemacs.info-2: 49148
+xemacs.info-3: 97130
+xemacs.info-4: 146370
+xemacs.info-5: 195521
+xemacs.info-6: 243181
+xemacs.info-7: 283264
+xemacs.info-8: 333227
+xemacs.info-9: 380697
+xemacs.info-10: 429215
+xemacs.info-11: 477039
+xemacs.info-12: 526210
+xemacs.info-13: 575703
+xemacs.info-14: 620082
+xemacs.info-15: 669514
+xemacs.info-16: 718919
+xemacs.info-17: 768596
+xemacs.info-18: 816849
+xemacs.info-19: 866480
+xemacs.info-20: 891467
+xemacs.info-21: 923121
+xemacs.info-22: 972525
+xemacs.info-23: 1015111
 \1f
 Tag Table:
 (Indirect)
 Node: Top\7f1350
-Node: License\7f22790
-Node: Distrib\7f36072
-Node: Intro\7f37736
-Node: Frame\7f40607
-Node: Point\7f44652
-Node: Echo Area\7f46619
-Node: Mode Line\7f48996
-Node: GUI Components\7f53427
-Node: Menubar Basics\7f54708
-Node: Scrollbar Basics\7f56624
-Node: Mode Line Basics\7f57517
-Node: Toolbar Basics\7f58349
-Node: Gutter Basics\7f59016
-Node: Inhibiting\7f61070
-Node: Customizing\7f63441
-Node: XEmacs under X\7f63690
-Node: XEmacs under MS Windows\7f66904
-Node: Keystrokes\7f67319
-Node: Intro to Keystrokes\7f68163
-Node: Representing Keystrokes\7f70266
-Node: Key Sequences\7f71623
-Node: String Key Sequences\7f74964
-Node: Meta Key\7f75347
-Node: Super and Hyper Keys\7f76820
-Node: Character Representation\7f83065
-Node: Commands\7f84085
-Node: Pull-down Menus\7f86934
-Node: File Menu\7f90283
-Node: Edit Menu\7f94105
-Node: Apps Menu\7f96488
-Node: Options Menu\7f96978
-Node: Buffers Menu\7f100996
-Node: Tools Menu\7f101303
-Node: Help Menu\7f101794
-Node: Menu Customization\7f102195
-Node: Entering Emacs\7f106425
-Node: Exiting\7f109322
-Node: Command Switches\7f113795
-Node: Startup Paths\7f123817
-Node: Basic\7f131147
-Node: Inserting Text\7f132551
-Node: Moving Point\7f135547
-Node: Erasing\7f139153
-Node: Basic Files\7f140458
-Node: Basic Help\7f142380
-Node: Blank Lines\7f142975
-Node: Continuation Lines\7f144551
-Node: Position Info\7f146218
-Node: Arguments\7f149634
-Node: Undo\7f153733
-Node: Minibuffer\7f156680
-Node: Minibuffer File\7f159290
-Node: Minibuffer Edit\7f161095
-Node: Completion\7f164036
-Node: Completion Example\7f165967
-Node: Completion Commands\7f167062
-Node: Strict Completion\7f170038
-Node: Completion Options\7f171819
-Node: Minibuffer History\7f173327
-Node: Repetition\7f176511
-Node: M-x\7f179356
-Node: Help\7f184450
-Node: Help Summary\7f185860
-Node: Key Help\7f188646
-Node: Name Help\7f189605
-Node: Apropos\7f192250
-Node: Library Keywords\7f195369
-Node: Help Mode\7f197690
-Node: Misc Help\7f198187
-Node: Mark\7f201335
-Node: Setting Mark\7f203189
-Node: Using Region\7f206311
-Node: Marking Objects\7f207048
-Node: Mark Ring\7f208886
-Node: Mouse Selection\7f210602
-Node: Additional Mouse Operations\7f212609
-Node: Killing\7f216813
-Node: Yanking\7f222449
-Node: Kill Ring\7f223252
-Node: Appending Kills\7f224854
-Node: Earlier Kills\7f226891
-Node: Using X Selections\7f229504
-Node: X Clipboard Selection\7f230754
-Node: X Selection Commands\7f232931
-Node: X Cut Buffers\7f234017
-Node: Active Regions\7f235376
-Node: Accumulating Text\7f239956
-Node: Rectangles\7f243029
-Node: Registers\7f246548
-Node: RegPos\7f248002
-Node: RegText\7f249158
-Node: RegRect\7f250264
-Node: RegConfig\7f251143
-Node: RegNumbers\7f252083
-Node: RegFiles\7f252801
-Node: Bookmarks\7f253459
-Node: Display\7f256831
-Node: Scrolling\7f258326
-Node: Horizontal Scrolling\7f262469
-Node: Selective Display\7f263664
-Node: Display Vars\7f264883
-Node: Search\7f267561
-Node: Incremental Search\7f268754
-Node: Non-Incremental Search\7f277682
-Node: Word Search\7f279124
-Node: Regexp Search\7f280742
-Node: Regexps\7f283112
-Node: Search Case\7f297109
-Node: Replace\7f297890
-Node: Unconditional Replace\7f298838
-Node: Regexp Replace\7f299973
-Node: Replacement and Case\7f300908
-Node: Query Replace\7f301888
-Node: Other Repeating Search\7f305115
-Node: Fixit\7f306370
-Node: Kill Errors\7f306950
-Node: Transpose\7f308283
-Node: Fixing Case\7f310687
-Node: Spelling\7f311333
-Node: Files\7f312794
-Node: File Names\7f314104
-Node: Visiting\7f318441
-Node: Saving\7f325273
-Node: Backup\7f330196
-Node: Backup Names\7f331592
-Node: Backup Deletion\7f333075
-Node: Backup Copying\7f334225
-Node: Interlocking\7f335931
-Node: Reverting\7f340059
-Node: Auto Save\7f341971
-Node: Auto Save Files\7f342938
-Node: Auto Save Control\7f344779
-Node: Recover\7f346617
-Node: Version Control\7f347772
-Node: Concepts of VC\7f349810
-Node: Editing with VC\7f351420
-Node: Variables for Check-in/out\7f356676
-Node: Log Entries\7f358575
-Node: Change Logs and VC\7f359755
-Node: Old Versions\7f363022
-Node: VC Status\7f365025
-Node: Renaming and VC\7f366739
-Node: Snapshots\7f367418
-Node: Making Snapshots\7f367919
-Node: Snapshot Caveats\7f369212
-Node: Version Headers\7f371021
-Node: ListDir\7f373720
-Node: Comparing Files\7f375769
-Node: Dired\7f377302
-Node: Dired Enter\7f377973
-Node: Dired Edit\7f378798
-Node: Dired Deletion\7f380545
-Node: Dired Immed\7f383768
-Node: Misc File Ops\7f385044
-Node: Buffers\7f387532
-Node: Select Buffer\7f389690
-Node: List Buffers\7f391485
-Node: Misc Buffer\7f393243
-Node: Kill Buffer\7f394886
-Node: Several Buffers\7f396016
-Node: Windows\7f399883
-Node: Basic Window\7f400594
-Node: Split Window\7f402313
-Node: Other Window\7f404446
-Node: Pop Up Window\7f406877
-Node: Change Window\7f408382
-Node: Mule\7f411290
-Node: Mule Intro\7f412553
-Node: Language Environments\7f413569
-Node: Input Methods\7f415676
-Node: Select Input Method\7f419396
-Node: Coding Systems\7f421551
-Node: Recognize Coding\7f425737
-Node: Specify Coding\7f429063
-Node: Major Modes\7f433994
-Node: Choosing Modes\7f436213
-Node: Indentation\7f438603
-Node: Indentation Commands\7f440698
-Node: Tab Stops\7f443427
-Node: Just Spaces\7f445276
-Node: Text\7f446091
-Node: Text Mode\7f448074
-Node: Nroff Mode\7f450153
-Node: TeX Mode\7f451796
-Node: TeX Editing\7f454048
-Node: TeX Print\7f457482
-Node: Outline Mode\7f460701
-Node: Outline Format\7f462182
-Node: Outline Motion\7f464982
-Node: Outline Visibility\7f466535
-Node: Words\7f469456
-Node: Sentences\7f472403
-Node: Paragraphs\7f474599
-Node: Pages\7f476887
-Node: Filling\7f479487
-Node: Auto Fill\7f480058
-Node: Fill Commands\7f482205
-Node: Fill Prefix\7f484370
-Node: Case\7f486558
-Node: Programs\7f488586
-Node: Program Modes\7f491136
-Node: Lists\7f493368
-Node: Defuns\7f499208
-Node: Grinding\7f501861
-Node: Basic Indent\7f502489
-Node: Multi-line Indent\7f504510
-Node: Lisp Indent\7f506126
-Node: C Indent\7f509576
-Node: Matching\7f514816
-Node: Comments\7f516338
-Node: Balanced Editing\7f522790
-Node: Lisp Completion\7f523804
-Node: Documentation\7f524819
-Node: Change Log\7f526058
-Node: Tags\7f528636
-Node: Tag Syntax\7f530285
-Node: Create Tags Table\7f534229
-Node: Etags Regexps\7f538289
-Node: Select Tags Table\7f542947
-Node: Find Tag\7f546720
-Node: Tags Search\7f549684
-Node: List Tags\7f553140
-Node: Fortran\7f554169
-Node: Fortran Motion\7f555245
-Node: Fortran Indent\7f556065
-Node: ForIndent Commands\7f556750
-Node: ForIndent Num\7f557895
-Node: ForIndent Conv\7f559169
-Node: ForIndent Vars\7f559945
-Node: Fortran Comments\7f561113
-Node: Fortran Columns\7f564711
-Node: Fortran Abbrev\7f566134
-Node: Asm Mode\7f567043
-Node: Running\7f567595
-Node: Compilation\7f568564
-Node: Lisp Modes\7f573414
-Node: Lisp Libraries\7f574687
-Node: Loading\7f575241
-Node: Compiling Libraries\7f579701
-Node: Mocklisp\7f582592
-Node: Lisp Eval\7f583269
-Node: Lisp Debug\7f586909
-Node: Lisp Interaction\7f592336
-Node: External Lisp\7f593691
-Node: Packages\7f595765
-Node: Package Terminology\7f596620
-Node: Using Packages\7f597978
-Node: Building Packages\7f606856
-Node: Creating Packages\7f609399
-Node: Available Packages\7f614399
-Node: Abbrevs\7f619672
-Node: Defining Abbrevs\7f621871
-Node: Expanding Abbrevs\7f624318
-Node: Editing Abbrevs\7f627020
-Node: Saving Abbrevs\7f628893
-Node: Dynamic Abbrevs\7f630848
-Node: Picture\7f632150
-Node: Basic Picture\7f634583
-Node: Insert in Picture\7f636868
-Node: Tabs in Picture\7f638290
-Node: Rectangles in Picture\7f639811
-Node: Sending Mail\7f641719
-Node: Mail Format\7f643430
-Node: Mail Headers\7f644780
-Node: Mail Mode\7f651188
-Node: Reading Mail\7f654801
-Node: Calendar/Diary\7f656376
-Node: Calendar Motion\7f658050
-Node: Calendar Unit Motion\7f658933
-Node: Move to Beginning or End\7f661256
-Node: Specified Dates\7f662389
-Node: Scroll Calendar\7f663277
-Node: Mark and Region\7f665068
-Node: General Calendar\7f666974
-Node: LaTeX Calendar\7f668582
-Node: Holidays\7f670596
-Node: Sunrise/Sunset\7f673698
-Node: Lunar Phases\7f676737
-Node: Other Calendars\7f678122
-Node: Calendar Systems\7f679609
-Node: To Other Calendar\7f682720
-Node: From Other Calendar\7f684711
-Node: Mayan Calendar\7f687016
-Node: Diary\7f690211
-Node: Diary Commands\7f691960
-Node: Format of Diary File\7f695283
-Node: Date Formats\7f698153
-Node: Adding to Diary\7f700727
-Node: Special Diary Entries\7f702358
-Node: Calendar Customization\7f707697
-Node: Calendar Customizing\7f708559
-Node: Holiday Customizing\7f711794
-Node: Date Display Format\7f718281
-Node: Time Display Format\7f719239
-Node: Daylight Savings\7f720377
-Node: Diary Customizing\7f723565
-Node: Hebrew/Islamic Entries\7f728186
-Node: Fancy Diary Display\7f731526
-Node: Included Diary Files\7f733442
-Node: Sexp Diary Entries\7f734423
-Node: Appt Customizing\7f739513
-Node: Sorting\7f740559
-Node: Shell\7f745365
-Node: Single Shell\7f746658
-Node: Interactive Shell\7f748272
-Node: Shell Mode\7f752037
-Node: Terminal emulator\7f754528
-Node: Term Mode\7f756837
-Node: Paging in Term\7f757751
-Node: Narrowing\7f758549
-Node: Hardcopy\7f760499
-Node: Recursive Edit\7f761471
-Node: Dissociated Press\7f764458
-Node: CONX\7f767021
-Node: Amusements\7f768045
-Node: Emulation\7f768525
-Node: Customization\7f770385
-Node: Minor Modes\7f772201
-Node: Variables\7f773833
-Node: Examining\7f775789
-Node: Easy Customization\7f777250
-Node: Customization Groups\7f778264
-Node: Changing an Option\7f781193
-Node: Face Customization\7f787463
-Node: Specific Customization\7f789227
-Node: Edit Options\7f791834
-Node: Locals\7f793418
-Node: File Variables\7f796597
-Node: Keyboard Macros\7f801147
-Node: Basic Kbd Macro\7f803318
-Node: Save Kbd Macro\7f805250
-Node: Kbd Macro Query\7f806908
-Node: Key Bindings\7f808850
-Node: Keymaps\7f809724
-Node: Rebinding\7f813574
-Node: Interactive Rebinding\7f814273
-Node: Programmatic Rebinding\7f816462
-Node: Key Bindings Using Strings\7f819269
-Node: Disabling\7f820896
-Node: Syntax\7f822675
-Node: Syntax Entry\7f823556
-Node: Syntax Change\7f827640
-Node: Init File\7f829809
-Node: Init Syntax\7f831273
-Node: Init Examples\7f833624
-Node: Terminal Init\7f837814
-Node: Audible Bell\7f839551
-Node: Faces\7f842982
-Node: Frame Components\7f847824
-Node: X Resources\7f848269
-Node: Geometry Resources\7f849928
-Node: Iconic Resources\7f852376
-Node: Resource List\7f852848
-Node: Face Resources\7f859355
-Node: Widgets\7f863032
-Node: Menubar Resources\7f863971
-Node: Quitting\7f865485
-Node: Lossage\7f868463
-Node: Stuck Recursive\7f869107
-Node: Screen Garbled\7f869813
-Node: Text Garbled\7f870947
-Node: Unasked-for Search\7f871586
-Node: Emergency Escape\7f872371
-Node: Total Frustration\7f874150
-Node: Bugs\7f874781
-Node: Glossary\7f884342
-Node: Manifesto\7f915996
-Node: Key Index\7f939473
-Node: Command Index\7f965400
-Node: Variable Index\7f1007986
-Node: Concept Index\7f1024072
+Node: License\7f22942
+Node: Distrib\7f36224
+Node: Intro\7f37888
+Node: Frame\7f40759
+Node: Point\7f44804
+Node: Echo Area\7f46771
+Node: Mode Line\7f49148
+Node: GUI Components\7f53579
+Node: Menubar Basics\7f54860
+Node: Scrollbar Basics\7f56776
+Node: Mode Line Basics\7f57669
+Node: Toolbar Basics\7f58501
+Node: Gutter Basics\7f59168
+Node: Inhibiting\7f61222
+Node: Customizing\7f63593
+Node: XEmacs under X\7f63842
+Node: XEmacs under MS Windows\7f67056
+Node: Keystrokes\7f67471
+Node: Intro to Keystrokes\7f68315
+Node: Representing Keystrokes\7f70418
+Node: Key Sequences\7f71775
+Node: String Key Sequences\7f75116
+Node: Meta Key\7f75499
+Node: Super and Hyper Keys\7f76972
+Node: Character Representation\7f83217
+Node: Commands\7f84237
+Node: Pull-down Menus\7f87086
+Node: File Menu\7f90435
+Node: Edit Menu\7f94257
+Node: Apps Menu\7f96640
+Node: Options Menu\7f97130
+Node: Buffers Menu\7f101148
+Node: Tools Menu\7f101455
+Node: Help Menu\7f101946
+Node: Menu Customization\7f102347
+Node: Entering Emacs\7f106577
+Node: Exiting\7f109474
+Node: Command Switches\7f113947
+Node: Startup Paths\7f123969
+Node: Basic\7f131299
+Node: Inserting Text\7f132703
+Node: Moving Point\7f135699
+Node: Erasing\7f139305
+Node: Basic Files\7f140610
+Node: Basic Help\7f142532
+Node: Blank Lines\7f143127
+Node: Continuation Lines\7f144703
+Node: Position Info\7f146370
+Node: Arguments\7f149786
+Node: Undo\7f153885
+Node: Minibuffer\7f156832
+Node: Minibuffer File\7f159442
+Node: Minibuffer Edit\7f161247
+Node: Completion\7f164188
+Node: Completion Example\7f166119
+Node: Completion Commands\7f167214
+Node: Strict Completion\7f170190
+Node: Completion Options\7f171971
+Node: Minibuffer History\7f173479
+Node: Repetition\7f176663
+Node: M-x\7f179508
+Node: Help\7f184602
+Node: Help Summary\7f186012
+Node: Key Help\7f188798
+Node: Name Help\7f189757
+Node: Apropos\7f192402
+Node: Library Keywords\7f195521
+Node: Help Mode\7f197842
+Node: Misc Help\7f198339
+Node: Mark\7f201487
+Node: Setting Mark\7f203341
+Node: Using Region\7f206463
+Node: Marking Objects\7f207200
+Node: Mark Ring\7f209038
+Node: Mouse Selection\7f210754
+Node: Additional Mouse Operations\7f212761
+Node: Killing\7f216965
+Node: Yanking\7f222601
+Node: Kill Ring\7f223404
+Node: Appending Kills\7f225006
+Node: Earlier Kills\7f227043
+Node: Using X Selections\7f229656
+Node: X Clipboard Selection\7f230906
+Node: X Selection Commands\7f233083
+Node: X Cut Buffers\7f234169
+Node: Active Regions\7f235528
+Node: Accumulating Text\7f240108
+Node: Rectangles\7f243181
+Node: Registers\7f246700
+Node: RegPos\7f248154
+Node: RegText\7f249310
+Node: RegRect\7f250416
+Node: RegConfig\7f251295
+Node: RegNumbers\7f252235
+Node: RegFiles\7f252953
+Node: Bookmarks\7f253611
+Node: Display\7f256983
+Node: Scrolling\7f258478
+Node: Horizontal Scrolling\7f262621
+Node: Selective Display\7f263816
+Node: Display Vars\7f265035
+Node: Search\7f267713
+Node: Incremental Search\7f268906
+Node: Non-Incremental Search\7f277834
+Node: Word Search\7f279276
+Node: Regexp Search\7f280894
+Node: Regexps\7f283264
+Node: Search Case\7f297261
+Node: Replace\7f298042
+Node: Unconditional Replace\7f298990
+Node: Regexp Replace\7f300125
+Node: Replacement and Case\7f301060
+Node: Query Replace\7f302040
+Node: Other Repeating Search\7f305267
+Node: Fixit\7f306522
+Node: Kill Errors\7f307102
+Node: Transpose\7f308435
+Node: Fixing Case\7f310839
+Node: Spelling\7f311485
+Node: Files\7f312946
+Node: File Names\7f314256
+Node: Visiting\7f318593
+Node: Saving\7f325425
+Node: Backup\7f330348
+Node: Backup Names\7f331744
+Node: Backup Deletion\7f333227
+Node: Backup Copying\7f334377
+Node: Interlocking\7f336083
+Node: Reverting\7f340211
+Node: Auto Save\7f342123
+Node: Auto Save Files\7f343090
+Node: Auto Save Control\7f344931
+Node: Recover\7f346769
+Node: Version Control\7f347924
+Node: Concepts of VC\7f349962
+Node: Editing with VC\7f351572
+Node: Variables for Check-in/out\7f356828
+Node: Log Entries\7f358727
+Node: Change Logs and VC\7f359907
+Node: Old Versions\7f363174
+Node: VC Status\7f365177
+Node: Renaming and VC\7f366891
+Node: Snapshots\7f367570
+Node: Making Snapshots\7f368071
+Node: Snapshot Caveats\7f369364
+Node: Version Headers\7f371173
+Node: ListDir\7f373872
+Node: Comparing Files\7f375921
+Node: Dired\7f377454
+Node: Dired Enter\7f378125
+Node: Dired Edit\7f378950
+Node: Dired Deletion\7f380697
+Node: Dired Immed\7f383920
+Node: Misc File Ops\7f385196
+Node: Buffers\7f387684
+Node: Select Buffer\7f389842
+Node: List Buffers\7f391637
+Node: Misc Buffer\7f393395
+Node: Kill Buffer\7f395038
+Node: Several Buffers\7f396168
+Node: Windows\7f400035
+Node: Basic Window\7f400746
+Node: Split Window\7f402465
+Node: Other Window\7f404598
+Node: Pop Up Window\7f407029
+Node: Change Window\7f408534
+Node: Mule\7f411442
+Node: Mule Intro\7f412705
+Node: Language Environments\7f413721
+Node: Input Methods\7f415828
+Node: Select Input Method\7f419548
+Node: Coding Systems\7f421703
+Node: Recognize Coding\7f425889
+Node: Specify Coding\7f429215
+Node: Major Modes\7f434146
+Node: Choosing Modes\7f436365
+Node: Indentation\7f438755
+Node: Indentation Commands\7f440850
+Node: Tab Stops\7f443579
+Node: Just Spaces\7f445428
+Node: Text\7f446243
+Node: Text Mode\7f448226
+Node: Nroff Mode\7f450305
+Node: TeX Mode\7f451948
+Node: TeX Editing\7f454200
+Node: TeX Print\7f457634
+Node: Outline Mode\7f460853
+Node: Outline Format\7f462334
+Node: Outline Motion\7f465134
+Node: Outline Visibility\7f466687
+Node: Words\7f469608
+Node: Sentences\7f472555
+Node: Paragraphs\7f474751
+Node: Pages\7f477039
+Node: Filling\7f479639
+Node: Auto Fill\7f480210
+Node: Fill Commands\7f482357
+Node: Fill Prefix\7f484522
+Node: Case\7f486710
+Node: Programs\7f488738
+Node: Program Modes\7f491288
+Node: Lists\7f493520
+Node: Defuns\7f499360
+Node: Grinding\7f502013
+Node: Basic Indent\7f502641
+Node: Multi-line Indent\7f504662
+Node: Lisp Indent\7f506278
+Node: C Indent\7f509728
+Node: Matching\7f514968
+Node: Comments\7f516490
+Node: Balanced Editing\7f522942
+Node: Lisp Completion\7f523956
+Node: Documentation\7f524971
+Node: Change Log\7f526210
+Node: Tags\7f528788
+Node: Tag Syntax\7f530545
+Node: Create Tags Table\7f535245
+Node: Etags Regexps\7f539305
+Node: Select Tags Table\7f543963
+Node: Find Tag\7f547736
+Node: Tags Search\7f550700
+Node: List Tags\7f554156
+Node: Fortran\7f555185
+Node: Fortran Motion\7f556261
+Node: Fortran Indent\7f557081
+Node: ForIndent Commands\7f557766
+Node: ForIndent Num\7f558911
+Node: ForIndent Conv\7f560185
+Node: ForIndent Vars\7f560961
+Node: Fortran Comments\7f562129
+Node: Fortran Columns\7f565727
+Node: Fortran Abbrev\7f567150
+Node: Asm Mode\7f568059
+Node: Running\7f568611
+Node: Compilation\7f569580
+Node: Lisp Modes\7f574430
+Node: Lisp Libraries\7f575703
+Node: Loading\7f576257
+Node: Compiling Libraries\7f580717
+Node: Mocklisp\7f583608
+Node: Lisp Eval\7f584285
+Node: Lisp Debug\7f587925
+Node: Lisp Interaction\7f593352
+Node: External Lisp\7f594707
+Node: Packages\7f596781
+Node: Package Terminology\7f597700
+Node: Installing Packages\7f599310
+Node: Sumo\7f602230
+Node: Manually\7f603111
+Node: Automatically\7f604481
+Node: Which Packages\7f609044
+Node: Removing Packages\7f609853
+Node: Building Packages\7f610549
+Node: Local.rules File\7f613190
+Node: Creating Packages\7f615044
+Node: Available Packages\7f620082
+Node: Abbrevs\7f626797
+Node: Defining Abbrevs\7f628996
+Node: Expanding Abbrevs\7f631443
+Node: Editing Abbrevs\7f634145
+Node: Saving Abbrevs\7f636018
+Node: Dynamic Abbrevs\7f637973
+Node: Picture\7f639275
+Node: Basic Picture\7f641708
+Node: Insert in Picture\7f643993
+Node: Tabs in Picture\7f645415
+Node: Rectangles in Picture\7f646936
+Node: Sending Mail\7f648844
+Node: Mail Format\7f650555
+Node: Mail Headers\7f651905
+Node: Mail Mode\7f658313
+Node: Reading Mail\7f661926
+Node: Calendar/Diary\7f663501
+Node: Calendar Motion\7f665175
+Node: Calendar Unit Motion\7f666058
+Node: Move to Beginning or End\7f668381
+Node: Specified Dates\7f669514
+Node: Scroll Calendar\7f670402
+Node: Mark and Region\7f672193
+Node: General Calendar\7f674099
+Node: LaTeX Calendar\7f675707
+Node: Holidays\7f677721
+Node: Sunrise/Sunset\7f680823
+Node: Lunar Phases\7f683862
+Node: Other Calendars\7f685247
+Node: Calendar Systems\7f686734
+Node: To Other Calendar\7f689845
+Node: From Other Calendar\7f691836
+Node: Mayan Calendar\7f694141
+Node: Diary\7f697336
+Node: Diary Commands\7f699085
+Node: Format of Diary File\7f702408
+Node: Date Formats\7f705278
+Node: Adding to Diary\7f707852
+Node: Special Diary Entries\7f709483
+Node: Calendar Customization\7f714822
+Node: Calendar Customizing\7f715684
+Node: Holiday Customizing\7f718919
+Node: Date Display Format\7f725406
+Node: Time Display Format\7f726364
+Node: Daylight Savings\7f727502
+Node: Diary Customizing\7f730690
+Node: Hebrew/Islamic Entries\7f735311
+Node: Fancy Diary Display\7f738651
+Node: Included Diary Files\7f740567
+Node: Sexp Diary Entries\7f741548
+Node: Appt Customizing\7f746638
+Node: Sorting\7f747684
+Node: Shell\7f752490
+Node: Single Shell\7f753783
+Node: Interactive Shell\7f755397
+Node: Shell Mode\7f759162
+Node: Terminal emulator\7f761653
+Node: Term Mode\7f763962
+Node: Paging in Term\7f764876
+Node: Narrowing\7f765674
+Node: Hardcopy\7f767624
+Node: Recursive Edit\7f768596
+Node: Dissociated Press\7f771583
+Node: CONX\7f774146
+Node: Amusements\7f775170
+Node: Emulation\7f775650
+Node: Customization\7f777510
+Node: Minor Modes\7f779326
+Node: Variables\7f780958
+Node: Examining\7f782914
+Node: Easy Customization\7f784375
+Node: Customization Groups\7f785389
+Node: Changing an Option\7f788318
+Node: Face Customization\7f794588
+Node: Specific Customization\7f796352
+Node: Edit Options\7f798959
+Node: Locals\7f800543
+Node: File Variables\7f803722
+Node: Keyboard Macros\7f808272
+Node: Basic Kbd Macro\7f810443
+Node: Save Kbd Macro\7f812375
+Node: Kbd Macro Query\7f814033
+Node: Key Bindings\7f815975
+Node: Keymaps\7f816849
+Node: Rebinding\7f820699
+Node: Interactive Rebinding\7f821398
+Node: Programmatic Rebinding\7f823587
+Node: Key Bindings Using Strings\7f826394
+Node: Disabling\7f828021
+Node: Syntax\7f829800
+Node: Syntax Entry\7f830681
+Node: Syntax Change\7f834765
+Node: Init File\7f836934
+Node: Init Syntax\7f838398
+Node: Init Examples\7f840749
+Node: Terminal Init\7f844939
+Node: Audible Bell\7f846676
+Node: Faces\7f850107
+Node: Frame Components\7f854949
+Node: X Resources\7f855394
+Node: Geometry Resources\7f857053
+Node: Iconic Resources\7f859501
+Node: Resource List\7f859973
+Node: Face Resources\7f866480
+Node: Widgets\7f870157
+Node: Menubar Resources\7f871096
+Node: Quitting\7f872610
+Node: Lossage\7f875588
+Node: Stuck Recursive\7f876232
+Node: Screen Garbled\7f876938
+Node: Text Garbled\7f878072
+Node: Unasked-for Search\7f878711
+Node: Emergency Escape\7f879496
+Node: Total Frustration\7f881275
+Node: Bugs\7f881906
+Node: Glossary\7f891467
+Node: Manifesto\7f923121
+Node: Key Index\7f946598
+Node: Command Index\7f972525
+Node: Variable Index\7f1015111
+Node: Concept Index\7f1031197
 \1f
 End Tag Table
index b87fb89..b45fedf 100644 (file)
@@ -179,8 +179,11 @@ Packages
 
 * Packages::            Introduction to XEmacs Packages.
 * Package Terminology:: Understanding different kinds of packages.
-* Using Packages::      How to install and use packages.
+* Installing Packages:: How to install packages.
 * Building Packages::   Building packages from sources.
+* Local.rules File::    An important part of building packages.
+* Creating Packages::   The basics.
+* Available Packages::  A brief directory of packaged LISP.
 
 Basic Editing Commands
 
index 9b88cc1..ae5c8af 100644 (file)
@@ -1,3 +1,134 @@
+2001-02-08  Martin Buchholz <martin@xemacs.org>
+
+       * XEmacs 21.2.44 "Thalia" is released.
+
+2001-01-31  Francesco Potorti`  <pot@gnu.org>
+
+       * etags.c: [NDEBUG] #undef assert and #define it as ((void)0), for
+       the sake of some buggy assert.h (e.g. in MinGW and sunos4 pcc).
+       (C_entries): Tag token renamed to still_in_token because sunos4
+       pcc wants to expand it as the token() macro even though it has no
+       arguments.
+
+2001-01-30  Francesco Potorti`  <pot@gnu.org>
+
+       * etags.c: [WIN32-NATIVE]: #undef MSDOS, #undef WINDOWSNT and
+       #define it for the sake of Xemacs.
+       [WINDOWSNT]: #undef HAVE_NTGUI even if built without
+       HAVE_CONFIG_H.  This change only affects a standalone etags.
+       [WINDOWSNT]: #undef DOS_NT and #define it even if built with
+       HAVE_CONFIG_H.  This change does nothing in Emacs, as DOS_NT is
+       always defined when HAVE_CONFIG_H and WINDOWS are both defined.
+       [!HAVE_UNISTD_H]: use defined(WINDOWSNT) instead of the bare
+       WINDOWSNT, as this is the correct way to use it.
+
+2001-01-28  Francesco Potorti`  <pot@gnu.org>
+
+       * etags.c: Be capable to parse nested struct-like structures.
+       (structdef, structtag): Struct state machine revisited.
+       (struct tok): Revisited.
+       (cstack, nestlev, instruct): New struct and macros.
+       (pushclass_above, popclass_above, write_classname): New functions
+       for dealing with nested class names, inspired by Mykola Dzyuba.
+       (consider_token, make_C_tag, C_entries): Many changes for dealing
+       with arbitrarily nested structures.
+       (etags_getcwd): #if MSDOS, not #ifdef MSDOS!
+       (C_entries): Consider templates in C++.
+       (sym_type): New constant st_C_class for detecting "class" also in
+       C mode.
+       (C_AUTO): New macro for automatic detection of C++.
+       (consider_token): Automatic set C++ mode.
+       (C_entries): New security check for yacc.
+       (print_language_names, print_help): Mention the autodetect
+       feature, do not show help for the -C option, now mostly useless.
+       (C_entries): Tag C++ forward declarations if --declarations.
+       (C_entries): Don't be fooled by things like XDEFUN.
+       (consider_token): Discard asm pseudo function.
+
+2001-01-25  Francesco Potorti`  <pot@potorti.it>
+
+       * etags.c (struct tok): Renamed from struct token.
+       (token): Renamed from tok.
+       (structtype): Make it a local variable.
+       [DEBUG]: Use assert.
+       (xrnew): Change the synopsis.
+       (typedefs_or_cplusplus): Renamed from typedefs_and_cplusplus.
+       (grow_linebuffer): Don't call xrnew when not needed.
+       (token): buffer renamed to line.
+       (C_entries): Three calls to inibuffer moved here from main.
+       (C_entries): Removed all references to var methodlen, delete it.
+       (linebuffer_setlen): Was grow_buffer, now also sets len.
+       (consider_token, C_entries, Pascal_functions): Use it.
+       (C_entries): Preventing problems relative to extern "C".
+       (C_entries): Can tag more than one variable or func separated by
+       comma when --declarations is used.
+       (C_entries): More accurate tagging of members and declarations.
+       (yacc_rules): Was global, made local to C_entries.
+       (next_token_is_func): Removed.
+       (fvdef): New constants fdefunkey, fdefunname.
+       (consider_token, C_entries): Use them.
+       (C_entries): Build proper lisp names for Emacs DEFUNs.
+
+2001-01-15  Francesco Potorti`  <pot@pot.cnuce.cnr.it>
+
+       * etags.c (print_language_names): Print filenames in addition to
+       suffixes.
+
+2001-01-12  Francesco Potorti`  <pot@gnu.org>
+
+       * etags.c (get_language_from_langname): Renamed from
+       get_language_from_name.
+       (get_language_from_filename): Renamed from
+       get_language_from_suffix.  Now first looks for the complete file
+       name.
+       (language): New member char **filenames.
+       (Makefile_filenames): List of possible filenames for makefiles.
+       (lang_names): Added a NULL member for every entry, added an entry
+       for makefiles.
+       (Makefile_targets): New function, inspired by Assar Westerlund
+       <assar@sics.se>.
+
+2000-11-07  Francesco Potortì  <pot@pot.cnuce.cnr.it>
+
+       * etags.c (Texinfo_nodes): Renamed from Texinfo_fuctions and made
+       it conformant to the style of the rest of the code.
+
+2000-02-10  Francesco Potorti`  <pot@gnu.org>
+
+       * etags.c (iswhite): Redefined not to consider '\0' as white
+       space, and use it throughout in place of isspace, thus preventing a
+       potential signed char to int conversion problem.
+       (MSDOS): #undefine befere redefining
+
+2000-02-04  Francesco Potorti`  <F.Potorti@cnuce.cnr.it>
+
+       * etags.c (many functions): Add prototypes.
+
+2000-01-31  Francesco Potorti`  <F.Potorti@cnuce.cnr.it>
+
+       * etags.c [MSDOS]: Set MSDOS to 1 if #defined, 0 otherwise.
+       (get_compressor_from_suffix, process_file): Use MSDOS in if clause.
+       (etags_strchr, etags_strrchr): Use const char * and int as arguments.
+       (getenv, getcwd): Only declare them if necessary.
+       (EMACS_NAME): New constant macro.
+       (print_version): Use it.
+       (P_) [__STDC__]: Macro for defining function prototypes.
+
+2001-02-06  Martin Buchholz  <martin@xemacs.org>
+
+       * gnuclient.c:
+       * gnuserv.c:
+       * gnuslib.c:
+       * pop.c:
+       Remove use of BSD-specific types.
+       s/u_(char|short|int_long)/unsigned $1/g
+       Remove pointless casts.
+
+2001-01-28  Martin Buchholz  <martin@xemacs.org>
+
+       * gnuclient.c (get_current_working_directory): Use HAVE_GETCWD.
+       warning: getwd() possibly used unsafely, consider using getcwd().
+
 2001-01-26  Martin Buchholz <martin@xemacs.org>
 
        * XEmacs 21.2.43 "Terspichore" is released.
index ce7d1c2..7ae810d 100644 (file)
@@ -1,5 +1,5 @@
-/* Tags file maker to go with GNU Emacs
-   Copyright (C) 1984, 87, 88, 89, 93, 94, 95, 98, 99
+/* Tags file maker to go with GNU Emacs           -*- coding: latin-1 -*-
+   Copyright (C) 1984, 87, 88, 89, 93, 94, 95, 98, 99, 2000, 2001
    Free Software Foundation, Inc. and Ken Arnold
 
 This file is not considered part of GNU Emacs.
@@ -24,20 +24,25 @@ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  *     Fortran added by Jim Kleckner.
  *     Ed Pelegri-Llopart added C typedefs.
  *     Gnu Emacs TAGS format and modifications by RMS?
- *     Sam Kendall added C++.
- *     Francesco Potorti` reorganised C and C++ based on work by Joe Wells.
- *     Regexp tags by Tom Tromey.
+ * 1989        Sam Kendall added C++.
+ * 1993        Francesco Potortì reorganised C and C++ based on work by Joe Wells.
+ * 1994        Regexp tags by Tom Tromey.
+ * 2001 Nested classes by Francesco Potortì based on work by Mykola Dzyuba.
  *
- *     Francesco Potorti` (pot@gnu.org) is the current maintainer.
+ *     Francesco Potortì <pot@gnu.org> has maintained it since 1993.
  */
 
-char pot_etags_version[] = "@(#) pot revision number is 13.44";
+char pot_etags_version[] = "@(#) pot revision number is 14.15";
 
 #define        TRUE    1
 #define        FALSE   0
 
-#ifndef DEBUG
-# define DEBUG FALSE
+#ifdef DEBUG
+#  undef DEBUG
+#  define DEBUG TRUE
+#else
+#  define DEBUG  FALSE
+#  define NDEBUG               /* disable assert */
 #endif
 
 #if defined(__STDC__) && (__STDC__ || defined(__SUNPRO_C))
@@ -59,29 +64,54 @@ char pot_etags_version[] = "@(#) pot revision number is 13.44";
 # define _GNU_SOURCE 1         /* enables some compiler checks on GNU */
 #endif
 
+/* WIN32_NATIVE is for Xemacs.
+   MSDOS, WINDOWSNT, DOS_NT are for Emacs. */
 #ifdef WIN32_NATIVE
+# undef MSDOS
+# undef  WINDOWSNT
+# define WINDOWSNT
+#endif /* WIN32_NATIVE */
+
+#ifdef MSDOS
+# undef MSDOS
+# define MSDOS TRUE
+# include <fcntl.h>
+# include <sys/param.h>
+# include <io.h>
+# ifndef HAVE_CONFIG_H
+#   define DOS_NT
+#   include <sys/config.h>
+# endif
+#else
+# define MSDOS FALSE
+#endif /* MSDOS */
+
+#ifdef WINDOWSNT
 # include <stdlib.h>
 # include <fcntl.h>
 # include <string.h>
 # include <direct.h>
 # include <io.h>
 # define MAXPATHLEN _MAX_PATH
+# undef HAVE_NTGUI
+# undef  DOS_NT
+# define DOS_NT
 # ifndef HAVE_GETCWD
 #   define HAVE_GETCWD
 # endif /* undef HAVE_GETCWD */
-#else /* !WIN32_NATIVE */
+#else /* !WINDOWSNT */
 # ifdef STDC_HEADERS
 #  include <stdlib.h>
 #  include <string.h>
 # else
     extern char *getenv ();
 # endif
-#endif /* !WIN32_NATIVE */
+#endif /* !WINDOWSNT */
 
 #ifdef HAVE_UNISTD_H
 # include <unistd.h>
 #else
-# if defined (HAVE_GETCWD) && !defined (WIN32_NATIVE)
+# if defined (HAVE_GETCWD) && !defined (WINDOWSNT)
     extern char *getcwd (char *buf, size_t size);
 # endif
 #endif /* HAVE_UNISTD_H */
@@ -95,6 +125,12 @@ char pot_etags_version[] = "@(#) pot revision number is 13.44";
 #include <sys/types.h>
 #include <sys/stat.h>
 
+#include <assert.h>
+#ifdef NDEBUG
+# undef  assert                        /* some systems have a buggy assert.h */
+# define assert(x) ((void) 0)
+#endif
+
 #if !defined (S_ISREG) && defined (S_IFREG)
 # define S_ISREG(m)    (((m) & S_IFMT) == S_IFREG)
 #endif
@@ -130,43 +166,42 @@ char pot_etags_version[] = "@(#) pot revision number is 13.44";
 # define       BAD     1
 #endif
 
-/* C extensions. */
-#define C_PLPL 0x00001         /* C++ */
-#define C_STAR 0x00003         /* C* */
-#define C_JAVA 0x00005         /* JAVA */
-#define YACC   0x10000         /* yacc file */
-
-#define streq(s,t)     ((DEBUG && (s) == NULL && (t) == NULL   \
-                         && (abort (), 1)) || !strcmp (s, t))
-#define strneq(s,t,n)  ((DEBUG && (s) == NULL && (t) == NULL   \
-                         && (abort (), 1)) || !strncmp (s, t, n))
-
-#define lowcase(c)     tolower ((char)c)
+#define streq(s,t)     (assert((s)!=NULL || (t)!=NULL), !strcmp (s, t))
+#define strneq(s,t,n)  (assert((s)!=NULL || (t)!=NULL), !strncmp (s, t, n))
 
 #define CHARS 256              /* 2^sizeof(char) */
-#define CHAR(x)                ((unsigned int)x & (CHARS - 1))
+#define CHAR(x)                ((unsigned int)(x) & (CHARS - 1))
 #define        iswhite(c)      (_wht[CHAR(c)]) /* c is white */
 #define notinname(c)   (_nin[CHAR(c)]) /* c is not in a name */
 #define        begtoken(c)     (_btk[CHAR(c)]) /* c can start token */
 #define        intoken(c)      (_itk[CHAR(c)]) /* c can be in token */
 #define        endtoken(c)     (_etk[CHAR(c)]) /* c ends tokens */
 
+#define ISALNUM(c)     isalnum (CHAR(c))
+#define ISALPHA(c)     isalpha (CHAR(c))
+#define ISDIGIT(c)     isdigit (CHAR(c))
+#define ISLOWER(c)     islower (CHAR(c))
+
+#define lowcase(c)     tolower (CHAR(c))
+#define upcase(c)      toupper (CHAR(c))
+
 
 /*
  *     xnew, xrnew -- allocate, reallocate storage
  *
  * SYNOPSIS:   Type *xnew (int n, Type);
- *             Type *xrnew (OldPointer, int n, Type);
+ *             void xrnew (OldPointer, int n, Type);
  */
-#ifdef chkmalloc
+#if DEBUG
 # include "chkmalloc.h"
 # define xnew(n,Type)    ((Type *) trace_malloc (__FILE__, __LINE__, \
                                                  (n) * sizeof (Type)))
-# define xrnew(op,n,Type) ((Type *) trace_realloc (__FILE__, __LINE__, \
-                                                  (op), (n) * sizeof (Type)))
+# define xrnew(op,n,Type) ((op) = (Type *) trace_realloc (__FILE__, __LINE__, \
+                                       (char *) (op), (n) * sizeof (Type)))
 #else
 # define xnew(n,Type)    ((Type *) xmalloc ((n) * sizeof (Type)))
-# define xrnew(op,n,Type) ((Type *) xrealloc ((op), (n) * sizeof (Type)))
+# define xrnew(op,n,Type) ((op) = (Type *) xrealloc ( \
+                                       (char *) (op), (n) * sizeof (Type)))
 #endif
 
 typedef int bool;
@@ -183,6 +218,7 @@ typedef struct
 {
   char *name;
   Lang_function *function;
+  char **filenames;
   char **suffixes;
   char **interpreters;
 } language;
@@ -229,13 +265,15 @@ static void Erlang_functions P_((FILE *));
 static void Fortran_functions P_((FILE *));
 static void Yacc_entries P_((FILE *));
 static void Lisp_functions P_((FILE *));
+static void Makefile_targets P_((FILE *));
 static void Pascal_functions P_((FILE *));
 static void Perl_functions P_((FILE *));
 static void Postscript_functions P_((FILE *));
 static void Prolog_functions P_((FILE *));
 static void Python_functions P_((FILE *));
 static void Scheme_functions P_((FILE *));
-static void TeX_functions P_((FILE *));
+static void TeX_commands P_((FILE *));
+static void Texinfo_nodes P_((FILE *));
 static void just_read_file P_((FILE *));
 
 static void print_language_names P_((void));
@@ -245,9 +283,9 @@ int main P_((int, char **));
 static int number_len P_((long));
 
 static compressor *get_compressor_from_suffix P_((char *, char **));
-static language *get_language_from_name P_((char *));
+static language *get_language_from_langname P_((char *));
 static language *get_language_from_interpreter P_((char *));
-static language *get_language_from_suffix P_((char *));
+static language *get_language_from_filename P_((char *));
 static int total_size_of_entries P_((node *));
 static long readline P_((linebuffer *, FILE *));
 static long readline_internal P_((linebuffer *, FILE *));
@@ -260,7 +298,7 @@ static void free_patterns P_((void));
 #endif /* ETAGS_REGEXPS */
 static void error P_((const char *, const char *));
 static void suggest_asking_for_help P_((void));
-static void fatal P_((char *, char *));
+void fatal P_((char *, char *));
 static void pfatal P_((char *));
 static void add_node P_((node *, node **));
 
@@ -287,9 +325,9 @@ static char *absolute_filename P_((char *, char *));
 static char *absolute_dirname P_((char *, char *));
 static bool filename_is_absolute P_((char *f));
 static void canonicalize_filename P_((char *));
-static void grow_linebuffer P_((linebuffer *, int));
-static long *xmalloc P_((unsigned int));
-static long *xrealloc P_((char *, unsigned int));
+static void linebuffer_setlen P_((linebuffer *, int));
+long *xmalloc P_((unsigned int));
+long *xrealloc P_((char *, unsigned int));
 
 \f
 char searchar = '/';           /* use /.../ searches */
@@ -311,12 +349,6 @@ char *dbp;                 /* pointer to start of current tag */
 node *head;                    /* the head of the binary tree of tags */
 
 linebuffer lb;                 /* the current line */
-linebuffer token_name;         /* used by C_entries as a temporary area */
-struct
-{
-  long linepos;
-  linebuffer lb;               /* used by C_entries instead of lb */
-} lbs[2];
 
 /* boolean "functions" (see init)      */
 bool _wht[CHARS], _nin[CHARS], _itk[CHARS], _btk[CHARS], _etk[CHARS];
@@ -335,7 +367,7 @@ char
 bool append_to_tagfile;                /* -a: append to tags */
 /* The following four default to TRUE for etags, but to FALSE for ctags.  */
 bool typedefs;                 /* -t: create tags for C and Ada typedefs */
-bool typedefs_and_cplusplus;   /* -T: create tags for C typedefs, level */
+bool typedefs_or_cplusplus;    /* -T: create tags for C typedefs, level */
                                /* 0 struct/enum/union decls, and C++ */
                                /* member functions. */
 bool constantypedefs;          /* -d: create tags for C #define, enum */
@@ -445,12 +477,13 @@ char *Asm_suffixes [] = { "a",    /* Unix assembler */
                        };
 
 /* Note that .c and .h can be considered C++, if the --c++ flag was
-   given.  That is why default_C_entries is called here. */
+   given, or if the `class' keyowrd is met inside the file.
+   That is why default_C_entries is called for these. */
 char *default_C_suffixes [] =
   { "c", "h", NULL };
 
 char *Cplusplus_suffixes [] =
-  { "C", "H", "c++", "cc", "cpp", "cxx", "h++", "hh", "hpp", "hxx",
+  { "C", "c++", "cc", "cpp", "cxx", "H", "h++", "hh", "hpp", "hxx",
     "M",                       /* Objective C++ */
     "pdb",                     /* Postscript with C syntax */
     NULL };
@@ -471,7 +504,10 @@ char *Fortran_suffixes [] =
   { "F", "f", "f90", "for", NULL };
 
 char *Lisp_suffixes [] =
-  { "cl", "clisp", "el", "l", "lisp", "lsp", "ml", NULL };
+  { "cl", "clisp", "el", "l", "lisp", "LSP", "lsp", "ml", NULL };
+
+char *Makefile_filenames [] =
+  { "Makefile", "makefile", "GNUMakefile", "Makefile.in", "Makefile.am", NULL};
 
 char *Pascal_suffixes [] =
   { "p", "pas", NULL };
@@ -482,9 +518,9 @@ char *Perl_interpreters [] =
   { "perl", "@PERL@", NULL };
 
 char *plain_C_suffixes [] =
-  { "pc",                      /* Pro*C file */
+  { "lm",                      /* Objective lex file */
     "m",                       /* Objective C file */
-    "lm",                      /* Objective lex file */
+    "pc",                      /* Pro*C file */
      NULL };
 
 char *Postscript_suffixes [] =
@@ -498,13 +534,16 @@ char *Python_suffixes [] =
 
 /* Can't do the `SCM' or `scm' prefix with a version number. */
 char *Scheme_suffixes [] =
-  { "SCM", "SM", "oak", "sch", "scheme", "scm", "sm", "ss", "t", NULL };
+  { "oak", "sch", "scheme", "SCM", "scm", "SM", "sm", "ss", "t", NULL };
 
 char *TeX_suffixes [] =
-  { "TeX", "bib", "clo", "cls", "ltx", "sty", "tex", NULL };
+  { "bib", "clo", "cls", "ltx", "sty", "TeX", "tex", NULL };
+
+char *Texinfo_suffixes [] =
+  { "texi", "texinfo", "txi", NULL };
 
 char *Yacc_suffixes [] =
-  { "y", "ym", "yy", "yxx", "y++", NULL }; /* .ym is Objective yacc file */
+  { "y", "y++", "ym", "yxx", "yy", NULL }; /* .ym is Objective yacc file */
 
 /*
  * Table of languages.
@@ -515,41 +554,47 @@ char *Yacc_suffixes [] =
 
 language lang_names [] =
 {
-  { "ada",     Ada_funcs,           Ada_suffixes,         NULL              },
-  { "asm",     Asm_labels,          Asm_suffixes,         NULL              },
-  { "c",       default_C_entries,   default_C_suffixes,   NULL              },
-  { "c++",     Cplusplus_entries,   Cplusplus_suffixes,   NULL              },
-  { "c*",      Cstar_entries,       Cstar_suffixes,       NULL              },
-  { "cobol",   Cobol_paragraphs,    Cobol_suffixes,       NULL              },
-  { "erlang",  Erlang_functions,    Erlang_suffixes,      NULL              },
-  { "fortran", Fortran_functions,   Fortran_suffixes,     NULL              },
-  { "java",    Cjava_entries,       Cjava_suffixes,       NULL              },
-  { "lisp",    Lisp_functions,      Lisp_suffixes,        NULL              },
-  { "pascal",  Pascal_functions,    Pascal_suffixes,      NULL              },
-  { "perl",    Perl_functions,      Perl_suffixes,        Perl_interpreters },
-  { "postscript", Postscript_functions, Postscript_suffixes, NULL           },
-  { "proc",    plain_C_entries,     plain_C_suffixes,     NULL              },
-  { "prolog",  Prolog_functions,    Prolog_suffixes,      NULL              },
-  { "python",  Python_functions,    Python_suffixes,      NULL              },
-  { "scheme",  Scheme_functions,    Scheme_suffixes,      NULL              },
-  { "tex",     TeX_functions,       TeX_suffixes,         NULL              },
-  { "yacc",    Yacc_entries,        Yacc_suffixes,        NULL              },
+  { "ada",               Ada_funcs,            NULL, Ada_suffixes,             NULL },
+  { "asm",               Asm_labels,           NULL, Asm_suffixes,             NULL },
+  { "c",                 default_C_entries,    NULL, default_C_suffixes,       NULL },
+  { "c++",               Cplusplus_entries,    NULL, Cplusplus_suffixes,       NULL },
+  { "c*",                Cstar_entries,        NULL, Cstar_suffixes,           NULL },
+  { "cobol",             Cobol_paragraphs,     NULL, Cobol_suffixes,           NULL },
+  { "erlang",            Erlang_functions,     NULL, Erlang_suffixes,          NULL },
+  { "fortran",           Fortran_functions,    NULL, Fortran_suffixes,         NULL },
+  { "java",              Cjava_entries,        NULL, Cjava_suffixes,           NULL },
+  { "lisp",              Lisp_functions,       NULL, Lisp_suffixes,            NULL },
+  { "makefile",   Makefile_targets,     Makefile_filenames, NULL,      NULL },
+  { "pascal",            Pascal_functions,     NULL, Pascal_suffixes,          NULL },
+  { "perl",              Perl_functions,     NULL, Perl_suffixes, Perl_interpreters },
+  { "postscript", Postscript_functions, NULL, Postscript_suffixes,     NULL },
+  { "proc",              plain_C_entries,      NULL, plain_C_suffixes,         NULL },
+  { "prolog",            Prolog_functions,     NULL, Prolog_suffixes,          NULL },
+  { "python",            Python_functions,     NULL, Python_suffixes,          NULL },
+  { "scheme",            Scheme_functions,     NULL, Scheme_suffixes,          NULL },
+  { "tex",               TeX_commands,         NULL, TeX_suffixes,             NULL },
+  { "texinfo",           Texinfo_nodes,        NULL, Texinfo_suffixes,         NULL },
+  { "yacc",              Yacc_entries,         NULL, Yacc_suffixes,            NULL },
   { "auto", NULL },             /* default guessing scheme */
   { "none", just_read_file },   /* regexp matching only */
   { NULL, NULL }                /* end of list */
 };
+
 \f
 static void
 print_language_names ()
 {
   language *lang;
-  char **ext;
+  char **name, **ext;
 
   puts ("\nThese are the currently supported languages, along with the\n\
-default file name suffixes:");
+default file names and dot suffixes:");
   for (lang = lang_names; lang->name != NULL; lang++)
     {
-      printf ("\t%s\t", lang->name);
+      printf ("  %-*s", 10, lang->name);
+      if (lang->filenames != NULL)
+       for (name = lang->filenames; *name != NULL; name++)
+         printf (" %s", *name);
       if (lang->suffixes != NULL)
        for (ext = lang->suffixes; *ext != NULL; ext++)
          printf (" .%s", *ext);
@@ -561,6 +606,7 @@ If no language is specified and no matching suffix is found,\n\
 the first line of the file is read for a sharp-bang (#!) sequence\n\
 followed by the name of an interpreter.  If no such sequence is found,\n\
 Fortran is tried first; if no tags are found, C is tried next.\n\
+When parsing any C file, a \"class\" keyword switches to C++.\n\
 Compressed files are supported using gzip and bzip2.");
 }
 
@@ -609,8 +655,13 @@ Relative ones are stored relative to the output file's directory.");
         Write the search commands for the tag entries using '?', the\n\
         backward-search command instead of '/', the forward-search command.");
 
+  /* This option is mostly obsolete, because etags can now automatically
+     detect C++.  Retained for backward compatibility and for debugging and
+     experimentation.  In principle, we could want to tag as C++ even
+     before any "class" keyword.
   puts ("-C, --c++\n\
         Treat files whose name suffix defaults to C language as C++ files.");
+  */
 
   puts ("--declarations\n\
        In C and derived languages, create tags for function declarations,");
@@ -870,9 +921,9 @@ main (argc, argv)
   bool got_err;
 #endif
 
-#ifdef WIN32_NATIVE
+#ifdef DOS_NT
   _fmode = O_BINARY;   /* all of files are treated as binary files */
-#endif /* WIN32_NATIVE */
+#endif /* DOS_NT */
 
   progname = argv[0];
   nincluded_files = 0;
@@ -894,13 +945,14 @@ main (argc, argv)
 
   /*
    * If etags, always find typedefs and structure tags.  Why not?
-   * Also default is to find macro constants, enum constants and
+   * Also default to find macro constants, enum constants and
    * global variables.
    */
   if (!CTAGS)
     {
-      typedefs = typedefs_and_cplusplus = constantypedefs = TRUE;
+      typedefs = typedefs_or_cplusplus = constantypedefs = TRUE;
       globals = TRUE;
+      declarations = FALSE;
       members = FALSE;
     }
 
@@ -958,7 +1010,7 @@ main (argc, argv)
          break;
        case 'l':
          {
-           language *lang = get_language_from_name (optarg);
+           language *lang = get_language_from_langname (optarg);
            if (lang != NULL)
              {
                argbuffer[current_arg].lang = lang;
@@ -995,7 +1047,7 @@ main (argc, argv)
          typedefs = TRUE;
          break;
        case 'T':
-         typedefs = typedefs_and_cplusplus = TRUE;
+         typedefs = typedefs_or_cplusplus = TRUE;
          break;
 #if (!CTAGS)
          /* Etags options */
@@ -1046,9 +1098,6 @@ main (argc, argv)
   init ();                     /* set up boolean "functions" */
 
   initbuffer (&lb);
-  initbuffer (&token_name);
-  initbuffer (&lbs[0].lb);
-  initbuffer (&lbs[1].lb);
   initbuffer (&filename_lb);
 
   if (!CTAGS)
@@ -1056,12 +1105,12 @@ main (argc, argv)
       if (streq (tagfile, "-"))
        {
          tagf = stdout;
-#ifdef WIN32_NATIVE
+#ifdef DOS_NT
          /* Switch redirected `stdout' to binary mode (setting `_fmode'
             doesn't take effect until after `stdout' is already open). */
          if (!isatty (fileno (stdout)))
            setmode (fileno (stdout), O_BINARY);
-#endif /* WIN32_NATIVE */
+#endif /* DOS_NT */
        }
       else
        tagf = fopen (tagfile, append_to_tagfile ? "a" : "w");
@@ -1180,7 +1229,7 @@ main (argc, argv)
  * return a pointer into FILE where the compressor-specific
  * extension begins.  If no compressor is found, NULL is returned
  * and EXTPTR is not significant.
- * Idea by Vladimir Alexiev <vladimir@cs.ualberta.ca>
+ * Idea by Vladimir Alexiev <vladimir@cs.ualberta.ca> (1998)
  */
 static compressor *
 get_compressor_from_suffix (file, extptr)
@@ -1191,7 +1240,7 @@ get_compressor_from_suffix (file, extptr)
   char *slash, *suffix;
 
   /* This relies on FN to be after canonicalize_filename,
-     so we don't need to consider backslashes on WIN32_NATIVE.  */
+     so we don't need to consider backslashes on DOS_NT.  */
   slash = etags_strrchr (file, '/');
   suffix = etags_strrchr (file, '.');
   if (suffix == NULL || suffix < slash)
@@ -1201,13 +1250,13 @@ get_compressor_from_suffix (file, extptr)
   suffix += 1;
   /* Let those poor souls who live with DOS 8+3 file name limits get
      some solace by treating foo.cgz as if it were foo.c.gz, etc.
- */
+     Only the first do loop is run if not MSDOS */
   do
     {
       for (compr = compressors; compr->suffix != NULL; compr++)
        if (streq (compr->suffix, suffix))
          return compr;
-      if (1) /* !MSDOS */
+      if (!MSDOS)
        break;                  /* do it only once: not really a loop */
       if (extptr != NULL)
        *extptr = ++suffix;
@@ -1221,7 +1270,7 @@ get_compressor_from_suffix (file, extptr)
  * Return a language given the name.
  */
 static language *
-get_language_from_name (name)
+get_language_from_langname (name)
      char *name;
 {
   language *lang;
@@ -1267,12 +1316,20 @@ get_language_from_interpreter (interpreter)
  * Return a language given the file name.
  */
 static language *
-get_language_from_suffix (file)
+get_language_from_filename (file)
      char *file;
 {
   language *lang;
-  char **ext, *suffix;
+  char **name, **ext, *suffix;
+
+  /* Try whole file name first. */
+  for (lang = lang_names; lang->name != NULL; lang++)
+    if (lang->filenames != NULL)
+      for (name = lang->filenames; *name != NULL; name++)
+       if (streq (*name, file))
+         return lang;
 
+  /* If not found, try suffix after last dot. */
   suffix = etags_strrchr (file, '.');
   if (suffix == NULL)
     return NULL;
@@ -1354,7 +1411,22 @@ process_file (file)
              compressed_name = concat (file, ".", compr->suffix);
              if (stat (compressed_name, &stat_buf) != 0)
                {
-                 /* XEmacs: delete MSDOS code */
+                 if (MSDOS)
+                   {
+                     char *suf = compressed_name + strlen (file);
+                     size_t suflen = strlen (compr->suffix) + 1;
+                     for ( ; suf[1]; suf++, suflen--)
+                       {
+                         memmove (suf, suf + 1, suflen);
+                         if (stat (compressed_name, &stat_buf) == 0)
+                           {
+                             real_name = compressed_name;
+                             break;
+                           }
+                       }
+                     if (real_name != NULL)
+                       break;
+                   } /* MSDOS */
                  free (compressed_name);
                  compressed_name = NULL;
                }
@@ -1380,7 +1452,7 @@ process_file (file)
   if (real_name == compressed_name)
     {
       char *cmd = concat (compr->command, " ", real_name);
-      inf = popen (cmd, "r");
+      inf = (FILE *) popen (cmd, "r");
       free (cmd);
     }
   else
@@ -1485,7 +1557,7 @@ find_entries (file, inf)
     }
 
   /* Try to guess the language given the file name. */
-  lang = get_language_from_suffix (file);
+  lang = get_language_from_filename (file);
   if (lang != NULL && lang->function != NULL)
     {
       curlang = lang;
@@ -1530,7 +1602,7 @@ find_entries (file, inf)
 
   /* Try Fortran. */
   old_last_node = last_node;
-  curlang = get_language_from_name ("fortran");
+  curlang = get_language_from_langname ("fortran");
   Fortran_functions (inf);
 
   /* No Fortran entries found.  Try C. */
@@ -1539,11 +1611,12 @@ find_entries (file, inf)
       /* We do not tag if rewind fails.
         Only the file name will be recorded in the tags file. */
       rewind (inf);
-      curlang = get_language_from_name (cplusplus ? "c++" : "c");
+      curlang = get_language_from_langname (cplusplus ? "c++" : "c");
       default_C_entries (inf);
     }
   return;
 }
+
 \f
 /* Record a tag. */
 static void
@@ -1597,10 +1670,9 @@ pfnote (name, is_func, linestart, linelen, lno, cno)
   add_node (np, &head);
 }
 
-/* Date: Wed, 22 Jan 1997 02:56:31 -0500 [last amended 18 Sep 1997]
- * From: Sam Kendall <kendall@mv.mv.com>
- * Subject: Proposal for firming up the TAGS format specification
- * To: F.Potorti@cnuce.cnr.it
+/*
+ * TAGS format specification
+ * Idea by Sam Kendall <kendall@mv.mv.com> (1997)
  *
  * pfnote should emit the optimized form [unnamed tag] only if:
  *  1. name does not contain any of the characters " \t\r\n(),;";
@@ -1740,6 +1812,7 @@ add_node (np, cur_node_p)
       add_node (np, dif < 0 ? &cur_node->left : &cur_node->right);
     }
 }
+
 \f
 static void
 put_entries (np)
@@ -1848,7 +1921,17 @@ total_size_of_entries (np)
 
   return total;
 }
+
 \f
+/* C extensions. */
+#define C_EXT  0x00fff         /* C extensions */
+#define C_PLAIN 0x00000                /* C */
+#define C_PLPL 0x00001         /* C++ */
+#define C_STAR 0x00003         /* C* */
+#define C_JAVA 0x00005         /* JAVA */
+#define C_AUTO  0x01000                /* C, but switch to C++ if `class' is met */
+#define YACC   0x10000         /* yacc file */
+
 /*
  * The C symbol tables.
  */
@@ -1860,6 +1943,7 @@ enum sym_type
   st_C_ignore,
   st_C_javastruct,
   st_C_operator,
+  st_C_class,
   st_C_struct, st_C_extern, st_C_enum, st_C_define, st_C_typedef, st_C_typespec
 };
 
@@ -1869,6 +1953,7 @@ static enum sym_type C_symtype P_((char *, int, int));
 
 /* Feed stuff between (but not including) %[ and %] lines to:
       gperf -c -k 1,3 -o -p -r -t
+   then put a `static' keyword in front of the in_word_set function.
 %[
 struct C_stab_entry { char *name; int c_ext; enum sym_type type; }
 %%
@@ -1887,7 +1972,7 @@ friend,           C_PLPL, st_C_ignore
 extends,       C_JAVA, st_C_javastruct
 implements,    C_JAVA, st_C_javastruct
 interface,     C_JAVA, st_C_struct
-class,         C_PLPL, st_C_struct
+class,         0,      st_C_class
 namespace,     C_PLPL, st_C_struct
 domain,        C_STAR, st_C_struct
 union,         0,      st_C_struct
@@ -1924,7 +2009,8 @@ PSEUDO,           0,      st_C_gnumacro
 #EXFUN,                0,      st_C_gnumacro
 #DEFVAR_,      0,      st_C_gnumacro
 %]
-and replace lines between %< and %> with its output. */
+and replace lines between %< and %> with its output,
+then make in_word_set static. */
 /*%<*/
 /* C code produced by gperf version 2.7.1 (19981006 egcs) */
 /* Command-line: gperf -c -k 1,3 -o -p -r -t  */
@@ -1934,8 +2020,8 @@ struct C_stab_entry { char *name; int c_ext; enum sym_type type; };
 #define MIN_WORD_LENGTH 2
 #define MAX_WORD_LENGTH 15
 #define MIN_HASH_VALUE 13
-#define MAX_HASH_VALUE 123
-/* maximum key range = 111, duplicates = 0 */
+#define MAX_HASH_VALUE 121
+/* maximum key range = 109, duplicates = 0 */
 
 #ifdef __GNUC__
 __inline
@@ -1947,32 +2033,32 @@ hash (str, len)
 {
   static unsigned char asso_values[] =
     {
-      124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
-      124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
-      124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
-      124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
-      124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
-      124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
-      124, 124, 124, 124,   3, 124, 124, 124,  43,   6,
-       11, 124, 124, 124, 124, 124, 124, 124, 124, 124,
-       11, 124, 124,  58,   7, 124, 124, 124, 124, 124,
-      124, 124, 124, 124, 124, 124, 124,  57,   7,  42,
-        4,  14,  52,   0, 124,  53, 124, 124,  29,  11,
-        6,  35,  32, 124,  29,  34,  59,  58,  51,  24,
-      124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
-      124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
-      124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
-      124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
-      124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
-      124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
-      124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
-      124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
-      124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
-      124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
-      124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
-      124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
-      124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
-      124, 124, 124, 124, 124, 124
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122,  57, 122, 122, 122,  55,   6,
+       60, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+       51, 122, 122,  10,   2, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122,   2,  52,  59,
+       49,  38,  56,  41, 122,  22, 122, 122,   9,  32,
+       33,  60,  26, 122,   1,  28,  46,  59,  44,  51,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122
     };
   register int hval = len;
 
@@ -2001,77 +2087,76 @@ in_word_set (str, len)
     {
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""},
-      {"@end",         0,      st_C_objend},
-      {""}, {""}, {""}, {""},
       {"ENTRY",                0,      st_C_gnumacro},
-      {"@interface",   0,      st_C_objprot},
-      {""},
-      {"domain",       C_STAR, st_C_struct},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""},
-      {"PSEUDO",               0,      st_C_gnumacro},
-      {""}, {""},
-      {"namespace",    C_PLPL, st_C_struct},
+      {"if",           0,      st_C_ignore},
       {""}, {""},
-      {"@implementation",0,    st_C_objimpl},
+      {"SYSCALL",      0,      st_C_gnumacro},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"struct",       0,      st_C_struct},
+      {"static",       0,      st_C_typespec},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {"long",         0,      st_C_typespec},
-      {"signed",       0,      st_C_typespec},
-      {"@protocol",    0,      st_C_objprot},
-      {""}, {""}, {""}, {""},
-      {"bool",         C_PLPL, st_C_typespec},
-      {""}, {""}, {""}, {""}, {""}, {""},
-      {"const",        0,      st_C_typespec},
-      {"explicit",     C_PLPL, st_C_typespec},
-      {"if",           0,      st_C_ignore},
-      {""},
-      {"operator",     C_PLPL, st_C_operator},
-      {""},
-      {"DEFUN",                0,      st_C_gnumacro},
-      {""}, {""},
-      {"define",       0,      st_C_define},
       {""}, {""}, {""}, {""}, {""},
-      {"double",       0,      st_C_typespec},
-      {"struct",       0,      st_C_struct},
-      {""}, {""}, {""}, {""},
-      {"short",        0,      st_C_typespec},
+      {"auto",         0,      st_C_typespec},
+      {"return",               0,      st_C_ignore},
+      {"import",               C_JAVA, st_C_ignore},
       {""},
-      {"enum",         0,      st_C_enum},
-      {"mutable",      C_PLPL, st_C_typespec},
+      {"switch",               0,      st_C_ignore},
       {""},
-      {"extern",       0,      st_C_extern},
-      {"extends",      C_JAVA, st_C_javastruct},
-      {"package",      C_JAVA, st_C_ignore},
-      {"while",                0,      st_C_ignore},
+      {"implements",   C_JAVA, st_C_javastruct},
       {""},
       {"for",          0,      st_C_ignore},
-      {""}, {""}, {""},
       {"volatile",     0,      st_C_typespec},
+      {""},
+      {"PSEUDO",               0,      st_C_gnumacro},
+      {""},
+      {"char",         0,      st_C_typespec},
+      {"class",        0,      st_C_class},
+      {"@protocol",    0,      st_C_objprot},
       {""}, {""},
-      {"import",               C_JAVA, st_C_ignore},
-      {"float",        0,      st_C_typespec},
-      {"switch",               0,      st_C_ignore},
-      {"return",               0,      st_C_ignore},
-      {"implements",   C_JAVA, st_C_javastruct},
+      {"void",         0,      st_C_typespec},
+      {"int",          0,      st_C_typespec},
+      {"explicit",     C_PLPL, st_C_typespec},
       {""},
-      {"static",       0,      st_C_typespec},
+      {"namespace",    C_PLPL, st_C_struct},
+      {"signed",       0,      st_C_typespec},
+      {""},
+      {"interface",    C_JAVA, st_C_struct},
+      {"while",                0,      st_C_ignore},
       {"typedef",      0,      st_C_typedef},
       {"typename",     C_PLPL, st_C_typespec},
-      {"unsigned",     0,      st_C_typespec},
-      {""}, {""},
-      {"char",         0,      st_C_typespec},
-      {"class",        C_PLPL, st_C_struct},
       {""}, {""}, {""},
-      {"void",         0,      st_C_typespec},
-      {""}, {""},
       {"friend",               C_PLPL, st_C_ignore},
-      {""}, {""}, {""},
-      {"int",          0,      st_C_typespec},
+      {"mutable",      C_PLPL, st_C_typespec},
       {"union",        0,      st_C_struct},
-      {""}, {""}, {""},
-      {"auto",         0,      st_C_typespec},
-      {"interface",    C_JAVA, st_C_struct},
+      {"domain",       C_STAR, st_C_struct},
+      {""}, {""},
+      {"extern",       0,      st_C_extern},
+      {"extends",      C_JAVA, st_C_javastruct},
+      {"package",      C_JAVA, st_C_ignore},
+      {"short",        0,      st_C_typespec},
+      {"@end",         0,      st_C_objend},
+      {"unsigned",     0,      st_C_typespec},
+      {""},
+      {"const",        0,      st_C_typespec},
+      {""}, {""},
+      {"@interface",   0,      st_C_objprot},
+      {"enum",         0,      st_C_enum},
+      {""}, {""},
+      {"@implementation",0,    st_C_objimpl},
+      {""},
+      {"operator",     C_PLPL, st_C_operator},
+      {""}, {""}, {""}, {""},
+      {"define",       0,      st_C_define},
+      {""}, {""},
+      {"double",       0,      st_C_typespec},
       {""},
-      {"SYSCALL",      0,      st_C_gnumacro}
+      {"bool",         C_PLPL, st_C_typespec},
+      {""}, {""}, {""},
+      {"DEFUN",                0,      st_C_gnumacro},
+      {"float",        0,      st_C_typespec}
     };
 
   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
@@ -2102,14 +2187,17 @@ C_symtype (str, len, c_ext)
     return st_none;
   return se->type;
 }
+
 \f
- /*
-  * C functions and variables are recognized using a simple
-  * finite automaton.  fvdef is its state variable.
-  */
+/*
+ * C functions and variables are recognized using a simple
+ * finite automaton.  fvdef is its state variable.
+ */
 enum
 {
   fvnone,                      /* nothing seen */
+  fdefunkey,                   /* Emacs DEFUN keyword seen */
+  fdefunname,                  /* Emacs DEFUN name seen */
   foperator,                   /* func: operator keyword seen (cplpl) */
   fvnameseen,                  /* function or variable name seen */
   fstartlist,                  /* func: just after open parenthesis */
@@ -2121,10 +2209,10 @@ enum
 
 bool fvextern;                 /* func or var: extern keyword seen; */
 
- /*
-  * typedefs are recognized using a simple finite automaton.
-  * typdef is its state variable.
-  */
+/*
+ * typedefs are recognized using a simple finite automaton.
+ * typdef is its state variable.
+ */
 enum
 {
   tnone,                       /* nothing seen */
@@ -2135,30 +2223,22 @@ enum
   tignore                      /* junk after typedef tag */
 } typdef;
 
-
- /*
-  * struct-like structures (enum, struct and union) are recognized
-  * using another simple finite automaton.  `structdef' is its state
-  * variable.
-  */
+/*
+ * struct-like structures (enum, struct and union) are recognized
+ * using another simple finite automaton.  `structdef' is its state
+ * variable.
+ */
 enum
 {
-  snone,                       /* nothing seen yet */
+  snone,                       /* nothing seen yet,
+                                  or in struct body if cblev > 0 */
   skeyseen,                    /* struct-like keyword seen */
   stagseen,                    /* struct-like tag seen */
-  scolonseen,                  /* colon seen after struct-like tag */
-  sinbody                      /* in struct body: recognize member func defs*/
+  sintemplate,                 /* inside template (ignore) */
+  scolonseen                   /* colon seen after struct-like tag */
 } structdef;
 
 /*
- * When structdef is stagseen, scolonseen, or sinbody, structtag is the
- * struct tag, and structtype is the type of the preceding struct-like
- * keyword.
- */
-char *structtag = "<uninited>";
-enum sym_type structtype;
-
-/*
  * When objdef is different from onone, objtag is the name of the class.
  */
 char *objtag = "<uninited>";
@@ -2176,7 +2256,7 @@ enum
 
 /*
  * State machine for Objective C protocols and implementations.
- * Tom R.Hageman <tom@basil.icce.rug.nl>
+ * Idea by Tom R.Hageman <tom@basil.icce.rug.nl> (1995)
  */
 enum
 {
@@ -2199,36 +2279,114 @@ enum
  * Use this structure to keep info about the token read, and how it
  * should be tagged.  Used by the make_C_tag function to build a tag.
  */
-typedef struct
+struct tok
 {
   bool valid;
-  char *str;
   bool named;
-  int linelen;
+  int offset;
+  int length;
   int lineno;
   long linepos;
-  char *buffer;
-} token;
-
-token tok;                     /* latest token read */
+  char *line;
+} token;                       /* latest token read */
+linebuffer token_name;         /* its name */
 
 /*
- * Set this to TRUE, and the next token considered is called a function.
- * Used only for GNU emacs's function-defining macros.
+ * Variables and functions for dealing with nested structures.
+ * Idea by Mykola Dzyuba <mdzyuba@yahoo.com> (2001)
  */
-bool next_token_is_func;
+static void pushclass_above P_((int, char *, int));
+static void popclass_above P_((int));
+static void write_classname P_((linebuffer *, char *qualifier));
+
+struct {
+  char **cname;                        /* nested class names */
+  int *cblev;                  /* nested class curly brace level */
+  int nl;                      /* class nesting level (elements used) */
+  int size;                    /* length of the array */
+} cstack;                      /* stack for nested declaration tags */
+/* Current struct nesting depth (namespace, class, struct, union, enum). */
+#define nestlev                (cstack.nl)
+/* After struct keyword or in struct body, not inside an nested function. */
+#define instruct       (structdef == snone && nestlev > 0                      \
+                        && cblev == cstack.cblev[nestlev-1] + 1)
 
-/*
- * TRUE in the rules part of a yacc file, FALSE outside (parse as C).
- */
-bool yacc_rules;
+static void
+pushclass_above (cblev, str, len)
+     int cblev;
+     char *str;
+     int len;
+{
+  int nl;
 
-/*
- * methodlen is the length of the method name stored in token_name.
- */
-int methodlen;
+  popclass_above (cblev);
+  nl = cstack.nl;
+  if (nl >= cstack.size)
+    {
+      int size = cstack.size *= 2;
+      xrnew (cstack.cname, size, char *);
+      xrnew (cstack.cblev, size, int);
+    }
+  assert (nl == 0 || cstack.cblev[nl-1] < cblev);
+  cstack.cname[nl] = (str == NULL) ? NULL : savenstr (str, len);
+  cstack.cblev[nl] = cblev;
+  cstack.nl = nl + 1;
+}
+
+static void
+popclass_above (cblev)
+     int cblev;
+{
+  int nl;
 
-static bool consider_token P_((char *, int, int, int, int, int, bool *));
+  for (nl = cstack.nl - 1;
+       nl >= 0 && cstack.cblev[nl] >= cblev;
+       nl--)
+    {
+      if (cstack.cname[nl] != NULL)
+       free (cstack.cname[nl]);
+      cstack.nl = nl;
+    }
+}
+
+static void
+write_classname (cn, qualifier)
+     linebuffer *cn;
+     char *qualifier;
+{
+  int i, len;
+  int qlen = strlen (qualifier);
+
+  if (cstack.nl == 0 || cstack.cname[0] == NULL)
+    {
+      len = 0;
+      cn->len = 0;
+      cn->buffer[0] = '\0';
+    }
+  else
+    {
+      len = strlen (cstack.cname[0]);
+      linebuffer_setlen (cn, len);
+      strcpy (cn->buffer, cstack.cname[0]);
+    }
+  for (i = 1; i < cstack.nl; i++)
+    {
+      char *s;
+      int slen;
+
+      s = cstack.cname[i];
+      if (s == NULL)
+       continue;
+      slen = strlen (s);
+      len += slen + qlen;
+      linebuffer_setlen (cn, len);
+      strncat (cn->buffer, qualifier, qlen);
+      strncat (cn->buffer, s, slen);
+    }
+}
+
+\f
+static bool consider_token P_((char *, int, int, int *, int, int, bool *));
 static void make_C_tag P_((bool));
 
 /*
@@ -2238,7 +2396,7 @@ static void make_C_tag P_((bool));
  *     is a struct/union/enum tag, or #define, or an enum constant.
  *
  *     *IS_FUNC gets TRUE iff the token is a function or #define macro
- *     with args.  C_EXT is which language we are looking at.
+ *     with args.  C_EXTP points to which language we are looking at.
  *
  * Globals
  *     fvdef                   IN OUT
@@ -2246,20 +2404,27 @@ static void make_C_tag P_((bool));
  *     definedef               IN OUT
  *     typdef                  IN OUT
  *     objdef                  IN OUT
- *     next_token_is_func      IN OUT
  */
 
 static bool
-consider_token (str, len, c, c_ext, cblev, parlev, is_func_or_var)
+consider_token (str, len, c, c_extp, cblev, parlev, is_func_or_var)
      register char *str;       /* IN: token pointer */
      register int len;         /* IN: token length */
      register int c;           /* IN: first char after the token */
-     int c_ext;                        /* IN: C extensions mask */
+     int *c_extp;              /* IN, OUT: C extensions mask */
      int cblev;                        /* IN: curly brace level */
      int parlev;               /* IN: parenthesis level */
      bool *is_func_or_var;     /* OUT: function or variable found */
 {
-  enum sym_type toktype = C_symtype (str, len, c_ext);
+  /* When structdef is stagseen, scolonseen, or snone with cblev > 0,
+     structtype is the type of the preceding struct-like keyword, and
+     structcblev is the curly brace level where it has been seen. */
+  static enum sym_type structtype;
+  static int structcblev;
+  static enum sym_type toktype;
+
+
+  toktype = C_symtype (str, len, *c_extp);
 
   /*
    * Advance the definedef state machine.
@@ -2268,6 +2433,11 @@ consider_token (str, len, c, c_ext, cblev, parlev, is_func_or_var)
     {
     case dnone:
       /* We're not on a preprocessor line. */
+      if (toktype == st_C_gnumacro)
+       {
+         fvdef = fdefunkey;
+         return FALSE;
+       }
       break;
     case dsharpseen:
       if (toktype == st_C_define)
@@ -2316,17 +2486,25 @@ consider_token (str, len, c, c_ext, cblev, parlev, is_func_or_var)
        {
        case st_none:
        case st_C_typespec:
+       case st_C_class:
        case st_C_struct:
        case st_C_enum:
          typdef = ttypeseen;
          break;
        }
-      /* Do not return here, so the structdef stuff has a chance. */
+      break;
+    case ttypeseen:
+      if (structdef == snone && fvdef == fvnone)
+       {
+         fvdef = fvnameseen;
+         return TRUE;
+       }
       break;
     case tend:
       switch (toktype)
        {
        case st_C_typespec:
+       case st_C_class:
        case st_C_struct:
        case st_C_enum:
          return FALSE;
@@ -2335,11 +2513,6 @@ consider_token (str, len, c, c_ext, cblev, parlev, is_func_or_var)
     }
 
   /*
-   * This structdef business is currently only invoked when cblev==0.
-   * It should be recursively invoked whatever the curly brace level,
-   * and a stack of states kept, to allow for definitions of structs
-   * within structs.
-   *
    * This structdef business is NOT invoked when we are ctags and the
    * file is plain C.  This is because a struct tag may have the same
    * name as another tag, and this loses with ctags.
@@ -2350,25 +2523,29 @@ consider_token (str, len, c, c_ext, cblev, parlev, is_func_or_var)
       if (structdef == stagseen)
         structdef = scolonseen;
       return FALSE;
+    case st_C_class:
+      if (cblev == 0
+         && (*c_extp & C_AUTO) /* automatic detection of C++ language */
+         && definedef == dnone && structdef == snone
+         && typdef == tnone && fvdef == fvnone)
+       *c_extp = (*c_extp | C_PLPL) & ~C_AUTO;
+      /* FALLTHRU */
     case st_C_struct:
     case st_C_enum:
-      if (typdef == tkeyseen
-         || (typedefs_and_cplusplus && cblev == 0 && structdef == snone))
+      if (parlev == 0
+         && fvdef != vignore
+         && (typdef == tkeyseen
+             || (typedefs_or_cplusplus && structdef == snone)))
        {
          structdef = skeyseen;
          structtype = toktype;
+         structcblev = cblev;
        }
       return FALSE;
     }
 
   if (structdef == skeyseen)
     {
-      /* Save the tag for struct/union/class, for functions and variables
-        that may be defined inside. */
-      if (structtype == st_C_struct)
-       structtag = savenstr (str, len);
-      else
-       structtag = "<enum>";
       structdef = stagseen;
       return TRUE;
     }
@@ -2376,34 +2553,6 @@ consider_token (str, len, c, c_ext, cblev, parlev, is_func_or_var)
   if (typdef != tnone)
     definedef = dnone;
 
-  /* Detect GNU macros.
-
-     Writers of emacs code are recommended to put the
-     first two args of a DEFUN on the same line.
-
-      The DEFUN macro, used in emacs C source code, has a first arg
-     that is a string (the lisp function name), and a second arg that
-     is a C function name.  Since etags skips strings, the second arg
-     is tagged.  This is unfortunate, as it would be better to tag the
-     first arg.  The simplest way to deal with this problem would be
-     to name the tag with a name built from the function name, by
-     removing the initial 'F' character and substituting '-' for '_'.
-     Anyway, this assumes that the conventions of naming lisp
-     functions will never change.  Currently, this method is not
-     implemented. */
-  if (definedef == dnone && toktype == st_C_gnumacro)
-    {
-      next_token_is_func = TRUE;
-      return FALSE;
-    }
-  if (next_token_is_func)
-    {
-      next_token_is_func = FALSE;
-      fvdef = fignore;
-      *is_func_or_var = TRUE;
-      return TRUE;
-    }
-
   /* Detect Objective C constructs. */
   switch (objdef)
     {
@@ -2439,11 +2588,9 @@ consider_token (str, len, c, c_ext, cblev, parlev, is_func_or_var)
       if (parlev == 0)
        {
          objdef = omethodtag;
-         methodlen = len;
-         grow_linebuffer (&token_name, methodlen + 1);
+         linebuffer_setlen (&token_name, len);
          strncpy (token_name.buffer, str, len);
-         token_name.buffer[methodlen] = '\0';
-         token_name.len = methodlen;
+         token_name.buffer[len] = '\0';
          return TRUE;
        }
       return FALSE;
@@ -2455,10 +2602,8 @@ consider_token (str, len, c, c_ext, cblev, parlev, is_func_or_var)
       if (parlev == 0)
        {
          objdef = omethodtag;
-         methodlen += len;
-         grow_linebuffer (&token_name, methodlen + 1);
+         linebuffer_setlen (&token_name, token_name.len + len);
          strncat (token_name.buffer, str, len);
-         token_name.len = methodlen;
          return TRUE;
        }
       return FALSE;
@@ -2495,16 +2640,33 @@ consider_token (str, len, c, c_ext, cblev, parlev, is_func_or_var)
       *is_func_or_var = TRUE;
       return TRUE;
     case st_none:
-      if ((c_ext & C_PLPL) && strneq (str+len-10, "::operator", 10))
+      if (constantypedefs
+         && structdef == snone
+         && structtype == st_C_enum && cblev > structcblev)
+       return TRUE;            /* enum constant */
+      switch (fvdef)
        {
-         fvdef = foperator;
+       case fdefunkey:
+         if (cblev > 0)
+           break;
+         fvdef = fdefunname;   /* GNU macro */
          *is_func_or_var = TRUE;
          return TRUE;
-       }
-      if (constantypedefs && structdef == sinbody && structtype == st_C_enum)
-       return TRUE;
-      if (fvdef == fvnone)
-       {
+       case fvnone:
+         if ((strneq (str, "asm", 3) && endtoken (str[3]))
+             || (strneq (str, "__asm__", 7) && endtoken (str[7])))
+           {
+             fvdef = vignore;
+             return FALSE;
+           }
+         if ((*c_extp & C_PLPL) && strneq (str+len-10, "::operator", 10))
+           {
+             fvdef = foperator;
+             *is_func_or_var = TRUE;
+             return TRUE;
+           }
+         if (cblev > 0 && !instruct)
+           break;
          fvdef = fvnameseen;   /* function or variable */
          *is_func_or_var = TRUE;
          return TRUE;
@@ -2515,20 +2677,24 @@ consider_token (str, len, c, c_ext, cblev, parlev, is_func_or_var)
   return FALSE;
 }
 
+\f
 /*
- * C_entries ()
- *     This routine finds functions, variables, typedefs,
- *     #define's, enum constants and struct/union/enum definitions in
- *     C syntax and adds them to the list.
+ * C_entries often keeps pointers to tokens or lines which are older than
+ * the line currently read.  By keeping two line buffers, and switching
+ * them at end of line, it is possible to use those pointers.
  */
+struct
+{
+  long linepos;
+  linebuffer lb;
+} lbs[2];
+
 #define current_lb_is_new (newndx == curndx)
 #define switch_line_buffers() (curndx = 1 - curndx)
 
 #define curlb (lbs[curndx].lb)
-#define othlb (lbs[1-curndx].lb)
 #define newlb (lbs[newndx].lb)
 #define curlinepos (lbs[curndx].linepos)
-#define othlinepos (lbs[1-curndx].linepos)
 #define newlinepos (lbs[newndx].linepos)
 
 #define CNL_SAVE_DEFINEDEF()                                           \
@@ -2545,10 +2711,10 @@ do {                                                                    \
 #define CNL()                                                          \
 do {                                                                   \
   CNL_SAVE_DEFINEDEF();                                                        \
-  if (savetok.valid)                                                   \
+  if (savetoken.valid)                                                 \
     {                                                                  \
-      tok = savetok;                                                   \
-      savetok.valid = FALSE;                                           \
+      token = savetoken;                                               \
+      savetoken.valid = FALSE;                                         \
     }                                                                  \
   definedef = dnone;                                                   \
 } while (0)
@@ -2558,9 +2724,9 @@ static void
 make_C_tag (isfun)
      bool isfun;
 {
-  /* This function should never be called when tok.valid is FALSE, but
+  /* This function should never be called when token.valid is FALSE, but
      we must protect against invalid input or internal errors. */
-  if (tok.valid)
+  if (DEBUG || token.valid)
     {
       if (traditional_tag_style)
        {
@@ -2568,21 +2734,32 @@ make_C_tag (isfun)
             which uses the new method for naming tags (see new_pfnote). */
          char *name = NULL;
 
-         if (CTAGS || tok.named)
+         if (CTAGS || token.named)
            name = savestr (token_name.buffer);
-         pfnote (name, isfun,
-                 tok.buffer, tok.linelen, tok.lineno, tok.linepos);
+         if (DEBUG && !token.valid)
+           {
+             if (token.named)
+               name = concat (name, "##invalid##", "");
+             else
+               name = savestr ("##invalid##");
+           }
+         pfnote (name, isfun, token.line,
+                 token.offset+token.length+1, token.lineno, token.linepos);
        }
       else
-       new_pfnote (token_name.buffer, token_name.len, isfun,
-                   tok.buffer, tok.linelen, tok.lineno, tok.linepos);
-      tok.valid = FALSE;
+       new_pfnote (token_name.buffer, token_name.len, isfun, token.line,
+                   token.offset+token.length+1, token.lineno, token.linepos);
+      token.valid = FALSE;
     }
-  else if (DEBUG)
-    abort ();
 }
 
 
+/*
+ * C_entries ()
+ *     This routine finds functions, variables, typedefs,
+ *     #define's, enum constants and struct/union/enum definitions in
+ *     C syntax and adds them to the list.
+ */
 static void
 C_entries (c_ext, inf)
      int c_ext;                        /* extension of C */
@@ -2597,10 +2774,23 @@ C_entries (c_ext, inf)
   int qlen;                    /* length of qualifier */
   int cblev;                   /* current curly brace level */
   int parlev;                  /* current parenthesis level */
+  int typdefcblev;             /* cblev where a typedef struct body begun */
   bool incomm, inquote, inchar, quotednl, midtoken;
-  bool purec, cplpl, cjava;
-  token savetok;               /* token saved during preprocessor handling */
+  bool cplpl, cjava;
+  bool yacc_rules;             /* in the rules part of a yacc file */
+  struct tok savetoken;                /* token saved during preprocessor handling */
+
 
+  initbuffer (&token_name);
+  initbuffer (&lbs[0].lb);
+  initbuffer (&lbs[1].lb);
+  if (cstack.size == 0)
+    {
+      cstack.size = (DEBUG) ? 1 : 4;
+      cstack.nl = 0;
+      cstack.cname = xnew (cstack.size, char *);
+      cstack.cblev = xnew (cstack.size, int);
+    }
 
   tokoff = toklen = 0;         /* keep compiler quiet */
   curndx = newndx = 0;
@@ -2611,12 +2801,11 @@ C_entries (c_ext, inf)
 
   fvdef = fvnone; fvextern = FALSE; typdef = tnone;
   structdef = snone; definedef = dnone; objdef = onone;
-  next_token_is_func = yacc_rules = FALSE;
+  yacc_rules = FALSE;
   midtoken = inquote = inchar = incomm = quotednl = FALSE;
-  tok.valid = savetok.valid = FALSE;
+  token.valid = savetoken.valid = FALSE;
   cblev = 0;
   parlev = 0;
-  purec = !(c_ext & ~YACC);    /* no extensions (apart from possibly yacc) */
   cplpl = (c_ext & C_PLPL) == C_PLPL;
   cjava = (c_ext & C_JAVA) == C_JAVA;
   if (cjava)
@@ -2624,6 +2813,7 @@ C_entries (c_ext, inf)
   else
     { qualifier = "::"; qlen = 2; }
 
+
   while (!feof (inf))
     {
       c = *lp++;
@@ -2694,8 +2884,15 @@ C_entries (c_ext, inf)
          {
          case '"':
            inquote = TRUE;
-           if (fvdef != finlist && fvdef != fignore && fvdef !=vignore)
+           switch (fvdef)
              {
+             case fdefunkey:
+             case fstartlist:
+             case finlist:
+             case fignore:
+             case vignore:
+               break;
+             default:
                fvextern = FALSE;
                fvdef = fvnone;
              }
@@ -2725,11 +2922,10 @@ C_entries (c_ext, inf)
          case '%':
            if ((c_ext & YACC) && *lp == '%')
              {
-               /* entering or exiting rules section in yacc file */
+               /* Entering or exiting rules section in yacc file. */
                lp++;
                definedef = dnone; fvdef = fvnone; fvextern = FALSE;
                typdef = tnone; structdef = snone;
-               next_token_is_func = FALSE;
                midtoken = inquote = inchar = incomm = quotednl = FALSE;
                cblev = 0;
                yacc_rules = !yacc_rules;
@@ -2765,21 +2961,18 @@ C_entries (c_ext, inf)
          } /* switch (c) */
 
 
-      /* Consider token only if some complicated conditions are satisfied. */
-      if ((definedef != dnone
-          || (cblev == 0 && structdef != scolonseen)
-          || (cblev == 1 && cplpl && structdef == sinbody)
-          || (structdef == sinbody && purec))
-         && typdef != tignore
+      /* Consider token only if some involved conditions are satisfied. */
+      if (typdef != tignore
          && definedef != dignorerest
-         && fvdef != finlist)
+         && fvdef != finlist
+         && structdef != sintemplate
+         && (definedef != dnone
+             || structdef != scolonseen))
        {
          if (midtoken)
            {
              if (endtoken (c))
                {
-                 bool funorvar = FALSE;
-
                  if (c == ':' && cplpl && *lp == ':' && begtoken (lp[1]))
                    {
                      /*
@@ -2790,13 +2983,15 @@ C_entries (c_ext, inf)
                      lp += 2;
                      toklen += 2;
                      c = lp[-1];
-                     goto intok;
+                     goto still_in_token;
                    }
                  else
                    {
+                     bool funorvar = FALSE;
+
                      if (yacc_rules
                          || consider_token (newlb.buffer + tokoff, toklen, c,
-                                            c_ext, cblev, parlev, &funorvar))
+                                            &c_ext, cblev, parlev, &funorvar))
                        {
                          if (fvdef == foperator)
                            {
@@ -2810,82 +3005,107 @@ C_entries (c_ext, inf)
                              c = *lp++;
                              toklen += lp - oldlp;
                            }
-                         tok.named = FALSE;
-                         if (!purec
-                             && funorvar
-                             && definedef == dnone
-                             && structdef == sinbody)
-                           /* function or var defined in C++ class body */
+                         token.named = FALSE;
+                         if ((c_ext & C_EXT)   /* not pure C */
+                             && nestlev > 0 && definedef == dnone)
+                           /* in struct body */
                            {
-                             int len = strlen (structtag) + qlen + toklen;
-                             grow_linebuffer (&token_name, len + 1);
-                             strcpy (token_name.buffer, structtag);
+                              write_classname (&token_name, qualifier);
+                             linebuffer_setlen (&token_name,
+                                                token_name.len+qlen+toklen);
                              strcat (token_name.buffer, qualifier);
                              strncat (token_name.buffer,
                                       newlb.buffer + tokoff, toklen);
-                             token_name.len = len;
-                             tok.named = TRUE;
+                             token.named = TRUE;
                            }
                          else if (objdef == ocatseen)
                            /* Objective C category */
                            {
                              int len = strlen (objtag) + 2 + toklen;
-                             grow_linebuffer (&token_name, len + 1);
+                             linebuffer_setlen (&token_name, len);
                              strcpy (token_name.buffer, objtag);
                              strcat (token_name.buffer, "(");
                              strncat (token_name.buffer,
                                       newlb.buffer + tokoff, toklen);
                              strcat (token_name.buffer, ")");
-                             token_name.len = len;
-                             tok.named = TRUE;
+                             token.named = TRUE;
                            }
                          else if (objdef == omethodtag
                                   || objdef == omethodparm)
                            /* Objective C method */
                            {
-                             tok.named = TRUE;
+                             token.named = TRUE;
+                           }
+                         else if (fvdef == fdefunname)
+                           /* GNU DEFUN and similar macros */
+                           {
+                             bool defun = (newlb.buffer[tokoff] == 'F');
+                             int off = tokoff;
+                             int len = toklen;
+
+                             /* Rewrite the tag so that emacs lisp DEFUNs
+                                can be found by their elisp name */
+                             if (defun)
+                               {
+                                 off += 1;
+                                 len -= 1;
+                               }
+                             len = toklen;
+                             linebuffer_setlen (&token_name, len);
+                             strncpy (token_name.buffer,
+                                      newlb.buffer + off, len);
+                             token_name.buffer[len] = '\0';
+                             if (defun)
+                               while (--len >= 0)
+                                 if (token_name.buffer[len] == '_')
+                                   token_name.buffer[len] = '-';
+                             token.named = defun;
                            }
                          else
                            {
-                             grow_linebuffer (&token_name, toklen + 1);
+                             linebuffer_setlen (&token_name, toklen);
                              strncpy (token_name.buffer,
                                       newlb.buffer + tokoff, toklen);
                              token_name.buffer[toklen] = '\0';
-                             token_name.len = toklen;
                              /* Name macros and members. */
-                             tok.named = (structdef == stagseen
-                                          || typdef == ttypeseen
-                                          || typdef == tend
-                                          || (funorvar
-                                              && definedef == dignorerest)
-                                          || (funorvar
-                                              && definedef == dnone
-                                              && structdef == sinbody));
+                             token.named = (structdef == stagseen
+                                            || typdef == ttypeseen
+                                            || typdef == tend
+                                            || (funorvar
+                                                && definedef == dignorerest)
+                                            || (funorvar
+                                                && definedef == dnone
+                                                && structdef == snone
+                                                && cblev > 0));
                            }
-                         tok.lineno = lineno;
-                         tok.linelen = tokoff + toklen + 1;
-                         tok.buffer = newlb.buffer;
-                         tok.linepos = newlinepos;
-                         tok.valid = TRUE;
+                         token.lineno = lineno;
+                         token.offset = tokoff;
+                         token.length = toklen;
+                         token.line = newlb.buffer;
+                         token.linepos = newlinepos;
+                         token.valid = TRUE;
 
                          if (definedef == dnone
                              && (fvdef == fvnameseen
                                  || fvdef == foperator
                                  || structdef == stagseen
                                  || typdef == tend
+                                 || typdef == ttypeseen
                                  || objdef != onone))
                            {
                              if (current_lb_is_new)
                                switch_line_buffers ();
                            }
-                         else
+                         else if (definedef != dnone
+                                  || fvdef == fdefunname
+                                  || instruct)
                            make_C_tag (funorvar);
                        }
                      midtoken = FALSE;
                    }
                } /* if (endtoken (c)) */
              else if (intoken (c))
-               intok:
+               still_in_token:
                {
                  toklen++;
                  continue;
@@ -2910,10 +3130,13 @@ C_entries (c_ext, inf)
                      break;
                    }
                  if (structdef == stagseen && !cjava)
-                   structdef = snone;
+                   {
+                     popclass_above (cblev);
+                     structdef = snone;
+                   }
                  break;
                case dsharpseen:
-                 savetok = tok;
+                 savetoken = token;
                }
              if (!yacc_rules || lp == newlb.buffer + 1)
                {
@@ -2931,6 +3154,11 @@ C_entries (c_ext, inf)
       switch (c)
        {
        case ':':
+         if (yacc_rules && token.offset == 0 && token.valid)
+           {
+             make_C_tag (FALSE); /* a yacc function */
+             break;
+           }
          if (definedef != dnone)
            break;
          switch (objdef)
@@ -2942,65 +3170,62 @@ C_entries (c_ext, inf)
            case omethodtag:
            case omethodparm:
              objdef = omethodcolon;
-             methodlen += 1;
-             grow_linebuffer (&token_name, methodlen + 1);
+             linebuffer_setlen (&token_name, token_name.len + 1);
              strcat (token_name.buffer, ":");
-             token_name.len = methodlen;
              break;
            }
          if (structdef == stagseen)
            structdef = scolonseen;
-         else
-           switch (fvdef)
-             {
-             case fvnameseen:
-               if (yacc_rules)
-                 {
-                   make_C_tag (FALSE); /* a yacc function */
-                   fvdef = fignore;
-                 }
-               break;
-             case fstartlist:
-               fvextern = FALSE;
-               fvdef = fvnone;
-               break;
-             }
          break;
        case ';':
          if (definedef != dnone)
            break;
-         if (cblev == 0)
-           switch (typdef)
-             {
-             case tend:
-               make_C_tag (FALSE); /* a typedef */
-               /* FALLTHRU */
-             default:
-               typdef = tnone;
-             }
-         switch (fvdef)
+         switch (typdef)
            {
-           case fignore:
-             break;
-           case fvnameseen:
-             if ((members && cblev == 1)
-                 || (globals && cblev == 0 && (!fvextern || declarations)))
-               make_C_tag (FALSE); /* a variable */
-             fvextern = FALSE;
+           case tend:
+           case ttypeseen:
+             make_C_tag (FALSE); /* a typedef */
+             typdef = tnone;
              fvdef = fvnone;
-             tok.valid = FALSE;
              break;
-           case flistseen:
-             if (declarations && (cblev == 0 || cblev == 1))
-               make_C_tag (TRUE); /* a function declaration */
+           case tnone:
+           case tinbody:
+           case tignore:
+             switch (fvdef)
+               {
+               case fignore:
+                 if (typdef == tignore)
+                   fvdef = fvnone;
+                 break;
+               case fvnameseen:
+                 if ((globals && cblev == 0 && (!fvextern || declarations))
+                     || (members && instruct))
+                   make_C_tag (FALSE); /* a variable */
+                 fvextern = FALSE;
+                 fvdef = fvnone;
+                 token.valid = FALSE;
+                 break;
+               case flistseen:
+                 if ((declarations && typdef == tnone && !instruct)
+                     || (members && typdef != tignore && instruct))
+                   make_C_tag (TRUE);  /* a function declaration */
+                 /* FALLTHRU */
+               default:
+                 fvextern = FALSE;
+                 fvdef = fvnone;
+                 if (declarations
+                     && structdef == stagseen && (c_ext & C_PLPL))
+                   make_C_tag (FALSE); /* forward declaration */
+                 else
+                   /* The following instruction invalidates the token.
+                      Probably the token should be invalidated in all other
+                      cases where some state machine is reset prematurely. */
+                   token.valid = FALSE;
+               } /* switch (fvdef) */
              /* FALLTHRU */
            default:
-             fvextern = FALSE;
-             fvdef = fvnone;
-             /* The following instruction invalidates the token.
-                Probably the token should be invalidated in all
-                other cases  where some state machine is reset. */
-             tok.valid = FALSE;
+             if (!instruct)
+               typdef = tnone;
            }
          if (structdef == stagseen)
            structdef = snone;
@@ -3018,15 +3243,31 @@ C_entries (c_ext, inf)
            }
          switch (fvdef)
            {
+           case fdefunkey:
            case foperator:
+           case fstartlist:
            case finlist:
            case fignore:
            case vignore:
              break;
-           case fvnameseen:
-             if ((members && cblev == 1)
-                 || (globals && cblev == 0 && (!fvextern || declarations)))
-               make_C_tag (FALSE); /* a variable */
+           case fdefunname:
+             fvdef = fignore;
+             break;
+           case fvnameseen:    /* a variable */
+             if ((globals && cblev == 0 && (!fvextern || declarations))
+                 || (members && instruct))
+               make_C_tag (FALSE);
+             break;
+           case flistseen:     /* a function */
+             if ((declarations && typdef == tnone && !instruct)
+                 || (members && typdef != tignore && instruct))
+               {
+                 make_C_tag (TRUE); /* a function declaration */
+                 fvdef = fvnameseen;
+               }
+             else if (!declarations)
+               fvdef = fvnone;
+             token.valid = FALSE;
              break;
            default:
              fvdef = fvnone;
@@ -3037,29 +3278,35 @@ C_entries (c_ext, inf)
        case '[':
          if (definedef != dnone)
            break;
-         if (cblev == 0 && typdef == tend)
+         if (structdef == stagseen)
+           structdef = snone;
+         switch (typdef)
            {
+           case ttypeseen:
+           case tend:
              typdef = tignore;
              make_C_tag (FALSE);       /* a typedef */
              break;
-           }
-         switch (fvdef)
-           {
-           case foperator:
-           case finlist:
-           case fignore:
-           case vignore:
+           case tnone:
+           case tinbody:
+             switch (fvdef)
+               {
+               case foperator:
+               case finlist:
+               case fignore:
+               case vignore:
+                 break;
+               case fvnameseen:
+                 if ((members && cblev == 1)
+                     || (globals && cblev == 0
+                         && (!fvextern || declarations)))
+                   make_C_tag (FALSE); /* a variable */
+                 /* FALLTHRU */
+               default:
+                 fvdef = fvnone;
+               }
              break;
-           case fvnameseen:
-             if ((members && cblev == 1)
-                 || (globals && cblev == 0 && (!fvextern || declarations)))
-               make_C_tag (FALSE); /* a variable */
-             /* FALLTHRU */
-           default:
-             fvdef = fvnone;
            }
-         if (structdef == stagseen)
-           structdef = snone;
          break;
        case '(':
          if (definedef != dnone)
@@ -3070,14 +3317,15 @@ C_entries (c_ext, inf)
            {
            case fvnameseen:
              if (typdef == ttypeseen
-                 && tok.valid
                  && *lp != '*'
-                 && structdef != sinbody)
+                 && !instruct)
                {
                  /* This handles constructs like:
                     typedef void OperatorFun (int fun); */
                  make_C_tag (FALSE);
                  typdef = tignore;
+                 fvdef = fignore;
+                 break;
                }
              /* FALLTHRU */
            case foperator:
@@ -3106,7 +3354,9 @@ C_entries (c_ext, inf)
                  fvdef = flistseen;
                  break;
                }
-             if (cblev == 0 && (typdef == tend))
+             if (!instruct
+                 && (typdef == tend
+                     || typdef == ttypeseen))
                {
                  typdef = tignore;
                  make_C_tag (FALSE); /* a typedef */
@@ -3119,23 +3369,14 @@ C_entries (c_ext, inf)
          if (definedef != dnone)
            break;
          if (typdef == ttypeseen)
-           typdef = tinbody;
-         switch (structdef)
            {
-           case skeyseen:      /* unnamed struct */
-             structdef = sinbody;
-             structtag = "_anonymous_";
-             break;
-           case stagseen:
-           case scolonseen:    /* named struct */
-             structdef = sinbody;
-             make_C_tag (FALSE);       /* a struct */
-             break;
+             typdefcblev = cblev;
+             typdef = tinbody;
            }
          switch (fvdef)
            {
            case flistseen:
-             make_C_tag (TRUE); /* a function */
+             make_C_tag (TRUE);    /* a function */
              /* FALLTHRU */
            case fignore:
              fvdef = fvnone;
@@ -3154,10 +3395,24 @@ C_entries (c_ext, inf)
                  break;
                default:
                  /* Neutralize `extern "C" {' grot. */
-                 if (cblev == 0 && structdef == snone && typdef == tnone)
+                 if (cblev == 0 && structdef == snone && nestlev == 0
+                     && typdef == tnone)
                    cblev = -1;
                }
            }
+         switch (structdef)
+           {
+           case skeyseen:         /* unnamed struct */
+             pushclass_above (cblev, NULL, 0);
+             structdef = snone;
+             break;
+           case stagseen:         /* named struct or enum */
+           case scolonseen:       /* a class */
+             pushclass_above (cblev, token.line+token.offset, token.length);
+             structdef = snone;
+             make_C_tag (FALSE);  /* a struct or enum */
+             break;
+           }
          cblev++;
          break;
        case '*':
@@ -3176,20 +3431,12 @@ C_entries (c_ext, inf)
            }
          else if (cblev > 0)
            cblev--;
-         if (cblev == 0)
+         popclass_above (cblev);
+         structdef = snone;
+         if (typdef == tinbody && cblev <= typdefcblev)
            {
-             if (typdef == tinbody)
-               typdef = tend;
-             /* Memory leakage here: the string pointed by structtag is
-                never released, because I fear to miss something and
-                break things while freeing the area.  The amount of
-                memory leaked here is the sum of the lengths of the
-                struct tags.
-             if (structdef == sinbody)
-               free (structtag); */
-
-             structdef = snone;
-             structtag = "<error>";
+             assert (cblev == typdefcblev);
+             typdef = tend;
            }
          break;
        case '=':
@@ -3211,6 +3458,20 @@ C_entries (c_ext, inf)
              fvdef = vignore;
            }
          break;
+       case '<':
+         if (cplpl && structdef == stagseen)
+           {
+             structdef = sintemplate;
+             break;
+           }
+         goto resetfvdef;
+       case '>':
+         if (structdef == sintemplate)
+           {
+             structdef = stagseen;
+             break;
+           }
+         goto resetfvdef;
        case '+':
        case '-':
          if (objdef == oinbody && cblev == 0)
@@ -3219,8 +3480,9 @@ C_entries (c_ext, inf)
              break;
            }
          /* FALLTHRU */
+       resetfvdef:
        case '#': case '~': case '&': case '%': case '/': case '|':
-       case '^': case '!': case '<': case '>': case '.': case '?': case ']':
+       case '^': case '!': case '.': case '?': case ']':
          if (definedef != dnone)
            break;
          /* These surely cannot follow a function tag in C. */
@@ -3250,6 +3512,10 @@ C_entries (c_ext, inf)
        } /* switch (c) */
 
     } /* while not eof */
+
+  free (token_name.buffer);
+  free (lbs[0].lb.buffer);
+  free (lbs[1].lb.buffer);
 }
 
 /*
@@ -3260,10 +3526,10 @@ static void
 default_C_entries (inf)
      FILE *inf;
 {
-  C_entries (cplusplus ? C_PLPL : 0, inf);
+  C_entries (cplusplus ? C_PLPL : C_AUTO, inf);
 }
 
-/* Always do plain ANSI C. */
+/* Always do plain C. */
 static void
 plain_C_entries (inf)
      FILE *inf;
@@ -3302,6 +3568,7 @@ Yacc_entries (inf)
 {
   C_entries (YACC, inf);
 }
+
 \f
 /* A useful macro. */
 #define LOOP_ON_INPUT_LINES(file_pointer, line_buffer, char_pointer)   \
@@ -3328,6 +3595,7 @@ just_read_file (inf)
   LOOP_ON_INPUT_LINES (inf, lb, dummy)
     continue;
 }
+
 \f
 /* Fortran parsing */
 
@@ -3364,14 +3632,14 @@ takeprec ()
       dbp += 3;
       return;
     }
-  if (!isdigit ((unsigned char) *dbp))
+  if (!ISDIGIT (*dbp))
     {
       --dbp;                   /* force failure */
       return;
     }
   do
     dbp++;
-  while (isdigit ((unsigned char) *dbp));
+  while (ISDIGIT (*dbp));
 }
 
 static void
@@ -3392,7 +3660,7 @@ getit (inf)
       dbp += 6;
       dbp = skip_spaces (dbp);
     }
-  if (!isalpha ((unsigned char) *dbp) && *dbp != '_' && *dbp != '$')
+  if (!ISALPHA (*dbp) && *dbp != '_' && *dbp != '$')
     return;
   for (cp = dbp + 1; *cp != '\0' && intoken (*cp); cp++)
     continue;
@@ -3473,10 +3741,11 @@ Fortran_functions (inf)
        }
     }
 }
+
 \f
 /*
- * Philippe Waroquiers <philippe.waroquiers@eurocontrol.be>, 1998-04-24
  * Ada parsing
+ * Philippe Waroquiers <philippe.waroquiers@eurocontrol.be> (1998)
  */
 
 static void adagetit P_((FILE *, char *));
@@ -3533,7 +3802,7 @@ adagetit (inf, name_qualifier)
          dbp = skip_spaces (dbp);
          for (cp = dbp;
               (*cp != '\0'
-               && (isalpha ((unsigned char) *cp) || isdigit ((unsigned char) *cp) || *cp == '_' || *cp == '.'));
+               && (ISALPHA (*cp) || ISDIGIT (*cp) || *cp == '_' || *cp == '.'));
               cp++)
            continue;
          if (cp == dbp)
@@ -3641,6 +3910,7 @@ Ada_funcs (inf)
        } /* advance char */
     } /* advance line */
 }
+
 \f
 /*
  * Bob Weiner, Motorola Inc., 4/3/94
@@ -3657,11 +3927,11 @@ Asm_labels (inf)
     {
       /* If first char is alphabetic or one of [_.$], test for colon
         following identifier. */
-      if (isalpha ((unsigned char) *cp) || *cp == '_' || *cp == '.' || *cp == '$')
+      if (ISALPHA (*cp) || *cp == '_' || *cp == '.' || *cp == '$')
        {
          /* Read past label. */
          cp++;
-         while (isalnum ((unsigned char) *cp) || *cp == '_' || *cp == '.' || *cp == '$')
+         while (ISALNUM (*cp) || *cp == '_' || *cp == '.' || *cp == '$')
            cp++;
          if (*cp == ':' || iswhite (*cp))
            {
@@ -3672,12 +3942,14 @@ Asm_labels (inf)
        }
     }
 }
+
 \f
 /*
- * Perl support by Bart Robinson <lomew@cs.utah.edu>
- *              enhanced by Michael Ernst <mernst@alum.mit.edu>
+ * Perl support
  * Perl sub names: look for /^sub[ \t\n]+[^ \t\n{]+/
  * Perl variable names: /^(my|local).../
+ * Bart Robinson <lomew@cs.utah.edu> (1995)
+ * Michael Ernst <mernst@alum.mit.edu> (1997)
  */
 static void
 Perl_functions (inf)
@@ -3721,7 +3993,7 @@ Perl_functions (inf)
          if (*cp == '$' || *cp == '@' || *cp == '%')
            {
              char* varstart = ++cp;
-             while (isalnum ((unsigned char) *cp) || *cp == '_')
+             while (ISALNUM (*cp) || *cp == '_')
                cp++;
              varname = savenstr (varstart, cp-varstart);
            }
@@ -3740,10 +4012,12 @@ Perl_functions (inf)
        }
     }
 }
+
 \f
 /*
- * Python support by Eric S. Raymond <esr@thyrsus.com>
+ * Python support
  * Look for /^def[ \t\n]+[^ \t\n(:]+/ or /^class[ \t\n]+[^ \t\n(:]+/
+ * Eric S. Raymond <esr@thyrsus.com> (1997)
  */
 static void
 Python_functions (inf)
@@ -3779,6 +4053,7 @@ Python_functions (inf)
        }
     }
 }
+
 \f
 /* Idea by Corny de Souza
  * Cobol tag functions
@@ -3798,16 +4073,40 @@ Cobol_paragraphs (inf)
       bp += 8;
 
       /* If eoln, compiler option or comment ignore whole line. */
-      if (bp[-1] != ' ' || !isalnum ((unsigned char) bp[0]))
+      if (bp[-1] != ' ' || !ISALNUM (bp[0]))
         continue;
 
-      for (ep = bp; isalnum ((unsigned char) *ep) || *ep == '-'; ep++)
+      for (ep = bp; ISALNUM (*ep) || *ep == '-'; ep++)
        continue;
       if (*ep++ == '.')
        pfnote (savenstr (bp, ep-bp), TRUE,
                lb.buffer, ep - lb.buffer + 1, lineno, linecharno);
     }
 }
+
+\f
+/*
+ * Makefile support
+ * Idea by Assar Westerlund <assar@sics.se> (2001)
+ */
+static void
+Makefile_targets (inf)
+     FILE *inf;
+{
+  register char *bp;
+
+  LOOP_ON_INPUT_LINES (inf, lb, bp)
+    {
+      if (*bp == '\t' || *bp == '#')
+       continue;
+      while (*bp != '\0' && *bp != '=' && *bp != ':')
+       bp++;
+      if (*bp == ':')
+       pfnote (savenstr (lb.buffer, bp - lb.buffer), TRUE,
+               lb.buffer, bp - lb.buffer + 1, lineno, linecharno);
+    }
+}
+
 \f
 /* Added by Mosur Mohan, 4/22/88 */
 /* Pascal parsing                */
@@ -3954,7 +4253,7 @@ Pascal_functions (inf)
            continue;
 
          /* save all values for later tagging */
-         grow_linebuffer (&tline, lb.len + 1);
+         linebuffer_setlen (&tline, lb.len);
          strcpy (tline.buffer, lb.buffer);
          save_lineno = lineno;
          save_lcno = linecharno;
@@ -3990,9 +4289,10 @@ Pascal_functions (inf)
 
   free (tline.buffer);
 }
+
 \f
 /*
- * lisp tag functions
+ * Lisp tag functions
  *  look for (def or (DEF, quote or QUOTE
  */
 
@@ -4086,13 +4386,14 @@ Lisp_functions (inf)
        }
     }
 }
+
 \f
 /*
  * Postscript tag functions
  * Just look for lines where the first character is '/'
- * Richard Mlynarik <mly@adoc.xerox.com>
  * Also look at "defineps" for PSWrap
- * suggested by Masatake YAMATO <masata-y@is.aist-nara.ac.jp>
+ * Richard Mlynarik <mly@adoc.xerox.com> (1997)
+ * Ideas by Masatake Yamato <masata-y@is.aist-nara.ac.jp> (1999)
  */
 static void
 Postscript_functions (inf)
@@ -4161,6 +4462,7 @@ Scheme_functions (inf)
        }
     }
 }
+
 \f
 /* Find tags in TeX and LaTeX input files.  */
 
@@ -4194,7 +4496,7 @@ char TEX_clgrp = '}';
  * TeX/LaTeX scanning loop.
  */
 static void
-TeX_functions (inf)
+TeX_commands (inf)
      FILE *inf;
 {
   char *cp, *lasthit;
@@ -4343,6 +4645,31 @@ TEX_Token (cp)
       return i;
   return -1;
 }
+
+\f
+/* Texinfo support.  Dave Love, Mar. 2000.  */
+static void
+Texinfo_nodes (inf)
+     FILE * inf;
+{
+  char *cp, *start;
+  LOOP_ON_INPUT_LINES (inf, lb, cp)
+    {
+      if ((*cp++ == '@'
+          && *cp++ == 'n'
+          && *cp++ == 'o'
+          && *cp++ == 'd'
+          && *cp++ == 'e' && iswhite (*cp++)))
+       {
+         start = cp = skip_spaces(cp);
+         while (*cp != '\0' && *cp != ',')
+           cp++;
+         pfnote (savenstr (start, cp - start), TRUE,
+                 lb.buffer, cp - lb.buffer + 1, lineno, linecharno);
+       }
+    }
+}
+
 \f
 /*
  * Prolog support (rewritten) by Anders Lindgren, Mar. 96
@@ -4381,7 +4708,7 @@ Prolog_functions (inf)
          if (last == NULL)
            last = xnew(len + 1, char);
          else if (len + 1 > allocated)
-           last = xrnew (last, len + 1, char);
+           xrnew (last, len + 1, char);
          allocated = len + 1;
          strncpy (last, cp, len);
          last[len] = '\0';
@@ -4468,11 +4795,11 @@ prolog_atom (s, pos)
 
   origpos = pos;
 
-  if (islower((unsigned char) s[pos]) || (s[pos] == '_'))
+  if (ISLOWER(s[pos]) || (s[pos] == '_'))
     {
       /* The atom is unquoted. */
       pos++;
-      while (isalnum((unsigned char) s[pos]) || (s[pos] == '_'))
+      while (ISALNUM(s[pos]) || (s[pos] == '_'))
        {
          pos++;
        }
@@ -4508,6 +4835,7 @@ prolog_atom (s, pos)
   else
     return -1;
 }
+
 \f
 /*
  * Support for Erlang  --  Anders Lindgren, Feb 1996.
@@ -4556,7 +4884,7 @@ Erlang_functions (inf)
          if (last == NULL)
            last = xnew (len + 1, char);
          else if (len + 1 > allocated)
-           last = xrnew (last, len + 1, char);
+           xrnew (last, len + 1, char);
          allocated = len + 1;
          strncpy (last, cp, len);
          last[len] = '\0';
@@ -4649,11 +4977,11 @@ erlang_atom (s, pos)
 
   origpos = pos;
 
-  if (isalpha ((unsigned char) s[pos]) || s[pos] == '_')
+  if (ISALPHA (s[pos]) || s[pos] == '_')
     {
       /* The atom is unquoted. */
       pos++;
-      while (isalnum ((unsigned char) s[pos]) || s[pos] == '_')
+      while (ISALNUM (s[pos]) || s[pos] == '_')
        pos++;
       return pos - origpos;
     }
@@ -4685,6 +5013,7 @@ erlang_atom (s, pos)
   else
     return -1;
 }
+
 \f
 #ifdef ETAGS_REGEXPS
 
@@ -4792,7 +5121,7 @@ analyse_regex (regex_arg, ignore_case)
              return;
            }
        *cp = '\0';
-       lang = get_language_from_name (lang_name);
+       lang = get_language_from_langname (lang_name);
        if (lang == NULL)
          return;
        add_regex (cp + 1, ignore_case, lang);
@@ -4840,10 +5169,6 @@ add_regex (regexp_pattern, ignore_case, lang)
   patbuf->buffer = NULL;
   patbuf->allocated = 0;
 
-#if 0 /* useful when debugging windows quoting convention problems */
-  printf ("Compiling regex pattern: %s\n", regexp_pattern);
-#endif
-
   err = re_compile_pattern (regexp_pattern, strlen (regexp_pattern), patbuf);
   if (err != NULL)
     {
@@ -4882,7 +5207,7 @@ substitute (in, out, regs)
   for (t = etags_strchr (out, '\\');
        t != NULL;
        t = etags_strchr (t + 2, '\\'))
-    if (isdigit ((unsigned char) t[1]))
+    if (ISDIGIT (t[1]))
       {
        dig = t[1] - '0';
        diglen = regs->end[dig] - regs->start[dig];
@@ -4895,9 +5220,8 @@ substitute (in, out, regs)
   result = xnew (size + 1, char);
 
   for (t = result; *out != '\0'; out++)
-    if (*out == '\\' && isdigit ((unsigned char) *++out))
+    if (*out == '\\' && ISDIGIT (*++out))
       {
-       /* Using "dig2" satisfies my debugger.  Bleah. */
        dig = *out - '0';
        diglen = regs->end[dig] - regs->start[dig];
        strncpy (t, in + regs->start[dig], diglen);
@@ -4907,8 +5231,7 @@ substitute (in, out, regs)
       *t++ = *out;
   *t = '\0';
 
-  if (DEBUG && (t > result + size || t - result != (int)strlen (result)))
-    abort ();
+  assert (t <= result + size && t - result == (int)strlen (result));
 
   return result;
 }
@@ -4928,6 +5251,8 @@ free_patterns ()
     }
   return;
 }
+#endif /* ETAGS_REGEXPS */
+
 \f
 static void
 get_tag (bp)
@@ -4946,14 +5271,15 @@ get_tag (bp)
          lb.buffer, cp - lb.buffer + 1, lineno, linecharno);
 }
 
-#endif /* ETAGS_REGEXPS */
 /* Initialize a linebuffer for use */
 static void
 initbuffer (lbp)
      linebuffer *lbp;
 {
-  lbp->size = 200;
-  lbp->buffer = xnew (200, char);
+  lbp->size = (DEBUG) ? 3 : 200;
+  lbp->buffer = xnew (lbp->size, char);
+  lbp->buffer[0] = '\0';
+  lbp->len = 0;
 }
 
 /*
@@ -4985,7 +5311,7 @@ readline_internal (lbp, stream)
        {
          /* We're at the end of linebuffer: expand it. */
          lbp->size *= 2;
-         buffer = xrnew (buffer, lbp->size, char);
+         xrnew (buffer, lbp->size, char);
          p += buffer - lbp->buffer;
          pend = buffer + lbp->size;
          lbp->buffer = buffer;
@@ -5001,7 +5327,7 @@ readline_internal (lbp, stream)
          if (p > buffer && p[-1] == '\r')
            {
              p -= 1;
-#ifdef WIN32_NATIVE
+#ifdef DOS_NT
             /* Assume CRLF->LF translation will be performed by Emacs
                when loading this file, so CRs won't appear in the buffer.
                It would be cleaner to compensate within Emacs;
@@ -5086,6 +5412,7 @@ readline (lbp, stream)
 
   return result;
 }
+
 \f
 /*
  * Return a pointer to a space of size strlen(cp)+1 allocated
@@ -5178,7 +5505,7 @@ skip_non_spaces (cp)
 }
 
 /* Print error message and exit.  */
-static void
+void
 fatal (s1, s2)
      char *s1, *s2;
 {
@@ -5234,6 +5561,7 @@ concat (s1, s2, s3)
 
   return result;
 }
+
 \f
 /* Does the same work as the system V getcwd, but does not need to
    guess the buffer size in advance. */
@@ -5257,6 +5585,20 @@ etags_getcwd ()
   return path;
 
 #else /* not HAVE_GETCWD */
+#if MSDOS
+
+  char *p, path[MAXPATHLEN + 1]; /* Fixed size is safe on MSDOS.  */
+
+  getwd (path);
+
+  for (p = path; *p != '\0'; p++)
+    if (*p == '\\')
+      *p = '/';
+    else
+      *p = lowcase (*p);
+
+  return strdup (path);
+#else /* not MSDOS */
   linebuffer path;
   FILE *pipe;
 
@@ -5267,6 +5609,7 @@ etags_getcwd ()
   pclose (pipe);
 
   return path.buffer;
+#endif /* not MSDOS */
 #endif /* not HAVE_GETCWD */
 }
 
@@ -5286,7 +5629,7 @@ relative_filename (file, dir)
   while (*fp++ == *dp++)
     continue;
   fp--, dp--;                  /* back to the first differing char */
-#ifdef WIN32_NATIVE
+#ifdef DOS_NT
   if (fp == afn && afn[0] != '/') /* cannot build a relative name */
     return afn;
 #endif
@@ -5320,7 +5663,7 @@ absolute_filename (file, dir)
 
   if (filename_is_absolute (file))
     res = savestr (file);
-#ifdef WIN32_NATIVE
+#ifdef DOS_NT
   /* We don't support non-absolute file names with a drive
      letter, like `d:NAME' (it's too much hassle).  */
   else if (file[1] == ':')
@@ -5344,8 +5687,8 @@ absolute_filename (file, dir)
              while (cp >= res && !filename_is_absolute (cp));
              if (cp < res)
                cp = slashp;    /* the absolute name begins with "/.." */
-#ifdef WIN32_NATIVE
-             /* Under Windows we get `d:/NAME' as absolute
+#ifdef DOS_NT
+             /* Under MSDOS and NT we get `d:/NAME' as absolute
                 file name, so the luser could say `d:/../NAME'.
                 We silently treat this as `d:/NAME'.  */
              else if (cp[0] != '/')
@@ -5400,8 +5743,8 @@ filename_is_absolute (fn)
      char *fn;
 {
   return (fn[0] == '/'
-#ifdef WIN32_NATIVE
-         || (isalpha(fn[0]) && fn[1] == ':' && fn[2] == '/')
+#ifdef DOS_NT
+         || (ISALPHA(fn[0]) && fn[1] == ':' && fn[2] == '/')
 #endif
          );
 }
@@ -5411,10 +5754,10 @@ static void
 canonicalize_filename (fn)
      register char *fn;
 {
-#ifdef WIN32_NATIVE
+#ifdef DOS_NT
   /* Canonicalize drive letter case.  */
-  if (islower (fn[0]) && fn[1] == ':')
-    fn[0] = toupper (fn[0]);
+  if (fn[0] != '\0' && fn[1] == ':' && ISLOWER (fn[0]))
+    fn[0] = upcase (fn[0]);
   /* Convert backslashes to slashes.  */
   for (; *fn != '\0'; fn++)
     if (*fn == '\\')
@@ -5425,19 +5768,22 @@ canonicalize_filename (fn)
 #endif
 }
 
-/* Increase the size of a linebuffer. */
+/* Set the minimum size of a string contained in a linebuffer. */
 static void
-grow_linebuffer (lbp, toksize)
+linebuffer_setlen (lbp, toksize)
      linebuffer *lbp;
      int toksize;
 {
-  while (lbp->size < toksize)
-    lbp->size *= 2;
-  lbp->buffer = xrnew (lbp->buffer, lbp->size, char);
+  while (lbp->size <= toksize)
+    {
+      lbp->size *= 2;
+      xrnew (lbp->buffer, lbp->size, char);
+    }
+  lbp->len = toksize;
 }
 
 /* Like malloc but get fatal error if memory is exhausted.  */
-static long *
+long *
 xmalloc (size)
      unsigned int size;
 {
@@ -5447,7 +5793,7 @@ xmalloc (size)
   return result;
 }
 
-static long *
+long *
 xrealloc (ptr, size)
      char *ptr;
      unsigned int size;
index 9901186..d4c1630 100644 (file)
@@ -103,7 +103,7 @@ tell_emacs_to_resume (int sig)
   signal(SIGCONT, tell_emacs_to_resume);
 #endif
 
-  connect_type = make_connection (NULL, (u_short) 0, &s);
+  connect_type = make_connection (NULL, 0, &s);
 
   sprintf(buffer,"(gnuserv-eval '(resume-pid-console %d))", (int)getpid());
   send_string(s, buffer);
@@ -156,11 +156,11 @@ get_current_working_directory (void)
 {
   if (cp == NULL)
     {                          /* haven't calculated it yet */
-#ifdef BSD
-      if (getwd (cwd) == 0)
-#else /* !BSD */
+#ifdef HAVE_GETCWD
       if (getcwd (cwd,MAXPATHLEN) == NULL)
-#endif /* !BSD */
+#else
+      if (getwd (cwd) == 0)
+#endif /* HAVE_GETCWD */
        {
          perror (progname);
          fprintf (stderr, "%s: unable to get current working directory\n",
@@ -337,7 +337,7 @@ main (int argc, char *argv[])
   char *path;
   int rflg = 0;                        /* pathname given on cmdline */
   char *portarg;
-  u_short port = 0;            /* port to server */
+  unsigned short port = 0;     /* port to server */
 #endif /* INTERNET_DOMAIN_SOCKETS */
 #ifdef SYSV_IPC
   struct msgbuf *msgp;         /* message */
@@ -488,7 +488,7 @@ main (int argc, char *argv[])
 #if defined(INTERNET_DOMAIN_SOCKETS)
       connect_type = make_connection (hostarg, port, &s);
 #else
-      connect_type = make_connection (NULL, (u_short) 0, &s);
+      connect_type = make_connection (NULL, 0, &s);
 #endif
       sprintf (command, "(gnuserv-eval%s '(progn ", quick ? "-quickly" : "");
       send_string (s, command);
@@ -526,7 +526,7 @@ main (int argc, char *argv[])
 #if defined(INTERNET_DOMAIN_SOCKETS)
       connect_type = make_connection (hostarg, port, &s);
 #else
-      connect_type = make_connection (NULL, (u_short) 0, &s);
+      connect_type = make_connection (NULL, 0, &s);
 #endif
       sprintf (command, "(gnuserv-eval%s '(progn ", quick ? "-quickly" : "");
       send_string (s, command);
@@ -560,7 +560,7 @@ main (int argc, char *argv[])
 #if defined(INTERNET_DOMAIN_SOCKETS)
          connect_type = make_connection (hostarg, port, &s);
 #else
-         connect_type = make_connection (NULL, (u_short) 0, &s);
+         connect_type = make_connection (NULL, 0, &s);
 #endif
          send_string (s, "(gnuserv-eval '(emacs-pid))");
          send_string (s, EOT_STR);
@@ -585,7 +585,7 @@ main (int argc, char *argv[])
 #if defined(INTERNET_DOMAIN_SOCKETS)
       connect_type = make_connection (hostarg, port, &s);
 #else
-      connect_type = make_connection (NULL, (u_short) 0, &s);
+      connect_type = make_connection (NULL, 0, &s);
 #endif
 
 #ifdef INTERNET_DOMAIN_SOCKETS
index b90443d..2ba5785 100644 (file)
@@ -378,7 +378,7 @@ handle_response (void)
 
 #ifdef INTERNET_DOMAIN_SOCKETS
 struct entry {
-  u_long host_addr;
+  unsigned long host_addr;
   struct entry *next;
 };
 
@@ -450,7 +450,7 @@ timed_read (int fd, char *buf, int max, int timeout, int one_line)
   permitted -- return whether a given host is allowed to connect to the server.
 */
 static int
-permitted (u_long host_addr, int fd)
+permitted (unsigned long host_addr, int fd)
 {
   int key;
   struct entry *entry;
@@ -560,7 +560,7 @@ permitted (u_long host_addr, int fd)
               already there.
 */
 static void
-add_host (u_long host_addr)
+add_host (unsigned long host_addr)
 {
   int key;
   struct entry *new_entry;
@@ -596,7 +596,7 @@ setup_table (void)
   FILE *host_file;
   char *file_name;
   char hostname[HOSTNAMSZ];
-  u_int host_addr;
+  unsigned int host_addr;
   int i, hosts=0;
 
   /* Make sure every entry is null */
index c16aa31..f0226e6 100644 (file)
@@ -43,7 +43,7 @@ static int connect_to_ipc_server (void);
 static int connect_to_unix_server (void);
 #endif
 #ifdef INTERNET_DOMAIN_SOCKETS
-static int connect_to_internet_server (char *serverhost, u_short port);
+static int connect_to_internet_server (char *serverhost, unsigned short port);
 #endif
 
 /* On some systems, e.g. DGUX, inet_addr returns a 'struct in_addr'. */
@@ -313,7 +313,7 @@ static Xauth *server_xauth = NULL;
                                descriptor for server if successful.
 */
 static int
-connect_to_internet_server (char *serverhost, u_short port)
+connect_to_internet_server (char *serverhost, unsigned short port)
 {
   int s;                               /* connected socket descriptor */
   struct servent *sp;                  /* pointer to service information */
index 79160eb..0bf05de 100644 (file)
@@ -95,7 +95,7 @@ extern struct servent *hes_getservbyname (/* char *, char * */);
 #ifdef KERBEROS
 #ifndef KRB5
 extern int krb_sendauth (/* long, int, KTEXT, char *, char *, char *,
-                           u_long, MSG_DAT *, CREDENTIALS *, Key_schedule,
+                           unsigned long, MSG_DAT *, CREDENTIALS *, Key_schedule,
                            struct sockaddr_in *, struct sockaddr_in *,
                            char * */);
 extern char *krb_realmofhost (/* char * */);
index 28af59c..4a77940 100644 (file)
@@ -1,3 +1,31 @@
+2001-02-08  Martin Buchholz <martin@xemacs.org>
+
+       * XEmacs 21.2.44 "Thalia" is released.
+
+2001-01-16  Mike Sperber <mike@xemacs.org>
+
+       * startup.el (normal-top-level): Work even if no installation root
+       is found.
+
+2001-01-30  Andy Piper  <andy@xemacs.org>
+
+       * gutter-items.el (progress-abort-glyph): remove instantiator.
+       (set-progress-abort-instantiator): new function.
+       (abort-progress-feedback): use it.
+
+       * gutter.el (set-gutter-dirty-p): new function.
+
+2001-01-30  Didier Verna  <didier@xemacs.org>
+
+       * mwheel.el (mwheel-scroll): unwind-protect the selected window.
+
+2001-01-24  Didier Verna  <didier@xemacs.org>
+
+       * sound.el (sound-extension-list): give a better default value.
+       * sound.el (load-sound-file): improve the doc string, also find
+       files given by absolute names, pass a real extension list to
+       `locate-file'.
+
 2001-01-26  Martin Buchholz <martin@xemacs.org>
 
        * XEmacs 21.2.43 "Terspichore" is released.
index b63504a..054aa59 100644 (file)
@@ -348,10 +348,7 @@ redefining the function `format-buffers-menu-line'."
                     :items items)
             frame)
            ;; set-glyph-image will not make the gutter dirty
-           (set-specifier-dirty-flag 
-            (eval (intern (concat 
-                           (symbol-name gutter-buffers-tab-orientation) 
-                           "-gutter"))))))))))
+           (set-gutter-dirty-p gutter-buffers-tab-orientation)))))))
 
 ;; A myriad of different update hooks all doing slightly different things
 (add-one-shot-hook 
@@ -426,7 +423,8 @@ side-by-side."
                     ;; 'quit is special and acts "asynchronously".
                     :descriptor "Stop" :callback 'quit]
                    ,progress-text-instantiator)])
-    (set-glyph-image progress-layout-glyph progress-layout-instantiator locale))
+    (set-glyph-image progress-layout-glyph progress-layout-instantiator
+                    locale))
    (t 
     (setq progress-glyph-height 24)
     (setq progress-layout-instantiator
@@ -442,7 +440,20 @@ side-by-side."
                              :descriptor " Stop "
                              ;; 'quit is special and acts "asynchronously".
                              :callback 'quit])])])
-    (set-glyph-image progress-layout-glyph progress-layout-instantiator locale))))
+    (set-glyph-image progress-layout-glyph progress-layout-instantiator
+                    locale))))
+
+(defvar progress-abort-glyph (make-glyph))
+
+(defun set-progress-abort-instantiator (&optional locale)
+  (set-glyph-image progress-abort-glyph
+                  `[layout :orientation vertical :justify left
+                           :items (,progress-text-instantiator
+                                   [layout
+                                    :margin-width 4
+                                    :pixel-height progress-glyph-height
+                                    :orientation horizontal])]
+                  locale))
 
 (defvar progress-stack nil
   "An alist of label/string pairs representing active progress gauges.
@@ -450,15 +461,6 @@ The first element in the list is currently displayed in the gutter area.
 Do not modify this directly--use the `progress-feedback' or
 `display-progress-feedback'/`clear-progress-feedback' functions.")
 
-(defvar progress-abort-glyph
-  (make-glyph
-   `[layout :orientation vertical :justify left
-           :items (,progress-text-instantiator
-                   [layout
-                    :margin-width 4
-                    :pixel-height progress-glyph-height
-                    :orientation horizontal])]))
-
 (defun progress-feedback-displayed-p (&optional return-string frame)
   "Return a non-nil value if a progress gauge is presently displayed in the
 gutter area.  If optional argument RETURN-STRING is non-nil,
@@ -570,8 +572,8 @@ you should just use (progress nil)."
          ;; fixup the gutter specifiers
          (set-gutter-element bottom-gutter 'progress gutter-string frame)
          (set-specifier bottom-gutter-border-width 2 frame)
-         (set-instantiator-property progress-text-instantiator :datat message)
-         (set-progress-feedback-instantiator (frame-selected-window frame))
+         (set-instantiator-property progress-text-instantiator :data message)
+         (set-progress-abort-instantiator (frame-selected-window frame))
          (set-specifier bottom-gutter-height 'autodetect frame)
          (set-gutter-element-visible-p bottom-gutter-visible-p 
                                        'progress t frame)
index 19283da..a6dad1e 100644 (file)
@@ -108,6 +108,21 @@ non-nil if it is visible in optional DOMAIN."
     (or (and (listp spec) (memq 'buffers-tab spec))
        spec)))
 
+(defun set-gutter-dirty-p (gutter-or-location)
+  "Make GUTTER-OR-LOCATION dirty to force redisplay updates."
+  ;; set-glyph-image will not make the gutter dirty
+  (when (or (gutter-specifier-p gutter-or-location)
+           (eq gutter-or-location 'top)
+           (eq gutter-or-location 'bottom)
+           (eq gutter-or-location 'left)
+           (eq gutter-or-location 'right))
+    (or (gutter-specifier-p gutter-or-location) 
+       (setq gutter-or-location
+             (eval (intern (concat 
+                            (symbol-name gutter-or-location)
+                            "-gutter")))))
+    (set-specifier-dirty-flag gutter-or-location)))
+
 (defun make-gutter-specifier (spec-list)
   "Return a new `gutter' specifier object with the given specification list.
 SPEC-LIST can be a list of specifications (each of which is a cons of a
index 03d4392..094ca43 100644 (file)
@@ -17,7 +17,7 @@
 ;; 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 
+;; 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.
 
@@ -91,11 +91,13 @@ This can be slightly disconcerting, but some people may prefer it."
        (amt (if (memq 'shift (event-modifiers event))
                 (cdr mwheel-scroll-amount)
               (car mwheel-scroll-amount))))
-    (case (mwheel-event-button event)
-      (4 (scroll-down amt))
-      (5 (scroll-up amt))
-      (otherwise (error "Bad binding in mwheel-scroll")))
-    (if curwin (select-window curwin))))
+    (unwind-protect
+       (case (mwheel-event-button event)
+         (4 (scroll-down amt))
+         (5 (scroll-up amt))
+         (otherwise (error "Bad binding in mwheel-scroll")))
+      (if curwin (select-window curwin)))
+    ))
 
 ;;;###autoload
 (defun mwheel-install ()
@@ -112,7 +114,7 @@ This can be slightly disconcerting, but some people may prefer it."
          (define-key global-map (car keys) 'mwheel-scroll)
          (setq keys (cdr keys)))
       (error nil))))
-    
+
 (provide 'mwheel)
 
 ;;; mwheel.el ends here
index 2857165..46e277c 100644 (file)
   )
 
 ;; #### This should really be a list.  --hniksic
-(defcustom sound-extension-list (if (or (eq system-type 'cygwin32)
-                                       (eq system-type 'windows-nt))
-                                   ".wav:" ".au:")
+(defcustom sound-extension-list (cond ((or (eq system-type 'cygwin32)
+                                          (eq system-type 'windows-nt))
+                                      ".wav:")
+                                     ((eq system-type 'linux)
+                                      ".wav:.au:")
+                                     (t
+                                      ".au:"))
   "Filename extensions to complete sound file name with. If more than one
    extension is used, they should be separated by \":\". "
   :group 'sound
   :type 'string)
 
 (defcustom default-sound-directory-list (locate-data-directory-list "sounds")
-
   "List of directories which to search for sound files"
   :group 'sound
   :type '(repeat directory )
 (defun load-sound-file (filename sound-name &optional volume)
   "Read in an audio-file and add it to the sound-alist.
 
+FILENAME can either be absolute or relative, in which case the file will
+be searched in the directories given by `default-sound-directory-list'.
+When looking for the file, the extensions given by `sound-extension-list' are
+also tried in the given order.
+
 You can only play sound files if you are running on display 0 of the
 console of a machine with native sound support or running a NetAudio
 server and XEmacs has the necessary sound support compiled in.
@@ -143,10 +151,18 @@ nVolume (0 for default): ")
     (error "sound-name not a symbol"))
   (unless (or (null volume) (integerp volume))
     (error "volume not an integer or nil"))
-  (let (buf
-       data
-       (file (locate-file filename default-sound-directory-list
-                          sound-extension-list)))
+  (let ((file (if (file-name-absolute-p filename)
+                 ;; For absolute file names, we don't have on choice on the
+                 ;; location, but sound extensions however can still be tried
+                 (setq file (locate-file filename
+                                         (list (file-name-directory filename))
+                                         (split-string sound-extension-list
+                                                       ":")))
+               (setq file (locate-file filename
+                                       default-sound-directory-list
+                                       (split-string sound-extension-list
+                                                     ":")))))
+       buf data)
     (unless file
       (error "Couldn't load sound file %s" filename))
     (unwind-protect
index 27298b9..c821f84 100644 (file)
@@ -413,12 +413,12 @@ Type ^H^H^H (Control-h Control-h Control-h) to get more help options.\n")
                 'external-debugging-output))
 
       (if (null emacs-roots)
-         (startup-find-roots-warning)
-       (startup-setup-paths emacs-roots
-                            user-init-directory
-                            inhibit-early-packages
-                            inhibit-site-lisp
-                            debug-paths))
+         (startup-find-roots-warning))
+      (startup-setup-paths emacs-roots
+                          user-init-directory
+                          inhibit-early-packages
+                          inhibit-site-lisp
+                          debug-paths)
       (startup-setup-paths-warning))
 
     (if (and (not inhibit-autoloads)
index d81bceb..d3dad72 100644 (file)
@@ -1,3 +1,27 @@
+2001-02-08  Martin Buchholz <martin@xemacs.org>
+
+       * XEmacs 21.2.44 "Thalia" is released.
+
+2001-02-06  Martin Buchholz  <martin@xemacs.org>
+
+       * xlwgauge.c:
+       * xlwgcs.c:
+       * xlwgcs.c (XtAllocateGC): Fix typo for X11R4.
+       * xlwgcs.h:
+       * xlwradio.c (RadioExpose):
+       * xlwcheckbox.c:
+       Remove use of BSD-specific types.
+       s/u_(char|short|int_long)/unsigned $1/g
+
+2001-02-05  Martin Buchholz  <martin@xemacs.org>
+
+       * lwlib-Xm.c (xm_update_one_value):
+       Obey the man page; use XtFree instead of free.
+
+2001-02-02  Martin Buchholz  <martin@xemacs.org>
+
+       * config.h.in: Use "..." to include config.h
+
 2001-01-26  Martin Buchholz <martin@xemacs.org>
 
        * XEmacs 21.2.43 "Terspichore" is released.
index 0a7be10..00d3af1 100644 (file)
@@ -23,7 +23,7 @@ Boston, MA 02111-1307, USA.  */
 #ifndef _LWLIB_CONFIG_H_
 #define _LWLIB_CONFIG_H_
 
-#include <../src/config.h>
+#include "../src/config.h"
 
 #undef NEED_MOTIF
 #undef NEED_ATHENA
index 2903ede..3e25262 100644 (file)
@@ -889,14 +889,14 @@ xm_update_one_value (widget_instance* instance, Widget widget,
   else if (class == xmTextWidgetClass)
     {
       if (val->value)
-       free (val->value);
+       XtFree (val->value);
       val->value = XmTextGetString (widget);
       val->edited = True;
     }
   else if (class == xmTextFieldWidgetClass)
     {
       if (val->value)
-       free (val->value);
+       XtFree (val->value);
       val->value = XmTextFieldGetString (widget);
       val->edited = True;
     }
index 686d86f..9c685bc 100644 (file)
@@ -65,7 +65,7 @@ Boston, MA 02111-1307, USA.  */
 #if    DRAW_CHECK
 #define check_width 14
 #define check_height 14
-static u_char check_bits[] = {
+static unsigned char check_bits[] = {
    0x00, 0x00, 0x00, 0x20, 0x00, 0x18, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x03,
    0x8c, 0x03, 0xde, 0x01, 0xff, 0x01, 0xfe, 0x00, 0xfc, 0x00, 0x78, 0x00,
    0x70, 0x00, 0x20, 0x00};
index de71df0..074a6c7 100644 (file)
@@ -135,11 +135,11 @@ static void GaugeGetValue (XtPointer, XtIntervalId *);
 static void GaugeMercury (Display *, Window, GC, GaugeWidget, Cardinal, Cardinal);
 
 static Boolean GaugeConvert (Widget, Atom *, Atom *, Atom *,
-                            XtPointer *, u_long *, int *);
+                            XtPointer *, unsigned long *, int *);
 static void GaugeLoseSel (Widget, Atom *);
 static void GaugeDoneSel (Widget, Atom *, Atom *);
 static void GaugeGetSelCB (Widget, XtPointer, Atom *, Atom *,
-                          XtPointer, u_long *, int *);
+                          XtPointer, unsigned long *, int *);
 
 static GC Get_GC (GaugeWidget, Pixel);
 
@@ -636,7 +636,7 @@ GaugeConvert (Widget        w,
              Atom      *target,        /* requested target */
              Atom      *type,          /* returned type */
              XtPointer *value,         /* returned value */
-             u_long    *length,        /* returned length */
+             unsigned long     *length,        /* returned length */
              int       *format)        /* returned format */
 {
        GaugeWidget     gw = (GaugeWidget)w ;
@@ -650,7 +650,7 @@ GaugeConvert (Widget        w,
        if( *target == XA_TARGETS(XtDisplay(w)) )
        {
          Atom *rval, *stdTargets ;
-         u_long stdLength ;
+         unsigned long stdLength ;
 
          /* XmuConvertStandardSelection can handle this.  This function
           * will return a list of standard targets.  We prepend TEXT,
@@ -774,7 +774,7 @@ GaugeGetSelCB (Widget    w,
               Atom      *selection,
               Atom      *type,
               XtPointer value,
-              u_long    *length,
+              unsigned long    *length,
               int       *format)
 {
        Display *dpy = XtDisplay(w) ;
index ed5c480..3b6cd7e 100644 (file)
 
 #if    XtSpecificationRelease  < 5
 
-static GC      XtAllocateGC(Widget, int, u_long, XGCValues *, u_long, u_long) ;
+static GC      XtAllocateGC(Widget, int, unsigned long, XGCValues *,
+                            unsigned long, unsigned long) ;
 
 #endif
 
@@ -186,7 +187,7 @@ GC
 AllocFgGC(Widget w, Pixel fg, Font font)
 {
        XGCValues       values ;
-       u_long          vmask, dcmask ;
+       unsigned long   vmask, dcmask ;
 
        values.foreground = fg ;
        values.font = font ;
@@ -233,7 +234,7 @@ AllocShadeGC(Widget w, Pixel fg, Pixel bg, Font font,
        int contrast, Bool be_nice_to_cmap)
 {
        XGCValues       values ;
-       u_long          vmask, dcmask ;
+       unsigned long   vmask, dcmask ;
 
        values.foreground = fg ;
        values.background = bg ;
@@ -513,18 +514,18 @@ Draw3dBox(Widget w, int x, int y, int wid, int hgt, int s, GC topgc, GC botgc)
 #if XtSpecificationRelease < 5
 
 static GC
-XtAllocateGC(Widget w, int depth, u_long mask, XGCValues *values,
-       u_long dynamic, du_long ontcare)
+XtAllocateGC(Widget w, int depth, unsigned long mask, XGCValues *values,
+            unsigned long dynamic, unsigned long dontcare)
 {
        return XtGetGC(w, mask, values) ;
 }
 #endif
 
 
-static u_char  screen0[2] = {0,0} ;
-static u_char  screen25[2] = {0,0xaa} ;
-static u_char  screen75[2] = {0xaa,0xff} ;
-static u_char  screen100[2] = {0xff,0xff} ;
+static unsigned char screen0[2] = {0,0} ;
+static unsigned char screen25[2] = {0,0xaa} ;
+static unsigned char screen75[2] = {0xaa,0xff} ;
+static unsigned char screen100[2] = {0xff,0xff} ;
 
 static Pixmap
 getDitherPixmap(Widget w, int contrast)
index aed49d4..30b9b86 100644 (file)
@@ -117,8 +117,9 @@ extern      void    Draw3dBox(Widget w, int  x, int y, int wid, int hgt, int s,
                        GC topgc, GC botgc) ;
 
 #if XtSpecificationRelease < 5
-extern GC      XtAllocateGC(Widget, int depth, u_long mask,
-                       XGCValues *, u_long dynamic, u_long dontcare) ;
+extern GC      XtAllocateGC(Widget, int depth, unsigned long mask,
+                            XGCValues *,
+                            unsigned long dynamic, unsigned long dontcare) ;
 #endif
 
 #else
index a6430b9..207a1ff 100644 (file)
@@ -328,10 +328,10 @@ RadioExpose (Widget w,
        {
          /* TODO: handle pixmaps */
          XCopyPlane(dpy, left_bitmap, win, gc,
-               0,0, rw->label.lbm_width, rw->label.lbm_height,
-               (int) rw->label.internal_width*2 + bs(rw),
-               (int) rw->label.internal_height + rw->label.lbm_y,
-               (u_long) 1L) ;
+                    0,0, rw->label.lbm_width, rw->label.lbm_height,
+                    (int) rw->label.internal_width*2 + bs(rw),
+                    (int) rw->label.internal_height + rw->label.lbm_y,
+                    1UL) ;
        }
 
        /* Finally, the button itself */
index e59e0ef..e92f405 100644 (file)
@@ -1,3 +1,20 @@
+2001-02-08  Martin Buchholz <martin@xemacs.org>
+
+       * XEmacs 21.2.44 "Thalia" is released.
+
+2001-02-04  Steve Youngs  <youngs@xemacs.org>
+
+       * xemacs/xemacs.texi: Update to accomodate new and improved
+       packages.texi.
+
+       * xemacs/packages.texi: Basically, apart from a few things,
+       rewritten from scratch.
+
+2001-01-27  Martin Buchholz  <martin@xemacs.org>
+
+       * lispref/variables.texi (max-specpdl-size): Correct default value.
+       * lispref/eval.texi (max-lisp-eval-depth): Correct default value.
+
 2001-01-26  Martin Buchholz <martin@xemacs.org>
 
        * XEmacs 21.2.43 "Terspichore" is released.
index 71ce6d2..3b378cd 100644 (file)
@@ -182,7 +182,7 @@ This limit, with the associated error when it is exceeded, is one way
 that Lisp avoids infinite recursion on an ill-defined function.
 @cindex Lisp nesting error
 
-The default value of this variable is 500.  If you set it to a value
+The default value of this variable is 1000.  If you set it to a value
 less than 100, Lisp will reset it to 100 if the given value is reached.
 
 @code{max-specpdl-size} provides another limit on nesting.
index 6d3cc9d..21aa3af 100644 (file)
@@ -251,7 +251,7 @@ binding depth exceeds max-specpdl-size"}).
   This limit, with the associated error when it is exceeded, is one way
 that Lisp avoids infinite recursion on an ill-defined function.
 
-  The default value is 600.
+  The default value is 3000.
 
   @code{max-lisp-eval-depth} provides another limit on depth of nesting.
 @xref{Eval}.
index e2202d8..5aaeeaf 100644 (file)
@@ -17,15 +17,16 @@ local needs with safe removal of unnecessary code.
 
 @menu
 * Package Terminology:: Understanding different kinds of packages.
-* Using Packages::      How to install and use packages.
-* Building Packages::   Building packages from sources.
+* Installing Packages:: How to install packages.
+* Building Packages::   Building packages from CVS sources.
+* Local.rules File::    This is an important file don't forget to create/edit it.
 * Creating Packages::   The basics.
-* Available Packages::  A brief, out-of-date, directory of packaged LISP.
+* Available Packages::  A brief directory of packaged LISP.
 @end menu
 
-@node Package Terminology, Using Packages, , Packages
+@node Package Terminology, Installing Packages, , Packages
 @comment  node-name,  next,  previous,  up
-
+@heading Package Terminology:
 @subsection Package Flavors
 
 There are two main flavors of packages.
@@ -41,13 +42,14 @@ may not in general safely remove any of them.
 A single-file package is an aggregate collection of thematically
 related but otherwise independent lisp files.  These files are bundled 
 together for download convenience and individual files may be deleted at
-will without any loss of functionality.
+will without any loss of functionality.  However, we would recommend
+that you follow this rule of thumb: "When in doubt, don't delete".
 @end itemize
 
 @subsection Package Distributions
-
+@cindex package distributions
 XEmacs Lisp packages are distributed in two ways, depending on the
-intended use.  Binary Packages are for installers and end-users and may
+intended use.  Binary Packages are for installers and end-users that can
 be installed directly into an XEmacs package directory.  Source Packages
 are for developers and include all files necessary for rebuilding
 bytecompiled lisp and creating tarballs for distribution.
@@ -64,16 +66,20 @@ in regular packages) source code plus all of the files necessary to
 build distribution tarballs (Unix Tar format files, gzipped for space
 savings).
 
-@node Using Packages, Building Packages, Package Terminology, Packages
+Currently, source packages are only available via CVS.  See
+@url{http://cvs.xemacs.org/} for details.
+@node Installing Packages, Building Packages, Package Terminology, Packages
 @comment  node-name,  next,  previous,  up
-
+@cindex installing packages
+@cindex install
+@heading Installing Packages:
 @subsection Getting Started
 
 When you first download XEmacs 21, you will usually first grab the
 @dfn{core distribution},
 @cindex core distribution
 a file called
-@file{xemacs-21.0.tar.gz}. (Replace the @t{21.0} by the current version
+@file{xemacs-21.x.x.tar.gz}. (Replace the @t{21.x.x} by the current version
 number.)  The core distribution contains the sources of XEmacs and a
 minimal set of Emacs Lisp files, which are in the subdirectory named
 @file{lisp}.  This subdirectory used to contain all Emacs Lisp files
@@ -81,10 +87,10 @@ distributed with XEmacs.  Now, to conserve disk space, most
 non-essential packages were made optional.
 
 @subsection Choosing the Packages You Need
-
-The available packages can currently be found in the same ftp directory
+@cindex choosing packages
+The @ref{Available Packages} can currently be found in the same ftp directory
 where you grabbed the core distribution from, and are located in the
-subdirectory @file{packages/binary-packages}.  Package file names follow
+subdirectory @file{packages}.  Package file names follow
 the naming convention @file{<package-name>-<version>-pkg.tar.gz}.
 
 If you have EFS @ref{(EFS)}, packages can be installed over the network.
@@ -92,11 +98,11 @@ Alternatively, if you have copies of the packages locally, you can
 install packages from a local disk or CDROM.
 
 The file @file{etc/PACKAGES} in the core distribution contains a list of
-the packages available at the time of the XEmacs release.  Packages are
+the @ref{Available Packages} at the time of the XEmacs release.  Packages are
 also listed on the @code{Options} menu under:
 
 @example
-        Options->Customize->Emacs->Packages
+        Options -> Customize -> Emacs -> Packages
 @end example
 
 However, don't select any of these menu picks unless you actually want 
@@ -108,7 +114,7 @@ are installed, using the visual package browser and installer.  You can
 access it via the menus:
 
 @example
-        Options->Manage Packages->List & Install
+        Options -> Manage Packages -> List & Install
 @end example
 
 Or, you can get to it via the keyboard:
@@ -129,62 +135,137 @@ that you need @code{thingatpt}, type:
 M-x package-get-package-provider RET thingatpt
 @end example
 
-which will return something like (fsf-compat "1.06"). You can the use
+which will return something like (fsf-compat "1.08"). You can the use
 one of the methods above for installing the package you want.
 
 @subsection XEmacs and Installing Packages
 
-Normally, packages are installed over the network, using EFS
-@ref{(EFS)}.  However, you may not have network access, or you may
-already have some or all of the packages on a local disk, such as a
-CDROM.  If you want to install from a local disk, you must first tell
-XEmacs where to find the package binaries.  This is done by adding a line
-like the following to your init file:
+There are three main ways to install packages:
 
-@example
-(setq package-get-remote (cons (list nil "/my/path/to/package/binaries")
-                               package-get-remote))
-@end example
+@menu
+* Sumo::              All at once, using the 'Sumo Tarball'.
+* Manually::          Using individual package tarballs.
+* Automatically::     Using the package tools from XEmacs.
+* Which Packages::    Which packages to install.
+* Removing Packages:: Removing packages.
+@end menu
 
-@xref{Init File}.
+But regardless of the method you use to install packages, they can only
+be used by XEmacs after a restart.
 
-Here, you'd change @file{/my/path/to/package/binaries} to be the path
-to your local package binaries.  Next, restart XEmacs, and you're ready
-to go (advanced users can just re-evaluate the sexp).
+@node Sumo, Manually, ,Installing Packages
+@comment  node-name,  next,  previous,  up
+@cindex sumo package install
+@heading Installing the Sumo Packages:
+Those with little time, cheap connections and plenty of disk space can
+install all the packages at once using the sumo tarballs.
+Download the file: @file{xemacs-sumo.tar.gz}
 
-If you are installing from a temporary, one-time directory, you can also 
-add these directory names to @code{package-get-remote} using:
+For an XEmacs compiled with Mule you also need: @file{xemacs-mule-sumo.tar.gz}
 
-@example
-        M-x pui-add-install-directory
-@end example
+N.B. They are called 'Sumo Tarballs' for good reason. They are
+currently about 19MB and 4.5MB (gzipped) respectively.
+
+Install them by:
+
+@code{cd $prefix/lib/xemacs ; gunzip -c <tarballname> | tar xvf - RET}
 
-Note, however, that any directories added using this function are not
-saved; this information will be lost when you quit XEmacs.
+Or, if you have GNU tar:
+
+@code{cd $prefix/lib/xemacs ; tar zxvf /path/to/<tarballname> RET}
+
+As the Sumo tarballs are not regenerated as often as the individual
+packages, it is recommended that you use the automatic package tools
+afterwards to pick up any recent updates.
+
+@node Manually, Automatically, Sumo, Installing Packages
+@comment  node-name,  next,  previous,  up
+@cindex manual package install
+@heading Manual Package Installation:
+Fetch the packages from the FTP site, CD-ROM whatever. The filenames
+have the form @file{name-<version>-pkg.tar.gz} and are gzipped tar files. For
+a fresh install it is sufficient to untar the file at the top of the
+package hierarchy. 
 
-If you're going to install over the network, you only have to insure
-that EFS @ref{(EFS)} works, and that it can get outside a firewall, if
-you happen to be behind one.  You shouldn't have to do anything else;
-XEmacs already knows where to go. However you can add your own mirrors
-to this list. See @code{package-get-remote}.
+Note: If you are upgrading packages already installed, it's best to
+remove the old package first @ref{Removing Packages}.
 
-The easiest way to install a package is to use the visual package
-browser and installer, using the menu pick:
+For example if we are installing the @file{xemacs-base}
+package (version 1.48):
 
 @example
-        Options->Manage Packages->List & Install
+   mkdir $prefix/lib/xemacs/xemacs-packages RET # if it does not exist yet
+   cd $prefix/lib/xemacs/xemacs-packages RET
+   gunzip -c /path/to/xemacs-base-1.48-pkg.tar.gz | tar xvf - RET
+
+Or if you have GNU tar, the last step can be:
+
+   tar zxvf /path/to/xemacs-base-1.48-pkg.tar.gz RET
 @end example
-or
+
+For MULE related packages, it is best to untar into the mule-packages
+hierarchy, i.e. for the @file{mule-base} package, version 1.37:
+
 @example
-        Options->Manage Packages->Using Custom->Select-> ...
+   mkdir $prefix/lib/xemacs/mule-packages RET # if it does not exist yet
+   cd $prefix/lib/xemacs/mule-packages RET
+   gunzip -c /path/to/mule-base-1.37-pkg.tar.gz | tar xvf - RET
+
+Or if you have GNU tar, the last step can be:
+
+   tar zxvf /path/to/mule-base-1.37-pkg.tar.gz RET
 @end example
 
-You can also access it using the keyboard:
+@node Automatically, Which Packages ,Manually, Installing Packages
+@comment  node-name,  next,  previous,  up
+@cindex automatic package install
+@cindex package tools
+@heading Automatic Package Installation:
+XEmacs comes with some tools to make the periodic updating and
+installing easier. It will notice if new packages or versions are
+available and will fetch them from the FTP site.
+
+Unfortunately this requires that a few packages are already in place.
+You will have to install them by hand as above or use a SUMO tarball.
+This requirement will hopefully go away in the future. The packages
+you need are:
 
 @example
-M-x pui-list-packages
+   efs          - To fetch the files from the FTP site or mirrors.
+   xemacs-base  - Needed by efs.
+
+and optionally:
+
+   mule-base    - Needed if you want to use XEmacs with MULE.
 @end example
 
+After installing these by hand, fire up XEmacs and follow these
+steps.
+
+Note: The menus in XEmacs 21.2.x and up have changed slightly, so
+where I mention "Options -> Manage Packages", substitute "Tools ->
+Packages".
+
+@enumerate 1
+@item Choose a download site.
+via menu: Options -> Manages Packages -> Add Download Site 
+via keyb: @code{M-x customize-variable RET package-get-remote RET}
+(put in the details of remote host and directory)
+
+If the package tarballs _AND_ the package-index file are in a
+local directory, you can: @code{M-x pui-add-install-directory RET}
+
+@item Obtain a list of packages and display the list in a buffer named
+@file{*Packages*}.
+menu: Options -> Manage Packages -> List & Install
+keyb: @code{M-x pui-list-packages RET}
+
+XEmacs will now connect to the remote site and download the
+latest package-index file.  If you see an error about the
+package-index entries not being PGP signed, you can safely
+ignore this because PGP has not been integrated into the XEmacs
+package tools yet.
+
 The visual package browser will then display a list of all packages.
 Help information will be displayed at the very bottom of the buffer; you
 may have to scroll down to see it.  You can also press @kbd{?} to get
@@ -237,30 +318,26 @@ Kill the package buffer.
 Moving the mouse over a package will also cause additional information
 about the package to be displayed in the minibuffer.
 
-@subsection Other package installation interfaces
 
-For an alternative package interface, you can select packages from the
-customize menus, under:
+@item Choose the packages you wish to install.
+mouse: Click button 2 on the package name.
+ keyb: @kbd{RET} on the package name
 
-@example
-        Options->Customize->Emacs->Packages-> ...
-@end example
-or
-@example
-        Options->Manage Packages->Using Custom->Select-> ...
-@end example
+@item Make sure you have everything you need.
+menu: Packages -> Add Required
+keyb: @kbd{r}
 
-Set their state to on, and then do:
+XEmacs will now search for packages that are required by the
+ones that you have chosen to install and offer to select
+those packages also.
 
-@example
-        Options->Manage Packages->Using Custom->Update Packages
-@end example
+For novices and gurus alike, this step can save your bacon.
+It's easy to forget to install a critical package.
 
-This will automatically retrieve the packages you have selected from the
-XEmacs ftp site or your local disk, and install them into
-XEmacs.  Additionally it will update any packages you already have
-installed to the newest version.  Note that if a package is newly
-installed you will have to restart XEmacs for the change to take effect.
+@item Download and install the packages.
+menu: Packages -> Install/Remove Selected
+keyb: @kbd{x}
+@end enumerate
 
 You can also install packages using a semi-manual interface:
 
@@ -269,118 +346,102 @@ M-x package-get-all <return>
 @end example
 
 Enter the name of the package (e.g., @code{prog-modes}), and XEmacs
-will search for the latest version (as listed in the lisp file
-@file{lisp/package-get-base.el}), and install it and any packages that
+will search for the latest version and install it and any packages that
 it depends upon.
 
-@subsection Manual Binary Package Installation
-
-Pre-compiled, binary packages can be installed in either a system
-package directory (this is determined when XEmacs is compiled), or in
-one of the following
-subdirectories of your @file{$HOME} directory:
-
-@example
-~/.xemacs/mule-packages
-~/.xemacs/xemacs-packages
-@end example
-
-Packages in the former directory will only be found by a Mule-enabled
-XEmacs.
-
-XEmacs does not have to be running to install binary packages, although
-XEmacs will not know about any newly-installed packages until you
-restart XEmacs.  Note, however, that installing a newer version of a
-package while XEmacs is running could cause strange errors in XEmacs;
-it's best to exit XEmacs before upgrading an existing package.
-
-To install binary packages manually:
-
-@enumerate
-@item
-Download the package(s) that you want to install.  Each binary package
-will typically be a gzip'd tarball.
-
-@item
-Decide where to install the packages: in the system package
-directory, or in @file{~/.xemacs/mule-packages} or
-@file{~/.xemacs/xemacs-packages}, respectively.  If you want to install
-the packages in the system package directory, make sure you can write
-into that directory.  If you want to install in your @file{$HOME}
-directory, create the directory, @file{~/.xemacs/mule-packages} or
-@file{~/.xemacs/xemacs-packages}, respectively.
-
-@item
-Next, @code{cd} to the directory under which you want to install the
-package(s).
-
-@item
-From this directory, uncompress and extract each of the gzip'd tarballs
-that you downloaded in step 1.  Unix and Cygnus cygwin users will
-typically do this using the commands:
-
-@example
-        gunzip < package.tar.gz | tar xvf -
-@end example
-
-Above, replace @file{package.tar.gz} with the filename of the
-package that you downloaded in step 1.
+@node Which Packages, Removing Packages, Automatically, Installing Packages
+@comment  node-name,  next,  previous,  up
+@cindex which packages
+@cindex choosing packages
+@heading Which Packages to Install:
+This is difficult to say. When in doubt install a package. If you
+administrate a big site it might be a good idea to just install
+everything. A good minimal set of packages for XEmacs-latin1 would be
 
-Of course, if you use GNU @code{tar}, you could also use:
+xemacs-base, xemacs-devel, c-support, cc-mode, debug, dired, efs,
+edit-utils, fsf-compat, mail-lib, net-utils, os-utils, prog-modes,
+text-modes, time
 
-@example
-        tar xvzf package.tar.gz
-@end example
+If you are using the XEmacs package tools, don't forget to do:
 
-@comment What about native MS Windows users???
+       Packages -> Add Required
 
-@item
-That's it.  Quit and restart XEmacs to get it to recognize any new or
-changed packages.
+To make sure you have everything that the packages you have chosen to
+install need.
 
-@end enumerate
+See also @ref{Available Packages} for further descriptions of the individual
+packages.
 
-@node Building Packages, Creating Packages, Using Packages, Packages
+@node Removing Packages, ,Which Packages, Installing Packages
 @comment  node-name,  next,  previous,  up
-
-Source packages are available from the @file{packages/source-packages}
-subdirectory of your favorite XEmacs distribution site.  Alternatively,
-they are available via CVS from @file{cvs.xemacs.org}.  Look at
-@file{http://cvs.xemacs.org} for instructions.
+@cindex removing packages
+@cindex deleting packages
+@heading Removing Packages:
+Because the exact files and their locations contained in a package may
+change it is recommended to remove a package first before installing a
+new version. In order to facilitate removal each package contains an
+@file{pgkinfo/MANIFEST.pkgname} file which list all the files belonging
+to the package. 
+
+No need to panic, you don't have to go through the
+@file{pkinfo/MANIFEST.pkgname} and manually delete the files.  Instead, use
+@code{M-x package-admin-delete-binary-package RET}.
+
+Note that the interactive package tools included with XEmacs already do
+this for you.
+
+@node Building Packages, Local.rules File, Installing Packages, Packages
+@comment  node-name,  next,  previous,  up
+@cindex building packages
+@cindex package building
+@heading Building Packages:
+Currently, source packages are only available via anonymous CVS.  See
+@url{http://cvs.xemacs.org/} for details of checking out the
+@file{xemacs-packages} module.
 
 @subsection Prerequisites for Building Source Packages
 
-You must have GNU @code{cp}, GNU @code{install} (or a BSD compatible
-@code{install} program) GNU @code{make} (3.75 or later preferred),
-@code{makeinfo} (1.68 from @code{texinfo-3.11} or later required), GNU
-@code{tar} and XEmacs 21.0.  The source packages will untar into a
-correct directory structure.  At the top level you must have
-@file{XEmacs.rules} and @file{package-compile.el}.  These files are
-available from the XEmacs FTP site from the same place you obtained your
-source package distributions.
+@table @code
+@item GNU cp
+@item GNU ginstall 
+(or a BSD compatible install program).
+@item GNU make 
+(3.75 or later preferred).
+@item makeinfo 
+(1.68 from texinfo-3.11 or later required).
+@item GNU tar
+(or equivalent).
+@item GNU gzip
+(or equivalent).
+@item A properly configured @file{Local.rules} file.
+@ref{Local.rules File}.
+@end table
+And of course, XEmacs 21.0 or higher.
 
 @subsection What You Can Do With Source Packages
 
-NB:  A global build operation doesn't exist yet as of 13 January 1998.
-
-Source packages are most useful for creating XEmacs package tarballs
-for installation into your own XEmacs installations or for
+The packages CVS sources are most useful for creating XEmacs package
+tarballs for installation into your own XEmacs installations or for
 distributing to others.
 
 Supported operations from @file{make} are:
 
 @table @code
-@item clean
-Remove all built files except @file{auto-autoloads.el} and @file{custom-load.el}.
-
-@item distclean
-Remove XEmacs backups as well as the files deleted by @code{make clean}.
-
 @item all
 Bytecompile all files, build and bytecompile byproduct files like
 @file{auto-autoloads.el} and @file{custom-load.el}.  Create info version
 of TeXinfo documentation if present.
 
+@item bindist
+Does a @code{make all} as well as create a binary package tarball in the
+staging directory.
+
+@item install
+Bytecompile all files, build and bytecompile byproduct files like
+@file{auto-autoloads.el} and @file{custom-load.el}.  Create info version
+of TeXinfo documentation if present.  And install everything into the
+staging directory.
+
 @item srckit
 Usually aliased to @code{srckit-std}.  This does a @code{make
 distclean} and creates a package source tarball in the staging
@@ -401,11 +462,84 @@ beyond the basic templates so this is not yet complete.
 Runs the rules @code{srckit} followed by @code{binkit}.  This is
 primarily of use by XEmacs maintainers producing files for distribution.
 
+@item clean
+Remove all built files except @file{auto-autoloads.el} and @file{custom-load.el}.
+
+@item distclean
+Remove all created files.
 @end table
 
-@node Creating Packages, Available Packages, Building Packages, Packages
+@node Local.rules File, Creating Packages, Building Packages, Packages
 @comment  node-name,  next,  previous,  up
+@cindex local.rules
+@heading The Local.rules File:
+This file is used when building and installing packages from source.  In
+the top level of the CVS module, @file{xemacs-packages}, contains the
+file, @file{Local.rules.template}.  Simply copy that to
+@file{Local.rules} and edit it to suit your needs.
+
+These are the variables in 'Local.rules' that you will need to
+address. 
+
+@table @var
+@item symlink = 
+Set this to 't' if you want to do a "run in place".
+Setting this doesn't work well with 'make bindist'
+
+@item XEMACS_PACKAGES =
+This is where you set the normal packages that you
+want to install. eg:
+@example
+      XEMACS_PACKAGES = libs/xemacs-base comm/bbdb
+@end example
+
+@item XEMACS_STAGING = $@{XEMACS_PACKAGES_BASE@}/../Packages
+Set this to where you want normal packages to be
+installed to.
 
+@item PACKAGE_INDEX = package-index
+If you want the package-index file to have a different
+name, change this.
+
+@item BUILD_WITHOUT_MULE =
+Building from CVS defaults to building the Mule
+packages.  Set this to 't' if you don't want/have Mule
+
+@item MULE_PACKAGES =
+Same as for 'XEMACS_PACKAGES' except you list the Mule
+packages you want to install here. eg:
+@example
+      MULE_PACKAGES = mule/mule-base mule/skk
+@end example
+
+@item MULE_STAGING = $@{XEMACS_PACKAGES_BASE@}/../Mule-Packages
+Set this to where you want Mule packages installed
+to.  Note:  'make bindist' does not use this variable.
+
+@item XEMACS = xemacs
+If your XEmacs isn't in your path, change this.
+
+@item XEMACS_NATIVE_NT =
+Set this to 't' if you are building on WinNT.
+
+@item INSTALL = install -c
+The path to your BSD compatible install program.
+
+@item TAR = tar
+The path to your tar program
+
+@item BZIP2 =
+If you want bzip2 tarballs, set this.
+
+@item MAKEINFO = makeinfo
+The path to your makeinfo program
+@end table
+
+
+@node Creating Packages, Available Packages, Local.rules File, Packages
+@comment  node-name,  next,  previous,  up
+@cindex creating packages
+@heading Creating Packages:
 Creating a package from an existing Lisp library is not very difficult.
 
 In addition to the Lisp libraries themselves, you need a
@@ -530,14 +664,15 @@ or a future revision of this manual for details.
 
 @node Available Packages,  , Creating Packages, Packages
 @comment  node-name,  next,  previous,  up
+@cindex available packages
+@cindex packages
+@heading Available Packages:
+This section lists the Lisp packages that are currently available from
+xemacs.org and it's mirrors.  If a particular package that you are
+looking for isn't here, please send a message to the
+@email{xemacs-beta@@xemacs.org, XEmacs Beta list}.
 
-This section is surely out-of-date.  If you're sure that XEmacs is
-able to do something, but your installed XEmacs won't do it for you,
-it's probably in a package.  If you can't find it in this section,
-that's a bug---please report it.  It is very hard to keep this section
-up-to-date; your reports, comments, and questions will help a lot.
-
-This data is up-to-date as of 10 February 1999.  (Ouch!  I told you!)
+This data is up-to-date as of January 17, 2001.
 
 @subsection Library Packages (libs)
 
@@ -552,19 +687,31 @@ Support for Sparcworks.
 @item apel
 A Portable Emacs Library.  Used by XEmacs MIME support.
 
-@item edebug
-A Lisp debugger.
-
 @item dired
 The DIRectory EDitor is for manipulating, and running commands on
 files in a directory.
 
+@item edebug
+A Lisp debugger.
+
 @item efs
 Treat files on remote systems the same as local files.
 
+@item elib
+Portable Emacs Lisp utilities library.
+
+@item fsf-compat
+FSF Emacs compatibility files.
+
 @item mail-lib
 Fundamental lisp files for providing email support.
 
+@item sounds-au
+XEmacs Sun sound files.
+
+@item sounds-wav
+XEmacs Microsoft sound files.
+
 @item tooltalk
 Support for building with Tooltalk.
 
@@ -584,6 +731,16 @@ These packages provide support for various communications, primarily
 email and usenet.
 
 @table @file
+@item bbdb
+The Big Brother Data Base
+
+@item eicq
+ICQ Client developed and tested on Linux x86; 
+only supported on that platform
+
+@item eudc
+Emacs Unified Directory Client (LDAP, PH).
+
 @item footnote
 Footnoting in mail message editing modes.
 
@@ -596,6 +753,9 @@ The Gnus Newsreader and Mailreader.
 @item mailcrypt
 Support for messaging encryption with PGP.
 
+@item mew
+Messaging in an Emacs World.
+
 @item mh-e
 Front end support for MH.
 
@@ -603,9 +763,6 @@ Front end support for MH.
 Miscellaneous Networking Utilities.  This is a single-file package and 
 files may be deleted at will.
 
-@item ph
-Emacs implementation of the ph client to CCSO/qi directory servers.
-
 @item rmail
 An obsolete Emacs mailer.  If you do not already use it don't start.
 
@@ -613,17 +770,22 @@ An obsolete Emacs mailer.  If you do not already use it don't start.
 An Emacs citation tool.  Useful with all Emacs Mailers and Newsreaders.
 
 @item tm
-Emacs MIME support.
+Emacs MIME support. Not needed for Gnus >= 5.8.0
 
 @item vm
 An Emacs mailer.
 
 @item w3
 A Web browser.
+
+@item zenirc
+ZENIRC IRC Client.
 @end table
 
 @subsection Games and Amusements (games)
 
+All work and no play...
+
 @table @file
 @item cookie
 Spook and Yow (Zippy quotes).
@@ -640,7 +802,15 @@ Other amusements and diversions.
 
 @subsection Mule Support (mule)
 
+MULti-lingual Enhancement.  Support for world scripts such as
+Latin, Arabic, Cyrillic, Chinese, Japanese, Greek, Hebrew etc.
+To use these packages your XEmacs must be compiled with Mule
+support.
+
 @table @file
+@item edict
+Lisp Interface to EDICT, Kanji Dictionary.
+
 @item egg-its
 Wnn (4.2 and 6) support.  SJ3 support.  Must be installed prior to
 XEmacs build.
@@ -652,6 +822,9 @@ Quail.  Used for everything other than English and Japanese.
 Used for localized menubars (French and Japanese) and localized splash
 screens (Japanese).
 
+@item lookup
+Dictionary support. (This isn't an English dictionary program)
+
 @item mule-base
 Basic Mule support.  Must be installed prior to building with Mule.
 
@@ -662,7 +835,12 @@ separate process running as a dictionary server.
 
 @subsection Productivity Packages (oa)
 
+Things to make life a little easier.
+
 @table @file
+@item calc
+Emacs calculator.
+
 @item calendar
 Calendar and diary support.
 
@@ -671,7 +849,7 @@ Single file lisp packages for various XEmacs goodies.  Load this and
 weed out the junk you don't want.
 
 @item forms
-Forms editing support (obsolete, use the builtin Widget instead).
+Forms editing support (obsolete, use the built-in Widget instead).
 
 @item frame-icon
 Provide a WM icon based on major mode.
@@ -695,7 +873,7 @@ SGML/Linuxdoc-SGML editing.
 User interface tool.
 
 @item speedbar
-??? Document me.
+Provides a separate frame with convenient references.
 
 @item strokes
 Mouse enhancement utility.
@@ -709,7 +887,12 @@ Display time & date on the modeline.
 
 @subsection Operating System Utilities (os)
 
+Tools for working with the operating system.
+
 @table @file
+@item eshell
+Command shell implemented entirely in Emacs Lisp.
+
 @item eterm
 Terminal emulator.
 
@@ -723,12 +906,21 @@ Front-end for Inferior Lisp.
 Miscellaneous single-file O/S utilities, for printing, archiving,
 compression, remote shells, etc.
 
+@item pcomplete
+Provides programmatic completion.
+
+@item ps-print-nomule
+Old, but no-Mule safe ps-print.
+
 @item view-process
 A Unix process browsing tool.
 @end table
 
 @subsection Program Editing Support (prog)
 
+XEmacs supports a multitude of programming languages.  These
+packages will help your coding.
+
 @table @file
 @item ada
 Ada language support.
@@ -748,23 +940,33 @@ Interface over patch.
 @item emerge
 Another interface over patch.
 
+@item idlwave
+Editing and Shell mode for the Interactive Data Language.
+
+@item jde
+Java language and development support.
+
 @item pcl-cvs
 CVS frontend.
 
 @item prog-modes
-Miscellaneous Lisp libraries for various programming languages.
+Miscellaneous single-file lisp files for various programming languages.
 
 @item scheme
 Front-end support for Inferior Scheme.
 
+@item semantic
+Semantic bovinator.
+
 @item sh-script
 Support for editing shell scripts.
 
 @item vc
-Version control for free systems.
+Version Control for Free systems.
 
 @item vc-cc
-Version control for ClearCase.
+Version Control for ClearCase.  This package will shortly be
+replaced with clearcase.el
 
 @item vhdl
 Support for VHDL.
@@ -772,6 +974,8 @@ Support for VHDL.
 
 @subsection Word Processing (wp)
 
+Working with text.
+
 @table @file
 @item auctex
 Basic TeX/LaTeX support.
@@ -782,6 +986,9 @@ Crisp/Brief emulation.
 @item edt
 DEC EDIT/EDT emulation.
 
+@item reftex
+Emacs support for LaTeX cross-references, citations.
+
 @item texinfo
 XEmacs TeXinfo support.
 
index 9103a2d..87b61c4 100644 (file)
@@ -1028,6 +1028,13 @@ normally include all functions and subroutines, and may also include
 global variables, data types, and anything else convenient.  Each name
 recorded is called a @dfn{tag}.
 
+@cindex C++ class browser, tags
+@cindex tags, C++
+@cindex class browser, C++
+@cindex Ebrowse
+The Ebrowse is a separate facility tailored for C++, with tags and a
+class browser.  @xref{,,, ebrowse, Ebrowse User's Manual}.
+
 @menu
 * Tag Syntax::         Tag syntax for various types of code and text files.
 * Create Tags Table::  Creating a tags table with @code{etags}.
@@ -1038,7 +1045,7 @@ recorded is called a @dfn{tag}.
 * List Tags::          Listing and finding tags defined in a file.
 @end menu
 
-@node Tag Syntax, Create Tags Table, Tags, Tags
+@node Tag Syntax
 @subsection Source File Tag Syntax
 
   Here is how tag syntax is defined for the most popular languages:
@@ -1077,7 +1084,7 @@ In La@TeX{} text, the argument of any of the commands @code{\chapter},
 tag.@refill
 
 Other commands can make tags as well, if you specify them in the
-environment variable @code{TEXTAGS} before invoking @code{etags}.  The
+environment variable @env{TEXTAGS} before invoking @code{etags}.  The
 value of this environment variable should be a colon-separated list of
 command names.  For example,
 
@@ -1108,8 +1115,34 @@ set with @code{set!} at top level in the file.
 
 @item
 In Ada code, functions, procedures, packages, tasks, and types are
-tags.  Use the @samp{--packages-only} option to create tags for packages
-only.
+tags.  Use the @samp{--packages-only} option to create tags for
+packages only.
+
+With Ada, it is possible to have the same name used for different
+entity kinds (e.g.@: the same name for a procedure and a function).  Also,
+for things like packages, procedures and functions, there is the spec
+(i.e.@: the interface) and the body (i.e.@: the implementation).  To
+facilitate the choice to the user, a tag value is appended with a
+qualifier:
+
+@table @asis
+@item function
+ @kbd{/f}
+@item procedure
+ @kbd{/p}
+@item package spec
+ @kbd{/s}
+@item package body
+ @kbd{/b}
+@item type
+ @kbd{/t}
+@item task
+ @kbd{/k}
+@end table
+
+So, as an example, @kbd{M-x find-tag bidule/b} will go directly to the
+body of the package @var{bidule} while @kbd{M-x find-tag bidule} will
+just search for any tag @var{bidule}.
 
 @item
 In assembler code, labels appearing at the beginning of a line,
@@ -1132,6 +1165,9 @@ in the file.
 In Fortran code, functions, subroutines and blockdata are tags.
 
 @item
+In makefiles, targets are tags.
+
+@item
 In Objective C code, tags include Objective C definitions for classes,
 class categories, methods, and protocols.
 
@@ -1145,7 +1181,7 @@ In Perl code, the tags are the procedures defined by the @code{sub},
 to tag global variables.
 
 @item
-In Postscript code, the tags are the functions.
+In PostScript code, the tags are the functions.
 
 @item
 In Prolog code, a tag name appears at the left margin.
@@ -1155,10 +1191,10 @@ In Python code, @code{def} or @code{class} at the beginning of a line
 generate a tag.
 @end itemize
 
-  You can also generate tags based on regexp matching 
-(@pxref{Etags Regexps}) to handle other formats and languages.
+  You can also generate tags based on regexp matching (@pxref{Etags
+Regexps}) to handle other formats and languages.
 
-@node Create Tags Table, Etags Regexps, Tag Syntax, Tags
+@node Create Tags Table
 @subsection Creating Tags Tables
 @cindex @code{etags} program
 
@@ -1251,7 +1287,7 @@ knows, and the file name rules for guessing the language. It also prints
 a list of all the available @code{etags} options, together with a short
 explanation.
 
-@node Etags Regexps, Select Tags Table, Create Tags Table, Tags
+@node Etags Regexps
 @subsection Etags Regexps
 
   The @samp{--regex} option provides a general way of recognizing tags
index abb9efb..d5d83b6 100644 (file)
@@ -238,8 +238,11 @@ Packages
 
 * Packages::            Introduction to XEmacs Packages.
 * Package Terminology:: Understanding different kinds of packages.
-* Using Packages::      How to install and use packages.
+* Installing Packages:: How to install packages.
 * Building Packages::   Building packages from sources.
+* Local.rules File::    An important part of building packages.
+* Creating Packages::   The basics.
+* Available Packages::  A brief directory of packaged LISP.
 
 Basic Editing Commands
 
index b8abee8..f5ec0e4 100644 (file)
@@ -1,3 +1,11 @@
+2001-02-08  Martin Buchholz <martin@xemacs.org>
+
+       * XEmacs 21.2.44 "Thalia" is released.
+
+2001-02-02  Andy Piper  <andy@xemacs.org>
+
+       * res.rc: update mirrors.lst location.
+
 2001-01-26  Martin Buchholz <martin@xemacs.org>
 
        * XEmacs 21.2.43 "Terspichore" is released.
 
        * all: port from cygwin setup.
 
-%%% $Id: ChangeLog,v 1.1.2.14 2001/01/24 09:22:31 andyp Exp $
-$Revision: 1.1.2.14 $
+%%% $Id: ChangeLog,v 1.1.2.16 2001/02/02 19:47:47 andyp Exp $
+$Revision: 1.1.2.16 $
index 170aa9d..a6a523d 100644 (file)
@@ -461,7 +461,7 @@ STRINGTABLE DISCARDABLE
 BEGIN\r
     IDS_ROOT_SLASH          "Warning: we recommend you do NOT use the root of your hard drive as the XEmacs root.  Proceed anyway?"\r
     IDS_ROOT_SPACE          "You should not choose a root path that include spaces in directory names.  Proceed anyway?"\r
-    IDS_MIRROR_LST          "http://ftp.xemacs.org/pub/xemacs/mirrors.lst"\r
+    IDS_MIRROR_LST          "http://www.xemacs.org/Download/mirrors.lst"\r
     IDS_DIALOG_FAILED       "Unable to create Dialog Box"\r
     IDS_CYGWIN_FUNC_MISSING "Error: unable to find function `%s' in %s"\r
     IDS_DOWNLOAD_SHORT      "Download error: %s too short (%d, wanted %d)"\r
@@ -478,7 +478,7 @@ BEGIN
     IDS_ERR_OPEN_READ       "Can't open %s for reading: %s"\r
     IDS_ROOT_ABSOLUTE       "The install directory must be absolute, with both a drive letter and leading slash, like C:\\Cygwin"\r
     IDS_DOWNLOAD_COMPLETE   "Download Complete"\r
-    IDS_CVSID               "\n%%% $Id: res.rc,v 1.1.2.4 2001/01/24 09:18:30 andyp Exp $\n"\r
+    IDS_CVSID               "\n%%% $Id: res.rc,v 1.1.2.5 2001/02/02 19:47:47 andyp Exp $\n"\r
     IDS_NOLOGFILE           "Cannot open log file %s for writing"\r
     IDS_UNINSTALL_COMPLETE  "Uninstalls complete."\r
     IDS_WININET             "Unable to find or load the Internet Explorer 5 DLLs"\r
index e103bcd..dc6c984 100644 (file)
@@ -1,3 +1,7 @@
+2001-02-08  Martin Buchholz <martin@xemacs.org>
+
+       * XEmacs 21.2.44 "Thalia" is released.
+
 2001-01-26  Martin Buchholz <martin@xemacs.org>
 
        * XEmacs 21.2.43 "Terspichore" is released.
index e3804b6..03720ca 100644 (file)
@@ -69,7 +69,7 @@ define decode_object
   if $type == Lisp_Type_Record
     set $lheader = ((struct lrecord_header *) $val)
     set $lrecord_type = ($lheader->type)
-    set $imp = lrecord_implementations_table[$lrecord_type]
+    set $imp = ((struct lrecord_implementation *) lrecord_implementations_table[(int) $lrecord_type])
   else
     set $lrecord_type = -1
     set $lheader = -1
@@ -178,9 +178,6 @@ Use when debugging temacs, not xemacs!
 Use this when temacs builds successfully, but xemacs does not.
 end
 
-# if you use Purify, do this:
-# export PURIFYOPTIONS='-pointer-mask=0x0fffffff'
-
 define ldp
   printf "%s", "Lisp => "
   call debug_print($arg0)
index 8c0c82a..16e7d55 100644 (file)
@@ -1,3 +1,186 @@
+2001-02-08  Martin Buchholz <martin@xemacs.org>
+
+       * XEmacs 21.2.44 "Thalia" is released.
+
+2001-02-06  Martin Buchholz  <martin@xemacs.org>
+
+       Fixes crashes in kill-emacs on some systems.
+       * process-unix.c (unix_kill_child_process):
+       It's OK for kill() to fail with ESRCH.
+
+2001-02-07  Martin Buchholz  <martin@xemacs.org>
+
+       Contortions to make .gdbinit tricks work on most systems.
+       * alloc.c (dbg_inhibit_dbg_symbol_deletion): Keep debugger info.
+       * alloc.c (dbg_valmask): Make non-const.
+       * alloc.c (dbg_typemask): Make non-const.
+       * alloc.c (dbg_USE_UNION_TYPE): Make non-const.
+       * alloc.c (dbg_valbits): Make non-const.
+       * alloc.c (dbg_gctypebits): Make non-const.
+       * .gdbinit (decode_object): Make it work with AIX cc.
+
+2001-02-06  Martin Buchholz  <martin@xemacs.org>
+
+       * elhash.c (make_general_lisp_hash_table):
+       Use simpler and more efficient calloc to clear entries.
+
+2001-02-07  Martin Buchholz  <martin@xemacs.org>
+
+       * window.c (window_scroll): Work around an AIX C compiler bug.
+       Fixes 'scroll-up' does nothing problem with xlC.
+
+2001-02-05  Martin Buchholz  <martin@xemacs.org>
+
+       * .gdbinit: Remove obsolete comment.
+
+2001-01-31  Mike Alexander  <mta@arbortext.com>
+
+       * select.c (Fown_selection_internal): Set owned_p for device
+       method correctly.
+
+2001-02-01  Martin Buchholz  <martin@xemacs.org>
+
+       Port to g++ 2.97.
+       "not" cannot be used as a macro name as it is an operator in C++
+       * config.h.in: Stop #defining `not'.
+       * chartab.c (check_category_char): not ==> not_p
+       * chartab.h: Likewise.
+       * regex.c (re_match_2_internal): Likewise.
+
+2001-02-02  Martin Buchholz  <martin@xemacs.org>
+
+       * lisp-disunion.h: Fix up comments.
+
+2001-01-31  Martin Buchholz  <martin@xemacs.org>
+
+       * keymap.c (define_key_check_and_coerce_keysym):
+       (syms_of_keymap):
+       Support mouse-6 and mouse-7 bindings in the obvious way.
+
+2001-02-01  Martin Buchholz  <martin@xemacs.org>
+
+       * m/hp9000s300.h (UNEXEC): Check for HPUX, not !BSD.
+
+2001-01-30  Martin Buchholz  <martin@xemacs.org>
+
+       Previous patch changing DEFVAR_INT to use EMACS_INT was incomplete.
+       Previous patch missed DEFVAR_INT_MAGIC.
+       Make sure future DEFVAR_foo use correct types.
+       * symeval.h (DEFVAR_SYMVAL_FWD_FIXNUM): New.
+       * (DEFVAR_SYMVAL_FWD_INT): Add type checking.
+       * (DEFVAR_SYMVAL_FWD_OBJECT): Add type checking.
+       * (DEFVAR_INT_MAGIC): Use DEFVAR_SYMVAL_FWD_FIXNUM.
+       * (DEFVAR_INT): Likewise.
+       * redisplay.c (vertical_clip): Should be of type Fixnum.
+       * redisplay.c (horizontal_clip): Likewise.
+       * lisp.h (dump_add_opaque_int): New.
+       (dump_add_opaque_fixnum): New.
+
+2001-01-29  Andy Piper  <andy@xemacs.org>
+
+       * glyphs-widget.c (check_valid_int_or_function): allow symbols
+       since they can be eval'ed
+
+2001-01-29  Martin Buchholz  <martin@xemacs.org>
+
+       * lisp.h (ALIGNOF): Make it work on non-gcc C++ compilers.
+       Oops, XEmacs redefines `class'.  Use `typename' instead.
+
+2001-01-28  Martin Buchholz  <martin@xemacs.org>
+
+       * dumper.c: Fix C++ compile errors.
+
+2001-01-29  Martin Buchholz  <martin@xemacs.org>
+
+       * tparam.c: Use correct prototypes.
+
+2001-01-28  Martin Buchholz  <martin@xemacs.org>
+
+       * sysproc.h: #include util.h for NetBSD's openpty.
+
+2001-01-27  Martin Buchholz  <martin@xemacs.org>
+
+       More 64-bit correctness.
+       The C value of a DEFVAR_INT should be of type EMACS_INT, not int.
+       Use a typedef `fixnum' for the type used for DEFVAR_INT.
+       Fix up comments.
+       This finally finishes the 64-bit SGI port.
+       Fixes things like (let ((gc-cons-threshold most-positive-fixnum)) ...).
+       * symbols.c: Fix up comments and type casts.
+       * symbols.c (do_symval_forwarding): s/int/Fixnum/g
+       * symbols.c (store_symval_forwarding): s/int/Fixnum/g
+       * symeval.h (Fixnum): New type.
+       * symeval.h (symbol_value_type): Fix up comment.
+
+       * commands.h:
+       * nt.c:
+       * emacs.c:
+       * data.c:
+       * redisplay.c:
+       * abbrev.c:
+       * dired-msw.c:
+       * event-Xt.c:
+       * eldap.c:
+       * window.c:
+       * sound.c:
+       * event-stream.c:
+       * eval.c:
+       * buffer.c:
+       * mule-canna.c: A million DEFVAR_INTs here...
+       * mule-canna.c (count_char): s/int */Fixnum */g in arglist.
+       * extents.c:
+       * cmdloop.c:
+       * lisp.h:
+       * select-x.c:
+       * console-x.h:
+       * event-msw.c:
+       * mule-wnnfns.c:
+       * hpplay.c:
+       * ralloc.c:
+       * alloc.c:
+       * keymap.c:
+       * profile.c:
+       s/int/Fixnum/g in DEFVAR_INT declarations.
+
+2001-01-26  Martin Buchholz  <martin@xemacs.org>
+
+       Port pdump to SGI alignment-sensitive environment.
+       Lisp Object sizeof methods now return aligned sizes.  Rely on that.
+       Eliminate is_lrecord since Lisp_Objects sizeof methods are now all
+       properly aligned.
+       Define and use aligned reading and writing macros.
+       Use buffered stdio instead of posix i/o for faster dumping.
+       Eliminate kludgy 256 byte space for header.
+       Read and write from dump file using structs for alignment safety.
+       * dumper.c (pdump_align_stream): New.
+       * dumper.c (PDUMP_ALIGN_OUTPUT): New.
+       * dumper.c (PDUMP_READ_ALIGNED): New.
+       * dumper.c (PDUMP_WRITE_ALIGNED): New.
+       * dumper.c (pdump_static_Lisp_Object): New struct.
+       * dumper.c (pdump_static_pointer): New struct.
+       * dumper.c (pdump_entry_list_element): Remove is_lrecord member.
+       * dumper.c (pdump_add_entry): Remove is_lrecord parameter.
+       * dumper.c (pdump_dump_data): Rely on sizeof method alignment.
+       * dumper.c (pdump_allocate_offset): Rely on sizeof method alignment.
+
+       * dumper.c (pdump_backtrace):
+       * dumper.c (pdump_get_indirect_count):
+       * dumper.c (pdump_register_object):
+       * dumper.c (pdump_register_struct):
+       * dumper.c (pdump_reloc_one):
+       * dumper.c (pdump_scan_by_alignment):
+       * dumper.c (pdump_dump_from_root_struct_ptrs):
+       * dumper.c (pdump_dump_opaques):
+       * dumper.c (pdump_dump_rtables):
+       * dumper.c (pdump_dump_from_root_objects):
+       * dumper.c (pdump):
+       * dumper.c (pdump_load_finish):
+       Use aligned reading and writing.
+
+       * dumper.c (pdump_free): Make static.
+       * dumper.c (pdump_hFile): Likewise.
+       * dumper.c (pdump_hMap): Likewise.
+
 2001-01-26  Martin Buchholz <martin@xemacs.org>
 
        * XEmacs 21.2.43 "Terspichore" is released.
index 30b5993..34bf815 100644 (file)
@@ -69,7 +69,7 @@ Lisp_Object Vlast_abbrev;
 Lisp_Object Vlast_abbrev_text;
 
 /* Character address of start of last abbrev expanded */
-int last_abbrev_location;
+Fixnum last_abbrev_location;
 
 /* Hook to run before expanding any abbrev.  */
 Lisp_Object Vpre_abbrev_expand_hook, Qpre_abbrev_expand_hook;
index 37bc28a..7c71faf 100644 (file)
@@ -85,8 +85,8 @@ EXFUN (Fgarbage_collect, 0);
 #endif
 
 #ifdef DEBUG_XEMACS
-static int debug_allocation;
-static int debug_allocation_backtrace_length;
+static Fixnum debug_allocation;
+static Fixnum debug_allocation_backtrace_length;
 #endif
 
 /* Number of bytes of consing done since the last gc */
@@ -447,17 +447,31 @@ disksave_object_finalization_1 (void)
    about expressions in src/.gdbinit.  See src/.gdbinit or src/.dbxrc
    to see how this is used.  */
 
-const EMACS_UINT dbg_valmask = ((1UL << VALBITS) - 1) << GCBITS;
-const EMACS_UINT dbg_typemask = (1UL << GCTYPEBITS) - 1;
+EMACS_UINT dbg_valmask = ((1UL << VALBITS) - 1) << GCBITS;
+EMACS_UINT dbg_typemask = (1UL << GCTYPEBITS) - 1;
 
 #ifdef USE_UNION_TYPE
-const unsigned char dbg_USE_UNION_TYPE = 1;
+unsigned char dbg_USE_UNION_TYPE = 1;
 #else
-const unsigned char dbg_USE_UNION_TYPE = 0;
+unsigned char dbg_USE_UNION_TYPE = 0;
 #endif
 
-const unsigned char dbg_valbits = VALBITS;
-const unsigned char dbg_gctypebits = GCTYPEBITS;
+unsigned char dbg_valbits = VALBITS;
+unsigned char dbg_gctypebits = GCTYPEBITS;
+
+/* On some systems, the above definitions will be optimized away by
+   the compiler or linker unless they are referenced in some function. */
+long dbg_inhibit_dbg_symbol_deletion (void);
+long
+dbg_inhibit_dbg_symbol_deletion (void)
+{
+  return
+    (dbg_valmask +
+     dbg_typemask +
+     dbg_USE_UNION_TYPE +
+     dbg_valbits +
+     dbg_gctypebits);
+}
 
 /* Macros turned into functions for ease of debugging.
    Debuggers don't know about macros! */
index df789f2..0777574 100644 (file)
@@ -208,8 +208,8 @@ Lisp_Object Qfind_file_compare_truenames;
 Lisp_Object Qswitch_to_buffer;
 
 /* Two thresholds controlling how much undo information to keep.  */
-int undo_threshold;
-int undo_high_threshold;
+Fixnum undo_threshold;
+Fixnum undo_high_threshold;
 
 int find_file_compare_truenames;
 int find_file_use_truenames;
index ec6ab0f..3743698 100644 (file)
@@ -1611,7 +1611,7 @@ check_category_table (Lisp_Object object, Lisp_Object default_)
 
 int
 check_category_char (Emchar ch, Lisp_Object table,
-                    unsigned int designator, unsigned int not)
+                    unsigned int designator, unsigned int not_p)
 {
   REGISTER Lisp_Object temp;
   Lisp_Char_Table *ctbl;
@@ -1622,10 +1622,10 @@ check_category_char (Emchar ch, Lisp_Object table,
   ctbl = XCHAR_TABLE (table);
   temp = get_char_table (ch, ctbl);
   if (NILP (temp))
-    return not;
+    return not_p;
 
   designator -= ' ';
-  return bit_vector_bit (XBIT_VECTOR (temp), designator) ? !not : not;
+  return bit_vector_bit (XBIT_VECTOR (temp), designator) ? !not_p : not_p;
 }
 
 DEFUN ("check-category-at", Fcheck_category_at, 2, 4, 0, /*
index 3866640..f96aa7d 100644 (file)
@@ -201,7 +201,7 @@ extern Lisp_Object Vall_syntax_tables;
 
 #ifdef MULE
 int check_category_char(Emchar ch, Lisp_Object ctbl,
-                       unsigned int designator, unsigned int not);
+                       unsigned int designator, unsigned int not_p);
 
 extern Lisp_Object Vstandard_category_table;
 
index 80a99dc..024ed8a 100644 (file)
@@ -38,7 +38,7 @@ Boston, MA 02111-1307, USA.  */
 #include "window.h"
 
 /* Current depth in recursive edits.  */
-int command_loop_level;
+Fixnum command_loop_level;
 
 #ifndef LISP_COMMAND_LOOP
 /* Form to evaluate (if non-nil) when Emacs is started.  */
index 0c1d755..ef5bcb7 100644 (file)
@@ -110,7 +110,7 @@ extern Lisp_Object Vcommand_loop;
 /* #endif */
 DECLARE_DOESNT_RETURN (initial_command_loop (Lisp_Object));
 Lisp_Object call_command_loop (Lisp_Object catch_errors);
-extern int command_loop_level;
+extern Fixnum command_loop_level;
 
 extern Lisp_Object Vkeyboard_translate_table;
 extern Lisp_Object Vlast_input_time;
index 81d0e55..8857fa9 100644 (file)
@@ -345,6 +345,7 @@ void *alloca ();
 #undef HAVE_ISASTREAM  /* SysV streams */
 #undef HAVE_PTY_H      /* Linux, Tru64 openpty */
 #undef HAVE_LIBUTIL_H  /* BSD openpty */
+#undef HAVE_UTIL_H     /* NetBSD openpty */
 #undef HAVE_STROPTS_H  /* SysV streams */
 #undef HAVE_STRTIO_H   /* SysV streams TIOCSIGNAL */
 
@@ -831,7 +832,6 @@ on various systems. */
 #  define new   c_new
 #  define this  c_this
 #  define catch c_catch
-#  define not   c_not
 
 #  define EXTERN_C extern "C"
 # else /* C code */
index bd36a64..31252dd 100644 (file)
@@ -373,7 +373,7 @@ extern Lisp_Object Vdefault_x_device;
 /* Number of pixels below each line. */
 extern int x_interline_space; /* #### implement me */
 
-extern int x_selection_timeout;
+extern Fixnum x_selection_timeout;
 
 struct frame *x_any_window_to_frame (struct device *d, Window);
 struct frame *x_any_widget_or_parent_to_frame (struct device *d,
index 09cc4fd..b90b3ca 100644 (file)
@@ -71,7 +71,7 @@ Lisp_Object Qfloatp;
 
 int debug_issue_ebola_notices;
 
-int debug_ebola_backtrace_length;
+Fixnum debug_ebola_backtrace_length;
 
 int
 eq_with_ebola_notice (Lisp_Object obj1, Lisp_Object obj2)
index 73dfe42..73c5d10 100644 (file)
@@ -90,7 +90,7 @@ Boston, MA 02111-1307, USA.  */
 
 
 static int mswindows_ls_sort_case_insensitive;
-static int mswindows_ls_round_file_size;
+static Fixnum mswindows_ls_round_file_size;
 
 Lisp_Object            Qmswindows_insert_directory;
 
index 137ce96..d4bf7db 100644 (file)
@@ -1,5 +1,6 @@
 /* Portable data dumper for XEmacs.
    Copyright (C) 1999-2000 Olivier Galibert
+   Copyright (C) 2001 Martin Buchholz
 
 This file is part of XEmacs.
 
@@ -64,6 +65,18 @@ typedef struct
   Dynarr_declare (pdump_root_struct_ptr);
 } pdump_root_struct_ptr_dynarr;
 
+typedef struct
+{
+  Lisp_Object *address;
+  Lisp_Object value;
+} pdump_static_Lisp_Object;
+
+typedef struct
+{
+  char **address; /* char * for ease of doing relocation */
+  char * value;
+} pdump_static_pointer;
+
 static pdump_opaque_dynarr *pdump_opaques;
 static pdump_root_struct_ptr_dynarr *pdump_root_struct_ptrs;
 static Lisp_Object_ptr_dynarr *pdump_root_objects;
@@ -116,6 +129,33 @@ dump_add_weak_object_chain (Lisp_Object *varaddress)
 }
 \f
 
+inline static void
+pdump_align_stream (FILE *stream, size_t alignment)
+{
+  long offset = ftell (stream);
+  long adjustment = ALIGN_SIZE (offset, alignment) - offset;
+  if (adjustment)
+    fseek (stream, adjustment, SEEK_CUR);
+}
+
+#define PDUMP_ALIGN_OUTPUT(type) pdump_align_stream (pdump_out, ALIGNOF (type))
+
+#define PDUMP_WRITE(type, object) \
+fwrite (&object, sizeof (object), 1, pdump_out);
+
+#define PDUMP_WRITE_ALIGNED(type, object) do { \
+  PDUMP_ALIGN_OUTPUT (type);                   \
+  PDUMP_WRITE (type, object);                  \
+} while (0)
+
+#define PDUMP_READ(ptr, type) \
+(((type *) (ptr = (char*) (((type *) ptr) + 1)))[-1])
+
+#define PDUMP_READ_ALIGNED(ptr, type) \
+((ptr = (char *) ALIGN_PTR (ptr, ALIGNOF (type))), PDUMP_READ (ptr, type))
+
+\f
+
 typedef struct
 {
   const struct lrecord_description *desc;
@@ -150,13 +190,14 @@ pdump_objects_unmark (void)
 
 
 /* The structure of the file
- *
- * 0                   - header
- * 256                 - dumped objects
- * stab_offset         - nb_root_struct_ptrs*pair(void *, adr) for pointers to structures
- *                     - nb_opaques*pair(void *, size) for raw bits to restore
- *                     - relocation table
- *                      - wired variable address/value couples with the count preceding the list
+ 0             - header
+               - dumped objects
+ stab_offset   - nb_root_struct_ptrs*pair(void *, adr)
+                 for pointers to structures
+               - nb_opaques*pair(void *, size) for raw bits to restore
+               - relocation table
+               - root lisp object address/value couples with the count
+                 preceding the list
  */
 
 
@@ -173,17 +214,18 @@ typedef struct
   int nb_opaques;
 } pdump_header;
 
-char *pdump_start, *pdump_end;
+char *pdump_start;
+char *pdump_end;
 static size_t pdump_length;
 
 #ifdef WIN32_NATIVE
 /* Handle for the dump file */
-HANDLE pdump_hFile = INVALID_HANDLE_VALUE;
+static HANDLE pdump_hFile = INVALID_HANDLE_VALUE;
 /* Handle for the file mapping object for the dump file */
-HANDLE pdump_hMap = INVALID_HANDLE_VALUE;
+static HANDLE pdump_hMap = INVALID_HANDLE_VALUE;
 #endif
 
-void (*pdump_free) (void);
+static void (*pdump_free) (void);
 
 static const unsigned char pdump_align_table[256] =
 {
@@ -211,7 +253,6 @@ typedef struct pdump_entry_list_elmt
   const void *obj;
   size_t size;
   int count;
-  int is_lrecord;
   EMACS_INT save_offset;
 } pdump_entry_list_elmt;
 
@@ -245,6 +286,7 @@ static unsigned long cur_offset;
 static size_t max_size;
 static int pdump_fd;
 static void *pdump_buf;
+static FILE *pdump_out;
 
 #define PDUMP_HASHSIZE 200001
 
@@ -278,7 +320,8 @@ pdump_get_entry (const void *obj)
 }
 
 static void
-pdump_add_entry (pdump_entry_list *list, const void *obj, size_t size, int count, int is_lrecord)
+pdump_add_entry (pdump_entry_list *list, const void *obj, size_t size,
+                int count)
 {
   pdump_entry_list_elmt *e;
   int align;
@@ -300,15 +343,12 @@ pdump_add_entry (pdump_entry_list *list, const void *obj, size_t size, int count
   e->obj = obj;
   e->size = size;
   e->count = count;
-  e->is_lrecord = is_lrecord;
   list->first = e;
 
   list->count += count;
   pdump_hash[pos] = e;
 
   align = pdump_align_table[size & 255];
-  if (align < 2 && is_lrecord)
-    align = 2;
 
   if (align < list->align)
     list->align = align;
@@ -357,22 +397,28 @@ pdump_backtrace (void)
   for (i=0;i<depth;i++)
     {
       if (!backtrace[i].obj)
-       stderr_out ("  - ind. (%d, %d)\n", backtrace[i].position, backtrace[i].offset);
+       stderr_out ("  - ind. (%d, %d)\n",
+                   backtrace[i].position,
+                   backtrace[i].offset);
       else
        {
          stderr_out ("  - %s (%d, %d)\n",
-                  LHEADER_IMPLEMENTATION (backtrace[i].obj)->name,
-                  backtrace[i].position,
-                  backtrace[i].offset);
+                     LHEADER_IMPLEMENTATION (backtrace[i].obj)->name,
+                     backtrace[i].position,
+                     backtrace[i].offset);
        }
     }
 }
 
 static void pdump_register_object (Lisp_Object obj);
-static void pdump_register_struct (const void *data, const struct struct_description *sdesc, int count);
+static void pdump_register_struct (const void *data,
+                                  const struct struct_description *sdesc,
+                                  int count);
 
 static EMACS_INT
-pdump_get_indirect_count (EMACS_INT code, const struct lrecord_description *idesc, const void *idata)
+pdump_get_indirect_count (EMACS_INT code,
+                         const struct lrecord_description *idesc,
+                         const void *idata)
 {
   EMACS_INT count;
   const void *irdata;
@@ -396,7 +442,8 @@ pdump_get_indirect_count (EMACS_INT code, const struct lrecord_description *ides
       count = *(Bytecount *)irdata;
       break;
     default:
-      stderr_out ("Unsupported count type : %d (line = %d, code=%ld)\n", idesc[line].type, line, (long)code);
+      stderr_out ("Unsupported count type : %d (line = %d, code=%ld)\n",
+                 idesc[line].type, line, (long)code);
       pdump_backtrace ();
       abort ();
     }
@@ -437,24 +484,21 @@ pdump_register_sub (const void *data, const struct lrecord_description *desc, in
              count = pdump_get_indirect_count (count, desc, data);
 
            pdump_add_entry (&pdump_opaque_data_list,
-                            *(void **)rdata,
-                            count,
-                            1,
-                            0);
+                            *(void **)rdata, count, 1);
            break;
          }
        case XD_C_STRING:
          {
            const char *str = *(const char **)rdata;
            if (str)
-             pdump_add_entry (&pdump_opaque_data_list, str, strlen (str)+1, 1, 0);
+             pdump_add_entry (&pdump_opaque_data_list, str, strlen (str)+1, 1);
            break;
          }
        case XD_DOC_STRING:
          {
            const char *str = *(const char **)rdata;
            if ((EMACS_INT)str > 0)
-             pdump_add_entry (&pdump_opaque_data_list, str, strlen (str)+1, 1, 0);
+             pdump_add_entry (&pdump_opaque_data_list, str, strlen (str)+1, 1);
            break;
          }
        case XD_LISP_OBJECT:
@@ -510,6 +554,7 @@ static void
 pdump_register_object (Lisp_Object obj)
 {
   struct lrecord_header *objh;
+  const struct lrecord_implementation *imp;
 
   if (!POINTER_TYPE_P (XTYPE (obj)))
     return;
@@ -521,7 +566,9 @@ pdump_register_object (Lisp_Object obj)
   if (pdump_get_entry (objh))
     return;
 
-  if (LHEADER_IMPLEMENTATION (objh)->description)
+  imp = LHEADER_IMPLEMENTATION (objh);
+
+  if (imp->description)
     {
       int me = depth++;
       if (me>65536)
@@ -535,26 +582,25 @@ pdump_register_object (Lisp_Object obj)
 
       pdump_add_entry (pdump_object_table + objh->type,
                       objh,
-                      LHEADER_IMPLEMENTATION (objh)->static_size ?
-                      LHEADER_IMPLEMENTATION (objh)->static_size :
-                      LHEADER_IMPLEMENTATION (objh)->size_in_bytes_method (objh),
-                      1,
+                      imp->static_size ?
+                      imp->static_size :
+                      imp->size_in_bytes_method (objh),
                       1);
-      pdump_register_sub (objh,
-                         LHEADER_IMPLEMENTATION (objh)->description,
-                         me);
+      pdump_register_sub (objh, imp->description, me);
       --depth;
     }
   else
     {
       pdump_alert_undump_object[objh->type]++;
-      stderr_out ("Undumpable object type : %s\n", LHEADER_IMPLEMENTATION (objh)->name);
+      stderr_out ("Undumpable object type : %s\n", imp->name);
       pdump_backtrace ();
     }
 }
 
 static void
-pdump_register_struct (const void *data, const struct struct_description *sdesc, int count)
+pdump_register_struct (const void *data,
+                      const struct struct_description *sdesc,
+                      int count)
 {
   if (data && !pdump_get_entry (data))
     {
@@ -570,10 +616,7 @@ pdump_register_struct (const void *data, const struct struct_description *sdesc,
       backtrace[me].offset = 0;
 
       pdump_add_entry (pdump_get_entry_list (sdesc),
-                      data,
-                      sdesc->size,
-                      count,
-                      0);
+                      data, sdesc->size, count);
       for (i=0; i<count; i++)
        {
          pdump_register_sub (((char *)data) + sdesc->size*i,
@@ -585,7 +628,8 @@ pdump_register_struct (const void *data, const struct struct_description *sdesc,
 }
 
 static void
-pdump_dump_data (pdump_entry_list_elmt *elmt, const struct lrecord_description *desc)
+pdump_dump_data (pdump_entry_list_elmt *elmt,
+                const struct lrecord_description *desc)
 {
   size_t size = elmt->size;
   int count = elmt->count;
@@ -679,17 +723,16 @@ pdump_dump_data (pdump_entry_list_elmt *elmt, const struct lrecord_description *
                default:
                  stderr_out ("Unsupported dump type : %d\n", desc[pos].type);
                  abort ();
-               };
+               }
            }
        }
     }
-  write (pdump_fd, desc ? pdump_buf : elmt->obj, size*count);
-  if (elmt->is_lrecord && ((size*count) & 3))
-    write (pdump_fd, "\0\0\0", 4-((size*count) & 3));
+  fwrite (desc ? pdump_buf : elmt->obj, size, count, pdump_out);
 }
 
 static void
-pdump_reloc_one (void *data, EMACS_INT delta, const struct lrecord_description *desc)
+pdump_reloc_one (void *data, EMACS_INT delta,
+                const struct lrecord_description *desc)
 {
   int pos;
 
@@ -763,9 +806,10 @@ pdump_reloc_one (void *data, EMACS_INT delta, const struct lrecord_description *
 }
 
 static void
-pdump_allocate_offset (pdump_entry_list_elmt *elmt, const struct lrecord_description *desc)
+pdump_allocate_offset (pdump_entry_list_elmt *elmt,
+                      const struct lrecord_description *desc)
 {
-  size_t size = (elmt->is_lrecord ? (elmt->size + 3) & ~3 : elmt->size)*elmt->count;
+  size_t size = elmt->count * elmt->size;
   elmt->save_offset = cur_offset;
   if (size>max_size)
     max_size = size;
@@ -773,7 +817,8 @@ pdump_allocate_offset (pdump_entry_list_elmt *elmt, const struct lrecord_descrip
 }
 
 static void
-pdump_scan_by_alignment (void (*f)(pdump_entry_list_elmt *, const struct lrecord_description *))
+pdump_scan_by_alignment (void (*f)(pdump_entry_list_elmt *,
+                                  const struct lrecord_description *))
 {
   int align, i;
   const struct lrecord_description *idesc;
@@ -817,17 +862,18 @@ pdump_scan_by_alignment (void (*f)(pdump_entry_list_elmt *, const struct lrecord
 }
 
 static void
-pdump_dump_from_root_struct_ptrs (void)
+pdump_dump_root_struct_ptrs (void)
 {
   int i;
-  for (i = 0; i < Dynarr_length (pdump_root_struct_ptrs); i++)
+  size_t count = Dynarr_length (pdump_root_struct_ptrs);
+  pdump_static_pointer *data = alloca_array (pdump_static_pointer, count);
+  for (i = 0; i < count; i++)
     {
-      EMACS_INT adr;
-      pdump_root_struct_ptr *info = Dynarr_atp (pdump_root_struct_ptrs, i);
-      write (pdump_fd, &info->ptraddress, sizeof (info->ptraddress));
-      adr = pdump_get_entry (*(info->ptraddress))->save_offset;
-      write (pdump_fd, &adr, sizeof (adr));
+      data[i].address = (char **) Dynarr_atp (pdump_root_struct_ptrs, i)->ptraddress;
+      data[i].value   = (char *) pdump_get_entry (* data[i].address)->save_offset;
     }
+  PDUMP_ALIGN_OUTPUT (pdump_static_pointer);
+  fwrite (data, sizeof (pdump_static_pointer), count, pdump_out);
 }
 
 static void
@@ -837,8 +883,8 @@ pdump_dump_opaques (void)
   for (i = 0; i < Dynarr_length (pdump_opaques); i++)
     {
       pdump_opaque *info = Dynarr_atp (pdump_opaques, i);
-      write (pdump_fd, info, sizeof (*info));
-      write (pdump_fd, info->varaddress, info->size);
+      PDUMP_WRITE_ALIGNED (pdump_opaque, *info);
+      fwrite (info->varaddress, info->size, 1, pdump_out);
     }
 }
 
@@ -856,32 +902,32 @@ pdump_dump_rtables (void)
        continue;
       rt.desc = lrecord_implementations_table[i]->description;
       rt.count = pdump_object_table[i].count;
-      write (pdump_fd, &rt, sizeof (rt));
+      PDUMP_WRITE_ALIGNED (pdump_reloc_table, rt);
       while (elmt)
        {
          EMACS_INT rdata = pdump_get_entry (elmt->obj)->save_offset;
-         write (pdump_fd, &rdata, sizeof (rdata));
+         PDUMP_WRITE_ALIGNED (EMACS_INT, rdata);
          elmt = elmt->next;
        }
     }
 
   rt.desc = 0;
   rt.count = 0;
-  write (pdump_fd, &rt, sizeof (rt));
+  PDUMP_WRITE_ALIGNED (pdump_reloc_table, rt);
 
   for (i=0; i<pdump_struct_table.count; i++)
     {
       elmt = pdump_struct_table.list[i].list.first;
       rt.desc = pdump_struct_table.list[i].sdesc->description;
       rt.count = pdump_struct_table.list[i].list.count;
-      write (pdump_fd, &rt, sizeof (rt));
+      PDUMP_WRITE_ALIGNED (pdump_reloc_table, rt);
       while (elmt)
        {
          EMACS_INT rdata = pdump_get_entry (elmt->obj)->save_offset;
          int j;
          for (j=0; j<elmt->count; j++)
            {
-             write (pdump_fd, &rdata, sizeof (rdata));
+             PDUMP_WRITE_ALIGNED (EMACS_INT, rdata);
              rdata += elmt->size;
            }
          elmt = elmt->next;
@@ -889,48 +935,55 @@ pdump_dump_rtables (void)
     }
   rt.desc = 0;
   rt.count = 0;
-  write (pdump_fd, &rt, sizeof (rt));
+  PDUMP_WRITE_ALIGNED (pdump_reloc_table, rt);
 }
 
 static void
-pdump_dump_from_root_objects (void)
+pdump_dump_root_objects (void)
 {
-  size_t count = Dynarr_length (pdump_root_objects) + Dynarr_length (pdump_weak_object_chains);
+  size_t count = (Dynarr_length (pdump_root_objects) +
+                 Dynarr_length (pdump_weak_object_chains));
   size_t i;
 
-  write (pdump_fd, &count, sizeof (count));
+  PDUMP_WRITE_ALIGNED (size_t, count);
+  PDUMP_ALIGN_OUTPUT (pdump_static_Lisp_Object);
 
   for (i=0; i<Dynarr_length (pdump_root_objects); i++)
     {
-      Lisp_Object obj = * Dynarr_at (pdump_root_objects, i);
-      if (POINTER_TYPE_P (XTYPE (obj)))
-       obj = wrap_object ((void *) pdump_get_entry (XRECORD_LHEADER (obj))->save_offset);
-      write (pdump_fd, Dynarr_atp (pdump_root_objects, i), sizeof (Dynarr_atp (pdump_root_objects, i)));
-      write (pdump_fd, &obj, sizeof (obj));
+      pdump_static_Lisp_Object obj;
+      obj.address = Dynarr_at (pdump_root_objects, i);
+      obj.value   = * obj.address;
+      
+      if (POINTER_TYPE_P (XTYPE (obj.value)))
+       obj.value = wrap_object ((void *) pdump_get_entry (XRECORD_LHEADER (obj.value))->save_offset);
+      
+      PDUMP_WRITE (pdump_static_Lisp_Object, obj);
     }
 
   for (i=0; i<Dynarr_length (pdump_weak_object_chains); i++)
     {
-      Lisp_Object obj = * Dynarr_at (pdump_weak_object_chains, i);
       pdump_entry_list_elmt *elmt;
+      pdump_static_Lisp_Object obj;
 
+      obj.address = Dynarr_at (pdump_weak_object_chains, i);
+      obj.value   = * obj.address;
+      
       for (;;)
        {
          const struct lrecord_description *desc;
          int pos;
-         elmt = pdump_get_entry (XRECORD_LHEADER (obj));
+         elmt = pdump_get_entry (XRECORD_LHEADER (obj.value));
          if (elmt)
            break;
-         desc = XRECORD_LHEADER_IMPLEMENTATION (obj)->description;
+         desc = XRECORD_LHEADER_IMPLEMENTATION (obj.value)->description;
          for (pos = 0; desc[pos].type != XD_LO_LINK; pos++)
            assert (desc[pos].type != XD_END);
 
-         obj = *(Lisp_Object *)(desc[pos].offset + (char *)(XRECORD_LHEADER (obj)));
+         obj.value = *(Lisp_Object *)(desc[pos].offset + (char *)(XRECORD_LHEADER (obj.value)));
        }
-      obj = wrap_object ((void *) elmt->save_offset);
+      obj.value = wrap_object ((void *) elmt->save_offset);
 
-      write (pdump_fd, Dynarr_atp (pdump_weak_object_chains, i), sizeof (Lisp_Object *));
-      write (pdump_fd, &obj, sizeof (obj));
+      PDUMP_WRITE (pdump_static_Lisp_Object, obj);
     }
 }
 
@@ -940,7 +993,7 @@ pdump (void)
   int i;
   Lisp_Object t_console, t_device, t_frame;
   int none;
-  pdump_header hd;
+  pdump_header header;
 
   flush_all_buffer_local_cache ();
 
@@ -992,37 +1045,41 @@ pdump (void)
       pdump_register_struct (*(info.ptraddress), info.desc, 1);
     }
 
-  memcpy (hd.signature, PDUMP_SIGNATURE, PDUMP_SIGNATURE_LEN);
-  hd.id = dump_id;
-  hd.reloc_address = 0;
-  hd.nb_root_struct_ptrs = Dynarr_length (pdump_root_struct_ptrs);
-  hd.nb_opaques = Dynarr_length (pdump_opaques);
+  memcpy (header.signature, PDUMP_SIGNATURE, PDUMP_SIGNATURE_LEN);
+  header.id = dump_id;
+  header.reloc_address = 0;
+  header.nb_root_struct_ptrs = Dynarr_length (pdump_root_struct_ptrs);
+  header.nb_opaques = Dynarr_length (pdump_opaques);
 
-  cur_offset = 256;
+  cur_offset = ALIGN_SIZE (sizeof (header), ALIGNOF (max_align_t));
   max_size = 0;
 
   pdump_scan_by_alignment (pdump_allocate_offset);
+  cur_offset = ALIGN_SIZE (cur_offset, ALIGNOF (max_align_t));
+  header.stab_offset = cur_offset;
 
   pdump_buf = xmalloc (max_size);
   /* Avoid use of the `open' macro.  We want the real function. */
 #undef open
   pdump_fd = open (EMACS_PROGNAME ".dmp",
                   O_WRONLY | O_CREAT | O_TRUNC | OPEN_BINARY, 0666);
-  hd.stab_offset = (cur_offset + 3) & ~3;
+  pdump_out = fdopen (pdump_fd, "w");
 
-  write (pdump_fd, &hd, sizeof (hd));
-  lseek (pdump_fd, 256, SEEK_SET);
+  fwrite (&header, sizeof (header), 1, pdump_out);
+  PDUMP_ALIGN_OUTPUT (max_align_t);
 
   pdump_scan_by_alignment (pdump_dump_data);
 
-  lseek (pdump_fd, hd.stab_offset, SEEK_SET);
+  fseek (pdump_out, header.stab_offset, SEEK_SET);
 
-  pdump_dump_from_root_struct_ptrs ();
+  pdump_dump_root_struct_ptrs ();
   pdump_dump_opaques ();
   pdump_dump_rtables ();
-  pdump_dump_from_root_objects ();
+  pdump_dump_root_objects ();
 
+  fclose (pdump_out);
   close (pdump_fd);
+
   free (pdump_buf);
 
   free (pdump_hash);
@@ -1040,6 +1097,9 @@ pdump_load_check (void)
          && ((pdump_header *)pdump_start)->id == dump_id);
 }
 
+/*----------------------------------------------------------------------*/
+/*                     Reading the dump file                           */
+/*----------------------------------------------------------------------*/
 static int
 pdump_load_finish (void)
 {
@@ -1047,25 +1107,25 @@ pdump_load_finish (void)
   char *p;
   EMACS_INT delta;
   EMACS_INT count;
+  pdump_header *header = (pdump_header *)pdump_start;
 
   pdump_end = pdump_start + pdump_length;
 
-#define PDUMP_READ(p, type) (p = (char*) (((type *) p) + 1), *((type *) p - 1))
-
-  delta = ((EMACS_INT)pdump_start) - ((pdump_header *)pdump_start)->reloc_address;
-  p = pdump_start + ((pdump_header *)pdump_start)->stab_offset;
+  delta = ((EMACS_INT)pdump_start) - header->reloc_address;
+  p = pdump_start + header->stab_offset;
 
   /* Put back the pdump_root_struct_ptrs */
-  for (i=0; i<((pdump_header *)pdump_start)->nb_root_struct_ptrs; i++)
+  p = (char *) ALIGN_PTR (p, ALIGNOF (pdump_static_pointer));
+  for (i=0; i<header->nb_root_struct_ptrs; i++)
     {
-      void **adr = PDUMP_READ (p, void **);
-      *adr = (void *) (PDUMP_READ (p, char *) + delta);
+      pdump_static_pointer ptr = PDUMP_READ (p, pdump_static_pointer);
+      (* ptr.address) = ptr.value + delta;
     }
 
   /* Put back the pdump_opaques */
-  for (i=0; i<((pdump_header *)pdump_start)->nb_opaques; i++)
+  for (i=0; i<header->nb_opaques; i++)
     {
-      pdump_opaque info = PDUMP_READ (p, pdump_opaque);
+      pdump_opaque info = PDUMP_READ_ALIGNED (p, pdump_opaque);
       memcpy (info.varaddress, p, info.size);
       p += info.size;
     }
@@ -1075,31 +1135,33 @@ pdump_load_finish (void)
   count = 2;
   for (;;)
     {
-      pdump_reloc_table rt = PDUMP_READ (p, pdump_reloc_table);
+      pdump_reloc_table rt = PDUMP_READ_ALIGNED (p, pdump_reloc_table);
+      p = (char *) ALIGN_PTR (p, ALIGNOF (char *));
       if (rt.desc)
        {
+         char **reloc = (char **)p;
          for (i=0; i < rt.count; i++)
            {
-             char *adr = delta + *(char **)p;
-             *(char **)p = adr;
-             pdump_reloc_one (adr, delta, rt.desc);
-             p += sizeof (char *);
+             reloc[i] += delta;
+             pdump_reloc_one (reloc[i], delta, rt.desc);
            }
+         p += rt.count * sizeof (char *);
        } else
          if (!(--count))
            break;
     }
 
   /* Put the pdump_root_objects variables in place */
-  for (i = PDUMP_READ (p, size_t); i; i--)
+  i = PDUMP_READ_ALIGNED (p, size_t);
+  p = (char *) ALIGN_PTR (p, ALIGNOF (pdump_static_Lisp_Object));
+  while (i--)
     {
-      Lisp_Object *var = PDUMP_READ (p, Lisp_Object *);
-      Lisp_Object  obj = PDUMP_READ (p, Lisp_Object);
+      pdump_static_Lisp_Object obj = PDUMP_READ (p, pdump_static_Lisp_Object);
 
-      if (POINTER_TYPE_P (XTYPE (obj)))
-       obj = wrap_object ((char *) XPNTR (obj) + delta);
+      if (POINTER_TYPE_P (XTYPE (obj.value)))
+       obj.value = wrap_object ((char *) XPNTR (obj.value) + delta);
 
-      *var = obj;
+      (* obj.address) = obj.value;
     }
 
   /* Final cleanups */
@@ -1107,7 +1169,8 @@ pdump_load_finish (void)
   p = pdump_rt_list;
   for (;;)
     {
-      pdump_reloc_table rt = PDUMP_READ (p, pdump_reloc_table);
+      pdump_reloc_table rt = PDUMP_READ_ALIGNED (p, pdump_reloc_table);
+      p = (char *) ALIGN_PTR (p, ALIGNOF (Lisp_Object));
       if (!rt.desc)
        break;
       if (rt.desc == hash_table_description)
index 70a8603..16756e5 100644 (file)
@@ -40,7 +40,7 @@ Boston, MA 02111-1307, USA.  */
 
 #include "eldap.h"
 
-static int ldap_default_port;
+static Fixnum ldap_default_port;
 static Lisp_Object Vldap_default_base;
 
 /* Needed by the lrecord definition */
index 8677f95..5bf3476 100644 (file)
@@ -440,7 +440,7 @@ make_standard_lisp_hash_table (enum hash_table_test test,
                               double rehash_threshold,
                               enum hash_table_weakness weakness)
 {
-  hash_table_hash_function_t hash_function =  0;
+  hash_table_hash_function_t hash_function = 0;
   hash_table_test_function_t test_function = 0;
 
   switch (test)
@@ -500,13 +500,7 @@ make_general_lisp_hash_table (hash_table_hash_function_t hash_function,
   compute_hash_table_derived_values (ht);
 
   /* We leave room for one never-occupied sentinel hentry at the end.  */
-  ht->hentries = xnew_array (hentry, ht->size + 1);
-
-  {
-    hentry *e, *sentinel;
-    for (e = ht->hentries, sentinel = e + ht->size; e <= sentinel; e++)
-      CLEAR_HENTRY (e);
-  }
+  ht->hentries = xnew_array_and_zero (hentry, ht->size + 1);
 
   XSETHASH_TABLE (hash_table, ht);
 
index d10e505..2659e88 100644 (file)
@@ -304,7 +304,7 @@ Lisp_Object Vconfigure_exec_prefix_directory, Vconfigure_prefix_directory;
 /* If nonzero, set XEmacs to run at this priority.  This is also used
    in child_setup and sys_suspend to make sure subshells run at normal
    priority. */
-int emacs_priority;
+Fixnum emacs_priority;
 
 /* Some FSF junk with running_asynch_code, to preserve the match
    data.  Not necessary because we don't call process filters
index cf07fc2..00d15e9 100644 (file)
@@ -163,13 +163,13 @@ struct specbinding *specpdl_ptr;
 int specpdl_depth_counter;
 
 /* Maximum size allowed for specpdl allocation */
-int max_specpdl_size;
+Fixnum max_specpdl_size;
 
 /* Depth in Lisp evaluations and function calls.  */
 static int lisp_eval_depth;
 
 /* Maximum allowed depth in Lisp evaluations and function calls.  */
-int max_lisp_eval_depth;
+Fixnum max_lisp_eval_depth;
 
 /* Nonzero means enter debugger before next function call */
 static int debug_on_next_call;
index 04b54d3..8c55b2b 100644 (file)
@@ -87,7 +87,7 @@ XtAppContext Xt_app_con;
 int x_allow_sendevents;
 
 #ifdef DEBUG_XEMACS
-int debug_x_events;
+Fixnum debug_x_events;
 #endif
 
 static int process_events_occurred;
index 7055984..f098d73 100644 (file)
@@ -146,13 +146,13 @@ int mswindows_quit_chars_count = 0;
 /* These are Lisp integers; see DEFVARS in this file for description. */
 int mswindows_dynamic_frame_resize;
 int mswindows_alt_by_itself_activates_menu;
-int mswindows_num_mouse_buttons;
-int mswindows_mouse_button_max_skew_x;
-int mswindows_mouse_button_max_skew_y;
-int mswindows_mouse_button_tolerance;
+Fixnum mswindows_num_mouse_buttons;
+Fixnum mswindows_mouse_button_max_skew_x;
+Fixnum mswindows_mouse_button_max_skew_y;
+Fixnum mswindows_mouse_button_tolerance;
 
 #ifdef DEBUG_XEMACS
-int debug_mswindows_events;
+Fixnum debug_mswindows_events;
 #endif
 
 /* This is the event signaled by the event pump.
index 063b9e2..847ab65 100644 (file)
@@ -100,7 +100,7 @@ Boston, MA 02111-1307, USA.  */
 #include <errno.h>
 
 /* The number of keystrokes between auto-saves. */
-static int auto_save_interval;
+static Fixnum auto_save_interval;
 
 Lisp_Object Qundefined_keystroke_sequence;
 
@@ -250,7 +250,7 @@ Lisp_Object Qself_insert_defer_undo;
 extern Lisp_Object Fmake_keymap (Lisp_Object name);
 
 #ifdef DEBUG_XEMACS
-int debug_emacs_events;
+Fixnum debug_emacs_events;
 
 static void
 external_debugging_print_event (char *event_description, Lisp_Object event)
index a79f7d6..95a059b 100644 (file)
@@ -406,7 +406,7 @@ typedef int Endpoint_Index;
 #define DE_MUST_BE_ATTACHED 2
 
 Lisp_Object Vlast_highlighted_extent;
-int mouse_highlight_priority;
+Fixnum mouse_highlight_priority;
 
 Lisp_Object Qextentp;
 Lisp_Object Qextent_live_p;
index fd754c6..be7b5fa 100644 (file)
@@ -150,7 +150,7 @@ check_valid_callback (Lisp_Object data)
 static void
 check_valid_int_or_function (Lisp_Object data)
 {
-  if (!INTP (data) && !CONSP (data))
+  if (!INTP (data) && !CONSP (data) && !SYMBOLP (data))
     invalid_argument ("must be an integer or expresssion", data);
 }
 
@@ -1021,6 +1021,8 @@ layout_update (Lisp_Object image_instance, Lisp_Object instantiator)
          /* Instantiate any new glyphs. */
          for (; !NILP (items); items = XCDR (items))
            {
+             /* #### We really want to use call_with_suspended_errors
+                here, but it won't allow us to call lisp. */
              border = Fcons (call1 (Qmake_glyph, XCAR (items)), border);
            }
          IMAGE_INSTANCE_LAYOUT_CHILDREN (ii) = Fnreverse (border);
index 9036452..9499385 100644 (file)
@@ -66,7 +66,7 @@ Boston, MA 02111-1307, USA.  */
 
 Lisp_Object Vhp_play_server;
 Lisp_Object Vhp_play_speaker;
-int         hp_play_gain;
+Fixnum      hp_play_gain;
 
 /* Functions */
 
index cd66cef..4aa26f7 100644 (file)
@@ -189,7 +189,7 @@ static Lisp_Object Vvertical_divider_map;
    so that things which care (such as the menubar code) can recompute
    privately-cached data when the user has changed keybindings.
  */
-int keymap_tick;
+Fixnum keymap_tick;
 
 /* Prefixing a key with this character is the same as sending a meta bit. */
 Lisp_Object Vmeta_prefix_char;
@@ -221,9 +221,13 @@ Lisp_Object Qbutton4up, Qbutton5up, Qbutton6up, Qbutton7up;
 
 Lisp_Object Qmenu_selection;
 /* Emacs compatibility */
-Lisp_Object Qdown_mouse_1, Qdown_mouse_2, Qdown_mouse_3, Qdown_mouse_4,
-  Qdown_mouse_5;
-Lisp_Object Qmouse_1, Qmouse_2, Qmouse_3, Qmouse_4, Qmouse_5;
+Lisp_Object Qdown_mouse_1, Qmouse_1;
+Lisp_Object Qdown_mouse_2, Qmouse_2;
+Lisp_Object Qdown_mouse_3, Qmouse_3;
+Lisp_Object Qdown_mouse_4, Qmouse_4;
+Lisp_Object Qdown_mouse_5, Qmouse_5;
+Lisp_Object Qdown_mouse_6, Qmouse_6;
+Lisp_Object Qdown_mouse_7, Qmouse_7;
 
 /* Kludge kludge kludge */
 Lisp_Object QLFD, QTAB, QRET, QESC, QDEL, QSPC, QBS;
@@ -1366,6 +1370,10 @@ define_key_check_and_coerce_keysym (Lisp_Object spec,
        *keysym = Qbutton4;
       else if (EQ(*keysym, Qdown_mouse_5))
        *keysym = Qbutton5;
+      else if (EQ(*keysym, Qdown_mouse_6))
+       *keysym = Qbutton6;
+      else if (EQ(*keysym, Qdown_mouse_7))
+       *keysym = Qbutton7;
       else if (EQ(*keysym, Qmouse_1))
        *keysym = Qbutton1up;
       else if (EQ(*keysym, Qmouse_2))
@@ -1376,6 +1384,10 @@ define_key_check_and_coerce_keysym (Lisp_Object spec,
        *keysym = Qbutton4up;
       else if (EQ(*keysym, Qmouse_5))
        *keysym = Qbutton5up;
+      else if (EQ(*keysym, Qmouse_6))
+       *keysym = Qbutton6up;
+      else if (EQ(*keysym, Qmouse_7))
+       *keysym = Qbutton7up;
     }
 }
 
@@ -4281,11 +4293,15 @@ syms_of_keymap (void)
   defsymbol (&Qmouse_3, "mouse-3");
   defsymbol (&Qmouse_4, "mouse-4");
   defsymbol (&Qmouse_5, "mouse-5");
+  defsymbol (&Qmouse_6, "mouse-6");
+  defsymbol (&Qmouse_7, "mouse-7");
   defsymbol (&Qdown_mouse_1, "down-mouse-1");
   defsymbol (&Qdown_mouse_2, "down-mouse-2");
   defsymbol (&Qdown_mouse_3, "down-mouse-3");
   defsymbol (&Qdown_mouse_4, "down-mouse-4");
   defsymbol (&Qdown_mouse_5, "down-mouse-5");
+  defsymbol (&Qdown_mouse_6, "down-mouse-6");
+  defsymbol (&Qdown_mouse_7, "down-mouse-7");
   defsymbol (&Qmenu_selection, "menu-selection");
   defsymbol (&QLFD, "LFD");
   defsymbol (&QTAB, "TAB");
index a42cad6..2343e04 100644 (file)
@@ -38,28 +38,30 @@ Boston, MA 02111-1307, USA.  */
             VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVT
 
  For integral Lisp types, i.e. integers and characters, the value
- bits are the Lisp object.
+ bits are the Lisp object.  Some people call such Lisp_Objects "immediate".
 
-     The object is obtained by masking off the type and mark bits.
-     Bit 1 is used as a value bit by splitting the Lisp integer type
-     into two subtypes, Lisp_Type_Int_Even and Lisp_Type_Int_Odd.  By
-     this trickery we get 31 bits for integers instead of 30.
+ The object is obtained by masking off the type bits.
+ Bit 1 is used as a value bit by splitting the Lisp integer type
+ into two subtypes, Lisp_Type_Int_Even and Lisp_Type_Int_Odd.
+ By this trickery we get 31 bits for integers instead of 30.
 
  For non-integral types, the value bits of a Lisp_Object contain
  a pointer to a structure containing the object.  The pointer is
  obtained by masking off the type and mark bits.
 
-     All pointer-based types are coalesced under a single type called
-     Lisp_Type_Record.  The type bits for this type are required
-     by the implementation to be 00, just like the least
-     significant bits of word-aligned struct pointers on 32-bit
-     hardware.  Because of this, Lisp_Object pointers don't have
-     to be masked and are full-sized.
+ All pointer-based types are coalesced under a single type called
+ Lisp_Type_Record.  The type bits for this type are required by the
+ implementation to be 00, just like the least significant bits of
+ word-aligned struct pointers on 32-bit hardware.  This requires that
+ all structs implementing Lisp_Objects have an alignment of at least 4
+ bytes.  Because of this, Lisp_Object pointers don't have to be masked
+ and are full-sized.
 
- There are no mark bits.
- Integers and characters don't need to be marked.  All other types
- are lrecord-based, which means they get marked by incrementing
- their ->implementation pointer.
+ There are no mark bits in the Lisp_Object itself (there used to be).
+
+ Integers and characters don't need to be marked.  All other types are
+ lrecord-based, which means they get marked by setting the mark bit in
+ the struct lrecord_header.
 
  Here is a brief description of the following macros:
 
@@ -68,9 +70,9 @@ Boston, MA 02111-1307, USA.  */
  XCHARVAL  The value bits of a Lisp_Object storing a Emchar
  XREALINT  The value bits of a Lisp_Object storing an integer, signed
  XUINT     The value bits of a Lisp_Object storing an integer, unsigned
- INTP      Non-zero if this Lisp_Object an integer?
+ INTP      Non-zero if this Lisp_Object is an integer
  Qzero     Lisp Integer 0
- EQ        Non-zero if two Lisp_Objects are identical */
+ EQ        Non-zero if two Lisp_Objects are identical, not merely equal. */
 
 
 typedef EMACS_INT Lisp_Object;
index 2f16b85..9f04fe7 100644 (file)
@@ -218,7 +218,7 @@ typedef union
 # else
 /* C++ is annoying, but it has a big bag of tricks.
    The following doesn't have the "inside out" declaration bug C does. */
-template<class T> struct alignment_trick { char c; T member; };
+template<typename T> struct alignment_trick { char c; T member; };
 #  define ALIGNOF(type) offsetof (alignment_trick<type>, member)
 # endif
 #endif /* ALIGNOF */
@@ -1903,7 +1903,7 @@ extern EMACS_INT consing_since_gc;
 
 /* threshold for doing another gc */
 
-extern EMACS_INT gc_cons_threshold;
+extern Fixnum gc_cons_threshold;
 
 /* Structure for recording stack slots that need marking */
 
@@ -2150,20 +2150,40 @@ void staticpro (Lisp_Object *);
 /* var will not be saved at dump time */
 void staticpro_nodump (Lisp_Object *);
 
-/* Call dump_add_root_struct_ptr (&var, &desc) to dump the structure pointed to by `var'. */
+/* dump_add_root_struct_ptr (&var, &desc) dumps the structure pointed to by `var'. */
 #ifdef PDUMP
 void dump_add_root_struct_ptr (void *, const struct struct_description *);
 #else
 #define dump_add_root_struct_ptr(varaddr,descaddr) DO_NOTHING
 #endif
 
-/* Call dump_add_opaque (&var, size) to dump the opaque static structure `var'. */
+/* dump_add_opaque (&var, size) dumps the opaque static structure `var'. */
 #ifdef PDUMP
 void dump_add_opaque (void *, size_t);
 #else
 #define dump_add_opaque(varaddr,size) DO_NOTHING
 #endif
 
+/* Call dump_add_opaque_int (&int_var) to dump `int_var', of type `int'. */
+#ifdef PDUMP
+#define dump_add_opaque_int(int_varaddr) do {  \
+  int *dao_ = (int_varaddr); /* type check */  \
+  dump_add_opaque (dao_, sizeof (*dao_));      \
+} while (0)
+#else
+#define dump_add_opaque_int(int_varaddr) DO_NOTHING
+#endif
+
+/* Call dump_add_opaque_fixnum (&fixnum_var) to dump `fixnum_var', of type `Fixnum'. */
+#ifdef PDUMP
+#define dump_add_opaque_fixnum(fixnum_varaddr) do {    \
+  Fixnum *dao_ = (fixnum_varaddr); /* type check */    \
+  dump_add_opaque (dao_, sizeof (*dao_));              \
+} while (0)
+#else
+#define dump_add_opaque_fixnum(fixnum_varaddr) DO_NOTHING
+#endif
+
 /* Call dump_add_root_object (&var) to ensure that var is properly updated after pdump. */
 #ifdef PDUMP
 void dump_add_root_object (Lisp_Object *);
@@ -2426,7 +2446,7 @@ Lisp_Object decode_path (const char *);
 extern int noninteractive, noninteractive1;
 extern int fatal_error_in_progress;
 extern int preparing_for_armageddon;
-extern int emacs_priority;
+extern Fixnum emacs_priority;
 extern int running_asynch_code;
 extern int suppress_early_error_handler_backtrace;
 
index 100dbed..858f5f1 100644 (file)
@@ -52,9 +52,8 @@ NOTE-END */
 
 /* #define CANNOT_DUMP */
 
-/* XEmacs: Richard Cognot <cognot@ensg.u-nancy.fr> says we need this for
-   HPUX; but eeide@asylum.cs.utah.edu (Eric Eide) says it loses on BSD. */
-#ifndef BSD
+/* Let the OS header file determine this if not HPUX. */
+#ifdef HPUX
 # define UNEXEC "unexhp9k3.o"
 #endif
 
index 005ab13..26b086b 100644 (file)
@@ -74,10 +74,10 @@ NOTE-END  */
 
 /* XEmacs change:  from Thomas.Tornblom@nexus.comm.se */
 #ifdef USE_GCC
-#define C_SWITCH_MACHINE "-static -Dmode_t=\"u_short\"" /* avoid dynamic linking */
+#define C_SWITCH_MACHINE "-static -Dmode_t=\"unsigned short\"" /* avoid dynamic linking */
 #define LD_SWITCH_MACHINE "-Wl,-N -static"
 #else
-#define C_SWITCH_MACHINE "-Bstatic -Dmode_t=\"u_short\""/* avoid dynamic linking */
+#define C_SWITCH_MACHINE "-Bstatic -Dmode_t=\"unsigned short\""/* avoid dynamic linking */
 #define LD_SWITCH_MACHINE "-N -Bstatic"
 #endif
 
index f9102bf..78e9eb3 100644 (file)
@@ -180,13 +180,13 @@ static Lisp_Object Vcanna_kakutei_string;
 static Lisp_Object Vcanna_kakutei_yomi;
 static Lisp_Object Vcanna_kakutei_romaji;
 static Lisp_Object Vcanna_henkan_string;
-static int         canna_henkan_length;
-static int         canna_henkan_revPos;
-static int         canna_henkan_revLen;
+static Fixnum   canna_henkan_length;
+static Fixnum   canna_henkan_revPos;
+static Fixnum   canna_henkan_revLen;
 static Lisp_Object Vcanna_ichiran_string;
-static int         canna_ichiran_length;
-static int         canna_ichiran_revPos;
-static int         canna_ichiran_revLen;
+static Fixnum   canna_ichiran_length;
+static Fixnum   canna_ichiran_revPos;
+static Fixnum   canna_ichiran_revLen;
 static Lisp_Object Vcanna_mode_string;
 
 static int IRCP_context;
@@ -199,7 +199,7 @@ static Lisp_Object CANNA_mode_keys (void);
 static void m2c (unsigned char *, int, unsigned char *);
 static Lisp_Object mule_make_string (unsigned char *, int);
 static int mule_strlen (unsigned char *, int);
-static void count_char (unsigned char *,int, int, int, int *, int *, int *);
+static void count_char (unsigned char *,int, int, int, Fixnum *, Fixnum *, Fixnum *);
 #define make_string mule_make_string
 #endif
 
@@ -887,149 +887,149 @@ Quit conversion.
 
 /* variables below this line is constants of Canna */
 
-static int canna_mode_AlphaMode;
-static int canna_mode_EmptyMode;
-static int canna_mode_KigoMode;
-static int canna_mode_YomiMode;
-static int canna_mode_JishuMode;
-static int canna_mode_TankouhoMode;
-static int canna_mode_IchiranMode;
-static int canna_mode_YesNoMode;
-static int canna_mode_OnOffMode;
+static Fixnum canna_mode_AlphaMode;
+static Fixnum canna_mode_EmptyMode;
+static Fixnum canna_mode_KigoMode;
+static Fixnum canna_mode_YomiMode;
+static Fixnum canna_mode_JishuMode;
+static Fixnum canna_mode_TankouhoMode;
+static Fixnum canna_mode_IchiranMode;
+static Fixnum canna_mode_YesNoMode;
+static Fixnum canna_mode_OnOffMode;
 #ifdef CANNA_MODE_AdjustBunsetsuMode
-static int canna_mode_AdjustBunsetsuMode;
+static Fixnum canna_mode_AdjustBunsetsuMode;
 #endif
 #ifdef CANNA_MODE_ChikujiYomiMode
-static int canna_mode_ChikujiYomiMode;
-static int canna_mode_ChikujiTanMode;
+static Fixnum canna_mode_ChikujiYomiMode;
+static Fixnum canna_mode_ChikujiTanMode;
 #endif
 
-static int canna_mode_HenkanMode;
+static Fixnum canna_mode_HenkanMode;
 #ifdef CANNA_MODE_HenkanNyuryokuMode
-static int canna_mode_HenkanNyuryokuMode;
+static Fixnum canna_mode_HenkanNyuryokuMode;
 #endif
 #ifdef CANNA_MODE_ZenHiraHenkanMode
-static int canna_mode_ZenHiraHenkanMode;
+static Fixnum canna_mode_ZenHiraHenkanMode;
 #ifdef CANNA_MODE_HanHiraHenkanMode
-static int canna_mode_HanHiraHenkanMode;
+static Fixnum canna_mode_HanHiraHenkanMode;
 #endif
-static int canna_mode_ZenKataHenkanMode;
-static int canna_mode_HanKataHenkanMode;
-static int canna_mode_ZenAlphaHenkanMode;
-static int canna_mode_HanAlphaHenkanMode;
+static Fixnum canna_mode_ZenKataHenkanMode;
+static Fixnum canna_mode_HanKataHenkanMode;
+static Fixnum canna_mode_ZenAlphaHenkanMode;
+static Fixnum canna_mode_HanAlphaHenkanMode;
 #endif
-static int canna_mode_ZenHiraKakuteiMode;
+static Fixnum canna_mode_ZenHiraKakuteiMode;
 #ifdef CANNA_MODE_HanHiraKakuteiMode
-static int canna_mode_HanHiraKakuteiMode;
+static Fixnum canna_mode_HanHiraKakuteiMode;
 #endif
-static int canna_mode_ZenKataKakuteiMode;
-static int canna_mode_HanKataKakuteiMode;
-static int canna_mode_ZenAlphaKakuteiMode;
-static int canna_mode_HanAlphaKakuteiMode;
-static int canna_mode_HexMode;
-static int canna_mode_BushuMode;
-static int canna_mode_ExtendMode;
-static int canna_mode_RussianMode;
-static int canna_mode_GreekMode;
-static int canna_mode_LineMode;
-static int canna_mode_ChangingServerMode;
-static int canna_mode_HenkanMethodMode;
-static int canna_mode_DeleteDicMode;
-static int canna_mode_TourokuMode;
-static int canna_mode_TourokuEmptyMode;
-static int canna_mode_TourokuHinshiMode;
-static int canna_mode_TourokuDicMode;
-static int canna_mode_QuotedInsertMode;
-static int canna_mode_BubunMuhenkanMode;
-static int canna_mode_MountDicMode;
-
-static int canna_fn_SelfInsert;
-static int canna_fn_FunctionalInsert;
-static int canna_fn_QuotedInsert;
-static int canna_fn_JapaneseMode;
-static int canna_fn_AlphaMode;
-static int canna_fn_HenkanNyuryokuMode;
-static int canna_fn_Forward;
-static int canna_fn_Backward;
-static int canna_fn_Next;
-static int canna_fn_Prev;
-static int canna_fn_BeginningOfLine;
-static int canna_fn_EndOfLine;
-static int canna_fn_DeleteNext;
-static int canna_fn_DeletePrevious;
-static int canna_fn_KillToEndOfLine;
-static int canna_fn_Henkan;
-static int canna_fn_Kakutei;
-static int canna_fn_Extend;
-static int canna_fn_Shrink;
+static Fixnum canna_mode_ZenKataKakuteiMode;
+static Fixnum canna_mode_HanKataKakuteiMode;
+static Fixnum canna_mode_ZenAlphaKakuteiMode;
+static Fixnum canna_mode_HanAlphaKakuteiMode;
+static Fixnum canna_mode_HexMode;
+static Fixnum canna_mode_BushuMode;
+static Fixnum canna_mode_ExtendMode;
+static Fixnum canna_mode_RussianMode;
+static Fixnum canna_mode_GreekMode;
+static Fixnum canna_mode_LineMode;
+static Fixnum canna_mode_ChangingServerMode;
+static Fixnum canna_mode_HenkanMethodMode;
+static Fixnum canna_mode_DeleteDicMode;
+static Fixnum canna_mode_TourokuMode;
+static Fixnum canna_mode_TourokuEmptyMode;
+static Fixnum canna_mode_TourokuHinshiMode;
+static Fixnum canna_mode_TourokuDicMode;
+static Fixnum canna_mode_QuotedInsertMode;
+static Fixnum canna_mode_BubunMuhenkanMode;
+static Fixnum canna_mode_MountDicMode;
+
+static Fixnum canna_fn_SelfInsert;
+static Fixnum canna_fn_FunctionalInsert;
+static Fixnum canna_fn_QuotedInsert;
+static Fixnum canna_fn_JapaneseMode;
+static Fixnum canna_fn_AlphaMode;
+static Fixnum canna_fn_HenkanNyuryokuMode;
+static Fixnum canna_fn_Forward;
+static Fixnum canna_fn_Backward;
+static Fixnum canna_fn_Next;
+static Fixnum canna_fn_Prev;
+static Fixnum canna_fn_BeginningOfLine;
+static Fixnum canna_fn_EndOfLine;
+static Fixnum canna_fn_DeleteNext;
+static Fixnum canna_fn_DeletePrevious;
+static Fixnum canna_fn_KillToEndOfLine;
+static Fixnum canna_fn_Henkan;
+static Fixnum canna_fn_Kakutei;
+static Fixnum canna_fn_Extend;
+static Fixnum canna_fn_Shrink;
 #ifdef CANNA_FN_AdjustBunsetsu
-static int canna_fn_AdjustBunsetsu;
+static Fixnum canna_fn_AdjustBunsetsu;
 #endif
-static int canna_fn_Quit;
-static int canna_fn_ConvertAsHex;
-static int canna_fn_ConvertAsBushu;
-static int canna_fn_KouhoIchiran;
-static int canna_fn_BubunMuhenkan;
-static int canna_fn_Zenkaku;
-static int canna_fn_Hankaku;
-static int canna_fn_ToUpper;
-static int canna_fn_Capitalize;
-static int canna_fn_ToLower;
-static int canna_fn_Hiragana;
-static int canna_fn_Katakana;
-static int canna_fn_Romaji;
+static Fixnum canna_fn_Quit;
+static Fixnum canna_fn_ConvertAsHex;
+static Fixnum canna_fn_ConvertAsBushu;
+static Fixnum canna_fn_KouhoIchiran;
+static Fixnum canna_fn_BubunMuhenkan;
+static Fixnum canna_fn_Zenkaku;
+static Fixnum canna_fn_Hankaku;
+static Fixnum canna_fn_ToUpper;
+static Fixnum canna_fn_Capitalize;
+static Fixnum canna_fn_ToLower;
+static Fixnum canna_fn_Hiragana;
+static Fixnum canna_fn_Katakana;
+static Fixnum canna_fn_Romaji;
 #ifdef CANNA_FN_BaseHiragana
-static int canna_fn_BaseHiragana;
-static int canna_fn_BaseKatakana;
-static int canna_fn_BaseEisu;
-static int canna_fn_BaseZenkaku;
-static int canna_fn_BaseHankaku;
-static int canna_fn_BaseKana;
-static int canna_fn_BaseKakutei;
-static int canna_fn_BaseHenkan;
-static int canna_fn_BaseHiraKataToggle;
-static int canna_fn_BaseZenHanToggle;
-static int canna_fn_BaseKanaEisuToggle;
-static int canna_fn_BaseKakuteiHenkanToggle;
-static int canna_fn_BaseRotateForward;
-static int canna_fn_BaseRotateBackward;
+static Fixnum canna_fn_BaseHiragana;
+static Fixnum canna_fn_BaseKatakana;
+static Fixnum canna_fn_BaseEisu;
+static Fixnum canna_fn_BaseZenkaku;
+static Fixnum canna_fn_BaseHankaku;
+static Fixnum canna_fn_BaseKana;
+static Fixnum canna_fn_BaseKakutei;
+static Fixnum canna_fn_BaseHenkan;
+static Fixnum canna_fn_BaseHiraKataToggle;
+static Fixnum canna_fn_BaseZenHanToggle;
+static Fixnum canna_fn_BaseKanaEisuToggle;
+static Fixnum canna_fn_BaseKakuteiHenkanToggle;
+static Fixnum canna_fn_BaseRotateForward;
+static Fixnum canna_fn_BaseRotateBackward;
 #endif
-static int canna_fn_ExtendMode;
-static int canna_fn_Touroku;
-static int canna_fn_HexMode;
-static int canna_fn_BushuMode;
-static int canna_fn_KigouMode;
+static Fixnum canna_fn_ExtendMode;
+static Fixnum canna_fn_Touroku;
+static Fixnum canna_fn_HexMode;
+static Fixnum canna_fn_BushuMode;
+static Fixnum canna_fn_KigouMode;
 #ifdef CANNA_FN_Mark
-static int canna_fn_Mark;
+static Fixnum canna_fn_Mark;
 #endif
 #ifdef CANNA_FN_TemporalMode
-static int canna_fn_TemporalMode;
+static Fixnum canna_fn_TemporalMode;
 #endif
 
-static int canna_key_Nfer;
-static int canna_key_Xfer;
-static int canna_key_Up;
-static int canna_key_Left;
-static int canna_key_Right;
-static int canna_key_Down;
-static int canna_key_Insert;
-static int canna_key_Rollup;
-static int canna_key_Rolldown;
-static int canna_key_Home;
-static int canna_key_Help;
-static int canna_key_KP_Key;
-static int canna_key_Shift_Nfer;
-static int canna_key_Shift_Xfer;
-static int canna_key_Shift_Up;
-static int canna_key_Shift_Left;
-static int canna_key_Shift_Right;
-static int canna_key_Shift_Down;
-static int canna_key_Cntrl_Nfer;
-static int canna_key_Cntrl_Xfer;
-static int canna_key_Cntrl_Up;
-static int canna_key_Cntrl_Left;
-static int canna_key_Cntrl_Right;
-static int canna_key_Cntrl_Down;
+static Fixnum canna_key_Nfer;
+static Fixnum canna_key_Xfer;
+static Fixnum canna_key_Up;
+static Fixnum canna_key_Left;
+static Fixnum canna_key_Right;
+static Fixnum canna_key_Down;
+static Fixnum canna_key_Insert;
+static Fixnum canna_key_Rollup;
+static Fixnum canna_key_Rolldown;
+static Fixnum canna_key_Home;
+static Fixnum canna_key_Help;
+static Fixnum canna_key_KP_Key;
+static Fixnum canna_key_Shift_Nfer;
+static Fixnum canna_key_Shift_Xfer;
+static Fixnum canna_key_Shift_Up;
+static Fixnum canna_key_Shift_Left;
+static Fixnum canna_key_Shift_Right;
+static Fixnum canna_key_Shift_Down;
+static Fixnum canna_key_Cntrl_Nfer;
+static Fixnum canna_key_Cntrl_Xfer;
+static Fixnum canna_key_Cntrl_Up;
+static Fixnum canna_key_Cntrl_Left;
+static Fixnum canna_key_Cntrl_Right;
+static Fixnum canna_key_Cntrl_Down;
 
 Lisp_Object VCANNA; /* by MORIOKA Tomohiko <morioka@jaist.ac.jp>
                          1996/6/7 */
@@ -1896,8 +1896,8 @@ mule_strlen (unsigned char *p, int l)
 
 /* count number of characters */
 static void
-count_char (unsigned char *p, int len, int pos, int rev, int *clen, int *cpos,
-           int *crev)
+count_char (unsigned char *p, int len, int pos, int rev,
+           Fixnum *clen, Fixnum *cpos, Fixnum *crev)
 {
   unsigned char *q = p;
 
index 6b40300..a393b25 100644 (file)
@@ -321,7 +321,7 @@ Lisp_Object Vwnn_server_type;
 Lisp_Object    Vcwnn_zhuyin;
 Lisp_Object    Vwnnenv_sticky;
 Lisp_Object    Vwnn_uniq_level;
-int            lb_sisheng;
+Fixnum         lb_sisheng;
 
 /* Lisp functions definition */
 
index 27d3ae3..0824e2a 100644 (file)
--- a/src/nt.c
+++ b/src/nt.c
@@ -48,7 +48,7 @@ extern Lisp_Object Vwin32_generate_fake_inodes;
 #endif
 extern Lisp_Object Vmswindows_get_true_file_attributes;
 
-int nt_fake_unix_uid;
+Fixnum nt_fake_unix_uid;
 
 static char startup_dir[ MAXPATHLEN ];
 
index 0063a6e..d50028e 100644 (file)
@@ -1541,8 +1541,17 @@ unix_kill_child_process (Lisp_Object proc, int signo,
 
   /* Finally send the signal. */
   if (EMACS_KILLPG (pgid, signo) == -1)
-    error ("kill (%ld, %ld) failed: %s",
-          (long) pgid, (long) signo, strerror (errno));
+    {
+      /* It's not an error if our victim is already dead.
+         And we can't rely on the result of killing a zombie, since
+         XPG 4.2 requires that killing a zombie fail with ESRCH,
+         while FIPS 151-2 requires that it succeeds! */
+#ifdef ESRCH
+      if (errno != ESRCH)
+#endif
+       error ("kill (%ld, %ld) failed: %s",
+              (long) pgid, (long) signo, strerror (errno));
+    }
 }
 
 /* Send signal SIGCODE to any process in the system given its PID.
index 5f2fbf6..4d097bc 100644 (file)
@@ -60,7 +60,7 @@ Boston, MA 02111-1307, USA.  */
 static struct hash_table *big_profile_table;
 Lisp_Object Vcall_count_profile_table;
 
-int default_profiling_interval;
+Fixnum default_profiling_interval;
 
 int profiling_active;
 
index ea8f8f8..2938971 100644 (file)
@@ -1438,7 +1438,7 @@ typedef struct alloc_dll
 
 static MMAP_HANDLE mmap_start = 0; /* Head of linked list */
 static size_t page_size = 0;   /* Size of VM pages */
-static int mmap_hysteresis;    /* Should be size_t, really. */
+static Fixnum mmap_hysteresis; /* Logically a "size_t" */
 
 /* Get a new handle for a fresh block. */
 static MMAP_HANDLE
index 6f71812..54a39ab 100644 (file)
@@ -300,7 +300,7 @@ static Bytecount_dynarr *formatted_string_extent_end_dynarr;
 
 
 /* #### probably temporary */
-int cache_adjustment;
+Fixnum cache_adjustment;
 
 /* This holds a string representing the text corresponding to a single
    modeline % spec. */
@@ -315,10 +315,10 @@ int disable_preemption;   /* Used for debugging redisplay and for
 static int preemption_count;
 
 /* Minimum pixel height of clipped bottom display line. */
-int vertical_clip;
+Fixnum vertical_clip;
 
 /* Minimum visible pixel width of clipped glyphs at right margin. */
-int horizontal_clip;
+Fixnum horizontal_clip;
 
 /* Nonzero means reading single-character input with prompt
    so put cursor on minibuffer after the prompt.  */
@@ -425,10 +425,10 @@ Lisp_Object Vglobal_mode_string;
 
 /* The number of lines scroll a window by when point leaves the window; if
   it is <=0 then point is centered in the window */
-int scroll_step;
+Fixnum scroll_step;
 
 /* Scroll up to this many lines, to bring point back on screen. */
-int scroll_conservatively;
+Fixnum scroll_conservatively;
 
 /* Marker for where to display an arrow on top of the buffer text.  */
 Lisp_Object Voverlay_arrow_position;
@@ -451,7 +451,8 @@ Lisp_Object Vpre_redisplay_hook, Vpost_redisplay_hook;
 Lisp_Object Qpre_redisplay_hook, Qpost_redisplay_hook;
 #endif /* INHIBIT_REDISPLAY_HOOKS */
 
-static int last_display_warning_tick, display_warning_tick;
+static Fixnum last_display_warning_tick;
+static Fixnum display_warning_tick;
 Lisp_Object Qdisplay_warning_buffer;
 int inhibit_warning_display;
 
index 14ce963..151e80d 100644 (file)
@@ -4759,9 +4759,9 @@ re_match_2_internal (struct re_pattern_buffer *bufp, re_char *string1,
        case charset_not:
          {
            REGISTER unsigned char c;
-           boolean not = (re_opcode_t) *(p - 1) == charset_not;
+           boolean not_p = (re_opcode_t) *(p - 1) == charset_not;
 
-            DEBUG_PRINT2 ("EXECUTING charset%s.\n", not ? "_not" : "");
+            DEBUG_PRINT2 ("EXECUTING charset%s.\n", not_p ? "_not" : "");
 
            REGEX_PREFETCH ();
            c = TRANSLATE (*d); /* The character to match.  */
@@ -4770,11 +4770,11 @@ re_match_2_internal (struct re_pattern_buffer *bufp, re_char *string1,
                bit list is a full 32 bytes long.  */
            if (c < (unsigned) (*p * BYTEWIDTH)
                && p[1 + c / BYTEWIDTH] & (1 << (c % BYTEWIDTH)))
-             not = !not;
+             not_p = !not_p;
 
            p += 1 + *p;
 
-           if (!not) goto fail;
+           if (!not_p) goto fail;
 
            SET_REGS_MATCHED ();
             INC_CHARPTR (d); /* XEmacs change */
@@ -4786,20 +4786,20 @@ re_match_2_internal (struct re_pattern_buffer *bufp, re_char *string1,
        case charset_mule_not:
          {
            REGISTER Emchar c;
-           boolean not = (re_opcode_t) *(p - 1) == charset_mule_not;
+           boolean not_p = (re_opcode_t) *(p - 1) == charset_mule_not;
 
-            DEBUG_PRINT2 ("EXECUTING charset_mule%s.\n", not ? "_not" : "");
+            DEBUG_PRINT2 ("EXECUTING charset_mule%s.\n", not_p ? "_not" : "");
 
            REGEX_PREFETCH ();
            c = charptr_emchar ((const Bufbyte *) d);
            c = TRANSLATE_EXTENDED_UNSAFE (c); /* The character to match.  */
 
            if (EQ (Qt, unified_range_table_lookup (p, c, Qnil)))
-             not = !not;
+             not_p = !not_p;
 
            p += unified_range_table_bytes_used (p);
 
-           if (!not) goto fail;
+           if (!not_p) goto fail;
 
            SET_REGS_MATCHED ();
            INC_CHARPTR (d);
@@ -5269,15 +5269,15 @@ re_match_2_internal (struct re_pattern_buffer *bufp, re_char *string1,
                else if ((re_opcode_t) p1[3] == charset
                         || (re_opcode_t) p1[3] == charset_not)
                  {
-                   int not = (re_opcode_t) p1[3] == charset_not;
+                   int not_p = (re_opcode_t) p1[3] == charset_not;
 
                    if (c < (unsigned char) (p1[4] * BYTEWIDTH)
                        && p1[5 + c / BYTEWIDTH] & (1 << (c % BYTEWIDTH)))
-                     not = !not;
+                     not_p = !not_p;
 
-                    /* `not' is equal to 1 if c would match, which means
+                    /* `not_p' is equal to 1 if c would match, which means
                         that we can't change to pop_failure_jump.  */
-                   if (!not)
+                   if (!not_p)
                       {
                        p[-3] = (unsigned char) pop_failure_jump;
                         DEBUG_PRINT1 ("  No match => pop_failure_jump.\n");
index e2e003f..06a16c8 100644 (file)
@@ -73,7 +73,7 @@ Lisp_Object Vx_sent_selection_hooks;
 /* If the selection owner takes too long to reply to a selection request,
    we give up on it.  This is in seconds (0 = no timeout).
  */
-int x_selection_timeout;
+Fixnum x_selection_timeout;
 
 /* Enable motif selection optimizations. */
 int x_selection_strict_motif_ownership;
index 9c6191a..9e6447e 100644 (file)
@@ -151,6 +151,7 @@ It defaults to the selected device.
     value_list = Qnil;
   Lisp_Object prev_real_value = Qnil;
   struct gcpro gcpro1;
+  int owned_p = 0;
 
   CHECK_SYMBOL (selection_name);
   if (NILP (selection_value)) error ("selection-value may not be nil.");
@@ -180,6 +181,7 @@ It defaults to the selected device.
 
       if (!NILP (local_selection_data))
        {
+         owned_p = 1;
          /* Don't use Fdelq() as that may QUIT;. */
          if (EQ (local_selection_data, Fcar (Vselection_alist)))
            Vselection_alist = Fcdr (Vselection_alist);
@@ -201,7 +203,10 @@ It defaults to the selected device.
       prev_value = assq_no_quit (selection_name, Vselection_alist);
 
       if (!NILP (prev_value))
-       value_list = XCAR (XCDR (prev_value));
+       {
+         owned_p = 1;
+         value_list = XCAR (XCDR (prev_value));
+       }
 
       if (!NILP (value_list))
        prev_real_value = assq_no_quit (data_type, value_list);
@@ -280,7 +285,7 @@ It defaults to the selected device.
   if (HAS_DEVMETH_P (XDEVICE (device), own_selection))
     selection_time = DEVMETH (XDEVICE (device), own_selection,
                              (selection_name, selection_value,
-                              how_to_add, data_type, !NILP (prev_value)));
+                              how_to_add, data_type, owned_p));
   else
     selection_time = Qnil;
 
index fe31b7b..acb272b 100644 (file)
@@ -50,8 +50,8 @@ extern int esd_play_sound_data (unsigned char *data, size_t length, int vol);
 # define DEVICE_CONNECTED_TO_ESD_P(x) 1 /* FIXME: better check */
 #endif
 
-int bell_volume;
-int bell_inhibit_time;
+Fixnum bell_volume;
+Fixnum bell_inhibit_time;
 Lisp_Object Vsound_alist;
 Lisp_Object Vsynchronous_sounds;
 Lisp_Object Vnative_sound_only_on_console;
index 906637c..ae1dc92 100644 (file)
@@ -790,10 +790,15 @@ Set SYMBOL's property list to NEWPLIST, and return NEWPLIST.
       the symbol-value-forward. (See below.)
 
    SYMVAL_FIXNUM_FORWARD:
+      (declare with DEFVAR_INT)
+      Similar to SYMVAL_OBJECT_FORWARD except that the C variable
+      is of type "Fixnum", a typedef for "EMACS_INT", and the corresponding
+      lisp variable is always the corresponding integer.
+
    SYMVAL_BOOLEAN_FORWARD:
-      (declare with DEFVAR_INT or DEFVAR_BOOL)
+      (declare with DEFVAR_BOOL)
       Similar to SYMVAL_OBJECT_FORWARD except that the C variable
-      is of type "int" and is an integer or boolean, respectively.
+      is of type "int" and is a boolean.
 
    SYMVAL_CONST_OBJECT_FORWARD:
    SYMVAL_CONST_FIXNUM_FORWARD:
@@ -1073,7 +1078,7 @@ do_symval_forwarding (Lisp_Object valcontents, struct buffer *buffer,
     {
     case SYMVAL_FIXNUM_FORWARD:
     case SYMVAL_CONST_FIXNUM_FORWARD:
-      return make_int (*((int *)symbol_value_forward_forward (fwd)));
+      return make_int (*((Fixnum *)symbol_value_forward_forward (fwd)));
 
     case SYMVAL_BOOLEAN_FORWARD:
     case SYMVAL_CONST_BOOLEAN_FORWARD:
@@ -1246,7 +1251,7 @@ store_symval_forwarding (Lisp_Object sym, Lisp_Object ovalue,
          CHECK_INT (newval);
          if (magicfun)
            magicfun (sym, &newval, Qnil, 0);
-         *((int *) symbol_value_forward_forward (fwd)) = XINT (newval);
+         *((Fixnum *) symbol_value_forward_forward (fwd)) = XINT (newval);
          return;
 
        case SYMVAL_BOOLEAN_FORWARD:
index 44a5849..141430b 100644 (file)
@@ -31,7 +31,7 @@ enum symbol_value_type
 {
   /* The following tags use the 'symbol_value_forward' structure
      and are strictly for variables DEFVARed on the C level. */
-  SYMVAL_FIXNUM_FORWARD,       /* Forward C "int" */
+  SYMVAL_FIXNUM_FORWARD,       /* Forward C "Fixnum", really "EMACS_INT" */
   SYMVAL_CONST_FIXNUM_FORWARD, /* Same, but can't be set */
   SYMVAL_BOOLEAN_FORWARD,      /* Forward C boolean ("int") */
   SYMVAL_CONST_BOOLEAN_FORWARD,        /* Same, but can't be set */
@@ -70,6 +70,9 @@ enum symbol_value_type
 #endif
 };
 
+/* Underlying C type used to implement DEFVAR_INT */
+typedef EMACS_INT Fixnum;
+
 struct symbol_value_magic
 {
   struct lcrecord_header lcheader;
@@ -345,13 +348,21 @@ void defvar_magic (const char *symbol_name, const struct symbol_value_forward *m
 
 #define DEFVAR_SYMVAL_FWD_INT(lname, c_location, forward_type, magicfun) do{   \
   DEFVAR_SYMVAL_FWD (lname, c_location, forward_type, magicfun);               \
-  dump_add_opaque (c_location, sizeof(int));                                   \
+  dump_add_opaque_int (c_location);                                            \
+} while (0)
+
+#define DEFVAR_SYMVAL_FWD_FIXNUM(lname, c_location, forward_type, magicfun) do{        \
+  DEFVAR_SYMVAL_FWD (lname, c_location, forward_type, magicfun);               \
+  dump_add_opaque_fixnum (c_location);                                         \
 } while (0)
 
-#define DEFVAR_SYMVAL_FWD_OBJECT(lname, c_location, forward_type, magicfun) do{ \
+#define DEFVAR_SYMVAL_FWD_OBJECT(lname, c_location, forward_type, magicfun) do{        \
   DEFVAR_SYMVAL_FWD (lname, c_location, forward_type, magicfun);               \
-  staticpro (c_location);                                                      \
-  if (EQ (*c_location, Qnull_pointer)) *c_location = Qnil;                     \
+  {                                                                            \
+    Lisp_Object *DSF_location = c_location; /* Type check */                   \
+    staticpro (DSF_location);                                                  \
+    if (EQ (*DSF_location, Qnull_pointer)) *DSF_location = Qnil;               \
+  }                                                                            \
 } while (0)
 
 #define DEFVAR_LISP(lname, c_location) \
@@ -361,9 +372,9 @@ void defvar_magic (const char *symbol_name, const struct symbol_value_forward *m
 #define DEFVAR_SPECIFIER(lname, c_location) \
        DEFVAR_SYMVAL_FWD_OBJECT (lname, c_location, SYMVAL_CONST_SPECIFIER_FORWARD, 0)
 #define DEFVAR_INT(lname, c_location) \
-       DEFVAR_SYMVAL_FWD_INT (lname, c_location, SYMVAL_FIXNUM_FORWARD, 0)
+       DEFVAR_SYMVAL_FWD_FIXNUM (lname, c_location, SYMVAL_FIXNUM_FORWARD, 0)
 #define DEFVAR_CONST_INT(lname, c_location) \
-       DEFVAR_SYMVAL_FWD_INT (lname, c_location, SYMVAL_CONST_FIXNUM_FORWARD, 0)
+       DEFVAR_SYMVAL_FWD_FIXNUM (lname, c_location, SYMVAL_CONST_FIXNUM_FORWARD, 0)
 #define DEFVAR_BOOL(lname, c_location) \
        DEFVAR_SYMVAL_FWD_INT (lname, c_location, SYMVAL_BOOLEAN_FORWARD, 0)
 #define DEFVAR_CONST_BOOL(lname, c_location) \
@@ -371,7 +382,7 @@ void defvar_magic (const char *symbol_name, const struct symbol_value_forward *m
 #define DEFVAR_LISP_MAGIC(lname, c_location, magicfun) \
        DEFVAR_SYMVAL_FWD_OBJECT (lname, c_location, SYMVAL_OBJECT_FORWARD, magicfun)
 #define DEFVAR_INT_MAGIC(lname, c_location, magicfun) \
-       DEFVAR_SYMVAL_FWD_INT (lname, c_location, SYMVAL_FIXNUM_FORWARD, magicfun)
+       DEFVAR_SYMVAL_FWD_FIXNUM (lname, c_location, SYMVAL_FIXNUM_FORWARD, magicfun)
 #define DEFVAR_BOOL_MAGIC(lname, c_location, magicfun) \
        DEFVAR_SYMVAL_FWD_INT (lname, c_location, SYMVAL_BOOLEAN_FORWARD, magicfun)
 
index fc23d27..a6b9cb3 100644 (file)
@@ -131,7 +131,11 @@ Boston, MA 02111-1307, USA.  */
 #endif
 
 #ifdef HAVE_LIBUTIL_H
-#include <libutil.h>           /* openpty() on BSD */
+#include <libutil.h>           /* openpty() on FreeBSD */
+#endif
+
+#ifdef HAVE_UTIL_H
+#include <util.h>              /* openpty() on NetBSD */
 #endif
 
 #ifdef FD_SET
index c4b6bfd..eb7fcf2 100644 (file)
@@ -30,8 +30,8 @@ Boston, MA 02111-1307, USA.  */
 #define realloc xrealloc
 #define malloc xmalloc
 #define free xfree
-extern void *xmalloc (int size);
-extern void *xrealloc (void *, int size);
+extern void *xmalloc (size_t size);
+extern void *xrealloc (void *, size_t size);
 
 #else /* emacs */
 
index a3ad1b1..ccddef8 100644 (file)
@@ -111,14 +111,14 @@ Lisp_Object Vtemp_buffer_show_function;
 Lisp_Object Vtemp_buffer_show_hook;
 
 /* If a window gets smaller than either of these, it is removed. */
-int window_min_height;
-int window_min_width;
+Fixnum window_min_height;
+Fixnum window_min_width;
 
 /* Hook run at end of temp_output_buffer_show.  */
 Lisp_Object Qtemp_buffer_show_hook;
 
 /* Number of lines of continuity in scrolling by screenfuls.  */
-int next_screen_context_lines;
+Fixnum next_screen_context_lines;
 
 /* List of freed window configurations with 1 - 10 windows. */
 static Lisp_Object Vwindow_configuration_free_list[10];
@@ -4331,7 +4331,7 @@ window_scroll (Lisp_Object window, Lisp_Object count, int direction,
          &&
          Dynarr_length (dla) >= (1 + modeline)
          &&
-         (dl->ascent - dl->top_clip) - fheight * value > 0)
+         (dl->ascent - dl->top_clip) > fheight * value)
        {
          WINDOW_TEXT_TOP_CLIP (w) += value * fheight;
          MARK_WINDOWS_CHANGED (w);
index 877dc91..7a7f6da 100644 (file)
@@ -1,3 +1,7 @@
+2001-02-08  Martin Buchholz <martin@xemacs.org>
+
+       * XEmacs 21.2.44 "Thalia" is released.
+
 2001-01-26  Martin Buchholz <martin@xemacs.org>
 
        * XEmacs 21.2.43 "Terspichore" is released.
index a9e37c3..336189a 100644 (file)
@@ -2,8 +2,8 @@
 emacs_is_beta=t
 emacs_major_version=21
 emacs_minor_version=2
-emacs_beta_version=43
-xemacs_codename="Terspichore"
+emacs_beta_version=44
+xemacs_codename="Thalia"
 infodock_major_version=4
 infodock_minor_version=0
 infodock_build_version=8