XEmacs 21.2.14. origin/unlabeled-1.1.1
authortomo <tomo>
Mon, 17 May 1999 09:41:54 +0000 (09:41 +0000)
committertomo <tomo>
Mon, 17 May 1999 09:41:54 +0000 (09:41 +0000)
130 files changed:
.cvsignore [new file with mode: 0644]
CHANGES-beta
ChangeLog
INSTALL
Makefile.in.in
PROBLEMS
README.packages
aclocal.m4
config.guess
config.sub
configure
configure.in
configure.usage
dynodump/Makefile.in.in
dynodump/_dynodump.h
dynodump/dynodump.c
dynodump/i386/_relocate.c
dynodump/i386/machdep.h
dynodump/ppc/_relocate.c
dynodump/ppc/machdep.h
dynodump/sparc/_relocate.c
dynodump/sparc/machdep.h
dynodump/syms.c
etc/BETA
etc/HELLO
etc/MOTIVATION
etc/MYTHOLOGY [new file with mode: 0644]
etc/NEWS
etc/PACKAGES
etc/TUTORIAL.de
etc/check_cygwin_setup.sh
etc/package-index.LATEST.pgp
etc/photos/wing.png [new file with mode: 0644]
etc/photos/wingm.png [new file with mode: 0644]
etc/recycle.xpm
etc/sample.emacs
etc/xemacs.1
lib-src/.cvsignore [new file with mode: 0644]
lib-src/ChangeLog
lib-src/Makefile.in.in
lib-src/aixcc.lex [new file with mode: 0644]
lib-src/config.values.in
lib-src/fakemail.c
lib-src/gnuclient.c
lib-src/gnudepend.pl
lib-src/gnuserv.c
lib-src/make-docfile.c
lib-src/make-msgfile.c
lib-src/make-msgfile.lex
lib-src/movemail.c
lib-src/pop.c
lib-src/process-depends.sh [new file with mode: 0644]
lib-src/process-gnu-depends.sh [new file with mode: 0755]
lib-src/profile.c
lib-src/pstogif
lib-src/rcs2log
lib-src/run.c
lib-src/run.h [new file with mode: 0644]
lib-src/run.rc [new file with mode: 0644]
lib-src/sorted-doc.c
lib-src/update-autoloads.sh
lib-src/update-custom.sh
lib-src/update-elc.sh
lib-src/yow.c
lisp/.cvsignore [new file with mode: 0644]
lisp/ChangeLog
lisp/about.el
lisp/alist.el
lisp/apropos.el
lisp/auto-autoloads.el
lisp/auto-save.el
lisp/auto-show.el
lisp/autoload.el
lisp/buffer.el
lisp/build-report.el
lisp/byte-optimize.el
lisp/bytecomp-runtime.el
lisp/bytecomp.el
lisp/callers-of-rpt.el
lisp/check-features.el
lisp/cl-extra.el
lisp/cl-macs.el
lisp/cl.el
lisp/cleantree.el [new file with mode: 0644]
lisp/cmdloop.el
lisp/code-files.el
lisp/code-process.el
lisp/config.el
lisp/cus-dep.el
lisp/cus-edit.el
lisp/cus-face.el
lisp/custom-load.el
lisp/custom.el
lisp/derived.el
lisp/device.el
lisp/disass.el
lisp/dragdrop.el
lisp/dump-paths.el
lisp/dumped-lisp.el
lisp/easymenu.el
lisp/etags.el
lisp/events.el
lisp/faces.el
lisp/files.el
lisp/fill.el
lisp/find-paths.el
lisp/finder.el
lisp/font-lock.el
lisp/font.el
lisp/format.el
lisp/glyphs.el
lisp/gnuserv.el
lisp/help.el
lisp/hyper-apropos.el
lisp/info.el
lisp/isearch-mode.el
lisp/itimer.el
lisp/keydefs.el
lisp/ldap.el
lisp/lib-complete.el
lisp/lisp-mnt.el
lisp/lisp-mode.el
lisp/list-mode.el
lisp/loaddefs.el
lisp/loadhist.el
lisp/loadup.el
lisp/make-docfile.el
lisp/map-ynp.el
lisp/menubar.el
version.sh

diff --git a/.cvsignore b/.cvsignore
new file mode 100644 (file)
index 0000000..42e5786
--- /dev/null
@@ -0,0 +1,9 @@
+typescript
+config.log
+Makefile
+Installation
+Installation.el
+config.status
+GNUmakefile
+Makefile.in
+so_locations
index 530bc55..48c24ee 100644 (file)
@@ -1,4 +1,134 @@
                                                        -*- indented-text -*-
                                                        -*- indented-text -*-
+to 21.2.14 ""
+-- mingw32 port from Andy Piper
+
+to 21.2.13 "Demeter"
+-- Build fixes from Martin Buchholz
+-- experimental splash screen rewrite from Didier Verna
+-- Various patches from Jan Vroonhof and Andy Piper
+-- alist.el synched up with APEL 9.13 from MORIOKA Tomohiko
+-- MS Window build fixes from Jonathan Harris
+-- UCS-4/UTF-8 support from MORIOKA Tomohiko
+
+to 21.2.12 "Clio"
+-- event-stream unification for MS Windows from Andy Piper
+-- Determine best visual to use to avoid flashing from IENAGA Kazuyuki
+-- Fix for new Berkeley DB library from Paul Keusemann/Gregory Neil Shapiro
+-- Various package-ui fixes from Jan Vroonhof
+-- Fix for doubled font-locking during buffer reversion
+-- KFM browsing support from Neal Becker
+-- info fix from Didier Verna
+-- Build bug fixes from Martin Buchholz
+-- Various Documentation updates
+-- X-Face support for MS Windows native build from Gleb Arshinov
+
+to 21.2 beta11 "Calliope"
+-- Dialog box fix from Jan Vroonhof
+-- unified mswindows and tty event loops from Andy Piper
+-- miscellaneous patches from Gleb Arshinov
+-- miscellaneous patches from Charles Waldman and Adrian Aichner
+-- Mule dump time files remerged from mule-base package
+-- Documentation fixes from Jan Vroonhof
+-- 24bit color image fix from Kazuo OISHI
+-- various build fixes from Martin Buchholz
+
+to 21.2 beta10 "Boreas"
+-- package UI fix from Jan Vroonhof
+-- MS Windows NT process fix from Gleb Arshinov
+
+to 21.2 beta9 "Athena"
+-- parameterize replace-match function from Didier Verna
+-- X-Face support under mswindows from Andy Piper
+-- doc fixes from Adrian Aichner
+-- about patchlet from Marcus Thiessel
+-- isearch doc fixes from Didier Verna
+-- interlaced gif fix from Gunnar Evermann
+-- isearch improvements from Didier Verna
+-- eldap connection fix from William Perry
+-- package-get site fix from Robert Pluim
+-- loadable modules fix from Damon Lipparelli
+-- ldap fixes from Oscar Figueiredo
+-- loadable modules from J. Kean Johnston
+-- runwhatever from Charles Wilson
+-- redisplay fixes for glyphs from Andy Piper
+-- progress gauge widgets implentation from Andy Piper
+-- W3 works again due to font.el being fixed
+-- Another mule xemacs crash fixed
+-- Images in widgets, warning fixes and gui_item cleanup from Andy Piper
+-- package admin fixes under mswindows from Charles Waldman
+-- miscellaneous mswindows build fixes from Jonathan Harris
+-- help-echo fix from Hrvoje Niksic
+-- x font path support from Jim Radford
+-- MSVC compile fixes from Damon Lipparelli
+
+to 21.2 beta8 "Artemis"
+-- A bunch of Mule fixes from Martin Buchholz
+
+to 21.2 beta7 "Ares"
+-- mswindows modeline crash fix from Jonathan Harris
+-- picon glyph fix from Gunnar Evermann
+-- widgets-in-buffers and subwindow support from Andy Piper
+-- movemail pop support under mswindows from Fabrice Popineau
+-- ldap fixes from Oscar Figueiredo
+-- fns cleanup from Hrvoje Niksic
+-- menubar fixes from Didier Verna
+-- mswindows accelerator fix from Jonathan Harris
+-- dired mule fix from Didier Verna
+-- sound doc cleanup from Charles Waldman
+-- new display table functionality from Hrvoje Niksic
+-- minor cleanups
+-- package fixes from Jan Vroonhof
+-- subwindow support fixes from Martin Buchholz
+
+to 21.2 beta6 "Apollo"
+-- mswindows compile fixes from Martin Buchholz, Andy Piper, Greg
+   Klanderman and Adrian Aichner
+-- Synch with XEmacs 21.0.60
+-- mega-patch fixes from Martin Buchholz
+-- md5 fixes and testsuite from Hrvoje Niksic
+-- database fix from Hrvoje Niksic
+
+to 21.2 beta5 "Aphrodite"
+-- synch with XEmacs 21.0.58
+-- bytecode interpreter rewritten
+-- byte compiler fixes
+-- hash table implementation rewritten
+-- basic lisp functions rewritten
+-- spelling fixes
+-- garbage collector tuned a little
+-- various global code changes for consistency
+-- automated test suite
+-- major internals manual updates
+-- lisp reference updates
+
+to 21.2 beta4 "Aglaophonos"
+-- isearch keymap fix from Katsumi Yamaoka
+-- directory_files cleanup from Hrvoje Niksic
+-- C implementation of base64 from Hrvoje Niksic
+-- C implementation of `buffer-substring-no-properties' from Hrvoje Niksic
+-- Experimental fix for spurious `file has changed on disk' message from
+   Charles Waldman
+-- Fix for etags.el hook calling from Malcolm Box
+-- User-name-completion fix for MS Windows NT from Greg Klanderman
+
+to 21.2 beta3 "Aglaia"
+-- case sensitiveness improvements from Didier Verna
+-- Bug fixes from 21.0
+-- Word selection on mouse click on quotes from Hrvoje Niksic
+-- WAVE support for NAS from Raymond Toy
+
+to 21.2 beta2 "Aether"
+-- Synched with 21.0-pre14 "Poitou"
+-- isearch improvements from Hrvoje Niksic
+-- bytecompiler fix from Martin Buccholz
+-- shadow.el speedup from Martin Buchholz
+-- clash detection update from Jan Vroonhof
+-- Indirect buffers from Hrvoje Niksic
+-- ~user completion cleanup from Greg Klanderman
+-- New face property from Didier Verna
+-- ~user completion and fixes from Greg Klanderman
+-- casefiddle.c speedup from Martin Buchholz
+
 to 21.2 beta1 "Aeolus"
 -- Synch with 21.0-pre6
 -- Removal of ancient obsolete symbols courtesy of Altrasoft
 to 21.2 beta1 "Aeolus"
 -- Synch with 21.0-pre6
 -- Removal of ancient obsolete symbols courtesy of Altrasoft
index 2671250..bb8025d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,365 @@
+1999-05-14  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+       * XEmacs 21.2.14 is released
+
+1999-05-11  SL Baur  <steve@altair.xemacs.org>
+
+       * version.sh (infodock_build_version): Synch InfoDock version.
+
+1999-05-06  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * aclocal.m4 (ld_dynamic_link_flags): Change -Bexport to -Bdynamic 
+       for Solaris.
+
+1999-05-03  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * configure.in (xemacs_betaname): Don't generate Installation.el.
+
+       * Makefile.in.in (top_distclean): Don't remove Installation.el.
+
+1999-04-29  Andy Piper  <andy@xemacs.org>
+
+       * configure.in: add mingw32 as a target platform. add nt process
+       support options.
+
+1999-03-30  MORIOKA Tomohiko  <tomo@etl.go.jp>
+
+       * etc/HELLO (Amharic): New language.
+       (Slovak): Likewise.
+       (Thai): Likewise (by Virach Sornlertlamvanich).
+       (Greek): Fixed (by Yannis Haralambous).
+
+1998-09-04  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * configure.in: Delete mule-coding.o.
+
+1999-04-22  Gunnar Evermann  <ge204@eng.cam.ac.uk>
+
+       * lwlib/xlwmenu.c (string_width_u): Initialise chars before
+       calling XmStringGetLtoR
+       (string_draw_u): ditto and check return value of XmStringGetLtoR()
+
+1999-04-05  Olivier Galibert  <galibert@pobox.com>
+
+       * Makefile.in.in (GENERATED_HEADERS): Don't generate
+       puresize-adjust.h anymore
+
+       * configure.usage: Remove everything gung-ho or purespace related
+
+       * configure.in: Ditto
+
+1999-04-17  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * configure.in: Check for getloadavg().
+
+1999-03-12  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+       * XEmacs 21.2.13 is released
+
+1999-03-09  SL Baur  <steve@xemacs.org>
+
+       * Makefile.in.in (LC_ALL): Try very, very hard to build in C locale.
+
+1999-03-05  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+       * XEmacs 21.2.12 is released
+
+1999-03-04  Martin Buchholz  <martin@xemacs.org>
+
+       * Makefile.in.in (top_distclean): Remove confdefs.h as well.
+
+1999-03-03  Martin Buchholz  <martin@xemacs.org>
+
+       * configure.in:
+       `uname -v` -> "`uname -v`":
+       backquoted expressions need additional double
+       quotes to be a single token.
+       Use separate if's to avoid extra process invocations.
+
+1999-01-05  Gunnar Evermann  <ge204@eng.cam.ac.uk>
+
+       * PROBLEMS: Document crashes on SPARC with gcc 2.8.1. 
+
+1999-03-01  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+       * XEmacs 21.2.11 is released
+
+1999-02-16  Andy Piper  <andy@xemacs.org>
+
+       * PROBLEMS: add entries for building under Cygwin.
+
+1999-02-14  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * README.packages: Clear up that mule-sumo packages is used _in
+       addition_ to the normal sumo.
+
+1999-02-16  Martin Buchholz  <martin@xemacs.org>
+
+       * configure.usage: Move quantify/purify into debug flags section
+
+1999-02-10  Martin Buchholz  <martin@xemacs.org>
+
+       * configure.in: 
+       - Fixup xfs comments and redundant option checking
+
+       * configure.in: 
+       * INSTALL: 
+       * lisp/paths.el:
+       - improved automounter tmp directory support.
+       - support 4 (!) empirically discovered automounter conventions
+
+1999-02-10  Martin Buchholz  <martin@xemacs.org>
+
+       * lwlib/lwlib.h: 
+       - redo CONST hacking to deal with X11 R4, which was 
+       broken in a previous patch.
+
+1999-02-10  Martin Buchholz  <martin@xemacs.org>
+
+       * configure.in: 
+       - irix uses -rpath
+
+1999-02-10  Martin Buchholz  <martin@xemacs.org>
+
+       * configure.in: 
+       - Check for XOpenIM before using xim=xlib
+       - only use XmIm if $have_motif = yes
+
+1999-02-10  Martin Buchholz  <martin@xemacs.org>
+
+       * configure.in.  Port to BSDI BSD/OS 4.0.
+
+1999-01-07  Michael Sperber [Mr. Preprocessor]  <sperber@informatik.uni-tuebingen.de>
+
+       * configure.in: Warn if using Motif dialog boxes on AIX 4.3.
+
+1999-02-05  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+       * XEmacs 21.2.10 is released
+
+1999-02-02  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+       * XEmacs 21.2.9 is released
+
+1999-02-01  Glynn Clements  <glynn@sensei.co.uk>
+
+       * etc/recycle.xpm: Fix colours so that they work on TrueColor
+       and DirectColor displays
+
+1999-01-21  Andy Piper  <andy@xemacs.org>
+
+       * configure.in: make xface detection specifc to a window system in
+       general rather than just X.
+
+1999-18-10  Andy Piper <andy@xemacs.org>
+
+       * configure.in: remove -O3 prevention on cygwin - current versions
+       cope ok now.  remove dll prevention on cygwin - the new module
+       code checks correctly.
+       
+1999-01-10  J. Kean Johnston  <jkj@sco.com>
+
+       * configure.in: Added moduledir as the path where loadable modules 
+       are stored. Added --with-site-modules and --moduledir options.
+       - Ensure the SCO OpenServer compiles with --dynamic by default
+       - Check for dlfcn.h for dynamic loader
+       - Renamed dll.o to emodules.o and changed dynamic loader tests
+       - Renabled code that deals with site-lisp so that it is handled
+       correctly when a user specifies --with-site-lisp.
+
+       * aclocal.m4: Replaced entire file with more complete DLL tests
+       by way of libtool.
+
+       * config.usage: Removed TAB characters which caused it to be
+       displayed incorrectly on terminals where TAB != 8.
+       - Added help text to describe --with-site-modules and --moduledir.
+
+       * INSTALL: Updated documentation to describe module directories
+
+       * Makefile.in.in: Added moduledir, sitemoduledir macros.
+       - Make those directories at install time.
+
+1998-12-28  Martin Buchholz <martin@xemacs.org>
+
+       * XEmacs 21.2.8 is released.
+
+1998-12-28  Martin Buchholz  <martin@xemacs.org>
+
+       * PROBLEMS: Document Linux GNU Libc 2.0 I18N crashes.
+
+1998-12-24  Martin Buchholz <martin@xemacs.org>
+
+       * XEmacs 21.2.7 is released.
+
+1998-12-20  Martin Buchholz  <martin@xemacs.org>
+
+       * configure.in: Redo DBM support
+       - die if dbm support requested, but not provided.
+       - properly check for libgdbm, then libc, then libdbm
+       - properly check for ndbm.h
+       - comments improved
+       - XE_DIE should always prefix messages with Error: for clarity
+
+1998-12-07  Martin Buchholz  <martin@xemacs.org>
+
+       * xemacs.mak (TEMACS_OBJS):
+       (DOC_SRC4):
+       - Remove pure.c, pure.obj
+
+1998-12-06  Martin Buchholz  <martin@xemacs.org>
+
+       * Makefile.in.in (distclean):
+       * dynodump/Makefile.in.in (distclean):
+       * src/Makefile.in.in (distclean):
+       * lib-src/Makefile.in.in (distclean):
+       * lwlib/Makefile.in.in (distclean):
+       - Make sure GNUmakefile is deleted.
+
+1998-12-17  Andy Piper  <andy@xemacs.org>
+
+       * configure.in (all_widgets): remove gui.o addition - its always
+       in the makefile now.
+
+       * configure.in: add gui-msw.o to msw objects.
+
+1998-12-16  Andy Piper  <andy@xemacs.org>
+
+       * XEmacs 21.2.6 is released
+
+1998-12-05  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+       * XEmacs 21.2.5 is released
+
+1998-11-28  SL Baur  <steve@altair.xemacs.org>
+
+       * XEmacs 21.2-beta4 is released.
+
+1998-11-27  SL Baur  <steve@altair.xemacs.org>
+
+       * configure.in: Linux/Arm Support.
+       From James LewisMoss <dres@ioa.com>
+
+1998-11-27  Takeshi Hagiwara  <hagiwara@ie.niigata-u.ac.jp>
+
+       * configure.in:
+       Fix the realpath() problem of UnixWare2.1.3.
+       Patches for NEC's sysv4.2 machine.
+
+1998-11-09  Kazuyuki IENAGA  <ienaga@jsys.co.jp>
+
+       * configure.in: Check if there's wnn4.2 or wnn6 specific library
+       installed. The Wnn library will be checked if the --with-wnn
+       and/or --with-wnn6 was specified compulsory.
+
+1998-07-28  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * configure.in (CPP): Too many spaces im run-patch flag detection.
+
+1998-10-15  SL Baur  <steve@altair.xemacs.org>
+
+       * XEmacs 21.2-beta3 is released.
+
+1998-10-13  Andy Piper  <andyp@parallax.co.uk>
+
+       * configure.in: enable drag and drop support by default if mswindows is
+       detected.
+
+1998-10-09  Kevin Oberman  <oberman@es.net>
+
+       * config.sub: Fix for Alpha architecture
+
+1998-10-05  Andy Piper  <andyp@parallax.co.uk>
+
+       * configure.in: don't enable shared lib support for cygwin unless
+       explititly told to.
+
+1998-10-02  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
+
+       * etc/xemacs.1: Remove misplace "\".
+
+1998-09-29  SL Baur  <steve@altair.xemacs.org>
+
+       * XEmacs 21.2-beta2 is released.
+
+1998-09-09  Gunnar Evermann  <Gunnar.Evermann@nats.informatik.uni-hamburg.de>
+
+       * lwlib/xlwmenu.c:
+       * lwlib/xlwscrollbar: fix for Motif >=2.0
+       Patch provided by Glenn Barry <gtb@eng.sun.com>
+
+       * PROBLEMS: XEmacs 21.0 now works on HP-UX 11.0
+
+1998-09-02  Andy Piper  <andyp@parallax.co.uk>
+
+       * configure.in: check for cygwin32/version.h.
+
+1998-08-31  Michael Sperber [Mr. Preprocessor]  <sperber@informatik.uni-tuebingen.de>
+
+       * PROBLEMS: Added AIX 4.3 note.
+
+       * configure.in: Better detection of AIX 4.3.
+       AIX xlc can do -g and -Ox at the same time.
+
+1998-09-05  SL Baur  <steve@altair.xemacs.org>
+
+       * etc/check_cygwin_setup.sh: grammar fix.
+
+1998-09-02  Andy Piper  <andyp@parallax.co.uk>
+
+       * etc/check_cygwin_setup.sh: fix a couple of buglets.
+
+1998-08-23  Adrian Aichner  <aichner@ecf.teradyne.com>
+
+       * etc/sample.emacs: Enable sound support on mswindows devices.
+
+1998-08-17  P. E. Jareth Hein  <jareth@camelot.co.jp>
+
+       * configure.in: Alter configure so that it checks for mismatched PNG
+       header/libs, screams a little louder on old/mismatched library
+       conditions for both PNG and XPM, stop screaming if png is not found and
+       no window-system is selected, and fixed a bug in the XPM checking.
+
+1998-08-06  Adrian Aichner  <aichner@ecf.teradyne.com>
+
+       * etc/TUTORIAL.de: Fixing typos and grammatical errors.  Fixing
+       inconsistent usage of RET, <Return>, and <return> (only using
+       <Return> now).  Changing TUTORIAL to TUTORIAL.de throughout
+       itself.  Adding english equivalent to german translation of all
+       concepts used in TUTORIAL.de.
+
+1998-08-07  P. E. Jareth Hein  <jareth@camelot.co.jp>
+
+       * configure.usage (--without-gif): Modify text to reflect status
+       of GIF support
+
+1998-08-04  P. E. Jareth Hein  <jareth@camelot.co.jp>
+
+       * configure.in: add back in the support for the in-core GIF
+       code, change the required PNG library version to 1.0.2, and add
+       a warning if PNG not found, since PNG images are now distributed
+       as part of the core.  Also minor wording changes in things reported
+       to the user.
+
+1998-07-28  Kai Haberzettl  <khaberz@synnet.de>
+
+       * BETA: Update mailing-list address for build-reports
+
+1998-08-01  SL Baur  <steve@altair.xemacs.org>
+
+       * Makefile.in (TAGS tags): Add variable `tagslisp' so a TAGS file
+       can built that includes package lisp.
+
+1998-07-23  Martin Buchholz  <martin@xemacs.org>
+
+       * configure.in:
+       - support multiple flavors of alpha, (XEmacs treats them identically)
+       - Fix AC_TRY_RUN so that actions have access to $?
+       - Identify DEC C compilers. Add default optimization CFLAGS and
+         always use -std.
+       - Use an extensible method for adding support for future compilers.
+       - Have SunPro C use that same extensible method.
+       - Make sol2 always use `-R', Linux and DEC OSF always use `-rpath'
+
 1998-07-19  SL Baur  <steve@altair.xemacs.org>
 
        * XEmacs 21.2-beta1 is released.
 1998-07-19  SL Baur  <steve@altair.xemacs.org>
 
        * XEmacs 21.2-beta1 is released.
@@ -6,9 +368,9 @@
 
        * config.guess: Synched with latest FSF version.
 
 
        * config.guess: Synched with latest FSF version.
 
-1998-07-12  Björn Torkelsson  <torkel@hpc2n.umu.se>
+1998-07-12  Bjrn Torkelsson  <torkel@hpc2n.umu.se>
 
 
-       * Makefile.in: added LDFLAGS. 
+       * Makefile.in: added LDFLAGS.
 
 1998-07-12  SL Baur  <steve@altair.xemacs.org>
 
 
 1998-07-12  SL Baur  <steve@altair.xemacs.org>
 
 
 1998-06-20  Michael Sperber [Mr. Preprocessor]  <sperber@informatik.uni-tuebingen.de>
 
 
 1998-06-20  Michael Sperber [Mr. Preprocessor]  <sperber@informatik.uni-tuebingen.de>
 
-       * etc/PACKAGES: 
+       * etc/PACKAGES:
        * etc/BETA: Moved some package stuff into Texinfo docs.  Other nitpicks
 
 1998-06-20  Kazuyuki IENAGA <ienaga@jsys.co.jp>
        * etc/BETA: Moved some package stuff into Texinfo docs.  Other nitpicks
 
 1998-06-20  Kazuyuki IENAGA <ienaga@jsys.co.jp>
        * PROBLEMS:
        Document problems with Solaris 2.6 + XSUNTRANSPORT
 
        * PROBLEMS:
        Document problems with Solaris 2.6 + XSUNTRANSPORT
 
-       * Makefile.in: 
+       * Makefile.in:
        * lwlib/Makefile.in.in:
        * modules/Makefile.in:
        - Adjust for luser's CDPATH being set to something weird.
        * lwlib/Makefile.in.in:
        * modules/Makefile.in:
        - Adjust for luser's CDPATH being set to something weird.
 
 1998-04-27  SL Baur  <steve@altair.xemacs.org>
 
 
 1998-04-27  SL Baur  <steve@altair.xemacs.org>
 
-       * configure.in (progname): Parameterize program name on `progname' 
+       * configure.in (progname): Parameterize program name on `progname'
        and add --with-infodock.
 
 1998-04-26  SL Baur  <steve@altair.xemacs.org>
        and add --with-infodock.
 
 1998-04-26  SL Baur  <steve@altair.xemacs.org>
@@ -336,7 +698,7 @@ Wed Apr 22 12:59:35 1998  Andy Piper  <andyp@parallax.co.uk>
        * info/dir: Fixed the explanatory notes for
        `Info-default-directory-list' removal and the new automatic dir
        rebuilding facility.  Reindented the menu.  Added an entry for
        * info/dir: Fixed the explanatory notes for
        `Info-default-directory-list' removal and the new automatic dir
        rebuilding facility.  Reindented the menu.  Added an entry for
-       term.info 
+       term.info
 
 1998-04-20  SL Baur  <steve@altair.xemacs.org>
 
 
 1998-04-20  SL Baur  <steve@altair.xemacs.org>
 
@@ -356,14 +718,14 @@ Fri Apr 17 12:59:35 1998  Andy Piper  <andyp@parallax.co.uk>
        * configure.in: enable install pre-processing for mswindows
 
 Fri Apr 17 12:59:35 1998  Andy Piper  <andyp@parallax.co.uk>
        * configure.in: enable install pre-processing for mswindows
 
 Fri Apr 17 12:59:35 1998  Andy Piper  <andyp@parallax.co.uk>
-       
+
        * Makefile.in.in: add install_pp to install incantation.
 
        * installexe.sh: new file. Add .exe to install targets if the
        result is executable.
 
 Fri Apr 17 12:59:35 1998  Andy Piper  <andyp@parallax.co.uk>
        * Makefile.in.in: add install_pp to install incantation.
 
        * installexe.sh: new file. Add .exe to install targets if the
        result is executable.
 
 Fri Apr 17 12:59:35 1998  Andy Piper  <andyp@parallax.co.uk>
-       
+
        * Makefile.in: add install_pp to install incantation.
 
 1998-04-14  Itay Ben-Yaacov <pezz@www-mail.huji.ac.il>
        * Makefile.in: add install_pp to install incantation.
 
 1998-04-14  Itay Ben-Yaacov <pezz@www-mail.huji.ac.il>
@@ -377,7 +739,7 @@ Thu Apr 16 12:59:35 1998  Andy Piper  <andyp@parallax.co.uk>
 
 1998-04-06  Martin Buchholz  <martin@xemacs.org>
 
 
 1998-04-06  Martin Buchholz  <martin@xemacs.org>
 
-       * config.h.in: Add _SVID_SOURCE to list of xmkmf #defines.  
+       * config.h.in: Add _SVID_SOURCE to list of xmkmf #defines.
        Used (at least) by RedHat 4.2.
 
 1998-04-11  Michael Sperber [Mr. Preprocessor]  <sperber@informatik.uni-tuebingen.de>
        Used (at least) by RedHat 4.2.
 
 1998-04-11  Michael Sperber [Mr. Preprocessor]  <sperber@informatik.uni-tuebingen.de>
@@ -460,7 +822,7 @@ Thu Apr 16 12:59:35 1998  Andy Piper  <andyp@parallax.co.uk>
        * configure.in: Check for -lz, -lgz unconditionally.  Too many
        system linkers don't properly die when there are cascaded link
        dependencies, so we can't rely on the linker for that.  The only
        * configure.in: Check for -lz, -lgz unconditionally.  Too many
        system linkers don't properly die when there are cascaded link
        dependencies, so we can't rely on the linker for that.  The only
-       downside is that we might link with an extra unneeded library.  If 
+       downside is that we might link with an extra unneeded library.  If
        you really really care about this, you can go fix it.
 
        * configure.in: Enhance PANIC msg to make it clear that
        you really really care about this, you can go fix it.
 
        * configure.in: Enhance PANIC msg to make it clear that
@@ -469,13 +831,13 @@ Thu Apr 16 12:59:35 1998  Andy Piper  <andyp@parallax.co.uk>
 1998-03-27  Martin Buchholz  <martin@xemacs.org>
 
        * configure.in: $debug was not properly dependent on $beta
 1998-03-27  Martin Buchholz  <martin@xemacs.org>
 
        * configure.in: $debug was not properly dependent on $beta
-       
-       * configure.in: Move offix configuration out of src/Makefile.in.in 
+
+       * configure.in: Move offix configuration out of src/Makefile.in.in
        into configure.in.
 
        * configure.in: Reorganize xpm detection code.
 
        into configure.in.
 
        * configure.in: Reorganize xpm detection code.
 
-       * configure.in: XIM default to ON if Motif which is not Lesstif is 
+       * configure.in: XIM default to ON if Motif which is not Lesstif is
        found.
 
        * configure.in: Keep auto-generated makefile dependencies out of
        found.
 
        * configure.in: Keep auto-generated makefile dependencies out of
@@ -564,7 +926,7 @@ Thu Apr 16 12:59:35 1998  Andy Piper  <andyp@parallax.co.uk>
        * configure.in (quoted_arguments): Fix unquoted variable in
        error-checking test.
        - fix bogus substitution.
        * configure.in (quoted_arguments): Fix unquoted variable in
        error-checking test.
        - fix bogus substitution.
-       
+
 1998-03-17  SL Baur  <steve@altair.xemacs.org>
 
        * configure.in: In -lpng test, look for png_set_strip_alpha.
 1998-03-17  SL Baur  <steve@altair.xemacs.org>
 
        * configure.in: In -lpng test, look for png_set_strip_alpha.
@@ -703,7 +1065,7 @@ Wed Mar 04 08:55:12 1998  Andy Piper  <andyp@parallax.co.uk>
 
 1998-02-21  SL Baur  <steve@altair.xemacs.org>
 
 
 1998-02-21  SL Baur  <steve@altair.xemacs.org>
 
-       * configure.in (after_morecore_hook_exists): Modify dlmalloc tests 
+       * configure.in (after_morecore_hook_exists): Modify dlmalloc tests
        to also test for Linux libc5.
 
 1998-02-19  SL Baur  <steve@altair.xemacs.org>
        to also test for Linux libc5.
 
 1998-02-19  SL Baur  <steve@altair.xemacs.org>
@@ -717,7 +1079,7 @@ Wed Mar 04 08:55:12 1998  Andy Piper  <andyp@parallax.co.uk>
        * configure.usage (--with-gung): Document.  Turns on
        USE_MINIMAL_TAGBITS and USE_INDEXED_LRECORD_IMPLEMENTATION.
        (--with-term): Remove.
        * configure.usage (--with-gung): Document.  Turns on
        USE_MINIMAL_TAGBITS and USE_INDEXED_LRECORD_IMPLEMENTATION.
        (--with-term): Remove.
-       
+
        * XEmacs-20.5-beta26 is released.
 
 1998-02-18  SL Baur  <steve@altair.xemacs.org>
        * XEmacs-20.5-beta26 is released.
 
 1998-02-18  SL Baur  <steve@altair.xemacs.org>
@@ -805,8 +1167,8 @@ Wed Jan 21 10:49:47 1998  Andy Piper  <andyp@parallax.co.uk>
 
 1998-01-13  Martin Buchholz  <martin@xemacs.org>
 
 
 1998-01-13  Martin Buchholz  <martin@xemacs.org>
 
-       * configure.usage:  
-       * etc/NEWS:  
+       * configure.usage:
+       * etc/NEWS:
        Remove doc for configure-time INFOPATH, no longer used.
 
        * etc/BETA: Update ftp addresses.
        Remove doc for configure-time INFOPATH, no longer used.
 
        * etc/BETA: Update ftp addresses.
@@ -817,13 +1179,13 @@ Wed Jan 21 10:49:47 1998  Andy Piper  <andyp@parallax.co.uk>
        * src/config.h.in:
        Define HAVE_INVERSE_HYPERBOLIC using 1 configure test, not 3.
 
        * src/config.h.in:
        Define HAVE_INVERSE_HYPERBOLIC using 1 configure test, not 3.
 
-       * lwlib/lwlib.h: 
-       * lwlib/lwlib.c: 
-       * lwlib/lwlib-config.c: 
-       * lwlib/lwlib-Xm.c: 
-       * lwlib/lwlib-Xaw.c: 
-       * lwlib/lwlib-Xlw.c: 
-       * lwlib/config.h.in: 
+       * lwlib/lwlib.h:
+       * lwlib/lwlib.c:
+       * lwlib/lwlib-config.c:
+       * lwlib/lwlib-Xm.c:
+       * lwlib/lwlib-Xaw.c:
+       * lwlib/lwlib-Xlw.c:
+       * lwlib/config.h.in:
        * src/menubar-x.c:
        Prepend LWLIB_ to (SCROLLBARS|MENUBARS|DIALOGS)_(MOTIF|LUCID|ATHENA).
        Maintain only one set of variables.
        * src/menubar-x.c:
        Prepend LWLIB_ to (SCROLLBARS|MENUBARS|DIALOGS)_(MOTIF|LUCID|ATHENA).
        Maintain only one set of variables.
@@ -831,13 +1193,13 @@ Wed Jan 21 10:49:47 1998  Andy Piper  <andyp@parallax.co.uk>
        * etc/xemacs.1: Update author list.
 
        * Makefile.in (install-arch-dep): Simplify.
        * etc/xemacs.1: Update author list.
 
        * Makefile.in (install-arch-dep): Simplify.
-       Replace construct  `test -d $dir && foo'  with  
+       Replace construct  `test -d $dir && foo'  with
        `if test -d $dir; then foo; fi'
 
        `if test -d $dir; then foo; fi'
 
-       * lwlib/xlwmenu.c: 
-       * lwlib/xlwscrollbar.c: 
-       * lwlib/lwlib-Xlw.c: 
-       * lwlib/lwlib-Xm.c: 
+       * lwlib/xlwmenu.c:
+       * lwlib/xlwscrollbar.c:
+       * lwlib/lwlib-Xlw.c:
+       * lwlib/lwlib-Xm.c:
        Always assume presence of limits.h (ANSI).
 
 1998-01-12  SL Baur  <steve@altair.xemacs.org>
        Always assume presence of limits.h (ANSI).
 
 1998-01-12  SL Baur  <steve@altair.xemacs.org>
@@ -920,7 +1282,7 @@ Thu Jan 08 09:42:36 1998    <andyp@parallax.co.uk>
 
 1997-12-21  SL Baur  <steve@altair.xemacs.org>
 
 
 1997-12-21  SL Baur  <steve@altair.xemacs.org>
 
-       * etc/BETA (Prerequisite): Add cookbook procedures for maintaining 
+       * etc/BETA (Prerequisite): Add cookbook procedures for maintaining
        package lisp directories.
 
 1997-12-20  SL Baur  <steve@altair.xemacs.org>
        package lisp directories.
 
 1997-12-20  SL Baur  <steve@altair.xemacs.org>
@@ -929,7 +1291,7 @@ Thu Jan 08 09:42:36 1998    <andyp@parallax.co.uk>
 
 1997-12-19  SL Baur  <steve@altair.xemacs.org>
 
 
 1997-12-19  SL Baur  <steve@altair.xemacs.org>
 
-       * configure.in (bitmapdir): Reenable --with-session by default for 
+       * configure.in (bitmapdir): Reenable --with-session by default for
        testing.
 
 1997-12-18  Kyle Jones  <kyle_jones@wonderworks.com>
        testing.
 
 1997-12-18  Kyle Jones  <kyle_jones@wonderworks.com>
@@ -940,7 +1302,7 @@ Thu Jan 08 09:42:36 1998    <andyp@parallax.co.uk>
 1997-12-18  Kyle Jones  <kyle_jones@wonderworks.com>
 
        * etc/toolbar: Added support for foregroundToolBarColor
 1997-12-18  Kyle Jones  <kyle_jones@wonderworks.com>
 
        * etc/toolbar: Added support for foregroundToolBarColor
-         symbol to most icons. 
+         symbol to most icons.
 
 1997-12-17  SL Baur  <steve@altair.xemacs.org>
 
 
 1997-12-17  SL Baur  <steve@altair.xemacs.org>
 
@@ -1140,7 +1502,7 @@ Thu Jan 08 09:42:36 1998    <andyp@parallax.co.uk>
          device-msw.c, emacs.c, event-msw.c, event-msw.h, event-stream.c,
          events.c, events.h, faces.c, frame-msw.c, frame.c, general.c,
          msw-proc.c, objects-msw.c, objects-msw.h, redisplay-msw.c,
          device-msw.c, emacs.c, event-msw.c, event-msw.h, event-stream.c,
          events.c, events.h, faces.c, frame-msw.c, frame.c, general.c,
          msw-proc.c, objects-msw.c, objects-msw.h, redisplay-msw.c,
-         redisplay.c, symsinit.h, 
+         redisplay.c, symsinit.h,
 
        * Didn't change 'win32' in nt.c, nt.h, ntproc.c
 
 
        * Didn't change 'win32' in nt.c, nt.h, ntproc.c
 
@@ -1176,7 +1538,7 @@ Sun November 01 12:00:00 1997 <jhar@tardis.ed.ac.uk>
 1997-11-05  Didier Verna  <verna@inf.enst.fr>
 
        * configure.in: Added the --site-prefixes options for the configure
 1997-11-05  Didier Verna  <verna@inf.enst.fr>
 
        * configure.in: Added the --site-prefixes options for the configure
-       script. You give a colon or space separated list of prefixes, and 
+       script. You give a colon or space separated list of prefixes, and
        subdirectories include/ and lib/ will be added with -I and -L.
 
 1997-11-05  Martin Buchholz  <Martin Buchholz <martin@xemacs.org>>
        subdirectories include/ and lib/ will be added with -I and -L.
 
 1997-11-05  Martin Buchholz  <Martin Buchholz <martin@xemacs.org>>
@@ -1268,7 +1630,7 @@ Sun November 01 12:00:00 1997 <jhar@tardis.ed.ac.uk>
        TIFF(broken) and replace with test for ImageMagick.
 
 1997-10-30  Kyle Jones  <kyle_jones@wonderworks.com>
        TIFF(broken) and replace with test for ImageMagick.
 
 1997-10-30  Kyle Jones  <kyle_jones@wonderworks.com>
-       
+
        * etc/Emacs.ad: Added *XlwMenu*highlightForeground entry.
          Added *XlwMenu*titleForeground entry.
 
        * etc/Emacs.ad: Added *XlwMenu*highlightForeground entry.
          Added *XlwMenu*titleForeground entry.
 
@@ -1307,7 +1669,7 @@ Sun November 01 12:00:00 1997 <jhar@tardis.ed.ac.uk>
        * lib-src/gnuslib.c: Always include config.h before system headers
        * configure.in: Improve AIX configure support
          - NON_GNU_CC defaults to `xlc'
        * lib-src/gnuslib.c: Always include config.h before system headers
        * configure.in: Improve AIX configure support
          - NON_GNU_CC defaults to `xlc'
-         - CFLAGS defaults to "-O3 -qstrict  -qlibansi -qinfo -qro 
+         - CFLAGS defaults to "-O3 -qstrict  -qlibansi -qinfo -qro
            -qmaxmem=20000"
          - check for sin instead of sqrt in -lm to avoid xlc internal error
          - Detect -li18n for use with Motif
            -qmaxmem=20000"
          - check for sin instead of sqrt in -lm to avoid xlc internal error
          - Detect -li18n for use with Motif
@@ -1344,7 +1706,7 @@ Sun November 01 12:00:00 1997 <jhar@tardis.ed.ac.uk>
 
 1997-10-18  SL Baur  <steve@altair.xemacs.org>
 
 
 1997-10-18  SL Baur  <steve@altair.xemacs.org>
 
-        * XEmacs 20.3-beta91 is released. 
+        * XEmacs 20.3-beta91 is released.
 
 1997-10-16  Hrvoje Niksic <hniksic@srce.hr>
 
 
 1997-10-16  Hrvoje Niksic <hniksic@srce.hr>
 
@@ -1433,7 +1795,7 @@ Sun November 01 12:00:00 1997 <jhar@tardis.ed.ac.uk>
 
        * Makefile.in: Add `make configure' target
 
 
        * Makefile.in: Add `make configure' target
 
-       * etc/BETA: 
+       * etc/BETA:
          - remove Chuck as contact name
          - random small improvements
          - remove I/me references - the message should be that XEmacs
          - remove Chuck as contact name
          - random small improvements
          - remove I/me references - the message should be that XEmacs
@@ -1484,8 +1846,8 @@ Sun November 01 12:00:00 1997 <jhar@tardis.ed.ac.uk>
 1997-10-03  Martin Buchholz  <mrb@eng.sun.com>
 
        * lib-src/etags.c:  etags 12.28 + prototypization
 1997-10-03  Martin Buchholz  <mrb@eng.sun.com>
 
        * lib-src/etags.c:  etags 12.28 + prototypization
-       * INSTALL:  Better document --site-runtime-libraries 
-       * src/scrollbar-x.c (x_update_scrollbar_instance_status): 
+       * INSTALL:  Better document --site-runtime-libraries
+       * src/scrollbar-x.c (x_update_scrollbar_instance_status):
          FIX: M-x scroll-left; horizontal scrollbar appears; drag it
          left; scrollbar disappears; keyboard inoperative.
        * configure.in:  Remove left-over references to *_switch_x_*
          FIX: M-x scroll-left; horizontal scrollbar appears; drag it
          left; scrollbar disappears; keyboard inoperative.
        * configure.in:  Remove left-over references to *_switch_x_*
@@ -1505,7 +1867,7 @@ Sun November 01 12:00:00 1997 <jhar@tardis.ed.ac.uk>
        * etc/BETA: Document existence of `Installation' file.
        - Document requirement of rebuilding finder-inf.el when building
        from the full tarball.
        * etc/BETA: Document existence of `Installation' file.
        - Document requirement of rebuilding finder-inf.el when building
        from the full tarball.
-       
+
        * Makefile.in (top_distclean): Remove finder-inf.el*.
 
        * configure.in (use_union_type): Default to "yes".
        * Makefile.in (top_distclean): Remove finder-inf.el*.
 
        * configure.in (use_union_type): Default to "yes".
@@ -1558,11 +1920,11 @@ Sun November 01 12:00:00 1997 <jhar@tardis.ed.ac.uk>
 
        * src/redisplay-tty.c: Fix crashes with non-7bit tty escape
        sequences (needs more testing).
 
        * src/redisplay-tty.c: Fix crashes with non-7bit tty escape
        sequences (needs more testing).
-       * */Makefile*: 
+       * */Makefile*:
        - Cleanup man/*/Makefile for consistency.
        - use $(MAKEFINFO), $(TEXI2DVI), etc...
        - Make combination --with-srcdir + Sun make work properly.
        - Cleanup man/*/Makefile for consistency.
        - use $(MAKEFINFO), $(TEXI2DVI), etc...
        - Make combination --with-srcdir + Sun make work properly.
-       - Change construct: test -d $${dir} || mkdir $${dir} 
+       - Change construct: test -d $${dir} || mkdir $${dir}
           --> if test ! -d $${dir}; then mkdir $${dir}; fi
        * lisp/x11/x-win-sun.el: Fix remaining glitches with
        re-mappings of Sun function keys.
           --> if test ! -d $${dir}; then mkdir $${dir}; fi
        * lisp/x11/x-win-sun.el: Fix remaining glitches with
        re-mappings of Sun function keys.
@@ -1605,9 +1967,9 @@ Sun November 01 12:00:00 1997 <jhar@tardis.ed.ac.uk>
        - x-keysym-on-keyboard-sans-modifiers-p introduced.
        - x-keysym-hashtable introduced.
        - allow X11R4 libs to guess keysyms on X11R5 servers.
        - x-keysym-on-keyboard-sans-modifiers-p introduced.
        - x-keysym-hashtable introduced.
        - allow X11R4 libs to guess keysyms on X11R5 servers.
-       - A better workaround for the bug that some Xlibs generate 
+       - A better workaround for the bug that some Xlibs generate
          Multi_key a adiaeresis when pressing Multi_key a "
          Multi_key a adiaeresis when pressing Multi_key a "
-       
+
        * src/dgif_lib.c: Make sure size_t is defined before using it.
 
 1997-09-12  SL Baur  <steve@altair.xemacs.org>
        * src/dgif_lib.c: Make sure size_t is defined before using it.
 
 1997-09-12  SL Baur  <steve@altair.xemacs.org>
@@ -1672,7 +2034,7 @@ Sun November 01 12:00:00 1997 <jhar@tardis.ed.ac.uk>
        - new variable `blddir' introduced for informational purposes.
        * lib-src/config.values.in: new config.el implementation
        * lib-src/config.values.sh: new config.el implementation
        - new variable `blddir' introduced for informational purposes.
        * lib-src/config.values.in: new config.el implementation
        * lib-src/config.values.sh: new config.el implementation
-       * lisp/modes/pascal.el: Sync with GNU Emacs, fix infloop problem 
+       * lisp/modes/pascal.el: Sync with GNU Emacs, fix infloop problem
        (thanks to Espen Skoglund, pascal.el maintainer)
        * src/chartab.c: maintainability improvements.
        * src/mule-coding.c: FIX for: editing DOS files with ISO2022*
        (thanks to Espen Skoglund, pascal.el maintainer)
        * src/chartab.c: maintainability improvements.
        * src/mule-coding.c: FIX for: editing DOS files with ISO2022*
@@ -1731,10 +2093,10 @@ Sun November 01 12:00:00 1997 <jhar@tardis.ed.ac.uk>
 
        * src/fns.c (require): Print messages when loading a file as a
        result of require.
 
        * src/fns.c (require): Print messages when loading a file as a
        result of require.
-       
+
        * configure.in:
        * lisp/utils/config.el:
        * configure.in:
        * lisp/utils/config.el:
-       * lib-src/config.values: 
+       * lib-src/config.values:
        - new file created and installed by building.
        - Allow configuration time values to be queried by the lisp code.
 
        - new file created and installed by building.
        - Allow configuration time values to be queried by the lisp code.
 
@@ -1764,7 +2126,7 @@ Sun November 01 12:00:00 1997 <jhar@tardis.ed.ac.uk>
 1997-07-10  Hrvoje Niksic  <hniksic@srce.hr>
 
        * extents.c (print_extent): Print correctly.
 1997-07-10  Hrvoje Niksic  <hniksic@srce.hr>
 
        * extents.c (print_extent): Print correctly.
-       
+
 1997-07-13  Steven L Baur  <steve@altair.xemacs.org>
 
        * configure.in (CPP): Add -Wall to default gcc CFLAGS.
 1997-07-13  Steven L Baur  <steve@altair.xemacs.org>
 
        * configure.in (CPP): Add -Wall to default gcc CFLAGS.
@@ -1789,12 +2151,12 @@ Sun November 01 12:00:00 1997 <jhar@tardis.ed.ac.uk>
 
        * lisp/x11/x-select.el:
        * src/xselect.c: Try STRING if selection owner couldn't convert
 
        * lisp/x11/x-select.el:
        * src/xselect.c: Try STRING if selection owner couldn't convert
-       COMPOUND_TEXT. 
+       COMPOUND_TEXT.
 
        * src/*.c: Change defalt to default_, and in general allow
        doc-snarfing functions to recognize and ignore trailing `_'
 
 
        * src/*.c: Change defalt to default_, and in general allow
        doc-snarfing functions to recognize and ignore trailing `_'
 
-       * src/*.[ch]: Introduce XVECTOR_DATA and XVECTOR_LENGTH macros and 
+       * src/*.[ch]: Introduce XVECTOR_DATA and XVECTOR_LENGTH macros and
        convert source code to use them consistently.
 
 1997-07-08  Steven L Baur  <steve@altair.xemacs.org>
        convert source code to use them consistently.
 
 1997-07-08  Steven L Baur  <steve@altair.xemacs.org>
@@ -1803,7 +2165,7 @@ Sun November 01 12:00:00 1997 <jhar@tardis.ed.ac.uk>
 
 1997-07-08  Martin Buchholz  <mrb@eng.sun.com>
 
 
 1997-07-08  Martin Buchholz  <mrb@eng.sun.com>
 
-       * configure.in: Set options differently, depending on beta-ness of 
+       * configure.in: Set options differently, depending on beta-ness of
        build tree.
        * *Makefile*: Clean up *clean: targets, esp. Steven's beloved
        distclean.
        build tree.
        * *Makefile*: Clean up *clean: targets, esp. Steven's beloved
        distclean.
@@ -1842,7 +2204,7 @@ Sun November 01 12:00:00 1997 <jhar@tardis.ed.ac.uk>
        - Autodetect usleep
 
        * src/s/sol2.h: Support gcc on various Solaris releases.
        - Autodetect usleep
 
        * src/s/sol2.h: Support gcc on various Solaris releases.
-       
+
        * lib-src/*.c: Ansify prototypes.
 
        * lisp/prim/files.el: Optimize auto-mode-alist.
        * lib-src/*.c: Ansify prototypes.
 
        * lisp/prim/files.el: Optimize auto-mode-alist.
@@ -1874,7 +2236,7 @@ Sun November 01 12:00:00 1997 <jhar@tardis.ed.ac.uk>
        * configure.in (CPP): Correct typo `print-lib-gcc-file-name'
        should be `print-libgcc-file-name'
        From Katsumi Yamaoka <yamaoka@ga.sony.co.jp>
        * configure.in (CPP): Correct typo `print-lib-gcc-file-name'
        should be `print-libgcc-file-name'
        From Katsumi Yamaoka <yamaoka@ga.sony.co.jp>
-       
+
        * XEmacs 20.3-beta10 is released.
 
 1997-06-29  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
        * XEmacs 20.3-beta10 is released.
 
 1997-06-29  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
@@ -2040,7 +2402,7 @@ Sun November 01 12:00:00 1997 <jhar@tardis.ed.ac.uk>
 
        * lwlib/lwlib-Xaw.c, lwlib/lwlib-Xlw.c, lwlib/lwlib-Xm.c,
        lwlib/lwlib.c:  Make 64 bit clean.
 
        * lwlib/lwlib-Xaw.c, lwlib/lwlib-Xlw.c, lwlib/lwlib-Xm.c,
        lwlib/lwlib.c:  Make 64 bit clean.
-       
+
 1997-06-20  Steven L Baur  <steve@altair.xemacs.org>
 
        * etc/gnuserv.1: Updates and cleanup.
 1997-06-20  Steven L Baur  <steve@altair.xemacs.org>
 
        * etc/gnuserv.1: Updates and cleanup.
@@ -2058,7 +2420,7 @@ Sun November 01 12:00:00 1997 <jhar@tardis.ed.ac.uk>
 
        * */Makefile.in.in: Another rewrite
        Make makefiles immune from being mangled by various cpp
 
        * */Makefile.in.in: Another rewrite
        Make makefiles immune from being mangled by various cpp
-       implementations by quoting non-preprocessor directive lines. 
+       implementations by quoting non-preprocessor directive lines.
        - random cleanup
        - Use $(RM) and $(pwd) macros consistently
        - Add dependencies for balloon-help source files
        - random cleanup
        - Use $(RM) and $(pwd) macros consistently
        - Add dependencies for balloon-help source files
@@ -2098,11 +2460,11 @@ Wed Jun 18 16:41:43 1997  Steven L Baur  <steve@altair.xemacs.org>
          previously commented out and normalized everything vis a vis
          'backspace and 'delete keysyms.
        * lisp/packages/*.el: Normalized all the "\177" bindings
          previously commented out and normalized everything vis a vis
          'backspace and 'delete keysyms.
        * lisp/packages/*.el: Normalized all the "\177" bindings
-       * lisp/modes/cperl-mode.el: Created cperl-electric-delete function 
+       * lisp/modes/cperl-mode.el: Created cperl-electric-delete function
          which is a "smart" version of the cperl-electric-backspace
          function (it honors the desired delete direction).  Bound it to
          'delete and the electric-backspace to 'backspace.
          which is a "smart" version of the cperl-electric-backspace
          function (it honors the desired delete direction).  Bound it to
          'delete and the electric-backspace to 'backspace.
-       * lisp/packages/pending-del.el: Added cperl-electric-backspace and 
+       * lisp/packages/pending-del.el: Added cperl-electric-backspace and
          cperl-electric-delete to the 'supersede list.
 
 1997-06-11  Steven L Baur  <steve@altair.xemacs.org>
          cperl-electric-delete to the 'supersede list.
 
 1997-06-11  Steven L Baur  <steve@altair.xemacs.org>
@@ -2114,16 +2476,16 @@ Wed Jun 18 16:41:43 1997  Steven L Baur  <steve@altair.xemacs.org>
 
 1997-06-11  Martin Buchholz  <mrb@eng.sun.com>
 
 
 1997-06-11  Martin Buchholz  <mrb@eng.sun.com>
 
-       * src/Makefile.in: 
-       * lwlib/Makefile.in: 
-       * lib-src/Makefile.in: 
+       * src/Makefile.in:
+       * lwlib/Makefile.in:
+       * lib-src/Makefile.in:
        * Makefile.in: More Makefile cleanup
        - add .PHONY targets where necessary
        - remove most builtin rules using .SUFFIXES
        - -lXau only gets used for linking gnuserv binaries
        - No VPATH for root Makefile
        - remove gcc v1 support
        * Makefile.in: More Makefile cleanup
        - add .PHONY targets where necessary
        - remove most builtin rules using .SUFFIXES
        - -lXau only gets used for linking gnuserv binaries
        - No VPATH for root Makefile
        - remove gcc v1 support
-       * configure.in: 
+       * configure.in:
        - A new test to autodetect need to define NARROWPROTO,
          needed by XFree86
        - Consistently use idiom foo=`echo '' $foo | sed -s 's:^ ::' -e ...`
        - A new test to autodetect need to define NARROWPROTO,
          needed by XFree86
        - Consistently use idiom foo=`echo '' $foo | sed -s 's:^ ::' -e ...`
@@ -2131,7 +2493,7 @@ Wed Jun 18 16:41:43 1997  Steven L Baur  <steve@altair.xemacs.org>
        - Check for libPW
        - Use more sophisticated Xpm test that confirms xpm.h and libXpm
          are in sync.
        - Check for libPW
        - Use more sophisticated Xpm test that confirms xpm.h and libXpm
          are in sync.
-       * src/s/linux.h: 
+       * src/s/linux.h:
        * src/m/intel386.h: Yet another attempt to clean up linux defines.
 
 1997-06-10  Steven L Baur  <steve@altair.xemacs.org>
        * src/m/intel386.h: Yet another attempt to clean up linux defines.
 
 1997-06-10  Steven L Baur  <steve@altair.xemacs.org>
@@ -2197,7 +2559,7 @@ Tue Jun 10 15:11:16 1997  Steven L Baur  <steve@altair.xemacs.org>
        smiley faces.
 
 1997-06-10  Gary D. Foster  <Gary.Foster@corp.sun.com>
        smiley faces.
 
 1997-06-10  Gary D. Foster  <Gary.Foster@corp.sun.com>
-       
+
        * lisp/modes/view-less.el: Changed \177 bindings to 'delete
        * lisp/modes/help.el: Changed \177 bindings to 'delete
 
        * lisp/modes/view-less.el: Changed \177 bindings to 'delete
        * lisp/modes/help.el: Changed \177 bindings to 'delete
 
@@ -2217,7 +2579,7 @@ Tue Jun 10 15:11:16 1997  Steven L Baur  <steve@altair.xemacs.org>
        * lisp/modes/cc-mode.el:
        * lisp/modes/cperl-mode.el: Fixed references to delete functions
          to use the new names.
        * lisp/modes/cc-mode.el:
        * lisp/modes/cperl-mode.el: Fixed references to delete functions
          to use the new names.
-       
+
 1997-06-09  Steven L Baur  <steve@altair.xemacs.org>
 
        * XEmacs 20.3-b5 is released.
 1997-06-09  Steven L Baur  <steve@altair.xemacs.org>
 
        * XEmacs 20.3-b5 is released.
@@ -2242,24 +2604,24 @@ Tue Jun 10 15:11:16 1997  Steven L Baur  <steve@altair.xemacs.org>
        * src/s/netbsd.h: complete rewrite, use ORDINARY_LINK, #ifdef out
        old cruft that can be obtained from system header files.
        * lib-src/getopt*: Synch with FSF, remove compiler warnings.
        * src/s/netbsd.h: complete rewrite, use ORDINARY_LINK, #ifdef out
        old cruft that can be obtained from system header files.
        * lib-src/getopt*: Synch with FSF, remove compiler warnings.
-       
-       * lib-src/b2m.c: 
-       * src/gifalloc.c: 
-       * lib-src/gnuslib.c: 
-       * lib-src/profile.c: 
+
+       * lib-src/b2m.c:
+       * src/gifalloc.c:
+       * lib-src/gnuslib.c:
+       * lib-src/profile.c:
        * lib-src/movemail.c: Fix compiler warnings
        * lib-src/movemail.c: Fix compiler warnings
-       
+
        * lib-src/Makefile.in.in: Remove unused -DCONFIG_BROKETS flag
        - Fix up compile flags for new etags version
 
        * lib-src/Makefile.in.in: Remove unused -DCONFIG_BROKETS flag
        - Fix up compile flags for new etags version
 
-       * etc/NEWS: 
-       * etc/etags.1: 
-       * man/xemacs/programs.texi: 
+       * etc/NEWS:
+       * etc/etags.1:
+       * man/xemacs/programs.texi:
        * lib-src/etags.c:  Upgraded to etags 12.11
 
        * src/config.h.in: Fix inline keyword support
        * lib-src/etags.c:  Upgraded to etags 12.11
 
        * src/config.h.in: Fix inline keyword support
-       
-       * configure.in: Use a different mechanism for removing extra white 
+
+       * configure.in: Use a different mechanism for removing extra white
        space.  Avoid using foo=`echo $bar`, which loses with various echos.
        - new M4 macro XE_SPACE(var, words...)
        - Use autoconf 2's AC_HEADER_SYS_WAIT
        space.  Avoid using foo=`echo $bar`, which loses with various echos.
        - new M4 macro XE_SPACE(var, words...)
        - Use autoconf 2's AC_HEADER_SYS_WAIT
@@ -2275,11 +2637,11 @@ Tue Jun 10 15:11:16 1997  Steven L Baur  <steve@altair.xemacs.org>
 
 1997-06-04  Gary D. Foster  <Gary.Foster@corp.sun.com>
 
 
 1997-06-04  Gary D. Foster  <Gary.Foster@corp.sun.com>
 
-       * lisp/modes/cc-mode.el: Modified `c-electric-delete' to honor the 
+       * lisp/modes/cc-mode.el: Modified `c-electric-delete' to honor the
          desired delete direction in both normal and "hungry" modes.
          desired delete direction in both normal and "hungry" modes.
-       * lisp/modes/cperl-mode.el: Modified `cperl-electric-backspace' to 
+       * lisp/modes/cperl-mode.el: Modified `cperl-electric-backspace' to
          honor the desired delete direction.
          honor the desired delete direction.
-       
+
 1997-05-30  Martin Buchholz  <mrb@eng.sun.com>
 
        * configure.in: Automagically compute -R path for gcc
 1997-05-30  Martin Buchholz  <mrb@eng.sun.com>
 
        * configure.in: Automagically compute -R path for gcc
@@ -2288,7 +2650,7 @@ Tue Jun 10 15:11:16 1997  Steven L Baur  <steve@altair.xemacs.org>
 
        * lisp/vm/vm-vars.el: Fixed delete key binding to call
          `vm-scroll-down'
 
        * lisp/vm/vm-vars.el: Fixed delete key binding to call
          `vm-scroll-down'
-       
+
 Thu May 29 15:35:07 1997  Martin Buchholz  <mrb@eng.sun.com>
 
        * configure.in: Add support for Solaris2.6 -z ignore linker flags
 Thu May 29 15:35:07 1997  Martin Buchholz  <mrb@eng.sun.com>
 
        * configure.in: Add support for Solaris2.6 -z ignore linker flags
@@ -2307,9 +2669,9 @@ Thu May 29 15:35:07 1997  Martin Buchholz  <mrb@eng.sun.com>
        * lisp/modes/*.el: Removed conflicting \177 bindings.
        * lisp/modes/cc-mode.el: Modified `c-electric-delete' to use new
          delete bindings.
        * lisp/modes/*.el: Removed conflicting \177 bindings.
        * lisp/modes/cc-mode.el: Modified `c-electric-delete' to use new
          delete bindings.
-       * lisp/modes/cperl-mode.el: Modified `cperl-electric-backspace' to 
+       * lisp/modes/cperl-mode.el: Modified `cperl-electric-backspace' to
          use new delete bindings.
          use new delete bindings.
-       
+
 1997-06-03  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
 
        * lisp/x11/x-menubar.el (default-menubar): Add menu for Mule.
 1997-06-03  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
 
        * lisp/x11/x-menubar.el (default-menubar): Add menu for Mule.
@@ -2491,14 +2853,14 @@ Thu May 22 04:19:09 1997  Martin Buchholz  <mrb@eng.sun.com>
        depend on it.
        with-xim=motif only default on Solaris.
        realpath moved from s&m to configure.in.
        depend on it.
        with-xim=motif only default on Solaris.
        realpath moved from s&m to configure.in.
-       xemacs-version.h removed.  main_1 now contains $canonical as well, 
+       xemacs-version.h removed.  main_1 now contains $canonical as well,
        for even more useful backtraces.
        termcap handling rewritten.
        Create .sbinit for Sun's source browser.
        Warn user if no XPM support present.
        Warn user if compiling in error checking.
 
        for even more useful backtraces.
        termcap handling rewritten.
        Create .sbinit for Sun's source browser.
        Warn user if no XPM support present.
        Warn user if compiling in error checking.
 
-       * Makefile.in: use MAKE_SUBDIR consistently.  Remove references to 
+       * Makefile.in: use MAKE_SUBDIR consistently.  Remove references to
        dynodump.  Remove core when cleaning.  Remove config.log.
        make distclean now functional.
 
        dynodump.  Remove core when cleaning.  Remove config.log.
        make distclean now functional.
 
@@ -2592,7 +2954,7 @@ Sat Apr 12 09:01:32 1997  Hrvoje Niksic <hniksic@srce.hr>
 
        3) Rearranging the entries by relevance.  I have tried to put the most
           relevant entries in front.
 
        3) Rearranging the entries by relevance.  I have tried to put the most
           relevant entries in front.
-       
+
 Thu Apr 10 19:07:26 1997  Steven L Baur  <steve@altair.xemacs.org>
 
        * XEmacs 20.1-b14 is released.  (Beta 13 was skipped).
 Thu Apr 10 19:07:26 1997  Steven L Baur  <steve@altair.xemacs.org>
 
        * XEmacs 20.1-b14 is released.  (Beta 13 was skipped).
@@ -2612,7 +2974,7 @@ Sat Apr  5 09:11:36 1997  Steven L Baur  <steve@altair.xemacs.org>
 
 Wed Apr  2 15:27:35 1997  Steven L Baur  <steve@altair.xemacs.org>
 
 
 Wed Apr  2 15:27:35 1997  Steven L Baur  <steve@altair.xemacs.org>
 
-       * Makefile.in (install-only): New target.  Functionality suggested 
+       * Makefile.in (install-only): New target.  Functionality suggested
        by Larry Schwimmer, correct way of doing it suggested by Chuck
        Thompson.
 
        by Larry Schwimmer, correct way of doing it suggested by Chuck
        Thompson.
 
@@ -2636,7 +2998,7 @@ Thu Mar 27 18:24:19 1997  Steven L Baur  <steve@altair.xemacs.org>
 Wed Mar 26 22:31:10 1997  Steven L Baur  <steve@altair.xemacs.org>
 
        * Remove vms top-level directory.
 Wed Mar 26 22:31:10 1997  Steven L Baur  <steve@altair.xemacs.org>
 
        * Remove vms top-level directory.
-       
+
        * XEmacs 19.15 final released to beta testers.
 
 Tue Mar 25 19:13:27 1997  Steven L Baur  <steve@altair.xemacs.org>
        * XEmacs 19.15 final released to beta testers.
 
 Tue Mar 25 19:13:27 1997  Steven L Baur  <steve@altair.xemacs.org>
@@ -2882,7 +3244,7 @@ Sat Jan 11 12:05:31 1997  Steven L Baur  <steve@altair.xemacs.org>
 
        * XEmacs 20.0 beta90 (prerelease 1) is released.
        * XEmacs 19.15 beta90 (prerelease 1) is released.
 
        * XEmacs 20.0 beta90 (prerelease 1) is released.
        * XEmacs 19.15 beta90 (prerelease 1) is released.
-       
+
 Tue Jan  7 08:45:16 1997  Steven L Baur  <steve@altair.xemacs.org>
 
        * configure.in (LIBS): Revise test for XFree86 (look for XF86Config).
 Tue Jan  7 08:45:16 1997  Steven L Baur  <steve@altair.xemacs.org>
 
        * configure.in (LIBS): Revise test for XFree86 (look for XF86Config).
@@ -2897,8 +3259,8 @@ Fri Jan  3 15:18:59 1997  Jeff Miller  <jmiller@smart.net>
 
 Wed Jan  1 08:30:48 1997  Martin Buchholz  <mrb@eng.sun.com>
 
 
 Wed Jan  1 08:30:48 1997  Martin Buchholz  <mrb@eng.sun.com>
 
-       * src/emacs.c: Make sure 
-       `./temacs -batch -l loadup.el run-temacs <emacs-args>' 
+       * src/emacs.c: Make sure
+       `./temacs -batch -l loadup.el run-temacs <emacs-args>'
        works properly
 
        * src/Makefile.in.in (rtcmacs): Add support for RTC, Sun's
        works properly
 
        * src/Makefile.in.in (rtcmacs): Add support for RTC, Sun's
@@ -2917,20 +3279,20 @@ Tue Dec 31 09:46:13 1996  Martin Buchholz  <mrb@eng.sun.com>
        * lib-src/update-autoloads.sh: Rewritten to use auto-autoloads.el.
        * lisp/utils/autoload.el: Reorganization of autoload mechanism:
        Errors during autoload generation are just that - errors.
        * lib-src/update-autoloads.sh: Rewritten to use auto-autoloads.el.
        * lisp/utils/autoload.el: Reorganization of autoload mechanism:
        Errors during autoload generation are just that - errors.
-       
+
        Generated autoloads are now in a separate file of their own.
        Generated autoloads are now in a separate file of their own.
-       
+
        Reliability of autoload generation greatly increased.
        Reliability of autoload generation greatly increased.
-       
+
        Distribution smaller by about 100k.
        Distribution smaller by about 100k.
-       
+
        `make autoloads' is still the preferred mechanism for update.
        `make autoloads' is still the preferred mechanism for update.
-       
+
        Autoloads are always regenerated completely from scratch.  This
        avoids errors with obsolete or corrupted autoload entries.
 
        Caching of autoload entries using timestamps has been eliminated.
        Autoloads are always regenerated completely from scratch.  This
        avoids errors with obsolete or corrupted autoload entries.
 
        Caching of autoload entries using timestamps has been eliminated.
-       
+
        Files that have no autoloads no longer have a comment placed into
        the generated autoloads file.
 
        Files that have no autoloads no longer have a comment placed into
        the generated autoloads file.
 
@@ -2988,7 +3350,7 @@ Sun Dec 29 05:37:43 1996  Martin Buchholz  <mrb@eng.sun.com>
          that various tools can recognize the filename as such.
 
        * src/event-Xt.c (x_to_emacs_keysym): Fix crash when
          that various tools can recognize the filename as such.
 
        * src/event-Xt.c (x_to_emacs_keysym): Fix crash when
-         --with-xim=xlib and key event on window frame.  
+         --with-xim=xlib and key event on window frame.
          Change return foo to return (foo) when return is a macro.
 
        * src/editfns.c (Ffollowing_char): docstring fixes.
          Change return foo to return (foo) when return is a macro.
 
        * src/editfns.c (Ffollowing_char): docstring fixes.
diff --git a/INSTALL b/INSTALL
index 50fba0b..88a377f 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -80,7 +80,7 @@ system using Mule and Wnn6 from OMRON corporation would be the
 packages `mule-base' and `egg-its'.  By default, packages will be
 searched for in the path
 
 packages `mule-base' and `egg-its'.  By default, packages will be
 searched for in the path
 
-~/.xemacs::$prefix/lib/xemacs-${version}/mule-packages:$prefix/lib/xemacs/mule-packages:$prefix/lib/xemacs-${version}/packages:$prefix/lib/xemacs/packages
+~/.xemacs::$prefix/lib/xemacs-${version}/mule-packages:$prefix/lib/xemacs/mule-packages:$prefix/lib/xemacs-${version}/xemacs-packages:$prefix/lib/xemacs/xemacs-packages
 
 This may be changed by specifying a different value with the
 --package-path configuration option.
 
 This may be changed by specifying a different value with the
 --package-path configuration option.
@@ -157,11 +157,6 @@ use when compiling XEmacs.  Otherwise the value of the environment
 variable CFLAGS is consulted.  If that is also undefined, CFLAGS
 defaults to "-g -O" for gcc and "-g" for all other compilers.
 
 variable CFLAGS is consulted.  If that is also undefined, CFLAGS
 defaults to "-g -O" for gcc and "-g" for all other compilers.
 
-The `--with-gnu-make' option specifies that Makefiles should be
-written to take advantage of special features of GNU Make.  GNU Make
-works fine on Makefiles even without this option.  This flag just
-allows for simultaneous in-place and --srcdir building.
-
 The `--dynamic' option specifies that configure should try to link
 emacs dynamically rather than statically.
 
 The `--dynamic' option specifies that configure should try to link
 emacs dynamically rather than statically.
 
@@ -401,16 +396,12 @@ variable gets by default!  Make sure you know what kind of value the
 variable should have.  If you don't pay attention to what you are
 doing, you'll make a mistake.
 
 variable should have.  If you don't pay attention to what you are
 doing, you'll make a mistake.
 
-Things may malfunction if the variable `directory-abbrev-alist' is not set
-up to translate "temporary" automounter mount points into the canonical
-form.  The default value of this variable contains the translation
-
-       ("^/tmp_mnt/" . "/")
-
-meaning translate "/tmp_mnt/net/FOO" into "/net/FOO", which is appropriate
-for the default configuration of the Sun automounter, but which may be
-inappropriate for different vendor's automounters, or if you have customized
-your mount-point names.
+Things may malfunction if the variable `directory-abbrev-alist' is not
+set up to translate "temporary" automounter mount points into the
+canonical form.  XEmacs tries to detect how your automounter is
+configured.  If you have an unusual automounter configuration that
+XEmacs cannot detect, you may need to change the value of
+`directory-abbrev-alist'.
 
 5) Put into `./lisp/site-init.el' or `./lisp/site-load.el' any Emacs
 Lisp code you want XEmacs to load before it is dumped out.  Use
 
 5) Put into `./lisp/site-init.el' or `./lisp/site-load.el' any Emacs
 Lisp code you want XEmacs to load before it is dumped out.  Use
@@ -449,7 +440,7 @@ are installed in the following directories:
 By default, XEmacs installs its files in the following directories:
 
 `/usr/local/bin' holds the executable programs users normally run -
 By default, XEmacs installs its files in the following directories:
 
 `/usr/local/bin' holds the executable programs users normally run -
-               `xemacs', `etags', `ctags', `b2m', `emacsclient',
+               `xemacs', `etags', `ctags', `b2m', `emacsclient', `ellcc',
                `gnuclient', `gnudoit', `gnuattach', and `rcs-checkin'.
 
 `/usr/local/lib/xemacs-VERSION/lisp' holds the Emacs Lisp libraries;
                `gnuclient', `gnudoit', `gnuattach', and `rcs-checkin'.
 
 `/usr/local/lib/xemacs-VERSION/lisp' holds the Emacs Lisp libraries;
@@ -488,6 +479,17 @@ By default, XEmacs installs its files in the following directories:
                kinds of machines share the file system XEmacs is
                installed on.
 
                kinds of machines share the file system XEmacs is
                installed on.
 
+`/usr/local/lib/xemacs-VERSION/CONFIGURATION-NAME/modules' holds the Emacs
+               dynamically loadable modules.  These are special programs
+               typically written in C that can be loaded in much the same
+               way that Lisp packages are.  Not all systems support
+               dynamic modules, so do not be alarmed if this directory
+               does not exist or is empty.
+
+               XEmacs searches for modules in this directory, or any
+               sub-directory of it, and then in
+               `/usr/local/lib/xemacs/site-modules/*'.
+
 `/usr/local/lib/xemacs-VERSION/info' holds the on-line documentation
                for XEmacs, known as "info files".
 
 `/usr/local/lib/xemacs-VERSION/info' holds the on-line documentation
                for XEmacs, known as "info files".
 
@@ -500,6 +502,9 @@ for its lisp files by giving values for `make' variables as part of
 the command.  See the section below called `MAKE VARIABLES' for more
 information on this.
 
 the command.  See the section below called `MAKE VARIABLES' for more
 information on this.
 
+Using GNU Make allows for simultaneous builds with and without the
+--srcdir option.
+
 8) If your system uses lock files to interlock access to mailer inbox files,
 then you might need to make the movemail program setuid or setgid
 to enable it to write the lock files.  We believe this is safe.
 8) If your system uses lock files to interlock access to mailer inbox files,
 then you might need to make the movemail program setuid or setgid
 to enable it to write the lock files.  We believe this is safe.
@@ -625,6 +630,15 @@ GNU software; here are some variables specific to XEmacs.
        above), is `/usr/local/lib/xemacs-VERSION/CONFIGURATION-NAME'
        (where VERSION and CONFIGURATION-NAME are as described above).
 
        above), is `/usr/local/lib/xemacs-VERSION/CONFIGURATION-NAME'
        (where VERSION and CONFIGURATION-NAME are as described above).
 
+`moduledir' indicates where XEmacs installs and expects to find
+       any dynamic modules.  Its default value, based on
+       `archlibdir' (see above) is
+       `/usr/local/lib/xemacs-VERSION/CONFIGURATION-NAME/modules'
+       (where VERSION and CONFIGURATION-NAME are as described above).
+       By their very nature, dynamic loadable modules are architecture-
+       dependant, and care should be taken not to set this directory
+       to a system- or architecture-independant directory.
+
 Remember that you must specify any variable values you need each time
 you run `make' in the top directory.  If you run `make' once to build
 xemacs, test it, and then run `make' again to install the files, you
 Remember that you must specify any variable values you need each time
 you run `make' in the top directory.  If you run `make' once to build
 xemacs, test it, and then run `make' again to install the files, you
index 5d6f4f2..69496da 100644 (file)
@@ -58,6 +58,7 @@ RECURSIVE_MAKE=@RECURSIVE_MAKE@
 
 SHELL = /bin/sh
 LANG = C
 
 SHELL = /bin/sh
 LANG = C
+LC_ALL = C
 RM = rm -f
 pwd = /bin/pwd
 
 RM = rm -f
 pwd = /bin/pwd
 
@@ -151,11 +152,22 @@ blddir=@blddir@
 ## themselves in separate directories.
 lispdir=@lispdir@
 
 ## themselves in separate directories.
 lispdir=@lispdir@
 
+## Where to install the module files distributed with
+## XEmacs.  This includes the XEmacs version, so that the
+## module files for different versions of XEmacs will install
+## themselves in separate directories.
+moduledir=@moduledir@
+
 ## Directory XEmacs should search for lisp files specific
 ## to this site (i.e. customizations), before consulting
 ## ${lispdir}.
 sitelispdir=@sitelispdir@
 
 ## Directory XEmacs should search for lisp files specific
 ## to this site (i.e. customizations), before consulting
 ## ${lispdir}.
 sitelispdir=@sitelispdir@
 
+## Directory XEmacs should search for module files specific
+## to this site (i.e. customizations), before consulting
+## ${moduledir}.
+sitemoduledir=@sitemoduledir@
+
 ## Where XEmacs will search for its lisp files while
 ## building.  This is only used during the process of
 ## compiling XEmacs, to help XEmacs find its lisp files
 ## Where XEmacs will search for its lisp files while
 ## building.  This is only used during the process of
 ## compiling XEmacs, to help XEmacs find its lisp files
@@ -216,7 +228,7 @@ INSTALL_ARCH_DEP_SUBDIR = @INSTALL_ARCH_DEP_SUBDIR@
 ## instead, we have written out explicit code in the `install' targets.
 COPYDIR = ${srcdir}/etc ${srcdir}/lisp
 COPYDESTS = ${etcdir} ${lispdir}
 ## instead, we have written out explicit code in the `install' targets.
 COPYDIR = ${srcdir}/etc ${srcdir}/lisp
 COPYDESTS = ${etcdir} ${lispdir}
-GENERATED_HEADERS = src/paths.h src/Emacs.ad.h src/puresize-adjust.h src/config.h lwlib/config.h src/sheap-adjust.h
+GENERATED_HEADERS = src/paths.h src/Emacs.ad.h src/config.h lwlib/config.h src/sheap-adjust.h
 GENERATED_LISP = lisp/finder-inf.el
 
 all: ${PROGNAME} all-elc info
 GENERATED_LISP = lisp/finder-inf.el
 
 all: ${PROGNAME} all-elc info
@@ -297,12 +309,6 @@ src/Emacs.ad.h: ${srcdir}/etc/Emacs.ad
          /bin/sh ${srcdir}/lib-src/ad2c ${srcdir}/etc/Emacs.ad ) > \
          src/Emacs.ad.h
 
          /bin/sh ${srcdir}/lib-src/ad2c ${srcdir}/etc/Emacs.ad ) > \
          src/Emacs.ad.h
 
-src/puresize-adjust.h: ${srcdir}/src/puresize.h
-       @echo "Resetting \`src/puresize-adjust.h'."; \
-       (echo "/*       Do not edit this file!" ; \
-        echo "         Automatically generated by XEmacs */" ; \
-        echo "#define PURESIZE_ADJUSTMENT 0") > $@
-
 src/sheap-adjust.h:
        @echo "Resetting \`src/sheap-adjust.h'."; \
        (echo "/*       Do not edit this file!" ; \
 src/sheap-adjust.h:
        @echo "Resetting \`src/sheap-adjust.h'."; \
        (echo "/*       Do not edit this file!" ; \
@@ -466,7 +472,8 @@ MAKEPATH=./lib-src/make-path
 ## make-path instead of mkdir.  Not all mkdirs have the `-p' flag.
 mkdir: FRC.mkdir
        ${MAKEPATH} ${COPYDESTS} ${lockdir} ${infodir} ${archlibdir} \
 ## make-path instead of mkdir.  Not all mkdirs have the `-p' flag.
 mkdir: FRC.mkdir
        ${MAKEPATH} ${COPYDESTS} ${lockdir} ${infodir} ${archlibdir} \
-         ${mandir} ${bindir} ${datadir} ${libdir} ${pkgdir}
+         ${mandir} ${bindir} ${datadir} ${libdir} ${pkgdir} \
+         ${sitelispdir} ${moduledir} ${sitemoduledir}
        -chmod 0777 ${lockdir}
 
 ## Delete all the installed files that the `install' target would
        -chmod 0777 ${lockdir}
 
 ## Delete all the installed files that the `install' target would
@@ -533,12 +540,9 @@ clean: FRC.clean
 ##      `make distclean' should leave only the files that were in the
 ##      distribution.
 top_distclean=\
 ##      `make distclean' should leave only the files that were in the
 ##      distribution.
 top_distclean=\
-       $(RM) config.status config.log config-tmp-* build-install Installation ; \
-       for d in src lib-src lwlib dynodump ; do \
-         $(RM) $$d/Makefile $$d/Makefile.in ; \
-       done ; \
-       $(RM) core .sbinit Makefile Makefile.in lock/*; \
-       $(RM) lisp/finder-inf.el* Installation.el Installation.elc; \
+       $(RM) config.status config.log confdefs.h config-tmp-* build-install Installation ; \
+       $(RM) core .sbinit lock/* GNUmakefile Makefile Makefile.in ; \
+       $(RM) lisp/finder-inf.el* Installation.el Installation.elc ; \
        $(RM) packages mule-packages site-lisp
 
 distclean: FRC.distclean
        $(RM) packages mule-packages site-lisp
 
 distclean: FRC.distclean
index 072fc72..3f57bc4 100644 (file)
--- a/PROBLEMS
+++ b/PROBLEMS
@@ -2,7 +2,7 @@
 
 This file describes various problems that have been encountered
 in compiling, installing and running XEmacs.  It has been updated for
 
 This file describes various problems that have been encountered
 in compiling, installing and running XEmacs.  It has been updated for
-XEmacs 21.2.
+XEmacs 21.0.
 
 This file is rather large, but we have tried to sort the entries by
 their respective relevance for XEmacs, but may have not succeeded
 
 This file is rather large, but we have tried to sort the entries by
 their respective relevance for XEmacs, but may have not succeeded
@@ -29,7 +29,19 @@ A general advice:
 * Problems with building XEmacs
 ===============================
 
 * Problems with building XEmacs
 ===============================
 
-** Don't use -O2 with gcc 2.7.2 under Intel/XXX without also using
+** General
+*** Don't use -O2 with gcc 2.8.1 and egcs 1.0 under SPARC architectures
+without also using `-fno-schedule-insns'.
+
+gcc will generate incorrect code otherwise, typically resulting in
+crashes in the function skip-syntax-backward.
+
+*** egcs-1.1
+
+There have been reports of egcs-1.1 not compiling XEmacs correctly on
+Alpha Linux.  There have also been reports that egcs-1.0.3a is O.K.
+
+*** Don't use -O2 with gcc 2.7.2 under Intel/XXX without also using
 `-fno-strength-reduce'.
 
 gcc will generate incorrect code otherwise.  This bug is present in at
 `-fno-strength-reduce'.
 
 gcc will generate incorrect code otherwise.  This bug is present in at
@@ -38,7 +50,7 @@ later.  This bug is O/S independent, but is limited to x86 architectures.
 
 This problem is known to be fixed in egcs (or pgcc) 1.0 or later.
 
 
 This problem is known to be fixed in egcs (or pgcc) 1.0 or later.
 
-** Don't use -O2 with gcc 2.7.2 under Intel architectures without also
+*** Don't use -O2 with gcc 2.7.2 under Intel architectures without also
 using `-fno-caller-saves'.
 
 gcc will generate incorrect code otherwise.  This bug is still
 using `-fno-caller-saves'.
 
 gcc will generate incorrect code otherwise.  This bug is still
@@ -48,7 +60,16 @@ independent, but limited to x86 architectures.
 
 This problem is known to be fixed in egcs (or pgcc) 1.0 or later.
 
 
 This problem is known to be fixed in egcs (or pgcc) 1.0 or later.
 
-** Excessive optimization with pgcc can break XEmacs
+*** When using gcc, you get the error message "undefined symbol __fixunsdfsi".
+When using gcc, you get the error message "undefined symbol __main".
+
+This means that you need to link with the gcc library.  It may be called
+"gcc-gnulib" or "libgcc.a"; figure out where it is, and define LIB_GCC in
+config.h to point to it.
+
+It may also work to use the GCC version of `ld' instead of the standard one.
+
+*** Excessive optimization with pgcc can break XEmacs
 
 It has been reported on some systems that compiling with -O6 can lead
 to XEmacs failures.  The workaround is to use a lower optimization
 
 It has been reported on some systems that compiling with -O6 can lead
 to XEmacs failures.  The workaround is to use a lower optimization
@@ -59,28 +80,21 @@ of libc.  Snapshots near the release of pgcc-1.0 have been tested
 extensively and no sign of breakage has been seen on systems using
 glibc-2.
 
 extensively and no sign of breakage has been seen on systems using
 glibc-2.
 
-** `compress' and `uncompress' not found and XFree86
-
-XFree86 installs a very old version of libz.a by default ahead of where
-more modern version of libz might be installed.  This will cause problems
-when attempting to link against libMagick.  The fix is to remove the old
-libz.a in the X11 binary directory.
+*** src/Makefile and lib-src/Makefile are truncated--most of the file missing.
 
 
-** Excessive optimization on AIX 4.2 can lead to compiler failure.
+This can happen if configure uses GNU sed version 2.03.  That version
+had a bug.  GNU sed version 2.05 works properly.
 
 
-Valdis.Kletnieks@vt.edu writes:
-  At least at the b34 level, and the latest-and-greatest IBM xlc
-  (3.1.4.4), there are problems with -O3.  I haven't investigated
-  further.
+*** When compiling with X11, you get "undefined symbol _XtStrings".
 
 
-** Sed problems on Solaris 2.5
+This means that you are trying to link emacs against the X11r4 version of
+libXt.a, but you have compiled either Emacs or the code in the lwlib
+subdirectory with the X11r5 header files.  That doesn't work.
 
 
-There have been reports of Sun sed truncating very lines in the
-Makefile during configuration.  The workaround is to use GNU sed or,
-even better, think of a better way to generate Makefile, and send us a 
-patch. :-)
+Remember, you can't compile lwlib for r4 and emacs for r5, or vice versa.
+They must be in sync.
 
 
-** test-distrib says that the distribution has been clobbered
+*** test-distrib says that the distribution has been clobbered
 or, temacs prints "Command key out of range 0-127"
 or, temacs runs and dumps xemacs, but xemacs totally fails to work.
 or, temacs gets errors dumping xemacs
 or, temacs prints "Command key out of range 0-127"
 or, temacs runs and dumps xemacs, but xemacs totally fails to work.
 or, temacs gets errors dumping xemacs
@@ -100,12 +114,166 @@ characters, you can fix them by running:
 
 This will rebuild all the needed .elc files.
 
 
 This will rebuild all the needed .elc files.
 
-** `Error: No ExtNode to pop!' on Linux systems with Lesstif.
+*** `compress' and `uncompress' not found and XFree86
+
+XFree86 installs a very old version of libz.a by default ahead of where
+more modern version of libz might be installed.  This will cause problems
+when attempting to link against libMagick.  The fix is to remove the old
+libz.a in the X11 binary directory.
+
+
+** AIX
+*** On AIX 4.3, you must specify --with-dialogs=athena with configure
+
+*** The libXt shipped with AIX 4.3 is broken.  This causes xemacs -nw
+    to fail in various ways.  The solution is to build against stock
+    X11R6.
+
+*** On AIX, you get this compiler error message:
+
+    Processing include file ./XMenuInt.h
+        1501-106: (S) Include file X11/Xlib.h not found.
+
+This means your system was installed with only the X11 runtime i.d
+libraries.  You have to find your sipo (bootable tape) and install
+X11Dev... with smit.
+
+*** On AIX 4.1.2, linker error messages such as
+   ld: 0711-212 SEVERE ERROR: Symbol .__quous, found in the global symbol table
+        of archive /usr/lib/libIM.a, was not defined in archive member shr.o.
+
+This is a problem in libIM.a.  You can work around it by executing
+these shell commands in the src subdirectory of the directory where
+you build Emacs:
+
+    cp /usr/lib/libIM.a .
+    chmod 664 libIM.a
+    ranlib libIM.a
+
+Then change -lIM to ./libIM.a in the command to link temacs (in
+Makefile).
+
+*** Excessive optimization on AIX 4.2 can lead to compiler failure.
+
+Valdis.Kletnieks@vt.edu writes:
+  At least at the b34 level, and the latest-and-greatest IBM xlc
+  (3.1.4.4), there are problems with -O3.  I haven't investigated
+  further.
+
+
+** SunOS/Solaris
+*** Link failure when using acc on a Sun.
+
+To use acc, you need additional options just before the libraries, such as
+
+   /usr/lang/SC2.0.1/values-Xt.o -L/usr/lang/SC2.0.1/cg87 -L/usr/lang/SC2.0.1
+
+and you need to add -lansi just before -lc.
+
+The precise file names depend on the compiler version, so we
+cannot easily arrange to supply them.
+
+*** Problems finding X11 libraries on Solaris with Openwindows
+
+Some users have reported problems in this area.  The reported solution
+is to define the environment variable OPENWINHOME, even if you must set
+it to `/usr/openwin'.
+
+*** Sed problems on Solaris 2.5
+
+There have been reports of Sun sed truncating very lines in the
+Makefile during configuration.  The workaround is to use GNU sed or,
+even better, think of a better way to generate Makefile, and send us a 
+patch. :-)
+
+*** On Solaris 2 I get undefined symbols from libcurses.a.
+
+You probably have /usr/ucblib/ on your LD_LIBRARY_PATH.  Do the link with
+LD_LIBRARY_PATH unset.  Generally, avoid using any ucb* stuff when
+building XEmacs.
+
+*** On Solaris 2 I cannot make alloc.o, glyphs.o or process.o.
+
+The SparcWorks C compiler may have difficulty building those modules
+with optimization level -xO4.  Try using only "-fast" optimization
+for just those modules.  (Or use gcc).
+
+*** Solaris 2.3 /bin/sh coredumps during configuration.
+
+This only occurs if you have LANG != C.  This is a known bug with
+/bin/sh fixed by installing Patch-ID# 101613-01.  Or, you can use
+bash, as a workaround.
+
+*** On SunOS, you get linker errors
+    ld: Undefined symbol 
+       _get_wmShellWidgetClass
+       _get_applicationShellWidgetClass
+
+The fix to this is to install patch 100573 for OpenWindows 3.0
+or link libXmu statically.
+
+*** On Sunos 4, you get the error ld: Undefined symbol __lib_version.
+
+This is the result of using cc or gcc with the shared library meant
+for acc (the Sunpro compiler).  Check your LD_LIBRARY_PATH and delete
+/usr/lang/SC2.0.1 or some similar directory.
+
+*** Undefined symbols when linking on Sunos 4.1.
+
+If you get the undefined symbols _atowc _wcslen, _iswprint, _iswspace,
+_iswcntrl, _wcscpy, and _wcsncpy, then you need to add -lXwchar after
+-lXaw in the command that links temacs.
+
+This problem seems to arise only when the international language
+extensions to X11R5 are installed.
+
+*** On a Sun running SunOS 4.1.1, you get this error message from GNU ld:
+
+    /lib/libc.a(_Q_sub.o): Undefined symbol __Q_get_rp_rd referenced from text segment 
+
+The problem is in the Sun shared C library, not in GNU ld.
+
+The solution is to install Patch-ID# 100267-03 from Sun.
+
+*** SunOS 4.1.2: undefined symbol _get_wmShellWidgetClass
+
+  Apparently the version of libXmu.so.a that Sun ships is hosed: it's missing
+  some stuff that is in libXmu.a (the static version).  Sun has a patch for 
+  this, but a workaround is to use the static version of libXmu, by changing
+  the link command from "-lXmu" to "-Bstatic -lXmu -Bdynamic".  If you have
+  OpenWindows 3.0, ask Sun for these patches:
+    100512-02       4.1.x OpenWindows 3.0 libXt Jumbo patch
+    100573-03       4.1.x OpenWindows 3.0 undefined symbols with shared libXmu
+
+*** Random other SunOS 4.1.[12] link errors.
+
+  The X headers and libraries that Sun ships in /usr/{include,lib}/X11 are
+  broken.  Use the ones in /usr/openwin/{include,lib} instead.
+
+** Linux
+*** Under Linux, you get "too many arguments to function `getpgrp'".
+
+You have probably installed LessTiff under `/usr/local' and `libXm.so'
+could not be found when linking `getpgrp()' test program, making XEmacs
+think that `getpgrp()' takes an argument. Try adding `/usr/local/lib'
+in `/etc/ld.so.conf' and run `ldconfig'. Then run XEmacs's `configure'
+again.  As with all problems of this type, reading the config.log file
+generated from configure and seeing the log of how the test failed can
+prove enlightening.
+
+*** `Error: No ExtNode to pop!' on Linux systems with Lesstif.
 
 This error message has been observed with lesstif-0.75a.  It does not
 appear to cause any harm.
 
 
 This error message has been observed with lesstif-0.75a.  It does not
 appear to cause any harm.
 
-** Linking with -rpath on IRIX.
+*** xemacs: can't resolve symbol '__malloc_hook'
+
+This is a Linux problem where you've compiled the XEmacs binary on a libc
+5.4 with version higher than 5.4.19 and attempted to run the binary against
+an earlier version.  The solution is to upgrade your old library.
+
+** IRIX
+*** Linking with -rpath on IRIX.
 
 Darrell Kindred <dkindred@cmu.edu> writes:
 There are a couple of problems [with use of -rpath with Irix ld], though:
 
 Darrell Kindred <dkindred@cmu.edu> writes:
 There are a couple of problems [with use of -rpath with Irix ld], though:
@@ -126,35 +294,42 @@ There are a couple of problems [with use of -rpath with Irix ld], though:
      or --site-runtime-libraries, you must use --use-gcc=no,
      or configure will fail.
 
      or --site-runtime-libraries, you must use --use-gcc=no,
      or configure will fail.
 
-** On Irix 6.3, the SGI ld quits with segmentation fault when linking temacs
+*** On Irix 6.3, the SGI ld quits with segmentation fault when linking temacs
 
 This occurs if you use the SGI linker version 7.1.  Installing the
 patch SG0001872 fixes this problem.
 
 
 This occurs if you use the SGI linker version 7.1.  Installing the
 patch SG0001872 fixes this problem.
 
-** xemacs: can't resolve symbol '__malloc_hook'
+*** On Irix 6.0, make tries (and fails) to build a program named unexelfsgi
 
 
-This is a Linux problem where you've compiled the XEmacs binary on a libc
-5.4 with version higher than 5.4.19 and attempted to run the binary against
-an earlier version.  The solution is to upgrade your old library.
+A compiler bug inserts spaces into the string "unexelfsgi . o"
+in src/Makefile.  Edit src/Makefile, after configure is run,
+find that string, and take out the spaces.
 
 
-** Compilation errors on VMS.
+Compiler fixes in Irix 6.0.1 should eliminate this problem.
 
 
-Sorry, XEmacs does not work under VMS.  You might consider working on
-the port if you really want to have XEmacs work under VMS.
+*** On Irix 5.2, unexelfsgi.c can't find cmplrs/stsupport.h.
 
 
-** On Solaris 2 I get undefined symbols from libcurses.a.
+The file cmplrs/stsupport.h was included in the wrong file set in the
+Irix 5.2 distribution.  You can find it in the optional fileset
+compiler_dev, or copy it from some other Irix 5.2 system.  A kludgy
+workaround is to change unexelfsgi.c to include sym.h instead of
+syms.h.
 
 
-You probably have /usr/ucblib/ on your LD_LIBRARY_PATH.  Do the link with
-LD_LIBRARY_PATH unset.  Generally, avoid using any ucb* stuff when
-building XEmacs.
+*** Coredumping in Irix 6.2
 
 
-** On Solaris 2 I cannot make alloc.o, glyphs.o or process.o.
+Pete Forman <gsez020@compo.bedford.waii.com> writes:
+A problem noted by myself and others (I've lost the references) was
+that XEmacs coredumped when the cut or copy toolbar buttons were
+pressed.  This has been fixed by loading the SGI patchset (Feb 98)
+without having to recompile XEmacs.
 
 
-The SparcWorks C compiler may have difficulty building those modules
-with optimization level -xO4.  Try using only "-fast" optimization
-for just those modules.  (Or use gcc).
+My versions are XEmacs 20.3 (problem first noted in 19.15) and IRIX
+6.2, compiled using -n32.  I'd guess that the relevant individual
+patch was "SG0002580: multiple fixes for X libraries".  SGI recommends
+that the complete patch set be installed rather than parts of it.
 
 
-** On Digital UNIX, the DEC C compiler might have a problem compiling
+** Digital UNIX/OSF/VMS
+*** On Digital UNIX, the DEC C compiler might have a problem compiling
 some files.
 
 In particular, src/extents.c and src/faces.c might cause the DEC C
 some files.
 
 In particular, src/extents.c and src/faces.c might cause the DEC C
@@ -167,7 +342,19 @@ hand, use the old C compiler for the following versions of Digital UNIX:
 A related compiler bug has been fixed by the DEC compiler team.  The
 new versions of the compiler should run fine.
 
 A related compiler bug has been fixed by the DEC compiler team.  The
 new versions of the compiler should run fine.
 
-** On HPUX, the HP C compiler might have a problem compiling some files
+*** Under some versions of OSF XEmacs runs fine if built without
+optimization but will crash randomly if built with optimization.
+
+Using 'cc -g' is not sufficient to eliminate all optimization.  Try
+'cc -g -O0' instead.
+
+*** Compilation errors on VMS.
+
+Sorry, XEmacs does not work under VMS.  You might consider working on
+the port if you really want to have XEmacs work under VMS.
+
+** HP-UX
+*** On HPUX, the HP C compiler might have a problem compiling some files
 with optimization.
 
 Richard Cognot <cognot@ensg.u-nancy.fr> writes:
 with optimization.
 
 Richard Cognot <cognot@ensg.u-nancy.fr> writes:
@@ -181,30 +368,30 @@ Richard Cognot <cognot@ensg.u-nancy.fr> writes:
   remember the patch numbers. I think potential XEmacs builders
   on HP should be warned about this.
 
   remember the patch numbers. I think potential XEmacs builders
   on HP should be warned about this.
 
-** I don't have `xmkmf' and `imake' on my HP.
+*** I don't have `xmkmf' and `imake' on my HP.
 
   You can get these standard X tools by anonymous FTP to
   hpcvaaz.cv.hp.com.  Essentially all X programs need these.
 
 
   You can get these standard X tools by anonymous FTP to
   hpcvaaz.cv.hp.com.  Essentially all X programs need these.
 
-** On HP-UX, problems with make
+*** On HP-UX, problems with make
 
 Marcus Thiessel <marcus_thiessel@hp.com>
 
   Some releases of XEmacs (e.g. 20.4) require GNU make to build
   successfully. You don't need GNU make when building 21.x.
 
 
 Marcus Thiessel <marcus_thiessel@hp.com>
 
   Some releases of XEmacs (e.g. 20.4) require GNU make to build
   successfully. You don't need GNU make when building 21.x.
 
-** On HP-UX 9.05 XEmacs won't compile or coredump during the build.
+*** On HP-UX 9.05 XEmacs won't compile or coredump during the build.
 
 Marcus Thiessel <marcus_thiessel@hp.com>
 
   This might be a sed problem. For your own safety make sure to use
   GNU sed while dumping XEmacs.
 
 
 Marcus Thiessel <marcus_thiessel@hp.com>
 
   This might be a sed problem. For your own safety make sure to use
   GNU sed while dumping XEmacs.
 
-** On HP-UX 11.0 XEmacs causes excessive X11 errors when running.
+*** On HP-UX 11.0 XEmacs causes excessive X11 errors when running.
 
 Marcus Thiessel <marcus_thiessel@hp.com>
 
 
 Marcus Thiessel <marcus_thiessel@hp.com>
 
-  Unfortunately, XEmacs releases don't work with Motif2.1. It
+  Unfortunately, XEmacs releases <21.0 don't work with Motif2.1. It
   will compile but you will get excessive X11 errors like
 
   xemacs: X Error of failed request:  BadGC (invalid GC parameter)
   will compile but you will get excessive X11 errors like
 
   xemacs: X Error of failed request:  BadGC (invalid GC parameter)
@@ -218,34 +405,8 @@ Marcus Thiessel <marcus_thiessel@hp.com>
   Make sure /usr/lib/Motif1.2_R6/libXm.sl is a link to
   /usr/lib/Motif1.2_R6/libXm.3.
 
   Make sure /usr/lib/Motif1.2_R6/libXm.sl is a link to
   /usr/lib/Motif1.2_R6/libXm.3.
 
-** Solaris 2.3 /bin/sh coredumps during configuration.
-
-This only occurs if you have LANG != C.  This is a known bug with
-/bin/sh fixed by installing Patch-ID# 101613-01.  Or, you can use
-bash, as a workaround.
-
-** On Irix 6.0, make tries (and fails) to build a program named unexelfsgi
-
-A compiler bug inserts spaces into the string "unexelfsgi . o"
-in src/Makefile.  Edit src/Makefile, after configure is run,
-find that string, and take out the spaces.
-
-Compiler fixes in Irix 6.0.1 should eliminate this problem.
-
-** Coredumping in Irix 6.2
-
-Pete Forman <gsez020@compo.bedford.waii.com> writes:
-A problem noted by myself and others (I've lost the references) was
-that XEmacs coredumped when the cut or copy toolbar buttons were
-pressed.  This has been fixed by loading the SGI patchset (Feb 98)
-without having to recompile XEmacs.
-
-My versions are XEmacs 20.3 (problem first noted in 19.15) and IRIX
-6.2, compiled using -n32.  I'd guess that the relevant individual
-patch was "SG0002580: multiple fixes for X libraries".  SGI recommends
-that the complete patch set be installed rather than parts of it.
-
-** Native cc on SCO OpenServer 5 is now OK.  Icc may still throw you
+** SCO OpenServer
+*** Native cc on SCO OpenServer 5 is now OK.  Icc may still throw you
 a curve.  Here is what Robert Lipe <robertl@arnet.com> says:
 
 Unlike XEmacs 19.13, building with the native cc on SCO OpenServer 5 
 a curve.  Here is what Robert Lipe <robertl@arnet.com> says:
 
 Unlike XEmacs 19.13, building with the native cc on SCO OpenServer 5 
@@ -309,180 +470,76 @@ The comments at the top of emacskeys.sco describe its function, and
 the emacstrs.sco is a suitable candidate for /usr/lib/keyboard/strings
 to take advantage of the keyboard map in emacskeys.sco.
 
 the emacstrs.sco is a suitable candidate for /usr/lib/keyboard/strings
 to take advantage of the keyboard map in emacskeys.sco.
 
-Note: Much of the above entry is probably not valid for XEmacs 21.2
+Note: Much of the above entry is probably not valid for XEmacs 21.0
 and later.
 
 and later.
 
-** Under some versions of OSF XEmacs runs fine if built without
-optimization but will crash randomly if built with optimization.
-
-Using 'cc -g' is not sufficient to eliminate all optimization.  Try
-'cc -g -O0' instead.
+** Cygwin
+*** In general use etc/check_cygwin_setup.sh to trap environment problems.
 
 
-** On SunOS, you get linker errors
-    ld: Undefined symbol 
-       _get_wmShellWidgetClass
-       _get_applicationShellWidgetClass
+The script etc/check_cygwin_setup.sh will attempt to detect whether
+you have a suitable environment for building. This script may not work
+correctly if you are using ash instead of bash (see below).
 
 
-The fix to this is to install patch 100573 for OpenWindows 3.0
-or link libXmu statically.
+*** X11 not detected.
 
 
-** On Sunos 4, you get the error ld: Undefined symbol __lib_version.
+This is usually because xmkmf is not in your path or because you are
+using the default cygwin shell. The default cygwin shell (/bin/sh.exe)
+is ash which appears to work in most circumstances but has some wierd
+failure modes. I recommend replacing sh.exe with bash.exe, this will
+mean configure is slower but more reliable.
 
 
-This is the result of using cc or gcc with the shared library meant
-for acc (the Sunpro compiler).  Check your LD_LIBRARY_PATH and delete
-/usr/lang/SC2.0.1 or some similar directory.
+*** Subprocesses do not work.
 
 
-** On AIX 4.1.2, linker error messages such as
-   ld: 0711-212 SEVERE ERROR: Symbol .__quous, found in the global symbol table
-        of archive /usr/lib/libIM.a, was not defined in archive member shr.o.
+You do not have "tty" in your CYGWIN32 (for b19) or CYGWIN (for b20)
+environment variable. This must be set in your autoexec.bat (win95) or
+the system properties (winnt) as it must be read before the cygwin dll
+initializes.
 
 
-This is a problem in libIM.a.  You can work around it by executing
-these shell commands in the src subdirectory of the directory where
-you build Emacs:
+*** ^G does not work on hung subprocesses.
 
 
-    cp /usr/lib/libIM.a .
-    chmod 664 libIM.a
-    ranlib libIM.a
+This is a known problem. It can be remedied with cygwin b20 or greater
+by defining BROKEN_SIGIO in src/s/cygwin32.h, however this currently
+leads to instability in XEmacs.
 
 
-Then change -lIM to ./libIM.a in the command to link temacs (in
-Makefile).
+*** The XEmacs executable crashes at startup.
 
 
-** On Irix 5.2, unexelfsgi.c can't find cmplrs/stsupport.h.
+This can be caused by many things.  
 
 
-The file cmplrs/stsupport.h was included in the wrong file set in the
-Irix 5.2 distribution.  You can find it in the optional fileset
-compiler_dev, or copy it from some other Irix 5.2 system.  A kludgy
-workaround is to change unexelfsgi.c to include sym.h instead of
-syms.h.
+If you are running with X11 you need to have cygwin b19 or cygwin
+b20.1 or greater, cygwin b20 will not work.
 
 
-** Link failure when using acc on a Sun.
+If you are running with cygwin b19 make sure you are using egcs 1.0.2
+rather than vanilla gcc. XEmacs builds by default with -O3 which does
+not work with the gcc that ships with b19. Alternatively use -O2.
 
 
-To use acc, you need additional options just before the libraries, such as
+*** The info files will not build.
 
 
-   /usr/lang/SC2.0.1/values-Xt.o -L/usr/lang/SC2.0.1/cg87 -L/usr/lang/SC2.0.1
+makeinfo that ships with cygwin (all versions) is a noop. You need to
+obtain makeinfo from somewhere or build it yourself.
 
 
-and you need to add -lansi just before -lc.
+*** I have no graphics.
 
 
-The precise file names depend on the compiler version, so we
-cannot easily arrange to supply them.
+You need to obtain the various graphics libraries. Pre-built versions
+of these and the X libraries are located on the XEmacs website in
+ftp://ftp.xemacs.org/pub/aux/cygwin*.
 
 
-** Link failure on IBM AIX 1.3 ptf 0013.
+*** There are no images in the toolbar buttons.
 
 
-There is a real duplicate definition of the function `_slibc_free' in
-the library /lib/libc_s.a (just do nm on it to verify).  The
-workaround/fix is:
+You need version 4.71 of commctrl.dll which does not ship with windows
+95. You can get this by installing IE 4.0 or downloading it from the
+microsoft website.
 
 
-    cd /lib
-    ar xv libc_s.a NLtmtime.o
-    ar dv libc_s.a NLtmtime.o
 
 
-** Undefined symbols when linking on Sunos 4.1.
-
-If you get the undefined symbols _atowc _wcslen, _iswprint, _iswspace,
-_iswcntrl, _wcscpy, and _wcsncpy, then you need to add -lXwchar after
--lXaw in the command that links temacs.
-
-This problem seems to arise only when the international language
-extensions to X11R5 are installed.
-
-** src/Makefile and lib-src/Makefile are truncated--most of the file missing.
-
-This can happen if configure uses GNU sed version 2.03.  That version
-had a bug.  GNU sed version 2.05 works properly.
-
-** On AIX, you get this compiler error message:
-
-    Processing include file ./XMenuInt.h
-        1501-106: (S) Include file X11/Xlib.h not found.
-
-This means your system was installed with only the X11 runtime i.d
-libraries.  You have to find your sipo (bootable tape) and install
-X11Dev... with smit.
-
-** C-z just refreshes the screen instead of suspending Emacs.
+* Problems with running XEmacs
+==============================
+** General
+*** C-z just refreshes the screen instead of suspending Emacs.
 
 You are probably using a shell that doesn't support job control, even
 though the system itself is capable of it.  Try using a different
 shell.
 
 
 You are probably using a shell that doesn't support job control, even
 though the system itself is capable of it.  Try using a different
 shell.
 
-** On a Sun running SunOS 4.1.1, you get this error message from GNU ld:
-
-    /lib/libc.a(_Q_sub.o): Undefined symbol __Q_get_rp_rd referenced from text segment 
-
-The problem is in the Sun shared C library, not in GNU ld.
-
-The solution is to install Patch-ID# 100267-03 from Sun.
-
-** SunOS 4.1.2: undefined symbol _get_wmShellWidgetClass
-
-  Apparently the version of libXmu.so.a that Sun ships is hosed: it's missing
-  some stuff that is in libXmu.a (the static version).  Sun has a patch for 
-  this, but a workaround is to use the static version of libXmu, by changing
-  the link command from "-lXmu" to "-Bstatic -lXmu -Bdynamic".  If you have
-  OpenWindows 3.0, ask Sun for these patches:
-    100512-02       4.1.x OpenWindows 3.0 libXt Jumbo patch
-    100573-03       4.1.x OpenWindows 3.0 undefined symbols with shared libXmu
-
-** Random other SunOS 4.1.[12] link errors.
-
-  The X headers and libraries that Sun ships in /usr/{include,lib}/X11 are
-  broken.  Use the ones in /usr/openwin/{include,lib} instead.
-
-** When using gcc, you get the error message "undefined symbol __fixunsdfsi".
-When using gcc, you get the error message "undefined symbol __main".
-
-This means that you need to link with the gcc library.  It may be called
-"gcc-gnulib" or "libgcc.a"; figure out where it is, and define LIB_GCC in
-config.h to point to it.
-
-It may also work to use the GCC version of `ld' instead of the standard one.
-
-** When compiling with X11, you get "undefined symbol _XtStrings".
-
-This means that you are trying to link emacs against the X11r4 version of
-libXt.a, but you have compiled either Emacs or the code in the lwlib
-subdirectory with the X11r5 header files.  That doesn't work.
-
-Remember, you can't compile lwlib for r4 and emacs for r5, or vice versa.
-They must be in sync.
-
-** Problems finding X11 libraries on Solaris with Openwindows
-
-Some users have reported problems in this area.  The reported solution
-is to define the environment variable OPENWINHOME, even if you must set
-it to `/usr/openwin'.
-
-** Under Linux, you get "too many arguments to function `getpgrp'".
-
-You have probably installed LessTiff under `/usr/local' and `libXm.so'
-could not be found when linking `getpgrp()' test program, making XEmacs
-think that `getpgrp()' takes an argument. Try adding `/usr/local/lib'
-in `/etc/ld.so.conf' and run `ldconfig'. Then run XEmacs's `configure'
-again.  As with all problems of this type, reading the config.log file
-generated from configure and seeing the log of how the test failed can
-prove enlightening.
-
-
-* Problems with running XEmacs
-==============================
-** On Solaris 2.6, XEmacs dumps core when exiting.
-
-This happens if you're XEmacs is running on the same machine as the X
-server, and the optimized memory transport has been turned on by
-setting the environment variable XSUNTRANSPORT.  The crash occurs
-during the call to XCloseDisplay.
-
-If this describes your situation, you need to undefine the
-XSUNTRANSPORT environment variable.
-
-** `C-z', or `M-x suspend-emacs' hangs instead of suspending.
-
-If you build with `gpm' support on Linux, you cannot suspend XEmacs
-because gpm installs a buggy SIGTSTP handler.  Either compile with
-`--with-gpm=no', or don't suspend XEmacs on the Linux console until
-this bug is fixed.
-
-** You type Control-H (Backspace) expecting to delete characters.
+*** You type Control-H (Backspace) expecting to delete characters.
 
 Emacs has traditionally used Control-H for help; unfortunately this
 interferes with its use as Backspace on TTY's.  One way to solve this
 
 Emacs has traditionally used Control-H for help; unfortunately this
 interferes with its use as Backspace on TTY's.  One way to solve this
@@ -497,7 +554,7 @@ Control-H (Backspace) work sensibly, and moves help to Meta-? (ESC ?).
 
 Note that you can probably also access help using F1.
 
 
 Note that you can probably also access help using F1.
 
-** Mail agents (VM, Gnus, rmail) cannot get new mail
+*** Mail agents (VM, Gnus, rmail) cannot get new mail
 
 rmail and VM get new mail from /usr/spool/mail/$USER using a program
 called `movemail'.  This program interlocks with /bin/mail using the
 
 rmail and VM get new mail from /usr/spool/mail/$USER using a program
 called `movemail'.  This program interlocks with /bin/mail using the
@@ -527,30 +584,12 @@ installed copy of movemail is usually in the directory
 mode of the installed copy; changing the group and mode of the build
 directory copy is ineffective.
 
 mode of the installed copy; changing the group and mode of the build
 directory copy is ineffective.
 
-** XEmacs crashes on Digital Unix within font-lock, or when dealing
-with large compilation buffers.
-
-The default stack size under Digital Unix is rather small (2M as
-opposed to Solaris 8M), hosing the regexp code, which uses alloca()
-extensively, overflowing the stack when complex regexps are used.
-Workarounds:
-
-1) Increase your stack size, using `ulimit -s 8192' or a (t)csh
-   equivalent;
-
-2) Recompile regex.c with REGEX_MALLOC defined.
-
-** On Solaris, C-x doesn't get through to Emacs when you use the console.
-
-This is a Solaris feature (at least on Intel x86 cpus).  Type C-r
-C-r C-t, to toggle whether C-x gets through to Emacs.
-
-** VM appears to hang in large folders.
+*** VM appears to hang in large folders.
 
 This is normal (trust us) when upgrading to VM-6.22 from earlier
 versions.  Let VM finish what it is doing and all will be well.
 
 
 This is normal (trust us) when upgrading to VM-6.22 from earlier
 versions.  Let VM finish what it is doing and all will be well.
 
-** Changes made to .el files do not take effect.
+*** Changes made to .el files do not take effect.
 
 You may have forgotten to recompile them into .elc files.  Then the
 old .elc files will be loaded, and your changes will not be seen.  To
 
 You may have forgotten to recompile them into .elc files.  Then the
 old .elc files will be loaded, and your changes will not be seen.  To
@@ -560,7 +599,7 @@ that contains the Lisp files.
 Note that you will get a warning when loading a .elc file that is
 older than the corresponding .el file.
 
 Note that you will get a warning when loading a .elc file that is
 older than the corresponding .el file.
 
-** Things which should be bold or italic (such as the initial
+*** Things which should be bold or italic (such as the initial
 copyright notice) are not.
 
 The fonts of the "bold" and "italic" faces are generated from the font
 copyright notice) are not.
 
 The fonts of the "bold" and "italic" faces are generated from the font
@@ -583,7 +622,7 @@ versions.  All X fonts can be referred to via XLFD-style names, so you
 should use those forms.  See the man pages for X(1), xlsfonts(1), and
 xfontsel(1).
 
 should use those forms.  See the man pages for X(1), xlsfonts(1), and
 xfontsel(1).
 
-** The dumped Emacs crashes when run, trying to write pure data.
+*** The dumped Emacs crashes when run, trying to write pure data.
 
 Two causes have been seen for such problems.
 
 
 Two causes have been seen for such problems.
 
@@ -598,43 +637,14 @@ of its files pure after dumping, but the variables declared static and
 not initialized are not supposed to be pure.  On these systems you
 may need to add "#define static" to the m- or the s- file.
 
 not initialized are not supposed to be pure.  On these systems you
 may need to add "#define static" to the m- or the s- file.
 
-** Reading and writing files is very very slow.
+*** Reading and writing files is very very slow.
 
 Try evaluating the form (setq lock-directory nil) and see if that helps.
 There is a problem with file-locking on some systems (possibly related
 to NFS) that I don't understand.  Please send mail to the address 
 xemacs@xemacs.org if you figure this one out.
 
 
 Try evaluating the form (setq lock-directory nil) and see if that helps.
 There is a problem with file-locking on some systems (possibly related
 to NFS) that I don't understand.  Please send mail to the address 
 xemacs@xemacs.org if you figure this one out.
 
-** The Emacs window disappears when you type M-q.
-
-Some versions of the Open Look window manager interpret M-q as a quit
-command for whatever window you are typing at.  If you want to use
-Emacs with that window manager, you should try to configure the window
-manager to use some other command.   You can disable the
-shortcut keys entirely by adding this line to ~/.OWdefaults:
-
-    OpenWindows.WindowMenuAccelerators: False
-
-** The `Alt' key doesn't behave as `Meta' when running DECwindows.
-
-The default DEC keyboard mapping has the Alt keys set up to generate the
-keysym `Multi_key', which has a meaning to xemacs which is distinct from that
-of the `Meta_L' and `Meta-R' keysyms.  A second problem is that certain keys
-have the Mod2 modifier attached to them for no adequately explored reason.
-The correct fix is to pass this file to xmodmap upon starting X:
-
-       clear mod2
-       keysym Multi_key = Alt_L
-       add mod1 = Alt_L
-       add mod1 = Alt_R
-
-** The Compose key on a DEC keyboard does not work as Meta key.
-
-This shell command should fix it:
-
-  xmodmap -e 'keycode 0xb1 = Meta_L'
-
-** When emacs starts up, I get lots of warnings about unknown keysyms.
+*** When emacs starts up, I get lots of warnings about unknown keysyms.
 
 If you are running the prebuilt binaries, the Motif library expects to find
 certain thing in the XKeysymDB file.  This file is normally in /usr/lib/X11/
 
 If you are running the prebuilt binaries, the Motif library expects to find
 certain thing in the XKeysymDB file.  This file is normally in /usr/lib/X11/
@@ -644,25 +654,14 @@ you still have the problem after doing that, perhaps your version of X is
 too old.  There is a copy of the MIT X11R5 XKeysymDB file in the emacs `etc'
 directory.  Try using that one.
 
 too old.  There is a copy of the MIT X11R5 XKeysymDB file in the emacs `etc'
 directory.  Try using that one.
 
-** My X resources used to work, and now some of them are being ignored.
+*** My X resources used to work, and now some of them are being ignored.
 
 Check the resources in .../etc/Emacs.ad (which is the same as the file
 sample.Xdefaults).  Perhaps some of the default resources built in to 
 emacs are now overriding your existing resources.  Copy and edit the
 resources in Emacs.ad as necessary.
 
 
 Check the resources in .../etc/Emacs.ad (which is the same as the file
 sample.Xdefaults).  Perhaps some of the default resources built in to 
 emacs are now overriding your existing resources.  Copy and edit the
 resources in Emacs.ad as necessary.
 
-** I get complaints about the mapping of my HP keyboard at startup,
-but I haven't changed anything.
-
-The default HP keymap is set up to have Mod1 assigned to two different keys:
-Meta_L and Mode_switch (even though there is not actually a Mode_switch key on
-the keyboard -- it uses an "imaginary" keycode.)  There actually is a reason
-for this, but it's not a good one.  The correct fix is to execute this command
-upon starting X:
-
-       xmodmap -e 'remove mod1 = Mode_switch'
-
-** I have focus problems when I use `M-o' to switch to another screen
+*** I have focus problems when I use `M-o' to switch to another screen
 without using the mouse.
 
 The focus issues with a program like XEmacs, which has multiple
 without using the mouse.
 
 The focus issues with a program like XEmacs, which has multiple
@@ -687,7 +686,7 @@ on another screen in point-to-type mode.  This is not ICCCM-compliant
 behavior.  Implementing such policy is the responsibility of the
 window manager itself, it is not legal for a client to do this.)
 
 behavior.  Implementing such policy is the responsibility of the
 window manager itself, it is not legal for a client to do this.)
 
-** Emacs spontaneously displays "I-search: " at the bottom of the screen.
+*** Emacs spontaneously displays "I-search: " at the bottom of the screen.
 
 This means that Control-S/Control-Q (XON/XOFF) "flow control" is being
 used.  C-s/C-q flow control is bad for Emacs editors because it takes
 
 This means that Control-S/Control-Q (XON/XOFF) "flow control" is being
 used.  C-s/C-q flow control is bad for Emacs editors because it takes
@@ -771,7 +770,7 @@ use out of GNU Emacs on inferior terminals, more power to you, but I
 will not make Emacs worse for properly designed systems for the sake
 of inferior systems.
 
 will not make Emacs worse for properly designed systems for the sake
 of inferior systems.
 
-** Control-S and Control-Q commands are ignored completely.
+*** Control-S and Control-Q commands are ignored completely.
 
 For some reason, your system is using brain-damaged C-s/C-q flow
 control despite Emacs's attempts to turn it off.  Perhaps your
 
 For some reason, your system is using brain-damaged C-s/C-q flow
 control despite Emacs's attempts to turn it off.  Perhaps your
@@ -786,7 +785,7 @@ If that line of approach is not successful, map some other characters
 into C-s and C-q using keyboard-translate-table.  The example above
 shows how to do this with C-^ and C-\.
 
 into C-s and C-q using keyboard-translate-table.  The example above
 shows how to do this with C-^ and C-\.
 
-** Control-S and Control-Q commands are ignored completely on a net
+*** Control-S and Control-Q commands are ignored completely on a net
 connection.
 
 Some versions of rlogin (and possibly telnet) do not pass flow
 connection.
 
 Some versions of rlogin (and possibly telnet) do not pass flow
@@ -813,7 +812,7 @@ following to your .emacs (on the host running rlogind):
 See the entry about spontaneous display of I-search (above) for more
 info.
 
 See the entry about spontaneous display of I-search (above) for more
 info.
 
-** TTY redisplay is slow.
+*** TTY redisplay is slow.
 
 XEmacs has fairly new TTY redisplay support (beginning from 19.12),
 which doesn't include some basic TTY optimizations -- like using
 
 XEmacs has fairly new TTY redisplay support (beginning from 19.12),
 which doesn't include some basic TTY optimizations -- like using
@@ -824,7 +823,7 @@ slow.
 If you are interested in fixing this, please let us know at
 <xemacs@xemacs.org>.
 
 If you are interested in fixing this, please let us know at
 <xemacs@xemacs.org>.
 
-** Screen is updated wrong, but only on one kind of terminal.
+*** Screen is updated wrong, but only on one kind of terminal.
 
 This could mean that the termcap entry you are using for that terminal
 is wrong, or it could mean that Emacs has a bug handing the
 
 This could mean that the termcap entry you are using for that terminal
 is wrong, or it could mean that Emacs has a bug handing the
@@ -863,183 +862,237 @@ This is unambiguously an Emacs bug, and can probably be fixed in
 termcap.c, terminfo.c, tparam.c, cm.c, redisplay-tty.c,
 redisplay-output.c, or redisplay.c.
 
 termcap.c, terminfo.c, tparam.c, cm.c, redisplay-tty.c,
 redisplay-output.c, or redisplay.c.
 
-** Your Delete key sends a Backspace to the terminal, using an AIXterm.
+*** My buffers are full of \000 characters or otherwise corrupt.
 
 
-The solution is to include in your .Xdefaults the lines:
+Some compilers have trouble with gmalloc.c and ralloc.c; try recompiling
+without optimization.  If that doesn't work, try recompiling with
+SYSTEM_MALLOC defined, and/or with REL_ALLOC undefined.
 
 
-   *aixterm.Translations: #override <Key>BackSpace: string(0x7f)
-   aixterm*ttyModes: erase ^?
+*** A position you specified in .Xdefaults is ignored, using twm.
 
 
-This makes your Backspace key send DEL (ASCII 127).
+twm normally ignores "program-specified" positions.
+You can tell it to obey them with this command in your `.twmrc' file:
 
 
-** With certain fonts, when the cursor appears on a character, the
-character doesn't appear--you get a solid box instead.
+  UsePPosition "on"            #allow clents to request a position
 
 
-One user on a Linux system reported that this problem went away with
-installation of a new X server.  The failing server was XFree86 3.1.1.
-XFree86 3.1.2 works.
+*** With M-x enable-flow-control, you need to type C-\ twice to do
+incremental search--a single C-\ gets no response.
 
 
-** On SunOS 4.1.3, Emacs unpredictably crashes in _yp_dobind_soft.
+This has been traced to communicating with your machine via kermit,
+with C-\ as the kermit escape character.  One solution is to use
+another escape character in kermit.  One user did
 
 
-This happens if you configure Emacs specifying just `sparc-sun-sunos4'
-on a system that is version 4.1.3.  You must specify the precise
-version number (or let configure figure out the configuration, which
-it can do perfectly well for SunOS).
+   set escape-character 17
 
 
-** On Irix, I don't see the toolbar icons and I'm getting lots of
-entries in the warnings buffer.
+in his .kermrc file, to make C-q the kermit escape character.
 
 
-SGI ships a really old Xpm library in /usr/lib which does not work at
-all well with XEmacs.  The solution is to install your own copy of the
-latest version of Xpm somewhere and then use the --site-includes and
---site-libraries flags to tell configure where to find it.
+*** The Motif version of Emacs paints the screen a solid color.
 
 
-** On HPUX, you get "poll: Interrupted system call" message in the
-window where XEmacs was launched.
+This has been observed to result from the following X resource:
 
 
-Richard Cognot <cognot@ensg.u-nancy.fr> writes:
+   Emacs*default.attributeFont:        -*-courier-medium-r-*-*-*-140-*-*-*-*-iso8859-*
 
 
-  I get a very strange problem when linking libc.a dynamically: every
-  event (mouse, keyboard, expose...) results in a "poll: Interrupted
-  system call" message in the window where XEmacs was
-  launched. Forcing a static link of libc.a alone by adding
-  /usr/lib/libc.a at the end of the link line solves this. Note that
-  my 9.07 build of 19.14b17 and my (old) build of 19.13 both exhibit
-  the same behaviour. I've tried various hpux patches to no avail. If
-  this problem cannot be solved before the release date, binary kits
-  for HP *must* be linked statically against libc, otherwise this
-  problem will show up. (This is directed at whoever will volunteer
-  for this kit, as I won't be available to do it, unless 19.14 gets
-  delayed until mid-june ;-). I think this problem will be an FAQ soon
-  after the release otherwise.
+That the resource has this effect indicates a bug in something, but we
+do not yet know what.  If it is an Emacs bug, we hope someone can
+explain what the bug is so we can fix it.  In the mean time, removing
+the resource prevents the problem.
 
 
-Note: The above entry is probably not valid for XEmacs 21.2 and
-later.
+*** After running emacs once, subsequent invocations crash.
 
 
-** When Emacs tries to ring the bell, you get an error like
+Some versions of SVR4 have a serious bug in the implementation of the
+mmap () system call in the kernel; this causes emacs to run correctly
+the first time, and then crash when run a second time.
 
 
-       audio: sst_open: SETQSIZE" Invalid argument
-       audio: sst_close: SETREG MMR2, Invalid argument
+Contact your vendor and ask for the mmap bug fix; in the mean time,
+you may be able to work around the problem by adding a line to your
+operating system description file (whose name is reported by the
+configure script) that reads:
+#define SYSTEM_MALLOC
+This makes Emacs use memory less efficiently, but seems to work around
+the kernel bug.
 
 
-you have probably compiled using an ANSI C compiler, but with non-ANSI
-include files.  In particular, on Suns, the file
-/usr/include/sun/audioio.h uses the _IOW macro to define the constant
-AUDIOSETQSIZE.  _IOW in turn uses a K&R preprocessor feature that is
-now explicitly forbidden in ANSI preprocessors, namely substitution
-inside character constants.  All ANSI C compilers must provide a
-workaround for this problem.  Lucid's C compiler is shipped with a new
-set of system include files.  If you are using GCC, there is a script
-called fixincludes that creates new versions of some system include
-files that use this obsolete feature.
+*** Inability to send an Alt-modified key, when Emacs is communicating
+directly with an X server.
 
 
-** My buffers are full of \000 characters or otherwise corrupt.
+If you have tried to bind an Alt-modified key as a command, and it
+does not work to type the command, the first thing you should check is
+whether the key is getting through to Emacs.  To do this, type C-h c
+followed by the Alt-modified key.  C-h c should say what kind of event
+it read.  If it says it read an Alt-modified key, then make sure you
+have made the key binding correctly.
 
 
-Some compilers have trouble with gmalloc.c and ralloc.c; try recompiling
-without optimization.  If that doesn't work, try recompiling with
-SYSTEM_MALLOC defined, and/or with REL_ALLOC undefined.
+If C-h c reports an event that doesn't have the Alt modifier, it may
+be because your X server has no key for the Alt modifier.  The X
+server that comes from MIT does not set up the Alt modifier by
+default.
 
 
-** On AIX 4, some programs fail when run in a Shell buffer
-with an error message like No terminfo entry for "unknown".
+If your keyboard has keys named Alt, you can enable them as follows:
 
 
-On AIX, many terminal type definitions are not installed by default.
-`unknown' is one of them.  Install the "Special Generic Terminal
-Definitions" to make them defined.
+    xmodmap -e 'add mod2 = Alt_L'
+    xmodmap -e 'add mod2 = Alt_R'
 
 
-** Emacs exits with "X protocol error" when run with an X server for
-Windows.
+If the keyboard has just one key named Alt, then only one of those
+commands is needed.  The modifier `mod2' is a reasonable choice if you
+are using an unmodified MIT version of X.  Otherwise, choose any
+modifier bit not otherwise used.
 
 
-A certain X server for Windows had a bug which caused this.
-Supposedly the newer 32-bit version of this server doesn't have the
-problem.
+If your keyboard does not have keys named Alt, you can use some other
+keys.  Use the keysym command in xmodmap to turn a function key (or
+some other 'spare' key) into Alt_L or into Alt_R, and then use the
+commands show above to make them modifier keys.
 
 
-** A position you specified in .Xdefaults is ignored, using twm.
+Note that if you have Alt keys but no Meta keys, Emacs translates Alt
+into Meta.  This is because of the great importance of Meta in Emacs.
 
 
-twm normally ignores "program-specified" positions.
-You can tell it to obey them with this command in your `.twmrc' file:
+*** In Shell mode, you get a ^M at the end of every line.
 
 
-  UsePPosition "on"            #allow clents to request a position
+This happens to people who use tcsh, because it is trying to be too
+smart.  It sees that the Shell uses terminal type `unknown' and turns
+on the flag to output ^M at the end of each line.  You can fix the
+problem by adding this to your .cshrc file:
 
 
-** The right Alt key works wrong on German HP keyboards (and perhaps
-   other non-English HP keyboards too).
+    if ($?EMACS) then
+        if ($EMACS == "t") then
+            unset edit 
+            stty  -icrnl -onlcr -echo susp ^Z
+        endif
+    endif
 
 
-This is because HPUX defines the modifiers wrong in X.  Here is a
-shell script to fix the problem; be sure that it is run after VUE
-configures the X server.
+*** An error message such as `X protocol error: BadMatch (invalid
+parameter attributes) on protocol request 93'.
 
 
-    xmodmap 2> /dev/null - << EOF
-    keysym Alt_L = Meta_L
-    keysym Alt_R = Meta_R
-    EOF
+This comes from having an invalid X resource, such as
+   emacs*Cursor:   black
+(which is invalid because it specifies a color name for something
+that isn't a color.)
 
 
-    xmodmap - << EOF
-    clear mod1
-    keysym Mode_switch = NoSymbol
-    add mod1 = Meta_L
-    keysym Meta_R = Mode_switch
-    add mod2 = Mode_switch
-    EOF
+The fix is to correct your X resources.
 
 
-** Trouble using ptys on IRIX, or running out of ptys.
+*** Once you pull down a menu from the menubar, it won't go away.
 
 
-The program mkpts (which may be in `/usr/adm' or `/usr/sbin') needs to
-be set-UID to root, or non-root programs like Emacs will not be able
-to allocate ptys reliably.
+It has been claimed that this is caused by a bug in certain very old
+(1990?)  versions of the twm window manager.  It doesn't happen with
+recent vintages, or with other window managers.
 
 
-** Motif dialog boxes lose on Irix.
+*** Emacs ignores the "help" key when running OLWM.
 
 
-Larry Auton <lda@control.att.com> writes:
-Beware of not specifying
+OLWM grabs the help key, and retransmits it to the appropriate client
+using XSendEvent.  Allowing emacs to react to synthetic events is a
+security hole, so this is turned off by default.  You can enable it by
+setting the variable x-allow-sendevents to t.  You can also cause fix
+this by telling OLWM to not grab the help key, with the null binding
+"OpenWindows.KeyboardCommand.Help:".
 
 
-       --with-dialogs=athena
+*** Programs running under terminal emulator do not recognize `emacs'
+terminal type.
 
 
-if it builds with the motif dialogs [boom!] you're a dead man.
+The cause of this is a shell startup file that sets the TERMCAP
+environment variable.  The terminal emulator uses that variable to
+provide the information on the special terminal type that Emacs
+emulates.
 
 
-** Beware of the default image & graphics library on Irix
+Rewrite your shell startup file so that it does not change TERMCAP
+in such a case.  You could use the following conditional which sets
+it only if it is undefined.
 
 
-Richard Cognot <cognot@ensg.u-nancy.fr> writes:
-You *have* to compile your own jpeg lib. The one delivered with SGI
-systems is a C++ lib, which apparently XEmacs cannot cope with.
+    if ( ! ${?TERMCAP} ) setenv TERMCAP ~/my-termcap-file
 
 
-** Slow startup on Linux.
+Or you could set TERMCAP only when you set TERM--which should not
+happen in a non-login shell.
 
 
-People using systems based on the Linux kernel sometimes report that
-startup takes 10 to 15 seconds longer than `usual'.
+*** The popup menu appears at the buttom/right of my screen.
 
 
-This is because Emacs looks up the host name when it starts.
-Normally, this takes negligible time; the extra delay is due to
-improper system configuration.  This problem can occur for both
-networked and non-networked machines.
+You probably have something like the following in your ~/.Xdefaults
 
 
-Here is how to fix the configuration.  It requires being root.
+       Emacs.geometry:         81x56--9--1
 
 
-*** Networked Case
+Use the following instead
 
 
-First, make sure the files `/etc/hosts' and `/etc/host.conf' both
-exist.  The first line in the `/etc/hosts' file should look like this
-(replace HOSTNAME with your host name):
+       Emacs*EmacsFrame.geometry:              81x56--9--1
 
 
-    127.0.0.1      localhost HOSTNAME
 
 
-Also make sure that the `/etc/host.conf' files contains the following
-lines:
+** AIX
+*** Your Delete key sends a Backspace to the terminal, using an AIXterm.
 
 
-    order hosts, bind 
-    multi on
+The solution is to include in your .Xdefaults the lines:
 
 
-Any changes, permanent and temporary, to the host name should be
-indicated in the `/etc/hosts' file, since it acts a limited local
-database of addresses and names (e.g., some SLIP connections
-dynamically allocate ip addresses).
+   *aixterm.Translations: #override <Key>BackSpace: string(0x7f)
+   aixterm*ttyModes: erase ^?
 
 
-*** Non-Networked Case
+This makes your Backspace key send DEL (ASCII 127).
 
 
-The solution described in the networked case applies here as well.
-However, if you never intend to network your machine, you can use a
-simpler solution: create an empty `/etc/host.conf' file.  The command
-`touch /etc/host.conf' suffices to create the file.  The `/etc/hosts'
-file is not necessary with this approach.
+*** On AIX 4, some programs fail when run in a Shell buffer
+with an error message like No terminfo entry for "unknown".
+
+On AIX, many terminal type definitions are not installed by default.
+`unknown' is one of them.  Install the "Special Generic Terminal
+Definitions" to make them defined.
+
+*** On AIX, you get this message when running Emacs:
+
+    Could not load program emacs
+    Symbol smtcheckinit in csh is undefined
+    Error was: Exec format error
+
+or this one:
+
+    Could not load program .emacs
+    Symbol _system_con in csh is undefined
+    Symbol _fp_trapsta in csh is undefined
+    Error was: Exec format error
+
+These can happen when you try to run on AIX 3.2.5 a program that was
+compiled with 3.2.4.  The fix is to recompile.
+
+*** Trouble using ptys on AIX.
+
+People often install the pty devices on AIX incorrectly.
+Use `smit pty' to reinstall them properly.
+
+
+** SunOS/Solaris
+*** The Emacs window disappears when you type M-q.
+
+Some versions of the Open Look window manager interpret M-q as a quit
+command for whatever window you are typing at.  If you want to use
+Emacs with that window manager, you should try to configure the window
+manager to use some other command.   You can disable the
+shortcut keys entirely by adding this line to ~/.OWdefaults:
+
+    OpenWindows.WindowMenuAccelerators: False
+
+*** When Emacs tries to ring the bell, you get an error like
+
+       audio: sst_open: SETQSIZE" Invalid argument
+       audio: sst_close: SETREG MMR2, Invalid argument
+
+you have probably compiled using an ANSI C compiler, but with non-ANSI
+include files.  In particular, on Suns, the file
+/usr/include/sun/audioio.h uses the _IOW macro to define the constant
+AUDIOSETQSIZE.  _IOW in turn uses a K&R preprocessor feature that is
+now explicitly forbidden in ANSI preprocessors, namely substitution
+inside character constants.  All ANSI C compilers must provide a
+workaround for this problem.  Lucid's C compiler is shipped with a new
+set of system include files.  If you are using GCC, there is a script
+called fixincludes that creates new versions of some system include
+files that use this obsolete feature.
+
+*** On Solaris 2.6, XEmacs dumps core when exiting.
+
+This happens if you're XEmacs is running on the same machine as the X
+server, and the optimized memory transport has been turned on by
+setting the environment variable XSUNTRANSPORT.  The crash occurs
+during the call to XCloseDisplay.
+
+If this describes your situation, you need to undefine the
+XSUNTRANSPORT environment variable.
 
 
-** On Solaris 2.4, Dired hangs and C-g does not work.  Or Emacs hangs
+*** On Solaris, C-x doesn't get through to Emacs when you use the console.
+
+This is a Solaris feature (at least on Intel x86 cpus).  Type C-r
+C-r C-t, to toggle whether C-x gets through to Emacs.
+
+*** On Solaris 2.4, Dired hangs and C-g does not work.  Or Emacs hangs
 forever waiting for termination of a subprocess that is a zombie.
 
 casper@fwi.uva.nl says the problem is in X11R6.  Rebuild libX11.so
 forever waiting for termination of a subprocess that is a zombie.
 
 casper@fwi.uva.nl says the problem is in X11R6.  Rebuild libX11.so
@@ -1081,61 +1134,14 @@ in sun.cf and did `make World' to rebuild X11R6.  Removing all
 `-DXTHREAD*' flags and `-lthread' entries from lib/X11/Makefile and
 typing 'make install' in that directory also seemed to work.
 
 `-DXTHREAD*' flags and `-lthread' entries from lib/X11/Makefile and
 typing 'make install' in that directory also seemed to work.
 
-** With M-x enable-flow-control, you need to type C-\ twice to do
-incremental search--a single C-\ gets no response.
-
-This has been traced to communicating with your machine via kermit,
-with C-\ as the kermit escape character.  One solution is to use
-another escape character in kermit.  One user did
-
-   set escape-character 17
-
-in his .kermrc file, to make C-q the kermit escape character.
-
-** The Motif version of Emacs paints the screen a solid color.
-
-This has been observed to result from the following X resource:
-
-   Emacs*default.attributeFont:        -*-courier-medium-r-*-*-*-140-*-*-*-*-iso8859-*
-
-That the resource has this effect indicates a bug in something, but we
-do not yet know what.  If it is an Emacs bug, we hope someone can
-explain what the bug is so we can fix it.  In the mean time, removing
-the resource prevents the problem.
-
-** Regular expressions matching bugs on SCO systems.
-
-On SCO, there are problems in regexp matching when Emacs is compiled
-with the system compiler.  The compiler version is "Microsoft C
-version 6", SCO 4.2.0h Dev Sys Maintenance Supplement 01/06/93; Quick
-C Compiler Version 1.00.46 (Beta).  The solution is to compile with
-GCC.
-
-** In Shell mode, you get a ^M at the end of every line.
-
-This happens to people who use tcsh, because it is trying to be too
-smart.  It sees that the Shell uses terminal type `unknown' and turns
-on the flag to output ^M at the end of each line.  You can fix the
-problem by adding this to your .cshrc file:
-
-    if ($?EMACS) then
-        if ($EMACS == "t") then
-            unset edit 
-            stty  -icrnl -onlcr -echo susp ^Z
-        endif
-    endif
-
-** An error message such as `X protocol error: BadMatch (invalid
-parameter attributes) on protocol request 93'.
+*** On SunOS 4.1.3, Emacs unpredictably crashes in _yp_dobind_soft.
 
 
-This comes from having an invalid X resource, such as
-   emacs*Cursor:   black
-(which is invalid because it specifies a color name for something
-that isn't a color.)
-
-The fix is to correct your X resources.
+This happens if you configure Emacs specifying just `sparc-sun-sunos4'
+on a system that is version 4.1.3.  You must specify the precise
+version number (or let configure figure out the configuration, which
+it can do perfectly well for SunOS).
 
 
-** Mail is lost when sent to local aliases.
+*** Mail is lost when sent to local aliases.
 
 Many emacs mail user agents (VM and rmail, for instance) use the
 sendmail.el library.  This library can arrange for mail to be
 
 Many emacs mail user agents (VM and rmail, for instance) use the
 sendmail.el library.  This library can arrange for mail to be
@@ -1162,79 +1168,181 @@ of this writing, these official versions are available:
  IDA sendmail on vixen.cso.uiuc.edu in /pub:
    sendmail-5.67b+IDA-1.5.tar.gz
 
  IDA sendmail on vixen.cso.uiuc.edu in /pub:
    sendmail-5.67b+IDA-1.5.tar.gz
 
-** On AIX, you get this message when running Emacs:
+*** Emacs fails to understand most Internet host names, even though
+the names work properly with other programs on the same system.
+  Emacs won't work with X-windows if the value of DISPLAY is HOSTNAME:0.
+  Gnus can't make contact with the specified host for nntp.
 
 
-    Could not load program emacs
-    Symbol smtcheckinit in csh is undefined
-    Error was: Exec format error
+This typically happens on Suns and other systems that use shared
+libraries.  The cause is that the site has installed a version of the
+shared library which uses a name server--but has not installed a
+similar version of the unshared library which Emacs uses.
 
 
-or this one:
+The result is that most programs, using the shared library, work with
+the nameserver, but Emacs does not.
 
 
-    Could not load program .emacs
-    Symbol _system_con in csh is undefined
-    Symbol _fp_trapsta in csh is undefined
-    Error was: Exec format error
+The fix is to install an unshared library that corresponds to what you
+installed in the shared library, and then relink Emacs.
 
 
-These can happen when you try to run on AIX 3.2.5 a program that was
-compiled with 3.2.4.  The fix is to recompile.
+On SunOS 4.1, simply define HAVE_RES_INIT.
 
 
-** After running emacs once, subsequent invocations crash.
+If you have already installed the name resolver in the file libresolv.a,
+then you need to compile Emacs to use that library.  The easiest way to
+do this is to add to config.h a definition of LIBS_SYSTEM, LIBS_MACHINE
+or LIB_STANDARD which uses -lresolv.  Watch out!  If you redefine a macro
+that is already in use in your configuration to supply some other libraries,
+be careful not to lose the others.
 
 
-Some versions of SVR4 have a serious bug in the implementation of the
-mmap () system call in the kernel; this causes emacs to run correctly
-the first time, and then crash when run a second time.
+Thus, you could start by adding this to config.h:
 
 
-Contact your vendor and ask for the mmap bug fix; in the mean time,
-you may be able to work around the problem by adding a line to your
-operating system description file (whose name is reported by the
-configure script) that reads:
-#define SYSTEM_MALLOC
-This makes Emacs use memory less efficiently, but seems to work around
-the kernel bug.
+#define LIBS_SYSTEM -lresolv
 
 
-** Inability to send an Alt-modified key, when Emacs is communicating
-directly with an X server.
+Then if this gives you an error for redefining a macro, and you see that
+the s- file defines LIBS_SYSTEM as -lfoo -lbar, you could change config.h
+again to say this:
 
 
-If you have tried to bind an Alt-modified key as a command, and it
-does not work to type the command, the first thing you should check is
-whether the key is getting through to Emacs.  To do this, type C-h c
-followed by the Alt-modified key.  C-h c should say what kind of event
-it read.  If it says it read an Alt-modified key, then make sure you
-have made the key binding correctly.
+#define LIBS_SYSTEM -lresolv -lfoo -lbar
 
 
-If C-h c reports an event that doesn't have the Alt modifier, it may
-be because your X server has no key for the Alt modifier.  The X
-server that comes from MIT does not set up the Alt modifier by
-default.
+*** With process-connection-type set to t, each line of subprocess
+output is terminated with a ^M, making ange-ftp and GNUS not work.
 
 
-If your keyboard has keys named Alt, you can enable them as follows:
+On SunOS systems, this problem has been seen to be a result of an
+incomplete installation of gcc 2.2 which allowed some non-ANSI
+compatible include files into the compilation.  In particular this
+affected virtually all ioctl() calls.
 
 
-    xmodmap -e 'add mod2 = Alt_L'
-    xmodmap -e 'add mod2 = Alt_R'
 
 
-If the keyboard has just one key named Alt, then only one of those
-commands is needed.  The modifier `mod2' is a reasonable choice if you
-are using an unmodified MIT version of X.  Otherwise, choose any
-modifier bit not otherwise used.
+** Linux
+*** You get crashes in a non-C locale with Linux GNU Libc 2.0.
 
 
-If your keyboard does not have keys named Alt, you can use some other
-keys.  Use the keysym command in xmodmap to turn a function key (or
-some other 'spare' key) into Alt_L or into Alt_R, and then use the
-commands show above to make them modifier keys.
+Internationalization was not the top priority for GNU Libc 2.0.
+As of this writing (1998-12-28) you may get crashes while running
+XEmacs in a non-C locale.  For example, `LC_ALL=en_US xemacs' crashes
+while `LC_ALL=C xemacs' runs fine.  This happens for example with GNU
+libc 2.0.7.  Installing libintl.a and libintl.h built from gettext
+0.10.35 and re-building XEmacs solves the crashes.  Presumably soon 
+everyone will upgrade to GNU Libc 2.1 and this problem will go away.
 
 
-Note that if you have Alt keys but no Meta keys, Emacs translates Alt
-into Meta.  This is because of the great importance of Meta in Emacs.
+*** `C-z', or `M-x suspend-emacs' hangs instead of suspending.
+
+If you build with `gpm' support on Linux, you cannot suspend XEmacs
+because gpm installs a buggy SIGTSTP handler.  Either compile with
+`--with-gpm=no', or don't suspend XEmacs on the Linux console until
+this bug is fixed.
 
 
-** `Pid xxx killed due to text modification or page I/O error'
+*** With certain fonts, when the cursor appears on a character, the
+character doesn't appear--you get a solid box instead.
 
 
-On HP/UX, you can get that error when the Emacs executable is on an NFS
-file system.  HP/UX responds this way if it tries to swap in a page and
-does not get a response from the server within a timeout whose default
-value is just ten seconds.
+One user on a Linux system reported that this problem went away with
+installation of a new X server.  The failing server was XFree86 3.1.1.
+XFree86 3.1.2 works.
 
 
-If this happens to you, extend the timeout period.
+*** Slow startup on Linux.
+
+People using systems based on the Linux kernel sometimes report that
+startup takes 10 to 15 seconds longer than `usual'.
+
+This is because Emacs looks up the host name when it starts.
+Normally, this takes negligible time; the extra delay is due to
+improper system configuration.  This problem can occur for both
+networked and non-networked machines.
+
+Here is how to fix the configuration.  It requires being root.
+
+**** Networked Case
+
+First, make sure the files `/etc/hosts' and `/etc/host.conf' both
+exist.  The first line in the `/etc/hosts' file should look like this
+(replace HOSTNAME with your host name):
+
+    127.0.0.1      localhost HOSTNAME
+
+Also make sure that the `/etc/host.conf' files contains the following
+lines:
+
+    order hosts, bind 
+    multi on
+
+Any changes, permanent and temporary, to the host name should be
+indicated in the `/etc/hosts' file, since it acts a limited local
+database of addresses and names (e.g., some SLIP connections
+dynamically allocate ip addresses).
+
+**** Non-Networked Case
+
+The solution described in the networked case applies here as well.
+However, if you never intend to network your machine, you can use a
+simpler solution: create an empty `/etc/host.conf' file.  The command
+`touch /etc/host.conf' suffices to create the file.  The `/etc/hosts'
+file is not necessary with this approach.
+
+
+** IRIX
+*** On Irix, I don't see the toolbar icons and I'm getting lots of
+entries in the warnings buffer.
+
+SGI ships a really old Xpm library in /usr/lib which does not work at
+all well with XEmacs.  The solution is to install your own copy of the
+latest version of Xpm somewhere and then use the --site-includes and
+--site-libraries flags to tell configure where to find it.
+
+*** Trouble using ptys on IRIX, or running out of ptys.
+
+The program mkpts (which may be in `/usr/adm' or `/usr/sbin') needs to
+be set-UID to root, or non-root programs like Emacs will not be able
+to allocate ptys reliably.
+
+*** Motif dialog boxes lose on Irix.
+
+Larry Auton <lda@control.att.com> writes:
+Beware of not specifying
+
+       --with-dialogs=athena
+
+if it builds with the motif dialogs [boom!] you're a dead man.
+
+*** Beware of the default image & graphics library on Irix
+
+Richard Cognot <cognot@ensg.u-nancy.fr> writes:
+
+You *have* to compile your own jpeg lib. The one delivered with SGI
+systems is a C++ lib, which apparently XEmacs cannot cope with.
+
+
+** Digital UNIX/OSF/VMS/Ultrix
+*** XEmacs crashes on Digital Unix within font-lock, or when dealing
+with large compilation buffers.
+
+The default stack size under Digital Unix is rather small (2M as
+opposed to Solaris 8M), hosing the regexp code, which uses alloca()
+extensively, overflowing the stack when complex regexps are used.
+Workarounds:
+
+1) Increase your stack size, using `ulimit -s 8192' or a (t)csh
+   equivalent;
+
+2) Recompile regex.c with REGEX_MALLOC defined.
+
+*** The `Alt' key doesn't behave as `Meta' when running DECwindows.
+
+The default DEC keyboard mapping has the Alt keys set up to generate the
+keysym `Multi_key', which has a meaning to xemacs which is distinct from that
+of the `Meta_L' and `Meta-R' keysyms.  A second problem is that certain keys
+have the Mod2 modifier attached to them for no adequately explored reason.
+The correct fix is to pass this file to xmodmap upon starting X:
+
+       clear mod2
+       keysym Multi_key = Alt_L
+       add mod1 = Alt_L
+       add mod1 = Alt_R
 
 
-** `expand-file-name' fails to work on any but the machine you dumped
+*** The Compose key on a DEC keyboard does not work as Meta key.
+
+This shell command should fix it:
+
+  xmodmap -e 'keycode 0xb1 = Meta_L'
+
+*** `expand-file-name' fails to work on any but the machine you dumped
 Emacs on.
 
 On Ultrix, if you use any of the functions which look up information
 Emacs on.
 
 On Ultrix, if you use any of the functions which look up information
@@ -1250,47 +1358,71 @@ going on, and perhaps find a fix or a workaround, please let us know.
 Perhaps the YP functions cache some information, the cache is included
 in the dumped Emacs, and is then inaccurate on any other host.
 
 Perhaps the YP functions cache some information, the cache is included
 in the dumped Emacs, and is then inaccurate on any other host.
 
-** Emacs fails to understand most Internet host names, even though
-the names work properly with other programs on the same system.
-  Emacs won't work with X-windows if the value of DISPLAY is HOSTNAME:0.
-  Gnus can't make contact with the specified host for nntp.
 
 
-This typically happens on Suns and other systems that use shared
-libraries.  The cause is that the site has installed a version of the
-shared library which uses a name server--but has not installed a
-similar version of the unshared library which Emacs uses.
+** HP-UX
+*** I get complaints about the mapping of my HP keyboard at startup,
+but I haven't changed anything.
 
 
-The result is that most programs, using the shared library, work with
-the nameserver, but Emacs does not.
+The default HP keymap is set up to have Mod1 assigned to two different keys:
+Meta_L and Mode_switch (even though there is not actually a Mode_switch key on
+the keyboard -- it uses an "imaginary" keycode.)  There actually is a reason
+for this, but it's not a good one.  The correct fix is to execute this command
+upon starting X:
 
 
-The fix is to install an unshared library that corresponds to what you
-installed in the shared library, and then relink Emacs.
+       xmodmap -e 'remove mod1 = Mode_switch'
 
 
-On SunOS 4.1, simply define HAVE_RES_INIT.
+*** On HP-UX, you get "poll: Interrupted system call" message in the
+window where XEmacs was launched.
 
 
-If you have already installed the name resolver in the file libresolv.a,
-then you need to compile Emacs to use that library.  The easiest way to
-do this is to add to config.h a definition of LIBS_SYSTEM, LIBS_MACHINE
-or LIB_STANDARD which uses -lresolv.  Watch out!  If you redefine a macro
-that is already in use in your configuration to supply some other libraries,
-be careful not to lose the others.
+Richard Cognot <cognot@ensg.u-nancy.fr> writes:
 
 
-Thus, you could start by adding this to config.h:
+  I get a very strange problem when linking libc.a dynamically: every
+  event (mouse, keyboard, expose...) results in a "poll: Interrupted
+  system call" message in the window where XEmacs was
+  launched. Forcing a static link of libc.a alone by adding
+  /usr/lib/libc.a at the end of the link line solves this. Note that
+  my 9.07 build of 19.14b17 and my (old) build of 19.13 both exhibit
+  the same behaviour. I've tried various hpux patches to no avail. If
+  this problem cannot be solved before the release date, binary kits
+  for HP *must* be linked statically against libc, otherwise this
+  problem will show up. (This is directed at whoever will volunteer
+  for this kit, as I won't be available to do it, unless 19.14 gets
+  delayed until mid-june ;-). I think this problem will be an FAQ soon
+  after the release otherwise.
 
 
-#define LIBS_SYSTEM -lresolv
+Note: The above entry is probably not valid for XEmacs 21.0 and
+later.
 
 
-Then if this gives you an error for redefining a macro, and you see that
-the s- file defines LIBS_SYSTEM as -lfoo -lbar, you could change config.h
-again to say this:
+*** The right Alt key works wrong on German HP keyboards (and perhaps
+   other non-English HP keyboards too).
 
 
-#define LIBS_SYSTEM -lresolv -lfoo -lbar
+This is because HP-UX defines the modifiers wrong in X.  Here is a
+shell script to fix the problem; be sure that it is run after VUE
+configures the X server.
 
 
-** Trouble using ptys on AIX.
+    xmodmap 2> /dev/null - << EOF
+    keysym Alt_L = Meta_L
+    keysym Alt_R = Meta_R
+    EOF
 
 
-People often install the pty devices on AIX incorrectly.
-Use `smit pty' to reinstall them properly.
+    xmodmap - << EOF
+    clear mod1
+    keysym Mode_switch = NoSymbol
+    add mod1 = Meta_L
+    keysym Meta_R = Mode_switch
+    add mod2 = Mode_switch
+    EOF
+
+*** `Pid xxx killed due to text modification or page I/O error'
+
+On HP-UX, you can get that error when the Emacs executable is on an NFS
+file system.  HP-UX responds this way if it tries to swap in a page and
+does not get a response from the server within a timeout whose default
+value is just ten seconds.
+
+If this happens to you, extend the timeout period.
 
 
-** Shell mode on HP/UX gives the message, "`tty`: Ambiguous".
+*** Shell mode on HP-UX gives the message, "`tty`: Ambiguous".
 
 christos@theory.tn.cornell.edu says:
 
 
 christos@theory.tn.cornell.edu says:
 
@@ -1311,51 +1443,31 @@ if ("`tty`" == "/dev/console")
 Even better, move things that set up terminal sections out of .cshrc
 and into .login.
 
 Even better, move things that set up terminal sections out of .cshrc
 and into .login.
 
-** With process-connection-type set to t, each line of subprocess
-output is terminated with a ^M, making ange-ftp and GNUS not work.
-
-On SunOS systems, this problem has been seen to be a result of an
-incomplete installation of gcc 2.2 which allowed some non-ANSI
-compatible include files into the compilation.  In particular this
-affected virtually all ioctl() calls.
-
-** Once you pull down a menu from the menubar, it won't go away.
-
-It has been claimed that this is caused by a bug in certain very old
-(1990?)  versions of the twm window manager.  It doesn't happen with
-recent vintages, or with other window managers.
 
 
-** Emacs ignores the "help" key when running OLWM.
+** SCO
+*** Regular expressions matching bugs on SCO systems.
 
 
-OLWM grabs the help key, and retransmits it to the appropriate client
-using XSendEvent.  Allowing emacs to react to synthetic events is a
-security hole, so this is turned off by default.  You can enable it by
-setting the variable x-allow-sendevents to t.  You can also cause fix
-this by telling OLWM to not grab the help key, with the null binding
-"OpenWindows.KeyboardCommand.Help:".
-
-** Programs running under terminal emulator do not recognize `emacs'
-terminal type.
+On SCO, there are problems in regexp matching when Emacs is compiled
+with the system compiler.  The compiler version is "Microsoft C
+version 6", SCO 4.2.0h Dev Sys Maintenance Supplement 01/06/93; Quick
+C Compiler Version 1.00.46 (Beta).  The solution is to compile with
+GCC.
 
 
-The cause of this is a shell startup file that sets the TERMCAP
-environment variable.  The terminal emulator uses that variable to
-provide the information on the special terminal type that Emacs
-emulates.
 
 
-Rewrite your shell startup file so that it does not change TERMCAP
-in such a case.  You could use the following conditional which sets
-it only if it is undefined.
+** Windows
+*** Emacs exits with "X protocol error" when run with an X server for
+Windows.
 
 
-    if ( ! ${?TERMCAP} ) setenv TERMCAP ~/my-termcap-file
+A certain X server for Windows had a bug which caused this.
+Supposedly the newer 32-bit version of this server doesn't have the
+problem.
 
 
-Or you could set TERMCAP only when you set TERM--which should not
-happen in a non-login shell.
 
 
 * Compatibility problems (with Emacs 18, GNU Emacs, or previous XEmacs/lemacs)
 ==============================================================================
 
 
 
 * Compatibility problems (with Emacs 18, GNU Emacs, or previous XEmacs/lemacs)
 ==============================================================================
 
-** "Symbol's value as variable is void: unread-command-char".
+*** "Symbol's value as variable is void: unread-command-char".
  "Wrong type argument: arrayp, #<keymap 143 entries>"
  "Wrong type argument: stringp, [#<keypress-event return>]"
 
  "Wrong type argument: arrayp, #<keymap 143 entries>"
  "Wrong type argument: stringp, [#<keypress-event return>]"
 
index 2d3f904..014eb00 100644 (file)
@@ -74,16 +74,16 @@ The Sumo Tarball
 
 Those with little time, cheap connections and plenty of disk space can
 install all packages at once using the sumo tarballs.
 
 Those with little time, cheap connections and plenty of disk space can
 install all packages at once using the sumo tarballs.
-Download the files
+Download the file
 
 
-xemacs-sumo-<date>.tar.gz if you have a latin-1 XEmacs.
+xemacs-sumo-<date>.tar.gz 
 
 
-or
+For an XEmacs compiled with Mule you also need
 
 
-xemacs-mule-sumo-<date>.tar.gz if you have a MULE XEmacs.
+xemacs-mule-sumo-<date>.tar.gz
 
 
-N.B. There are called 'Sumo Tarballs' for good reason. They are
-currently 15MB and 23MB (gzipped) respectively.
+N.B. They are called 'Sumo Tarballs' for good reason. They are
+currently about 15MB and 2.3MB (gzipped) respectively.
 
 Install them by
 
 
 Install them by
 
@@ -120,7 +120,7 @@ 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.
 
 installing easier. It will notice if new packages or versions are
 available and will fetch them from the ftp site.
 
-Unfortunately this requires that a few packages are alreadyin place. 
+Unfortunately this requires that a few packages are already in place. 
 You will have to install them by hand as above or use a SUMO tarball. 
 This requirement will hopefully go away in the future. The packages
 you need are:
 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:
index c84a38b..ff5c7ae 100644 (file)
 dnl aclocal.m4 --- Dynamically linked library support for XEmacs
 dnl aclocal.m4 --- Dynamically linked library support for XEmacs
-dnl Copyright (C) 1998 Free Software Foundation, Inc.
-dnl Author: William Perry <wmperry@aventail.com>
-dnl This file is part of XEmacs
-
-AC_DEFUN(XE_MAKE_SHAREDLIB, [
-dll_ld="ld"
-dll_lflags="-shared"
-dll_cflags="-r"
-dll_oflags="-o "
-
-AC_MSG_CHECKING(how to build a shared library)
-case `uname -rs` in
-       UNIX_SV*|UNIX_System_V*)
-               dll_lflags="-G"
-               dll_cflags=-Kpic
-               dll_ld="ld"
-               ;;
-       BSD/OS*)
-               dll_cflags=
-               dll_lflags="-r"
-               dll_ld="shlicc2"
-               ;;
-       FreeBSD*2*)
-               dll_lflags="-Bshareable"
-               dll_cflags="-fPIC -DPIC"
-               dll_ld=ld
-               ;;
-       SunOS*4.*)
-               dll_cflags="-P"
-               dll_lflags="-dp -assert pure-text -assert nodefinitions"
-               ;;
-       SunOS*5.*)
-               dll_ld="cc"
-               dll_cflags="-KPIC"
-               dll_lflags="-G"
-               dll_oflags="-W0,-y-o -W0,-y"
-               ;;      
-       IRIX*5.*|IRIX*6.*)
-               dll_cflags="-KPIC"
-               ;;
-       OSF1*)
-               ;;
-       HP-UX*)
-               dll_ld="ld"
-               dll_lflags="-b"
-               dll_cflags="+z"
-               ;;
-       SCO_SV*)
-               dll_ld="ld"
-               dll_lflags="-G"
-               dll_cflags="-Kpic"
-               ;;
-       AIX*)
-               dll_lflags="-H512 -T512 -bhalt:4 -bM:SRE -bE:\${@:.ell=.exp} -b noentry -lc"
-               dll_ld="ld"
-               ;;
-       *)
-               ;;
-       esac
-
-       if test "$GCC" = "yes" ; then
-               dll_cflags="-fPIC"
-               case `uname -rs` in
-               SunOS*5.*)
-                       dll_ld="ld"
-                       dll_oflags="-o "
-                       dll_lflags="-G"
-                       ;;
-               SCO_SV*)
-                       dll_ld="ld"
-                       dll_lflags="-G"
-                       dll_cflags="-b elf"
-                       ;;
-               FreeBSD*)
-                       dll_cflags="-DDLSYM_NEEDS_UNDERSCORE -DPIC -fPIC"
-                       dll_lflags="-Bshareable"
-                       dll_ld=ld
-                       ;;
-               BSD/OS*)
-                       dll_cflags=
-                       dll_lflags="-r"
-                       dll_ld="shlicc2"
-                       ;;
-               UNIX_SV*)
-                       dll_cflags="-fPIC"
-                       ;;
-               *)
-                       dll_ld="$CC"
-                       dll_lflags="-shared"
-               esac
-       fi
-
-       AC_MSG_RESULT("lflags: $dll_lflags cflags: $dll_cflags")
+dnl Copyright (C) 1998, 1999 J. Kean Johnston.
+dnl Author: J. Kean Johnston <jkj@sco.com>, based on work in libtool.
+dnl This file is part of XEmacs.
+
+dnl
+dnl There are several things we care about here. First, we need to find
+dnl out how we create an executable that has its symbols exported, so
+dnl that dynamically loaded modules have access to the internal XEmacs
+dnl symbols. This is stored in ``ld_dynamic_link_flags'' and is used
+dnl in the main Makefile.
+dnl Next, we need to know how we compile actual shared libraries, and
+dnl the objects in them.  For these purposes, we need to determine the
+dnl C compiler flags used to produce shared objects (``dll_cflags''),
+dnl what linker to use to create the final shared object that will be
+dnl loaded (``dll_ld'') and the flags to pass to that linker
+dnl (``dll_ldflags''). This information is used by ellcc to build up
+dnl the command line when compiling modules. We build up two other commands
+dnl for extremely weird systems where special things need to be done.
+dnl The first is ``dll_ldo'', which is the flag used to specify the output
+dnl file name, and the second is ``dll_post'' which is inserted after the
+dnl list of objects.
+dnl After all of this, we should be able to:
+dnl    $(CC) $(CFLAGS) $(dll_cflags) -c module.c
+dnl to produce a single shared object
+dnl And then:
+dnl   $(dll_ld) $(dll_ldflags) $(dll_ldo) module.ell module.o $(dll_post)
+dnl to create the loadable shared library.
+dnl
+dnl NOTE: In the code below, where I have modified things to work with
+dnl XEmacs, we use $canonical instead of libtool's $host, and we use
+dnl $internal_configuration instead of $host_alias. To make typing
+dnl shorter we assign these to $xehost and $xealias
+
+AC_DEFUN(XE_SHLIB_STUFF,[
+dll_ld=
+dll_ldflags=
+dll_cflags=
+dll_post=
+dll_ldo="-o"
+ld_dynamic_link_flags=
+xehost=$canonical
+xealias=$internal_configuration
+
+AC_CHECKING([how to build dynamic libraries for ${xehost}])
+# Transform *-*-linux* to *-*-linux-gnu*, to support old configure scripts.
+case "$xehost" in
+*-*-linux-gnu*) ;;
+*-*-linux*) xehost=`echo $xehost | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
+esac
+
+changequote(<<, >>)dnl
+xehost_cpu=`echo $xehost | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+xehost_vendor=`echo $xehost | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+xehost_os=`echo $xehost | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+changequote([, ])dnl
+
+case "$xehost_os" in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test "${COLLECT_NAMES+set}" != set; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Now see if the compiler is really GCC.
+if test "$GCC" = "yes"; then
+  XEGCC=yes
+else
+  AC_MSG_CHECKING(checking whether we are using GNU C)
+  AC_EGREP_CPP(yes,[
+#ifdef __GNUC__
+  yes;
+#endif
+],XEGCC=yes, XEGCC=no)
+  AC_MSG_RESULT([${XEGCC}])
+fi
+
+AC_MSG_CHECKING(how to produce PIC code)
+wl=
+
+can_build_shared=yes
+if test "$XEGCC" = yes; then
+  wl='-Wl,'
+
+  case "$xehost_os" in
+  aix3* | aix4* | irix5* | irix6* | osf3* | osf4*)
+    # PIC is the default for these OSes.
+    ;;
+
+  os2*)
+    # We can build DLLs from non-PIC.
+    ;;
+  amigaos*)
+    # FIXME: we need at least 68020 code to build shared libraries, but
+    # adding the `-m68020' flag to GCC prevents building anything better,
+    # like `-m68040'.
+    dll_cflags='-m68020 -resident32 -malways-restore-a4'
+    ;;
+  *)
+    dll_cflags='-fPIC'
+    ;;
+  esac
+else
+  # PORTME Check for PIC flags for the system compiler.
+  case "$xehost_os" in
+  hpux9* | hpux10*)
+    # Is there a better link_static_flag that works with the bundled CC?
+    wl='-Wl,'
+    dll_cflags='+Z'
+    ;;
+
+  irix5* | irix6*)
+    wl='-Wl,'
+    # PIC (with -KPIC) is the default.
+    ;;
+
+  os2*)
+    # We can build DLLs from non-PIC.
+    ;;
+
+  osf3* | osf4*)
+    # All OSF/1 code is PIC.
+    wl='-Wl,'
+    ;;
+
+  sco3.2v5*)
+    dll_cflags='-belf -Kpic'
+    wl='-Wl,'
+    ;;
+
+  unixware*)
+    dll_cflags="-KPIC"
+    wl="-Wl,"
+    ;;
+
+  sysv4*)
+    dll_cflags="-KPIC"
+    wl="-Wl,"
+    ;;
+
+  sysv5*)
+    dll_cflags="-KPIC"
+    wl="-Wl,"
+    ;;
+
+  solaris2*)
+    dll_cflags='-KPIC'
+    wl='-Wl,'
+    ;;
+
+  sunos4*)
+    dll_cflags='-PIC'
+    wl='-Qoption ld '
+    ;;
+
+  uts4*)
+    dll_cflags='-pic'
+    ;;
+
+  *)
+    can_build_shared=no
+    ;;
+  esac
+fi
+
+if test -n "$dll_cflags"; then
+  AC_MSG_RESULT([${dll_cflags}])
+  
+  # Check to make sure the dll_cflags actually works.
+  AC_MSG_CHECKING([if PIC flag ${dll_cflags} really works])
+  save_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS $dll_cflags -DPIC"
+  AC_TRY_COMPILE(,[int x=0;],[
+    # On HP-UX, the stripped-down bundled CC doesn't accept +Z, but also
+    # reports no error.  So, we need to grep stderr for (Bundled).
+    if grep '(Bundled)' config.log >/dev/null; then
+      AC_MSG_RESULT(no)
+      can_build_shared=no
+      dll_cflags=
+    else
+      AC_MSG_RESULT(yes)
+    fi], [AC_MSG_RESULT(no)
+    can_build_shared=no
+    dll_cflags=])
+  CFLAGS="$save_CFLAGS"
+else
+  AC_MSG_RESULT(none)
+fi
+
+dnl
+dnl Now comes the LD trickery. We do things differently to libtool here.
+dnl I believe that libtool is incorrect in trying to drive the linker
+dnl directly. This can cause considerable problems if the module you are
+dnl compiling has C++ or other static initializers. If we use ld directly,
+dnl we dont end up with the crt stuff being linked in, and we dont end up
+dnl with any .init or .fini sections (or the moral equivalent thereof).
+dnl gcc takes great care to do this propperly when invoked in -shared
+dnl mode, and we really do want this behaviour. Perhaps the libtool folks
+dnl are not aware that any SVR4 based dynamic loader will automatically
+dnl execute code in the .init section before dlopen() returns. This is
+dnl vital, as the module may have been compiled to rely on that behaviour.
+dnl
+dnl So, having said all of that, we diverge from libtool significantly
+dnl here. We want to try and use the C compiler as much as possible. Only
+dnl if the C compiler itself cannot create shared libraries to we try to
+dnl find the linker.
+dnl
+dnl The other advantage to my scheme is that it removes the dependancy
+dnl on a given compiler version remaining static with relation to the
+dnl version of XEmacs. With the libtool way, it picks up the linker that
+dnl gcc uses, which can be the internal collect2 that comes with gcc.
+dnl If the user ever changes their compiler version, the paths will no
+dnl longer be correct, and ellcc will break. This is clearly unacceptable.
+dnl By using the compiler driver on the path, we dont have this problem.
+dnl If that is not clear, consider that gcc -print-prog-name=ld can
+dnl produce something along the lines of:
+dnl   /usr/local/lib/gcc-lib/OS-NAME/GCC-VERSION/ld
+dnl If you ever change GCC versions, then that path no longer exists.
+dnl
+dnl So, we change the check order here. We first check to see if we are
+dnl using GCC, and if so, we see if -shared works. If it does, great.
+dnl If we are not using gcc, but the system C compiler can produce
+dnl shared objects, we try that. Only if all of that fails do we revert
+dnl back to the libtool ld trickery.
+dnl
+dnl We dont do ANY of this if we can't produce shared objects.
+dnl
+if test "$can_build_shared" = "yes"; then
+cc_produces_so=no
+xldf=
+xcldf=
+AC_MSG_CHECKING(if C compiler can produce shared libraries)
+if test "$XEGCC" = yes; then
+  xcldf="-shared"
+  xldf="-shared"
+else # Not using GCC
+  case "$xehost_os" in
+    aix3* | aix4*)
+      xldf="-bE:ELLSONAME.exp -H512 -T512 -bhalt:4 -bM:SRE -bnoentry -lc"
+      xcldf="${wl}-bE:ELLSONAME.exp ${wl}-H512 ${wl}-T512 ${wl}-bhalt:4 ${wl}-bM:SRE ${wl}-bnoentry ${wl}-lc"
+      ;;
+
+    freebsd2* | netbsd* | openbsd*)
+      xldf="-Bshareable"
+      xcldf="${wl}-Bshareable"
+      ;;
+
+    freebsd3*)
+      xcldf="-shared"
+      ;;
+
+    hpux*)
+      xldf="-b +s"
+      xcldf="${wl}-b ${wl}+s"
+      ;;
+
+    irix5* | irix6* | osf3* | osf4*)
+      xcldf="${wl}-shared"
+      xldf="-shared"
+      ;;
+
+    sco3.2v5* | unixware* | sysv5* | sysv4* | solaris2* | solaris7* | uts4*)
+      xcldf="-G"
+      xldf="-G"
+      ;;
+
+    sunos4*)
+      xcldf="${wl}-assert ${wl}pure-text ${wl}-Bstatic"
+      xldf="-assert pure-text -Bstatic"
+      ;;
+  esac
+fi # End if if we are using gcc
+
+if test -n "$xcldf"; then
+  save_LDFLAGS=$LDFLAGS
+  save_LIBS=$LIBS
+  save_xe_libs=$xe_libs
+  LDFLAGS="$xcldf $LDFLAGS"
+  LIBS=
+  xe_libs=
+  ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&AC_FD_CC'
+  AC_TRY_LINK(,[int x=0;],cc_produces_so=yes,cc_produces_so=no)
+  LDFLAGS=$save_LDFLAGS
+  LIBS=$save_LIBS
+  xe_libs=$save_xe_libs
+  ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&AC_FD_CC'
+else
+  cc_produces_so=no
+fi
+AC_MSG_RESULT([${cc_produces_so}])
+
+LTLD=$LD
+if test -z "$LTLD"; then
+  ac_prog=ld
+  if test "$XEGCC" = yes; then
+    # Check if gcc -print-prog-name=ld gives a path.
+    AC_MSG_CHECKING(for ld used by GCC)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5`
+    case "$ac_prog" in
+    # Accept absolute paths.
+    /*)
+      if test -z "$LTLD"; then
+        case "$ac_prog" in
+          *gcc-lib*) LTLD="$CC"
+                     ;;
+          *)         LTLD="$ac_prog"
+                     ;;
+        esac
+      fi
+      ;;
+    "")
+      # If it fails, then pretend we aren't using GCC.
+      ac_prog=ld
+      ;;
+    *)
+      # If it is relative, then search for the first ld in PATH.
+      with_gnu_ld=unknown
+      ;;
+    esac
+  else
+    AC_MSG_CHECKING(for GNU ld)
+  fi
+
+  if test -z "$LTLD"; then
+    IFS="${IFS=        }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+    for ac_dir in $PATH; do
+      test -z "$ac_dir" && ac_dir=.
+      if test -f "$ac_dir/$ac_prog"; then
+        LTLD="$ac_dir/$ac_prog"
+        # Check to see if the program is GNU ld.  I'd rather use --version,
+        # but apparently some GNU ld's only accept -v.
+        # Break only if it was the GNU/non-GNU ld that we prefer.
+        if "$LTLD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
+          xe_gnu_ld=yes
+        else
+          xe_gnu_ld=no
+        fi
+      fi
+    done
+    IFS="$ac_save_ifs"
+  fi
+
+  if test -n "$LTLD"; then
+    AC_MSG_RESULT([${LTLD}])
+  else
+    AC_MSG_RESULT(no)
+  fi
+
+  if test -z "$LTLD" -a "$cc_produces_so" = no; then
+    AC_MSG_ERROR(no acceptable linker found in \$PATH)
+    exit 1
+  fi
+fi
+
+dnl
+dnl Order of the tests changed somewhat to prevent repetition
+dnl
+ld_dynamic_link_flags=
+
+# Check to see if it really is or isn't GNU ld.
+AC_MSG_CHECKING(if the linker is GNU ld)
+# 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
+else
+  xe_gnu_ld=no
+fi
+AC_MSG_RESULT([${xe_gnu_ld}])
+
+case "$xehost_os" in
+  amigaos* | sunos4*)
+    # On these operating systems, we should treat GNU ld like the system ld.
+    gnu_ld_acts_native=yes
+    ;;
+  *)
+    gnu_ld_acts_native=no
+    ;;
+esac
+
+if test "$cc_produces_so" = "yes"; then
+  dll_ld=$CC
+  dll_ldflags=$xcldf
+  can_build_shared=yes
+else
+  # OK - only NOW do we futz about with ld.
+  # See if the linker supports building shared libraries.
+  AC_MSG_CHECKING(whether the linker supports shared libraries)
+  dll_ld=$CC
+  dll_ldflags=$LDFLAGS
+  ld_shlibs=yes
+  can_build_shared=yes
+  if test "$xe_gnu_ld" = yes && test "$gnu_ld_acts_native" != yes; then
+    # See if GNU ld supports shared libraries.
+    if $LTLD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+      dll_ld=$CC
+      dll_ldflags="-shared"
+      ld_shlibs=yes
+    else
+      ld_shlibs=no
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case "$xehost_os" in
+    aix3*)
+      dll_ld=$LTLD
+      dll_ldflags=$xldf
+      ;;
+
+    aix4*)
+      dll_ldflags=$xcldf
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # doesn't break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      dll_ld=$LTLD
+      dll_ldflags=$xldf
+      dll_post="/usr/lib/c++rt0.o"
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 don't have this feature.
+    freebsd2*)
+      dll_ld=$LTLD
+      dll_ldflags="-Bshareable"
+      ;;
+
+    # FreeBSD 3, at last, uses gcc -shared to do shared libraries.
+    freebsd3*)
+      dll_ldflags="-shared"
+      ;;
+
+    hpux*)
+      dll_ld=$LTLD
+      dll_ldflags=$xldf
+      ;;
+
+    irix5* | irix6*)
+      dll_ld=$LTLD
+      dll_ldflags=$xldf
+      ;;
+
+    netbsd*)
+      # Tested with NetBSD 1.2 ld
+      dll_ld=$LTLD
+      dll_ldflags=$xldf
+      ;;
+
+    openbsd*)
+      dll_ld=$LTLD
+      dll_ldflags=$xldf
+      ;;
+
+    osf3* | osf4*)
+      dll_ld=$LTLD
+      dll_ldflags=$xldf
+      ;;
+
+    # For both SCO and Solaris we MAY want to have LDFLAGS include -z text
+    sco3.2v5* | unixware* | sysv5* | sysv4* | solaris2* | solaris7*)
+      dll_ld=$LTLD
+      case "$dll_ld" in
+        *gcc*) dll_ldflags="-shared"
+               dll_ld=$CC
+               ;;
+        *)     dll_ldflags="-G"
+               ;;
+      esac
+      ;;
+
+    sunos4*)
+      if test "$XEGCC" = yes; then
+        dll_ld=$CC
+      else
+        dll_ld=$LTLD
+      fi
+      dll_ldflags=$xldf
+      ;;
+
+    uts4*)
+      dll_ld=$LTLD
+      dll_ldflags="-G"
+      ;;
+
+    bsdi*)
+      dll_ldflags="-r"
+      dll_ld="shlicc2"
+      ;;
+
+    *)
+      ld_shlibs=no
+      can_build_shared=no
+      ;;
+    esac
+  fi
+  AC_MSG_RESULT([${ld_shlibs}])
+  if test "$ld_shlibs" = "no"; then
+    can_build_shared=no
+  fi
+fi # End of if cc_produces_so = no
+
+dnl
+dnl Last thing, check how to get a linked executable to have its symbols
+dnl exported, so that the modules have access to them.
+dnl
+dnl XEmacs FIXME - we need to set ld_dynamic_link_flags propperly for
+dnl most of these systems, which was missing from libtool. I know they
+dnl all have a way of doing this, but someone needs to look at this
+dnl for each OS and make sure it is correct. Remember that the arguments
+dnl are passed when temacs is linked, this is NOT for modules. The sole
+dnl purpose of the argument is to get the internal XEmacs symbols exposed
+dnl for modules to use. This means that the COMPILER (and NOT the linker)
+dnl is most often used to create temacs, so arguments to the linker will
+dnl usually need to be prefix with ${wl} or some other such thing.
+dnl
+
+if test "$xe_gnu_ld" = yes; then
+  if test "$ld_shlibs" = yes; then
+    ld_dynamic_link_flags="${wl}-export-dynamic"
+  fi
+fi
+
+if test -z "$ld_dynamic_link_flags"; then
+  case "$xehost_os" in
+  aix3*)
+    ld_dynamic_link_flags=
+    ;;
+
+  aix4*)
+    ld_dynamic_link_flags=
+    ;;
+
+  freebsd2.2*)
+    ld_dynamic_link_flags=
+    ;;
+
+  freebsd2*)
+    ld_dynamic_link_flags=
+    ;;
+
+  freebsd3*)
+    ld_dynamic_link_flags=
+    ;;
+
+  hpux*)
+    ld_dynamic_link_flags="${wl}-E"
+    ;;
+
+  irix5* | irix6*)
+    ld_dynamic_link_flags=
+    ;;
+
+  netbsd*)
+    ld_dynamic_link_flags=
+    ;;
+
+  openbsd*)
+    ld_dynamic_link_flags=
+    ;;
+
+  osf3* | osf4*)
+    ld_dynamic_link_flags=
+    ;;
+
+  solaris2* | solaris7*)
+    ld_dynamic_link_flags="${wl}-Bdynamic"
+    ;;
+
+  sco3.2v5* | unixware* | sysv5* | sysv4*)
+    ld_dynamic_link_flags="${wl}-Bexport"
+    ;;
+
+  sunos4*)
+    ld_dynamic_link_flags=
+    ;;
+
+  uts4*)
+    ld_dynamic_link_flags=
+    ;;
+
+  bsdi*)
+    ld_dynamic_link_flags=
+    ;;
+
+  esac
+fi # End of if -z ld_dynamic_link_flags
+fi # End of if test "$can_build_shared" = "yes"
+
 AC_SUBST(dll_ld)
 AC_SUBST(dll_cflags)
 AC_SUBST(dll_ld)
 AC_SUBST(dll_cflags)
-AC_SUBST(dll_oflags)
-AC_SUBST(dll_lflags)
+AC_SUBST(dll_ldflags)
+AC_SUBST(dll_post)
+AC_SUBST(dll_ldo)
+AC_SUBST(ld_dynamic_link_flags)
 ])dnl
 ])dnl
+
index ed660fb..6e82336 100755 (executable)
@@ -112,6 +112,9 @@ EOF
     amiga:OpenBSD:*:*)
        echo m68k-unknown-openbsd${UNAME_RELEASE}
        exit 0 ;;
     amiga:OpenBSD:*:*)
        echo m68k-unknown-openbsd${UNAME_RELEASE}
        exit 0 ;;
+    *:[Aa]miga[Oo][Ss]:*:*)
+       echo ${UNAME_MACHINE}-unknown-amigaos
+       exit 0 ;;
     arc64:OpenBSD:*:*)
        echo mips64el-unknown-openbsd${UNAME_RELEASE}
        exit 0 ;;
     arc64:OpenBSD:*:*)
        echo mips64el-unknown-openbsd${UNAME_RELEASE}
        exit 0 ;;
@@ -139,7 +142,7 @@ EOF
     SR2?01:HI-UX/MPP:*:*)
        echo hppa1.1-hitachi-hiuxmpp
        exit 0;;
     SR2?01:HI-UX/MPP:*:*)
        echo hppa1.1-hitachi-hiuxmpp
        exit 0;;
-    Pyramid*:OSx*:*:*|MIS*:OSx*:*:*)
+    Pyramid*:OSx*:*:*|MIS*:OSx*:*:*|MIS*:SMP_DC-OSx*:*:*)
        # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
        if test "`(/bin/universe) 2>/dev/null`" = att ; then
                echo pyramid-pyramid-sysv3
        # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
        if test "`(/bin/universe) 2>/dev/null`" = att ; then
                echo pyramid-pyramid-sysv3
@@ -219,6 +222,9 @@ EOF
     powerpc:machten:*:*)
        echo powerpc-apple-machten${UNAME_RELEASE}
        exit 0 ;;
     powerpc:machten:*:*)
        echo powerpc-apple-machten${UNAME_RELEASE}
        exit 0 ;;
+    macppc:NetBSD:*:*)
+        echo powerpc-apple-netbsd${UNAME_RELEASE}
+        exit 0 ;;
     RISC*:Mach:*:*)
        echo mips-dec-mach_bsd4.3
        exit 0 ;;
     RISC*:Mach:*:*)
        echo mips-dec-mach_bsd4.3
        exit 0 ;;
@@ -324,7 +330,8 @@ EOF
        fi
        exit 0 ;;
     *:AIX:*:4)
        fi
        exit 0 ;;
     *:AIX:*:4)
-       if /usr/sbin/lsattr -EHl proc0 | grep POWER >/dev/null 2>&1; then
+       IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
+       if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep POWER >/dev/null 2>&1; then
                IBM_ARCH=rs6000
        else
                IBM_ARCH=powerpc
                IBM_ARCH=rs6000
        else
                IBM_ARCH=powerpc
@@ -357,12 +364,44 @@ EOF
     hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
        echo m68k-hp-bsd4.4
        exit 0 ;;
     hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
        echo m68k-hp-bsd4.4
        exit 0 ;;
-    9000/[3478]??:HP-UX:*:*)
+    9000/[34678]??:HP-UX:*:*)
        case "${UNAME_MACHINE}" in
            9000/31? )            HP_ARCH=m68000 ;;
            9000/[34]?? )         HP_ARCH=m68k ;;
        case "${UNAME_MACHINE}" in
            9000/31? )            HP_ARCH=m68000 ;;
            9000/[34]?? )         HP_ARCH=m68k ;;
-           9000/7?? | 9000/8?[1679] ) HP_ARCH=hppa1.1 ;;
-           9000/8?? )            HP_ARCH=hppa1.0 ;;
+           9000/6?? | 9000/7?? | 9000/80[24] | 9000/8?[13679] | 9000/892 )
+              sed 's/^              //' << EOF >dummy.c
+              #include <stdlib.h>
+              #include <unistd.h>
+              
+              int main ()
+              {
+              #if defined(_SC_KERNEL_BITS)
+                  long bits = sysconf(_SC_KERNEL_BITS);
+              #endif 
+                  long cpu  = sysconf (_SC_CPU_VERSION);
+              
+                  switch (cpu) 
+               {
+               case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+               case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+               case CPU_PA_RISC2_0: 
+              #if defined(_SC_KERNEL_BITS)
+                   switch (bits) 
+                       {
+                       case 64: puts ("hppa2.0w"); break;
+                       case 32: puts ("hppa2.0n"); break;
+                       default: puts ("hppa2.0"); break;
+                       } break;
+              #else  /* !defined(_SC_KERNEL_BITS) */
+                   puts ("hppa2.0"); break;
+              #endif 
+               default: puts ("hppa1.0"); break;
+               }
+                  exit (0);
+              }
+EOF
+       ${CC-cc} dummy.c -o dummy && HP_ARCH=`./dummy`
+       rm -f dummy.c dummy
        esac
        HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
        echo ${HP_ARCH}-hp-hpux${HPUX_REV}
        esac
        HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
        echo ${HP_ARCH}-hp-hpux${HPUX_REV}
@@ -468,6 +507,9 @@ EOF
     hp300:OpenBSD:*:*)
        echo m68k-unknown-openbsd${UNAME_RELEASE}
        exit 0 ;;
     hp300:OpenBSD:*:*)
        echo m68k-unknown-openbsd${UNAME_RELEASE}
        exit 0 ;;
+    sparc*:BSD/OS:*:*)
+       echo sparc-unknown-bsdi${UNAME_RELEASE}
+       exit 0 ;;
     i?86:BSD/386:*:* | *:BSD/OS:*:*)
        echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
        exit 0 ;;
     i?86:BSD/386:*:* | *:BSD/OS:*:*)
        echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
        exit 0 ;;
@@ -662,6 +704,13 @@ EOF
                echo ${UNAME_MACHINE}-pc-sysv32
        fi
        exit 0 ;;
                echo ${UNAME_MACHINE}-pc-sysv32
        fi
        exit 0 ;;
+    i?86:UnixWare:*:*)
+       if /bin/uname -X 2>/dev/null >/dev/null ; then
+         (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
+           && UNAME_MACHINE=i586
+       fi
+       echo ${UNAME_MACHINE}-unixware-${UNAME_RELEASE}-${UNAME_VERSION}
+       exit 0 ;;
     pc:*:*:*)
         # uname -m prints for DJGPP always 'pc', but it prints nothing about
         # the processor, so we play safe by assuming i386.
     pc:*:*:*)
         # uname -m prints for DJGPP always 'pc', but it prints nothing about
         # the processor, so we play safe by assuming i386.
@@ -745,13 +794,22 @@ EOF
     news*:NEWS-OS:*:6*)
        echo mips-sony-newsos6
        exit 0 ;;
     news*:NEWS-OS:*:6*)
        echo mips-sony-newsos6
        exit 0 ;;
-    R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:*)
+    R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R4000:UNIX_SV:*:*)
        if [ -d /usr/nec ]; then
                echo mips-nec-sysv${UNAME_RELEASE}
        else
                echo mips-unknown-sysv${UNAME_RELEASE}
        fi
         exit 0 ;;
        if [ -d /usr/nec ]; then
                echo mips-nec-sysv${UNAME_RELEASE}
        else
                echo mips-unknown-sysv${UNAME_RELEASE}
        fi
         exit 0 ;;
+    BeBox:BeOS:*:*)    # BeOS running on hardware made by Be, PPC only.
+       echo powerpc-be-beos
+       exit 0 ;;
+    BeMac:BeOS:*:*)    # BeOS running on Mac or Mac clone, PPC only.
+       echo powerpc-apple-beos
+       exit 0 ;;
+    BePC:BeOS:*:*)     # BeOS running on Intel PC compatible.
+       echo i586-pc-beos
+       exit 0 ;;
 esac
 
 #echo '(No uname command or uname output not recognized.)' 1>&2
 esac
 
 #echo '(No uname command or uname output not recognized.)' 1>&2
index 8fef96a..f791166 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Configuration validation subroutine script, version 1.1.
 #! /bin/sh
 # Configuration validation subroutine script, version 1.1.
-#   Copyright (C) 1991, 92, 93, 94, 95, 1996 Free Software Foundation, Inc.
+#   Copyright (C) 1991, 92-97, 1998 Free Software Foundation, Inc.
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
 # can handle that machine.  It does not imply ALL GNU software can.
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
 # can handle that machine.  It does not imply ALL GNU software can.
@@ -20,8 +20,6 @@
 # Foundation, Inc., 59 Temple Place - Suite 330,
 # Boston, MA 02111-1307, USA.
 
 # Foundation, Inc., 59 Temple Place - Suite 330,
 # Boston, MA 02111-1307, USA.
 
-# Synched up with: FSF 19.31.
-
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
 # configuration script generated by Autoconf, you may include it under
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
 # configuration script generated by Autoconf, you may include it under
@@ -43,6 +41,8 @@
 # The goal of this file is to map all the various variations of a given
 # machine specification into a single specification in the form:
 #      CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
 # The goal of this file is to map all the various variations of a given
 # machine specification into a single specification in the form:
 #      CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+#      CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
 # It is wrong to echo any other type of specification.
 
 if [ x$1 = x ]
 # It is wrong to echo any other type of specification.
 
 if [ x$1 = x ]
@@ -64,11 +64,21 @@ case $1 in
        ;;
 esac
 
        ;;
 esac
 
-# Separate what the user gave into CPU-COMPANY and OS (if any).
-basic_machine=`echo $1 | sed 's/-[^-]*$//'`
-if [ $basic_machine != $1 ]
-then os=`echo $1 | sed 's/.*-/-/'`
-else os=; fi
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+  linux-gnu*)
+    os=-$maybe_os
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+    ;;
+  *)
+    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+    if [ $basic_machine != $1 ]
+    then os=`echo $1 | sed 's/.*-/-/'`
+    else os=; fi
+    ;;
+esac
 
 ### Let's recognize common machines as not being operating systems so
 ### that things like config.sub decstation-3100 work.  We also
 
 ### Let's recognize common machines as not being operating systems so
 ### that things like config.sub decstation-3100 work.  We also
@@ -93,33 +103,33 @@ case $os in
                ;;
        -sco5)
                os=sco3.2v5
                ;;
        -sco5)
                os=sco3.2v5
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
                ;;
        -sco4)
                os=-sco3.2v4
                ;;
        -sco4)
                os=-sco3.2v4
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
                ;;
        -sco3.2.[4-9]*)
                os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
                ;;
        -sco3.2.[4-9]*)
                os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
                ;;
        -sco3.2v[4-9]*)
                # Don't forget version if it is 3.2v4 or newer.
                ;;
        -sco3.2v[4-9]*)
                # Don't forget version if it is 3.2v4 or newer.
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
                ;;
        -sco*)
                os=-sco3.2v2
                ;;
        -sco*)
                os=-sco3.2v2
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
                ;;
        -isc)
                os=-isc2.2
                ;;
        -isc)
                os=-isc2.2
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
                ;;
        -clix*)
                basic_machine=clipper-intergraph
                ;;
        -isc*)
                ;;
        -clix*)
                basic_machine=clipper-intergraph
                ;;
        -isc*)
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
                ;;
        -lynx*)
                os=-lynxos
                ;;
        -lynx*)
                os=-lynxos
@@ -139,32 +149,40 @@ esac
 case $basic_machine in
        # Recognize the basic CPU types without company name.
        # Some are omitted here because they have special meanings below.
 case $basic_machine in
        # Recognize the basic CPU types without company name.
        # Some are omitted here because they have special meanings below.
-       tahoe | i[3-9]86 | i860 | m68k | m68000 | m88k | ns32k | arm \
-               | arme[lb] | pyramid \
-               | tron | a29k | 580 | i960 | h8300 | hppa1.0 | hppa1.1 \
-               | alpha | we32k | mab | ns16k | clipper | i370 | sh \
-               | powerpc | powerpcle | 1750a | dsp16xx | mips64 | mipsel \
-               | pdp11 | mips64el | mips64orion | mips64orionel \
-               | sparc | sparclet | sparclite | sparc64)
+       tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
+               | arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \
+               | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 | hppa2.0 \
+               | alpha | alphaev5 | alphaev56 | we32k | ns16k | clipper \
+               | i370 | sh | powerpc | powerpcle | 1750a | dsp16xx | pdp11 \
+               | mips64 | mipsel | mips64el | mips64orion | mips64orionel \
+               | mipstx39 | mipstx39el \
+               | sparc | sparclet | sparclite | sparc64 | v850)
                basic_machine=$basic_machine-unknown
                ;;
                basic_machine=$basic_machine-unknown
                ;;
+       # 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)
+         basic_machine=$basic_machine-pc
+         ;;
        # Object if more than one company name word.
        *-*-*)
                echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
                exit 1
                ;;
        # Recognize the basic CPU types with company name.
        # Object if more than one company name word.
        *-*-*)
                echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
                exit 1
                ;;
        # Recognize the basic CPU types with company name.
-       vax-* | tahoe-* | i[3-9]86-* | i860-* | m68k-* | m68000-* | m88k-* \
-             | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \
-             | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \
-             | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \
-             | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \
-             | pn-* | np1-* | xps100-* | clipper-* | orion-* | sparclite-* \
-             | pdp11-* | sh-* | powerpc-* | powerpcle-* | sparc64-* | mips64-* | mipsel-* \
-             | mips64el-* | mips64orion-* | mips64orionel-* | mab-*)
-               ;;
-       # Recognize names of some NetBSD ports.
-       amiga-* | hp300-* | mac68k-* | sun3-* | pmax-*)
+       vax-* | tahoe-* | i[34567]86-* | i860-* | m32r-* | m68k-* | m68000-* \
+             | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \
+             | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
+             | power-* | none-* | 580-* | cray2-* | h8300-* | i960-* \
+             | xmp-* | ymp-* | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* \
+             | alpha-* | alphaev5-* | alphaev56-* | we32k-* | cydra-* \
+             | ns16k-* | pn-* | np1-* | xps100-* | clipper-* | orion-* \
+             | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
+             | sparc64-* | mips64-* | mipsel-* \
+             | mips64el-* | mips64orion-* | mips64orionel-*  \
+             | mipstx39-* | mipstx39el-* \
+             | f301-*)
                ;;
        # Recognize the various machine names and aliases which stand
        # for a CPU type and a company and sometimes even an OS.
                ;;
        # Recognize the various machine names and aliases which stand
        # for a CPU type and a company and sometimes even an OS.
@@ -191,9 +209,9 @@ case $basic_machine in
        amiga | amiga-*)
                basic_machine=m68k-cbm
                ;;
        amiga | amiga-*)
                basic_machine=m68k-cbm
                ;;
-       amigados)
+       amigaos | amigados)
                basic_machine=m68k-cbm
                basic_machine=m68k-cbm
-               os=-amigados
+               os=-amigaos
                ;;
        amigaunix | amix)
                basic_machine=m68k-cbm
                ;;
        amigaunix | amix)
                basic_machine=m68k-cbm
@@ -207,10 +225,6 @@ case $basic_machine in
                basic_machine=m68k-apple
                os=-aux
                ;;
                basic_machine=m68k-apple
                os=-aux
                ;;
-       aux)
-               basic_machine=m68k-apple
-               os=-aux
-               ;;
        balance)
                basic_machine=ns32k-sequent
                os=-dynix
        balance)
                basic_machine=ns32k-sequent
                os=-dynix
@@ -328,25 +342,28 @@ case $basic_machine in
        hp9k8[0-9][0-9] | hp8[0-9][0-9])
                basic_machine=hppa1.0-hp
                ;;
        hp9k8[0-9][0-9] | hp8[0-9][0-9])
                basic_machine=hppa1.0-hp
                ;;
+       hppa-next)
+               os=-nextstep3
+               ;;
        i370-ibm* | ibm*)
                basic_machine=i370-ibm
                os=-mvs
                ;;
 # I'm not sure what "Sysv32" means.  Should this be sysv3.2?
        i370-ibm* | ibm*)
                basic_machine=i370-ibm
                os=-mvs
                ;;
 # I'm not sure what "Sysv32" means.  Should this be sysv3.2?
-       i[3-9]86v32)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'`
+       i[34567]86v32)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
                os=-sysv32
                ;;
                os=-sysv32
                ;;
-       i[3-9]86v4*)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'`
+       i[34567]86v4*)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
                os=-sysv4
                ;;
                os=-sysv4
                ;;
-       i[3-9]86v)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'`
+       i[34567]86v)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
                os=-sysv
                ;;
                os=-sysv
                ;;
-       i[3-9]86sol2)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'`
+       i[34567]86sol2)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
                os=-solaris2
                ;;
        iris | iris4d)
                os=-solaris2
                ;;
        iris | iris4d)
@@ -377,6 +394,14 @@ case $basic_machine in
        miniframe)
                basic_machine=m68000-convergent
                ;;
        miniframe)
                basic_machine=m68000-convergent
                ;;
+       mipsel*-linux*)
+               basic_machine=mipsel-unknown
+               os=-linux-gnu
+               ;;
+       mips*-linux*)
+               basic_machine=mips-unknown
+               os=-linux-gnu
+               ;;
        mips3*-*)
                basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
                ;;
        mips3*-*)
                basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
                ;;
@@ -442,34 +467,25 @@ case $basic_machine in
                basic_machine=m68k-tti
                ;;
         pc532 | pc532-*)
                basic_machine=m68k-tti
                ;;
         pc532 | pc532-*)
-               case $os in
-                   -netbsd*)
-                       basic_machine=pc532-unknown
-                       ;;
-                   *)
-                       basic_machine=ns32k-pc532
-                       ;;
-               esac
+               basic_machine=ns32k-pc532
+               ;;
+       pentium | p5 | k5 | nexen)
+               basic_machine=i586-pc
                ;;
                ;;
-       pentium | p5)
-               basic_machine=i586-intel
+       pentiumpro | p6 | k6 | 6x86)
+               basic_machine=i686-pc
                ;;
                ;;
-       pentiumpro | p6)
-               basic_machine=i686-intel
+       pentiumii | pentium2)
+               basic_machine=i786-pc
                ;;
                ;;
-       pentium-* | p5-*)
+       pentium-* | p5-* | k5-* | nexen-*)
                basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
                basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
-       pentiumpro-* | p6-*)
+       pentiumpro-* | p6-* | k6-* | 6x86-*)
                basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
                basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
-       k5)
-               # We don't have specific support for AMD's K5 yet, so just call it a Pentium
-               basic_machine=i586-amd
-               ;;
-       nexen)
-               # We don't have specific support for Nexgen yet, so just call it a Pentium
-               basic_machine=i586-nexgen
+       pentiumii-* | pentium2-*)
+               basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
        pn)
                basic_machine=pn-gould
                ;;
        pn)
                basic_machine=pn-gould
@@ -553,6 +569,12 @@ case $basic_machine in
                basic_machine=i386-sequent
                os=-dynix
                ;;
                basic_machine=i386-sequent
                os=-dynix
                ;;
+       tx39)
+               basic_machine=mipstx39-unknown
+               ;;
+       tx39el)
+               basic_machine=mipstx39el-unknown
+               ;;
        tower | tower-32)
                basic_machine=m68k-ncr
                ;;
        tower | tower-32)
                basic_machine=m68k-ncr
                ;;
@@ -572,6 +594,9 @@ case $basic_machine in
                basic_machine=vax-dec
                os=-vms
                ;;
                basic_machine=vax-dec
                os=-vms
                ;;
+       vpp*|vx|vx-*)
+               basic_machine=f301-fujitsu
+               ;;
        vxworks960)
                basic_machine=i960-wrs
                os=-vxworks
        vxworks960)
                basic_machine=i960-wrs
                os=-vxworks
@@ -599,7 +624,11 @@ case $basic_machine in
 # Here we handle the default manufacturer of certain CPU types.  It is in
 # some cases the only manufacturer, in others, it is the most popular.
        mips)
 # Here we handle the default manufacturer of certain CPU types.  It is in
 # some cases the only manufacturer, in others, it is the most popular.
        mips)
-               basic_machine=mips-mips
+               if [ x$os = x-linux-gnu ]; then
+                       basic_machine=mips-unknown
+               else
+                       basic_machine=mips-mips
+               fi
                ;;
        romp)
                basic_machine=romp-ibm
                ;;
        romp)
                basic_machine=romp-ibm
@@ -651,6 +680,8 @@ esac
 if [ x"$os" != x"" ]
 then
 case $os in
 if [ x"$os" != x"" ]
 then
 case $os in
+        # First match some system type aliases
+        # that might get confused with valid system types.
        # -solaris* is a basic system type, with this one exception.
        -solaris1 | -solaris1.*)
                os=`echo $os | sed -e 's|solaris1|sunos4|'`
        # -solaris* is a basic system type, with this one exception.
        -solaris1 | -solaris1.*)
                os=`echo $os | sed -e 's|solaris1|sunos4|'`
@@ -658,29 +689,37 @@ case $os in
        -solaris)
                os=-solaris2
                ;;
        -solaris)
                os=-solaris2
                ;;
-       -unixware* | svr4*)
+       -svr4*)
                os=-sysv4
                ;;
                os=-sysv4
                ;;
+       -unixware*)
+               os=-sysv4.2uw
+               ;;
        -gnu/linux*)
        -gnu/linux*)
-               os=`echo $os | sed -e 's|gnu/linux|linux|'`
+               os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
                ;;
        # First accept the basic system types.
        # The portable systems comes first.
        # Each alternative MUST END IN A *, to match a version number.
        # -sysv* is not here because it comes later, after sysvr4.
        -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
                ;;
        # First accept the basic system types.
        # The portable systems comes first.
        # Each alternative MUST END IN A *, to match a version number.
        # -sysv* is not here because it comes later, after sysvr4.
        -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-             | -vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[345]* \
+             | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
              | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
              | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
-             | -amigados* | -msdos* | -newsos* | -unicos* | -aof* | -aos* \
-             | -nindy* | -vxworks* | -ebmon* | -hms* | -mvs* | -clix* \
-             | -riscos* | -linux* | -uniplus* | -iris* | -rtu* | -xenix* \
-             | -hiux* | -386bsd* | -netbsd* | -freebsd* | -riscix* \
+             | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+             | -aos* \
+             | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+             | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+             | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
              | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \
              | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
              | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
              | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \
              | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
              | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-             | -cygwin32* | -pe* | -psos* | -moss* | -openbsd* )
+             | -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+             | -mingw32* | -linux-gnu* | -uxpv* | -beos*)
        # Remember, each alternative MUST END IN *, to match a version number.
                ;;
        # Remember, each alternative MUST END IN *, to match a version number.
                ;;
+       -linux*)
+               os=`echo $os | sed -e 's|linux|linux-gnu|'`
+               ;;
        -sunos5*)
                os=`echo $os | sed -e 's|sunos5|solaris2|'`
                ;;
        -sunos5*)
                os=`echo $os | sed -e 's|sunos5|solaris2|'`
                ;;
@@ -788,6 +827,9 @@ case $basic_machine in
        sparc-* | *-sun)
                os=-sunos4.1.1
                ;;
        sparc-* | *-sun)
                os=-sunos4.1.1
                ;;
+       *-be)
+               os=-beos
+               ;;
        *-ibm)
                os=-aix
                ;;
        *-ibm)
                os=-aix
                ;;
@@ -801,7 +843,7 @@ case $basic_machine in
                os=-sysv
                ;;
        *-cbm)
                os=-sysv
                ;;
        *-cbm)
-               os=-amigados
+               os=-amigaos
                ;;
        *-dg)
                os=-dgux
                ;;
        *-dg)
                os=-dgux
@@ -851,6 +893,9 @@ case $basic_machine in
        *-masscomp)
                os=-rtu
                ;;
        *-masscomp)
                os=-rtu
                ;;
+       f301-fujitsu)
+               os=-uxpv
+               ;;
        *)
                os=-none
                ;;
        *)
                os=-none
                ;;
@@ -869,9 +914,6 @@ case $basic_machine in
                        -sunos*)
                                vendor=sun
                                ;;
                        -sunos*)
                                vendor=sun
                                ;;
-                       -lynxos*)
-                               vendor=lynx
-                               ;;
                        -aix*)
                                vendor=ibm
                                ;;
                        -aix*)
                                vendor=ibm
                                ;;
@@ -899,14 +941,12 @@ case $basic_machine in
                        -ptx*)
                                vendor=sequent
                                ;;
                        -ptx*)
                                vendor=sequent
                                ;;
-                       -vxworks*)
+                       -vxsim* | -vxworks*)
                                vendor=wrs
                                ;;
                        -aux*)
                                vendor=apple
                                ;;
                                vendor=wrs
                                ;;
                        -aux*)
                                vendor=apple
                                ;;
-                       -aux*)
-                               vendor=apple
                esac
                basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
                ;;
                esac
                basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
                ;;
index 0beba52..8e677b0 100755 (executable)
--- a/configure
+++ b/configure
@@ -7,6 +7,7 @@
 #### Copyright (C) 1993-1995 Board of Trustees, University of Illinois.
 #### Copyright (C) 1996, 1997 Sun Microsystems, Inc.
 #### Copyright (C) 1995, 1996 Ben Wing.
 #### Copyright (C) 1993-1995 Board of Trustees, University of Illinois.
 #### Copyright (C) 1996, 1997 Sun Microsystems, Inc.
 #### Copyright (C) 1995, 1996 Ben Wing.
+#### Copyright (C) 1998, 1999 J. Kean Johnston.
 
 ### Don't edit this script!
 ### This script was automatically generated by the `autoconf' program
 
 ### Don't edit this script!
 ### This script was automatically generated by the `autoconf' program
@@ -228,17 +229,20 @@ infodir='${datadir}/${PROGNAME}-${version}/info'
 infopath=''
 install_pp=''
 lispdir='${datadir}/${PROGNAME}-${version}/lisp'
 infopath=''
 install_pp=''
 lispdir='${datadir}/${PROGNAME}-${version}/lisp'
+moduledir='${datadir}/${PROGNAME}-${version}/${configuration}/modules'
+sitelispdir='${datadir}/xemacs/site-lisp'
+sitemoduledir='${datadir}/xemacs/site-modules'
 pkgdir='${datadir}/${PROGNAME}-${version}/lisp'
 package_path=''
 etcdir='${datadir}/${PROGNAME}-${version}/etc'
 lockdir='${statedir}/${PROGNAME}/lock'
 pkgdir='${datadir}/${PROGNAME}-${version}/lisp'
 package_path=''
 etcdir='${datadir}/${PROGNAME}-${version}/etc'
 lockdir='${statedir}/${PROGNAME}/lock'
-archlibdir='${libdir}/${PROGNAME}-${version}/${configuration}'
+archlibdir='${datadir}/${PROGNAME}-${version}/${configuration}'
 with_site_lisp='no'
 with_site_lisp='no'
+with_site_modules='yes'
 with_menubars=''
 with_scrollbars=''
 with_dialogs=''
 with_file_coding=''
 with_menubars=''
 with_scrollbars=''
 with_dialogs=''
 with_file_coding=''
-puresize=''
 cpp='' cppflags='' libs='' ldflags=''
 dynamic=''
 with_x11=''
 cpp='' cppflags='' libs='' ldflags=''
 dynamic=''
 with_x11=''
@@ -299,13 +303,12 @@ while test $# != 0; do
 
             case "$opt" in
 
 
             case "$opt" in
 
-       run_in_place    | \
-        with_site_lisp  | \
+       with_site_lisp  | \
+    with_site_modules | \
        with_x          | \
        with_x11        | \
        with_msw        | \
        with_gcc        | \
        with_x          | \
        with_x11        | \
        with_msw        | \
        with_gcc        | \
-       with_gnu_make   | \
        dynamic         | \
        with_ncurses    | \
        with_dnet       | \
        dynamic         | \
        with_ncurses    | \
        with_dnet       | \
@@ -322,19 +325,20 @@ while test $# != 0; do
        with_tiff       | \
        with_session    | \
        with_xmu        | \
        with_tiff       | \
        with_session    | \
        with_xmu        | \
+       with_purify     | \
        with_quantify   | \
        with_toolbars   | \
        with_tty        | \
        with_xfs        | \
        with_i18n3      | \
        with_mule       | \
        with_quantify   | \
        with_toolbars   | \
        with_tty        | \
        with_xfs        | \
        with_i18n3      | \
        with_mule       | \
-       with_file_coding        | \
+       with_file_coding| \
        with_canna      | \
        with_wnn        | \
        with_wnn6       | \
        with_workshop   | \
        with_sparcworks | \
        with_canna      | \
        with_wnn        | \
        with_wnn6       | \
        with_workshop   | \
        with_sparcworks | \
-       with_tooltalk   | \
+       with_tooltalk   | \
        with_ldap       | \
        with_pop        | \
        with_kerberos   | \
        with_ldap       | \
        with_pop        | \
        with_kerberos   | \
@@ -345,26 +349,22 @@ while test $# != 0; do
        verbose         | \
        extra_verbose   | \
        const_is_losing | \
        verbose         | \
        extra_verbose   | \
        const_is_losing | \
-       usage_tracking  | \
-       use_union_type  | \
+       usage_tracking  | \
+       use_union_type  | \
        debug           | \
        use_assertions  | \
        debug           | \
        use_assertions  | \
-       use_minimal_tagbits                     | \
-       use_indexed_lrecord_implementation      | \
-       gung_ho         | \
-       use_assertions  | \
        memory_usage_stats | \
        with_clash_detection | \
        with_shlib | \
        no_doc_file )
                  case "$val" in
            y | ye | yes )      val=yes ;;
        memory_usage_stats | \
        with_clash_detection | \
        with_shlib | \
        no_doc_file )
                  case "$val" in
            y | ye | yes )      val=yes ;;
-           n | no )            val=no  ;;
+           n | no )            val=no  ;;
            * ) (echo "$progname: Usage error:"
 echo " " "The \`--$optname' option requires a boolean value: \`yes' or \`no'."
 echo "  Use \`$progname --help' to show usage.") >&2 && exit 1 ;;
          esac
            * ) (echo "$progname: Usage error:"
 echo " " "The \`--$optname' option requires a boolean value: \`yes' or \`no'."
 echo "  Use \`$progname --help' to show usage.") >&2 && exit 1 ;;
          esac
-          eval "$opt=\"$val\"" ;;
+         eval "$opt=\"$val\"" ;;
 
 
                        srcdir          | \
 
 
                        srcdir          | \
@@ -374,9 +374,8 @@ echo "  Use \`$progname --help' to show usage.") >&2 && exit 1 ;;
        cppflags        | \
        libs            | \
        ldflags         | \
        cppflags        | \
        libs            | \
        ldflags         | \
-       puresize        | \
        cache_file      | \
        cache_file      | \
-       native_sound_lib | \
+       native_sound_lib| \
        site_lisp       | \
        x_includes      | \
        x_libraries     | \
        site_lisp       | \
        x_includes      | \
        x_libraries     | \
@@ -425,7 +424,7 @@ echo "  Use \`$progname --help' to show usage.") >&2 && exit 1 ;;
                * ) (echo "$progname: Usage error:"
 echo " " "The \`--$optname' option value
   must be either \`no' or a comma-separated list
                * ) (echo "$progname: Usage error:"
 echo " " "The \`--$optname' option value
   must be either \`no' or a comma-separated list
-  of one or more of \`berkdb', \`dbm', or \`gnudbm'."
+  of one or more of \`berkdb' and either \`dbm' or \`gnudbm'."
 echo "  Use \`$progname --help' to show usage.") >&2 && exit 1 ;;
             esac
          done
 echo "  Use \`$progname --help' to show usage.") >&2 && exit 1 ;;
             esac
          done
@@ -467,18 +466,6 @@ echo "  Use \`$progname --help' to show usage.") >&2 && exit 1 ;;
           eval "$opt=\"$val\""
         ;;
 
           eval "$opt=\"$val\""
         ;;
 
-               "with_xfs" )
-         case "$val" in
-         y | ye | yes )                val=yes ;;
-         n | no | non | none )         val=no  ;;
-         * ) (echo "$progname: Usage error:"
-echo " " "The \`--$optname' option must have one of these values:
- \`yes', or \`no'."
-echo "  Use \`$progname --help' to show usage.") >&2 && exit 1 ;;
-         esac
-         eval "$opt=\"$val\""
-       ;;
-
                "mail_locking" )
          case "$val" in
            lockf )     val=lockf ;;
                "mail_locking" )
          case "$val" in
            lockf )     val=lockf ;;
@@ -542,7 +529,7 @@ echo "  Use \`$progname --help' to show usage.") >&2 && exit 1
                                
                prefix | exec_prefix | bindir | datadir | statedir | libdir | \
        mandir | infodir | infopath | lispdir | etcdir | lockdir | pkgdir | \
                                
                prefix | exec_prefix | bindir | datadir | statedir | libdir | \
        mandir | infodir | infopath | lispdir | etcdir | lockdir | pkgdir | \
-       archlibdir | docdir | package_path )    
+       archlibdir | docdir | package_path )
                   if test "$valomitted" = "yes"; then
             if test "$#" = 0; then
                 (echo "$progname: Usage error:"
                   if test "$valomitted" = "yes"; then
             if test "$#" = 0; then
                 (echo "$progname: Usage error:"
@@ -562,6 +549,22 @@ cat >> confdefs.h <<\EOF
 EOF
 }
  ;;
 EOF
 }
  ;;
+             sitelispdir ) { test "$extra_verbose" = "yes" && cat << \EOF
+    Defining SITELISPDIR_USER_DEFINED
+EOF
+cat >> confdefs.h <<\EOF
+#define SITELISPDIR_USER_DEFINED 1
+EOF
+}
+ ;;
+             moduledir ) { test "$extra_verbose" = "yes" && cat << \EOF
+    Defining MODULEDIR_USER_DEFINED
+EOF
+cat >> confdefs.h <<\EOF
+#define MODULEDIR_USER_DEFINED 1
+EOF
+}
+ ;;
              etcdir  )  { test "$extra_verbose" = "yes" && cat << \EOF
     Defining ETCDIR_USER_DEFINED
 EOF
              etcdir  )  { test "$extra_verbose" = "yes" && cat << \EOF
     Defining ETCDIR_USER_DEFINED
 EOF
@@ -611,6 +614,14 @@ cat >> confdefs.h <<\EOF
 EOF
 }
 
 EOF
 }
 
+            { test "$extra_verbose" = "yes" && cat << \EOF
+    Defining MODULEDIR_USER_DEFINED
+EOF
+cat >> confdefs.h <<\EOF
+#define MODULEDIR_USER_DEFINED 1
+EOF
+}
+
                { test "$extra_verbose" = "yes" && cat << \EOF
     Defining ETCDIR_USER_DEFINED
 EOF
                { test "$extra_verbose" = "yes" && cat << \EOF
     Defining ETCDIR_USER_DEFINED
 EOF
@@ -642,7 +653,9 @@ EOF
 
                "usage" | "help" ) ${PAGER-more} ${srcdir}/configure.usage; exit 0 ;;
 
 
                "usage" | "help" ) ${PAGER-more} ${srcdir}/configure.usage; exit 0 ;;
 
-                       "with_menubars" | "with_scrollbars" | "with_dialogs" )
+               "with_menubars"   | \
+       "with_scrollbars" | \
+       "with_dialogs" )
          case "$val" in
            l | lu | luc | luci | lucid )               val=lucid  ;;
            m | mo | mot | moti | motif )               val=motif  ;;
          case "$val" in
            l | lu | luc | luci | lucid )               val=lucid  ;;
            m | mo | mot | moti | motif )               val=motif  ;;
@@ -657,6 +670,11 @@ echo "  Use \`$progname --help' to show usage.") >&2 && exit 1 ;;
          eval "$opt=\"$val\""
        ;;
 
          eval "$opt=\"$val\""
        ;;
 
+               "run_in_place"  | \
+       "with_gnu_make" )
+         echo "configure: warning: Obsolete option \`--$optname' ignored." 1>&2
+       ;;
+
                * ) (echo "$progname: Usage error:"
 echo " " "Unrecognized option: $arg"
 echo "  Use \`$progname --help' to show usage.") >&2 && exit 1 ;;
                * ) (echo "$progname: Usage error:"
 echo " " "Unrecognized option: $arg"
 echo "  Use \`$progname --help' to show usage.") >&2 && exit 1 ;;
@@ -683,25 +701,10 @@ eval set x "$quoted_arguments"; shift
 
 test "$extra_verbose" = "yes" && verbose=yes
 
 
 test "$extra_verbose" = "yes" && verbose=yes
 
-case "$site_includes" in *:* ) site_includes="`echo '' $site_includes | sed -e 's/^ //' -e 's/:/ /g'`";; esac
-case "$site_libraries" in *:* ) site_libraries="`echo '' $site_libraries | sed -e 's/^ //' -e 's/:/ /g'`";; esac
-case "$site_prefixes" in *:* ) site_prefixes="`echo '' $site_prefixes | sed -e 's/^ //' -e 's/:/ /g'`";; esac
-case "$site_runtime_libraries" in *:* ) site_runtime_libraries="`echo '' $site_runtime_libraries | sed -e 's/^ //' -e 's/:/ /g'`";; esac
-
 test -n "$with_x" && with_x11="$with_x"
 
 test -n "$with_x" && with_x11="$with_x"
 
-
-if test -n "$gung_ho"; then
-  test -z "$use_minimal_tagbits" && use_minimal_tagbits="$gung_ho"
-  test -z "$use_indexed_lrecord_implementation" && \
-    use_indexed_lrecord_implementation="$gung_ho"
-fi
-if test "$use_minimal_tagbits" = "no"; then
-  test "$with_dlmalloc" = "yes" && \
-    (echo "$progname: Usage error:"
-echo " " "--with-dlmalloc requires --use-minimal-tagbits"
-echo "  Use \`$progname --help' to show usage.") >&2 && exit 1
-  with_dlmalloc=no
+if test "$with_purify" = "yes" -o "$with_quantify" = "yes"; then
+  test "$with_system_malloc" = "default" && with_system_malloc=yes
 fi
 
 
 fi
 
 
@@ -715,10 +718,6 @@ elif test "$with_cde" = "yes"; then with_tooltalk=yes
 fi
 
 
 fi
 
 
-if test "$run_in_place" = "yes"; then
-  echo "configure: warning: "The --run-in-place option is ignored because it is unnecessary."" 1>&2
-fi
-
 case "$srcdir" in
 
     "" )
 case "$srcdir" in
 
     "" )
@@ -754,13 +753,8 @@ echo "  Use \`$progname --help' to show usage.") >&2 && exit 1
 esac
 
 if test -z "$configuration"; then
 esac
 
 if test -z "$configuration"; then
-  echo $ac_n "checking "host system type"""... $ac_c" 1>&6
-echo "configure:759: checking "host system type"" >&5
-    if configuration=`${CONFIG_SHELL-/bin/sh} $srcdir/config.guess | \
-    sed 's/^\([^-][^-]*-[^-][^-]*-[^-][^-]*\)-.*$/\1/'` ; then
-    echo "$ac_t""$configuration" 1>&6
-  else
-    echo "$ac_t""unknown" 1>&6
+    configuration=`${CONFIG_SHELL-/bin/sh} $srcdir/config.guess`
+  if test -z "$configuration"; then
     (echo "$progname: Usage error:"
 echo " " "XEmacs has not been ported to this host type.
 Try explicitly specifying the CONFIGURATION when rerunning configure."
     (echo "$progname: Usage error:"
 echo " " "XEmacs has not been ported to this host type.
 Try explicitly specifying the CONFIGURATION when rerunning configure."
@@ -769,7 +763,7 @@ echo "  Use \`$progname --help' to show usage.") >&2 && exit 1
 fi
 
 echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:773: checking whether ln -s works" >&5
+echo "configure:767: checking whether ln -s works" >&5
 
 rm -f conftestdata
 if ln -s X conftestdata 2>/dev/null
 
 rm -f conftestdata
 if ln -s X conftestdata 2>/dev/null
@@ -794,17 +788,26 @@ for dir in lisp etc man info; do
   fi
 done
 
   fi
 done
 
+
 absolute_pwd="`pwd`";
 if test -n "$PWD" -a "`cd $PWD && pwd`" = "$absolute_pwd"
 then blddir="$PWD"
 absolute_pwd="`pwd`";
 if test -n "$PWD" -a "`cd $PWD && pwd`" = "$absolute_pwd"
 then blddir="$PWD"
-else blddir="$absolute_pwd"
+else blddir="$absolute_pwd"; if test -d "/net"; then
+  if test -d "/tmp_mnt/net"; then tdir="tmp_mnt/net"; else tdir="tmp_mnt"; fi
+  blddir=`echo "$blddir" | \
+   sed -e "s|^${tdir}/|/net/|" -e "s|^/a/|/net/|" -e "s|^/amd/|/net/|"`
+fi
 fi
 
 
 case "$srcdir" in
   /* ) ;;
   .  ) srcdir="$blddir" ;;
 fi
 
 
 case "$srcdir" in
   /* ) ;;
   .  ) srcdir="$blddir" ;;
-  *  ) srcdir="`cd $srcdir && pwd`" ;;
+  *  ) srcdir="`cd $srcdir && pwd`"; if test -d "/net"; then
+  if test -d "/tmp_mnt/net"; then tdir="tmp_mnt/net"; else tdir="tmp_mnt"; fi
+  srcdir=`echo "$srcdir" | \
+   sed -e "s|^${tdir}/|/net/|" -e "s|^/a/|/net/|" -e "s|^/amd/|/net/|"`
+fi ;;
 esac
 
 if test `pwd` != `sh -c cd $srcdir && pwd`  \
 esac
 
 if test `pwd` != `sh -c cd $srcdir && pwd`  \
@@ -984,12 +987,13 @@ EOF
 
 
 
 
 
 
-echo "checking "the configuration name"" 1>&6
-echo "configure:989: checking "the configuration name"" >&5
+echo $ac_n "checking "host system type"""... $ac_c" 1>&6
+echo "configure:992: checking "host system type"" >&5
 internal_configuration=`echo $configuration | sed 's/-\(workshop\)//'`
 internal_configuration=`echo $configuration | sed 's/-\(workshop\)//'`
-if canonical=`$srcdir/config.sub "$internal_configuration"` ; then : ; else
-  exit $?
-fi
+canonical=`${CONFIG_SHELL-/bin/sh} $srcdir/config.sub "$internal_configuration"`
+configuration=`echo "$configuration" | sed 's/^\([^-][^-]*-[^-][^-]*-[^-][^-]*\)-.*$/\1/'`
+canonical=`echo "$canonical" | sed 's/^\([^-][^-]*-[^-][^-]*-[^-][^-]*\)-.*$/\1/'`
+echo "$ac_t""$configuration" 1>&6
 
 
 
 
 
 
@@ -999,7 +1003,7 @@ machine='' opsys=''
 
 case "$canonical" in
   sparc-*-*        ) machine=sparc ;;
 
 case "$canonical" in
   sparc-*-*        ) machine=sparc ;;
-  alpha-*-*        ) machine=alpha ;;
+  alpha*-*-*       ) machine=alpha ;;
   vax-*-*          ) machine=vax ;;
   mips-dec-*       ) machine=pmax ;;
   mips-sgi-*       ) machine=iris4d ;;
   vax-*-*          ) machine=vax ;;
   mips-dec-*       ) machine=pmax ;;
   mips-sgi-*       ) machine=iris4d ;;
@@ -1012,6 +1016,8 @@ case "$canonical" in
   m68*-sony-*      ) machine=news ;;
   mips-sony-*      ) machine=news-risc ;;
   clipper-*        ) machine=clipper ;;
   m68*-sony-*      ) machine=news ;;
   mips-sony-*      ) machine=news-risc ;;
   clipper-*        ) machine=clipper ;;
+  arm-*            ) machine=arm ;;
+  ns32k-*          ) machine=ns32000 ;;
 esac
 
 case "$canonical" in
 esac
 
 case "$canonical" in
@@ -1034,9 +1040,9 @@ case "$canonical" in
     *-*-aix3.1*  ) opsys=aix3-1        ;;
   *-*-aix3.2.5 ) opsys=aix3-2-5        ;;
   *-*-aix3*    ) opsys=aix3-2  ;;
     *-*-aix3.1*  ) opsys=aix3-1        ;;
   *-*-aix3.2.5 ) opsys=aix3-2-5        ;;
   *-*-aix3*    ) opsys=aix3-2  ;;
-  *-*-aix4.2*  ) opsys=aix4-2  ;;
+  *-*-aix4.0*  ) opsys=aix4    ;;
   *-*-aix4.1*  ) opsys=aix4-1  ;;
   *-*-aix4.1*  ) opsys=aix4-1  ;;
-  *-*-aix4*    ) opsys=aix4    ;;
+  *-*-aix4*    ) opsys=aix4-2  ;;
 
     *-gnu* )                   opsys=gnu    ;;
   *-*-bsd4.[01] )              opsys=bsd4-1 ;;
 
     *-gnu* )                   opsys=gnu    ;;
   *-*-bsd4.[01] )              opsys=bsd4-1 ;;
@@ -1074,13 +1080,9 @@ case "$canonical" in
 
     *-*-openbsd* )
     case "${canonical}" in
 
     *-*-openbsd* )
     case "${canonical}" in
-      alpha*-*-openbsd*)       machine=alpha ;;
       i386-*-openbsd*)         machine=intel386 ;;
       m68k-*-openbsd*)         machine=hp9000s300 ;;
       mipsel-*-openbsd*)       machine=pmax ;;
       i386-*-openbsd*)         machine=intel386 ;;
       m68k-*-openbsd*)         machine=hp9000s300 ;;
       mipsel-*-openbsd*)       machine=pmax ;;
-      ns32k-*-openbsd*)                machine=ns32000 ;;
-      sparc-*-openbsd*)                machine=sparc ;;
-      vax-*-openbsd*)          machine=vax ;;
      esac
    ;;
 
      esac
    ;;
 
@@ -1242,6 +1244,12 @@ case "$canonical" in
     NON_GNU_CPP=/usr/ccs/lib/cpp
   ;;
 
     NON_GNU_CPP=/usr/ccs/lib/cpp
   ;;
 
+    mips-nec-sysv*)
+    machine=mips-nec
+    NON_GNU_CC=/usr/ccs/bin/cc
+    NON_GNU_CPP=/usr/ccs/lib/cpp
+  ;;
+
       m68*-sgi-iris3.5* ) machine=irist opsys=iris3-5 ;;
   m68*-sgi-iris3.6* | m68*-sgi-iris*) machine=irist opsys=iris3-6 ;;
     mips-sgi-irix3.*    ) opsys=irix3-3 ;;
       m68*-sgi-iris3.5* ) machine=irist opsys=iris3-5 ;;
   m68*-sgi-iris3.6* | m68*-sgi-iris*) machine=irist opsys=iris3-6 ;;
     mips-sgi-irix3.*    ) opsys=irix3-3 ;;
@@ -1353,6 +1361,7 @@ EOF
       *-xenix* )               opsys=xenix ;;
       *-sco3.2v4* )            opsys=sco4 NON_GNU_CPP=/lib/cpp  ;;
       *-bsd386* | *-bsdi1* )   opsys=bsd386 ;;
       *-xenix* )               opsys=xenix ;;
       *-sco3.2v4* )            opsys=sco4 NON_GNU_CPP=/lib/cpp  ;;
       *-bsd386* | *-bsdi1* )   opsys=bsd386 ;;
+      *-bsdi4* )               opsys=bsdos4 ;;
       *-bsdi3* )               opsys=bsdos3 ;;
       *-bsdi2.1* )             opsys=bsdos2-1 ;;
       *-bsdi2* )               opsys=bsdos2 ;;
       *-bsdi3* )               opsys=bsdos3 ;;
       *-bsdi2.1* )             opsys=bsdos2-1 ;;
       *-bsdi2* )               opsys=bsdos2 ;;
@@ -1365,7 +1374,9 @@ EOF
       *-386bsd* )              opsys=386bsd ;;
       *-freebsd* )             opsys=freebsd ;;
       *-nextstep* )            opsys=nextstep ;;
       *-386bsd* )              opsys=386bsd ;;
       *-freebsd* )             opsys=freebsd ;;
       *-nextstep* )            opsys=nextstep ;;
-      *-pc-cygwin32 )          opsys=cygwin32 ;;
+      *-pc-cygwin* )           opsys=cygwin32 ;;
+      *-pc-mingw* )            opsys=mingw32 ;
+                               test -z "$with_tty" && with_tty="no";;
           esac
   ;;
 
           esac
   ;;
 
@@ -1382,7 +1393,7 @@ fi
 
 if test -z "$dynamic"; then
   case "$opsys" in
 
 if test -z "$dynamic"; then
   case "$opsys" in
-    hpux* | sunos4* | sco5 ) dynamic=no ;;
+    hpux* | sunos4* ) dynamic=no ;;
     *) dynamic=yes ;;
   esac
 fi
     *) dynamic=yes ;;
   esac
 fi
@@ -1469,7 +1480,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
 # 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:1473: checking for $ac_word" >&5
+echo "configure:1484: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -1495,7 +1506,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
   # 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:1499: checking for $ac_word" >&5
+echo "configure:1510: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -1540,7 +1551,7 @@ fi
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1544: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1555: 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'
 
 ac_ext=c
 xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS'
@@ -1552,11 +1563,11 @@ ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_
 cross_compiling=no
 
 cat > conftest.$ac_ext <<EOF
 cross_compiling=no
 
 cat > conftest.$ac_ext <<EOF
-#line 1556 "configure"
+#line 1567 "configure"
 #include "confdefs.h"
 main(){return(0);}
 EOF
 #include "confdefs.h"
 main(){return(0);}
 EOF
-if { (eval echo configure:1560: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1571: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
   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
@@ -1576,19 +1587,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: 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:1580: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1591: 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 "$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:1585: checking whether we are using GNU C" >&5
+echo "configure:1596: checking whether we are using GNU C" >&5
 
 cat > conftest.c <<EOF
 #ifdef __GNUC__
   yes;
 #endif
 EOF
 
 cat > conftest.c <<EOF
 #ifdef __GNUC__
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1592: \"$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:1603: \"$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
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -1602,7 +1613,7 @@ if test $ac_cv_prog_gcc = yes; then
   ac_save_CFLAGS="$CFLAGS"
   CFLAGS=
   echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
   ac_save_CFLAGS="$CFLAGS"
   CFLAGS=
   echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1606: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1617: checking whether ${CC-cc} accepts -g" >&5
 
 echo 'void f(){}' > conftest.c
 if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
 
 echo 'void f(){}' > conftest.c
 if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
@@ -1631,7 +1642,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
   # 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:1635: checking for $ac_word" >&5
+echo "configure:1646: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -1657,7 +1668,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
   # 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:1661: checking for $ac_word" >&5
+echo "configure:1672: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -1702,7 +1713,7 @@ fi
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1706: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1717: 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'
 
 ac_ext=c
 xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS'
@@ -1714,11 +1725,11 @@ ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_
 cross_compiling=no
 
 cat > conftest.$ac_ext <<EOF
 cross_compiling=no
 
 cat > conftest.$ac_ext <<EOF
-#line 1718 "configure"
+#line 1729 "configure"
 #include "confdefs.h"
 main(){return(0);}
 EOF
 #include "confdefs.h"
 main(){return(0);}
 EOF
-if { (eval echo configure:1722: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1733: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
   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
@@ -1738,19 +1749,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: 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:1742: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1753: 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 "$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:1747: checking whether we are using GNU C" >&5
+echo "configure:1758: checking whether we are using GNU C" >&5
 
 cat > conftest.c <<EOF
 #ifdef __GNUC__
   yes;
 #endif
 EOF
 
 cat > conftest.c <<EOF
 #ifdef __GNUC__
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1754: \"$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:1765: \"$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
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -1764,7 +1775,7 @@ if test $ac_cv_prog_gcc = yes; then
   ac_save_CFLAGS="$CFLAGS"
   CFLAGS=
   echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
   ac_save_CFLAGS="$CFLAGS"
   CFLAGS=
   echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1768: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1779: checking whether ${CC-cc} accepts -g" >&5
 
 echo 'void f(){}' > conftest.c
 if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
 
 echo 'void f(){}' > conftest.c
 if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
@@ -1793,7 +1804,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
   # 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:1797: checking for $ac_word" >&5
+echo "configure:1808: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -1819,7 +1830,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
   # 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:1823: checking for $ac_word" >&5
+echo "configure:1834: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -1864,7 +1875,7 @@ fi
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1868: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1879: 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'
 
 ac_ext=c
 xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS'
@@ -1876,11 +1887,11 @@ ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_
 cross_compiling=no
 
 cat > conftest.$ac_ext <<EOF
 cross_compiling=no
 
 cat > conftest.$ac_ext <<EOF
-#line 1880 "configure"
+#line 1891 "configure"
 #include "confdefs.h"
 main(){return(0);}
 EOF
 #include "confdefs.h"
 main(){return(0);}
 EOF
-if { (eval echo configure:1884: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1895: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
   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
@@ -1900,19 +1911,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: 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:1904: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1915: 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 "$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:1909: checking whether we are using GNU C" >&5
+echo "configure:1920: checking whether we are using GNU C" >&5
 
 cat > conftest.c <<EOF
 #ifdef __GNUC__
   yes;
 #endif
 EOF
 
 cat > conftest.c <<EOF
 #ifdef __GNUC__
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1916: \"$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:1927: \"$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
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -1926,7 +1937,7 @@ if test $ac_cv_prog_gcc = yes; then
   ac_save_CFLAGS="$CFLAGS"
   CFLAGS=
   echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
   ac_save_CFLAGS="$CFLAGS"
   CFLAGS=
   echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1930: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1941: checking whether ${CC-cc} accepts -g" >&5
 
 echo 'void f(){}' > conftest.c
 if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
 
 echo 'void f(){}' > conftest.c
 if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
@@ -1959,7 +1970,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
 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:1963: checking how to run the C preprocessor" >&5
+echo "configure:1974: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -1972,13 +1983,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
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 1976 "configure"
+#line 1987 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1982: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1993: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   :
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   :
@@ -1989,13 +2000,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 1993 "configure"
+#line 2004 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1999: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2010: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   :
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   :
@@ -2018,9 +2029,9 @@ echo "$ac_t""$CPP" 1>&6
 
 
 echo $ac_n "checking for AIX""... $ac_c" 1>&6
 
 
 echo $ac_n "checking for AIX""... $ac_c" 1>&6
-echo "configure:2022: checking for AIX" >&5
+echo "configure:2033: checking for AIX" >&5
 cat > conftest.$ac_ext <<EOF
 cat > conftest.$ac_ext <<EOF
-#line 2024 "configure"
+#line 2035 "configure"
 #include "confdefs.h"
 #ifdef _AIX
   yes
 #include "confdefs.h"
 #ifdef _AIX
   yes
@@ -2047,9 +2058,9 @@ rm -f conftest*
 
 
 echo $ac_n "checking for GNU libc""... $ac_c" 1>&6
 
 
 echo $ac_n "checking for GNU libc""... $ac_c" 1>&6
-echo "configure:2051: checking for GNU libc" >&5
+echo "configure:2062: checking for GNU libc" >&5
 cat > conftest.$ac_ext <<EOF
 cat > conftest.$ac_ext <<EOF
-#line 2053 "configure"
+#line 2064 "configure"
 #include "confdefs.h"
 #include <features.h>
 int main() {
 #include "confdefs.h"
 #include <features.h>
 int main() {
@@ -2061,7 +2072,7 @@ int main() {
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:2065: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2076: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   have_glibc=yes
 else
   rm -rf conftest*
   have_glibc=yes
 else
@@ -2081,31 +2092,35 @@ EOF
 }
 
 
 }
 
 
-echo $ac_n "checking whether we are using SunPro C""... $ac_c" 1>&6
-echo "configure:2086: checking whether we are using SunPro C" >&5
+
 cat > conftest.$ac_ext <<EOF
 cat > conftest.$ac_ext <<EOF
-#line 2088 "configure"
+#line 2098 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
-
-int main() {
-#ifndef __SUNPRO_C
-#error Not a  SunPro compiler :-(
-******* ======= ******** &&&&&&&&
+int main () {
+#if defined __SUNPRO_C
+return 11;
+#elif defined __DECC
+return 12;
+#else
+return 0;
 #endif
 #endif
-
-; return 0; }
+}
 EOF
 EOF
-if { (eval echo configure:2099: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  __sunpro_c=yes
+if { (eval echo configure:2110: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+then
+  :
 else
 else
+  conftest_rc="$?"
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  __sunpro_c=no
+  rm -fr conftest*
+  case "$conftest_rc" in
+  11) echo "You appear to be using the SunPro C compiler."; __SUNPRO_C=yes ;;
+  12) echo "You appear to be using the DEC C compiler."   ; __DECC=yes ;;
+esac
 fi
 fi
-rm -f conftest*
-echo "$ac_t""$__sunpro_c" 1>&6
+rm -fr conftest*
+
 
 
 
 
 
 
@@ -2264,9 +2279,15 @@ configure___ mail_use_lockf=yes
 configure___ mail_use_lockf=no
 #endif
 
 configure___ mail_use_lockf=no
 #endif
 
+#ifdef HAVE_WIN32_PROCESSES
+configure___ win32_processes=yes
+#else
+configure___ win32_processes=no
+#endif
+
 EOF
 
 EOF
 
-CPP=`eval "echo $CPP"`
+CPP=`eval "echo $CPP $CPPFLAGS"`
 eval `$CPP -Isrc $tempcname \
        | sed -n -e "s/[        ]*=[    \"]*/='/" -e "s/[       \"]*\$/'/" -e "s/^configure___//p"`
 
 eval `$CPP -Isrc $tempcname \
        | sed -n -e "s/[        ]*=[    \"]*/='/" -e "s/[       \"]*\$/'/" -e "s/^configure___//p"`
 
@@ -2277,20 +2298,22 @@ test "$extra_verbose" = "yes" && \
 
 test "$ordinary_link" = "no" -a -z "$libs_standard" && libs_standard="-lc"
 
 
 test "$ordinary_link" = "no" -a -z "$libs_standard" && libs_standard="-lc"
 
+test "$__DECC" = "yes" && c_switch_site="$c_switch_site -std" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"-std\" to \$c_switch_site"; fi
+
 if test "$cflags_specified" = "no"; then
       if   test "$GCC" = "yes"; then
     CFLAGS="-g -O3 -Wall -Wno-switch"
 if test "$cflags_specified" = "no"; then
       if   test "$GCC" = "yes"; then
     CFLAGS="-g -O3 -Wall -Wno-switch"
-                    test "$opsys $machine" = "cygwin32 intel386" && \
-      CFLAGS="-g -O2 -Wall -Wno-switch"
-  elif test "$__sunpro_c" = "yes"; then
+              elif test "$__SUNPRO_C" = "yes"; then
     case "$opsys" in
       sol2    ) CFLAGS="-v -xO4" ;;
       sunos4* ) CFLAGS="-xO2";;
     esac
     case "$opsys" in
       sol2    ) CFLAGS="-v -xO4" ;;
       sunos4* ) CFLAGS="-xO2";;
     esac
+  elif test "$__DECC" = "yes"; then
+    CFLAGS="-O3"
   elif test "$CC" = "xlc"; then
   elif test "$CC" = "xlc"; then
-    CFLAGS="-O3 -qstrict -qnoansialias -qlibansi -qinfo -qro -qmaxmem=20000"
-  else
-        CFLAGS="-O" ;  fi
+    CFLAGS="-g -O3 -qstrict -qnoansialias -qlibansi -qinfo -qro -qmaxmem=20000"
+    else
+    CFLAGS="-O" ;  fi
 fi
 
 
 fi
 
 
@@ -2298,8 +2321,8 @@ if test "$GCC" = "yes"; then
   set x $ld_switch_system; shift; ld_switch_system=""
   while test -n "$1"; do
     case $1 in
   set x $ld_switch_system; shift; ld_switch_system=""
   while test -n "$1"; do
     case $1 in
-      -L  | -l  | -u         ) ld_switch_system="$ld_switch_system $1 $2"; shift ;;
-      -L* | -l* | -u* | -Wl* ) ld_switch_system="$ld_switch_system $1" ;;
+      -L  | -l  | -u               ) ld_switch_system="$ld_switch_system $1 $2"; shift ;;
+      -L* | -l* | -u* | -Wl* | -pg ) ld_switch_system="$ld_switch_system $1" ;;
       -Xlinker* ) ;;
       * ) ld_switch_system="$ld_switch_system -Xlinker $1" ;;
     esac
       -Xlinker* ) ;;
       * ) ld_switch_system="$ld_switch_system -Xlinker $1" ;;
     esac
@@ -2311,8 +2334,8 @@ if test "$GCC" = "yes"; then
   set x $ld_switch_machine; shift; ld_switch_machine=""
   while test -n "$1"; do
     case $1 in
   set x $ld_switch_machine; shift; ld_switch_machine=""
   while test -n "$1"; do
     case $1 in
-      -L  | -l  | -u         ) ld_switch_machine="$ld_switch_machine $1 $2"; shift ;;
-      -L* | -l* | -u* | -Wl* ) ld_switch_machine="$ld_switch_machine $1" ;;
+      -L  | -l  | -u               ) ld_switch_machine="$ld_switch_machine $1 $2"; shift ;;
+      -L* | -l* | -u* | -Wl* | -pg ) ld_switch_machine="$ld_switch_machine $1" ;;
       -Xlinker* ) ;;
       * ) ld_switch_machine="$ld_switch_machine -Xlinker $1" ;;
     esac
       -Xlinker* ) ;;
       * ) ld_switch_machine="$ld_switch_machine -Xlinker $1" ;;
     esac
@@ -2324,8 +2347,8 @@ if test "$GCC" = "yes"; then
   set x $LDFLAGS; shift; LDFLAGS=""
   while test -n "$1"; do
     case $1 in
   set x $LDFLAGS; shift; LDFLAGS=""
   while test -n "$1"; do
     case $1 in
-      -L  | -l  | -u         ) LDFLAGS="$LDFLAGS $1 $2"; shift ;;
-      -L* | -l* | -u* | -Wl* ) LDFLAGS="$LDFLAGS $1" ;;
+      -L  | -l  | -u               ) LDFLAGS="$LDFLAGS $1 $2"; shift ;;
+      -L* | -l* | -u* | -Wl* | -pg ) LDFLAGS="$LDFLAGS $1" ;;
       -Xlinker* ) ;;
       * ) LDFLAGS="$LDFLAGS -Xlinker $1" ;;
     esac
       -Xlinker* ) ;;
       * ) LDFLAGS="$LDFLAGS -Xlinker $1" ;;
     esac
@@ -2337,8 +2360,8 @@ if test "$GCC" = "yes"; then
   set x $ld_call_shared; shift; ld_call_shared=""
   while test -n "$1"; do
     case $1 in
   set x $ld_call_shared; shift; ld_call_shared=""
   while test -n "$1"; do
     case $1 in
-      -L  | -l  | -u         ) ld_call_shared="$ld_call_shared $1 $2"; shift ;;
-      -L* | -l* | -u* | -Wl* ) ld_call_shared="$ld_call_shared $1" ;;
+      -L  | -l  | -u               ) ld_call_shared="$ld_call_shared $1 $2"; shift ;;
+      -L* | -l* | -u* | -Wl* | -pg ) ld_call_shared="$ld_call_shared $1" ;;
       -Xlinker* ) ;;
       * ) ld_call_shared="$ld_call_shared -Xlinker $1" ;;
     esac
       -Xlinker* ) ;;
       * ) ld_call_shared="$ld_call_shared -Xlinker $1" ;;
     esac
@@ -2357,7 +2380,7 @@ test -n "$unexec"          && extra_objs="$extra_objs $unexec" &&  if test "$ext
  fi
 
 echo $ac_n "checking for dynodump""... $ac_c" 1>&6
  fi
 
 echo $ac_n "checking for dynodump""... $ac_c" 1>&6
-echo "configure:2361: checking for dynodump" >&5
+echo "configure:2384: checking for dynodump" >&5
 if test "$unexec" != "unexsol2.o"; then
   echo "$ac_t""no" 1>&6
 else
 if test "$unexec" != "unexsol2.o"; then
   echo "$ac_t""no" 1>&6
 else
@@ -2395,12 +2418,12 @@ if test "$unexec" = "unexaix.o"; then
   done
   
 echo $ac_n "checking for terminateAndUnload in -lC""... $ac_c" 1>&6
   done
   
 echo $ac_n "checking for terminateAndUnload in -lC""... $ac_c" 1>&6
-echo "configure:2399: checking for terminateAndUnload in -lC" >&5
+echo "configure:2422: checking for terminateAndUnload in -lC" >&5
 ac_lib_var=`echo C'_'terminateAndUnload | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lC "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo C'_'terminateAndUnload | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lC "
 cat > conftest.$ac_ext <<EOF
-#line 2404 "configure"
+#line 2427 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2411,7 +2434,7 @@ int main() {
 terminateAndUnload()
 ; return 0; }
 EOF
 terminateAndUnload()
 ; return 0; }
 EOF
-if { (eval echo configure:2415: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2438: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2449,36 +2472,56 @@ test "$GCC" != "yes" && lib_gcc=
 
 
 
 
 
 
-if test -n "$site_prefixes"; then
-  for arg in $site_prefixes; do
-    case "$arg" in
-       -* ) ;;
-       * ) argi="-I${arg}/include" ; argl="-L${arg}/lib" ;;
-    esac
-    c_switch_site="$c_switch_site $argi" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"$argi\" to \$c_switch_site"; fi
-    ld_switch_site="$ld_switch_site $argl" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"$argl\" to \$ld_switch_site"; fi
-  done
-fi
-
+case "$site_libraries" in *:* ) site_libraries="`echo '' $site_libraries | sed -e 's/^ //' -e 's/:/ /g'`";; esac
 if test -n "$site_libraries"; then
   for arg in $site_libraries; do
 if test -n "$site_libraries"; then
   for arg in $site_libraries; do
-    case "$arg" in -* ) ;; * ) arg="-L${arg}" ;; esac
+    case "$arg" in
+     -* ) ;;
+     * ) test -d "$arg" || \
+           { echo "Error:" "Invalid site library \`$arg': no such directory" >&2; exit 1; }
+       arg="-L${arg}" ;;
+    esac
     ld_switch_site="$ld_switch_site $arg" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"$arg\" to \$ld_switch_site"; fi
   done
 fi
 
     ld_switch_site="$ld_switch_site $arg" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"$arg\" to \$ld_switch_site"; fi
   done
 fi
 
+case "$site_includes" in *:* ) site_includes="`echo '' $site_includes | sed -e 's/^ //' -e 's/:/ /g'`";; esac
 if test -n "$site_includes"; then
   for arg in $site_includes; do
 if test -n "$site_includes"; then
   for arg in $site_includes; do
-    case "$arg" in -* ) ;; * ) arg="-I${arg}" ;; esac
+    case "$arg" in
+      -* ) ;;
+      * ) test -d "$arg" || \
+           { echo "Error:" "Invalid site include \`$arg': no such directory" >&2; exit 1; }
+      arg="-I${arg}" ;;
+    esac
     c_switch_site="$c_switch_site $arg" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"$arg\" to \$c_switch_site"; fi
   done
 fi
 
     c_switch_site="$c_switch_site $arg" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"$arg\" to \$c_switch_site"; fi
   done
 fi
 
+case "$site_prefixes" in *:* ) site_prefixes="`echo '' $site_prefixes | sed -e 's/^ //' -e 's/:/ /g'`";; esac
+if test -n "$site_prefixes"; then
+  for dir in $site_prefixes; do
+    inc_dir="${dir}/include"
+    lib_dir="${dir}/lib"
+    if test ! -d "$dir"; then
+      { echo "Error:" "Invalid site prefix \`$dir': no such directory" >&2; exit 1; }
+    elif test ! -d "$inc_dir"; then
+      { echo "Error:" "Invalid site prefix \`$dir': no such directory \`$inc_dir'" >&2; exit 1; }
+    elif test ! -d "$lib_dir"; then
+      { echo "Error:" "Invalid site prefix \`$dir': no such directory \`$lib_dir'" >&2; exit 1; }
+    else
+      c_switch_site="$c_switch_site "-I$inc_dir"" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \""-I$inc_dir"\" to \$c_switch_site"; fi
+      ld_switch_site="$ld_switch_site "-L$lib_dir"" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \""-L$lib_dir"\" to \$ld_switch_site"; fi
+    fi
+  done
+fi
+
 
 for dir in "/usr/ccs/lib"; do
   test -d "$dir" && ld_switch_site="$ld_switch_site -L${dir}" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"-L${dir}\" to \$ld_switch_site"; fi
 done
 
 
 for dir in "/usr/ccs/lib"; do
   test -d "$dir" && ld_switch_site="$ld_switch_site -L${dir}" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"-L${dir}\" to \$ld_switch_site"; fi
 done
 
+case "$site_runtime_libraries" in *:* ) site_runtime_libraries="`echo '' $site_runtime_libraries | sed -e 's/^ //' -e 's/:/ /g'`";; esac
 if test -n "$site_runtime_libraries"; then
   LD_RUN_PATH="`echo $site_runtime_libraries | sed -e 's/  */:/g'`"
   export LD_RUN_PATH
 if test -n "$site_runtime_libraries"; then
   LD_RUN_PATH="`echo $site_runtime_libraries | sed -e 's/  */:/g'`"
   export LD_RUN_PATH
@@ -2488,39 +2531,43 @@ fi
 if   test "$dynamic" = "no"; then add_runtime_path=no
 elif test -n "$LD_RUN_PATH"; then add_runtime_path=yes
 else case "$opsys" in
 if   test "$dynamic" = "no"; then add_runtime_path=no
 elif test -n "$LD_RUN_PATH"; then add_runtime_path=yes
 else case "$opsys" in
-       sol2 | irix* | *bsd* ) add_runtime_path=yes ;;
+       sol2 | irix* | *bsd* | decosf* ) add_runtime_path=yes ;;
        * ) add_runtime_path=no ;;
      esac
 fi
 
 if test "$add_runtime_path" = "yes"; then
       echo $ac_n "checking "for runtime libraries flag"""... $ac_c" 1>&6
        * ) add_runtime_path=no ;;
      esac
 fi
 
 if test "$add_runtime_path" = "yes"; then
       echo $ac_n "checking "for runtime libraries flag"""... $ac_c" 1>&6
-echo "configure:2499: checking "for runtime libraries flag"" >&5
-  dash_r=""
-  for try_dash_r in "-R" "-R " "-rpath "; do
-    xe_check_libs="${try_dash_r}/no/such/file-or-directory"
-    
+echo "configure:2542: checking "for runtime libraries flag"" >&5
+  case "$opsys" in
+    sol2 ) dash_r="-R" ;;
+    decosf* | linux* | irix*) dash_r="-rpath " ;;
+    *)
+      dash_r=""
+      for try_dash_r in "-R" "-R " "-rpath "; do
+        xe_check_libs="${try_dash_r}/no/such/file-or-directory"
+        
 if test "$GCC" = "yes"; then
   set x $xe_check_libs; shift; xe_check_libs=""
   while test -n "$1"; do
     case $1 in
 if test "$GCC" = "yes"; then
   set x $xe_check_libs; shift; xe_check_libs=""
   while test -n "$1"; do
     case $1 in
-      -L  | -l  | -u         ) xe_check_libs="$xe_check_libs $1 $2"; shift ;;
-      -L* | -l* | -u* | -Wl* ) xe_check_libs="$xe_check_libs $1" ;;
+      -L  | -l  | -u               ) xe_check_libs="$xe_check_libs $1 $2"; shift ;;
+      -L* | -l* | -u* | -Wl* | -pg ) xe_check_libs="$xe_check_libs $1" ;;
       -Xlinker* ) ;;
       * ) xe_check_libs="$xe_check_libs -Xlinker $1" ;;
     esac
     shift
   done
 fi
       -Xlinker* ) ;;
       * ) xe_check_libs="$xe_check_libs -Xlinker $1" ;;
     esac
     shift
   done
 fi
-    cat > conftest.$ac_ext <<EOF
-#line 2517 "configure"
+        cat > conftest.$ac_ext <<EOF
+#line 2564 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:2524: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2571: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   dash_r="$try_dash_r"
 else
   rm -rf conftest*
   dash_r="$try_dash_r"
 else
@@ -2528,9 +2575,10 @@ else
   cat conftest.$ac_ext >&5
 fi
 rm -f conftest*
   cat conftest.$ac_ext >&5
 fi
 rm -f conftest*
-    xe_check_libs=""
-    test -n "$dash_r" && break
-  done
+        xe_check_libs=""
+        test -n "$dash_r" && break
+      done ;;
+  esac
   if test -n "$dash_r";
     then echo "$ac_t"""\"${dash_r}\""" 1>&6
     else echo "$ac_t""NONE" 1>&6
   if test -n "$dash_r";
     then echo "$ac_t"""\"${dash_r}\""" 1>&6
     else echo "$ac_t""NONE" 1>&6
@@ -2598,8 +2646,8 @@ if test "$GCC" = "yes"; then
   set x $ld_switch_run; shift; ld_switch_run=""
   while test -n "$1"; do
     case $1 in
   set x $ld_switch_run; shift; ld_switch_run=""
   while test -n "$1"; do
     case $1 in
-      -L  | -l  | -u         ) ld_switch_run="$ld_switch_run $1 $2"; shift ;;
-      -L* | -l* | -u* | -Wl* ) ld_switch_run="$ld_switch_run $1" ;;
+      -L  | -l  | -u               ) ld_switch_run="$ld_switch_run $1 $2"; shift ;;
+      -L* | -l* | -u* | -Wl* | -pg ) ld_switch_run="$ld_switch_run $1" ;;
       -Xlinker* ) ;;
       * ) ld_switch_run="$ld_switch_run -Xlinker $1" ;;
     esac
       -Xlinker* ) ;;
       * ) ld_switch_run="$ld_switch_run -Xlinker $1" ;;
     esac
@@ -2612,6 +2660,7 @@ fi
 
 
 
 
 
 
+
 GNU_MALLOC=yes
 if test "$with_dlmalloc" != "no"; then
        doug_lea_malloc=yes
 GNU_MALLOC=yes
 if test "$with_dlmalloc" != "no"; then
        doug_lea_malloc=yes
@@ -2620,10 +2669,10 @@ else
 fi
 after_morecore_hook_exists=yes
 echo $ac_n "checking for malloc_get_state""... $ac_c" 1>&6
 fi
 after_morecore_hook_exists=yes
 echo $ac_n "checking for malloc_get_state""... $ac_c" 1>&6
-echo "configure:2624: checking for malloc_get_state" >&5
+echo "configure:2673: checking for malloc_get_state" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 2627 "configure"
+#line 2676 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char malloc_get_state(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char malloc_get_state(); below.  */
@@ -2646,7 +2695,7 @@ malloc_get_state();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:2650: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2699: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_malloc_get_state=yes"
 else
   rm -rf conftest*
   eval "ac_cv_func_malloc_get_state=yes"
 else
@@ -2666,10 +2715,10 @@ doug_lea_malloc=no
 fi
 
 echo $ac_n "checking for malloc_set_state""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for malloc_set_state""... $ac_c" 1>&6
-echo "configure:2670: checking for malloc_set_state" >&5
+echo "configure:2719: checking for malloc_set_state" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 2673 "configure"
+#line 2722 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char malloc_set_state(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char malloc_set_state(); below.  */
@@ -2692,7 +2741,7 @@ malloc_set_state();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:2696: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2745: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_malloc_set_state=yes"
 else
   rm -rf conftest*
   eval "ac_cv_func_malloc_set_state=yes"
 else
@@ -2712,16 +2761,16 @@ doug_lea_malloc=no
 fi
 
 echo $ac_n "checking whether __after_morecore_hook exists""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking whether __after_morecore_hook exists""... $ac_c" 1>&6
-echo "configure:2716: checking whether __after_morecore_hook exists" >&5
+echo "configure:2765: checking whether __after_morecore_hook exists" >&5
 cat > conftest.$ac_ext <<EOF
 cat > conftest.$ac_ext <<EOF
-#line 2718 "configure"
+#line 2767 "configure"
 #include "confdefs.h"
 extern void (* __after_morecore_hook)();
 int main() {
 __after_morecore_hook = 0
 ; return 0; }
 EOF
 #include "confdefs.h"
 extern void (* __after_morecore_hook)();
 int main() {
 __after_morecore_hook = 0
 ; return 0; }
 EOF
-if { (eval echo configure:2725: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2774: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -2780,7 +2829,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
 # 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:2784: checking for $ac_word" >&5
+echo "configure:2833: checking for $ac_word" >&5
 
 if test -n "$RANLIB"; then
   ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
 
 if test -n "$RANLIB"; then
   ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
@@ -2833,7 +2882,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
 # 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:2837: checking for a BSD compatible install" >&5
+echo "configure:2886: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
 
   IFS="${IFS=  }"; ac_save_IFS="$IFS"; IFS="${IFS}:"
 if test -z "$INSTALL"; then
 
   IFS="${IFS=  }"; ac_save_IFS="$IFS"; IFS="${IFS}:"
@@ -2884,7 +2933,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
 # 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:2888: checking for $ac_word" >&5
+echo "configure:2937: checking for $ac_word" >&5
 
 if test -n "$YACC"; then
   ac_cv_prog_YACC="$YACC" # Let the user override the test.
 
 if test -n "$YACC"; then
   ac_cv_prog_YACC="$YACC" # Let the user override the test.
@@ -2915,15 +2964,15 @@ for ac_hdr in mach/mach.h sys/stropts.h sys/timeb.h sys/time.h unistd.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2919: checking for $ac_hdr" >&5
+echo "configure:2968: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 2922 "configure"
+#line 2971 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2927: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2976: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2952,19 +3001,19 @@ else
 fi
 done
 
 fi
 done
 
-for ac_hdr in utime.h locale.h libgen.h fcntl.h ulimit.h
+for ac_hdr in utime.h locale.h libgen.h fcntl.h ulimit.h cygwin/version.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2960: checking for $ac_hdr" >&5
+echo "configure:3009: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 2963 "configure"
+#line 3012 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2968: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3017: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2993,19 +3042,19 @@ else
 fi
 done
 
 fi
 done
 
-for ac_hdr in linux/version.h kstat.h sys/pstat.h inttypes.h sys/un.h a.out.h
+for ac_hdr in kstat.h sys/pstat.h inttypes.h sys/un.h a.out.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3001: checking for $ac_hdr" >&5
+echo "configure:3050: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3004 "configure"
+#line 3053 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3009: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3058: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3035,10 +3084,10 @@ fi
 done
 
 echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
 done
 
 echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
-echo "configure:3039: checking for sys/wait.h that is POSIX.1 compatible" >&5
+echo "configure:3088: checking for sys/wait.h that is POSIX.1 compatible" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3042 "configure"
+#line 3091 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/wait.h>
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/wait.h>
@@ -3054,7 +3103,7 @@ wait (&s);
 s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
 ; return 0; }
 EOF
 s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
 ; return 0; }
 EOF
-if { (eval echo configure:3058: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3107: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_sys_wait_h=yes
 else
   rm -rf conftest*
   ac_cv_header_sys_wait_h=yes
 else
@@ -3078,10 +3127,10 @@ EOF
 fi
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:3082: checking for ANSI C header files" >&5
+echo "configure:3131: checking for ANSI C header files" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3085 "configure"
+#line 3134 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -3089,7 +3138,7 @@ cat > conftest.$ac_ext <<EOF
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3093: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3142: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3106,7 +3155,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
 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 3110 "configure"
+#line 3159 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -3124,7 +3173,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
 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 3128 "configure"
+#line 3177 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -3142,7 +3191,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
 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 3146 "configure"
+#line 3195 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -3153,10 +3202,11 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
 exit (0); }
 
 EOF
 exit (0); }
 
 EOF
-if { (eval echo configure:3157: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:3206: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   :
 else
 then
   :
 else
+  conftest_rc="$?"
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
@@ -3178,10 +3228,10 @@ EOF
 fi
 
 echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:3182: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:3232: checking whether time.h and sys/time.h may both be included" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3185 "configure"
+#line 3235 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
@@ -3190,7 +3240,7 @@ int main() {
 struct tm *tp;
 ; return 0; }
 EOF
 struct tm *tp;
 ; return 0; }
 EOF
-if { (eval echo configure:3194: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3244: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_time=yes
 else
   rm -rf conftest*
   ac_cv_header_time=yes
 else
@@ -3214,10 +3264,10 @@ EOF
 fi
 
 echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6
-echo "configure:3218: checking for sys_siglist declaration in signal.h or unistd.h" >&5
+echo "configure:3268: checking for sys_siglist declaration in signal.h or unistd.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3221 "configure"
+#line 3271 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -3229,7 +3279,7 @@ int main() {
 char *msg = *(sys_siglist + 1);
 ; return 0; }
 EOF
 char *msg = *(sys_siglist + 1);
 ; return 0; }
 EOF
-if { (eval echo configure:3233: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3283: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_decl_sys_siglist=yes
 else
   rm -rf conftest*
   ac_cv_decl_sys_siglist=yes
 else
@@ -3254,9 +3304,9 @@ fi
 
 
 echo $ac_n "checking for struct utimbuf""... $ac_c" 1>&6
 
 
 echo $ac_n "checking for struct utimbuf""... $ac_c" 1>&6
-echo "configure:3258: checking for struct utimbuf" >&5
+echo "configure:3308: checking for struct utimbuf" >&5
 cat > conftest.$ac_ext <<EOF
 cat > conftest.$ac_ext <<EOF
-#line 3260 "configure"
+#line 3310 "configure"
 #include "confdefs.h"
 #ifdef TIME_WITH_SYS_TIME
 #include <sys/time.h>
 #include "confdefs.h"
 #ifdef TIME_WITH_SYS_TIME
 #include <sys/time.h>
@@ -3275,7 +3325,7 @@ int main() {
 static struct utimbuf x; x.actime = x.modtime;
 ; return 0; }
 EOF
 static struct utimbuf x; x.actime = x.modtime;
 ; return 0; }
 EOF
-if { (eval echo configure:3279: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3329: \"$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 -rf conftest*
   echo "$ac_t""yes" 1>&6
    { test "$extra_verbose" = "yes" && cat << \EOF
@@ -3295,10 +3345,10 @@ fi
 rm -f conftest*
 
 echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
 rm -f conftest*
 
 echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:3299: checking return type of signal handlers" >&5
+echo "configure:3349: checking return type of signal handlers" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3302 "configure"
+#line 3352 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -3315,7 +3365,7 @@ int main() {
 int i;
 ; return 0; }
 EOF
 int i;
 ; return 0; }
 EOF
-if { (eval echo configure:3319: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3369: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_type_signal=void
 else
   rm -rf conftest*
   ac_cv_type_signal=void
 else
@@ -3337,10 +3387,10 @@ EOF
 
 
 echo $ac_n "checking for size_t""... $ac_c" 1>&6
 
 
 echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:3341: checking for size_t" >&5
+echo "configure:3391: checking for size_t" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3344 "configure"
+#line 3394 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3371,10 +3421,10 @@ EOF
 fi
 
 echo $ac_n "checking for pid_t""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:3375: checking for pid_t" >&5
+echo "configure:3425: checking for pid_t" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3378 "configure"
+#line 3428 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3405,10 +3455,10 @@ EOF
 fi
 
 echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:3409: checking for uid_t in sys/types.h" >&5
+echo "configure:3459: checking for uid_t in sys/types.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3412 "configure"
+#line 3462 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 EOF
 #include "confdefs.h"
 #include <sys/types.h>
 EOF
@@ -3444,10 +3494,10 @@ EOF
 fi
 
 echo $ac_n "checking for mode_t""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for mode_t""... $ac_c" 1>&6
-echo "configure:3448: checking for mode_t" >&5
+echo "configure:3498: checking for mode_t" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3451 "configure"
+#line 3501 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3478,10 +3528,10 @@ EOF
 fi
 
 echo $ac_n "checking for off_t""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:3482: checking for off_t" >&5
+echo "configure:3532: checking for off_t" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3485 "configure"
+#line 3535 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3513,9 +3563,9 @@ fi
 
 
 echo $ac_n "checking for struct timeval""... $ac_c" 1>&6
 
 
 echo $ac_n "checking for struct timeval""... $ac_c" 1>&6
-echo "configure:3517: checking for struct timeval" >&5
+echo "configure:3567: checking for struct timeval" >&5
 cat > conftest.$ac_ext <<EOF
 cat > conftest.$ac_ext <<EOF
-#line 3519 "configure"
+#line 3569 "configure"
 #include "confdefs.h"
 #ifdef TIME_WITH_SYS_TIME
 #include <sys/time.h>
 #include "confdefs.h"
 #ifdef TIME_WITH_SYS_TIME
 #include <sys/time.h>
@@ -3531,7 +3581,7 @@ int main() {
 static struct timeval x; x.tv_sec = x.tv_usec;
 ; return 0; }
 EOF
 static struct timeval x; x.tv_sec = x.tv_usec;
 ; return 0; }
 EOF
-if { (eval echo configure:3535: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3585: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
   HAVE_TIMEVAL=yes
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
   HAVE_TIMEVAL=yes
@@ -3553,10 +3603,10 @@ fi
 rm -f conftest*
 
 echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6
 rm -f conftest*
 
 echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6
-echo "configure:3557: checking whether struct tm is in sys/time.h or time.h" >&5
+echo "configure:3607: checking whether struct tm is in sys/time.h or time.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3560 "configure"
+#line 3610 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <time.h>
 #include "confdefs.h"
 #include <sys/types.h>
 #include <time.h>
@@ -3564,7 +3614,7 @@ int main() {
 struct tm *tp; tp->tm_sec;
 ; return 0; }
 EOF
 struct tm *tp; tp->tm_sec;
 ; return 0; }
 EOF
-if { (eval echo configure:3568: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3618: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_struct_tm=time.h
 else
   rm -rf conftest*
   ac_cv_struct_tm=time.h
 else
@@ -3588,10 +3638,10 @@ EOF
 fi
 
 echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6
-echo "configure:3592: checking for tm_zone in struct tm" >&5
+echo "configure:3642: checking for tm_zone in struct tm" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3595 "configure"
+#line 3645 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <$ac_cv_struct_tm>
 #include "confdefs.h"
 #include <sys/types.h>
 #include <$ac_cv_struct_tm>
@@ -3599,7 +3649,7 @@ int main() {
 struct tm tm; tm.tm_zone;
 ; return 0; }
 EOF
 struct tm tm; tm.tm_zone;
 ; return 0; }
 EOF
-if { (eval echo configure:3603: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3653: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_struct_tm_zone=yes
 else
   rm -rf conftest*
   ac_cv_struct_tm_zone=yes
 else
@@ -3622,10 +3672,10 @@ EOF
 
 else
   echo $ac_n "checking for tzname""... $ac_c" 1>&6
 
 else
   echo $ac_n "checking for tzname""... $ac_c" 1>&6
-echo "configure:3626: checking for tzname" >&5
+echo "configure:3676: checking for tzname" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3629 "configure"
+#line 3679 "configure"
 #include "confdefs.h"
 #include <time.h>
 #ifndef tzname /* For SGI.  */
 #include "confdefs.h"
 #include <time.h>
 #ifndef tzname /* For SGI.  */
@@ -3635,7 +3685,7 @@ int main() {
 atoi(*tzname);
 ; return 0; }
 EOF
 atoi(*tzname);
 ; return 0; }
 EOF
-if { (eval echo configure:3639: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3689: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   ac_cv_var_tzname=yes
 else
   rm -rf conftest*
   ac_cv_var_tzname=yes
 else
@@ -3661,10 +3711,10 @@ fi
 
 
 echo $ac_n "checking for working const""... $ac_c" 1>&6
 
 
 echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:3665: checking for working const" >&5
+echo "configure:3715: checking for working const" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3668 "configure"
+#line 3718 "configure"
 #include "confdefs.h"
 
 int main() {
 #include "confdefs.h"
 
 int main() {
@@ -3713,7 +3763,7 @@ ccp = (char const *const *) p;
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:3717: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3767: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_const=yes
 else
   rm -rf conftest*
   ac_cv_c_const=yes
 else
@@ -3738,7 +3788,7 @@ fi
 
 
 echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
 
 
 echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:3742: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:3792: checking whether ${MAKE-make} sets \${MAKE}" >&5
 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
 
 cat > conftestmake <<\EOF
 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
 
 cat > conftestmake <<\EOF
@@ -3763,12 +3813,12 @@ fi
 
 
 echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
 
 
 echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
-echo "configure:3767: checking whether byte ordering is bigendian" >&5
+echo "configure:3817: 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
 
 ac_cv_c_bigendian=unknown
 # See if sys/param.h defines the BYTE_ORDER macro.
 cat > conftest.$ac_ext <<EOF
-#line 3772 "configure"
+#line 3822 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -3779,11 +3829,11 @@ int main() {
 #endif
 ; return 0; }
 EOF
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:3783: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3833: \"$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
   rm -rf conftest*
   # It does; now see whether it defined to BIG_ENDIAN or not.
 cat > conftest.$ac_ext <<EOF
-#line 3787 "configure"
+#line 3837 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -3794,7 +3844,7 @@ int main() {
 #endif
 ; return 0; }
 EOF
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:3798: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3848: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_bigendian=yes
 else
   rm -rf conftest*
   ac_cv_c_bigendian=yes
 else
@@ -3811,7 +3861,7 @@ fi
 rm -f conftest*
 if test $ac_cv_c_bigendian = unknown; then
 cat > conftest.$ac_ext <<EOF
 rm -f conftest*
 if test $ac_cv_c_bigendian = unknown; then
 cat > conftest.$ac_ext <<EOF
-#line 3815 "configure"
+#line 3865 "configure"
 #include "confdefs.h"
 main () {
   /* Are we little or big endian?  From Harbison&Steele.  */
 #include "confdefs.h"
 main () {
   /* Are we little or big endian?  From Harbison&Steele.  */
@@ -3824,10 +3874,11 @@ main () {
   exit (u.c[sizeof (long) - 1] == 1);
 }
 EOF
   exit (u.c[sizeof (long) - 1] == 1);
 }
 EOF
-if { (eval echo configure:3828: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:3878: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_c_bigendian=no
 else
 then
   ac_cv_c_bigendian=no
 else
+  conftest_rc="$?"
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
@@ -3850,10 +3901,10 @@ fi
 
 
 echo $ac_n "checking size of short""... $ac_c" 1>&6
 
 
 echo $ac_n "checking size of short""... $ac_c" 1>&6
-echo "configure:3854: checking size of short" >&5
+echo "configure:3905: checking size of short" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3857 "configure"
+#line 3908 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -3864,10 +3915,11 @@ main()
   exit(0);
 }
 EOF
   exit(0);
 }
 EOF
-if { (eval echo configure:3868: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:3919: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_sizeof_short=`cat conftestval`
 else
 then
   ac_cv_sizeof_short=`cat conftestval`
 else
+  conftest_rc="$?"
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
@@ -3891,10 +3943,10 @@ if test "$ac_cv_sizeof_short" = 0; then
   exit 1
 fi
 echo $ac_n "checking size of int""... $ac_c" 1>&6
   exit 1
 fi
 echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:3895: checking size of int" >&5
+echo "configure:3947: checking size of int" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3898 "configure"
+#line 3950 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -3905,10 +3957,11 @@ main()
   exit(0);
 }
 EOF
   exit(0);
 }
 EOF
-if { (eval echo configure:3909: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:3961: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_sizeof_int=`cat conftestval`
 else
 then
   ac_cv_sizeof_int=`cat conftestval`
 else
+  conftest_rc="$?"
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
@@ -3926,10 +3979,10 @@ EOF
 
 
 echo $ac_n "checking size of long""... $ac_c" 1>&6
 
 
 echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:3930: checking size of long" >&5
+echo "configure:3983: checking size of long" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3933 "configure"
+#line 3986 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -3940,10 +3993,11 @@ main()
   exit(0);
 }
 EOF
   exit(0);
 }
 EOF
-if { (eval echo configure:3944: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:3997: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_sizeof_long=`cat conftestval`
 else
 then
   ac_cv_sizeof_long=`cat conftestval`
 else
+  conftest_rc="$?"
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
@@ -3961,10 +4015,10 @@ EOF
 
 
 echo $ac_n "checking size of long long""... $ac_c" 1>&6
 
 
 echo $ac_n "checking size of long long""... $ac_c" 1>&6
-echo "configure:3965: checking size of long long" >&5
+echo "configure:4019: checking size of long long" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 3968 "configure"
+#line 4022 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -3975,10 +4029,11 @@ main()
   exit(0);
 }
 EOF
   exit(0);
 }
 EOF
-if { (eval echo configure:3979: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:4033: \"$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
 then
   ac_cv_sizeof_long_long=`cat conftestval`
 else
+  conftest_rc="$?"
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
@@ -3996,10 +4051,10 @@ EOF
 
 
 echo $ac_n "checking size of void *""... $ac_c" 1>&6
 
 
 echo $ac_n "checking size of void *""... $ac_c" 1>&6
-echo "configure:4000: checking size of void *" >&5
+echo "configure:4055: checking size of void *" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 4003 "configure"
+#line 4058 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -4010,10 +4065,11 @@ main()
   exit(0);
 }
 EOF
   exit(0);
 }
 EOF
-if { (eval echo configure:4014: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:4069: \"$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
 then
   ac_cv_sizeof_void_p=`cat conftestval`
 else
+  conftest_rc="$?"
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
@@ -4032,7 +4088,7 @@ EOF
 
 
 echo $ac_n "checking for long file names""... $ac_c" 1>&6
 
 
 echo $ac_n "checking for long file names""... $ac_c" 1>&6
-echo "configure:4036: checking for long file names" >&5
+echo "configure:4092: 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:
 
 ac_cv_sys_long_file_names=yes
 # Test for long file names in all the places we know might matter:
@@ -4077,14 +4133,57 @@ EOF
 fi
 
 
 fi
 
 
+echo $ac_n "checking for sin""... $ac_c" 1>&6
+echo "configure:4138: checking for sin" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 4141 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char sin(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char sin();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_sin) || defined (__stub___sin)
+choke me
+#else
+sin();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:4164: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  eval "ac_cv_func_sin=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_sin=no"
+fi
+rm -f conftest*
+
+if eval "test \"`echo '$ac_cv_func_'sin`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6
 
 echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6
-echo "configure:4083: checking for sin in -lm" >&5
+echo "configure:4182: checking for sin in -lm" >&5
 ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lm "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lm "
 cat > conftest.$ac_ext <<EOF
-#line 4088 "configure"
+#line 4187 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4095,7 +4194,7 @@ int main() {
 sin()
 ; return 0; }
 EOF
 sin()
 ; return 0; }
 EOF
-if { (eval echo configure:4099: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4198: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4109,7 +4208,7 @@ xe_check_libs=""
 
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
   echo "$ac_t""yes" 1>&6
 
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
   echo "$ac_t""yes" 1>&6
-    ac_tr_lib=HAVE_LIB`echo m | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+    ac_tr_lib=HAVE_LIB`echo m | sed -e 's/^a-zA-Z0-9_/_/g' \
     -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
   { test "$extra_verbose" = "yes" && cat << EOF
     Defining $ac_tr_lib
     -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
   { test "$extra_verbose" = "yes" && cat << EOF
     Defining $ac_tr_lib
@@ -4126,6 +4225,8 @@ else
 fi
 
 
 fi
 
 
+fi
+
 
 { test "$extra_verbose" = "yes" && cat << \EOF
     Defining LISP_FLOAT_TYPE
 
 { test "$extra_verbose" = "yes" && cat << \EOF
     Defining LISP_FLOAT_TYPE
@@ -4137,14 +4238,14 @@ EOF
 
 
 cat > conftest.$ac_ext <<EOF
 
 
 cat > conftest.$ac_ext <<EOF
-#line 4141 "configure"
+#line 4242 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
 return atanh(1.0) + asinh(1.0) + acosh(1.0); 
 ; return 0; }
 EOF
 #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:4148: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4249: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_INVERSE_HYPERBOLIC
   rm -rf conftest*
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_INVERSE_HYPERBOLIC
@@ -4161,7 +4262,7 @@ fi
 rm -f conftest*
 
 echo "checking type of mail spool file locking" 1>&6
 rm -f conftest*
 
 echo "checking type of mail spool file locking" 1>&6
-echo "configure:4165: checking type of mail spool file locking" >&5
+echo "configure:4266: checking type of mail spool file locking" >&5
 test -z "$mail_locking" -a "$mail_use_flock" = "yes" && mail_locking=flock
 test -z "$mail_locking" -a "$mail_use_lockf" = "yes" && mail_locking=lockf
 if   test "$mail_locking" = "lockf"; then { test "$extra_verbose" = "yes" && cat << \EOF
 test -z "$mail_locking" -a "$mail_use_flock" = "yes" && mail_locking=flock
 test -z "$mail_locking" -a "$mail_use_lockf" = "yes" && mail_locking=lockf
 if   test "$mail_locking" = "lockf"; then { test "$extra_verbose" = "yes" && cat << \EOF
@@ -4183,115 +4284,15 @@ EOF
 else mail_locking="dot-locking"
 fi
 
 else mail_locking="dot-locking"
 fi
 
-
-echo $ac_n "checking for kstat_open in -lkstat""... $ac_c" 1>&6
-echo "configure:4189: 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 4194 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char kstat_open();
-
-int main() {
-kstat_open()
-; return 0; }
-EOF
-if { (eval echo configure:4205: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-xe_check_libs=""
-
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_lib=HAVE_LIB`echo kstat | sed -e 's/[^a-zA-Z0-9_]/_/g' \
-    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
-  { test "$extra_verbose" = "yes" && cat << EOF
-    Defining $ac_tr_lib
-EOF
-cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-}
-
-  LIBS="-lkstat $LIBS" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-lkstat\" to \$LIBS"; fi
-
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-
-
-
-echo $ac_n "checking for kvm_read in -lkvm""... $ac_c" 1>&6
-echo "configure:4239: 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 4244 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char kvm_read();
-
-int main() {
-kvm_read()
-; return 0; }
-EOF
-if { (eval echo configure:4255: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-xe_check_libs=""
-
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_lib=HAVE_LIB`echo kvm | sed -e 's/[^a-zA-Z0-9_]/_/g' \
-    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
-  { test "$extra_verbose" = "yes" && cat << EOF
-    Defining $ac_tr_lib
-EOF
-cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-}
-
-  LIBS="-lkvm $LIBS" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-lkvm\" to \$LIBS"; fi
-
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-
-
 case "$opsys" in decosf*)
   
 echo $ac_n "checking for cma_open in -lpthreads""... $ac_c" 1>&6
 case "$opsys" in decosf*)
   
 echo $ac_n "checking for cma_open in -lpthreads""... $ac_c" 1>&6
-echo "configure:4290: checking for cma_open in -lpthreads" >&5
+echo "configure:4291: 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
 ac_lib_var=`echo pthreads'_'cma_open | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lpthreads "
 cat > conftest.$ac_ext <<EOF
-#line 4295 "configure"
+#line 4296 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4302,7 +4303,7 @@ int main() {
 cma_open()
 ; return 0; }
 EOF
 cma_open()
 ; return 0; }
 EOF
-if { (eval echo configure:4306: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4307: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4338,7 +4339,7 @@ fi
 esac
 
 echo $ac_n "checking whether the -xildoff compiler flag is required""... $ac_c" 1>&6
 esac
 
 echo $ac_n "checking whether the -xildoff compiler flag is required""... $ac_c" 1>&6
-echo "configure:4342: checking whether the -xildoff compiler flag is required" >&5
+echo "configure:4343: 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;
 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;
@@ -4349,7 +4350,7 @@ fi
 
 if test "$opsys" = "sol2" && test "$OS_RELEASE" -ge 56; then
   echo $ac_n "checking for \"-z ignore\" linker flag""... $ac_c" 1>&6
 
 if test "$opsys" = "sol2" && test "$OS_RELEASE" -ge 56; then
   echo $ac_n "checking for \"-z ignore\" linker flag""... $ac_c" 1>&6
-echo "configure:4353: checking for \"-z ignore\" linker flag" >&5
+echo "configure:4354: 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 ;;
   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 ;;
@@ -4359,7 +4360,7 @@ fi
 
 
 echo "checking "for specified window system"" 1>&6
 
 
 echo "checking "for specified window system"" 1>&6
-echo "configure:4363: checking "for specified window system"" >&5
+echo "configure:4364: checking "for specified window system"" >&5
 
 if test "$with_x11" != "no"; then
     test "$x_includes $x_libraries" != "NONE NONE" && \
 
 if test "$with_x11" != "no"; then
     test "$x_includes $x_libraries" != "NONE NONE" && \
@@ -4392,7 +4393,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
 # 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:4396: checking for X" >&5
+echo "configure:4397: checking for X" >&5
 
 # Check whether --with-x or --without-x was given.
 if test "${with_x+set}" = set; then
 
 # Check whether --with-x or --without-x was given.
 if test "${with_x+set}" = set; then
@@ -4452,12 +4453,12 @@ if test "$ac_x_includes" = NO; then
 
   # First, try using that file with no special directory specified.
 cat > conftest.$ac_ext <<EOF
 
   # First, try using that file with no special directory specified.
 cat > conftest.$ac_ext <<EOF
-#line 4456 "configure"
+#line 4457 "configure"
 #include "confdefs.h"
 #include <$x_direct_test_include>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <$x_direct_test_include>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4461: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4462: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4526,14 +4527,14 @@ if test "$ac_x_libraries" = NO; then
   ac_save_LIBS="$LIBS"
   LIBS="-l$x_direct_test_library $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
   LIBS="-l$x_direct_test_library $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4530 "configure"
+#line 4531 "configure"
 #include "confdefs.h"
 
 int main() {
 ${x_direct_test_function}()
 ; return 0; }
 EOF
 #include "confdefs.h"
 
 int main() {
 ${x_direct_test_function}()
 ; return 0; }
 EOF
-if { (eval echo configure:4537: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4538: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   LIBS="$ac_save_LIBS"
 # We can link X programs with no special library path.
   rm -rf conftest*
   LIBS="$ac_save_LIBS"
 # We can link X programs with no special library path.
@@ -4642,17 +4643,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
     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:4646: checking whether -R must be followed by a space" >&5
+echo "configure:4647: checking whether -R must be followed by a space" >&5
       ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries"
       cat > conftest.$ac_ext <<EOF
       ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries"
       cat > conftest.$ac_ext <<EOF
-#line 4649 "configure"
+#line 4650 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:4656: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4657: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   ac_R_nospace=yes
 else
   rm -rf conftest*
   ac_R_nospace=yes
 else
@@ -4668,14 +4669,14 @@ rm -f conftest*
       else
        LIBS="$ac_xsave_LIBS -R $x_libraries"
        cat > conftest.$ac_ext <<EOF
       else
        LIBS="$ac_xsave_LIBS -R $x_libraries"
        cat > conftest.$ac_ext <<EOF
-#line 4672 "configure"
+#line 4673 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:4679: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4680: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   ac_R_space=yes
 else
   rm -rf conftest*
   ac_R_space=yes
 else
@@ -4711,12 +4712,12 @@ ac_cv_lib_dnet_dnet_ntoa=no
 else
 
 echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6
 else
 
 echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6
-echo "configure:4715: checking for dnet_ntoa in -ldnet" >&5
+echo "configure:4716: 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
 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldnet "
 cat > conftest.$ac_ext <<EOF
-#line 4720 "configure"
+#line 4721 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4727,7 +4728,7 @@ int main() {
 dnet_ntoa()
 ; return 0; }
 EOF
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:4731: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4732: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4751,12 +4752,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
     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:4755: checking for dnet_ntoa in -ldnet_stub" >&5
+echo "configure:4756: 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
 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldnet_stub "
 cat > conftest.$ac_ext <<EOF
-#line 4760 "configure"
+#line 4761 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4767,7 +4768,7 @@ int main() {
 dnet_ntoa()
 ; return 0; }
 EOF
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:4771: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4772: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4796,10 +4797,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
     # 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:4800: checking for gethostbyname" >&5
+echo "configure:4801: checking for gethostbyname" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 4803 "configure"
+#line 4804 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char gethostbyname(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char gethostbyname(); below.  */
@@ -4822,7 +4823,7 @@ gethostbyname();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:4826: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4827: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_gethostbyname=yes"
 else
   rm -rf conftest*
   eval "ac_cv_func_gethostbyname=yes"
 else
@@ -4843,12 +4844,12 @@ fi
     if test $ac_cv_func_gethostbyname = no; then
       
 echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
     if test $ac_cv_func_gethostbyname = no; then
       
 echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:4847: checking for gethostbyname in -lnsl" >&5
+echo "configure:4848: checking for gethostbyname in -lnsl" >&5
 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lnsl "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lnsl "
 cat > conftest.$ac_ext <<EOF
-#line 4852 "configure"
+#line 4853 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4859,7 +4860,7 @@ int main() {
 gethostbyname()
 ; return 0; }
 EOF
 gethostbyname()
 ; return 0; }
 EOF
-if { (eval echo configure:4863: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4864: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4889,10 +4890,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
     # -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:4893: checking for connect" >&5
+echo "configure:4894: checking for connect" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 4896 "configure"
+#line 4897 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char connect(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char connect(); below.  */
@@ -4915,7 +4916,7 @@ connect();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:4919: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4920: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_connect=yes"
 else
   rm -rf conftest*
   eval "ac_cv_func_connect=yes"
 else
@@ -4938,12 +4939,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
 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:4942: checking "$xe_msg_checking"" >&5
+echo "configure:4943: 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
 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lsocket $X_EXTRA_LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4947 "configure"
+#line 4948 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4954,7 +4955,7 @@ int main() {
 connect()
 ; return 0; }
 EOF
 connect()
 ; return 0; }
 EOF
-if { (eval echo configure:4958: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4978,10 +4979,10 @@ fi
 
     # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
     echo $ac_n "checking for remove""... $ac_c" 1>&6
 
     # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
     echo $ac_n "checking for remove""... $ac_c" 1>&6
-echo "configure:4982: checking for remove" >&5
+echo "configure:4983: checking for remove" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 4985 "configure"
+#line 4986 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char remove(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char remove(); below.  */
@@ -5004,7 +5005,7 @@ remove();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:5008: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5009: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_remove=yes"
 else
   rm -rf conftest*
   eval "ac_cv_func_remove=yes"
 else
@@ -5025,12 +5026,12 @@ fi
     if test $ac_cv_func_remove = no; then
       
 echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
     if test $ac_cv_func_remove = no; then
       
 echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
-echo "configure:5029: checking for remove in -lposix" >&5
+echo "configure:5030: checking for remove in -lposix" >&5
 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lposix "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lposix "
 cat > conftest.$ac_ext <<EOF
-#line 5034 "configure"
+#line 5035 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5041,7 +5042,7 @@ int main() {
 remove()
 ; return 0; }
 EOF
 remove()
 ; return 0; }
 EOF
-if { (eval echo configure:5045: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5046: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5065,10 +5066,10 @@ fi
 
     # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
     echo $ac_n "checking for shmat""... $ac_c" 1>&6
 
     # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
     echo $ac_n "checking for shmat""... $ac_c" 1>&6
-echo "configure:5069: checking for shmat" >&5
+echo "configure:5070: checking for shmat" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 5072 "configure"
+#line 5073 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char shmat(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char shmat(); below.  */
@@ -5091,7 +5092,7 @@ shmat();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:5095: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5096: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_shmat=yes"
 else
   rm -rf conftest*
   eval "ac_cv_func_shmat=yes"
 else
@@ -5112,12 +5113,12 @@ fi
     if test $ac_cv_func_shmat = no; then
       
 echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
     if test $ac_cv_func_shmat = no; then
       
 echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
-echo "configure:5116: checking for shmat in -lipc" >&5
+echo "configure:5117: checking for shmat in -lipc" >&5
 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lipc "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lipc "
 cat > conftest.$ac_ext <<EOF
-#line 5121 "configure"
+#line 5122 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5128,7 +5129,7 @@ int main() {
 shmat()
 ; return 0; }
 EOF
 shmat()
 ; return 0; }
 EOF
-if { (eval echo configure:5132: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5133: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5162,12 +5163,12 @@ fi
   #  --interran@uluru.Stanford.EDU, kb@cs.umb.edu.
   
 echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6
   #  --interran@uluru.Stanford.EDU, kb@cs.umb.edu.
   
 echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6
-echo "configure:5166: checking for IceConnectionNumber in -lICE" >&5
+echo "configure:5167: checking for IceConnectionNumber in -lICE" >&5
 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lICE "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lICE "
 cat > conftest.$ac_ext <<EOF
-#line 5171 "configure"
+#line 5172 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5178,7 +5179,7 @@ int main() {
 IceConnectionNumber()
 ; return 0; }
 EOF
 IceConnectionNumber()
 ; return 0; }
 EOF
-if { (eval echo configure:5182: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5183: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5253,6 +5254,8 @@ EOF
       break;     fi
   done
 
       break;     fi
   done
 
+    if test "$GCC" = yes -a -d /usr/shlib; then X_LIBS="$X_LIBS -L/usr/shlib" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"-L/usr/shlib\" to \$X_LIBS"; fi; fi
+
   ld_switch_x_site="$X_LIBS"
 
   
   ld_switch_x_site="$X_LIBS"
 
   
@@ -5304,8 +5307,8 @@ if test "$GCC" = "yes"; then
   set x $ld_switch_run; shift; ld_switch_run=""
   while test -n "$1"; do
     case $1 in
   set x $ld_switch_run; shift; ld_switch_run=""
   while test -n "$1"; do
     case $1 in
-      -L  | -l  | -u         ) ld_switch_run="$ld_switch_run $1 $2"; shift ;;
-      -L* | -l* | -u* | -Wl* ) ld_switch_run="$ld_switch_run $1" ;;
+      -L  | -l  | -u               ) ld_switch_run="$ld_switch_run $1 $2"; shift ;;
+      -L* | -l* | -u* | -Wl* | -pg ) ld_switch_run="$ld_switch_run $1" ;;
       -Xlinker* ) ;;
       * ) ld_switch_run="$ld_switch_run -Xlinker $1" ;;
     esac
       -Xlinker* ) ;;
       * ) ld_switch_run="$ld_switch_run -Xlinker $1" ;;
     esac
@@ -5345,7 +5348,7 @@ EOF
 
 
     echo "checking for X defines extracted by xmkmf" 1>&6
 
 
     echo "checking for X defines extracted by xmkmf" 1>&6
-echo "configure:5349: checking for X defines extracted by xmkmf" >&5
+echo "configure:5352: checking for X defines extracted by xmkmf" >&5
   rm -fr conftestdir
   if mkdir conftestdir; then
     cd conftestdir
   rm -fr conftestdir
   if mkdir conftestdir; then
     cd conftestdir
@@ -5377,15 +5380,15 @@ EOF
 
     ac_safe=`echo "X11/Intrinsic.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Intrinsic.h""... $ac_c" 1>&6
 
     ac_safe=`echo "X11/Intrinsic.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Intrinsic.h""... $ac_c" 1>&6
-echo "configure:5381: checking for X11/Intrinsic.h" >&5
+echo "configure:5384: checking for X11/Intrinsic.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 5384 "configure"
+#line 5387 "configure"
 #include "confdefs.h"
 #include <X11/Intrinsic.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <X11/Intrinsic.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5389: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5392: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -5409,12 +5412,12 @@ fi
 
       
 echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6
 
       
 echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6
-echo "configure:5413: checking for XOpenDisplay in -lX11" >&5
+echo "configure:5416: checking for XOpenDisplay in -lX11" >&5
 ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lX11 "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lX11 "
 cat > conftest.$ac_ext <<EOF
-#line 5418 "configure"
+#line 5421 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5425,7 +5428,7 @@ int main() {
 XOpenDisplay()
 ; return 0; }
 EOF
 XOpenDisplay()
 ; return 0; }
 EOF
-if { (eval echo configure:5429: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5432: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5450,12 +5453,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
 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:5454: checking "$xe_msg_checking"" >&5
+echo "configure:5457: 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
 ac_lib_var=`echo X11'_'XGetFontProperty | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lX11 -b i486-linuxaout"
 cat > conftest.$ac_ext <<EOF
-#line 5459 "configure"
+#line 5462 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5466,7 +5469,7 @@ int main() {
 XGetFontProperty()
 ; return 0; }
 EOF
 XGetFontProperty()
 ; return 0; }
 EOF
-if { (eval echo configure:5470: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5473: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5493,12 +5496,12 @@ fi
 
     
 echo $ac_n "checking for XShapeSelectInput in -lXext""... $ac_c" 1>&6
 
     
 echo $ac_n "checking for XShapeSelectInput in -lXext""... $ac_c" 1>&6
-echo "configure:5497: checking for XShapeSelectInput in -lXext" >&5
+echo "configure:5500: checking for XShapeSelectInput in -lXext" >&5
 ac_lib_var=`echo Xext'_'XShapeSelectInput | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXext "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo Xext'_'XShapeSelectInput | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXext "
 cat > conftest.$ac_ext <<EOF
-#line 5502 "configure"
+#line 5505 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5509,7 +5512,7 @@ int main() {
 XShapeSelectInput()
 ; return 0; }
 EOF
 XShapeSelectInput()
 ; return 0; }
 EOF
-if { (eval echo configure:5513: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5516: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5532,12 +5535,12 @@ fi
 
     
 echo $ac_n "checking for XtOpenDisplay in -lXt""... $ac_c" 1>&6
 
     
 echo $ac_n "checking for XtOpenDisplay in -lXt""... $ac_c" 1>&6
-echo "configure:5536: checking for XtOpenDisplay in -lXt" >&5
+echo "configure:5539: checking for XtOpenDisplay in -lXt" >&5
 ac_lib_var=`echo Xt'_'XtOpenDisplay | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXt "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo Xt'_'XtOpenDisplay | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXt "
 cat > conftest.$ac_ext <<EOF
-#line 5541 "configure"
+#line 5544 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5548,7 +5551,7 @@ int main() {
 XtOpenDisplay()
 ; return 0; }
 EOF
 XtOpenDisplay()
 ; return 0; }
 EOF
-if { (eval echo configure:5552: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5555: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5571,17 +5574,18 @@ fi
 
 
   echo $ac_n "checking the version of X11 being used""... $ac_c" 1>&6
 
 
   echo $ac_n "checking the version of X11 being used""... $ac_c" 1>&6
-echo "configure:5575: checking the version of X11 being used" >&5
+echo "configure:5578: checking the version of X11 being used" >&5
   cat > conftest.$ac_ext <<EOF
   cat > conftest.$ac_ext <<EOF
-#line 5577 "configure"
+#line 5580 "configure"
 #include "confdefs.h"
 #include <X11/Intrinsic.h>
     int main(int c, char *v[]) { return c>1 ? XlibSpecificationRelease : 0; }
 EOF
 #include "confdefs.h"
 #include <X11/Intrinsic.h>
     int main(int c, char *v[]) { return c>1 ? XlibSpecificationRelease : 0; }
 EOF
-if { (eval echo configure:5582: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:5585: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ./conftest foobar; x11_release=$?
 else
 then
   ./conftest foobar; x11_release=$?
 else
+  conftest_rc="$?"
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
@@ -5602,15 +5606,15 @@ EOF
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5606: checking for $ac_hdr" >&5
+echo "configure:5610: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 5609 "configure"
+#line 5613 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5614: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5618: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -5641,7 +5645,7 @@ done
 
 
     echo $ac_n "checking for XFree86""... $ac_c" 1>&6
 
 
     echo $ac_n "checking for XFree86""... $ac_c" 1>&6
-echo "configure:5645: checking for XFree86" >&5
+echo "configure:5649: checking for XFree86" >&5
   if test -d "/usr/X386/include" -o \
           -f "/etc/XF86Config"    -o \
          -f "/etc/X11/XF86Config" -o \
   if test -d "/usr/X386/include" -o \
           -f "/etc/XF86Config"    -o \
          -f "/etc/X11/XF86Config" -o \
@@ -5661,12 +5665,12 @@ EOF
 
     test -z "$with_xmu" && { 
 echo $ac_n "checking for XmuReadBitmapDataFromFile in -lXmu""... $ac_c" 1>&6
 
     test -z "$with_xmu" && { 
 echo $ac_n "checking for XmuReadBitmapDataFromFile in -lXmu""... $ac_c" 1>&6
-echo "configure:5665: checking for XmuReadBitmapDataFromFile in -lXmu" >&5
+echo "configure:5669: checking for XmuReadBitmapDataFromFile in -lXmu" >&5
 ac_lib_var=`echo Xmu'_'XmuReadBitmapDataFromFile | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXmu "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo Xmu'_'XmuReadBitmapDataFromFile | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXmu "
 cat > conftest.$ac_ext <<EOF
-#line 5670 "configure"
+#line 5674 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5677,7 +5681,7 @@ int main() {
 XmuReadBitmapDataFromFile()
 ; return 0; }
 EOF
 XmuReadBitmapDataFromFile()
 ; return 0; }
 EOF
-if { (eval echo configure:5681: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5685: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5716,19 +5720,19 @@ EOF
 
       
 echo $ac_n "checking for main in -lXbsd""... $ac_c" 1>&6
 
       
 echo $ac_n "checking for main in -lXbsd""... $ac_c" 1>&6
-echo "configure:5720: checking for main in -lXbsd" >&5
+echo "configure:5724: checking for main in -lXbsd" >&5
 ac_lib_var=`echo Xbsd'_'main | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXbsd "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo Xbsd'_'main | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXbsd "
 cat > conftest.$ac_ext <<EOF
-#line 5725 "configure"
+#line 5729 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:5732: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5736: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5765,22 +5769,22 @@ fi
 fi 
 if test "$with_msw" != "no"; then
   echo "checking for MS-Windows" 1>&6
 fi 
 if test "$with_msw" != "no"; then
   echo "checking for MS-Windows" 1>&6
-echo "configure:5769: checking for MS-Windows" >&5
+echo "configure:5773: checking for MS-Windows" >&5
   
 echo $ac_n "checking for main in -lgdi32""... $ac_c" 1>&6
   
 echo $ac_n "checking for main in -lgdi32""... $ac_c" 1>&6
-echo "configure:5772: checking for main in -lgdi32" >&5
+echo "configure:5776: checking for main in -lgdi32" >&5
 ac_lib_var=`echo gdi32'_'main | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lgdi32 "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo gdi32'_'main | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lgdi32 "
 cat > conftest.$ac_ext <<EOF
-#line 5777 "configure"
+#line 5781 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:5784: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5788: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5811,6 +5815,7 @@ EOF
 
     install_pp="$blddir/lib-src/installexe.sh"
     libs_system="$libs_system -lshell32 -lgdi32 -luser32 -lcomctl32" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"-lshell32 -lgdi32 -luser32 -lcomctl32\" to \$libs_system"; fi
 
     install_pp="$blddir/lib-src/installexe.sh"
     libs_system="$libs_system -lshell32 -lgdi32 -luser32 -lcomctl32" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"-lshell32 -lgdi32 -luser32 -lcomctl32\" 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
     if test "$window_system" != x11; then
        window_system=msw
        test "$with_scrollbars" != "no" && with_scrollbars=msw \
     if test "$window_system" != x11; then
        window_system=msw
        test "$with_scrollbars" != "no" && with_scrollbars=msw \
@@ -5830,7 +5835,7 @@ EOF
    echo "    xemacs will be linked with \"dialog-msw.o\""
  fi
     else
    echo "    xemacs will be linked with \"dialog-msw.o\""
  fi
     else
-       test "$with_scrollbars"   != "no" && extra_objs="$extra_objs scrollbar-msw.o" &&  if test "$extra_verbose" = "yes"; then
+       test "$with_scrollbars" != "no" && extra_objs="$extra_objs scrollbar-msw.o" &&  if test "$extra_verbose" = "yes"; then
    echo "    xemacs will be linked with \"scrollbar-msw.o\""
  fi
        test "$with_menubars"   != "no" && extra_objs="$extra_objs menubar-msw.o" &&  if test "$extra_verbose" = "yes"; then
    echo "    xemacs will be linked with \"scrollbar-msw.o\""
  fi
        test "$with_menubars"   != "no" && extra_objs="$extra_objs menubar-msw.o" &&  if test "$extra_verbose" = "yes"; then
@@ -5839,17 +5844,17 @@ EOF
        test "$with_toolbars"   != "no" && extra_objs="$extra_objs toolbar-msw.o" &&  if test "$extra_verbose" = "yes"; then
    echo "    xemacs will be linked with \"toolbar-msw.o\""
  fi
        test "$with_toolbars"   != "no" && extra_objs="$extra_objs toolbar-msw.o" &&  if test "$extra_verbose" = "yes"; then
    echo "    xemacs will be linked with \"toolbar-msw.o\""
  fi
-       test "$with_dialogs"   != "no" && extra_objs="$extra_objs dialog-msw.o" &&  if test "$extra_verbose" = "yes"; then
+       test "$with_dialogs"    != "no" && extra_objs="$extra_objs dialog-msw.o" &&  if test "$extra_verbose" = "yes"; then
    echo "    xemacs will be linked with \"dialog-msw.o\""
  fi
     fi
         cat > conftest.$ac_ext <<EOF
    echo "    xemacs will be linked with \"dialog-msw.o\""
  fi
     fi
         cat > conftest.$ac_ext <<EOF
-#line 5848 "configure"
+#line 5853 "configure"
 #include "confdefs.h"
 #include <fcntl.h>
     int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; }
 EOF
 #include "confdefs.h"
 #include <fcntl.h>
     int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; }
 EOF
-if { (eval echo configure:5853: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:5858: \"$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
 then
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_MSG_SELECT
@@ -5860,16 +5865,15 @@ EOF
 }
 
 else
 }
 
 else
+  conftest_rc="$?"
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
 fi
 rm -fr conftest*
     const_is_losing=no
     with_file_coding=yes
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
 fi
 rm -fr conftest*
     const_is_losing=no
     with_file_coding=yes
-    use_minimal_tagbits=yes
-    use_indexed_lrecord_implementation=yes
-    extra_objs="$extra_objs console-msw.o device-msw.o event-msw.o frame-msw.o objects-msw.o select-msw.o redisplay-msw.o glyphs-msw.o" &&  if test "$extra_verbose" = "yes"; then
-   echo "    xemacs will be linked with \"console-msw.o device-msw.o event-msw.o frame-msw.o objects-msw.o select-msw.o redisplay-msw.o glyphs-msw.o\""
+    extra_objs="$extra_objs console-msw.o device-msw.o event-msw.o frame-msw.o objects-msw.o select-msw.o redisplay-msw.o glyphs-msw.o gui-msw.o" &&  if test "$extra_verbose" = "yes"; then
+   echo "    xemacs will be linked with \"console-msw.o device-msw.o event-msw.o frame-msw.o objects-msw.o select-msw.o redisplay-msw.o glyphs-msw.o gui-msw.o\""
  fi
   fi
 fi
  fi
   fi
 fi
@@ -5879,7 +5883,7 @@ fi
 test -z "$window_system" && window_system="none"
 
 if test "$window_system" = "none"; then
 test -z "$window_system" && window_system="none"
 
 if test "$window_system" = "none"; then
-  for feature in menubars scrollbars toolbars dialogs dragndrop
+  for feature in menubars scrollbars toolbars dialogs dragndrop xface
   do
     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
        echo "configure: warning: --with-$feature ignored:  Not valid without window system support" 1>&2
   do
     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
        echo "configure: warning: --with-$feature ignored:  Not valid without window system support" 1>&2
@@ -5903,8 +5907,7 @@ else
 fi
 
 if test "$with_x11" != "yes"; then
 fi
 
 if test "$with_x11" != "yes"; then
-            for feature in tooltalk cde offix session xim xmu \
-                 xface
+            for feature in tooltalk cde offix session xim xmu
   do
     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
        echo "configure: warning: --with-$feature ignored:  Not valid without X support" 1>&2
   do
     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
        echo "configure: warning: --with-$feature ignored:  Not valid without X support" 1>&2
@@ -5927,7 +5930,7 @@ case "$x_libraries" in *X11R4* )
 esac
 
 echo "checking for session-management option" 1>&6
 esac
 
 echo "checking for session-management option" 1>&6
-echo "configure:5931: checking for session-management option" >&5;
+echo "configure:5934: checking for session-management option" >&5;
 if test "$with_session" != "no"; then
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_SESSION
 if test "$with_session" != "no"; then
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_SESSION
@@ -5942,15 +5945,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
 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:5946: checking for X11/Xauth.h" >&5
+echo "configure:5949: checking for X11/Xauth.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 5949 "configure"
+#line 5952 "configure"
 #include "confdefs.h"
 #include <X11/Xauth.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <X11/Xauth.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5954: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5957: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -5973,12 +5976,12 @@ fi
  }
 test -z "$with_xauth" && { 
 echo $ac_n "checking for XauGetAuthByAddr in -lXau""... $ac_c" 1>&6
  }
 test -z "$with_xauth" && { 
 echo $ac_n "checking for XauGetAuthByAddr in -lXau""... $ac_c" 1>&6
-echo "configure:5977: checking for XauGetAuthByAddr in -lXau" >&5
+echo "configure:5980: checking for XauGetAuthByAddr in -lXau" >&5
 ac_lib_var=`echo Xau'_'XauGetAuthByAddr | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXau "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo Xau'_'XauGetAuthByAddr | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXau "
 cat > conftest.$ac_ext <<EOF
-#line 5982 "configure"
+#line 5985 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5989,7 +5992,7 @@ int main() {
 XauGetAuthByAddr()
 ; return 0; }
 EOF
 XauGetAuthByAddr()
 ; return 0; }
 EOF
-if { (eval echo configure:5993: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5996: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6034,15 +6037,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
       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:6038: checking for ${dir}tt_c.h" >&5
+echo "configure:6041: checking for ${dir}tt_c.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 6041 "configure"
+#line 6044 "configure"
 #include "confdefs.h"
 #include <${dir}tt_c.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <${dir}tt_c.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6049: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6078,12 +6081,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
 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:6082: checking "$xe_msg_checking"" >&5
+echo "configure:6085: 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
 ac_lib_var=`echo tt'_'tt_message_create | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ltt $extra_libs"
 cat > conftest.$ac_ext <<EOF
-#line 6087 "configure"
+#line 6090 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6094,7 +6097,7 @@ int main() {
 tt_message_create()
 ; return 0; }
 EOF
 tt_message_create()
 ; return 0; }
 EOF
-if { (eval echo configure:6098: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6101: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6151,15 +6154,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
 
 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:6155: checking for Dt/Dt.h" >&5
+echo "configure:6158: checking for Dt/Dt.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 6158 "configure"
+#line 6161 "configure"
 #include "confdefs.h"
 #include <Dt/Dt.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <Dt/Dt.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6163: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6166: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6182,12 +6185,12 @@ fi
  }
 test -z "$with_cde" && { 
 echo $ac_n "checking for DtDndDragStart in -lDtSvc""... $ac_c" 1>&6
  }
 test -z "$with_cde" && { 
 echo $ac_n "checking for DtDndDragStart in -lDtSvc""... $ac_c" 1>&6
-echo "configure:6186: checking for DtDndDragStart in -lDtSvc" >&5
+echo "configure:6189: checking for DtDndDragStart in -lDtSvc" >&5
 ac_lib_var=`echo DtSvc'_'DtDndDragStart | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lDtSvc "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo DtSvc'_'DtDndDragStart | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lDtSvc "
 cat > conftest.$ac_ext <<EOF
-#line 6191 "configure"
+#line 6194 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6198,7 +6201,7 @@ int main() {
 DtDndDragStart()
 ; return 0; }
 EOF
 DtDndDragStart()
 ; return 0; }
 EOF
-if { (eval echo configure:6202: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6205: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6267,7 +6270,7 @@ EOF
 fi
 
 echo $ac_n "checking if drag and drop API is needed""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking if drag and drop API is needed""... $ac_c" 1>&6
-echo "configure:6271: checking if drag and drop API is needed" >&5
+echo "configure:6274: checking if drag and drop API is needed" >&5
 if test "$with_dragndrop" != "no" ; then
   if test -n "$dragndrop_proto" ; then
     with_dragndrop=yes
 if test "$with_dragndrop" != "no" ; then
   if test -n "$dragndrop_proto" ; then
     with_dragndrop=yes
@@ -6288,18 +6291,18 @@ EOF
 fi
 
 echo "checking for LDAP" 1>&6
 fi
 
 echo "checking for LDAP" 1>&6
-echo "configure:6292: checking for LDAP" >&5
+echo "configure:6295: 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
 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:6295: checking for ldap.h" >&5
+echo "configure:6298: checking for ldap.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 6298 "configure"
+#line 6301 "configure"
 #include "confdefs.h"
 #include <ldap.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <ldap.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6303: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6306: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6322,15 +6325,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
  }
 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:6326: checking for lber.h" >&5
+echo "configure:6329: checking for lber.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 6329 "configure"
+#line 6332 "configure"
 #include "confdefs.h"
 #include <lber.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <lber.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6334: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6337: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6356,12 +6359,12 @@ if test "$with_ldap" != "no"; then
 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
 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:6360: checking "$xe_msg_checking"" >&5
+echo "configure:6363: 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
 ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lldap -llber"
 cat > conftest.$ac_ext <<EOF
-#line 6365 "configure"
+#line 6368 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6372,7 +6375,7 @@ int main() {
 ldap_open()
 ; return 0; }
 EOF
 ldap_open()
 ; return 0; }
 EOF
-if { (eval echo configure:6376: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6379: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6395,12 +6398,12 @@ fi
  }
   test "$with_umich_ldap" = "no" && { 
 echo $ac_n "checking for ldap_set_option in -lldap10""... $ac_c" 1>&6
  }
   test "$with_umich_ldap" = "no" && { 
 echo $ac_n "checking for ldap_set_option in -lldap10""... $ac_c" 1>&6
-echo "configure:6399: checking for ldap_set_option in -lldap10" >&5
+echo "configure:6402: checking for ldap_set_option in -lldap10" >&5
 ac_lib_var=`echo ldap10'_'ldap_set_option | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lldap10 "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo ldap10'_'ldap_set_option | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lldap10 "
 cat > conftest.$ac_ext <<EOF
-#line 6404 "configure"
+#line 6407 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6411,7 +6414,7 @@ int main() {
 ldap_set_option()
 ; return 0; }
 EOF
 ldap_set_option()
 ; return 0; }
 EOF
-if { (eval echo configure:6415: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6418: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6475,14 +6478,15 @@ fi
 
 if test "$window_system" != "none"; then
   echo "checking for graphics libraries" 1>&6
 
 if test "$window_system" != "none"; then
   echo "checking for graphics libraries" 1>&6
-echo "configure:6479: checking for graphics libraries" >&5
+echo "configure:6482: checking for graphics libraries" >&5
 
 
-    if test -z "$with_xpm"; then
+    xpm_problem=""
+  if test -z "$with_xpm"; then
     echo $ac_n "checking for Xpm - no older than 3.4f""... $ac_c" 1>&6
     echo $ac_n "checking for Xpm - no older than 3.4f""... $ac_c" 1>&6
-echo "configure:6483: checking for Xpm - no older than 3.4f" >&5
+echo "configure:6487: checking for Xpm - no older than 3.4f" >&5
     xe_check_libs=-lXpm
     cat > conftest.$ac_ext <<EOF
     xe_check_libs=-lXpm
     cat > conftest.$ac_ext <<EOF
-#line 6486 "configure"
+#line 6490 "configure"
 #include "confdefs.h"
 #include <X11/xpm.h>
     int main(int c, char **v) {
 #include "confdefs.h"
 #include <X11/xpm.h>
     int main(int c, char **v) {
@@ -6490,27 +6494,28 @@ echo "configure:6483: checking for Xpm - no older than 3.4f" >&5
       XpmIncludeVersion != XpmLibraryVersion() ? 1 :
       XpmIncludeVersion < 30406 ? 2 : 0 ;}
 EOF
       XpmIncludeVersion != XpmLibraryVersion() ? 1 :
       XpmIncludeVersion < 30406 ? 2 : 0 ;}
 EOF
-if { (eval echo configure:6494: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:6498: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ./conftest dummy_arg; xpm_status=$?;
 then
   ./conftest dummy_arg; xpm_status=$?;
-      if test "$?" = "0"; then
+      if test "$xpm_status" = "0"; then
         with_xpm=yes;
       else
         with_xpm=no;
         with_xpm=yes;
       else
         with_xpm=no;
-        if test "$?" = "1"; then
+        if test "$xpm_status" = "1"; then
           xpm_problem="Xpm library version and header file version don't match!"
           xpm_problem="Xpm library version and header file version don't match!"
-        elif test "$?" = "2"; then
+        elif test "$xpm_status" = "2"; then
           xpm_problem="Xpm library version is too old!"
         else
           xpm_problem="Internal xpm detection logic error!"
         fi
         echo "
           xpm_problem="Xpm library version is too old!"
         else
           xpm_problem="Internal xpm detection logic error!"
         fi
         echo "
-*** WARNING *** $problem
+*** WARNING *** $xpm_problem
   I'm not touching that with a 10-foot pole!
   If you really want to use the installed version of Xpm, rerun
   I'm not touching that with a 10-foot pole!
   If you really want to use the installed version of Xpm, rerun
-  configure --with-xpm=yes, but don't blame me if XEmacs crashes!"
+  configure and add '--with-xpm=yes', but don't blame me if XEmacs crashes!"
     fi
 else
     fi
 else
+  conftest_rc="$?"
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
@@ -6531,17 +6536,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
 
     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:6535: checking for \"FOR_MSW\" xpm" >&5
+echo "configure:6540: checking for \"FOR_MSW\" xpm" >&5
     xe_check_libs=-lXpm
     cat > conftest.$ac_ext <<EOF
     xe_check_libs=-lXpm
     cat > conftest.$ac_ext <<EOF
-#line 6538 "configure"
+#line 6543 "configure"
 #include "confdefs.h"
 
 int main() {
 XpmCreatePixmapFromData()
 ; return 0; }
 EOF
 #include "confdefs.h"
 
 int main() {
 XpmCreatePixmapFromData()
 ; return 0; }
 EOF
-if { (eval echo configure:6545: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6550: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   xpm_for_msw=no
 else
   rm -rf conftest*
   xpm_for_msw=no
 else
@@ -6565,58 +6570,53 @@ EOF
     fi
   fi
 
     fi
   fi
 
-      if test "$with_png $with_tiff" != "no no"; then
-    
-echo $ac_n "checking for inflate in -lc""... $ac_c" 1>&6
-echo "configure:6572: checking for inflate in -lc" >&5
-ac_lib_var=`echo c'_'inflate | sed 'y%./+-%__p_%'`
+    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:6576: checking for compface.h" >&5
 
 
-xe_check_libs=" -lc "
 cat > conftest.$ac_ext <<EOF
 cat > conftest.$ac_ext <<EOF
-#line 6577 "configure"
+#line 6579 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char inflate();
-
-int main() {
-inflate()
-; return 0; }
+#include <compface.h>
 EOF
 EOF
-if { (eval echo configure:6588: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:6584: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
   rm -rf conftest*
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+  eval "ac_cv_header_$ac_safe=yes"
 else
 else
+  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  eval "ac_cv_header_$ac_safe=no"
 fi
 rm -f conftest*
 fi
 rm -f conftest*
-xe_check_libs=""
-
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   :
 else
   echo "$ac_t""no" 1>&6
   echo "$ac_t""yes" 1>&6
   :
 else
   echo "$ac_t""no" 1>&6
+with_xface=no
+fi
+ }
+  test -z "$with_xface" && { 
+echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6
+echo "configure:6607: checking for UnGenFace in -lcompface" >&5
+ac_lib_var=`echo compface'_'UnGenFace | sed 'y%./+-%__p_%'`
 
 
-echo $ac_n "checking for inflate in -lz""... $ac_c" 1>&6
-echo "configure:6607: checking for inflate in -lz" >&5
-ac_lib_var=`echo z'_'inflate | sed 'y%./+-%__p_%'`
-
-xe_check_libs=" -lz "
+xe_check_libs=" -lcompface "
 cat > conftest.$ac_ext <<EOF
 #line 6612 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
 cat > conftest.$ac_ext <<EOF
 #line 6612 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
-char inflate();
+char UnGenFace();
 
 int main() {
 
 int main() {
-inflate()
+UnGenFace()
 ; return 0; }
 EOF
 if { (eval echo configure:6623: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
 ; return 0; }
 EOF
 if { (eval echo configure:6623: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
@@ -6633,17 +6633,50 @@ xe_check_libs=""
 
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
   echo "$ac_t""yes" 1>&6
 
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
   echo "$ac_t""yes" 1>&6
-  libs_x="-lz $libs_x" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-lz\" to \$libs_x"; fi
+  : 
 else
   echo "$ac_t""no" 1>&6
 else
   echo "$ac_t""no" 1>&6
+with_xface=no
+fi
 
 
-echo $ac_n "checking for inflate in -lgz""... $ac_c" 1>&6
-echo "configure:6642: checking for inflate in -lgz" >&5
-ac_lib_var=`echo gz'_'inflate | sed 'y%./+-%__p_%'`
+ }
+  test -z "$with_xface" && with_xface=yes
+  if test "$with_xface" = "yes"; then
+    { test "$extra_verbose" = "yes" && cat << \EOF
+    Defining HAVE_XFACE
+EOF
+cat >> confdefs.h <<\EOF
+#define HAVE_XFACE 1
+EOF
+}
 
 
-xe_check_libs=" -lgz "
+    libs_x="-lcompface $libs_x" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-lcompface\" to \$libs_x"; fi
+  fi
+
+        if test "$with_gif" != "no"; then
+    with_gif="yes"
+    { test "$extra_verbose" = "yes" && cat << \EOF
+    Defining HAVE_GIF
+EOF
+cat >> confdefs.h <<\EOF
+#define HAVE_GIF 1
+EOF
+}
+
+    extra_objs="$extra_objs dgif_lib.o gif_io.o" &&  if test "$extra_verbose" = "yes"; then
+   echo "    xemacs will be linked with \"dgif_lib.o gif_io.o\""
+ fi
+  fi
+
+      if test "$with_png $with_tiff" != "no no"; then
+    
+echo $ac_n "checking for inflate in -lc""... $ac_c" 1>&6
+echo "configure:6675: checking for inflate in -lc" >&5
+ac_lib_var=`echo c'_'inflate | sed 'y%./+-%__p_%'`
+
+xe_check_libs=" -lc "
 cat > conftest.$ac_ext <<EOF
 cat > conftest.$ac_ext <<EOF
-#line 6647 "configure"
+#line 6680 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6654,7 +6687,7 @@ int main() {
 inflate()
 ; return 0; }
 EOF
 inflate()
 ; return 0; }
 EOF
-if { (eval echo configure:6658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6691: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6668,72 +6701,63 @@ xe_check_libs=""
 
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
   echo "$ac_t""yes" 1>&6
 
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
   echo "$ac_t""yes" 1>&6
-  libs_x="-lgz $libs_x" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-lgz\" to \$libs_x"; fi
+  :
 else
   echo "$ac_t""no" 1>&6
 else
   echo "$ac_t""no" 1>&6
-fi
-
-
-fi
-
-
-fi
 
 
+echo $ac_n "checking for inflate in -lz""... $ac_c" 1>&6
+echo "configure:6710: checking for inflate in -lz" >&5
+ac_lib_var=`echo z'_'inflate | sed 'y%./+-%__p_%'`
 
 
-  fi
-
-    echo $ac_n "checking for gifreader""... $ac_c" 1>&6
-echo "configure:6687: checking for gifreader" >&5
-  test -z "$with_gif" && { ac_safe=`echo "gifrlib.h" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for gifrlib.h""... $ac_c" 1>&6
-echo "configure:6690: checking for gifrlib.h" >&5
-
+xe_check_libs=" -lz "
 cat > conftest.$ac_ext <<EOF
 cat > conftest.$ac_ext <<EOF
-#line 6693 "configure"
+#line 6715 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
-#include <gifrlib.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char inflate();
+
+int main() {
+inflate()
+; return 0; }
 EOF
 EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6698: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
+if { (eval echo configure:6726: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
 else
-  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
 rm -f conftest*
 fi
 rm -f conftest*
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+xe_check_libs=""
+
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
   echo "$ac_t""yes" 1>&6
   echo "$ac_t""yes" 1>&6
-  :
+  libs_x="-lz $libs_x" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-lz\" to \$libs_x"; fi
 else
   echo "$ac_t""no" 1>&6
 else
   echo "$ac_t""no" 1>&6
-with_gif=no
-fi
- }
-  test -z "$with_gif" && { 
-echo $ac_n "checking for GetGifError in -lgifreader""... $ac_c" 1>&6
-echo "configure:6721: checking for GetGifError in -lgifreader" >&5
-ac_lib_var=`echo gifreader'_'GetGifError | sed 'y%./+-%__p_%'`
 
 
-xe_check_libs=" -lgifreader "
+echo $ac_n "checking for inflate in -lgz""... $ac_c" 1>&6
+echo "configure:6745: checking for inflate in -lgz" >&5
+ac_lib_var=`echo gz'_'inflate | sed 'y%./+-%__p_%'`
+
+xe_check_libs=" -lgz "
 cat > conftest.$ac_ext <<EOF
 cat > conftest.$ac_ext <<EOF
-#line 6726 "configure"
+#line 6750 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
-char GetGifError();
+char inflate();
 
 int main() {
 
 int main() {
-GetGifError()
+inflate()
 ; return 0; }
 EOF
 ; return 0; }
 EOF
-if { (eval echo configure:6737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6761: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6747,37 +6771,31 @@ xe_check_libs=""
 
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
   echo "$ac_t""yes" 1>&6
 
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
   echo "$ac_t""yes" 1>&6
-  : 
+  libs_x="-lgz $libs_x" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-lgz\" to \$libs_x"; fi
 else
   echo "$ac_t""no" 1>&6
 else
   echo "$ac_t""no" 1>&6
-with_gif=no
 fi
 
 fi
 
- }
-  test -z "$with_gif" && with_gif=yes
-  if test "$with_gif" = "yes"; then
-    { test "$extra_verbose" = "yes" && cat << \EOF
-    Defining HAVE_GIF
-EOF
-cat >> confdefs.h <<\EOF
-#define HAVE_GIF 1
-EOF
-}
 
 
-    libs_x="-lgifreader $libs_x" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-lgifreader\" to \$libs_x"; fi
+fi
+
+
+fi
+
+
   fi
 
     test -z "$with_jpeg" && { ac_safe=`echo "jpeglib.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for jpeglib.h""... $ac_c" 1>&6
   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:6773: checking for jpeglib.h" >&5
+echo "configure:6791: checking for jpeglib.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 6776 "configure"
+#line 6794 "configure"
 #include "confdefs.h"
 #include <jpeglib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <jpeglib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6781: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6799: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6800,12 +6818,12 @@ fi
  }
   test -z "$with_jpeg" && { 
 echo $ac_n "checking for jpeg_destroy_decompress in -ljpeg""... $ac_c" 1>&6
  }
   test -z "$with_jpeg" && { 
 echo $ac_n "checking for jpeg_destroy_decompress in -ljpeg""... $ac_c" 1>&6
-echo "configure:6804: checking for jpeg_destroy_decompress in -ljpeg" >&5
+echo "configure:6822: 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
 ac_lib_var=`echo jpeg'_'jpeg_destroy_decompress | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ljpeg "
 cat > conftest.$ac_ext <<EOF
-#line 6809 "configure"
+#line 6827 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6816,7 +6834,7 @@ int main() {
 jpeg_destroy_decompress()
 ; return 0; }
 EOF
 jpeg_destroy_decompress()
 ; return 0; }
 EOF
-if { (eval echo configure:6820: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6838: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6850,34 +6868,12 @@ EOF
     libs_x="-ljpeg $libs_x" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-ljpeg\" to \$libs_x"; fi
   fi
 
     libs_x="-ljpeg $libs_x" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-ljpeg\" to \$libs_x"; fi
   fi
 
-    if test -z "$with_png"; then
-    echo $ac_n "checking for png.h - no older than 0.96""... $ac_c" 1>&6
-echo "configure:6856: checking for png.h - no older than 0.96" >&5
-    cat > conftest.$ac_ext <<EOF
-#line 6858 "configure"
-#include "confdefs.h"
-#include <png.h>
-#if PNG_LIBPNG_VER >= 96
-yes
-#endif
-
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "yes" >/dev/null 2>&1; then
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
-else
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6; with_png=no
-fi
-rm -f conftest*
-
-  fi
+    png_problem=""
   test -z "$with_png" && { echo $ac_n "checking for pow""... $ac_c" 1>&6
   test -z "$with_png" && { echo $ac_n "checking for pow""... $ac_c" 1>&6
-echo "configure:6878: checking for pow" >&5
+echo "configure:6874: checking for pow" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 6881 "configure"
+#line 6877 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char pow(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char pow(); below.  */
@@ -6900,7 +6896,7 @@ pow();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:6904: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_pow=yes"
 else
   rm -rf conftest*
   eval "ac_cv_func_pow=yes"
 else
@@ -6919,14 +6915,45 @@ else
 with_png=no
 fi
  }
 with_png=no
 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:6921: checking for png.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 6924 "configure"
+#include "confdefs.h"
+#include <png.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:6929: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out`
+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_png=no
+fi
+ }
   test -z "$with_png" && { 
 echo $ac_n "checking for png_read_image in -lpng""... $ac_c" 1>&6
   test -z "$with_png" && { 
 echo $ac_n "checking for png_read_image in -lpng""... $ac_c" 1>&6
-echo "configure:6925: checking for png_read_image in -lpng" >&5
+echo "configure:6952: 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
 ac_lib_var=`echo png'_'png_read_image | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lpng "
 cat > conftest.$ac_ext <<EOF
-#line 6930 "configure"
+#line 6957 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6937,7 +6964,7 @@ int main() {
 png_read_image()
 ; return 0; }
 EOF
 png_read_image()
 ; return 0; }
 EOF
-if { (eval echo configure:6941: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6968: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6958,7 +6985,48 @@ with_png=no
 fi
 
  }
 fi
 
  }
-  test -z "$with_png" && with_png=yes
+  if test -z "$with_png"; then
+    echo $ac_n "checking for workable png version information""... $ac_c" 1>&6
+echo "configure:6991: checking for workable png version information" >&5
+    xe_check_libs="-lpng -lz"
+    cat > conftest.$ac_ext <<EOF
+#line 6994 "configure"
+#include "confdefs.h"
+#include <png.h>
+    int main(int c, char **v) {
+    if (c == 1) return 0;
+    if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING) != 0) return 1;
+    return (PNG_LIBPNG_VER < 10002) ? 2 : 0 ;}
+EOF
+if { (eval echo configure:7002: \"$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
+       with_png=yes;
+      else
+       with_png=no;
+       if test "$png_status" = "1"; then
+         png_problem="PNG library version and header file don't match!"
+        elif test "$png_status" = "2"; then
+         png_problem="PNG library version too old (pre 1.0.2)!"
+       fi
+       echo "
+*** WARNING *** $png_problem
+  I'm not touching that with a 10-foot pole!
+  If you really want to use the installed version of libPNG, rerun
+  configure and add '--with-png=yes', but don't blame me if XEmacs crashes!"
+    fi
+else
+  conftest_rc="$?"
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  with_png=no
+fi
+rm -fr conftest*
+    xe_check_libs=
+    echo "$ac_t""$with_png" 1>&6
+  fi
   if test "$with_png" = "yes"; then
     { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_PNG
   if test "$with_png" = "yes"; then
     { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_PNG
@@ -6973,15 +7041,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
 
     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:6977: checking for tiffio.h" >&5
+echo "configure:7045: checking for tiffio.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 6980 "configure"
+#line 7048 "configure"
 #include "confdefs.h"
 #include <tiffio.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <tiffio.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6985: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7053: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7004,12 +7072,12 @@ fi
  }
   test -z "$with_tiff" && { 
 echo $ac_n "checking for TIFFClientOpen in -ltiff""... $ac_c" 1>&6
  }
   test -z "$with_tiff" && { 
 echo $ac_n "checking for TIFFClientOpen in -ltiff""... $ac_c" 1>&6
-echo "configure:7008: checking for TIFFClientOpen in -ltiff" >&5
+echo "configure:7076: checking for TIFFClientOpen in -ltiff" >&5
 ac_lib_var=`echo tiff'_'TIFFClientOpen | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ltiff "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo tiff'_'TIFFClientOpen | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ltiff "
 cat > conftest.$ac_ext <<EOF
-#line 7013 "configure"
+#line 7081 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7020,7 +7088,7 @@ int main() {
 TIFFClientOpen()
 ; return 0; }
 EOF
 TIFFClientOpen()
 ; return 0; }
 EOF
-if { (eval echo configure:7024: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7092: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7059,99 +7127,16 @@ fi
 if test "$with_x11" = "yes"; then
 
   echo "checking for X11 graphics libraries" 1>&6
 if test "$with_x11" = "yes"; then
 
   echo "checking for X11 graphics libraries" 1>&6
-echo "configure:7063: checking for X11 graphics libraries" >&5
-
-    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:7067: checking for compface.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 7070 "configure"
-#include "confdefs.h"
-#include <compface.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7075: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-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_xface=no
-fi
- }
-  test -z "$with_xface" && { 
-echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6
-echo "configure:7098: 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 7103 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char UnGenFace();
-
-int main() {
-UnGenFace()
-; return 0; }
-EOF
-if { (eval echo configure:7114: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-xe_check_libs=""
-
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
-  echo "$ac_t""yes" 1>&6
-  : 
-else
-  echo "$ac_t""no" 1>&6
-with_xface=no
-fi
-
- }
-  test -z "$with_xface" && with_xface=yes
-  if test "$with_xface" = "yes"; then
-    { test "$extra_verbose" = "yes" && cat << \EOF
-    Defining HAVE_XFACE
-EOF
-cat >> confdefs.h <<\EOF
-#define HAVE_XFACE 1
-EOF
-}
-
-    libs_x="-lcompface $libs_x" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-lcompface\" to \$libs_x"; fi
-  fi
+echo "configure:7131: checking for X11 graphics libraries" >&5
 
     
 echo $ac_n "checking for XawScrollbarSetThumb in -lXaw""... $ac_c" 1>&6
 
     
 echo $ac_n "checking for XawScrollbarSetThumb in -lXaw""... $ac_c" 1>&6
-echo "configure:7150: checking for XawScrollbarSetThumb in -lXaw" >&5
+echo "configure:7135: checking for XawScrollbarSetThumb in -lXaw" >&5
 ac_lib_var=`echo Xaw'_'XawScrollbarSetThumb | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXaw "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo Xaw'_'XawScrollbarSetThumb | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXaw "
 cat > conftest.$ac_ext <<EOF
-#line 7155 "configure"
+#line 7140 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7162,7 +7147,7 @@ int main() {
 XawScrollbarSetThumb()
 ; return 0; }
 EOF
 XawScrollbarSetThumb()
 ; return 0; }
 EOF
-if { (eval echo configure:7166: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7151: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7186,15 +7171,15 @@ fi
                     
     ac_safe=`echo "Xm/Xm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for Xm/Xm.h""... $ac_c" 1>&6
                     
     ac_safe=`echo "Xm/Xm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for Xm/Xm.h""... $ac_c" 1>&6
-echo "configure:7190: checking for Xm/Xm.h" >&5
+echo "configure:7175: checking for Xm/Xm.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 7193 "configure"
+#line 7178 "configure"
 #include "confdefs.h"
 #include <Xm/Xm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <Xm/Xm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7198: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7183: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7211,12 +7196,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 "$ac_t""yes" 1>&6
   
 echo $ac_n "checking for XmStringFree in -lXm""... $ac_c" 1>&6
-echo "configure:7215: checking for XmStringFree in -lXm" >&5
+echo "configure:7200: checking for XmStringFree in -lXm" >&5
 ac_lib_var=`echo Xm'_'XmStringFree | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXm "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo Xm'_'XmStringFree | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXm "
 cat > conftest.$ac_ext <<EOF
-#line 7220 "configure"
+#line 7205 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7227,7 +7212,7 @@ int main() {
 XmStringFree()
 ; return 0; }
 EOF
 XmStringFree()
 ; return 0; }
 EOF
-if { (eval echo configure:7231: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7216: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7256,9 +7241,9 @@ fi
 
   if test "$have_motif" = "yes"; then
         echo $ac_n "checking for Lesstif""... $ac_c" 1>&6
 
   if test "$have_motif" = "yes"; then
         echo $ac_n "checking for Lesstif""... $ac_c" 1>&6
-echo "configure:7260: checking for Lesstif" >&5
+echo "configure:7245: checking for Lesstif" >&5
     cat > conftest.$ac_ext <<EOF
     cat > conftest.$ac_ext <<EOF
-#line 7262 "configure"
+#line 7247 "configure"
 #include "confdefs.h"
 #include <Xm/Xm.h>
 #ifdef LESSTIF_VERSION
 #include "confdefs.h"
 #include <Xm/Xm.h>
 #ifdef LESSTIF_VERSION
@@ -7475,9 +7460,6 @@ test "$with_dialogs"    != "no"      && extra_objs="$extra_objs dialog.o" &&  if
 test "$with_toolbars"   != "no"      && extra_objs="$extra_objs toolbar.o" &&  if test "$extra_verbose" = "yes"; then
    echo "    xemacs will be linked with \"toolbar.o\""
  fi
 test "$with_toolbars"   != "no"      && extra_objs="$extra_objs toolbar.o" &&  if test "$extra_verbose" = "yes"; then
    echo "    xemacs will be linked with \"toolbar.o\""
  fi
-test "$all_widgets" != "no no no no" && extra_objs="$extra_objs gui.o" &&  if test "$extra_verbose" = "yes"; then
-   echo "    xemacs will be linked with \"gui.o\""
- fi
 
 if test "$with_x11" = "yes"; then
   test "$with_menubars"   != "no"      && extra_objs="$extra_objs menubar-x.o" &&  if test "$extra_verbose" = "yes"; then
 
 if test "$with_x11" = "yes"; then
   test "$with_menubars"   != "no"      && extra_objs="$extra_objs menubar-x.o" &&  if test "$extra_verbose" = "yes"; then
@@ -7503,24 +7485,6 @@ else
   fi
 fi
 
   fi
 fi
 
-test "$use_minimal_tagbits" = "yes" && { test "$extra_verbose" = "yes" && cat << \EOF
-    Defining USE_MINIMAL_TAGBITS
-EOF
-cat >> confdefs.h <<\EOF
-#define USE_MINIMAL_TAGBITS 1
-EOF
-}
-
-test "$use_indexed_lrecord_implementation" = "yes" && \
-  { test "$extra_verbose" = "yes" && cat << \EOF
-    Defining USE_INDEXED_LRECORD_IMPLEMENTATION
-EOF
-cat >> confdefs.h <<\EOF
-#define USE_INDEXED_LRECORD_IMPLEMENTATION 1
-EOF
-}
-
-
 
 test -z "$with_mule" && with_mule=no
 test -z "$with_file_coding" && with_file_coding=no
 
 test -z "$with_mule" && with_mule=no
 test -z "$with_file_coding" && with_file_coding=no
@@ -7542,7 +7506,7 @@ fi
 
 if test "$with_mule" = "yes" ; then
   echo "checking for Mule-related features" 1>&6
 
 if test "$with_mule" = "yes" ; then
   echo "checking for Mule-related features" 1>&6
-echo "configure:7546: checking for Mule-related features" >&5
+echo "configure:7510: checking for Mule-related features" >&5
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining MULE
 EOF
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining MULE
 EOF
@@ -7559,23 +7523,23 @@ cat >> confdefs.h <<\EOF
 EOF
 }
 
 EOF
 }
 
-  extra_objs="$extra_objs mule.o mule-ccl.o mule-charset.o mule-coding.o file-coding.o" &&  if test "$extra_verbose" = "yes"; then
-   echo "    xemacs will be linked with \"mule.o mule-ccl.o mule-charset.o mule-coding.o file-coding.o\""
+  extra_objs="$extra_objs mule.o mule-ccl.o mule-charset.o file-coding.o" &&  if test "$extra_verbose" = "yes"; then
+   echo "    xemacs will be linked with \"mule.o mule-ccl.o mule-charset.o file-coding.o\""
  fi
 
     for ac_hdr in libintl.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
  fi
 
     for ac_hdr in libintl.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:7571: checking for $ac_hdr" >&5
+echo "configure:7535: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 7574 "configure"
+#line 7538 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7579: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7543: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7606,12 +7570,12 @@ done
 
   
 echo $ac_n "checking for strerror in -lintl""... $ac_c" 1>&6
 
   
 echo $ac_n "checking for strerror in -lintl""... $ac_c" 1>&6
-echo "configure:7610: checking for strerror in -lintl" >&5
+echo "configure:7574: checking for strerror in -lintl" >&5
 ac_lib_var=`echo intl'_'strerror | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lintl "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo intl'_'strerror | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lintl "
 cat > conftest.$ac_ext <<EOF
-#line 7615 "configure"
+#line 7579 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7622,7 +7586,7 @@ int main() {
 strerror()
 ; return 0; }
 EOF
 strerror()
 ; return 0; }
 EOF
-if { (eval echo configure:7626: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7590: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7655,19 +7619,58 @@ fi
 
 
   echo "checking for Mule input methods" 1>&6
 
 
   echo "checking for Mule input methods" 1>&6
-echo "configure:7659: checking for Mule input methods" >&5
+echo "configure:7623: checking for Mule input methods" >&5
         case "$with_xim" in "" | "yes" )
     echo "checking for XIM" 1>&6
         case "$with_xim" in "" | "yes" )
     echo "checking for XIM" 1>&6
-echo "configure:7662: checking for XIM" >&5
-        if test "$have_lesstif" = "yes"; then with_xim=xlib
-    else 
+echo "configure:7626: checking for XIM" >&5
+    
+echo $ac_n "checking for XOpenIM in -lX11""... $ac_c" 1>&6
+echo "configure:7629: 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 7634 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char XOpenIM();
+
+int main() {
+XOpenIM()
+; return 0; }
+EOF
+if { (eval echo configure:7645: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+xe_check_libs=""
+
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
+  echo "$ac_t""yes" 1>&6
+  with_xim=xlib
+else
+  echo "$ac_t""no" 1>&6
+with_xim=no
+fi
+
+
+        if test "$have_motif $have_lesstif" = "yes no"; then
+      
 echo $ac_n "checking for XmImMbLookupString in -lXm""... $ac_c" 1>&6
 echo $ac_n "checking for XmImMbLookupString in -lXm""... $ac_c" 1>&6
-echo "configure:7666: checking for XmImMbLookupString in -lXm" >&5
+echo "configure:7669: checking for XmImMbLookupString in -lXm" >&5
 ac_lib_var=`echo Xm'_'XmImMbLookupString | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXm "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo Xm'_'XmImMbLookupString | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXm "
 cat > conftest.$ac_ext <<EOF
-#line 7671 "configure"
+#line 7674 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7678,7 +7681,7 @@ int main() {
 XmImMbLookupString()
 ; return 0; }
 EOF
 XmImMbLookupString()
 ; return 0; }
 EOF
-if { (eval echo configure:7682: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7685: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7695,11 +7698,10 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
   with_xim=motif
 else
   echo "$ac_t""no" 1>&6
   with_xim=motif
 else
   echo "$ac_t""no" 1>&6
-with_xim=xlib
 fi
 
 
 fi
 
 
-    fi
+    fi ;;
   esac
   if test "$with_xim" != "no"; then
     { test "$extra_verbose" = "yes" && cat << \EOF
   esac
   if test "$with_xim" != "no"; then
     { test "$extra_verbose" = "yes" && cat << \EOF
@@ -7744,15 +7746,15 @@ EOF
 
     if test "$with_xfs" = "yes" ; then
     echo "checking for XFontSet" 1>&6
 
     if test "$with_xfs" = "yes" ; then
     echo "checking for XFontSet" 1>&6
-echo "configure:7748: checking for XFontSet" >&5
+echo "configure:7750: checking for XFontSet" >&5
     
 echo $ac_n "checking for XmbDrawString in -lX11""... $ac_c" 1>&6
     
 echo $ac_n "checking for XmbDrawString in -lX11""... $ac_c" 1>&6
-echo "configure:7751: checking for XmbDrawString in -lX11" >&5
+echo "configure:7753: checking for XmbDrawString in -lX11" >&5
 ac_lib_var=`echo X11'_'XmbDrawString | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lX11 "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo X11'_'XmbDrawString | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lX11 "
 cat > conftest.$ac_ext <<EOF
-#line 7756 "configure"
+#line 7758 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7763,7 +7765,7 @@ int main() {
 XmbDrawString()
 ; return 0; }
 EOF
 XmbDrawString()
 ; return 0; }
 EOF
-if { (eval echo configure:7767: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7769: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7803,15 +7805,15 @@ EOF
     test "$with_wnn6" = "yes" && with_wnn=yes # wnn6 implies wnn support
   test -z "$with_wnn" && { ac_safe=`echo "wnn/jllib.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for wnn/jllib.h""... $ac_c" 1>&6
     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:7807: checking for wnn/jllib.h" >&5
+echo "configure:7809: checking for wnn/jllib.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 7810 "configure"
+#line 7812 "configure"
 #include "confdefs.h"
 #include <wnn/jllib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <wnn/jllib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7815: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7817: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7836,10 +7838,10 @@ fi
     for ac_func in crypt
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
     for ac_func in crypt
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7840: checking for $ac_func" >&5
+echo "configure:7842: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 7843 "configure"
+#line 7845 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -7862,7 +7864,7 @@ $ac_func();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:7866: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7868: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -7891,12 +7893,12 @@ done
 
     test "$ac_cv_func_crypt" != "yes" && { 
 echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
 
     test "$ac_cv_func_crypt" != "yes" && { 
 echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
-echo "configure:7895: checking for crypt in -lcrypt" >&5
+echo "configure:7897: checking for crypt in -lcrypt" >&5
 ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lcrypt "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lcrypt "
 cat > conftest.$ac_ext <<EOF
-#line 7900 "configure"
+#line 7902 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7907,7 +7909,7 @@ int main() {
 crypt()
 ; return 0; }
 EOF
 crypt()
 ; return 0; }
 EOF
-if { (eval echo configure:7911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7913: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7939,14 +7941,15 @@ fi
 
  }
   fi
 
  }
   fi
-    test -z "$with_wnn" && { 
+    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 $ac_n "checking for jl_dic_list_e in -lwnn""... $ac_c" 1>&6
-echo "configure:7945: checking for jl_dic_list_e in -lwnn" >&5
+echo "configure:7948: 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
 ac_lib_var=`echo wnn'_'jl_dic_list_e | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lwnn "
 cat > conftest.$ac_ext <<EOF
-#line 7950 "configure"
+#line 7953 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7957,7 +7960,7 @@ int main() {
 jl_dic_list_e()
 ; return 0; }
 EOF
 jl_dic_list_e()
 ; return 0; }
 EOF
-if { (eval echo configure:7961: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7964: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7971,13 +7974,125 @@ xe_check_libs=""
 
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
   echo "$ac_t""yes" 1>&6
 
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
   echo "$ac_t""yes" 1>&6
-  :
+  libwnn=wnn
+else
+  echo "$ac_t""no" 1>&6
+echo $ac_n "checking for jl_dic_list_e in -lwnn4""... $ac_c" 1>&6
+echo "configure:7982: 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 7987 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char jl_dic_list_e();
+
+int main() {
+jl_dic_list_e()
+; return 0; }
+EOF
+if { (eval echo configure:7998: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+xe_check_libs=""
+
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
+  echo "$ac_t""yes" 1>&6
+  libwnn=wnn4
+else
+  echo "$ac_t""no" 1>&6
+echo $ac_n "checking for jl_dic_list_e in -lwnn6""... $ac_c" 1>&6
+echo "configure:8016: 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 8021 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char jl_dic_list_e();
+
+int main() {
+jl_dic_list_e()
+; return 0; }
+EOF
+if { (eval echo configure:8032: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+xe_check_libs=""
+
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
+  echo "$ac_t""yes" 1>&6
+  libwnn=wnn6
+else
+  echo "$ac_t""no" 1>&6
+echo $ac_n "checking for dic_list_e in -lwnn6_fromsrc""... $ac_c" 1>&6
+echo "configure:8050: 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 8055 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char dic_list_e();
+
+int main() {
+dic_list_e()
+; return 0; }
+EOF
+if { (eval echo configure:8066: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+xe_check_libs=""
+
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
+  echo "$ac_t""yes" 1>&6
+  libwnn=wnn6_fromsrc
 else
   echo "$ac_t""no" 1>&6
 with_wnn=no
 fi
 
 else
   echo "$ac_t""no" 1>&6
 with_wnn=no
 fi
 
- }
+
+fi
+
+
+fi
+
+
+fi
+
+
+  fi
   test -z "$with_wnn" && with_wnn=yes
   if test "$with_wnn" = "yes"; then
     { test "$extra_verbose" = "yes" && cat << \EOF
   test -z "$with_wnn" && with_wnn=yes
   if test "$with_wnn" = "yes"; then
     { test "$extra_verbose" = "yes" && cat << \EOF
@@ -7988,19 +8103,19 @@ cat >> confdefs.h <<\EOF
 EOF
 }
 
 EOF
 }
 
-    libs_x="-lwnn $libs_x" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-lwnn\" to \$libs_x"; fi
+    libs_x="-l$libwnn $libs_x" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-l$libwnn\" to \$libs_x"; fi
     extra_objs="$extra_objs mule-wnnfns.o" &&  if test "$extra_verbose" = "yes"; then
    echo "    xemacs will be linked with \"mule-wnnfns.o\""
  fi
     if test "$with_wnn6" != "no"; then
       
     extra_objs="$extra_objs mule-wnnfns.o" &&  if test "$extra_verbose" = "yes"; then
    echo "    xemacs will be linked with \"mule-wnnfns.o\""
  fi
     if test "$with_wnn6" != "no"; then
       
-echo $ac_n "checking for jl_fi_dic_list in -lwnn""... $ac_c" 1>&6
-echo "configure:7999: checking for jl_fi_dic_list in -lwnn" >&5
-ac_lib_var=`echo wnn'_'jl_fi_dic_list | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for jl_fi_dic_list in -l$libwnn""... $ac_c" 1>&6
+echo "configure:8114: 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=" -lwnn "
+xe_check_libs=" -l$libwnn "
 cat > conftest.$ac_ext <<EOF
 cat > conftest.$ac_ext <<EOF
-#line 8004 "configure"
+#line 8119 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -8011,7 +8126,7 @@ int main() {
 jl_fi_dic_list()
 ; return 0; }
 EOF
 jl_fi_dic_list()
 ; return 0; }
 EOF
-if { (eval echo configure:8015: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8130: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8046,15 +8161,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
   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:8050: checking for canna/jrkanji.h" >&5
+echo "configure:8165: checking for canna/jrkanji.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 8053 "configure"
+#line 8168 "configure"
 #include "confdefs.h"
 #include <canna/jrkanji.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <canna/jrkanji.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8058: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8173: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8081,15 +8196,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
     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:8085: checking for canna/jrkanji.h" >&5
+echo "configure:8200: checking for canna/jrkanji.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 8088 "configure"
+#line 8203 "configure"
 #include "confdefs.h"
 #include <canna/jrkanji.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <canna/jrkanji.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8093: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8208: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8117,15 +8232,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
 
   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:8121: checking for canna/RK.h" >&5
+echo "configure:8236: checking for canna/RK.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 8124 "configure"
+#line 8239 "configure"
 #include "confdefs.h"
 #include <canna/RK.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <canna/RK.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8129: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8244: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8148,12 +8263,12 @@ fi
  }
   test -z "$with_canna" && { 
 echo $ac_n "checking for RkBgnBun in -lRKC""... $ac_c" 1>&6
  }
   test -z "$with_canna" && { 
 echo $ac_n "checking for RkBgnBun in -lRKC""... $ac_c" 1>&6
-echo "configure:8152: checking for RkBgnBun in -lRKC" >&5
+echo "configure:8267: checking for RkBgnBun in -lRKC" >&5
 ac_lib_var=`echo RKC'_'RkBgnBun | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lRKC "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo RKC'_'RkBgnBun | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lRKC "
 cat > conftest.$ac_ext <<EOF
-#line 8157 "configure"
+#line 8272 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -8164,7 +8279,7 @@ int main() {
 RkBgnBun()
 ; return 0; }
 EOF
 RkBgnBun()
 ; return 0; }
 EOF
-if { (eval echo configure:8168: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8283: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8187,12 +8302,12 @@ fi
  }
   test -z "$with_canna" && { 
 echo $ac_n "checking for jrKanjiControl in -lcanna""... $ac_c" 1>&6
  }
   test -z "$with_canna" && { 
 echo $ac_n "checking for jrKanjiControl in -lcanna""... $ac_c" 1>&6
-echo "configure:8191: checking for jrKanjiControl in -lcanna" >&5
+echo "configure:8306: checking for jrKanjiControl in -lcanna" >&5
 ac_lib_var=`echo canna'_'jrKanjiControl | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lcanna "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo canna'_'jrKanjiControl | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lcanna "
 cat > conftest.$ac_ext <<EOF
-#line 8196 "configure"
+#line 8311 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -8203,7 +8318,7 @@ int main() {
 jrKanjiControl()
 ; return 0; }
 EOF
 jrKanjiControl()
 ; return 0; }
 EOF
-if { (eval echo configure:8207: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8322: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8252,12 +8367,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
   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:8256: checking for layout_object_getvalue in -li18n" >&5
+echo "configure:8371: 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
 ac_lib_var=`echo i18n'_'layout_object_getvalue | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -li18n "
 cat > conftest.$ac_ext <<EOF
-#line 8261 "configure"
+#line 8376 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -8268,7 +8383,7 @@ int main() {
 layout_object_getvalue()
 ; return 0; }
 EOF
 layout_object_getvalue()
 ; return 0; }
 EOF
-if { (eval echo configure:8272: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8387: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8337,8 +8452,8 @@ if test "$GCC" = "yes"; then
   set x $ld_switch_run; shift; ld_switch_run=""
   while test -n "$1"; do
     case $1 in
   set x $ld_switch_run; shift; ld_switch_run=""
   while test -n "$1"; do
     case $1 in
-      -L  | -l  | -u         ) ld_switch_run="$ld_switch_run $1 $2"; shift ;;
-      -L* | -l* | -u* | -Wl* ) ld_switch_run="$ld_switch_run $1" ;;
+      -L  | -l  | -u               ) ld_switch_run="$ld_switch_run $1 $2"; shift ;;
+      -L* | -l* | -u* | -Wl* | -pg ) ld_switch_run="$ld_switch_run $1" ;;
       -Xlinker* ) ;;
       * ) ld_switch_run="$ld_switch_run -Xlinker $1" ;;
     esac
       -Xlinker* ) ;;
       * ) ld_switch_run="$ld_switch_run -Xlinker $1" ;;
     esac
@@ -8349,15 +8464,82 @@ fi
   fi
 fi
 
   fi
 fi
 
-fi
+fi
+
+for ac_func in cbrt closedir dup2 eaccess fmod fpathconf frexp ftime gethostname getpagesize gettimeofday getcwd getwd logb lrand48 matherr mkdir mktime perror poll random rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask snprintf strcasecmp strerror tzset ulimit usleep utimes waitpid vsnprintf
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:8473: checking for $ac_func" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8476 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:8499: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  { test "$extra_verbose" = "yes" && cat << EOF
+    Defining $ac_tr_func
+EOF
+cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+}
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
 
 
-for ac_func in cbrt closedir dup2 eaccess fmod fpathconf frexp ftime gethostname getpagesize gettimeofday getcwd getwd logb lrand48 matherr mkdir mktime perror poll random rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask snprintf strcasecmp strerror tzset ulimit usleep utimes waitpid vsnprintf
+
+case "$opsys" in
+  linuxaout* | bsdos3* | freebsd* | decosf4-0* | aix4* ) extra_objs="$extra_objs realpath.o" &&  if test "$extra_verbose" = "yes"; then
+   echo "    xemacs will be linked with \"realpath.o\""
+ fi ;;
+  * )
+    case "$canonical" in
+      *-*-sysv4.2uw2* ) extra_objs="$extra_objs realpath.o" &&  if test "$extra_verbose" = "yes"; then
+   echo "    xemacs will be linked with \"realpath.o\""
+ fi ;;
+      * ) for ac_func in realpath
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8358: checking for $ac_func" >&5
+echo "configure:8540: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 8361 "configure"
+#line 8543 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -8380,7 +8562,7 @@ $ac_func();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:8384: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8566: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -8407,20 +8589,19 @@ else
 fi
 done
 
 fi
 done
 
-
-
-case "$opsys" in
-  linuxaout* | bsdos3* | freebsd* | decosf4-0* | aix4* ) extra_objs="$extra_objs realpath.o" &&  if test "$extra_verbose" = "yes"; then
+         test "$ac_cv_func_realpath" != "yes" && extra_objs="$extra_objs realpath.o" &&  if test "$extra_verbose" = "yes"; then
    echo "    xemacs will be linked with \"realpath.o\""
  fi ;;
    echo "    xemacs will be linked with \"realpath.o\""
  fi ;;
-  * )
-    for ac_func in realpath
+    esac ;;
+esac
+
+for ac_func in getloadavg
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8421: checking for $ac_func" >&5
+echo "configure:8602: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 8424 "configure"
+#line 8605 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -8443,7 +8624,7 @@ $ac_func();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:8447: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8628: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -8470,22 +8651,125 @@ else
 fi
 done
 
 fi
 done
 
-    test "$ac_cv_func_realpath" != "yes" && extra_objs="$extra_objs realpath.o" &&  if test "$extra_verbose" = "yes"; then
-   echo "    xemacs will be linked with \"realpath.o\""
- fi ;;
-esac
+
+if test "$ac_cv_func_getloadavg" != "yes"
+then
+  extra_objs="$extra_objs getloadavg.o" &&  if test "$extra_verbose" = "yes"; then
+   echo "    xemacs will be linked with \"getloadavg.o\""
+ fi
+
+    
+echo $ac_n "checking for kstat_open in -lkstat""... $ac_c" 1>&6
+echo "configure:8664: 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 8669 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char kstat_open();
+
+int main() {
+kstat_open()
+; return 0; }
+EOF
+if { (eval echo configure:8680: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+xe_check_libs=""
+
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo kstat | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+  { test "$extra_verbose" = "yes" && cat << EOF
+    Defining $ac_tr_lib
+EOF
+cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
+}
+
+  LIBS="-lkstat $LIBS" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-lkstat\" to \$LIBS"; fi
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+
+    
+echo $ac_n "checking for kvm_read in -lkvm""... $ac_c" 1>&6
+echo "configure:8714: 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 8719 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char kvm_read();
+
+int main() {
+kvm_read()
+; return 0; }
+EOF
+if { (eval echo configure:8730: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+xe_check_libs=""
+
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo kvm | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+  { test "$extra_verbose" = "yes" && cat << EOF
+    Defining $ac_tr_lib
+EOF
+cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
+}
+
+  LIBS="-lkvm $LIBS" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-lkvm\" to \$LIBS"; fi
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+fi
 
 echo $ac_n "checking whether netdb declares h_errno""... $ac_c" 1>&6
 
 echo $ac_n "checking whether netdb declares h_errno""... $ac_c" 1>&6
-echo "configure:8480: checking whether netdb declares h_errno" >&5
+echo "configure:8764: checking whether netdb declares h_errno" >&5
 cat > conftest.$ac_ext <<EOF
 cat > conftest.$ac_ext <<EOF
-#line 8482 "configure"
+#line 8766 "configure"
 #include "confdefs.h"
 #include <netdb.h>
 int main() {
 return h_errno;
 ; return 0; }
 EOF
 #include "confdefs.h"
 #include <netdb.h>
 int main() {
 return h_errno;
 ; return 0; }
 EOF
-if { (eval echo configure:8489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8773: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
    { test "$extra_verbose" = "yes" && cat << \EOF
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
    { test "$extra_verbose" = "yes" && cat << \EOF
@@ -8505,16 +8789,16 @@ fi
 rm -f conftest*
 
 echo $ac_n "checking for sigsetjmp""... $ac_c" 1>&6
 rm -f conftest*
 
 echo $ac_n "checking for sigsetjmp""... $ac_c" 1>&6
-echo "configure:8509: checking for sigsetjmp" >&5
+echo "configure:8793: checking for sigsetjmp" >&5
 cat > conftest.$ac_ext <<EOF
 cat > conftest.$ac_ext <<EOF
-#line 8511 "configure"
+#line 8795 "configure"
 #include "confdefs.h"
 #include <setjmp.h>
 int main() {
 sigjmp_buf bar; sigsetjmp (bar, 0);
 ; return 0; }
 EOF
 #include "confdefs.h"
 #include <setjmp.h>
 int main() {
 sigjmp_buf bar; sigsetjmp (bar, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:8518: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8802: \"$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 -rf conftest*
   echo "$ac_t""yes" 1>&6
    { test "$extra_verbose" = "yes" && cat << \EOF
@@ -8534,11 +8818,11 @@ fi
 rm -f conftest*
 
 echo $ac_n "checking whether localtime caches TZ""... $ac_c" 1>&6
 rm -f conftest*
 
 echo $ac_n "checking whether localtime caches TZ""... $ac_c" 1>&6
-echo "configure:8538: checking whether localtime caches TZ" >&5
+echo "configure:8822: checking whether localtime caches TZ" >&5
 
 if test "$ac_cv_func_tzset" = "yes"; then
 cat > conftest.$ac_ext <<EOF
 
 if test "$ac_cv_func_tzset" = "yes"; then
 cat > conftest.$ac_ext <<EOF
-#line 8542 "configure"
+#line 8826 "configure"
 #include "confdefs.h"
 #include <time.h>
 #if STDC_HEADERS
 #include "confdefs.h"
 #include <time.h>
 #if STDC_HEADERS
@@ -8573,10 +8857,11 @@ main()
   exit (0);
 }
 EOF
   exit (0);
 }
 EOF
-if { (eval echo configure:8577: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:8861: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   emacs_cv_localtime_cache=no
 else
 then
   emacs_cv_localtime_cache=no
 else
+  conftest_rc="$?"
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
@@ -8602,9 +8887,9 @@ fi
 
 if test "$HAVE_TIMEVAL" = "yes"; then
 echo $ac_n "checking whether gettimeofday accepts one or two arguments""... $ac_c" 1>&6
 
 if test "$HAVE_TIMEVAL" = "yes"; then
 echo $ac_n "checking whether gettimeofday accepts one or two arguments""... $ac_c" 1>&6
-echo "configure:8606: checking whether gettimeofday accepts one or two arguments" >&5
+echo "configure:8891: checking whether gettimeofday accepts one or two arguments" >&5
 cat > conftest.$ac_ext <<EOF
 cat > conftest.$ac_ext <<EOF
-#line 8608 "configure"
+#line 8893 "configure"
 #include "confdefs.h"
 
 #ifdef TIME_WITH_SYS_TIME
 #include "confdefs.h"
 
 #ifdef TIME_WITH_SYS_TIME
@@ -8626,7 +8911,7 @@ int main() {
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:8630: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:8915: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   echo "$ac_t""two" 1>&6
 else
   rm -rf conftest*
   echo "$ac_t""two" 1>&6
 else
@@ -8648,19 +8933,19 @@ fi
 
 
 echo $ac_n "checking for inline""... $ac_c" 1>&6
 
 
 echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:8652: checking for inline" >&5
+echo "configure:8937: checking for inline" >&5
 
 ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat > conftest.$ac_ext <<EOF
 
 ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat > conftest.$ac_ext <<EOF
-#line 8657 "configure"
+#line 8942 "configure"
 #include "confdefs.h"
 
 int main() {
 } $ac_kw foo() {
 ; return 0; }
 EOF
 #include "confdefs.h"
 
 int main() {
 } $ac_kw foo() {
 ; return 0; }
 EOF
-if { (eval echo configure:8664: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8949: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_inline=$ac_kw; break
 else
   rm -rf conftest*
   ac_cv_c_inline=$ac_kw; break
 else
@@ -8710,17 +8995,17 @@ fi
 # 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
 # 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:8714: checking for working alloca.h" >&5
+echo "configure:8999: checking for working alloca.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 8717 "configure"
+#line 9002 "configure"
 #include "confdefs.h"
 #include <alloca.h>
 int main() {
 char *p = alloca(2 * sizeof(int));
 ; return 0; }
 EOF
 #include "confdefs.h"
 #include <alloca.h>
 int main() {
 char *p = alloca(2 * sizeof(int));
 ; return 0; }
 EOF
-if { (eval echo configure:8724: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:9009: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   ac_cv_header_alloca_h=yes
 else
   rm -rf conftest*
   ac_cv_header_alloca_h=yes
 else
@@ -8744,10 +9029,10 @@ EOF
 fi
 
 echo $ac_n "checking for alloca""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:8748: checking for alloca" >&5
+echo "configure:9033: checking for alloca" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 8751 "configure"
+#line 9036 "configure"
 #include "confdefs.h"
 
 #ifdef __GNUC__
 #include "confdefs.h"
 
 #ifdef __GNUC__
@@ -8770,7 +9055,7 @@ int main() {
 char *p = (char *) alloca(1);
 ; return 0; }
 EOF
 char *p = (char *) alloca(1);
 ; return 0; }
 EOF
-if { (eval echo configure:8774: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:9059: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   ac_cv_func_alloca_works=yes
 else
   rm -rf conftest*
   ac_cv_func_alloca_works=yes
 else
@@ -8809,10 +9094,10 @@ EOF
 
 
 echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
 
 
 echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:8813: checking whether alloca needs Cray hooks" >&5
+echo "configure:9098: checking whether alloca needs Cray hooks" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 8816 "configure"
+#line 9101 "configure"
 #include "confdefs.h"
 #if defined(CRAY) && ! defined(CRAY2)
 webecray
 #include "confdefs.h"
 #if defined(CRAY) && ! defined(CRAY2)
 webecray
@@ -8836,10 +9121,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
 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:8840: checking for $ac_func" >&5
+echo "configure:9125: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 8843 "configure"
+#line 9128 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -8862,7 +9147,7 @@ $ac_func();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:8866: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:9151: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -8892,10 +9177,10 @@ done
 fi
 
 echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:8896: checking stack direction for C alloca" >&5
+echo "configure:9181: checking stack direction for C alloca" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 8899 "configure"
+#line 9184 "configure"
 #include "confdefs.h"
 find_stack_direction ()
 {
 #include "confdefs.h"
 find_stack_direction ()
 {
@@ -8914,10 +9199,11 @@ main ()
   exit (find_stack_direction() < 0);
 }
 EOF
   exit (find_stack_direction() < 0);
 }
 EOF
-if { (eval echo configure:8918: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:9203: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_c_stack_direction=1
 else
 then
   ac_cv_c_stack_direction=1
 else
+  conftest_rc="$?"
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
@@ -8942,15 +9228,15 @@ test -n "$ALLOCA" && extra_objs="$extra_objs $ALLOCA" &&  if test "$extra_verbos
 
 ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for vfork.h""... $ac_c" 1>&6
 
 ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for vfork.h""... $ac_c" 1>&6
-echo "configure:8946: checking for vfork.h" >&5
+echo "configure:9232: checking for vfork.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 8949 "configure"
+#line 9235 "configure"
 #include "confdefs.h"
 #include <vfork.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <vfork.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8954: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9240: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8978,10 +9264,10 @@ else
 fi
 
 echo $ac_n "checking for working vfork""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for working vfork""... $ac_c" 1>&6
-echo "configure:8982: checking for working vfork" >&5
+echo "configure:9268: checking for working vfork" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 8985 "configure"
+#line 9271 "configure"
 #include "confdefs.h"
 /* Thanks to Paul Eggert for this test.  */
 #include <stdio.h>
 #include "confdefs.h"
 /* Thanks to Paul Eggert for this test.  */
 #include <stdio.h>
@@ -9076,10 +9362,11 @@ main() {
   }
 }
 EOF
   }
 }
 EOF
-if { (eval echo configure:9080: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:9366: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_func_vfork_works=yes
 else
 then
   ac_cv_func_vfork_works=yes
 else
+  conftest_rc="$?"
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
@@ -9101,10 +9388,10 @@ fi
 
 
 echo $ac_n "checking for working strcoll""... $ac_c" 1>&6
 
 
 echo $ac_n "checking for working strcoll""... $ac_c" 1>&6
-echo "configure:9105: checking for working strcoll" >&5
+echo "configure:9392: checking for working strcoll" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 9108 "configure"
+#line 9395 "configure"
 #include "confdefs.h"
 #include <string.h>
 main ()
 #include "confdefs.h"
 #include <string.h>
 main ()
@@ -9114,10 +9401,11 @@ main ()
        strcoll ("123", "456") >= 0);
 }
 EOF
        strcoll ("123", "456") >= 0);
 }
 EOF
-if { (eval echo configure:9118: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:9405: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_func_strcoll_works=yes
 else
 then
   ac_cv_func_strcoll_works=yes
 else
+  conftest_rc="$?"
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
@@ -9141,10 +9429,10 @@ fi
 for ac_func in getpgrp
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
 for ac_func in getpgrp
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:9145: checking for $ac_func" >&5
+echo "configure:9433: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 9148 "configure"
+#line 9436 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -9167,7 +9455,7 @@ $ac_func();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:9171: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:9459: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -9195,10 +9483,10 @@ fi
 done
 
 echo $ac_n "checking whether getpgrp takes no argument""... $ac_c" 1>&6
 done
 
 echo $ac_n "checking whether getpgrp takes no argument""... $ac_c" 1>&6
-echo "configure:9199: checking whether getpgrp takes no argument" >&5
+echo "configure:9487: checking whether getpgrp takes no argument" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 9202 "configure"
+#line 9490 "configure"
 #include "confdefs.h"
 
 /*
 #include "confdefs.h"
 
 /*
@@ -9253,10 +9541,11 @@ main()
 }
 
 EOF
 }
 
 EOF
-if { (eval echo configure:9257: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:9545: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_func_getpgrp_void=yes
 else
 then
   ac_cv_func_getpgrp_void=yes
 else
+  conftest_rc="$?"
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
@@ -9279,10 +9568,10 @@ fi
 
 
 echo $ac_n "checking for working mmap""... $ac_c" 1>&6
 
 
 echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:9283: checking for working mmap" >&5
+echo "configure:9572: checking for working mmap" >&5
 case "$opsys" in ultrix* ) have_mmap=no ;; *)
 cat > conftest.$ac_ext <<EOF
 case "$opsys" in ultrix* ) have_mmap=no ;; *)
 cat > conftest.$ac_ext <<EOF
-#line 9286 "configure"
+#line 9575 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <unistd.h>
 #include "confdefs.h"
 #include <stdio.h>
 #include <unistd.h>
@@ -9307,27 +9596,291 @@ int main (int argc, char *argv[])
     return 1;
 #define MAP_ANONYMOUS 0
 #endif
     return 1;
 #define MAP_ANONYMOUS 0
 #endif
-  if (mmap(0, 1024, PROT_READ | PROT_WRITE,
-          MAP_PRIVATE | MAP_VARIABLE | MAP_ANONYMOUS,
-          fd, 0) != (void *) MAP_FAILED)
-    return 0;
-  perror ("conftest: mmap failed");
-  return 1;
-}
-EOF
-if { (eval echo configure:9319: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+  if (mmap(0, 1024, PROT_READ | PROT_WRITE,
+          MAP_PRIVATE | MAP_VARIABLE | MAP_ANONYMOUS,
+          fd, 0) != (void *) MAP_FAILED)
+    return 0;
+  perror ("conftest: mmap failed");
+  return 1;
+}
+EOF
+if { (eval echo configure:9608: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+then
+  have_mmap=yes
+else
+  conftest_rc="$?"
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  have_mmap=no
+fi
+rm -fr conftest* ;;
+esac
+echo "$ac_t""$have_mmap" 1>&6
+test "$have_mmap" = "yes" && { test "$extra_verbose" = "yes" && cat << \EOF
+    Defining HAVE_MMAP
+EOF
+cat >> confdefs.h <<\EOF
+#define HAVE_MMAP 1
+EOF
+}
+
+for ac_hdr in unistd.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:9633: checking for $ac_hdr" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9636 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:9641: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  { test "$extra_verbose" = "yes" && cat << EOF
+    Defining $ac_tr_hdr
+EOF
+cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+}
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+for ac_func in getpagesize
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:9673: checking for $ac_func" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9676 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:9699: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  { test "$extra_verbose" = "yes" && cat << EOF
+    Defining $ac_tr_func
+EOF
+cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+}
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+echo $ac_n "checking for working mmap""... $ac_c" 1>&6
+echo "configure:9727: checking for working mmap" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9730 "configure"
+#include "confdefs.h"
+
+/* Thanks to Mike Haertel and Jim Avera for this test.
+   Here is a matrix of mmap possibilities:
+       mmap private not fixed
+       mmap private fixed at somewhere currently unmapped
+       mmap private fixed at somewhere already mapped
+       mmap shared not fixed
+       mmap shared fixed at somewhere currently unmapped
+       mmap shared fixed at somewhere already mapped
+   For private mappings, we should verify that changes cannot be read()
+   back from the file, nor mmap's back from the file at a different
+   address.  (There have been systems where private was not correctly
+   implemented like the infamous i386 svr4.0, and systems where the
+   VM page cache was not coherent with the filesystem buffer cache
+   like early versions of FreeBSD and possibly contemporary NetBSD.)
+   For shared mappings, we should conversely verify that changes get
+   propogated back to all the places they're supposed to be.
+
+   Grep wants private fixed already mapped.
+   The main things grep needs to know about mmap are:
+   * does it exist and is it safe to write into the mmap'd area
+   * how to use it (BSD variants)  */
+#include <sys/types.h>
+#include <fcntl.h>
+#include <sys/mman.h>
+
+/* This mess was copied from the GNU getpagesize.h.  */
+#ifndef HAVE_GETPAGESIZE
+# ifdef HAVE_UNISTD_H
+#  include <unistd.h>
+# endif
+
+/* Assume that all systems that can run configure have sys/param.h.  */
+# ifndef HAVE_SYS_PARAM_H
+#  define HAVE_SYS_PARAM_H 1
+# endif
+
+# ifdef _SC_PAGESIZE
+#  define getpagesize() sysconf(_SC_PAGESIZE)
+# else /* no _SC_PAGESIZE */
+#  ifdef HAVE_SYS_PARAM_H
+#   include <sys/param.h>
+#   ifdef EXEC_PAGESIZE
+#    define getpagesize() EXEC_PAGESIZE
+#   else /* no EXEC_PAGESIZE */
+#    ifdef NBPG
+#     define getpagesize() NBPG * CLSIZE
+#     ifndef CLSIZE
+#      define CLSIZE 1
+#     endif /* no CLSIZE */
+#    else /* no NBPG */
+#     ifdef NBPC
+#      define getpagesize() NBPC
+#     else /* no NBPC */
+#      ifdef PAGESIZE
+#       define getpagesize() PAGESIZE
+#      endif /* PAGESIZE */
+#     endif /* no NBPC */
+#    endif /* no NBPG */
+#   endif /* no EXEC_PAGESIZE */
+#  else /* no HAVE_SYS_PARAM_H */
+#   define getpagesize() 8192  /* punt totally */
+#  endif /* no HAVE_SYS_PARAM_H */
+# endif /* no _SC_PAGESIZE */
+
+#endif /* no HAVE_GETPAGESIZE */
+
+#ifdef __cplusplus
+extern "C" { void *malloc(unsigned); }
+#else
+char *malloc();
+#endif
+
+int
+main()
+{
+       char *data, *data2, *data3;
+       int i, pagesize;
+       int fd;
+
+       pagesize = getpagesize();
+
+       /*
+        * First, make a file with some known garbage in it.
+        */
+       data = malloc(pagesize);
+       if (!data)
+               exit(1);
+       for (i = 0; i < pagesize; ++i)
+               *(data + i) = rand();
+       umask(0);
+       fd = creat("conftestmmap", 0600);
+       if (fd < 0)
+               exit(1);
+       if (write(fd, data, pagesize) != pagesize)
+               exit(1);
+       close(fd);
+
+       /*
+        * Next, try to mmap the file at a fixed address which
+        * already has something else allocated at it.  If we can,
+        * also make sure that we see the same garbage.
+        */
+       fd = open("conftestmmap", O_RDWR);
+       if (fd < 0)
+               exit(1);
+       data2 = malloc(2 * pagesize);
+       if (!data2)
+               exit(1);
+       data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1);
+       if (data2 != mmap(data2, pagesize, PROT_READ | PROT_WRITE,
+           MAP_PRIVATE | MAP_FIXED, fd, 0L))
+               exit(1);
+       for (i = 0; i < pagesize; ++i)
+               if (*(data + i) != *(data2 + i))
+                       exit(1);
+
+       /*
+        * Finally, make sure that changes to the mapped area
+        * do not percolate back to the file as seen by read().
+        * (This is a bug on some variants of i386 svr4.0.)
+        */
+       for (i = 0; i < pagesize; ++i)
+               *(data2 + i) = *(data2 + i) + 1;
+       data3 = malloc(pagesize);
+       if (!data3)
+               exit(1);
+       if (read(fd, data3, pagesize) != pagesize)
+               exit(1);
+       for (i = 0; i < pagesize; ++i)
+               if (*(data + i) != *(data3 + i))
+                       exit(1);
+       close(fd);
+       unlink("conftestmmap");
+       exit(0);
+}
+
+EOF
+if { (eval echo configure:9870: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
 then
-  have_mmap=yes
+  ac_cv_func_mmap_fixed_mapped=yes
 else
 else
+  conftest_rc="$?"
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
-  have_mmap=no
+  ac_cv_func_mmap_fixed_mapped=no
 fi
 fi
-rm -fr conftest* ;;
-esac
-echo "$ac_t""$have_mmap" 1>&6
-test "$have_mmap" = "yes" && { test "$extra_verbose" = "yes" && cat << \EOF
+rm -fr conftest*
+
+echo "$ac_t""$ac_cv_func_mmap_fixed_mapped" 1>&6
+if test $ac_cv_func_mmap_fixed_mapped = yes; then
+  { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_MMAP
 EOF
 cat >> confdefs.h <<\EOF
     Defining HAVE_MMAP
 EOF
 cat >> confdefs.h <<\EOF
@@ -9335,6 +9888,8 @@ cat >> confdefs.h <<\EOF
 EOF
 }
 
 EOF
 }
 
+fi
+
 
 test "$GNU_MALLOC" != "yes"   -a "$have_mmap" != "yes" && rel_alloc=no
 test "$rel_alloc" = "default" -a "$have_mmap"  = "yes" && rel_alloc=yes
 
 test "$GNU_MALLOC" != "yes"   -a "$have_mmap" != "yes" && rel_alloc=no
 test "$rel_alloc" = "default" -a "$have_mmap"  = "yes" && rel_alloc=yes
@@ -9349,15 +9904,15 @@ EOF
 
 ac_safe=`echo "termios.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for termios.h""... $ac_c" 1>&6
 
 ac_safe=`echo "termios.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for termios.h""... $ac_c" 1>&6
-echo "configure:9353: checking for termios.h" >&5
+echo "configure:9908: checking for termios.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 9356 "configure"
+#line 9911 "configure"
 #include "confdefs.h"
 #include <termios.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <termios.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9361: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9916: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9400,15 +9955,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 "$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:9404: checking for termio.h" >&5
+echo "configure:9959: checking for termio.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 9407 "configure"
+#line 9962 "configure"
 #include "confdefs.h"
 #include <termio.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <termio.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9412: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9967: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9440,10 +9995,10 @@ fi
 
 
 echo $ac_n "checking for socket""... $ac_c" 1>&6
 
 
 echo $ac_n "checking for socket""... $ac_c" 1>&6
-echo "configure:9444: checking for socket" >&5
+echo "configure:9999: checking for socket" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 9447 "configure"
+#line 10002 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char socket(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char socket(); below.  */
@@ -9466,7 +10021,7 @@ socket();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:9470: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10025: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_socket=yes"
 else
   rm -rf conftest*
   eval "ac_cv_func_socket=yes"
 else
@@ -9481,15 +10036,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 "$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:9485: checking for netinet/in.h" >&5
+echo "configure:10040: checking for netinet/in.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 9488 "configure"
+#line 10043 "configure"
 #include "confdefs.h"
 #include <netinet/in.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <netinet/in.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9493: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10048: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9506,15 +10061,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 "$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:9510: checking for arpa/inet.h" >&5
+echo "configure:10065: checking for arpa/inet.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 9513 "configure"
+#line 10068 "configure"
 #include "confdefs.h"
 #include <arpa/inet.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <arpa/inet.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9518: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10073: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9539,9 +10094,9 @@ EOF
 }
 
       echo $ac_n "checking "for sun_len member in struct sockaddr_un"""... $ac_c" 1>&6
 }
 
       echo $ac_n "checking "for sun_len member in struct sockaddr_un"""... $ac_c" 1>&6
-echo "configure:9543: checking "for sun_len member in struct sockaddr_un"" >&5
+echo "configure:10098: checking "for sun_len member in struct sockaddr_un"" >&5
       cat > conftest.$ac_ext <<EOF
       cat > conftest.$ac_ext <<EOF
-#line 9545 "configure"
+#line 10100 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -9552,7 +10107,7 @@ int main() {
 static struct sockaddr_un x; x.sun_len = 1;
 ; return 0; }
 EOF
 static struct sockaddr_un x; x.sun_len = 1;
 ; return 0; }
 EOF
-if { (eval echo configure:9556: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10111: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6; { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_SOCKADDR_SUN_LEN
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6; { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_SOCKADDR_SUN_LEN
@@ -9570,9 +10125,9 @@ else
 fi
 rm -f conftest*
       echo $ac_n "checking "for ip_mreq struct in netinet/in.h"""... $ac_c" 1>&6
 fi
 rm -f conftest*
       echo $ac_n "checking "for ip_mreq struct in netinet/in.h"""... $ac_c" 1>&6
-echo "configure:9574: checking "for ip_mreq struct in netinet/in.h"" >&5
+echo "configure:10129: checking "for ip_mreq struct in netinet/in.h"" >&5
       cat > conftest.$ac_ext <<EOF
       cat > conftest.$ac_ext <<EOF
-#line 9576 "configure"
+#line 10131 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -9582,7 +10137,7 @@ int main() {
 static struct ip_mreq x;
 ; return 0; }
 EOF
 static struct ip_mreq x;
 ; return 0; }
 EOF
-if { (eval echo configure:9586: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10141: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6; { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_MULTICAST
   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 $ac_n "checking for msgget""... $ac_c" 1>&6
-echo "configure:9617: checking for msgget" >&5
+echo "configure:10172: checking for msgget" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 9620 "configure"
+#line 10175 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char msgget(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char msgget(); below.  */
@@ -9639,7 +10194,7 @@ msgget();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:9643: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10198: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_msgget=yes"
 else
   rm -rf conftest*
   eval "ac_cv_func_msgget=yes"
 else
@@ -9654,15 +10209,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 "$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:9658: checking for sys/ipc.h" >&5
+echo "configure:10213: checking for sys/ipc.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 9661 "configure"
+#line 10216 "configure"
 #include "confdefs.h"
 #include <sys/ipc.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <sys/ipc.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9666: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10221: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9679,15 +10234,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 "$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:9683: checking for sys/msg.h" >&5
+echo "configure:10238: checking for sys/msg.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 9686 "configure"
+#line 10241 "configure"
 #include "confdefs.h"
 #include <sys/msg.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <sys/msg.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9691: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10246: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 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
 
 ac_safe=`echo "dirent.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for dirent.h""... $ac_c" 1>&6
-echo "configure:9729: checking for dirent.h" >&5
+echo "configure:10284: checking for dirent.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 9732 "configure"
+#line 10287 "configure"
 #include "confdefs.h"
 #include <dirent.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <dirent.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9737: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10292: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9760,15 +10315,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 "$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:9764: checking for sys/dir.h" >&5
+echo "configure:10319: checking for sys/dir.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 9767 "configure"
+#line 10322 "configure"
 #include "confdefs.h"
 #include <sys/dir.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <sys/dir.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9772: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10327: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 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
 
 ac_safe=`echo "nlist.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for nlist.h""... $ac_c" 1>&6
-echo "configure:9805: checking for nlist.h" >&5
+echo "configure:10360: checking for nlist.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 9808 "configure"
+#line 10363 "configure"
 #include "confdefs.h"
 #include <nlist.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <nlist.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9813: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10368: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9839,7 +10394,7 @@ fi
 
 
 echo "checking "for sound support"" 1>&6
 
 
 echo "checking "for sound support"" 1>&6
-echo "configure:9843: checking "for sound support"" >&5
+echo "configure:10398: checking "for sound support"" >&5
 case "$with_sound" in
   native | both ) with_native_sound=yes;;
   nas    | no   ) with_native_sound=no;;
 case "$with_sound" in
   native | both ) with_native_sound=yes;;
   nas    | no   ) with_native_sound=no;;
@@ -9850,15 +10405,15 @@ 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
     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:9854: checking for multimedia/audio_device.h" >&5
+echo "configure:10409: checking for multimedia/audio_device.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 9857 "configure"
+#line 10412 "configure"
 #include "confdefs.h"
 #include <multimedia/audio_device.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <multimedia/audio_device.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9862: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10417: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 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
       if test -z "$native_sound_lib"; then
         
 echo $ac_n "checking for ALopenport in -laudio""... $ac_c" 1>&6
-echo "configure:9910: checking for ALopenport in -laudio" >&5
+echo "configure:10465: checking for ALopenport in -laudio" >&5
 ac_lib_var=`echo audio'_'ALopenport | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -laudio "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo audio'_'ALopenport | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -laudio "
 cat > conftest.$ac_ext <<EOF
-#line 9915 "configure"
+#line 10470 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -9922,7 +10477,7 @@ int main() {
 ALopenport()
 ; return 0; }
 EOF
 ALopenport()
 ; return 0; }
 EOF
-if { (eval echo configure:9926: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10481: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   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
       if test -z "$native_sound_lib"; then
        
 echo $ac_n "checking for AOpenAudio in -lAlib""... $ac_c" 1>&6
-echo "configure:9957: checking for AOpenAudio in -lAlib" >&5
+echo "configure:10512: checking for AOpenAudio in -lAlib" >&5
 ac_lib_var=`echo Alib'_'AOpenAudio | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lAlib "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo Alib'_'AOpenAudio | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lAlib "
 cat > conftest.$ac_ext <<EOF
-#line 9962 "configure"
+#line 10517 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -9969,7 +10524,7 @@ int main() {
 AOpenAudio()
 ; return 0; }
 EOF
 AOpenAudio()
 ; return 0; }
 EOF
-if { (eval echo configure:9973: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10528: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   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
     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:10011: checking for ${dir}/soundcard.h" >&5
+echo "configure:10566: checking for ${dir}/soundcard.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 10014 "configure"
+#line 10569 "configure"
 #include "confdefs.h"
 #include <${dir}/soundcard.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <${dir}/soundcard.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10019: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10574: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -10085,7 +10640,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
  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 10089 "configure"
+#line 10644 "configure"
 #include "confdefs.h"
 #include <audio/Xtutil.h>
 EOF
 #include "confdefs.h"
 #include <audio/Xtutil.h>
 EOF
@@ -10112,7 +10667,7 @@ test -z "$with_tty" && with_tty=yes
 
 if test "$with_tty" = "yes"  ; then
   echo "checking for TTY-related features" 1>&6
 
 if test "$with_tty" = "yes"  ; then
   echo "checking for TTY-related features" 1>&6
-echo "configure:10116: checking for TTY-related features" >&5
+echo "configure:10671: checking for TTY-related features" >&5
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_TTY
 EOF
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_TTY
 EOF
@@ -10128,12 +10683,12 @@ EOF
     if test -z "$with_ncurses"; then
     
 echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6
     if test -z "$with_ncurses"; then
     
 echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6
-echo "configure:10132: checking for tgetent in -lncurses" >&5
+echo "configure:10687: checking for tgetent in -lncurses" >&5
 ac_lib_var=`echo ncurses'_'tgetent | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lncurses "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo ncurses'_'tgetent | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lncurses "
 cat > conftest.$ac_ext <<EOF
-#line 10137 "configure"
+#line 10692 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -10144,7 +10699,7 @@ int main() {
 tgetent()
 ; return 0; }
 EOF
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:10148: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10703: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10177,15 +10732,15 @@ EOF
 
     ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6
 
     ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6
-echo "configure:10181: checking for ncurses/curses.h" >&5
+echo "configure:10736: checking for ncurses/curses.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 10184 "configure"
+#line 10739 "configure"
 #include "confdefs.h"
 #include <ncurses/curses.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <ncurses/curses.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10189: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10744: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 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
 
     ac_safe=`echo "ncurses/term.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ncurses/term.h""... $ac_c" 1>&6
-echo "configure:10211: checking for ncurses/term.h" >&5
+echo "configure:10766: checking for ncurses/term.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 10214 "configure"
+#line 10769 "configure"
 #include "confdefs.h"
 #include <ncurses/term.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <ncurses/term.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10219: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10774: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 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
       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:10249: checking for ncurses/curses.h" >&5
+echo "configure:10804: checking for ncurses/curses.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 10252 "configure"
+#line 10807 "configure"
 #include "confdefs.h"
 #include <ncurses/curses.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <ncurses/curses.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10257: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10812: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 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
        for lib in curses termlib termcap; do
          
 echo $ac_n "checking for tgetent in -l$lib""... $ac_c" 1>&6
-echo "configure:10292: checking for tgetent in -l$lib" >&5
+echo "configure:10847: 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
 ac_lib_var=`echo $lib'_'tgetent | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -l$lib "
 cat > conftest.$ac_ext <<EOF
-#line 10297 "configure"
+#line 10852 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -10304,7 +10859,7 @@ int main() {
 tgetent()
 ; return 0; }
 EOF
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:10308: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10863: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   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
       else
        
 echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6
-echo "configure:10339: checking for tgetent in -lcurses" >&5
+echo "configure:10894: checking for tgetent in -lcurses" >&5
 ac_lib_var=`echo curses'_'tgetent | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lcurses "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo curses'_'tgetent | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lcurses "
 cat > conftest.$ac_ext <<EOF
-#line 10344 "configure"
+#line 10899 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -10351,7 +10906,7 @@ int main() {
 tgetent()
 ; return 0; }
 EOF
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:10355: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10910: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10369,12 +10924,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
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6
-echo "configure:10373: checking for tgetent in -ltermcap" >&5
+echo "configure:10928: checking for tgetent in -ltermcap" >&5
 ac_lib_var=`echo termcap'_'tgetent | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ltermcap "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo termcap'_'tgetent | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ltermcap "
 cat > conftest.$ac_ext <<EOF
-#line 10378 "configure"
+#line 10933 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -10385,7 +10940,7 @@ int main() {
 tgetent()
 ; return 0; }
 EOF
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:10389: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:10944: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10433,15 +10988,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
 
     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:10437: checking for gpm.h" >&5
+echo "configure:10992: checking for gpm.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 10440 "configure"
+#line 10995 "configure"
 #include "confdefs.h"
 #include <gpm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <gpm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10445: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11000: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 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
  }
   test -z "$with_gpm" && { 
 echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
-echo "configure:10468: checking for Gpm_Open in -lgpm" >&5
+echo "configure:11023: 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
 ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lgpm "
 cat > conftest.$ac_ext <<EOF
-#line 10473 "configure"
+#line 11028 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -10480,7 +11035,7 @@ int main() {
 Gpm_Open()
 ; return 0; }
 EOF
 Gpm_Open()
 ; return 0; }
 EOF
-if { (eval echo configure:10484: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11039: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10528,23 +11083,22 @@ test "$with_x11" = "yes" -o "$with_tty" = "yes" && extra_objs="$extra_objs event
  fi
 
 
  fi
 
 
-echo "checking for database support" 1>&6
-echo "configure:10533: checking for database support" >&5
+test "$with_database_gnudbm $with_database_dbm $with_database_berkdb" \
+  != "no no no" && echo "checking for database support" 1>&6
+echo "configure:11089: checking for database support" >&5
 
 
-if test "$with_database_gnudbm" != "no"; then
-  for ac_hdr in ndbm.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:10540: checking for $ac_hdr" >&5
+if test "$with_database_gnudbm $with_database_dbm" != "no no"; then
+  ac_safe=`echo "ndbm.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for ndbm.h""... $ac_c" 1>&6
+echo "configure:11094: checking for ndbm.h" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 10543 "configure"
+#line 11097 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
-#include <$ac_hdr>
+#include <ndbm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10548: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11102: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 rm -f conftest*
 if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
 rm -f conftest*
 if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  { test "$extra_verbose" = "yes" && cat << EOF
-    Defining $ac_tr_hdr
-EOF
-cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-}
- have_ndbm_h=yes
+  :
 else
   echo "$ac_t""no" 1>&6
 else
   echo "$ac_t""no" 1>&6
+
+    test "$with_database_gnudbm" = "yes" -o \
+         "$with_database_dbm"    = "yes" && \
+      { echo "Error:" "Required DBM support cannot be provided." >&2; exit 1; }
+    with_database_gnudbm=no with_database_dbm=no
 fi
 fi
-done
 
 
-  if test "$have_ndbm_h" = "yes"; then
-    
+fi
+
+if test "$with_database_gnudbm" != "no"; then
+  
 echo $ac_n "checking for dbm_open in -lgdbm""... $ac_c" 1>&6
 echo $ac_n "checking for dbm_open in -lgdbm""... $ac_c" 1>&6
-echo "configure:10580: checking for dbm_open in -lgdbm" >&5
+echo "configure:11132: 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
 ac_lib_var=`echo gdbm'_'dbm_open | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lgdbm "
 cat > conftest.$ac_ext <<EOF
-#line 10585 "configure"
+#line 11137 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -10592,7 +11144,7 @@ int main() {
 dbm_open()
 ; return 0; }
 EOF
 dbm_open()
 ; return 0; }
 EOF
-if { (eval echo configure:10596: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11148: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10606,81 +11158,24 @@ xe_check_libs=""
 
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
   echo "$ac_t""yes" 1>&6
 
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
   echo "$ac_t""yes" 1>&6
-  with_database_gnudbm=yes have_libgdbm=yes
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-
-  fi
-  if test "$with_database_gnudbm" != "yes"; then
-    echo $ac_n "checking for dbm_open""... $ac_c" 1>&6
-echo "configure:10619: checking for dbm_open" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10622 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char dbm_open(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char dbm_open();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_dbm_open) || defined (__stub___dbm_open)
-choke me
-#else
-dbm_open();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:10645: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
-  rm -rf conftest*
-  eval "ac_cv_func_dbm_open=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_dbm_open=no"
-fi
-rm -f conftest*
-
-if eval "test \"`echo '$ac_cv_func_'dbm_open`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  with_database_gnudbm=yes
+  with_database_gnudbm=yes with_database_dbm=no libdbm=-lgdbm
 else
   echo "$ac_t""no" 1>&6
 else
   echo "$ac_t""no" 1>&6
+if test "$with_database_gnudbm" = "yes"; then
+     { echo "Error:" "Required GNU DBM support cannot be provided." >&2; exit 1; }
+   fi
+   with_database_gnudbm=no
 fi
 
 fi
 
-      fi
-  if test "$with_database_gnudbm" = "yes"; then
-    { test "$extra_verbose" = "yes" && cat << \EOF
-    Defining HAVE_DBM
-EOF
-cat >> confdefs.h <<\EOF
-#define HAVE_DBM 1
-EOF
-}
 
 
-    test "$have_libgdbm" = "yes" && LIBS="-lgdbm $LIBS" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-lgdbm\" to \$LIBS"; fi
-    with_database_dbm=no
-  else with_database_gnudbm=no
-  fi
 fi
 
 if test "$with_database_dbm" != "no"; then
   echo $ac_n "checking for dbm_open""... $ac_c" 1>&6
 fi
 
 if test "$with_database_dbm" != "no"; then
   echo $ac_n "checking for dbm_open""... $ac_c" 1>&6
-echo "configure:10681: checking for dbm_open" >&5
+echo "configure:11176: checking for dbm_open" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 10684 "configure"
+#line 11179 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char dbm_open(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char dbm_open(); below.  */
@@ -10703,7 +11198,7 @@ dbm_open();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:10707: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11202: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_dbm_open=yes"
 else
   rm -rf conftest*
   eval "ac_cv_func_dbm_open=yes"
 else
@@ -10716,20 +11211,18 @@ rm -f conftest*
 
 if eval "test \"`echo '$ac_cv_func_'dbm_open`\" = yes"; then
   echo "$ac_t""yes" 1>&6
 
 if eval "test \"`echo '$ac_cv_func_'dbm_open`\" = yes"; then
   echo "$ac_t""yes" 1>&6
-  with_database_dbm=yes need_libdbm=no
+  with_database_dbm=yes libdbm=
 else
   echo "$ac_t""no" 1>&6
 else
   echo "$ac_t""no" 1>&6
-fi
 
 
-  if test "$need_libdbm" != "no"; then
     
 echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6
     
 echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6
-echo "configure:10728: checking for dbm_open in -ldbm" >&5
+echo "configure:11221: 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
 ac_lib_var=`echo dbm'_'dbm_open | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldbm "
 cat > conftest.$ac_ext <<EOF
-#line 10733 "configure"
+#line 11226 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -10740,7 +11233,7 @@ int main() {
 dbm_open()
 ; return 0; }
 EOF
 dbm_open()
 ; return 0; }
 EOF
-if { (eval echo configure:10744: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11237: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -10754,15 +11247,23 @@ xe_check_libs=""
 
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
   echo "$ac_t""yes" 1>&6
 
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
   echo "$ac_t""yes" 1>&6
-  with_database_dbm=yes need_libdbm=yes
+  with_database_dbm=yes libdbm=-ldbm
 else
   echo "$ac_t""no" 1>&6
 else
   echo "$ac_t""no" 1>&6
+test "$with_database_dbm" = "yes" && \
+        { echo "Error:" "Required DBM support cannot be provided." >&2; exit 1; }
+      with_database_dbm=no
 fi
 
 
 fi
 
 
-  fi
-  if test "$with_database_dbm" = "yes"; then
-    { test "$extra_verbose" = "yes" && cat << \EOF
+fi
+
+fi
+
+test -n "$libdbm" && LIBS=""$libdbm" $LIBS" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \""$libdbm"\" to \$LIBS"; fi
+test "$with_database_gnudbm" = "yes" -o \
+     "$with_database_dbm"    = "yes" && \
+  { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_DBM
 EOF
 cat >> confdefs.h <<\EOF
     Defining HAVE_DBM
 EOF
 cat >> confdefs.h <<\EOF
@@ -10770,17 +11271,13 @@ cat >> confdefs.h <<\EOF
 EOF
 }
 
 EOF
 }
 
-    test "$need_libdbm" = "yes" && LIBS="-ldbm $LIBS" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-ldbm\" to \$LIBS"; fi
-  else with_database_dbm=no
-  fi
-fi
 
 if test "$with_database_berkdb" != "no"; then
   echo $ac_n "checking for Berkeley db.h""... $ac_c" 1>&6
 
 if test "$with_database_berkdb" != "no"; then
   echo $ac_n "checking for Berkeley db.h""... $ac_c" 1>&6
-echo "configure:10781: checking for Berkeley db.h" >&5
+echo "configure:11278: checking for Berkeley db.h" >&5
   for path in "db/db.h" "db.h"; do
     cat > conftest.$ac_ext <<EOF
   for path in "db/db.h" "db.h"; do
     cat > conftest.$ac_ext <<EOF
-#line 10784 "configure"
+#line 11281 "configure"
 #include "confdefs.h"
 #ifdef HAVE_INTTYPES_H
 #define __BIT_TYPES_DEFINED__
 #include "confdefs.h"
 #ifdef HAVE_INTTYPES_H
 #define __BIT_TYPES_DEFINED__
@@ -10798,7 +11295,7 @@ int main() {
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:10802: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11299: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   db_h_path="$path"; break
 else
   rm -rf conftest*
   db_h_path="$path"; break
 else
@@ -10807,16 +11304,16 @@ else
 fi
 rm -f conftest*
   done
 fi
 rm -f conftest*
   done
-  if test -z "$db_h_path" 
+  if test -z "$db_h_path"
   then echo "$ac_t""no" 1>&6; with_database_berkdb=no
   else echo "$ac_t""$db_h_path" 1>&6
   fi
 
   if test "$with_database_berkdb" != "no"; then
     echo $ac_n "checking for Berkeley DB version""... $ac_c" 1>&6
   then echo "$ac_t""no" 1>&6; with_database_berkdb=no
   else echo "$ac_t""$db_h_path" 1>&6
   fi
 
   if test "$with_database_berkdb" != "no"; then
     echo $ac_n "checking for Berkeley DB version""... $ac_c" 1>&6
-echo "configure:10818: checking for Berkeley DB version" >&5
+echo "configure:11315: checking for Berkeley DB version" >&5
     cat > conftest.$ac_ext <<EOF
     cat > conftest.$ac_ext <<EOF
-#line 10820 "configure"
+#line 11317 "configure"
 #include "confdefs.h"
 #include <$db_h_path>
 #if DB_VERSION_MAJOR > 1
 #include "confdefs.h"
 #include <$db_h_path>
 #if DB_VERSION_MAJOR > 1
 rm -f conftest*
 
     echo $ac_n "checking for $dbfunc""... $ac_c" 1>&6
 rm -f conftest*
 
     echo $ac_n "checking for $dbfunc""... $ac_c" 1>&6
-echo "configure:10839: checking for $dbfunc" >&5
+echo "configure:11336: checking for $dbfunc" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 10842 "configure"
+#line 11339 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $dbfunc(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $dbfunc(); below.  */
@@ -10861,7 +11358,7 @@ $dbfunc();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:10865: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11362: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$dbfunc=yes"
 else
   rm -rf conftest*
   eval "ac_cv_func_$dbfunc=yes"
 else
@@ -10880,12 +11377,12 @@ else
 
     
 echo $ac_n "checking for $dbfunc in -ldb""... $ac_c" 1>&6
 
     
 echo $ac_n "checking for $dbfunc in -ldb""... $ac_c" 1>&6
-echo "configure:10884: checking for $dbfunc in -ldb" >&5
+echo "configure:11381: checking for $dbfunc in -ldb" >&5
 ac_lib_var=`echo db'_'$dbfunc | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldb "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo db'_'$dbfunc | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldb "
 cat > conftest.$ac_ext <<EOF
-#line 10889 "configure"
+#line 11386 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -10896,7 +11393,7 @@ int main() {
 $dbfunc()
 ; return 0; }
 EOF
 $dbfunc()
 ; return 0; }
 EOF
-if { (eval echo configure:10900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11397: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   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
 if test "$with_socks" = "yes"; then
   
 echo $ac_n "checking for SOCKSinit in -lsocks""... $ac_c" 1>&6
-echo "configure:10964: checking for SOCKSinit in -lsocks" >&5
+echo "configure:11461: checking for SOCKSinit in -lsocks" >&5
 ac_lib_var=`echo socks'_'SOCKSinit | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lsocks "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo socks'_'SOCKSinit | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lsocks "
 cat > conftest.$ac_ext <<EOF
-#line 10969 "configure"
+#line 11466 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -10976,7 +11473,7 @@ int main() {
 SOCKSinit()
 ; return 0; }
 EOF
 SOCKSinit()
 ; return 0; }
 EOF
-if { (eval echo configure:10980: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11477: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -11033,15 +11530,15 @@ for ac_hdr in dlfcn.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:11037: checking for $ac_hdr" >&5
+echo "configure:11534: checking for $ac_hdr" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 11040 "configure"
+#line 11537 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11045: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11542: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -11065,6 +11562,14 @@ cat >> confdefs.h <<EOF
 EOF
 }
  have_dlfcn=yes
 EOF
 }
  have_dlfcn=yes
+  { test "$extra_verbose" = "yes" && cat << \EOF
+    Defining HAVE_DLFCN_H
+EOF
+cat >> confdefs.h <<\EOF
+#define HAVE_DLFCN_H 1
+EOF
+}
+
 else
   echo "$ac_t""no" 1>&6
 fi
 else
   echo "$ac_t""no" 1>&6
 fi
@@ -11072,12 +11577,12 @@ done
 
 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { 
 echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
 
 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { 
 echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:11076: checking for dlopen in -ldl" >&5
+echo "configure:11581: checking for dlopen in -ldl" >&5
 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldl "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldl "
 cat > conftest.$ac_ext <<EOF
-#line 11081 "configure"
+#line 11586 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -11088,7 +11593,7 @@ int main() {
 dlopen()
 ; return 0; }
 EOF
 dlopen()
 ; return 0; }
 EOF
-if { (eval echo configure:11092: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11597: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
  }
 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { 
 echo $ac_n "checking for _dlopen in -lc""... $ac_c" 1>&6
  }
 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { 
 echo $ac_n "checking for _dlopen in -lc""... $ac_c" 1>&6
-echo "configure:11121: checking for _dlopen in -lc" >&5
+echo "configure:11626: checking for _dlopen in -lc" >&5
 ac_lib_var=`echo c'_'_dlopen | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lc "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo c'_'_dlopen | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lc "
 cat > conftest.$ac_ext <<EOF
-#line 11126 "configure"
+#line 11631 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -11133,7 +11638,7 @@ int main() {
 _dlopen()
 ; return 0; }
 EOF
 _dlopen()
 ; return 0; }
 EOF
-if { (eval echo configure:11137: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11642: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
  }
 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { 
 echo $ac_n "checking for dlopen in -lc""... $ac_c" 1>&6
  }
 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { 
 echo $ac_n "checking for dlopen in -lc""... $ac_c" 1>&6
-echo "configure:11166: checking for dlopen in -lc" >&5
+echo "configure:11671: checking for dlopen in -lc" >&5
 ac_lib_var=`echo c'_'dlopen | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lc "
 cat > conftest.$ac_ext <<EOF
 ac_lib_var=`echo c'_'dlopen | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lc "
 cat > conftest.$ac_ext <<EOF
-#line 11171 "configure"
+#line 11676 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -11178,7 +11683,7 @@ int main() {
 dlopen()
 ; return 0; }
 EOF
 dlopen()
 ; return 0; }
 EOF
-if { (eval echo configure:11182: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11687: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
  }
 test -z "$with_shlib" && { 
 echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
  }
 test -z "$with_shlib" && { 
 echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
-echo "configure:11211: checking for shl_load in -ldld" >&5
+echo "configure:11716: 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
 ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldld "
 cat > conftest.$ac_ext <<EOF
-#line 11216 "configure"
+#line 11721 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -11223,80 +11728,648 @@ int main() {
 shl_load()
 ; return 0; }
 EOF
 shl_load()
 ; return 0; }
 EOF
-if { (eval echo configure:11227: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:11732: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+xe_check_libs=""
+
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
+  echo "$ac_t""yes" 1>&6
+  { test "$extra_verbose" = "yes" && cat << \EOF
+    Defining HAVE_SHL_LOAD
+EOF
+cat >> confdefs.h <<\EOF
+#define HAVE_SHL_LOAD 1
+EOF
+}
+ DLL_LIB=dld; with_shlib=yes
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+ }
+test -z "$with_shlib" && { 
+echo $ac_n "checking for dld_init in -ldld""... $ac_c" 1>&6
+echo "configure:11761: 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 11766 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char dld_init();
+
+int main() {
+dld_init()
+; return 0; }
+EOF
+if { (eval echo configure:11777: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+xe_check_libs=""
+
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
+  echo "$ac_t""yes" 1>&6
+  { test "$extra_verbose" = "yes" && cat << \EOF
+    Defining HAVE_DLD_INIT
+EOF
+cat >> confdefs.h <<\EOF
+#define HAVE_DLD_INIT 1
+EOF
+}
+ DLL_LIB=dld; with_shlib=yes
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+ }
+if test "$with_shlib" = "yes"; then
+  
+dll_ld=
+dll_ldflags=
+dll_cflags=
+dll_post=
+dll_ldo="-o"
+ld_dynamic_link_flags=
+xehost=$canonical
+xealias=$internal_configuration
+
+echo "checking how to build dynamic libraries for ${xehost}" 1>&6
+echo "configure:11816: checking how to build dynamic libraries for ${xehost}" >&5
+# Transform *-*-linux* to *-*-linux-gnu*, to support old configure scripts.
+case "$xehost" in
+*-*-linux-gnu*) ;;
+*-*-linux*) xehost=`echo $xehost | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
+esac
+
+xehost_cpu=`echo $xehost | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+xehost_vendor=`echo $xehost | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+xehost_os=`echo $xehost | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+case "$xehost_os" in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test "${COLLECT_NAMES+set}" != set; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Now see if the compiler is really GCC.
+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:11844: checking checking whether we are using GNU C" >&5
+  cat > conftest.$ac_ext <<EOF
+#line 11846 "configure"
+#include "confdefs.h"
+
+#ifdef __GNUC__
+  yes;
+#endif
+
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "yes" >/dev/null 2>&1; then
+  rm -rf conftest*
+  XEGCC=yes
+else
+  rm -rf conftest*
+  XEGCC=no
+fi
+rm -f conftest*
+
+  echo "$ac_t""${XEGCC}" 1>&6
+fi
+
+echo $ac_n "checking how to produce PIC code""... $ac_c" 1>&6
+echo "configure:11868: checking how to produce PIC code" >&5
+wl=
+
+can_build_shared=yes
+if test "$XEGCC" = yes; then
+  wl='-Wl,'
+
+  case "$xehost_os" in
+  aix3* | aix4* | irix5* | irix6* | osf3* | osf4*)
+    # PIC is the default for these OSes.
+    ;;
+
+  os2*)
+    # We can build DLLs from non-PIC.
+    ;;
+  amigaos*)
+    # FIXME: we need at least 68020 code to build shared libraries, but
+    # adding the `-m68020' flag to GCC prevents building anything better,
+    # like `-m68040'.
+    dll_cflags='-m68020 -resident32 -malways-restore-a4'
+    ;;
+  *)
+    dll_cflags='-fPIC'
+    ;;
+  esac
+else
+  # PORTME Check for PIC flags for the system compiler.
+  case "$xehost_os" in
+  hpux9* | hpux10*)
+    # Is there a better link_static_flag that works with the bundled CC?
+    wl='-Wl,'
+    dll_cflags='+Z'
+    ;;
+
+  irix5* | irix6*)
+    wl='-Wl,'
+    # PIC (with -KPIC) is the default.
+    ;;
+
+  os2*)
+    # We can build DLLs from non-PIC.
+    ;;
+
+  osf3* | osf4*)
+    # All OSF/1 code is PIC.
+    wl='-Wl,'
+    ;;
+
+  sco3.2v5*)
+    dll_cflags='-belf -Kpic'
+    wl='-Wl,'
+    ;;
+
+  unixware*)
+    dll_cflags="-KPIC"
+    wl="-Wl,"
+    ;;
+
+  sysv4*)
+    dll_cflags="-KPIC"
+    wl="-Wl,"
+    ;;
+
+  sysv5*)
+    dll_cflags="-KPIC"
+    wl="-Wl,"
+    ;;
+
+  solaris2*)
+    dll_cflags='-KPIC'
+    wl='-Wl,'
+    ;;
+
+  sunos4*)
+    dll_cflags='-PIC'
+    wl='-Qoption ld '
+    ;;
+
+  uts4*)
+    dll_cflags='-pic'
+    ;;
+
+  *)
+    can_build_shared=no
+    ;;
+  esac
+fi
+
+if test -n "$dll_cflags"; then
+  echo "$ac_t""${dll_cflags}" 1>&6
+  
+  # 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:11961: checking if PIC flag ${dll_cflags} really works" >&5
+  save_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS $dll_cflags -DPIC"
+  cat > conftest.$ac_ext <<EOF
+#line 11965 "configure"
+#include "confdefs.h"
+
+int main() {
+int x=0;
+; return 0; }
+EOF
+if { (eval echo configure:11972: \"$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
+    # reports no error.  So, we need to grep stderr for (Bundled).
+    if grep '(Bundled)' config.log >/dev/null; then
+      echo "$ac_t""no" 1>&6
+      can_build_shared=no
+      dll_cflags=
+    else
+      echo "$ac_t""yes" 1>&6
+    fi
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  echo "$ac_t""no" 1>&6
+    can_build_shared=no
+    dll_cflags=
 fi
 rm -f conftest*
 fi
 rm -f conftest*
-xe_check_libs=""
-
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
-  echo "$ac_t""yes" 1>&6
-  { test "$extra_verbose" = "yes" && cat << \EOF
-    Defining HAVE_SHL_LOAD
-EOF
-cat >> confdefs.h <<\EOF
-#define HAVE_SHL_LOAD 1
-EOF
-}
- DLL_LIB=dld; with_shlib=yes
+  CFLAGS="$save_CFLAGS"
 else
 else
-  echo "$ac_t""no" 1>&6
+  echo "$ac_t""none" 1>&6
 fi
 
 fi
 
- }
-test -z "$with_shlib" && { 
-echo $ac_n "checking for dld_init in -ldld""... $ac_c" 1>&6
-echo "configure:11256: checking for dld_init in -ldld" >&5
-ac_lib_var=`echo dld'_'dld_init | sed 'y%./+-%__p_%'`
+if test "$can_build_shared" = "yes"; then
+cc_produces_so=no
+xldf=
+xcldf=
+echo $ac_n "checking if C compiler can produce shared libraries""... $ac_c" 1>&6
+echo "configure:12003: checking if C compiler can produce shared libraries" >&5
+if test "$XEGCC" = yes; then
+  xcldf="-shared"
+  xldf="-shared"
+else # Not using GCC
+  case "$xehost_os" in
+    aix3* | aix4*)
+      xldf="-bE:ELLSONAME.exp -H512 -T512 -bhalt:4 -bM:SRE -bnoentry -lc"
+      xcldf="${wl}-bE:ELLSONAME.exp ${wl}-H512 ${wl}-T512 ${wl}-bhalt:4 ${wl}-bM:SRE ${wl}-bnoentry ${wl}-lc"
+      ;;
 
 
-xe_check_libs=" -ldld "
-cat > conftest.$ac_ext <<EOF
-#line 11261 "configure"
+    freebsd2* | netbsd* | openbsd*)
+      xldf="-Bshareable"
+      xcldf="${wl}-Bshareable"
+      ;;
+
+    freebsd3*)
+      xcldf="-shared"
+      ;;
+
+    hpux*)
+      xldf="-b +s"
+      xcldf="${wl}-b ${wl}+s"
+      ;;
+
+    irix5* | irix6* | osf3* | osf4*)
+      xcldf="${wl}-shared"
+      xldf="-shared"
+      ;;
+
+    sco3.2v5* | unixware* | sysv5* | sysv4* | solaris2* | solaris7* | uts4*)
+      xcldf="-G"
+      xldf="-G"
+      ;;
+
+    sunos4*)
+      xcldf="${wl}-assert ${wl}pure-text ${wl}-Bstatic"
+      xldf="-assert pure-text -Bstatic"
+      ;;
+  esac
+fi # End if if we are using gcc
+
+if test -n "$xcldf"; then
+  save_LDFLAGS=$LDFLAGS
+  save_LIBS=$LIBS
+  save_xe_libs=$xe_libs
+  LDFLAGS="$xcldf $LDFLAGS"
+  LIBS=
+  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 12054 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char dld_init();
 
 int main() {
 
 int main() {
-dld_init()
+int x=0;
 ; return 0; }
 EOF
 ; return 0; }
 EOF
-if { (eval echo configure:11272: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:12061: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+  cc_produces_so=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  cc_produces_so=no
 fi
 rm -f conftest*
 fi
 rm -f conftest*
-xe_check_libs=""
+  LDFLAGS=$save_LDFLAGS
+  LIBS=$save_LIBS
+  xe_libs=$save_xe_libs
+  ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&5'
+else
+  cc_produces_so=no
+fi
+echo "$ac_t""${cc_produces_so}" 1>&6
 
 
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
-  echo "$ac_t""yes" 1>&6
-  { test "$extra_verbose" = "yes" && cat << \EOF
-    Defining HAVE_DLD_INIT
-EOF
-cat >> confdefs.h <<\EOF
-#define HAVE_DLD_INIT 1
-EOF
-}
- DLL_LIB=dld; with_shlib=yes
+LTLD=$LD
+if test -z "$LTLD"; then
+  ac_prog=ld
+  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:12086: checking for ld used by GCC" >&5
+    ac_prog=`($CC -print-prog-name=ld) 2>&5`
+    case "$ac_prog" in
+    # Accept absolute paths.
+    /*)
+      if test -z "$LTLD"; then
+        case "$ac_prog" in
+          *gcc-lib*) LTLD="$CC"
+                     ;;
+          *)         LTLD="$ac_prog"
+                     ;;
+        esac
+      fi
+      ;;
+    "")
+      # If it fails, then pretend we aren't using GCC.
+      ac_prog=ld
+      ;;
+    *)
+      # If it is relative, then search for the first ld in PATH.
+      with_gnu_ld=unknown
+      ;;
+    esac
+  else
+    echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
+echo "configure:12111: checking for GNU ld" >&5
+  fi
+
+  if test -z "$LTLD"; then
+    IFS="${IFS=        }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+    for ac_dir in $PATH; do
+      test -z "$ac_dir" && ac_dir=.
+      if test -f "$ac_dir/$ac_prog"; then
+        LTLD="$ac_dir/$ac_prog"
+        # Check to see if the program is GNU ld.  I'd rather use --version,
+        # but apparently some GNU ld's only accept -v.
+        # Break only if it was the GNU/non-GNU ld that we prefer.
+        if "$LTLD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
+          xe_gnu_ld=yes
+        else
+          xe_gnu_ld=no
+        fi
+      fi
+    done
+    IFS="$ac_save_ifs"
+  fi
+
+  if test -n "$LTLD"; then
+    echo "$ac_t""${LTLD}" 1>&6
+  else
+    echo "$ac_t""no" 1>&6
+  fi
+
+  if test -z "$LTLD" -a "$cc_produces_so" = no; then
+    { echo "configure: error: no acceptable linker found in \$PATH" 1>&2; exit 1; }
+    exit 1
+  fi
+fi
+
+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:12149: 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
 else
 else
-  echo "$ac_t""no" 1>&6
+  xe_gnu_ld=no
 fi
 fi
+echo "$ac_t""${xe_gnu_ld}" 1>&6
 
 
- }
-if test "$with_shlib" = "yes"; then
-  { test "$extra_verbose" = "yes" && cat << \EOF
+case "$xehost_os" in
+  amigaos* | sunos4*)
+    # On these operating systems, we should treat GNU ld like the system ld.
+    gnu_ld_acts_native=yes
+    ;;
+  *)
+    gnu_ld_acts_native=no
+    ;;
+esac
+
+if test "$cc_produces_so" = "yes"; then
+  dll_ld=$CC
+  dll_ldflags=$xcldf
+  can_build_shared=yes
+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:12176: checking whether the linker supports shared libraries" >&5
+  dll_ld=$CC
+  dll_ldflags=$LDFLAGS
+  ld_shlibs=yes
+  can_build_shared=yes
+  if test "$xe_gnu_ld" = yes && test "$gnu_ld_acts_native" != yes; then
+    # See if GNU ld supports shared libraries.
+    if $LTLD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+      dll_ld=$CC
+      dll_ldflags="-shared"
+      ld_shlibs=yes
+    else
+      ld_shlibs=no
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case "$xehost_os" in
+    aix3*)
+      dll_ld=$LTLD
+      dll_ldflags=$xldf
+      ;;
+
+    aix4*)
+      dll_ldflags=$xcldf
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # doesn't break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      dll_ld=$LTLD
+      dll_ldflags=$xldf
+      dll_post="/usr/lib/c++rt0.o"
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 don't have this feature.
+    freebsd2*)
+      dll_ld=$LTLD
+      dll_ldflags="-Bshareable"
+      ;;
+
+    # FreeBSD 3, at last, uses gcc -shared to do shared libraries.
+    freebsd3*)
+      dll_ldflags="-shared"
+      ;;
+
+    hpux*)
+      dll_ld=$LTLD
+      dll_ldflags=$xldf
+      ;;
+
+    irix5* | irix6*)
+      dll_ld=$LTLD
+      dll_ldflags=$xldf
+      ;;
+
+    netbsd*)
+      # Tested with NetBSD 1.2 ld
+      dll_ld=$LTLD
+      dll_ldflags=$xldf
+      ;;
+
+    openbsd*)
+      dll_ld=$LTLD
+      dll_ldflags=$xldf
+      ;;
+
+    osf3* | osf4*)
+      dll_ld=$LTLD
+      dll_ldflags=$xldf
+      ;;
+
+    # For both SCO and Solaris we MAY want to have LDFLAGS include -z text
+    sco3.2v5* | unixware* | sysv5* | sysv4* | solaris2* | solaris7*)
+      dll_ld=$LTLD
+      case "$dll_ld" in
+        *gcc*) dll_ldflags="-shared"
+               dll_ld=$CC
+               ;;
+        *)     dll_ldflags="-G"
+               ;;
+      esac
+      ;;
+
+    sunos4*)
+      if test "$XEGCC" = yes; then
+        dll_ld=$CC
+      else
+        dll_ld=$LTLD
+      fi
+      dll_ldflags=$xldf
+      ;;
+
+    uts4*)
+      dll_ld=$LTLD
+      dll_ldflags="-G"
+      ;;
+
+    bsdi*)
+      dll_ldflags="-r"
+      dll_ld="shlicc2"
+      ;;
+
+    *)
+      ld_shlibs=no
+      can_build_shared=no
+      ;;
+    esac
+  fi
+  echo "$ac_t""${ld_shlibs}" 1>&6
+  if test "$ld_shlibs" = "no"; then
+    can_build_shared=no
+  fi
+fi # End of if cc_produces_so = no
+
+
+if test "$xe_gnu_ld" = yes; then
+  if test "$ld_shlibs" = yes; then
+    ld_dynamic_link_flags="${wl}-export-dynamic"
+  fi
+fi
+
+if test -z "$ld_dynamic_link_flags"; then
+  case "$xehost_os" in
+  aix3*)
+    ld_dynamic_link_flags=
+    ;;
+
+  aix4*)
+    ld_dynamic_link_flags=
+    ;;
+
+  freebsd2.2*)
+    ld_dynamic_link_flags=
+    ;;
+
+  freebsd2*)
+    ld_dynamic_link_flags=
+    ;;
+
+  freebsd3*)
+    ld_dynamic_link_flags=
+    ;;
+
+  hpux*)
+    ld_dynamic_link_flags="${wl}-E"
+    ;;
+
+  irix5* | irix6*)
+    ld_dynamic_link_flags=
+    ;;
+
+  netbsd*)
+    ld_dynamic_link_flags=
+    ;;
+
+  openbsd*)
+    ld_dynamic_link_flags=
+    ;;
+
+  osf3* | osf4*)
+    ld_dynamic_link_flags=
+    ;;
+
+  solaris2* | solaris7*)
+    ld_dynamic_link_flags="${wl}-Bdynamic"
+    ;;
+
+  sco3.2v5* | unixware* | sysv5* | sysv4*)
+    ld_dynamic_link_flags="${wl}-Bexport"
+    ;;
+
+  sunos4*)
+    ld_dynamic_link_flags=
+    ;;
+
+  uts4*)
+    ld_dynamic_link_flags=
+    ;;
+
+  bsdi*)
+    ld_dynamic_link_flags=
+    ;;
+
+  esac
+fi # End of if -z ld_dynamic_link_flags
+fi # End of if test "$can_build_shared" = "yes"
+
+
+
+
+
+
+
+
+  if test "$can_build_shared" = "yes"; then
+    { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_SHLIB
 EOF
 cat >> confdefs.h <<\EOF
     Defining HAVE_SHLIB
 EOF
 cat >> confdefs.h <<\EOF
@@ -11304,115 +12377,21 @@ cat >> confdefs.h <<\EOF
 EOF
 }
 
 EOF
 }
 
-  extra_objs="$extra_objs sysdll.o" &&  if test "$extra_verbose" = "yes"; then
+    extra_objs="$extra_objs sysdll.o" &&  if test "$extra_verbose" = "yes"; then
    echo "    xemacs will be linked with \"sysdll.o\""
  fi
    echo "    xemacs will be linked with \"sysdll.o\""
  fi
-  extra_objs="$extra_objs dll.o" &&  if test "$extra_verbose" = "yes"; then
-   echo "    xemacs will be linked with \"dll.o\""
+    extra_objs="$extra_objs emodules.o" &&  if test "$extra_verbose" = "yes"; then
+   echo "    xemacs will be linked with \"emodules.o\""
  fi
  fi
-  test ! -z "$DLL_LIB" && LIBS="-l${DLL_LIB} $LIBS" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-l${DLL_LIB}\" to \$LIBS"; fi
-  
-dll_ld="ld"
-dll_lflags="-shared"
-dll_cflags="-r"
-dll_oflags="-o "
-
-echo $ac_n "checking how to build a shared library""... $ac_c" 1>&6
-echo "configure:11322: checking how to build a shared library" >&5
-case `uname -rs` in
-       UNIX_SV*|UNIX_System_V*)
-               dll_lflags="-G"
-               dll_cflags=-Kpic
-               dll_ld="ld"
-               ;;
-       BSD/OS*)
-               dll_cflags=
-               dll_lflags="-r"
-               dll_ld="shlicc2"
-               ;;
-       FreeBSD*2*)
-               dll_lflags="-Bshareable"
-               dll_cflags="-fPIC -DPIC"
-               dll_ld=ld
-               ;;
-       SunOS*4.*)
-               dll_cflags="-P"
-               dll_lflags="-dp -assert pure-text -assert nodefinitions"
-               ;;
-       SunOS*5.*)
-               dll_ld="cc"
-               dll_cflags="-KPIC"
-               dll_lflags="-G"
-               dll_oflags="-W0,-y-o -W0,-y"
-               ;;      
-       IRIX*5.*|IRIX*6.*)
-               dll_cflags="-KPIC"
-               ;;
-       OSF1*)
-               ;;
-       HP-UX*)
-               dll_ld="ld"
-               dll_lflags="-b"
-               dll_cflags="+z"
-               ;;
-       SCO_SV*)
-               dll_ld="ld"
-               dll_lflags="-G"
-               dll_cflags="-Kpic"
-               ;;
-       AIX*)
-               dll_lflags="-H512 -T512 -bhalt:4 -bM:SRE -bE:\${@:.ell=.exp} -b noentry -lc"
-               dll_ld="ld"
-               ;;
-       *)
-               ;;
-       esac
-
-       if test "$GCC" = "yes" ; then
-               dll_cflags="-fPIC"
-               case `uname -rs` in
-               SunOS*5.*)
-                       dll_ld="ld"
-                       dll_oflags="-o "
-                       dll_lflags="-G"
-                       ;;
-               SCO_SV*)
-                       dll_ld="ld"
-                       dll_lflags="-G"
-                       dll_cflags="-b elf"
-                       ;;
-               FreeBSD*)
-                       dll_cflags="-DDLSYM_NEEDS_UNDERSCORE -DPIC -fPIC"
-                       dll_lflags="-Bshareable"
-                       dll_ld=ld
-                       ;;
-               BSD/OS*)
-                       dll_cflags=
-                       dll_lflags="-r"
-                       dll_ld="shlicc2"
-                       ;;
-               UNIX_SV*)
-                       dll_cflags="-fPIC"
-                       ;;
-               *)
-                       dll_ld="$CC"
-                       dll_lflags="-shared"
-               esac
-       fi
-
-       echo "$ac_t"""lflags: $dll_lflags cflags: $dll_cflags"" 1>&6
-
-
-
-
-
-  for ac_func in dlerror
+    INSTALL_ARCH_DEP_SUBDIR="$INSTALL_ARCH_DEP_SUBDIR src" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"src\" to \$INSTALL_ARCH_DEP_SUBDIR"; fi
+    test ! -z "$DLL_LIB" && LIBS="-l${DLL_LIB} $LIBS" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-l${DLL_LIB}\" to \$LIBS"; fi
+    for ac_func in dlerror _dlerror
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11413: checking for $ac_func" >&5
+echo "configure:12392: checking for $ac_func" >&5
 
 cat > conftest.$ac_ext <<EOF
 
 cat > conftest.$ac_ext <<EOF
-#line 11416 "configure"
+#line 12395 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -11435,7 +12414,7 @@ $ac_func();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:11439: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:12418: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -11462,23 +12441,22 @@ else
 fi
 done
 
 fi
 done
 
-  ld_dynamic_link_flags=
-    case "$opsys" in
-  hpux*)  ld_dynamic_link_flags="-Wl,-E" ;;
-  linux*) ld_dynamic_link_flags="-rdynamic" ;;
-  *) ;;
-  esac
+  else
+    echo "configure: warning: disabling shared library support" 1>&2
+    with_shlib=no
+  fi
 fi
 
 cat > conftest.$ac_ext <<EOF
 fi
 
 cat > conftest.$ac_ext <<EOF
-#line 11475 "configure"
+#line 12452 "configure"
 #include "confdefs.h"
 int main(int c,char *v[]){return 0;}
 EOF
 #include "confdefs.h"
 int main(int c,char *v[]){return 0;}
 EOF
-if { (eval echo configure:11479: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>&5
+if { (eval echo configure:12456: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   :
 else
 then
   :
 else
+  conftest_rc="$?"
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
@@ -11501,8 +12479,12 @@ else
 fi
 rm -fr conftest*
 
 fi
 rm -fr conftest*
 
-
-{ test "$extra_verbose" = "yes" && cat << \EOF
+if test "$win32_processes" = "yes"; then
+  extra_objs="$extra_objs process-nt.o" &&  if test "$extra_verbose" = "yes"; then
+   echo "    xemacs will be linked with \"process-nt.o\""
+ fi
+else
+  { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_UNIX_PROCESSES
 EOF
 cat >> confdefs.h <<\EOF
     Defining HAVE_UNIX_PROCESSES
 EOF
 cat >> confdefs.h <<\EOF
@@ -11510,9 +12492,10 @@ cat >> confdefs.h <<\EOF
 EOF
 }
 
 EOF
 }
 
-extra_objs="$extra_objs process-unix.o" &&  if test "$extra_verbose" = "yes"; then
+  extra_objs="$extra_objs process-unix.o" &&  if test "$extra_verbose" = "yes"; then
    echo "    xemacs will be linked with \"process-unix.o\""
  fi
    echo "    xemacs will be linked with \"process-unix.o\""
  fi
+fi
 
 
 
 
 
 
@@ -11573,7 +12556,7 @@ ld_libs_all="$T"
 
 
 MAKE_SUBDIR="$MAKE_SUBDIR src" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"src\" to \$MAKE_SUBDIR"; fi
 
 
 MAKE_SUBDIR="$MAKE_SUBDIR src" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"src\" to \$MAKE_SUBDIR"; fi
-internal_makefile_list="Makefile"
+internal_makefile_list="Makefile.in"
 SUBDIR_MAKEFILES=''
 test -d lock || mkdir lock
 for dir in $MAKE_SUBDIR; do
 SUBDIR_MAKEFILES=''
 test -d lock || mkdir lock
 for dir in $MAKE_SUBDIR; do
@@ -11584,7 +12567,7 @@ for dir in $MAKE_SUBDIR; do
   esac
   
 T=""
   esac
   
 T=""
-for W in $SUBDIR_MAKEFILES $dir/Makefile; do if test -z "$T"; then T="$W"; else T="$T $W"; fi; done
+for W in $SUBDIR_MAKEFILES $dir/Makefile $dir/GNUmakefile; do if test -z "$T"; then T="$W"; else T="$T $W"; fi; done
 SUBDIR_MAKEFILES="$T"
 
   
 SUBDIR_MAKEFILES="$T"
 
   
@@ -11615,7 +12598,7 @@ if test -f $srcdir/src/gdbinit -a ! -f src/gdbinit ; then
   echo "source $srcdir/src/gdbinit" > src/gdbinit
 fi
 
   echo "source $srcdir/src/gdbinit" > src/gdbinit
 fi
 
-if test "$__sunpro_c" = "yes"; then
+if test "$__SUNPRO_C" = "yes"; then
   echo "creating .sbinit"; echo ""
   ( echo "# For use with Sun WorkShop's Source browser."
     echo "# See sbquery(1) and sbinit(4) for more information"
   echo "creating .sbinit"; echo ""
   ( echo "# For use with Sun WorkShop's Source browser."
     echo "# See sbquery(1) and sbinit(4) for more information"
@@ -11705,6 +12688,38 @@ done
 
 
 
 
 
 
+MODULEDIR=$moduledir
+while true; do
+  case "$MODULEDIR" in
+    *\$* ) eval "MODULEDIR=$MODULEDIR" ;;
+    *) break ;;
+  esac
+done
+
+
+
+
+SITELISPDIR=$sitelispdir
+while true; do
+  case "$SITELISPDIR" in
+    *\$* ) eval "SITELISPDIR=$SITELISPDIR" ;;
+    *) break ;;
+  esac
+done
+
+
+
+
+SITEMODULEDIR=$sitemoduledir
+while true; do
+  case "$SITEMODULEDIR" in
+    *\$* ) eval "SITEMODULEDIR=$SITEMODULEDIR" ;;
+    *) break ;;
+  esac
+done
+
+
+
 
 ETCDIR=$etcdir
 while true; do
 
 ETCDIR=$etcdir
 while true; do
@@ -11755,7 +12770,6 @@ done
 
 
 
 
 
 
-
 RECURSIVE_MAKE="\$(MAKE) \$(MFLAGS) CC='\$(CC)' CFLAGS='\$(CFLAGS)' LDFLAGS='\$(LDFLAGS)' CPPFLAGS='\$(CPPFLAGS)'"
 
 
 RECURSIVE_MAKE="\$(MAKE) \$(MFLAGS) CC='\$(CC)' CFLAGS='\$(CFLAGS)' LDFLAGS='\$(LDFLAGS)' CPPFLAGS='\$(CPPFLAGS)'"
 
 
@@ -11764,7 +12778,10 @@ RECURSIVE_MAKE="\$(MAKE) \$(MFLAGS) CC='\$(CC)' CFLAGS='\$(CFLAGS)' LDFLAGS='\$(
 
 
 
 
 
 
-# The default is yes
+: ${XEMACS_CC:=$CC}
+
+
+
 if test "$with_site_lisp" = "no"; then
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining INHIBIT_SITE_LISP
 if test "$with_site_lisp" = "no"; then
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining INHIBIT_SITE_LISP
@@ -11775,6 +12792,16 @@ EOF
 }
 
 fi
 }
 
 fi
+if test "$with_site_modules" = "no"; then
+  { test "$extra_verbose" = "yes" && cat << \EOF
+    Defining INHIBIT_SITE_MODULES
+EOF
+cat >> confdefs.h <<\EOF
+#define INHIBIT_SITE_MODULES 1
+EOF
+}
+
+fi
 
 
 T=""
 
 
 T=""
@@ -11858,15 +12885,6 @@ EOF
 
 
 
 
 
 
-test -n "$puresize" && { test "$extra_verbose" = "yes" && cat << EOF
-    Defining RAW_PURESIZE = $puresize
-EOF
-cat >> confdefs.h <<EOF
-#define RAW_PURESIZE $puresize
-EOF
-}
-
-
 if   test "$GNU_MALLOC"         = "yes"; then { test "$extra_verbose" = "yes" && cat << \EOF
     Defining GNU_MALLOC
 EOF
 if   test "$GNU_MALLOC"         = "yes"; then { test "$extra_verbose" = "yes" && cat << \EOF
     Defining GNU_MALLOC
 EOF
@@ -11924,19 +12942,19 @@ cat >> confdefs.h <<\EOF
 EOF
 }
 
 EOF
 }
 
-test "$with_gnu_make"      = "yes" && { test "$extra_verbose" = "yes" && cat << \EOF
-    Defining USE_GNU_MAKE
+test "$no_doc_file"        = "yes" && { test "$extra_verbose" = "yes" && cat << \EOF
+    Defining NO_DOC_FILE
 EOF
 cat >> confdefs.h <<\EOF
 EOF
 cat >> confdefs.h <<\EOF
-#define USE_GNU_MAKE 1
+#define NO_DOC_FILE 1
 EOF
 }
 
 EOF
 }
 
-test "$no_doc_file"        = "yes" && { test "$extra_verbose" = "yes" && cat << \EOF
-    Defining NO_DOC_FILE
+test "$with_purify"        = "yes" && { test "$extra_verbose" = "yes" && cat << \EOF
+    Defining PURIFY
 EOF
 cat >> confdefs.h <<\EOF
 EOF
 cat >> confdefs.h <<\EOF
-#define NO_DOC_FILE 1
+#define PURIFY 1
 EOF
 }
 
 EOF
 }
 
@@ -12035,21 +13053,37 @@ if test "$with_xpm" = yes; then
 elif test "$with_x11" = yes; then
   echo "  --------------------------------------------------------------------"
   echo "  WARNING: Compiling without XPM support."
 elif test "$with_x11" = yes; then
   echo "  --------------------------------------------------------------------"
   echo "  WARNING: Compiling without XPM support."
-  echo "  WARNING: You should strongly considering installing XPM."
+  if test "$xpm_problem" != ""; then
+    echo "  Reason: $xpm_problem"
+  fi
+  echo "  WARNING: You should strongly consider installing XPM."
   echo "  WARNING: Otherwise toolbars and other graphics will look suboptimal."
   echo "  WARNING: Otherwise toolbars and other graphics will look suboptimal."
+  echo "  WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)"
+  echo "  --------------------------------------------------------------------"
+fi
+if test "$with_png" = yes; then
+  echo "  Compiling in support for PNG image handling."
+elif test "$window_system" != "none"; then
+  echo "  --------------------------------------------------------------------"
+  echo "  WARNING: Compiling without PNG image support."
+  if test "$png_problem" != ""; then
+    echo "  Reason: $png_problem"
+  fi
+  echo "  WARNING: You should strongly consider installing the PNG libraries."
+  echo "  WARNING: Otherwise certain images and glyphs may not display."
+  echo "  WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)"
   echo "  --------------------------------------------------------------------"
 fi
   echo "  --------------------------------------------------------------------"
 fi
+test "$with_gif"   = yes && echo "  Compiling in support for (builtin) GIF image handling."
+test "$with_jpeg"  = yes && echo "  Compiling in support for JPEG image handling."
+test "$with_tiff"  = yes && echo "  Compiling in support for TIFF image handling."
 test "$with_xface" = yes && echo "  Compiling in support for X-Face message headers."
 test "$with_xface" = yes && echo "  Compiling in support for X-Face message headers."
-test "$with_gif"   = yes && echo "  Compiling in support for GIF image conversion."
-test "$with_jpeg"  = yes && echo "  Compiling in support for JPEG image conversion."
-test "$with_png"   = yes && echo "  Compiling in support for PNG image conversion."
-test "$with_tiff"  = yes && echo "  Compiling in support for TIFF image conversion."
 case "$with_sound" in
   nas    ) echo "  Compiling in network sound (NAS) support." ;;
   native ) echo "  Compiling in native sound support." ;;
   both   ) echo "  Compiling in both network and native sound support." ;;
 esac
 case "$with_sound" in
   nas    ) echo "  Compiling in network sound (NAS) support." ;;
   native ) echo "  Compiling in native sound support." ;;
   both   ) echo "  Compiling in both network and native sound support." ;;
 esac
-test "$old_nas" = yes && echo "        nas library lacks error trapping, will play synchronously"
+test "$old_nas" = yes && echo "        nas library lacks error trapping, will play synchronously."
 
 test "$with_database_berkdb" = yes && echo "  Compiling in support for Berkeley DB."
 test "$with_database_dbm"    = yes && echo "  Compiling in support for DBM."
 
 test "$with_database_berkdb" = yes && echo "  Compiling in support for Berkeley DB."
 test "$with_database_dbm"    = yes && echo "  Compiling in support for DBM."
@@ -12095,7 +13129,15 @@ case "$with_scrollbars" in
   athena3d ) echo "  Using Athena-3d scrollbars." ;;
 esac
 case "$with_dialogs" in
   athena3d ) echo "  Using Athena-3d scrollbars." ;;
 esac
 case "$with_dialogs" in
-  motif    ) echo "  Using Motif dialog boxes."     ;;
+  motif    )
+    echo "  Using Motif dialog boxes."
+    if test "$unexec" = "unexaix.o"; then if test "`uname -v`" = 4 -a "`uname -r`" -ge 3; then
+      echo "  *WARNING*  The Motif dialog boxes cause problems on AIX 4.3 and higher."
+      echo "             We recommend using the Athena dialog boxes instead."
+      echo "             Install libXaw and re-run configure with --with-dialogs='athena'."
+      echo "             Read the PROBLEMS file for more information."
+    fi; fi
+    ;;
   athena   ) echo "  Using Athena dialog boxes."    ;;
   athena3d ) echo "  Using Athena-3d dialog boxes." ;;
 esac
   athena   ) echo "  Using Athena dialog boxes."    ;;
   athena3d ) echo "  Using Athena-3d dialog boxes." ;;
 esac
@@ -12103,14 +13145,11 @@ test "$with_shlib" = "yes" && echo "  Compiling in DLL support."
 test "$with_clash_detection" = yes && \
   echo "  Clash detection will use \"$lockdir\" for locking files."
 echo "  movemail will use \"$mail_locking\" for locking mail spool files."
 test "$with_clash_detection" = yes && \
   echo "  Clash detection will use \"$lockdir\" for locking files."
 echo "  movemail will use \"$mail_locking\" for locking mail spool files."
-test "$with_pop"       = yes && echo "  Using POP for mail access"
-test "$with_kerberos"  = yes && echo "  Using Kerberos for POP authentication"
-test "$with_hesiod"    = yes && echo "  Using Hesiod to get POP server host"
+test "$with_pop"       = yes && echo "  Using POP for mail access."
+test "$with_kerberos"  = yes && echo "  Using Kerberos for POP authentication."
+test "$with_hesiod"    = yes && echo "  Using Hesiod to get POP server host."
 test "$use_union_type"  = yes && echo "  Using the union type for Lisp_Objects."
 test "$use_union_type"  = yes && echo "  Using the union type for Lisp_Objects."
-test "$use_minimal_tagbits" = yes && echo "  Using Lisp_Objects with minimal tagbits."
-test "$use_indexed_lrecord_implementation" = yes && echo "  Using indexed lrecord implementation."
 test "$debug"              = yes && echo "  Compiling in extra code for debugging."
 test "$debug"              = yes && echo "  Compiling in extra code for debugging."
-test "$memory_usage_stats" = yes && echo "  Compiling in code for checking XEmacs memory usage."
 test "$usage_tracking"     = yes && echo "  Compiling with usage tracking active (Sun internal)."
 if test "$error_check_extents $error_check_typecheck $error_check_bufpos $error_check_gc $error_check_malloc" \
   != "no no no no no"; then
 test "$usage_tracking"     = yes && echo "  Compiling with usage tracking active (Sun internal)."
 if test "$error_check_extents $error_check_typecheck $error_check_bufpos $error_check_gc $error_check_malloc" \
   != "no no no no no"; then
@@ -12124,11 +13163,6 @@ echo ""
 ) | tee -a Installation
 echo ""
 
 ) | tee -a Installation
 echo ""
 
-echo '(setq Installation-string "' > Installation.el
-sed 's/"/\\"/g' Installation >> Installation.el
-echo '")' >> Installation.el
-
-
 
 # Remove any trailing slashes in these variables.
 test -n "$prefix" &&
 
 # Remove any trailing slashes in these variables.
 test -n "$prefix" &&
@@ -12143,6 +13177,9 @@ for file in $internal_makefile_list; do
   ac_output_files="${ac_output_files+$ac_output_files }$file"
 done
 ac_output_files="$ac_output_files src/paths.h lib-src/config.values"
   ac_output_files="${ac_output_files+$ac_output_files }$file"
 done
 ac_output_files="$ac_output_files src/paths.h lib-src/config.values"
+if test "$with_shlib" = "yes"; then
+  ac_output_files="$ac_output_files lib-src/ellcc.h"
+fi
 
 trap '' 1 2 15
 
 
 trap '' 1 2 15
 
@@ -12254,8 +13291,10 @@ s%@lwlib_objs@%$lwlib_objs%g
 s%@ALLOCA@%$ALLOCA%g
 s%@dll_ld@%$dll_ld%g
 s%@dll_cflags@%$dll_cflags%g
 s%@ALLOCA@%$ALLOCA%g
 s%@dll_ld@%$dll_ld%g
 s%@dll_cflags@%$dll_cflags%g
-s%@dll_oflags@%$dll_oflags%g
-s%@dll_lflags@%$dll_lflags%g
+s%@dll_ldflags@%$dll_ldflags%g
+s%@dll_post@%$dll_post%g
+s%@dll_ldo@%$dll_ldo%g
+s%@ld_dynamic_link_flags@%$ld_dynamic_link_flags%g
 s%@SRC_SUBDIR_DEPS@%$SRC_SUBDIR_DEPS%g
 s%@INSTALL_ARCH_DEP_SUBDIR@%$INSTALL_ARCH_DEP_SUBDIR%g
 s%@MAKE_SUBDIR@%$MAKE_SUBDIR%g
 s%@SRC_SUBDIR_DEPS@%$SRC_SUBDIR_DEPS%g
 s%@INSTALL_ARCH_DEP_SUBDIR@%$INSTALL_ARCH_DEP_SUBDIR%g
 s%@MAKE_SUBDIR@%$MAKE_SUBDIR%g
@@ -12280,6 +13319,15 @@ s%@PACKAGE_PATH@%$PACKAGE_PATH%g
 s%@lispdir@%$lispdir%g
 s%@LISPDIR_USER_DEFINED@%$LISPDIR_USER_DEFINED%g
 s%@LISPDIR@%$LISPDIR%g
 s%@lispdir@%$lispdir%g
 s%@LISPDIR_USER_DEFINED@%$LISPDIR_USER_DEFINED%g
 s%@LISPDIR@%$LISPDIR%g
+s%@moduledir@%$moduledir%g
+s%@MODULEDIR_USER_DEFINED@%$MODULEDIR_USER_DEFINED%g
+s%@MODULEDIR@%$MODULEDIR%g
+s%@sitelispdir@%$sitelispdir%g
+s%@SITELISPDIR_USER_DEFINED@%$SITELISPDIR_USER_DEFINED%g
+s%@SITELISPDIR@%$SITELISPDIR%g
+s%@sitemoduledir@%$sitemoduledir%g
+s%@SITEMODULEDIR_USER_DEFINED@%$SITEMODULEDIR_USER_DEFINED%g
+s%@SITEMODULEDIR@%$SITEMODULEDIR%g
 s%@etcdir@%$etcdir%g
 s%@ETCDIR_USER_DEFINED@%$ETCDIR_USER_DEFINED%g
 s%@ETCDIR@%$ETCDIR%g
 s%@etcdir@%$etcdir%g
 s%@ETCDIR_USER_DEFINED@%$ETCDIR_USER_DEFINED%g
 s%@ETCDIR@%$ETCDIR%g
@@ -12292,7 +13340,6 @@ s%@ARCHLIBDIR@%$ARCHLIBDIR%g
 s%@docdir@%$docdir%g
 s%@bitmapdir@%$bitmapdir%g
 s%@extra_objs@%$extra_objs%g
 s%@docdir@%$docdir%g
 s%@bitmapdir@%$bitmapdir%g
 s%@extra_objs@%$extra_objs%g
-s%@ld_dynamic_link_flags@%$ld_dynamic_link_flags%g
 s%@machfile@%$machfile%g
 s%@opsysfile@%$opsysfile%g
 s%@c_switch_general@%$c_switch_general%g
 s%@machfile@%$machfile%g
 s%@opsysfile@%$opsysfile%g
 s%@c_switch_general@%$c_switch_general%g
@@ -12308,6 +13355,7 @@ s%@RECURSIVE_MAKE@%$RECURSIVE_MAKE%g
 s%@native_sound_lib@%$native_sound_lib%g
 s%@sound_cflags@%$sound_cflags%g
 s%@dynodump_arch@%$dynodump_arch%g
 s%@native_sound_lib@%$native_sound_lib%g
 s%@sound_cflags@%$sound_cflags%g
 s%@dynodump_arch@%$dynodump_arch%g
+s%@XEMACS_CC@%$XEMACS_CC%g
 s%@internal_makefile_list@%$internal_makefile_list%g
 
 CEOF
 s%@internal_makefile_list@%$internal_makefile_list%g
 
 CEOF
@@ -12519,14 +13567,12 @@ fi; done
 EOF
 cat >> $CONFIG_STATUS <<EOF
 CPP="$CPP"
 EOF
 cat >> $CONFIG_STATUS <<EOF
 CPP="$CPP"
- CPPFLAGS="$CPPFLAGS"
  top_srcdir="$srcdir"
  MAKE_SUBDIR="$MAKE_SUBDIR"
 
 EOF
 cat >> $CONFIG_STATUS <<\EOF
  top_srcdir="$srcdir"
  MAKE_SUBDIR="$MAKE_SUBDIR"
 
 EOF
 cat >> $CONFIG_STATUS <<\EOF
-for dir in $MAKE_SUBDIR; do
-  echo creating $dir/Makefile
+for dir in . $MAKE_SUBDIR; do
   (
     cd $dir
     rm -f junk.c
   (
     cd $dir
     rm -f junk.c
@@ -12538,26 +13584,45 @@ for dir in $MAKE_SUBDIR; do
           -e '/^#/ {
 p
 d
           -e '/^#/ {
 p
 d
-}'        -e '/./ {
+}'        \
+         -e '/./ {
 s/\([\"]\)/\\\1/g
 s/^/"/
 s/$/"/
 }'  > junk.c;
 s/\([\"]\)/\\\1/g
 s/^/"/
 s/$/"/
 }'  > junk.c;
-    $CPP -I. -I${top_srcdir}/src $CPPFLAGS junk.c > junk.cpp;
-    < junk.cpp                         \
-      sed -e 's/^#.*//'                        \
-       -e 's/^[        ][      ]*$//'  \
-       -e 's/^ /       /'                      \
-       | sed -n -e '/^..*$/p'          \
-       | sed '/^"/ {
-s/\\\([\"]\)/\1/g
-s/^[   ]*"//
-s/"[   ]*$//
-}'     > Makefile.new
+
+
+
+    echo creating $dir/Makefile
+$CPP -I. -I${top_srcdir}/src  junk.c \
+  | sed -e 's/^\#.*//'         \
+       -e 's/^[        ][      ]*$//'\
+       -e 's/^ /       /'              \
+  | sed -n -e '/^..*$/p'       \
+  | sed '/^\"/ {
+       s/\\\([\"]\)/\1/g
+       s/^[    ]*\"//
+       s/\"[   ]*$//
+}' > Makefile.new
     chmod 444 Makefile.new
     mv -f Makefile.new Makefile
     chmod 444 Makefile.new
     mv -f Makefile.new Makefile
-    rm -f junk.c junk.cpp
-)
+
+    echo creating $dir/GNUmakefile
+$CPP -I. -I${top_srcdir}/src -DUSE_GNU_MAKE junk.c \
+  | sed -e 's/^\#.*//'         \
+       -e 's/^[        ][      ]*$//'\
+       -e 's/^ /       /'              \
+  | sed -n -e '/^..*$/p'       \
+  | sed '/^\"/ {
+       s/\\\([\"]\)/\1/g
+       s/^[    ]*\"//
+       s/\"[   ]*$//
+}' > Makefile.new
+    chmod 444 Makefile.new
+    mv -f Makefile.new GNUmakefile
+
+    rm -f junk.c
+  )
 done
 
 sed < config.status >> lib-src/config.values \
 done
 
 sed < config.status >> lib-src/config.values \
@@ -12572,4 +13637,3 @@ EOF
 chmod +x $CONFIG_STATUS
 rm -fr confdefs* $ac_clean_files
 test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
 chmod +x $CONFIG_STATUS
 rm -fr confdefs* $ac_clean_files
 test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
-
index 3044365..e77bf16 100644 (file)
@@ -7,6 +7,7 @@ define([AC_INIT_NOTICE],
 #### Copyright (C) 1993-1995 Board of Trustees, University of Illinois.
 #### Copyright (C) 1996, 1997 Sun Microsystems, Inc.
 #### Copyright (C) 1995, 1996 Ben Wing.
 #### Copyright (C) 1993-1995 Board of Trustees, University of Illinois.
 #### Copyright (C) 1996, 1997 Sun Microsystems, Inc.
 #### Copyright (C) 1995, 1996 Ben Wing.
+#### Copyright (C) 1998, 1999 J. Kean Johnston.
 
 ### Don't edit this script!
 ### This script was automatically generated by the `autoconf' program
 
 ### Don't edit this script!
 ### This script was automatically generated by the `autoconf' program
@@ -79,11 +80,12 @@ define([AC_TRY_RUN_NATIVE],
 #include "confdefs.h"
 [$1]
 EOF
 #include "confdefs.h"
 [$1]
 EOF
-if AC_TRY_EVAL(ac_link) && test -s conftest && (./conftest; exit) 2>&AC_FD_CC
+if AC_TRY_EVAL(ac_link) && test -s conftest && (./conftest; exit $?) 2>&AC_FD_CC
 then
 dnl Do not remove the temporary files here, so they can be examined.
   ifelse([$2], , :, [$2])
 else
 then
 dnl Do not remove the temporary files here, so they can be examined.
   ifelse([$2], , :, [$2])
 else
+  conftest_rc="$?"
   echo "configure: failed program was:" >&AC_FD_CC
   cat conftest.$ac_ext >&AC_FD_CC
 ifelse([$3], , , [  rm -fr conftest*
   echo "configure: failed program was:" >&AC_FD_CC
   cat conftest.$ac_ext >&AC_FD_CC
 ifelse([$3], , , [  rm -fr conftest*
@@ -228,6 +230,13 @@ define([XE_PREPEND],
 [[$2]="[$1] $[$2]" && dnl
  if test "$extra_verbose" = "yes"; then echo "    Prepending \"[$1]\" to \$[$2]"; fi])
 
 [[$2]="[$1] $[$2]" && dnl
  if test "$extra_verbose" = "yes"; then echo "    Prepending \"[$1]\" to \$[$2]"; fi])
 
+dnl XE_DIE(message)
+define([XE_DIE], [{ echo "Error:" $1 >&2; exit 1; }])
+
+dnl XE_STRIP_4TH_COMPONENT(var)
+dnl Changes i986-pc-linux-gnu to i986-pc-linux, as God (not RMS) intended.
+define([XE_STRIP_4TH_COMPONENT],
+[$1=`echo "$$1" | sed '[s/^\([^-][^-]*-[^-][^-]*-[^-][^-]*\)-.*$/\1/]'`])
 
 dnl Initialize some variables set by options.
 dnl The variables have the same names as the options, with
 
 dnl Initialize some variables set by options.
 dnl The variables have the same names as the options, with
@@ -325,7 +334,6 @@ dnl -----------------------------
 XE_APPEND(lib-src, MAKE_SUBDIR)
 XE_APPEND(lib-src, INSTALL_ARCH_DEP_SUBDIR)
 
 XE_APPEND(lib-src, MAKE_SUBDIR)
 XE_APPEND(lib-src, INSTALL_ARCH_DEP_SUBDIR)
 
-dnl run_in_place='no'
 prefix='/usr/local'
 exec_prefix='${prefix}'
 bindir='${exec_prefix}/bin'
 prefix='/usr/local'
 exec_prefix='${prefix}'
 bindir='${exec_prefix}/bin'
@@ -341,13 +349,16 @@ infodir='${datadir}/${PROGNAME}-${version}/info'
 infopath=''
 install_pp=''
 lispdir='${datadir}/${PROGNAME}-${version}/lisp'
 infopath=''
 install_pp=''
 lispdir='${datadir}/${PROGNAME}-${version}/lisp'
-dnl sitelispdir='${datadir}/xemacs/site-lisp'
+moduledir='${datadir}/${PROGNAME}-${version}/${configuration}/modules'
+sitelispdir='${datadir}/xemacs/site-lisp'
+sitemoduledir='${datadir}/xemacs/site-modules'
 pkgdir='${datadir}/${PROGNAME}-${version}/lisp'
 package_path=''
 etcdir='${datadir}/${PROGNAME}-${version}/etc'
 lockdir='${statedir}/${PROGNAME}/lock'
 pkgdir='${datadir}/${PROGNAME}-${version}/lisp'
 package_path=''
 etcdir='${datadir}/${PROGNAME}-${version}/etc'
 lockdir='${statedir}/${PROGNAME}/lock'
-archlibdir='${libdir}/${PROGNAME}-${version}/${configuration}'
+archlibdir='${datadir}/${PROGNAME}-${version}/${configuration}'
 with_site_lisp='no'
 with_site_lisp='no'
+with_site_modules='yes'
 with_menubars=''
 with_scrollbars=''
 with_dialogs=''
 with_menubars=''
 with_scrollbars=''
 with_dialogs=''
@@ -355,7 +366,6 @@ with_file_coding=''
 dnl const_is_losing is removed - we rely on AC_C_CONST instead.
 dnl We accept (and ignore) the --const-is-losing option for compatibility.
 dnl const_is_losing='yes'
 dnl const_is_losing is removed - we rely on AC_C_CONST instead.
 dnl We accept (and ignore) the --const-is-losing option for compatibility.
 dnl const_is_losing='yes'
-puresize=''
 cpp='' cppflags='' libs='' ldflags=''
 dynamic=''
 with_x11=''
 cpp='' cppflags='' libs='' ldflags=''
 dynamic=''
 with_x11=''
@@ -452,13 +462,12 @@ while test $# != 0; do
       case "$opt" in
 
       dnl Process (many) boolean options
       case "$opt" in
 
       dnl Process (many) boolean options
-       run_in_place    | \
-        with_site_lisp  | \
+       with_site_lisp  | \
+    with_site_modules | \
        with_x          | \
        with_x11        | \
        with_msw        | \
        with_gcc        | \
        with_x          | \
        with_x11        | \
        with_msw        | \
        with_gcc        | \
-       with_gnu_make   | \
        dynamic         | \
        with_ncurses    | \
        with_dnet       | \
        dynamic         | \
        with_ncurses    | \
        with_dnet       | \
@@ -475,19 +484,20 @@ while test $# != 0; do
        with_tiff       | \
        with_session    | \
        with_xmu        | \
        with_tiff       | \
        with_session    | \
        with_xmu        | \
+       with_purify     | \
        with_quantify   | \
        with_toolbars   | \
        with_tty        | \
        with_xfs        | \
        with_i18n3      | \
        with_mule       | \
        with_quantify   | \
        with_toolbars   | \
        with_tty        | \
        with_xfs        | \
        with_i18n3      | \
        with_mule       | \
-       with_file_coding        | \
+       with_file_coding| \
        with_canna      | \
        with_wnn        | \
        with_wnn6       | \
        with_workshop   | \
        with_sparcworks | \
        with_canna      | \
        with_wnn        | \
        with_wnn6       | \
        with_workshop   | \
        with_sparcworks | \
-       with_tooltalk   | \
+       with_tooltalk   | \
        with_ldap       | \
        with_pop        | \
        with_kerberos   | \
        with_ldap       | \
        with_pop        | \
        with_kerberos   | \
@@ -498,14 +508,10 @@ while test $# != 0; do
        verbose         | \
        extra_verbose   | \
        const_is_losing | \
        verbose         | \
        extra_verbose   | \
        const_is_losing | \
-       usage_tracking  | \
-       use_union_type  | \
+       usage_tracking  | \
+       use_union_type  | \
        debug           | \
        use_assertions  | \
        debug           | \
        use_assertions  | \
-       use_minimal_tagbits                     | \
-       use_indexed_lrecord_implementation      | \
-       gung_ho         | \
-       use_assertions  | \
        memory_usage_stats | \
        with_clash_detection | \
        with_shlib | \
        memory_usage_stats | \
        with_clash_detection | \
        with_shlib | \
@@ -513,13 +519,13 @@ while test $# != 0; do
          dnl Make sure the value given was either "yes" or "no".
          case "$val" in
            y | ye | yes )      val=yes ;;
          dnl Make sure the value given was either "yes" or "no".
          case "$val" in
            y | ye | yes )      val=yes ;;
-           n | no )            val=no  ;;
+           n | no )            val=no  ;;
            * ) USAGE_ERROR("The \`--$optname' option requires a boolean value: \`yes' or \`no'.") ;;
          esac
            * ) USAGE_ERROR("The \`--$optname' option requires a boolean value: \`yes' or \`no'.") ;;
          esac
-          eval "$opt=\"$val\"" ;;
+         eval "$opt=\"$val\"" ;;
 
 
 
 
-       dnl Options that take a user-supplied value, as in --puresize=8000000
+       dnl Options that take a user-supplied value, as in --x-includes=/usr/X11R6/include
        dnl The cache-file option is ignored (for compatibility with other configures)
        srcdir          | \
        compiler        | \
        dnl The cache-file option is ignored (for compatibility with other configures)
        srcdir          | \
        compiler        | \
@@ -528,9 +534,8 @@ while test $# != 0; do
        cppflags        | \
        libs            | \
        ldflags         | \
        cppflags        | \
        libs            | \
        ldflags         | \
-       puresize        | \
        cache_file      | \
        cache_file      | \
-       native_sound_lib | \
+       native_sound_lib| \
        site_lisp       | \
        x_includes      | \
        x_libraries     | \
        site_lisp       | \
        x_includes      | \
        x_libraries     | \
@@ -578,7 +583,7 @@ while test $# != 0; do
                g | gn | gnu | gnud | gnudb | gnudbm )  with_database_gnudbm=yes ;;
                * ) USAGE_ERROR(["The \`--$optname' option value
   must be either \`no' or a comma-separated list
                g | gn | gnu | gnud | gnudb | gnudbm )  with_database_gnudbm=yes ;;
                * ) USAGE_ERROR(["The \`--$optname' option value
   must be either \`no' or a comma-separated list
-  of one or more of \`berkdb', \`dbm', or \`gnudbm'."]) ;;
+  of one or more of \`berkdb' and either \`dbm' or \`gnudbm'."]) ;;
             esac
          done
          if test "$with_database_dbm"    = "yes" -a \
             esac
          done
          if test "$with_database_dbm"    = "yes" -a \
@@ -617,17 +622,6 @@ while test $# != 0; do
           eval "$opt=\"$val\""
         ;;
 
           eval "$opt=\"$val\""
         ;;
 
-        dnl XFontSet support?
-       "with_xfs" )
-         case "$val" in
-         y | ye | yes )                val=yes ;;
-         n | no | non | none )         val=no  ;;
-         * ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
- \`yes', or \`no'."]) ;;
-         esac
-         eval "$opt=\"$val\""
-       ;;
-
         dnl Mail locking specification
        "mail_locking" )
          case "$val" in
         dnl Mail locking specification
        "mail_locking" )
          case "$val" in
@@ -698,7 +692,7 @@ while test $# != 0; do
        dnl Has the user specified one of the path options?
        prefix | exec_prefix | bindir | datadir | statedir | libdir | \
        mandir | infodir | infopath | lispdir | etcdir | lockdir | pkgdir | \
        dnl Has the user specified one of the path options?
        prefix | exec_prefix | bindir | datadir | statedir | libdir | \
        mandir | infodir | infopath | lispdir | etcdir | lockdir | pkgdir | \
-       archlibdir | docdir | package_path )    
+       archlibdir | docdir | package_path )
           dnl If the value was omitted, get it from the next argument.
           if test "$valomitted" = "yes"; then
             if test "$#" = 0; then
           dnl If the value was omitted, get it from the next argument.
           if test "$valomitted" = "yes"; then
             if test "$#" = 0; then
@@ -712,7 +706,8 @@ while test $# != 0; do
            dnl default values are built.
           case "$opt" in
              lispdir ) AC_DEFINE(LISPDIR_USER_DEFINED) ;;
            dnl default values are built.
           case "$opt" in
              lispdir ) AC_DEFINE(LISPDIR_USER_DEFINED) ;;
-dnl             sitelispdir ) AC_DEFINE(SITELISPDIR_USER_DEFINED) ;;
+             sitelispdir ) AC_DEFINE(SITELISPDIR_USER_DEFINED) ;;
+             moduledir ) AC_DEFINE(MODULEDIR_USER_DEFINED) ;;
              etcdir  )  AC_DEFINE(ETCDIR_USER_DEFINED) ;;
              infodir ) AC_DEFINE(INFODIR_USER_DEFINED) ;;
              infopath ) AC_DEFINE(INFOPATH_USER_DEFINED) ;;
              etcdir  )  AC_DEFINE(ETCDIR_USER_DEFINED) ;;
              infodir ) AC_DEFINE(INFODIR_USER_DEFINED) ;;
              infopath ) AC_DEFINE(INFOPATH_USER_DEFINED) ;;
@@ -720,6 +715,7 @@ dnl             sitelispdir ) AC_DEFINE(SITELISPDIR_USER_DEFINED) ;;
              datadir )
                AC_DEFINE(INFODIR_USER_DEFINED)
                AC_DEFINE(LISPDIR_USER_DEFINED)
              datadir )
                AC_DEFINE(INFODIR_USER_DEFINED)
                AC_DEFINE(LISPDIR_USER_DEFINED)
+            AC_DEFINE(MODULEDIR_USER_DEFINED)
                AC_DEFINE(ETCDIR_USER_DEFINED) ;;
              statedir | lockdir ) AC_DEFINE(LOCKDIR_USER_DEFINED) ;;
              exec_prefix | libdir | archlibdir ) AC_DEFINE(ARCHLIBDIR_USER_DEFINED) ;;
                AC_DEFINE(ETCDIR_USER_DEFINED) ;;
              statedir | lockdir ) AC_DEFINE(LOCKDIR_USER_DEFINED) ;;
              exec_prefix | libdir | archlibdir ) AC_DEFINE(ARCHLIBDIR_USER_DEFINED) ;;
@@ -732,9 +728,10 @@ dnl             sitelispdir ) AC_DEFINE(SITELISPDIR_USER_DEFINED) ;;
        dnl Has the user asked for some help?
        "usage" | "help" ) ${PAGER-more} ${srcdir}/configure.usage; exit 0 ;;
 
        dnl Has the user asked for some help?
        "usage" | "help" ) ${PAGER-more} ${srcdir}/configure.usage; exit 0 ;;
 
-       dnl Has the user specified what toolkit to use for the menubars,
-       dnl scrollbar or dialogs?
-       "with_menubars" | "with_scrollbars" | "with_dialogs" )
+       dnl Has the user specified the toolkit(s) to use for GUI elements?
+       "with_menubars"   | \
+       "with_scrollbars" | \
+       "with_dialogs" )
          case "$val" in
            l | lu | luc | luci | lucid )               val=lucid  ;;
            m | mo | mot | moti | motif )               val=motif  ;;
          case "$val" in
            l | lu | luc | luci | lucid )               val=lucid  ;;
            m | mo | mot | moti | motif )               val=motif  ;;
@@ -747,7 +744,13 @@ dnl             sitelispdir ) AC_DEFINE(SITELISPDIR_USER_DEFINED) ;;
          eval "$opt=\"$val\""
        ;;
 
          eval "$opt=\"$val\""
        ;;
 
-        dnl Fail on unrecognized arguments.
+       dnl Obsolete legacy argument?  Warn, but otherwise ignore.
+       "run_in_place"  | \
+       "with_gnu_make" )
+         AC_MSG_WARN([Obsolete option \`--$optname' ignored.])
+       ;;
+
+        dnl Unrecognized option?  No mercy for user errors.
        * ) USAGE_ERROR("Unrecognized option: $arg") ;;
 
       esac
        * ) USAGE_ERROR("Unrecognized option: $arg") ;;
 
       esac
@@ -756,7 +759,7 @@ dnl             sitelispdir ) AC_DEFINE(SITELISPDIR_USER_DEFINED) ;;
     dnl Assume anything with multiple hyphens is a configuration name.
     *-*-*) configuration="$arg" ;;
 
     dnl Assume anything with multiple hyphens is a configuration name.
     *-*-*) configuration="$arg" ;;
 
-    dnl Anything else is an error
+    dnl Unrecognized argument?  No mercy for user errors.
     *) USAGE_ERROR("Unrecognized argument: $arg") ;;
 
   esac
     *) USAGE_ERROR("Unrecognized argument: $arg") ;;
 
   esac
@@ -778,29 +781,12 @@ eval set x "$quoted_arguments"; shift
 dnl --extra-verbose implies --verbose
 test "$extra_verbose" = "yes" && verbose=yes
 
 dnl --extra-verbose implies --verbose
 test "$extra_verbose" = "yes" && verbose=yes
 
-dnl Allow use of either ":" or spaces for lists of directories
-define(COLON_TO_SPACE,
-  [case "$[$1]" in *:* [)] [$1]="`echo '' $[$1] | sed -e 's/^ //' -e 's/:/ /g'`";; esac])dnl
-COLON_TO_SPACE(site_includes)
-COLON_TO_SPACE(site_libraries)
-COLON_TO_SPACE(site_prefixes)
-COLON_TO_SPACE(site_runtime_libraries)
-
 dnl with_x is an obsolete synonym for with_x11
 test -n "$with_x" && with_x11="$with_x"
 
 dnl with_x is an obsolete synonym for with_x11
 test -n "$with_x" && with_x11="$with_x"
 
-dnl --gung-ho=val is a synonym for
-dnl --use-minimal-tagbits=val --use-indexed-lrecord-implementation=val
-
-if test -n "$gung_ho"; then
-  test -z "$use_minimal_tagbits" && use_minimal_tagbits="$gung_ho"
-  test -z "$use_indexed_lrecord_implementation" && \
-    use_indexed_lrecord_implementation="$gung_ho"
-fi
-if test "$use_minimal_tagbits" = "no"; then
-  test "$with_dlmalloc" = "yes" && \
-    USAGE_ERROR("--with-dlmalloc requires --use-minimal-tagbits")
-  with_dlmalloc=no
+dnl --with-quantify or --with-purify imply --use-system-malloc
+if test "$with_purify" = "yes" -o "$with_quantify" = "yes"; then
+  test "$with_system_malloc" = "default" && with_system_malloc=yes
 fi
 
 dnl XE_CHECK_FEATURE_DEPENDENCY(feature1, feature2)
 fi
 
 dnl XE_CHECK_FEATURE_DEPENDENCY(feature1, feature2)
@@ -815,11 +801,6 @@ fi
 dnl CDE requires tooltalk
 XE_CHECK_FEATURE_DEPENDENCY(cde, tooltalk)
 
 dnl CDE requires tooltalk
 XE_CHECK_FEATURE_DEPENDENCY(cde, tooltalk)
 
-dnl Ignore useless run-in-place flag
-if test "$run_in_place" = "yes"; then
-  AC_MSG_WARN("The --run-in-place option is ignored because it is unnecessary.")
-fi
-
 dnl Find the source directory.
 case "$srcdir" in
 
 dnl Find the source directory.
 case "$srcdir" in
 
@@ -855,13 +836,9 @@ esac
 
 dnl ###########################################################################
 if test -z "$configuration"; then
 
 dnl ###########################################################################
 if test -z "$configuration"; then
-  AC_MSG_CHECKING("host system type")
-  dnl Guess the configuration and remove 4th name component, if present.
-  if configuration=`${CONFIG_SHELL-/bin/sh} $srcdir/config.guess | \
-    sed '[s/^\([^-][^-]*-[^-][^-]*-[^-][^-]*\)-.*$/\1/]'` ; then
-    AC_MSG_RESULT($configuration)
-  else
-    AC_MSG_RESULT(unknown)
+  dnl Guess the configuration
+  configuration=`${CONFIG_SHELL-/bin/sh} $srcdir/config.guess`
+  if test -z "$configuration"; then
     USAGE_ERROR(["XEmacs has not been ported to this host type.
 Try explicitly specifying the CONFIGURATION when rerunning configure."])
   fi
     USAGE_ERROR(["XEmacs has not been ported to this host type.
 Try explicitly specifying the CONFIGURATION when rerunning configure."])
   fi
@@ -881,13 +858,22 @@ for dir in lisp etc man info; do
   fi
 done
 
   fi
 done
 
+dnl Do our best to deal with automounter brokenness
+dnl CANONICALIZE_PATH(varname)
+define([CANONICALIZE_PATH],
+[if test -d "/net"; then
+  if test -d "/tmp_mnt/net"; then tdir="tmp_mnt/net"; else tdir="tmp_mnt"; fi
+  $1=`echo "[$]$1" | \
+   sed -e "s|^${tdir}/|/net/|" -e "s|^/a/|/net/|" -e "s|^/amd/|/net/|"`
+fi])dnl
+
 dnl Calculate canonical name for blddir (i.e. current directory).
 dnl PWD may already be the preferable absolute name for ".",
 dnl but we can't trust it - it is sometimes inaccurate.
 absolute_pwd="`pwd`";
 if test -n "$PWD" -a "`cd $PWD && pwd`" = "$absolute_pwd"
 then blddir="$PWD"
 dnl Calculate canonical name for blddir (i.e. current directory).
 dnl PWD may already be the preferable absolute name for ".",
 dnl but we can't trust it - it is sometimes inaccurate.
 absolute_pwd="`pwd`";
 if test -n "$PWD" -a "`cd $PWD && pwd`" = "$absolute_pwd"
 then blddir="$PWD"
-else blddir="$absolute_pwd"
+else blddir="$absolute_pwd"; CANONICALIZE_PATH(blddir)
 fi
 AC_SUBST(blddir)
 
 fi
 AC_SUBST(blddir)
 
@@ -897,7 +883,7 @@ dnl give you automounter prefixes, which can go away.
 case "$srcdir" in
   /* ) ;;
   .  ) srcdir="$blddir" ;;
 case "$srcdir" in
   /* ) ;;
   .  ) srcdir="$blddir" ;;
-  *  ) srcdir="`cd $srcdir && pwd`" ;;
+  *  ) srcdir="`cd $srcdir && pwd`"; CANONICALIZE_PATH(srcdir) ;;
 esac
 
 dnl Check if the source directory already has a configured system in it.
 esac
 
 dnl Check if the source directory already has a configured system in it.
@@ -984,12 +970,13 @@ dnl Given the configuration name, set machfile and opsysfile to the
 dnl names of the m/*.h and s/*.h files we should use.
 
 dnl Canonicalize the configuration name.
 dnl names of the m/*.h and s/*.h files we should use.
 
 dnl Canonicalize the configuration name.
-AC_CHECKING("the configuration name")
+AC_MSG_CHECKING("host system type")
 dnl allow -workshop suffix on configuration name
 internal_configuration=`echo $configuration | sed 's/-\(workshop\)//'`
 dnl allow -workshop suffix on configuration name
 internal_configuration=`echo $configuration | sed 's/-\(workshop\)//'`
-if canonical=`$srcdir/config.sub "$internal_configuration"` ; then : ; else
-  exit $?
-fi
+canonical=`${CONFIG_SHELL-/bin/sh} $srcdir/config.sub "$internal_configuration"`
+XE_STRIP_4TH_COMPONENT(configuration)
+XE_STRIP_4TH_COMPONENT(canonical)
+AC_MSG_RESULT($configuration)
 
 dnl If you add support for a new configuration, add code to this
 dnl switch statement to recognize your configuration name and select
 
 dnl If you add support for a new configuration, add code to this
 dnl switch statement to recognize your configuration name and select
@@ -1019,7 +1006,7 @@ machine='' opsys=''
 dnl Straightforward machine determination
 case "$canonical" in
   sparc-*-*        ) machine=sparc ;;
 dnl Straightforward machine determination
 case "$canonical" in
   sparc-*-*        ) machine=sparc ;;
-  alpha-*-*        ) machine=alpha ;;
+  alpha*-*-*       ) machine=alpha ;;
   vax-*-*          ) machine=vax ;;
   mips-dec-*       ) machine=pmax ;;
   mips-sgi-*       ) machine=iris4d ;;
   vax-*-*          ) machine=vax ;;
   mips-dec-*       ) machine=pmax ;;
   mips-sgi-*       ) machine=iris4d ;;
@@ -1032,6 +1019,8 @@ case "$canonical" in
   m68*-sony-*      ) machine=news ;;
   mips-sony-*      ) machine=news-risc ;;
   clipper-*        ) machine=clipper ;;
   m68*-sony-*      ) machine=news ;;
   mips-sony-*      ) machine=news-risc ;;
   clipper-*        ) machine=clipper ;;
+  arm-*            ) machine=arm ;;
+  ns32k-*          ) machine=ns32000 ;;
 esac
 
 dnl Straightforward OS determination
 esac
 
 dnl Straightforward OS determination
@@ -1058,9 +1047,9 @@ case "$canonical" in
   *-*-aix3.1*  ) opsys=aix3-1  ;;
   *-*-aix3.2.5 ) opsys=aix3-2-5        ;;
   *-*-aix3*    ) opsys=aix3-2  ;;
   *-*-aix3.1*  ) opsys=aix3-1  ;;
   *-*-aix3.2.5 ) opsys=aix3-2-5        ;;
   *-*-aix3*    ) opsys=aix3-2  ;;
-  *-*-aix4.2*  ) opsys=aix4-2  ;;
+  *-*-aix4.0*  ) opsys=aix4    ;;
   *-*-aix4.1*  ) opsys=aix4-1  ;;
   *-*-aix4.1*  ) opsys=aix4-1  ;;
-  *-*-aix4*    ) opsys=aix4    ;;
+  *-*-aix4*    ) opsys=aix4-2  ;;
 
   dnl Other generic OSes
   *-gnu* )                     opsys=gnu    ;;
 
   dnl Other generic OSes
   *-gnu* )                     opsys=gnu    ;;
@@ -1102,13 +1091,9 @@ case "$canonical" in
   dnl OpenBSD ports
   *-*-openbsd* )
     case "${canonical}" in
   dnl OpenBSD ports
   *-*-openbsd* )
     case "${canonical}" in
-      alpha*-*-openbsd*)       machine=alpha ;;
       i386-*-openbsd*)         machine=intel386 ;;
       m68k-*-openbsd*)         machine=hp9000s300 ;;
       mipsel-*-openbsd*)       machine=pmax ;;
       i386-*-openbsd*)         machine=intel386 ;;
       m68k-*-openbsd*)         machine=hp9000s300 ;;
       mipsel-*-openbsd*)       machine=pmax ;;
-      ns32k-*-openbsd*)                machine=ns32000 ;;
-      sparc-*-openbsd*)                machine=sparc ;;
-      vax-*-openbsd*)          machine=vax ;;
      esac
    ;;
 
      esac
    ;;
 
@@ -1324,6 +1309,13 @@ case "$canonical" in
     NON_GNU_CPP=/usr/ccs/lib/cpp
   ;;
 
     NON_GNU_CPP=/usr/ccs/lib/cpp
   ;;
 
+  dnl NEC
+  mips-nec-sysv*)
+    machine=mips-nec
+    NON_GNU_CC=/usr/ccs/bin/cc
+    NON_GNU_CPP=/usr/ccs/lib/cpp
+  ;;
+
   dnl Silicon Graphics machines
   dnl Iris 2500 and Iris 2500 Turbo (aka the Iris 3030)
   m68*-sgi-iris3.5* ) machine=irist opsys=iris3-5 ;;
   dnl Silicon Graphics machines
   dnl Iris 2500 and Iris 2500 Turbo (aka the Iris 3030)
   m68*-sgi-iris3.5* ) machine=irist opsys=iris3-5 ;;
@@ -1455,6 +1447,7 @@ case "$canonical" in
       *-xenix* )               opsys=xenix ;;
       *-sco3.2v4* )            opsys=sco4 NON_GNU_CPP=/lib/cpp  ;;
       *-bsd386* | *-bsdi1* )   opsys=bsd386 ;;
       *-xenix* )               opsys=xenix ;;
       *-sco3.2v4* )            opsys=sco4 NON_GNU_CPP=/lib/cpp  ;;
       *-bsd386* | *-bsdi1* )   opsys=bsd386 ;;
+      *-bsdi4* )               opsys=bsdos4 ;;
       *-bsdi3* )               opsys=bsdos3 ;;
       *-bsdi2.1* )             opsys=bsdos2-1 ;;
       *-bsdi2* )               opsys=bsdos2 ;;
       *-bsdi3* )               opsys=bsdos3 ;;
       *-bsdi2.1* )             opsys=bsdos2-1 ;;
       *-bsdi2* )               opsys=bsdos2 ;;
@@ -1473,7 +1466,9 @@ case "$canonical" in
       *-386bsd* )              opsys=386bsd ;;
       *-freebsd* )             opsys=freebsd ;;
       *-nextstep* )            opsys=nextstep ;;
       *-386bsd* )              opsys=386bsd ;;
       *-freebsd* )             opsys=freebsd ;;
       *-nextstep* )            opsys=nextstep ;;
-      *-pc-cygwin32 )          opsys=cygwin32 ;;
+      *-pc-cygwin* )           opsys=cygwin32 ;;
+      *-pc-mingw* )            opsys=mingw32 ;
+                               test -z "$with_tty" && with_tty="no";;
       dnl Otherwise, we fall through to the generic opsys code at the bottom.
     esac
   ;;
       dnl Otherwise, we fall through to the generic opsys code at the bottom.
     esac
   ;;
@@ -1492,7 +1487,7 @@ fi
 
 if test -z "$dynamic"; then
   case "$opsys" in
 
 if test -z "$dynamic"; then
   case "$opsys" in
-    hpux* | sunos4* | sco5 ) dynamic=no ;;
+    hpux* | sunos4* ) dynamic=no ;;
     *) dynamic=yes ;;
   esac
 fi
     *) dynamic=yes ;;
   esac
 fi
@@ -1594,13 +1589,24 @@ dnl I'm tired of pop being broken with GLIBC -slb
 dnl Well. then why not fix fucking pop?
 test "$have_glibc" = "yes" && AC_DEFINE(_GNU_SOURCE)
 
 dnl Well. then why not fix fucking pop?
 test "$have_glibc" = "yes" && AC_DEFINE(_GNU_SOURCE)
 
-AC_MSG_CHECKING(whether we are using SunPro C)
-AC_TRY_COMPILE([],[#ifndef __SUNPRO_C
-#error Not a  SunPro compiler :-(
-******* ======= ******** &&&&&&&&
+
+dnl Identify compilers to enable compiler-specific hacks.
+dnl Add support for other compilers HERE!
+dnl GCC is already identified elsewhere.
+AC_TRY_RUN([int main () {
+#if defined __SUNPRO_C
+return 11;
+#elif defined __DECC
+return 12;
+#else
+return 0;
 #endif
 #endif
-], __sunpro_c=yes, __sunpro_c=no)
-AC_MSG_RESULT($__sunpro_c)
+}], [],
+[case "$conftest_rc" in
+  11) echo "You appear to be using the SunPro C compiler."; __SUNPRO_C=yes ;;
+  12) echo "You appear to be using the DEC C compiler."   ; __DECC=yes ;;
+esac])
+
 
 dnl case "$canonical" in
 dnl   *-sun-sunos* ) test "$CPP" = "acc -E" && CPP="acc -E -Xs" ;;
 
 dnl case "$canonical" in
 dnl   *-sun-sunos* ) test "$CPP" = "acc -E" && CPP="acc -E -Xs" ;;
@@ -1702,11 +1708,12 @@ CPP_boolean_to_sh(SYSTEM_MALLOC, system_malloc)
 CPP_boolean_to_sh(TERMINFO, have_terminfo)
 CPP_boolean_to_sh(MAIL_USE_FLOCK, mail_use_flock)
 CPP_boolean_to_sh(MAIL_USE_LOCKF, mail_use_lockf)
 CPP_boolean_to_sh(TERMINFO, have_terminfo)
 CPP_boolean_to_sh(MAIL_USE_FLOCK, mail_use_flock)
 CPP_boolean_to_sh(MAIL_USE_LOCKF, mail_use_lockf)
+CPP_boolean_to_sh(HAVE_WIN32_PROCESSES, win32_processes)
 EOF
 
 dnl The value of CPP is a quoted variable reference, so we need to do this
 dnl to get its actual value...
 EOF
 
 dnl The value of CPP is a quoted variable reference, so we need to do this
 dnl to get its actual value...
-CPP=`eval "echo $CPP"`
+CPP=`eval "echo $CPP $CPPFLAGS"`
 define(TAB, [  ])dnl
 changequote(, )dnl
 eval `$CPP -Isrc $tempcname \
 define(TAB, [  ])dnl
 changequote(, )dnl
 eval `$CPP -Isrc $tempcname \
@@ -1726,6 +1733,10 @@ test "$extra_verbose" = "yes" && \
 dnl Non-ordinary link usually requires -lc
 test "$ordinary_link" = "no" -a -z "$libs_standard" && libs_standard="-lc"
 
 dnl Non-ordinary link usually requires -lc
 test "$ordinary_link" = "no" -a -z "$libs_standard" && libs_standard="-lc"
 
+dnl Compiler-specific hacks
+dnl DEC C requires -std
+test "$__DECC" = "yes" && XE_APPEND(-std, c_switch_site)
+
 dnl Calculalate value of CFLAGS:
 dnl Use either command line flag, environment var, or autodetection
 if test "$cflags_specified" = "no"; then
 dnl Calculalate value of CFLAGS:
 dnl Use either command line flag, environment var, or autodetection
 if test "$cflags_specified" = "no"; then
@@ -1736,18 +1747,17 @@ if test "$cflags_specified" = "no"; then
     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"
     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"
-    dnl cygwin can't cope with -O3
-    test "$opsys $machine" = "cygwin32 intel386" && \
-      CFLAGS="-g -O2 -Wall -Wno-switch"
-  elif test "$__sunpro_c" = "yes"; then
+  elif test "$__SUNPRO_C" = "yes"; then
     case "$opsys" in
       sol2    ) CFLAGS="-v -xO4" ;;
       sunos4* ) CFLAGS="-xO2";;
     esac
     case "$opsys" in
       sol2    ) CFLAGS="-v -xO4" ;;
       sunos4* ) CFLAGS="-xO2";;
     esac
+  elif test "$__DECC" = "yes"; then
+    CFLAGS="-O3"
   elif test "$CC" = "xlc"; then
   elif test "$CC" = "xlc"; then
-    CFLAGS="-O3 -qstrict -qnoansialias -qlibansi -qinfo -qro -qmaxmem=20000"
+    CFLAGS="-g -O3 -qstrict -qnoansialias -qlibansi -qinfo -qro -qmaxmem=20000"
+  dnl ### Add optimal CFLAGS support for other compilers HERE!
   else
   else
-    dnl ### Add tests for other compilers here...
     CFLAGS="-O" ;dnl The only POSIX-approved flag
   fi
 fi
     CFLAGS="-O" ;dnl The only POSIX-approved flag
   fi
 fi
@@ -1759,8 +1769,8 @@ if test "$GCC" = "yes"; then
   set x $[$1]; shift; [$1]=""
   while test -n "[$]1"; do
     case [$]1 in
   set x $[$1]; shift; [$1]=""
   while test -n "[$]1"; do
     case [$]1 in
-      -L  | -l  | -u         ) [$1]="$[$1] [$]1 [$]2"; shift ;;
-      -L* | -l* | -u* | -Wl* ) [$1]="$[$1] [$]1" ;;
+      -L  | -l  | -u               ) [$1]="$[$1] [$]1 [$]2"; shift ;;
+      -L* | -l* | -u* | -Wl* | -pg ) [$1]="$[$1] [$]1" ;;
       -Xlinker* ) ;;
       * ) [$1]="$[$1] -Xlinker [$]1" ;;
     esac
       -Xlinker* ) ;;
       * ) [$1]="$[$1] -Xlinker [$]1" ;;
     esac
@@ -1832,39 +1842,61 @@ dnl ---------------------------------------------------------------
 dnl Add site and system specific flags to compile and link commands
 dnl ---------------------------------------------------------------
 
 dnl Add site and system specific flags to compile and link commands
 dnl ---------------------------------------------------------------
 
-dnl All dirs present in site-prefixes will be searched for include/ and lib/
-dnl subdirs. This can avoid specifying both site-includes and site-libraries.
-dnl Those dirs will take precedence over the standard places, but not over
-dnl site-includes and site-libraries.
-
-dnl --site-prefixes (multiple dirs)
-if test -n "$site_prefixes"; then
-  for arg in $site_prefixes; do
-    case "$arg" in
-       -* ) ;;
-       * ) argi="-I${arg}/include" ; argl="-L${arg}/lib" ;;
-    esac
-    XE_APPEND($argi, c_switch_site)
-    XE_APPEND($argl, ld_switch_site)
-  done
-fi
+dnl Allow use of either ":" or spaces for lists of directories
+define(COLON_TO_SPACE,
+  [case "$[$1]" in *:* [)] [$1]="`echo '' $[$1] | sed -e 's/^ //' -e 's/:/ /g'`";; esac])dnl
 
 dnl --site-libraries (multiple dirs)
 
 dnl --site-libraries (multiple dirs)
+COLON_TO_SPACE(site_libraries)
 if test -n "$site_libraries"; then
   for arg in $site_libraries; do
 if test -n "$site_libraries"; then
   for arg in $site_libraries; do
-    case "$arg" in -* ) ;; * ) arg="-L${arg}" ;; esac
+    case "$arg" in
+     -* ) ;;
+     * ) test -d "$arg" || \
+           XE_DIE("Invalid site library \`$arg': no such directory")
+       arg="-L${arg}" ;;
+    esac
     XE_APPEND($arg, ld_switch_site)
   done
 fi
 
 dnl --site-includes (multiple dirs)
     XE_APPEND($arg, ld_switch_site)
   done
 fi
 
 dnl --site-includes (multiple dirs)
+COLON_TO_SPACE(site_includes)
 if test -n "$site_includes"; then
   for arg in $site_includes; do
 if test -n "$site_includes"; then
   for arg in $site_includes; do
-    case "$arg" in -* ) ;; * ) arg="-I${arg}" ;; esac
+    case "$arg" in
+      -* ) ;;
+      * ) test -d "$arg" || \
+           XE_DIE("Invalid site include \`$arg': no such directory")
+      arg="-I${arg}" ;;
+    esac
     XE_APPEND($arg, c_switch_site)
   done
 fi
 
     XE_APPEND($arg, c_switch_site)
   done
 fi
 
+dnl --site-prefixes (multiple dirs)
+dnl --site-prefixes=dir1:dir2 is a convenient shorthand for
+dnl --site-libraries=dir1/lib:dir2/lib --site-includes=dir1/include:dir2/include
+dnl Site prefixes take precedence over the standard places, but not over
+dnl site-includes and site-libraries.
+COLON_TO_SPACE(site_prefixes)
+if test -n "$site_prefixes"; then
+  for dir in $site_prefixes; do
+    inc_dir="${dir}/include"
+    lib_dir="${dir}/lib"
+    if test ! -d "$dir"; then
+      XE_DIE("Invalid site prefix \`$dir': no such directory")
+    elif test ! -d "$inc_dir"; then
+      XE_DIE("Invalid site prefix \`$dir': no such directory \`$inc_dir'")
+    elif test ! -d "$lib_dir"; then
+      XE_DIE("Invalid site prefix \`$dir': no such directory \`$lib_dir'")
+    else
+      XE_APPEND("-I$inc_dir", c_switch_site)
+      XE_APPEND("-L$lib_dir", ld_switch_site)
+    fi
+  done
+fi
+
 dnl GNU software installs by default into /usr/local/{include,lib}
 dnl if test -d "/usr/local/include" -a -d "/usr/local/lib"; then
 dnl   XE_APPEND("-L/usr/local/lib",    ld_switch_site)
 dnl GNU software installs by default into /usr/local/{include,lib}
 dnl if test -d "/usr/local/include" -a -d "/usr/local/lib"; then
 dnl   XE_APPEND("-L/usr/local/lib",    ld_switch_site)
@@ -1877,6 +1909,7 @@ for dir in "/usr/ccs/lib"; do
 done
 
 dnl --site-runtime-libraries (multiple dirs)
 done
 
 dnl --site-runtime-libraries (multiple dirs)
+COLON_TO_SPACE(site_runtime_libraries)
 if test -n "$site_runtime_libraries"; then
   LD_RUN_PATH="`echo $site_runtime_libraries | sed -e 's/  */:/g'`"
   export LD_RUN_PATH
 if test -n "$site_runtime_libraries"; then
   LD_RUN_PATH="`echo $site_runtime_libraries | sed -e 's/  */:/g'`"
   export LD_RUN_PATH
@@ -1889,7 +1922,7 @@ dnl -------------------------------------
 if   test "$dynamic" = "no"; then add_runtime_path=no
 elif test -n "$LD_RUN_PATH"; then add_runtime_path=yes
 else case "$opsys" in
 if   test "$dynamic" = "no"; then add_runtime_path=no
 elif test -n "$LD_RUN_PATH"; then add_runtime_path=yes
 else case "$opsys" in
-       sol2 | irix* | *bsd* ) add_runtime_path=yes ;;
+       sol2 | irix* | *bsd* | decosf* ) add_runtime_path=yes ;;
        * ) add_runtime_path=no ;;
      esac
 fi
        * ) add_runtime_path=no ;;
      esac
 fi
@@ -1898,14 +1931,19 @@ if test "$add_runtime_path" = "yes"; then
   dnl Try to autodetect runtime library flag (usually -R),
   dnl and whether it works (or at least does no harm)
   AC_MSG_CHECKING("for runtime libraries flag")
   dnl Try to autodetect runtime library flag (usually -R),
   dnl and whether it works (or at least does no harm)
   AC_MSG_CHECKING("for runtime libraries flag")
-  dash_r=""
-  for try_dash_r in "-R" "-R " "-rpath "; do
-    xe_check_libs="${try_dash_r}/no/such/file-or-directory"
-    XE_PROTECT_LINKER_FLAGS(xe_check_libs)
-    AC_TRY_LINK(, , dash_r="$try_dash_r")
-    xe_check_libs=""
-    test -n "$dash_r" && break
-  done
+  case "$opsys" in
+    sol2 ) dash_r="-R" ;;
+    decosf* | linux* | irix*) dash_r="-rpath " ;;
+    *)
+      dash_r=""
+      for try_dash_r in "-R" "-R " "-rpath "; do
+        xe_check_libs="${try_dash_r}/no/such/file-or-directory"
+        XE_PROTECT_LINKER_FLAGS(xe_check_libs)
+        AC_TRY_LINK(, , dash_r="$try_dash_r")
+        xe_check_libs=""
+        test -n "$dash_r" && break
+      done ;;
+  esac
   if test -n "$dash_r";
     then AC_MSG_RESULT("\"${dash_r}\"")
     else AC_MSG_RESULT(NONE)
   if test -n "$dash_r";
     then AC_MSG_RESULT("\"${dash_r}\"")
     else AC_MSG_RESULT(NONE)
@@ -1983,6 +2021,9 @@ fi
 ])dnl
 XE_COMPUTE_RUNPATH()
 
 ])dnl
 XE_COMPUTE_RUNPATH()
 
+dnl JKJ REMOVEME
+dnl XE_SHLIB_STUFF
+
 dnl -----------------------------------
 dnl Do some misc autoconf-special tests
 dnl -----------------------------------
 dnl -----------------------------------
 dnl Do some misc autoconf-special tests
 dnl -----------------------------------
@@ -2058,8 +2099,8 @@ AC_PROG_YACC
 
 dnl checks for header files
 AC_CHECK_HEADERS(mach/mach.h sys/stropts.h sys/timeb.h sys/time.h unistd.h)
 
 dnl checks for header files
 AC_CHECK_HEADERS(mach/mach.h sys/stropts.h sys/timeb.h sys/time.h unistd.h)
-AC_CHECK_HEADERS(utime.h locale.h libgen.h fcntl.h ulimit.h)
-AC_CHECK_HEADERS(linux/version.h kstat.h sys/pstat.h inttypes.h sys/un.h a.out.h)
+AC_CHECK_HEADERS(utime.h locale.h libgen.h fcntl.h ulimit.h cygwin/version.h)
+AC_CHECK_HEADERS(kstat.h sys/pstat.h inttypes.h sys/un.h a.out.h)
 AC_HEADER_SYS_WAIT
 AC_HEADER_STDC
 AC_HEADER_TIME
 AC_HEADER_SYS_WAIT
 AC_HEADER_STDC
 AC_HEADER_TIME
@@ -2139,7 +2180,7 @@ dnl check for long file names
 AC_SYS_LONG_FILE_NAMES
 
 dnl -lm is required by LISP_FLOAT_TYPE, among other things
 AC_SYS_LONG_FILE_NAMES
 
 dnl -lm is required by LISP_FLOAT_TYPE, among other things
-AC_CHECK_LIB(m, sin)
+AC_CHECK_FUNC(sin, ,AC_CHECK_LIB(m, sin))
 
 dnl Floating operation support is now unconditional
 AC_DEFINE(LISP_FLOAT_TYPE)
 
 dnl Floating operation support is now unconditional
 AC_DEFINE(LISP_FLOAT_TYPE)
@@ -2157,12 +2198,6 @@ elif test "$mail_locking" = "flock"; then AC_DEFINE(REAL_MAIL_USE_FLOCK)
 else mail_locking="dot-locking"
 fi
 
 else mail_locking="dot-locking"
 fi
 
-dnl Used by getloadavg() - does not require root priveleges
-AC_CHECK_LIB(kstat, kstat_open)
-
-dnl Another way to get the load average
-AC_CHECK_LIB(kvm, kvm_read)
-
 case "$opsys" in decosf*)
   AC_CHECK_LIB(pthreads, cma_open)
   test "$ac_cv_lib_pthreads_cma_open" = "yes" && \
 case "$opsys" in decosf*)
   AC_CHECK_LIB(pthreads, cma_open)
   test "$ac_cv_lib_pthreads_cma_open" = "yes" && \
@@ -2281,6 +2316,9 @@ if test "$with_x11" = "yes"; then
     fi
   done
 
     fi
   done
 
+  dnl Avoid version mismatch for shared library libXm.so on osf4
+  if test "$GCC" = yes -a -d /usr/shlib; then XE_APPEND(-L/usr/shlib, X_LIBS); fi
+
   ld_switch_x_site="$X_LIBS"
 
   XE_COMPUTE_RUNPATH()
   ld_switch_x_site="$X_LIBS"
 
   XE_COMPUTE_RUNPATH()
@@ -2416,6 +2454,7 @@ if test "$with_msw" != "no"; then
     AC_DEFINE(HAVE_MS_WINDOWS)
     install_pp="$blddir/lib-src/installexe.sh"
     XE_APPEND(-lshell32 -lgdi32 -luser32 -lcomctl32, libs_system)
     AC_DEFINE(HAVE_MS_WINDOWS)
     install_pp="$blddir/lib-src/installexe.sh"
     XE_APPEND(-lshell32 -lgdi32 -luser32 -lcomctl32, libs_system)
+    test "$with_dragndrop" != no && XE_APPEND(msw, dragndrop_proto)
     if test "$window_system" != x11; then
        window_system=msw
        test "$with_scrollbars" != "no" && with_scrollbars=msw \
     if test "$window_system" != x11; then
        window_system=msw
        test "$with_scrollbars" != "no" && with_scrollbars=msw \
@@ -2427,20 +2466,18 @@ if test "$with_msw" != "no"; then
        test "$with_dialogs"   != "no" && with_dialogs=msw \
            && XE_ADD_OBJS(dialog-msw.o)
     else
        test "$with_dialogs"   != "no" && with_dialogs=msw \
            && XE_ADD_OBJS(dialog-msw.o)
     else
-       test "$with_scrollbars"   != "no" && XE_ADD_OBJS(scrollbar-msw.o)
+       test "$with_scrollbars" != "no" && XE_ADD_OBJS(scrollbar-msw.o)
        test "$with_menubars"   != "no" && XE_ADD_OBJS(menubar-msw.o)
        test "$with_toolbars"   != "no" && XE_ADD_OBJS(toolbar-msw.o)
        test "$with_menubars"   != "no" && XE_ADD_OBJS(menubar-msw.o)
        test "$with_toolbars"   != "no" && XE_ADD_OBJS(toolbar-msw.o)
-       test "$with_dialogs"   != "no" && XE_ADD_OBJS(dialog-msw.o)
+       test "$with_dialogs"    != "no" && XE_ADD_OBJS(dialog-msw.o)
     fi
     fi
-    dnl check for our special version of select        
+    dnl check for our special version of select
     AC_TRY_RUN([#include <fcntl.h>
     int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; }],
     [AC_DEFINE(HAVE_MSG_SELECT)])
     const_is_losing=no
     with_file_coding=yes
     AC_TRY_RUN([#include <fcntl.h>
     int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; }],
     [AC_DEFINE(HAVE_MSG_SELECT)])
     const_is_losing=no
     with_file_coding=yes
-    use_minimal_tagbits=yes
-    use_indexed_lrecord_implementation=yes
-    XE_ADD_OBJS(console-msw.o device-msw.o event-msw.o frame-msw.o objects-msw.o select-msw.o redisplay-msw.o glyphs-msw.o)
+    XE_ADD_OBJS(console-msw.o device-msw.o event-msw.o frame-msw.o objects-msw.o select-msw.o redisplay-msw.o glyphs-msw.o gui-msw.o)
   fi
 fi
 
   fi
 fi
 
@@ -2450,7 +2487,7 @@ test -z "$window_system" && window_system="none"
 
 dnl Test for features that require a window system - ANY window system
 if test "$window_system" = "none"; then
 
 dnl Test for features that require a window system - ANY window system
 if test "$window_system" = "none"; then
-  for feature in menubars scrollbars toolbars dialogs dragndrop
+  for feature in menubars scrollbars toolbars dialogs dragndrop xface
   do
     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
        AC_MSG_WARN([--with-$feature ignored:  Not valid without window system support])
   do
     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
        AC_MSG_WARN([--with-$feature ignored:  Not valid without window system support])
@@ -2482,8 +2519,7 @@ if test "$with_x11" != "yes"; then
   dnl if test "$with_tty" = "no" ; then
   dnl   AC_MSG_ERROR([No window system support and no TTY support - Unable to proceed.])
   dnl fi
   dnl if test "$with_tty" = "no" ; then
   dnl   AC_MSG_ERROR([No window system support and no TTY support - Unable to proceed.])
   dnl fi
-  for feature in tooltalk cde offix session xim xmu \
-                 xface
+  for feature in tooltalk cde offix session xim xmu
   do
     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
        AC_MSG_WARN([--with-$feature ignored:  Not valid without X support])
   do
     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
        AC_MSG_WARN([--with-$feature ignored:  Not valid without X support])
@@ -2580,7 +2616,7 @@ if test "$with_cde" = "yes" ; then
 fi
 
 dnl Always compile OffiX unless --without-offix is given, no
 fi
 
 dnl Always compile OffiX unless --without-offix is given, no
-dnl X11 support is compiled in, no standard Xmu is avaiable,
+dnl X11 support is compiled in, no standard Xmu is available,
 dnl or dragndrop support is disabled
 dnl Because OffiX support currently loses when more than one display
 dnl is in use, we now disable it by default -slb 07/10/1998.
 dnl or dragndrop support is disabled
 dnl Because OffiX support currently loses when more than one display
 dnl is in use, we now disable it by default -slb 07/10/1998.
@@ -2651,6 +2687,7 @@ if test "$window_system" != "none"; then
   AC_CHECKING(for graphics libraries)
 
   dnl Autodetect Xpm
   AC_CHECKING(for graphics libraries)
 
   dnl Autodetect Xpm
+  xpm_problem=""
   if test -z "$with_xpm"; then
     AC_MSG_CHECKING(for Xpm - no older than 3.4f)
     xe_check_libs=-lXpm
   if test -z "$with_xpm"; then
     AC_MSG_CHECKING(for Xpm - no older than 3.4f)
     xe_check_libs=-lXpm
@@ -2660,22 +2697,22 @@ if test "$window_system" != "none"; then
       XpmIncludeVersion != XpmLibraryVersion() ? 1 :
       XpmIncludeVersion < 30406 ? 2 : 0 ;}],
     [./conftest dummy_arg; xpm_status=$?;
       XpmIncludeVersion != XpmLibraryVersion() ? 1 :
       XpmIncludeVersion < 30406 ? 2 : 0 ;}],
     [./conftest dummy_arg; xpm_status=$?;
-      if test "$?" = "0"; then
+      if test "$xpm_status" = "0"; then
         with_xpm=yes;
       else
         with_xpm=no;
         with_xpm=yes;
       else
         with_xpm=no;
-        if test "$?" = "1"; then
+        if test "$xpm_status" = "1"; then
           xpm_problem="Xpm library version and header file version don't match!"
           xpm_problem="Xpm library version and header file version don't match!"
-        elif test "$?" = "2"; then
+        elif test "$xpm_status" = "2"; then
           xpm_problem="Xpm library version is too old!"
         else
           xpm_problem="Internal xpm detection logic error!"
         fi
         echo "
           xpm_problem="Xpm library version is too old!"
         else
           xpm_problem="Internal xpm detection logic error!"
         fi
         echo "
-*** WARNING *** $problem
+*** WARNING *** $xpm_problem
   I'm not touching that with a 10-foot pole!
   If you really want to use the installed version of Xpm, rerun
   I'm not touching that with a 10-foot pole!
   If you really want to use the installed version of Xpm, rerun
-  configure --with-xpm=yes, but don't blame me if XEmacs crashes!"
+  configure and add '--with-xpm=yes', but don't blame me if XEmacs crashes!"
     fi],
     [with_xpm=no])
     xe_check_libs=
     fi],
     [with_xpm=no])
     xe_check_libs=
@@ -2696,6 +2733,24 @@ if test "$window_system" != "none"; then
     fi
   fi
 
     fi
   fi
 
+  dnl Autodetect XFACE
+  test -z "$with_xface" && { AC_CHECK_HEADER(compface.h,          ,with_xface=no) }
+  test -z "$with_xface" && { AC_CHECK_LIB(compface, UnGenFace,[:] ,with_xface=no) }
+  test -z "$with_xface" && with_xface=yes
+  if test "$with_xface" = "yes"; then
+    AC_DEFINE(HAVE_XFACE)
+    XE_PREPEND(-lcompface, libs_x)
+  fi
+
+  dnl For a brief period we had the GIF code split out into a separate library,
+  dnl but patent problems, etc. sort of squashed that idea.
+  dnl We default to building with builtin GIF decoding
+  if test "$with_gif" != "no"; then
+    with_gif="yes"
+    AC_DEFINE(HAVE_GIF)
+    XE_ADD_OBJS(dgif_lib.o gif_io.o)
+  fi
+
   dnl Too many stupid linkers can't detect cascaded lib dependencies until runtime
   dnl So we always search for libz compression support.
   if test "$with_png $with_tiff" != "no no"; then
   dnl Too many stupid linkers can't detect cascaded lib dependencies until runtime
   dnl So we always search for libz compression support.
   if test "$with_png $with_tiff" != "no no"; then
@@ -2704,16 +2759,6 @@ if test "$window_system" != "none"; then
     AC_CHECK_LIB(gz, inflate, [XE_PREPEND(-lgz, libs_x)])])])
   fi
 
     AC_CHECK_LIB(gz, inflate, [XE_PREPEND(-lgz, libs_x)])])])
   fi
 
-  dnl Autodetect GIFlib
-  AC_MSG_CHECKING(for gifreader)
-  test -z "$with_gif" && { AC_CHECK_HEADER(gifrlib.h,        ,with_gif=no) }
-  test -z "$with_gif" && { AC_CHECK_LIB(gifreader, GetGifError,[:] ,with_gif=no) }
-  test -z "$with_gif" && with_gif=yes
-  if test "$with_gif" = "yes"; then
-    AC_DEFINE(HAVE_GIF)
-    XE_PREPEND(-lgifreader, libs_x)
-  fi
-
   dnl autodetect JPEG
   test -z "$with_jpeg" && { AC_CHECK_HEADER(jpeglib.h,                    ,with_jpeg=no) }
   test -z "$with_jpeg" && { AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,[:],with_jpeg=no) }
   dnl autodetect JPEG
   test -z "$with_jpeg" && { AC_CHECK_HEADER(jpeglib.h,                    ,with_jpeg=no) }
   test -z "$with_jpeg" && { AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,[:],with_jpeg=no) }
@@ -2724,18 +2769,38 @@ if test "$window_system" != "none"; then
   fi
 
   dnl autodetect PNG
   fi
 
   dnl autodetect PNG
-  if test -z "$with_png"; then
-    AC_MSG_CHECKING(for png.h - no older than 0.96)
-    AC_EGREP_CPP(yes,
-[#include <png.h>
-#if PNG_LIBPNG_VER >= 96
-yes
-#endif
-], [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no); with_png=no])
-  fi
+  png_problem=""
   test -z "$with_png" && { AC_CHECK_FUNC(pow,                  ,with_png=no) }
   test -z "$with_png" && { AC_CHECK_FUNC(pow,                  ,with_png=no) }
+  test -z "$with_png" && { AC_CHECK_HEADER(png.h,              ,with_png=no) }
   test -z "$with_png" && { AC_CHECK_LIB(png, png_read_image,[:],with_png=no) }
   test -z "$with_png" && { AC_CHECK_LIB(png, png_read_image,[:],with_png=no) }
-  test -z "$with_png" && with_png=yes
+  if test -z "$with_png"; then
+    AC_MSG_CHECKING(for workable png version information)
+    xe_check_libs="-lpng -lz"
+    AC_TRY_RUN([#include <png.h>
+    int main(int c, char **v) {
+    if (c == 1) return 0;
+    if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING) != 0) return 1;
+    return (PNG_LIBPNG_VER < 10002) ? 2 : 0 ;}],
+    [./conftest dummy_arg; png_status=$?;
+      if test "$png_status" = "0"; then
+       with_png=yes;
+      else
+       with_png=no;
+       if test "$png_status" = "1"; then
+         png_problem="PNG library version and header file don't match!"
+        elif test "$png_status" = "2"; then
+         png_problem="PNG library version too old (pre 1.0.2)!"
+       fi
+       echo "
+*** WARNING *** $png_problem
+  I'm not touching that with a 10-foot pole!
+  If you really want to use the installed version of libPNG, rerun
+  configure and add '--with-png=yes', but don't blame me if XEmacs crashes!"
+    fi],
+    [with_png=no])
+    xe_check_libs=
+    AC_MSG_RESULT($with_png)
+  fi
   if test "$with_png" = "yes"; then
     AC_DEFINE(HAVE_PNG)
     XE_PREPEND(-lpng, libs_x)
   if test "$with_png" = "yes"; then
     AC_DEFINE(HAVE_PNG)
     XE_PREPEND(-lpng, libs_x)
@@ -2752,22 +2817,13 @@ yes
 fi
 
 dnl ----------------------
 fi
 
 dnl ----------------------
-dnl Graphics libraries
+dnl X-Specific Graphics libraries
 dnl ----------------------
 
 if test "$with_x11" = "yes"; then
 
   AC_CHECKING(for X11 graphics libraries)
 
 dnl ----------------------
 
 if test "$with_x11" = "yes"; then
 
   AC_CHECKING(for X11 graphics libraries)
 
-  dnl Autodetect XFACE
-  test -z "$with_xface" && { AC_CHECK_HEADER(compface.h,          ,with_xface=no) }
-  test -z "$with_xface" && { AC_CHECK_LIB(compface, UnGenFace,[:] ,with_xface=no) }
-  test -z "$with_xface" && with_xface=yes
-  if test "$with_xface" = "yes"; then
-    AC_DEFINE(HAVE_XFACE)
-    XE_PREPEND(-lcompface, libs_x)
-  fi
-
   dnl Autodetect -lXaw
   AC_CHECK_LIB(Xaw, XawScrollbarSetThumb, have_xaw=yes, have_xaw=no)
   dnl if test "$have_xaw" = "yes"; then
   dnl Autodetect -lXaw
   AC_CHECK_LIB(Xaw, XawScrollbarSetThumb, have_xaw=yes, have_xaw=no)
   dnl if test "$have_xaw" = "yes"; then
@@ -2859,7 +2915,6 @@ test "$with_menubars"   != "no"      && XE_ADD_OBJS(menubar.o)
 test "$with_scrollbars" != "no"      && XE_ADD_OBJS(scrollbar.o)
 test "$with_dialogs"    != "no"      && XE_ADD_OBJS(dialog.o)
 test "$with_toolbars"   != "no"      && XE_ADD_OBJS(toolbar.o)
 test "$with_scrollbars" != "no"      && XE_ADD_OBJS(scrollbar.o)
 test "$with_dialogs"    != "no"      && XE_ADD_OBJS(dialog.o)
 test "$with_toolbars"   != "no"      && XE_ADD_OBJS(toolbar.o)
-test "$all_widgets" != "no no no no" && XE_ADD_OBJS(gui.o)
 
 if test "$with_x11" = "yes"; then
   test "$with_menubars"   != "no"      && XE_ADD_OBJS(menubar-x.o)
 
 if test "$with_x11" = "yes"; then
   test "$with_menubars"   != "no"      && XE_ADD_OBJS(menubar-x.o)
@@ -2875,10 +2930,6 @@ else
   fi
 fi
 
   fi
 fi
 
-test "$use_minimal_tagbits" = "yes" && AC_DEFINE(USE_MINIMAL_TAGBITS)
-test "$use_indexed_lrecord_implementation" = "yes" && \
-  AC_DEFINE(USE_INDEXED_LRECORD_IMPLEMENTATION)
-
 dnl ----------------------
 dnl Mule-dependent options
 dnl ----------------------
 dnl ----------------------
 dnl Mule-dependent options
 dnl ----------------------
@@ -2902,7 +2953,7 @@ if test "$with_mule" = "yes" ; then
   AC_CHECKING(for Mule-related features)
   AC_DEFINE(MULE)
   AC_DEFINE(FILE_CODING)
   AC_CHECKING(for Mule-related features)
   AC_DEFINE(MULE)
   AC_DEFINE(FILE_CODING)
-  XE_ADD_OBJS(mule.o mule-ccl.o mule-charset.o mule-coding.o file-coding.o)
+  XE_ADD_OBJS(mule.o mule-ccl.o mule-charset.o file-coding.o)
 
   dnl Use -lintl to get internationalized strerror for Mule
   AC_CHECK_HEADERS(libintl.h)
 
   dnl Use -lintl to get internationalized strerror for Mule
   AC_CHECK_HEADERS(libintl.h)
@@ -2914,10 +2965,11 @@ if test "$with_mule" = "yes" ; then
   dnl test -z "$with_xim" -a "$opsys" != "sol2" && with_xim=no
   case "$with_xim" in "" | "yes" )
     AC_CHECKING(for XIM)
   dnl test -z "$with_xim" -a "$opsys" != "sol2" && with_xim=no
   case "$with_xim" in "" | "yes" )
     AC_CHECKING(for XIM)
+    AC_CHECK_LIB(X11, XOpenIM, with_xim=xlib, with_xim=no)
     dnl XIM + Lesstif is not (yet?) usable
     dnl XIM + Lesstif is not (yet?) usable
-    if test "$have_lesstif" = "yes"; then with_xim=xlib
-    else AC_CHECK_LIB(Xm, XmImMbLookupString, with_xim=motif, with_xim=xlib)
-    fi
+    if test "$have_motif $have_lesstif" = "yes no"; then
+      AC_CHECK_LIB(Xm, XmImMbLookupString, with_xim=motif)
+    fi ;;
   esac
   if test "$with_xim" != "no"; then
     AC_DEFINE(HAVE_XIM)
   esac
   if test "$with_xim" != "no"; then
     AC_DEFINE(HAVE_XIM)
@@ -2935,7 +2987,7 @@ if test "$with_mule" = "yes" ; then
     fi
   fi
 
     fi
   fi
 
-  dnl "with_xim" = "yes"
+  dnl "with_xfs" = "yes"
   if test "$with_xfs" = "yes" ; then
     AC_CHECKING(for XFontSet)
     AC_CHECK_LIB(X11, XmbDrawString, [:], with_xfs=no)
   if test "$with_xfs" = "yes" ; then
     AC_CHECKING(for XFontSet)
     AC_CHECK_LIB(X11, XmbDrawString, [:], with_xfs=no)
@@ -2945,7 +2997,7 @@ if test "$with_mule" = "yes" ; then
         XE_ADD_OBJS(input-method-xfs.o)
       fi
     fi
         XE_ADD_OBJS(input-method-xfs.o)
       fi
     fi
-  fi dnl with_xim
+  fi dnl with_xfs
 
   dnl Autodetect WNN
   test "$with_wnn6" = "yes" && with_wnn=yes # wnn6 implies wnn support
 
   dnl Autodetect WNN
   test "$with_wnn6" = "yes" && with_wnn=yes # wnn6 implies wnn support
@@ -2956,14 +3008,19 @@ if test "$with_mule" = "yes" ; then
     test "$ac_cv_func_crypt" != "yes" && { AC_CHECK_LIB(crypt, crypt) }
   fi
   dnl Back to our regularly scheduled wnn hunting
     test "$ac_cv_func_crypt" != "yes" && { AC_CHECK_LIB(crypt, crypt) }
   fi
   dnl Back to our regularly scheduled wnn hunting
-  test -z "$with_wnn" && { AC_CHECK_LIB(wnn,jl_dic_list_e,[:],with_wnn=no) }
+  if test -z "$with_wnn" -o "$with_wnn" = "yes"; then
+    AC_CHECK_LIB(wnn,jl_dic_list_e,libwnn=wnn,
+      AC_CHECK_LIB(wnn4,jl_dic_list_e,libwnn=wnn4,
+       AC_CHECK_LIB(wnn6,jl_dic_list_e,libwnn=wnn6,
+         AC_CHECK_LIB(wnn6_fromsrc,dic_list_e,libwnn=wnn6_fromsrc,with_wnn=no))))
+  fi
   test -z "$with_wnn" && with_wnn=yes
   if test "$with_wnn" = "yes"; then
     AC_DEFINE(HAVE_WNN)
   test -z "$with_wnn" && with_wnn=yes
   if test "$with_wnn" = "yes"; then
     AC_DEFINE(HAVE_WNN)
-    XE_PREPEND(-lwnn, libs_x)
+    XE_PREPEND(-l$libwnn, libs_x)
     XE_ADD_OBJS(mule-wnnfns.o)
     if test "$with_wnn6" != "no"; then
     XE_ADD_OBJS(mule-wnnfns.o)
     if test "$with_wnn6" != "no"; then
-      AC_CHECK_LIB(wnn, jl_fi_dic_list, with_wnn6=yes)
+      AC_CHECK_LIB($libwnn, jl_fi_dic_list, with_wnn6=yes)
       test "$with_wnn6" = "yes" && AC_DEFINE(WNN6)
     fi
   fi
       test "$with_wnn6" = "yes" && AC_DEFINE(WNN6)
     fi
   fi
@@ -3021,13 +3078,31 @@ dnl The realpath in ELF linux libc's is O.K.
 dnl For example, call realpath on a file thirty-five or so directories deep
 dnl and you get ELOOP even if no symlinks at all are involved.
 dnl Reports as of 11/1997 indicate BSDi has problems too.
 dnl For example, call realpath on a file thirty-five or so directories deep
 dnl and you get ELOOP even if no symlinks at all are involved.
 dnl Reports as of 11/1997 indicate BSDi has problems too.
+dnl The realpath() in UnixWare2.1.3 could not get any pathname fragment in error condition.
 case "$opsys" in
   linuxaout* | bsdos3* | freebsd* | decosf4-0* | aix4* ) XE_ADD_OBJS(realpath.o) ;;
   * )
 case "$opsys" in
   linuxaout* | bsdos3* | freebsd* | decosf4-0* | aix4* ) XE_ADD_OBJS(realpath.o) ;;
   * )
-    AC_CHECK_FUNCS(realpath)
-    test "$ac_cv_func_realpath" != "yes" && XE_ADD_OBJS(realpath.o) ;;
+    case "$canonical" in
+      *-*-sysv4.2uw2* ) XE_ADD_OBJS(realpath.o) ;;
+      * ) AC_CHECK_FUNCS(realpath)
+         test "$ac_cv_func_realpath" != "yes" && XE_ADD_OBJS(realpath.o) ;;
+    esac ;;
 esac
 
 esac
 
+dnl Check whether the system provides getloadavg (Solaris 7 has it)
+AC_CHECK_FUNCS(getloadavg)
+
+if test "$ac_cv_func_getloadavg" != "yes"
+then
+  XE_ADD_OBJS(getloadavg.o)
+
+  dnl Used by getloadavg() - does not require root priveleges
+  AC_CHECK_LIB(kstat, kstat_open)
+
+  dnl Another way to get the load average
+  AC_CHECK_LIB(kvm, kvm_read)
+fi
+
 dnl If netdb.h does not declare h_errno, we must declare it by hand.
 AC_MSG_CHECKING(whether netdb declares h_errno)
 AC_TRY_LINK([#include <netdb.h>],
 dnl If netdb.h does not declare h_errno, we must declare it by hand.
 AC_MSG_CHECKING(whether netdb declares h_errno)
 AC_TRY_LINK([#include <netdb.h>],
@@ -3181,6 +3256,7 @@ int main (int argc, char *argv[])
 esac
 AC_MSG_RESULT($have_mmap)
 test "$have_mmap" = "yes" && AC_DEFINE(HAVE_MMAP)
 esac
 AC_MSG_RESULT($have_mmap)
 test "$have_mmap" = "yes" && AC_DEFINE(HAVE_MMAP)
+AC_FUNC_MMAP
 
 dnl rel_alloc requires either GNU malloc or system malloc with mmap
 dnl We only turn rel_alloc on by default if mmap is available.
 
 dnl rel_alloc requires either GNU malloc or system malloc with mmap
 dnl We only turn rel_alloc on by default if mmap is available.
@@ -3323,7 +3399,7 @@ case "$with_sound" in both | nas )
   XE_ADD_OBJS(nas.o)
   XE_PREPEND(-laudio, libs_x)
   dnl If the nas library does not contain the error jump point,
   XE_ADD_OBJS(nas.o)
   XE_PREPEND(-laudio, libs_x)
   dnl If the nas library does not contain the error jump point,
-  dnl then we force safer behaviour.
+  dnl then we force safer behavior.
   AC_EGREP_HEADER(AuXtErrorJump,audio/Xtutil.h,,[AC_DEFINE(NAS_NO_ERROR_JUMP)])
 esac
 
   AC_EGREP_HEADER(AuXtErrorJump,audio/Xtutil.h,,[AC_DEFINE(NAS_NO_ERROR_JUMP)])
 esac
 
@@ -3412,45 +3488,48 @@ dnl Do we need event-unixoid.o ?
 test "$with_x11" = "yes" -o "$with_tty" = "yes" && XE_ADD_OBJS(event-unixoid.o)
 
 dnl Database support
 test "$with_x11" = "yes" -o "$with_tty" = "yes" && XE_ADD_OBJS(event-unixoid.o)
 
 dnl Database support
-dnl <mdiers@logware.de>
 dnl We do not necessarily have to have libdb/lib(g)dbm for DB/(G)DBM support.
 dnl On FreeBSD, both DB and DBM are part of libc.
 dnl We do not necessarily have to have libdb/lib(g)dbm for DB/(G)DBM support.
 dnl On FreeBSD, both DB and DBM are part of libc.
-dnl Note that unless support for DB/(G)DBM is explicitly disabled, we always
-dnl want to check for libdb/lib(g)dbm. Also note that libc will not be
-dnl checked if we have the libraries.
-dnl If support for DB/(G)DBM is requested, but we neither have libdb/lib(g)dbm,
-dnl nor does libc implement it, we are a bit lost :)
-
-AC_CHECKING(for database support)
+dnl By default, we check for DBM support in libgdbm, then libc, then libdbm.
+
+test "$with_database_gnudbm $with_database_dbm $with_database_berkdb" \
+  != "no no no" && AC_CHECKING(for database support)
+
+dnl Check for ndbm.h, required for either kind of DBM support.
+if test "$with_database_gnudbm $with_database_dbm" != "no no"; then
+  AC_CHECK_HEADER(ndbm.h, [:], [
+    test "$with_database_gnudbm" = "yes" -o \
+         "$with_database_dbm"    = "yes" && \
+      XE_DIE("Required DBM support cannot be provided.")
+    with_database_gnudbm=no with_database_dbm=no])
+fi
 
 
+dnl Check for DBM support in libgdbm.
 if test "$with_database_gnudbm" != "no"; then
 if test "$with_database_gnudbm" != "no"; then
-  AC_CHECK_HEADERS(ndbm.h, have_ndbm_h=yes)
-  if test "$have_ndbm_h" = "yes"; then
-    AC_CHECK_LIB(gdbm, dbm_open, with_database_gnudbm=yes have_libgdbm=yes)
-  fi
-  if test "$with_database_gnudbm" != "yes"; then
-    AC_CHECK_FUNC(dbm_open, with_database_gnudbm=yes)
-      fi
-  if test "$with_database_gnudbm" = "yes"; then
-    AC_DEFINE(HAVE_DBM)
-    test "$have_libgdbm" = "yes" && XE_PREPEND(-lgdbm, LIBS)
-    with_database_dbm=no
-  else with_database_gnudbm=no
-  fi
+  AC_CHECK_LIB(gdbm, dbm_open, [
+   with_database_gnudbm=yes with_database_dbm=no libdbm=-lgdbm], [
+   if test "$with_database_gnudbm" = "yes"; then
+     XE_DIE("Required GNU DBM support cannot be provided.")
+   fi
+   with_database_gnudbm=no])
 fi
 
 fi
 
+dnl Check for DBM support in libc and libdbm.
 if test "$with_database_dbm" != "no"; then
 if test "$with_database_dbm" != "no"; then
-  AC_CHECK_FUNC(dbm_open, with_database_dbm=yes need_libdbm=no)
-  if test "$need_libdbm" != "no"; then
-    AC_CHECK_LIB(dbm, dbm_open, with_database_dbm=yes need_libdbm=yes)
-  fi
-  if test "$with_database_dbm" = "yes"; then
-    AC_DEFINE(HAVE_DBM)
-    test "$need_libdbm" = "yes" && XE_PREPEND(-ldbm, LIBS)
-  else with_database_dbm=no
-  fi
+  AC_CHECK_FUNC(dbm_open, [with_database_dbm=yes libdbm=], [
+    AC_CHECK_LIB(dbm, dbm_open, [with_database_dbm=yes libdbm=-ldbm], [
+      test "$with_database_dbm" = "yes" && \
+        XE_DIE("Required DBM support cannot be provided.")
+      with_database_dbm=no])])
 fi
 
 fi
 
+dnl Tell make about the DBM support we detected.
+test -n "$libdbm" && XE_PREPEND("$libdbm", LIBS)
+test "$with_database_gnudbm" = "yes" -o \
+     "$with_database_dbm"    = "yes" && \
+  AC_DEFINE(HAVE_DBM)
+
+dnl Check for Berkeley DB.
 if test "$with_database_berkdb" != "no"; then
   AC_MSG_CHECKING(for Berkeley db.h)
   for path in "db/db.h" "db.h"; do
 if test "$with_database_berkdb" != "no"; then
   AC_MSG_CHECKING(for Berkeley db.h)
   for path in "db/db.h" "db.h"; do
@@ -3467,7 +3546,7 @@ typedef uint64_t u_int64_t;
 #include <$path>
 ],[], db_h_path="$path"; break)
   done
 #include <$path>
 ],[], db_h_path="$path"; break)
   done
-  if test -z "$db_h_path" 
+  if test -z "$db_h_path"
   then AC_MSG_RESULT(no); with_database_berkdb=no
   else AC_MSG_RESULT($db_h_path)
   fi
   then AC_MSG_RESULT(no); with_database_berkdb=no
   else AC_MSG_RESULT($db_h_path)
   fi
@@ -3511,26 +3590,26 @@ if test "$usage_tracking" = "yes"; then
 fi
 
 dnl autodetect dll support
 fi
 
 dnl autodetect dll support
-AC_CHECK_HEADERS(dlfcn.h, have_dlfcn=yes)
+AC_CHECK_HEADERS(dlfcn.h, [have_dlfcn=yes
+  AC_DEFINE(HAVE_DLFCN_H)])
 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { AC_CHECK_LIB(dl,  dlopen,   [ AC_DEFINE(HAVE_DLOPEN) DLL_LIB=dl;  with_shlib=yes]) }
 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { AC_CHECK_LIB(c,   _dlopen,  [ AC_DEFINE(HAVE_DLOPEN) DLL_LIB=;   with_shlib=yes]) }
 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { AC_CHECK_LIB(c,   dlopen,   [ AC_DEFINE(HAVE_DLOPEN) DLL_LIB=;   with_shlib=yes]) }
 test -z "$with_shlib" && { AC_CHECK_LIB(dld, shl_load, [ AC_DEFINE(HAVE_SHL_LOAD) DLL_LIB=dld; with_shlib=yes]) }
 test -z "$with_shlib" && { AC_CHECK_LIB(dld, dld_init, [ AC_DEFINE(HAVE_DLD_INIT) DLL_LIB=dld; with_shlib=yes]) }
 if test "$with_shlib" = "yes"; then
 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { AC_CHECK_LIB(dl,  dlopen,   [ AC_DEFINE(HAVE_DLOPEN) DLL_LIB=dl;  with_shlib=yes]) }
 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { AC_CHECK_LIB(c,   _dlopen,  [ AC_DEFINE(HAVE_DLOPEN) DLL_LIB=;   with_shlib=yes]) }
 test -z "$with_shlib" && test ! -z "$have_dlfcn" && { AC_CHECK_LIB(c,   dlopen,   [ AC_DEFINE(HAVE_DLOPEN) DLL_LIB=;   with_shlib=yes]) }
 test -z "$with_shlib" && { AC_CHECK_LIB(dld, shl_load, [ AC_DEFINE(HAVE_SHL_LOAD) DLL_LIB=dld; with_shlib=yes]) }
 test -z "$with_shlib" && { AC_CHECK_LIB(dld, dld_init, [ AC_DEFINE(HAVE_DLD_INIT) DLL_LIB=dld; with_shlib=yes]) }
 if test "$with_shlib" = "yes"; then
-  AC_DEFINE(HAVE_SHLIB)
-  XE_ADD_OBJS(sysdll.o)
-  XE_ADD_OBJS(dll.o)
-  test ! -z "$DLL_LIB" && XE_PREPEND(-l${DLL_LIB}, LIBS)
-  XE_MAKE_SHAREDLIB
-  AC_CHECK_FUNCS(dlerror)
-  ld_dynamic_link_flags=
-  dnl Fill this in with other values as this gets more testing
-  case "$opsys" in
-  hpux*)  ld_dynamic_link_flags="-Wl,-E" ;;
-  linux*) ld_dynamic_link_flags="-rdynamic" ;;
-  *) ;;
-  esac
+  XE_SHLIB_STUFF
+  if test "$can_build_shared" = "yes"; then
+    AC_DEFINE(HAVE_SHLIB)
+    XE_ADD_OBJS(sysdll.o)
+    XE_ADD_OBJS(emodules.o)
+    XE_APPEND(src, INSTALL_ARCH_DEP_SUBDIR)
+    test ! -z "$DLL_LIB" && XE_PREPEND(-l${DLL_LIB}, LIBS)
+    AC_CHECK_FUNCS(dlerror _dlerror)
+  else
+    AC_MSG_WARN(disabling shared library support)
+    with_shlib=no
+  fi
 fi
 
 dnl Unfortunately, just because we can link doesn't mean we can run.
 fi
 
 dnl Unfortunately, just because we can link doesn't mean we can run.
@@ -3554,12 +3633,13 @@ AC_TRY_RUN([int main(int c,char *v[]){return 0;}],[:],[
   echo "*** PANIC *** on your system.  Don't do that."
   exit 1])
 
   echo "*** PANIC *** on your system.  Don't do that."
   exit 1])
 
-dnl Process support (hardcoded)
-dnl every system that supports this runs configure, the others don't
-
-dnl We're not ready for this yet.
-AC_DEFINE(HAVE_UNIX_PROCESSES)
-XE_ADD_OBJS(process-unix.o)
+dnl Process support
+if test "$win32_processes" = "yes"; then
+  XE_ADD_OBJS(process-nt.o)
+else
+  AC_DEFINE(HAVE_UNIX_PROCESSES)
+  XE_ADD_OBJS(process-unix.o)
+fi
 
 dnl --------------------------------
 dnl Compute SUBST-itutable variables
 
 dnl --------------------------------
 dnl Compute SUBST-itutable variables
@@ -3582,7 +3662,7 @@ XE_SPACE(ld_libs_all, $ld_libs_window_system $ld_libs_general)
 dnl Compute lists of Makefiles and subdirs
 AC_SUBST(SRC_SUBDIR_DEPS)
 XE_APPEND(src, MAKE_SUBDIR)
 dnl Compute lists of Makefiles and subdirs
 AC_SUBST(SRC_SUBDIR_DEPS)
 XE_APPEND(src, MAKE_SUBDIR)
-internal_makefile_list="Makefile"
+internal_makefile_list="Makefile.in"
 SUBDIR_MAKEFILES=''
 test -d lock || mkdir lock
 for dir in $MAKE_SUBDIR; do
 SUBDIR_MAKEFILES=''
 test -d lock || mkdir lock
 for dir in $MAKE_SUBDIR; do
@@ -3592,7 +3672,7 @@ for dir in $MAKE_SUBDIR; do
       done ) ;;
    * ) test -d "$dir" || mkdir "$dir" ;;
   esac
       done ) ;;
    * ) test -d "$dir" || mkdir "$dir" ;;
   esac
-  XE_SPACE(SUBDIR_MAKEFILES, $SUBDIR_MAKEFILES $dir/Makefile)
+  XE_SPACE(SUBDIR_MAKEFILES, $SUBDIR_MAKEFILES $dir/Makefile $dir/GNUmakefile)
   XE_SPACE(internal_makefile_list, $internal_makefile_list $dir/Makefile.in)
 done
 AC_SUBST(INSTALL_ARCH_DEP_SUBDIR)
   XE_SPACE(internal_makefile_list, $internal_makefile_list $dir/Makefile.in)
 done
 AC_SUBST(INSTALL_ARCH_DEP_SUBDIR)
@@ -3623,7 +3703,7 @@ if test -f $srcdir/src/gdbinit -a ! -f src/gdbinit ; then
 fi
 
 dnl Create top level .sbinit for Sun compilers
 fi
 
 dnl Create top level .sbinit for Sun compilers
-if test "$__sunpro_c" = "yes"; then
+if test "$__SUNPRO_C" = "yes"; then
   echo "creating .sbinit"; echo ""
   ( echo "# For use with Sun WorkShop's Source browser."
     echo "# See sbquery(1) and sbinit(4) for more information"
   echo "creating .sbinit"; echo ""
   ( echo "# For use with Sun WorkShop's Source browser."
     echo "# See sbquery(1) and sbinit(4) for more information"
@@ -3718,16 +3798,38 @@ while true; do
 done
 AC_SUBST(LISPDIR)
 
 done
 AC_SUBST(LISPDIR)
 
-dnl AC_SUBST(sitelispdir)
-dnl AC_SUBST(SITELISPDIR_USER_DEFINED)
-dnl SITELISPDIR=$sitelispdir
-dnl while true; do
-dnl   case "$SITELISPDIR" in
-dnl     *\$* ) eval "SITELISPDIR=$SITELISPDIR" ;;
-dnl     *) break ;;
-dnl   esac
-dnl done
-dnl AC_SUBST(SITELISPDIR)
+AC_SUBST(moduledir)
+AC_SUBST(MODULEDIR_USER_DEFINED)
+MODULEDIR=$moduledir
+while true; do
+  case "$MODULEDIR" in
+    *\$* ) eval "MODULEDIR=$MODULEDIR" ;;
+    *) break ;;
+  esac
+done
+AC_SUBST(MODULEDIR)
+
+AC_SUBST(sitelispdir)
+AC_SUBST(SITELISPDIR_USER_DEFINED)
+SITELISPDIR=$sitelispdir
+while true; do
+  case "$SITELISPDIR" in
+    *\$* ) eval "SITELISPDIR=$SITELISPDIR" ;;
+    *) break ;;
+  esac
+done
+AC_SUBST(SITELISPDIR)
+
+AC_SUBST(sitemoduledir)
+AC_SUBST(SITEMODULEDIR_USER_DEFINED)
+SITEMODULEDIR=$sitemoduledir
+while true; do
+  case "$SITEMODULEDIR" in
+    *\$* ) eval "SITEMODULEDIR=$SITEMODULEDIR" ;;
+    *) break ;;
+  esac
+done
+AC_SUBST(SITEMODULEDIR)
 
 AC_SUBST(etcdir)
 AC_SUBST(ETCDIR_USER_DEFINED)
 
 AC_SUBST(etcdir)
 AC_SUBST(ETCDIR_USER_DEFINED)
@@ -3765,13 +3867,12 @@ AC_SUBST(ARCHLIBDIR)
 AC_SUBST(docdir)
 AC_SUBST(bitmapdir)
 AC_SUBST(extra_objs)
 AC_SUBST(docdir)
 AC_SUBST(bitmapdir)
 AC_SUBST(extra_objs)
-AC_SUBST(ld_dynamic_link_flags)
 
 dnl The following flags combine all the information from:
 dnl - command line options (user always gets priority)
 dnl - user environment variables
 dnl - determined by configure
 
 dnl The following flags combine all the information from:
 dnl - command line options (user always gets priority)
 dnl - user environment variables
 dnl - determined by configure
-dnl - the s&m header files (deprecated)
+dnl - the s&m header files (required for ellcc)
 AC_SUBST(machfile)
 AC_SUBST(opsysfile)
 AC_SUBST(c_switch_general)
 AC_SUBST(machfile)
 AC_SUBST(opsysfile)
 AC_SUBST(c_switch_general)
@@ -3794,10 +3895,20 @@ AC_SUBST(sound_cflags)
 AC_SUBST(RANLIB)
 AC_SUBST(dynodump_arch)
 
 AC_SUBST(RANLIB)
 AC_SUBST(dynodump_arch)
 
-# The default is yes
+dnl Preliminary support for using a different compiler for xemacs itself.
+dnl Useful for building XEmacs with a C++ or 64-bit compiler.
+: ${XEMACS_CC:=$CC}
+AC_SUBST(XEMACS_CC)
+
+
+dnl The default is no
 if test "$with_site_lisp" = "no"; then
   AC_DEFINE(INHIBIT_SITE_LISP)
 fi
 if test "$with_site_lisp" = "no"; then
   AC_DEFINE(INHIBIT_SITE_LISP)
 fi
+dnl The default is yes
+if test "$with_site_modules" = "no"; then
+  AC_DEFINE(INHIBIT_SITE_MODULES)
+fi
 
 XE_SPACE(ac_configure_args, $ac_configure_args)
 AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "$canonical")
 
 XE_SPACE(ac_configure_args, $ac_configure_args)
 AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "$canonical")
@@ -3820,8 +3931,6 @@ dnl at the point where the autodetection occurs or would occur,
 dnl so that the user gets immediate feedback on the results of the
 dnl autodetection.
 
 dnl so that the user gets immediate feedback on the results of the
 dnl autodetection.
 
-test -n "$puresize" && AC_DEFINE_UNQUOTED(RAW_PURESIZE, $puresize)
-
 if   test "$GNU_MALLOC"         = "yes"; then AC_DEFINE(GNU_MALLOC)
 elif test "$with_system_malloc" = "yes"; then AC_DEFINE(USE_SYSTEM_MALLOC)
 elif test "$with_debug_malloc"  = "yes"; then AC_DEFINE(USE_DEBUG_MALLOC)
 if   test "$GNU_MALLOC"         = "yes"; then AC_DEFINE(GNU_MALLOC)
 elif test "$with_system_malloc" = "yes"; then AC_DEFINE(USE_SYSTEM_MALLOC)
 elif test "$with_debug_malloc"  = "yes"; then AC_DEFINE(USE_DEBUG_MALLOC)
@@ -3830,9 +3939,9 @@ fi
 test "$with_i18n3"         = "yes" && AC_DEFINE(I18N3)
 test "$GCC"                = "yes" && AC_DEFINE(USE_GCC)
 test "$external_widget"    = "yes" && AC_DEFINE(EXTERNAL_WIDGET)
 test "$with_i18n3"         = "yes" && AC_DEFINE(I18N3)
 test "$GCC"                = "yes" && AC_DEFINE(USE_GCC)
 test "$external_widget"    = "yes" && AC_DEFINE(EXTERNAL_WIDGET)
-test "$with_gnu_make"      = "yes" && AC_DEFINE(USE_GNU_MAKE)
 test "$no_doc_file"        = "yes" && AC_DEFINE(NO_DOC_FILE)
 dnl test "$const_is_losing"    = "yes" && AC_DEFINE(CONST_IS_LOSING)
 test "$no_doc_file"        = "yes" && AC_DEFINE(NO_DOC_FILE)
 dnl test "$const_is_losing"    = "yes" && AC_DEFINE(CONST_IS_LOSING)
+test "$with_purify"        = "yes" && AC_DEFINE(PURIFY)
 test "$with_quantify"      = "yes" && AC_DEFINE(QUANTIFY)
 test "$with_pop"           = "yes" && AC_DEFINE(MAIL_USE_POP)
 test "$with_kerberos"      = "yes" && AC_DEFINE(KERBEROS)
 test "$with_quantify"      = "yes" && AC_DEFINE(QUANTIFY)
 test "$with_pop"           = "yes" && AC_DEFINE(MAIL_USE_POP)
 test "$with_kerberos"      = "yes" && AC_DEFINE(KERBEROS)
@@ -3899,21 +4008,37 @@ if test "$with_xpm" = yes; then
 elif test "$with_x11" = yes; then
   echo "  --------------------------------------------------------------------"
   echo "  WARNING: Compiling without XPM support."
 elif test "$with_x11" = yes; then
   echo "  --------------------------------------------------------------------"
   echo "  WARNING: Compiling without XPM support."
-  echo "  WARNING: You should strongly considering installing XPM."
+  if test "$xpm_problem" != ""; then
+    echo "  Reason: $xpm_problem"
+  fi
+  echo "  WARNING: You should strongly consider installing XPM."
   echo "  WARNING: Otherwise toolbars and other graphics will look suboptimal."
   echo "  WARNING: Otherwise toolbars and other graphics will look suboptimal."
+  echo "  WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)"
   echo "  --------------------------------------------------------------------"
 fi
   echo "  --------------------------------------------------------------------"
 fi
+if test "$with_png" = yes; then
+  echo "  Compiling in support for PNG image handling."
+elif test "$window_system" != "none"; then
+  echo "  --------------------------------------------------------------------"
+  echo "  WARNING: Compiling without PNG image support."
+  if test "$png_problem" != ""; then
+    echo "  Reason: $png_problem"
+  fi
+  echo "  WARNING: You should strongly consider installing the PNG libraries."
+  echo "  WARNING: Otherwise certain images and glyphs may not display."
+  echo "  WARNING: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)"
+  echo "  --------------------------------------------------------------------"
+fi
+test "$with_gif"   = yes && echo "  Compiling in support for (builtin) GIF image handling."
+test "$with_jpeg"  = yes && echo "  Compiling in support for JPEG image handling."
+test "$with_tiff"  = yes && echo "  Compiling in support for TIFF image handling."
 test "$with_xface" = yes && echo "  Compiling in support for X-Face message headers."
 test "$with_xface" = yes && echo "  Compiling in support for X-Face message headers."
-test "$with_gif"   = yes && echo "  Compiling in support for GIF image conversion."
-test "$with_jpeg"  = yes && echo "  Compiling in support for JPEG image conversion."
-test "$with_png"   = yes && echo "  Compiling in support for PNG image conversion."
-test "$with_tiff"  = yes && echo "  Compiling in support for TIFF image conversion."
 case "$with_sound" in
   nas    ) echo "  Compiling in network sound (NAS) support." ;;
   native ) echo "  Compiling in native sound support." ;;
   both   ) echo "  Compiling in both network and native sound support." ;;
 esac
 case "$with_sound" in
   nas    ) echo "  Compiling in network sound (NAS) support." ;;
   native ) echo "  Compiling in native sound support." ;;
   both   ) echo "  Compiling in both network and native sound support." ;;
 esac
-test "$old_nas" = yes && echo "        nas library lacks error trapping, will play synchronously"
+test "$old_nas" = yes && echo "        nas library lacks error trapping, will play synchronously."
 
 test "$with_database_berkdb" = yes && echo "  Compiling in support for Berkeley DB."
 test "$with_database_dbm"    = yes && echo "  Compiling in support for DBM."
 
 test "$with_database_berkdb" = yes && echo "  Compiling in support for Berkeley DB."
 test "$with_database_dbm"    = yes && echo "  Compiling in support for DBM."
@@ -3959,7 +4084,15 @@ case "$with_scrollbars" in
   athena3d ) echo "  Using Athena-3d scrollbars." ;;
 esac
 case "$with_dialogs" in
   athena3d ) echo "  Using Athena-3d scrollbars." ;;
 esac
 case "$with_dialogs" in
-  motif    ) echo "  Using Motif dialog boxes."     ;;
+  motif    )
+    echo "  Using Motif dialog boxes."
+    if test "$unexec" = "unexaix.o"; then if test "`uname -v`" = 4 -a "`uname -r`" -ge 3; then
+      echo "  *WARNING*  The Motif dialog boxes cause problems on AIX 4.3 and higher."
+      echo "             We recommend using the Athena dialog boxes instead."
+      echo "             Install libXaw and re-run configure with --with-dialogs='athena'."
+      echo "             Read the PROBLEMS file for more information."
+    fi; fi
+    ;;
   athena   ) echo "  Using Athena dialog boxes."    ;;
   athena3d ) echo "  Using Athena-3d dialog boxes." ;;
 esac
   athena   ) echo "  Using Athena dialog boxes."    ;;
   athena3d ) echo "  Using Athena-3d dialog boxes." ;;
 esac
@@ -3967,14 +4100,11 @@ test "$with_shlib" = "yes" && echo "  Compiling in DLL support."
 test "$with_clash_detection" = yes && \
   echo "  Clash detection will use \"$lockdir\" for locking files."
 echo "  movemail will use \"$mail_locking\" for locking mail spool files."
 test "$with_clash_detection" = yes && \
   echo "  Clash detection will use \"$lockdir\" for locking files."
 echo "  movemail will use \"$mail_locking\" for locking mail spool files."
-test "$with_pop"       = yes && echo "  Using POP for mail access"
-test "$with_kerberos"  = yes && echo "  Using Kerberos for POP authentication"
-test "$with_hesiod"    = yes && echo "  Using Hesiod to get POP server host"
+test "$with_pop"       = yes && echo "  Using POP for mail access."
+test "$with_kerberos"  = yes && echo "  Using Kerberos for POP authentication."
+test "$with_hesiod"    = yes && echo "  Using Hesiod to get POP server host."
 test "$use_union_type"  = yes && echo "  Using the union type for Lisp_Objects."
 test "$use_union_type"  = yes && echo "  Using the union type for Lisp_Objects."
-test "$use_minimal_tagbits" = yes && echo "  Using Lisp_Objects with minimal tagbits."
-test "$use_indexed_lrecord_implementation" = yes && echo "  Using indexed lrecord implementation."
 test "$debug"              = yes && echo "  Compiling in extra code for debugging."
 test "$debug"              = yes && echo "  Compiling in extra code for debugging."
-test "$memory_usage_stats" = yes && echo "  Compiling in code for checking XEmacs memory usage."
 test "$usage_tracking"     = yes && echo "  Compiling with usage tracking active (Sun internal)."
 if test "$error_check_extents $error_check_typecheck $error_check_bufpos $error_check_gc $error_check_malloc" \
   != "no no no no no"; then
 test "$usage_tracking"     = yes && echo "  Compiling with usage tracking active (Sun internal)."
 if test "$error_check_extents $error_check_typecheck $error_check_bufpos $error_check_gc $error_check_malloc" \
   != "no no no no no"; then
@@ -3989,15 +4119,9 @@ echo ""
 dnl echo "The above configure report is appended to \"Installation\" file."
 echo ""
 
 dnl echo "The above configure report is appended to \"Installation\" file."
 echo ""
 
-dnl Generate Installation.el
-echo '(setq Installation-string "' > Installation.el
-sed 's/"/\\"/g' Installation >> Installation.el
-echo '")' >> Installation.el
-
 dnl -----------------------------------
 dnl Now generate config.h and Makefiles
 dnl -----------------------------------
 dnl -----------------------------------
 dnl Now generate config.h and Makefiles
 dnl -----------------------------------
-
 dnl This has to be called in order for this variable to get into config.status
 AC_SUBST(internal_makefile_list)
 # Remove any trailing slashes in these variables.
 dnl This has to be called in order for this variable to get into config.status
 AC_SUBST(internal_makefile_list)
 # Remove any trailing slashes in these variables.
@@ -4015,43 +4139,62 @@ for file in $internal_makefile_list; do
   ac_output_files="${ac_output_files+$ac_output_files }$file"
 done
 ac_output_files="$ac_output_files src/paths.h lib-src/config.values"
   ac_output_files="${ac_output_files+$ac_output_files }$file"
 done
 ac_output_files="$ac_output_files src/paths.h lib-src/config.values"
+if test "$with_shlib" = "yes"; then
+  ac_output_files="$ac_output_files lib-src/ellcc.h"
+fi
 
 AC_OUTPUT($ac_output_files,
 
 AC_OUTPUT($ac_output_files,
-[for dir in $MAKE_SUBDIR; do
-  echo creating $dir/Makefile
+[for dir in . $MAKE_SUBDIR; do
   (
   (
-changequote(<<, >>)dnl
     cd $dir
     rm -f junk.c
     < Makefile.in \
       sed -e '/^# Generated/d' \
           -e 's%/\*\*/#.*%%' \
           -e 's/^ *# */#/' \
     cd $dir
     rm -f junk.c
     < Makefile.in \
       sed -e '/^# Generated/d' \
           -e 's%/\*\*/#.*%%' \
           -e 's/^ *# */#/' \
+dnl Delete Makefile.in.in comment lines
           -e '/^##/d' \
           -e '/^##/d' \
+dnl Pass through CPP directives unchanged
           -e '/^#/ {
 p
 d
           -e '/^#/ {
 p
 d
-}'        -e '/./ {
-s/\([\"]\)/\\\1/g
+}'        \
+dnl Quote other lines to protect from CPP substitution
+         -e '/./ {
+s/\([[\"]]\)/\\\1/g
 s/^/"/
 s/$/"/
 }'  > junk.c;
 s/^/"/
 s/$/"/
 }'  > junk.c;
-    $CPP -I. -I${top_srcdir}/src $CPPFLAGS junk.c > junk.cpp;
-    < junk.cpp                         \
-      sed -e 's/^#.*//'                        \
-       -e 's/^[ TAB][ TAB]*$//'        \
-       -e 's/^ /TAB/'                  \
-       | sed -n -e '/^..*$/p'          \
-       | sed '/^"/ {
-s/\\\([\"]\)/\1/g
-s/^[ TAB]*"//
-s/"[ TAB]*$//
-}'     > Makefile.new
+
+dnl Create a GNUmakefile and Makefile from Makefile.in.
+
+changequote(<<,>>)dnl
+dnl CPP_MAKEFILE(CPPFLAGS,filename)
+define(<<CPP_MAKEFILE>>,
+echo creating $dir/<<$2>>
+$CPP -I. -I${top_srcdir}/src <<$1>> junk.c \
+dnl Delete line directives inserted by $CPP
+  | sed -e 's/^\#.*//'         \
+dnl Delete spurious blanks inserted by $CPP
+       -e 's/^[ TAB][ TAB]*$//'\
+       -e 's/^ /TAB/'          \
+dnl Delete blank lines
+  | sed -n -e '/^..*$/p'       \
+dnl Restore lines quoted above to original contents.
+  | sed '/^\"/ {
+       s/\\\([\"]\)/\1/g
+       s/^[ TAB]*\"//
+       s/\"[ TAB]*$//
+}' > Makefile.new
     chmod 444 Makefile.new
     chmod 444 Makefile.new
-    mv -f Makefile.new Makefile
-    rm -f junk.c junk.cpp
-changequote([, ])dnl
-)
+    mv -f Makefile.new <<$2>>
+)dnl CPP_MAKEFILE
+
+    CPP_MAKEFILE(,Makefile)
+    CPP_MAKEFILE(-DUSE_GNU_MAKE,GNUmakefile)
+changequote([,])dnl
+    rm -f junk.c
+  )
 done
 
 dnl Append AC_DEFINE information to lib-src/config.values
 done
 
 dnl Append AC_DEFINE information to lib-src/config.values
@@ -4064,7 +4207,6 @@ sed < config.status >> lib-src/config.values \
 
 ],
 [CPP="$CPP"
 
 ],
 [CPP="$CPP"
- CPPFLAGS="$CPPFLAGS"
  top_srcdir="$srcdir"
  MAKE_SUBDIR="$MAKE_SUBDIR"
  top_srcdir="$srcdir"
  MAKE_SUBDIR="$MAKE_SUBDIR"
-])
+])dnl
index bcab03e..69088f9 100644 (file)
@@ -3,7 +3,7 @@ Usage: configure [--OPTION[=VALUE] ...] [CONFIGURATION]
 Set compilation and installation parameters for XEmacs, and report.
 
 Note that for most of the following options, you can explicitly enable
 Set compilation and installation parameters for XEmacs, and report.
 
 Note that for most of the following options, you can explicitly enable
-them using `--OPTION=yes' and explicitly disable them using `--OPTION=no'.  
+them using `--OPTION=yes' and explicitly disable them using `--OPTION=no'.
 This is especially useful for auto-detected options.
 The option `--without-FEATURE' is a synonym for `--with-FEATURE=no'.
 
 This is especially useful for auto-detected options.
 The option `--without-FEATURE' is a synonym for `--with-FEATURE=no'.
 
@@ -14,214 +14,210 @@ values which are PATHs (i.e. lists of directories).
 
 General options:
 
 
 General options:
 
---help                 Issue this usage message.
---verbose              Display the results of configure tests.
---extra-verbose                Display even more information, useful for debugging.
+--help                  Issue this usage message.
+--verbose               Display the results of configure tests.
+--extra-verbose         Display even more information, useful for debugging.
 
 
 Compilation options:
 
 
 
 Compilation options:
 
---compiler=prog                C compiler to use.
---with-gcc (*)         Use GCC to compile XEmacs.
---without-gcc          Don't use GCC to compile XEmacs.
---with-gnu-make                Write the Makefiles to take advantage of
-                       special features of GNU Make. (GNU Make
-                       works fine on the Makefiles even without this
-                       option.  This just allows for simultaneous
-                       in-place and --srcdir building.)
---cflags=FLAGS         Compiler flags (such as -O)
---cpp=prog             C preprocessor to use (e.g. /usr/ccs/lib/cpp or cc -E)
---cppflags=FLAGS       C preprocessor flags (e.g. -I/foo or -Dfoo=bar)
---libs=LIBS            Additional libraries (e.g. -lfoo)
---ldflags=FLAGS                Additional linker flags (e.g. -L/foo)
---site-includes=PATH   List of directories to search first for header files.
---site-libraries=PATH  List of directories to search first for libraries.
+--compiler=prog         C compiler to use.
+--with-gcc (*)          Use GCC to compile XEmacs.
+--without-gcc           Don't use GCC to compile XEmacs.
+--cflags=FLAGS          Compiler flags (such as -O)
+--cpp=prog              C preprocessor to use (e.g. /usr/ccs/lib/cpp or cc -E)
+--cppflags=FLAGS        C preprocessor flags (e.g. -I/foo or -Dfoo=bar)
+--libs=LIBS             Additional libraries (e.g. -lfoo)
+--ldflags=FLAGS         Additional linker flags (e.g. -L/foo)
+--site-includes=PATH    List of directories to search first for header files.
+--site-libraries=PATH   List of directories to search first for libraries.
 --site-prefixes=PATH    List of directories to search for include/ and lib/
                         subdirectories, just after 'site-includes' and
                         'site-libraries'.
 --site-runtime-libraries=PATH
 --site-prefixes=PATH    List of directories to search for include/ and lib/
                         subdirectories, just after 'site-includes' and
                         'site-libraries'.
 --site-runtime-libraries=PATH
-                       List of ALL directories to search for dynamically
-                       linked libraries at run time.
---dynamic=yes          Link dynamically if supported by system.
---dynamic=no           Force static linking on systems where dynamic
-                       linking is the default.
---srcdir=DIR           Look for the XEmacs source files in DIR.
-                       See also --with-gnu-make.
---use-indexed-lrecord-implementation
---use-minimal-tagbits
---gung-ho              Build with new-style Lisp_Objects.
-                       Equivalent to both of the 2 previous options combined.
+                        List of ALL directories to search for dynamically
+                        linked libraries at run time.
+--dynamic=yes           Link dynamically if supported by system.
+--dynamic=no            Force static linking on systems where dynamic
+                        linking is the default.
+--srcdir=DIR            Look for the XEmacs source files in DIR.
+                        Works best when using GNU Make.
 
 
 Installation options:
 
 
 
 Installation options:
 
---prefix=DIR           Install files below DIR.  Defaults to `/usr/local'.
+--prefix=DIR            Install files below DIR.  Defaults to `/usr/local'.
 
 
 Window-system options:
 
 
 
 Window-system options:
 
---with-x11 (*)         Support the X Window System.
---without-x11          Don't support X.
---x-includes=DIR       Search for X header files in DIR.
---x-libraries=DIR      Search for X libraries in DIR.
---without-toolbars     Don't compile with any toolbar support.
---without-session      Compile without realized leader window which will
-                       keep the WM_COMMAND property. Required for proper
-                       session-management.
---with-menubars=TYPE   Use TYPE menubars (lucid, motif, or no).  The Lucid
-                       widgets emulate Motif (mostly) but are faster.
-                       *WARNING*  The Motif menubar is currently broken.
---with-scrollbars=TYPE Use TYPE scrollbars
-                       (lucid, motif, athena, athena3d, or no).
---with-dialogs=TYPE    Use TYPE dialog boxes (motif, athena, athena3d, or no).
-                       Lucid menubars and scrollbars are the default.
-                       Motif dialog boxes will be used if Motif can be found.
---with-dragndrop (*)   Compile in the generic drag and drop API. This is
-                       automatically added if one of the drag and drop
-                       protocols is found (currently CDE, OffiX, MSWindows).
-                       *WARNING*  The Drag'n'drop support is under development
-                                  and is considered experimental.
---with-cde (*)         Compile in support for CDE drag and drop.
---with-offix (*)       Compile in support for OffiX drag and drop.
-                       *WARNING*  If you compile in OffiX, you may not be
-                                  able to use multiple X displays success-
-                                  fully.  If the two servers are from
-                                  different vendors, the results may be
-                                  unpredictable.
---without-xmu (*)      For those unfortunates whose vendors don't ship Xmu.
---external-widget      Compile with external widget support.
---with-xpm (*)         Compile with support for XPM files.
-                       It is highly recommended that you obtain XPM
-                       (version 3.4h or better) if you don't already
-                       have it.  Get it from the XEmacs FTP site.
---with-xface (*)       Compile with support for X-Face mail header
-                       conversion.  Requires the compface library.
-                       Get it from the XEmacs FTP site.
---with-gif (*)         Compile with support for GIF image conversion.
-                       Requires GifLib 3.1 or greater.  Get it from
-                       the XEmacs FTP site.
---with-jpeg (*)                Compile with support for JPEG image conversion.
-                       Requires libjpeg from the Independent JPEG Group.
-                       Get it from the XEmacs FTP site.
---with-png (*)         Compile with support for PNG image conversion.
-                       Requires libpng.  Get it from the XEmacs FTP site.
---with-tiff (*)                Compile with support for TIFF image conversion.
-                       Requires Sam Lefflier's libtiff library.
-                       Get if from the XEmacs FTP site.
+--with-x11 (*)          Support the X Window System.
+--without-x11           Don't support X.
+--x-includes=DIR        Search for X header files in DIR.
+--x-libraries=DIR       Search for X libraries in DIR.
+--without-toolbars      Don't compile with any toolbar support.
+--without-session       Compile without realized leader window which will
+                        keep the WM_COMMAND property. Required for proper
+                        session-management.
+--with-menubars=TYPE    Use TYPE menubars (lucid, motif, or no).  The Lucid
+                        widgets emulate Motif (mostly) but are faster.
+                        *WARNING*  The Motif menubar is currently broken.
+--with-scrollbars=TYPE  Use TYPE scrollbars
+                        (lucid, motif, athena, athena3d, or no).
+--with-dialogs=TYPE     Use TYPE dialog boxes (motif, athena, athena3d, or no).
+                        Lucid menubars and scrollbars are the default.
+                        Motif dialog boxes will be used if Motif can be found.
+--with-dragndrop (*)    Compile in the generic drag and drop API. This is
+                        automatically added if one of the drag and drop
+                        protocols is found (currently CDE, OffiX, MSWindows).
+                        *WARNING*  The Drag'n'drop support is under development
+                                   and is considered experimental.
+--with-cde (*)          Compile in support for CDE drag and drop.
+--with-offix (*)        Compile in support for OffiX drag and drop.
+                        *WARNING*  If you compile in OffiX, you may not be
+                                   able to use multiple X displays success-
+                                   fully.  If the two servers are from
+                                   different vendors, the results may be
+                                   unpredictable.
+--without-xmu (*)       For those unfortunates whose vendors don't ship Xmu.
+--external-widget       Compile with external widget support.
+--with-xpm (*)          Compile with support for XPM files.
+                        It is highly recommended that you obtain XPM
+                        (version 3.4h or better) if you don't already
+                        have it.  Get it from the XEmacs FTP site.
+--with-xface (*)        Compile with support for X-Face mail header
+                        conversion.  Requires the compface library.
+                        Get it from the XEmacs FTP site.
+--without-gif           Compile without the built-in support for GIF image
+                        conversion.
+--with-jpeg (*)         Compile with support for JPEG image conversion.
+                        Requires libjpeg from the Independent JPEG Group.
+                        Get it from the XEmacs FTP site.
+--with-png (*)          Compile with support for PNG image conversion.
+                        Requires libpng.  Get it from the XEmacs FTP site.
+--with-tiff (*)         Compile with support for TIFF image conversion.
+                        Requires Sam Lefflier's libtiff library.
+                        Get if from the XEmacs FTP site.
 
 
 TTY options:
 
 
 
 TTY options:
 
---without-tty          Don't support TTY-s.
---with-ncurses (*)     Use the ncurses library for tty support.
---with-gpm (*)                 Compile in support for General Purpose Mouse.
+--without-tty           Don't support TTY-s.
+--with-ncurses (*)      Use the ncurses library for tty support.
+--with-gpm (*)          Compile in support for General Purpose Mouse.
 
 
 Additional features:
 
 
 
 Additional features:
 
---with-tooltalk (*)    Support the ToolTalk IPC protocol.
---with-workshop                Support the Sun WorkShop (formerly Sparcworks)
-                       development environment.
---with-socks           Compile with support for SOCKS (an Internet proxy).
+--with-tooltalk (*)     Support the ToolTalk IPC protocol.
+--with-workshop         Support the Sun WorkShop (formerly Sparcworks)
+                        development environment.
+--with-socks            Compile with support for SOCKS (an Internet proxy).
 --with-database=TYPE (*) Compile with database support.  Valid types are
 --with-database=TYPE (*) Compile with database support.  Valid types are
-                       `no' or a comma-separated list of one or more
-                       of `dbm', `gnudbm', or `berkdb'.
---with-sound=native (*)        Compile with native sound support.
---with-sound=nas       Compile with network sound support.
---with-sound=both      Compile with native and network sound support.
---native-sound-lib=LIB Native sound support library.  Needed on Suns
-                       with --with-sound=both because both sound libraries
-                       are called libaudio.
---with-pop             support POP for mail retrieval
---with-kerberos                support Kerberos-authenticated POP
---with-hesiod          support Hesiod to get the POP server host
---with-dnet (*)                Compile with support for DECnet.
+                        `no' or a comma-separated list of one or more
+                        of `berkdb' and either `dbm' or `gnudbm'.
+--with-sound=native (*) Compile with native sound support.
+--with-sound=nas        Compile with network sound support.
+--with-sound=both       Compile with native and network sound support.
+--native-sound-lib=LIB  Native sound support library.  Needed on Suns
+                        with --with-sound=both because both sound libraries
+                        are called libaudio.
+--with-pop              support POP for mail retrieval
+--with-kerberos         support Kerberos-authenticated POP
+--with-hesiod           support Hesiod to get the POP server host
+--with-dnet (*)         Compile with support for DECnet.
 --with-ldap (*)         Compile with support for the LDAP protocol (requires
                         installed LDAP libraries on the system).
 --with-ldap (*)         Compile with support for the LDAP protocol (requires
                         installed LDAP libraries on the system).
---mail-locking=TYPE (*)        Specify the locking to be used by movemail to prevent
-                       concurrent updates of mail spool files. Valid types
-                       are `lockf', `flock', and `file'.
---with-site-lisp        Allow for a site-lisp directory in the XEmacs hierarchy 
-                       searched before the installation packages.
+--mail-locking=TYPE (*) Specify the locking to be used by movemail to prevent
+                        concurrent updates of mail spool files. Valid types
+                        are `lockf', `flock', and `file'.
+--with-site-lisp=yes    Allow for a site-lisp directory in the XEmacs hierarchy
+                        searched before the installation packages.
+--with-site-modules=no  Disable site-modules directory in the XEmacs hierarchy,
+                        which is searched before the installation modules.
 --package-path=PATH     Directories to search for packages to dump with xemacs.
 --package-path=PATH     Directories to search for packages to dump with xemacs.
-                        PATH splits into three parts separated
-                        by double colons (::), an early, a late, and a last part,
+                        PATH splits into three parts separated by double
+                        colons (::), an early, a late, and a last part,
                         corresponding to their position in the various
                         corresponding to their position in the various
-                        system paths:  The early part is always first, 
-                        the late part somewhere in the middle, and the 
+                        system paths:  The early part is always first,
+                        the late part somewhere in the middle, and the
                         last part at the very back.
                         Only the late part gets seen at dump time.
                         last part at the very back.
                         Only the late part gets seen at dump time.
-                        If PATH has only one component, that component 
+                        If PATH has only one component, that component
                         is late.
                         If PATH has two components, the first is
                         early, the second is late.
                         is late.
                         If PATH has two components, the first is
                         early, the second is late.
---infodir=DIR          Directory to install the XEmacs Info manuals and dir in.
---infopath=PATH                Directories to search for Info documents, info dir
-                       and localdir files in case run-time searching
+--infodir=DIR           Directory to install XEmacs Info manuals and dir in.
+--infopath=PATH         Directories to search for Info documents, info dir
+                        and localdir files in case run-time searching
                         for them fails.
                         for them fails.
+--moduledir=DIR         Directory to install dynamic modules in.
 
 Internationalization options:
 
 
 Internationalization options:
 
---with-mule            Compile with Mule (MUlti-Lingual Emacs) support,
-                       needed to support non-Latin-1 (including Asian) languages.
---with-xim=xlib                Compile with support for X input methods,
---with-xim=motif (*)   Used in conjunction with Mule support.
-                       Use either raw Xlib to provide XIM support, or
-                       the Motif XmIm* routines (when available).
-                       NOTE:  On some systems bugs in X11's XIM support
-                       will cause XEmacs to crash, so by default,
-                       no XIM support is compiled in, unless running
-                       on Solaris and the XmIm* routines are detected.
---with-canna (*)       Compile with support for Canna (a Japanese input method
-                       used in conjunction with Mule support).
---with-wnn (*)         Compile with support for WNN (a multi-language input method
-                       used in conjunction with Mule support).
---with-wnn6 (*)                Compile with support for the comercial package WNN version 6
---with-i18n3           Compile with I18N level 3 (support for message
-                       translation).  This doesn't currently work.
---with-xfs             Compile with XFontSet support for bilingual menubar.
-                       Can't use this option with --with-xim=motif or xlib.
-                       And should have --with-menubars=lucid.
+--with-mule             Compile with Mule (MUlti-Lingual Emacs) support,
+                        needed to support non-Latin-1 (including Asian)
+                        languages.
+--with-xim=xlib         Compile with support for X input methods,
+--with-xim=motif (*)    Used in conjunction with Mule support.
+                        Use either raw Xlib to provide XIM support, or
+                        the Motif XmIm* routines (when available).
+                        NOTE:  On some systems bugs in X11's XIM support
+                        will cause XEmacs to crash, so by default,
+                        no XIM support is compiled in, unless running
+                        on Solaris and the XmIm* routines are detected.
+--with-canna (*)        Compile with support for Canna (a Japanese input method
+                        used in conjunction with Mule support).
+--with-wnn (*)          Compile with support for WNN (a multi-language input
+                        method used in conjunction with Mule support).
+--with-wnn6 (*)         Compile with support for the comercial package WNN
+                        version 6
+--with-i18n3            Compile with I18N level 3 (support for message
+                        translation).  This doesn't currently work.
+--with-xfs              Compile with XFontSet support for bilingual menubar.
+                        Can't use this option with --with-xim=motif or xlib.
+                        And should have --with-menubars=lucid.
 
 
 Debugging options:
 
 
 
 Debugging options:
 
---debug                        Compile with support for debugging XEmacs.
-                       (Causes code-size increase and little loss of speed.)
+--debug                 Compile with support for debugging XEmacs.
+                        (Causes code-size increase and little loss of speed.)
 --error-checking=TYPE[,TYPE]...
 --error-checking=TYPE[,TYPE]...
-                       Compile with internal error-checking added.
-                       Causes noticeable loss of speed.  Valid types
-                       are extents, bufpos, malloc, gc, typecheck.
---error-checking=none  Disable all internal error-checking (the default).
---error-checking=all   Enable all internal error-checking.
---memory-usage-stats   Compile with additional code to allow you to
-                       determine what XEmacs's memory is being used
-                       for.  Causes a small code increase but no loss
-                       of speed.  Normally enabled when --debug is given.
---no-doc-file          Don't rebuild the DOC file unless it's explicitly
-                       deleted.  Only use during development. (It speeds
-                       up the compile-run-test cycle.)
---use-union-type       Enable or disable use of a union, instead of an
-                       int, for the fundamental Lisp_Object type; this
-                       provides stricter type-checking.  Only works with
-                       some systems and compilers.
+                        Compile with internal error-checking added.
+                        Causes noticeable loss of speed.  Valid types
+                        are extents, bufpos, malloc, gc, typecheck.
+--error-checking=none   Disable all internal error-checking (the default).
+--error-checking=all    Enable all internal error-checking.
+--memory-usage-stats    Compile with additional code to allow you to
+                        determine what XEmacs's memory is being used
+                        for.  Causes a small code increase but no loss
+                        of speed.  Normally enabled when --debug is given.
+--no-doc-file           Don't rebuild the DOC file unless it's explicitly
+                        deleted.  Only use during development. (It speeds
+                        up the compile-run-test cycle.)
+--use-union-type        Enable or disable use of a union, instead of an
+                        int, for the fundamental Lisp_Object type; this
+                        provides stricter type-checking.  Only works with
+                        some systems and compilers.
+--with-quantify         Add support for performance debugging using Quantify.
+--with-purify           Add support for memory debugging using Purify.
 
 
 Other options:
 
 
 
 Other options:
 
---puresize=VALUE       Override default amount of space for pure Lisp code.
---rel-alloc            Use the relocating allocator (default for this option
-                       is system-dependent).
---with-dlmalloc                Control usage of Doug Lea malloc on systems that have
-                       it in the standard C library (default is to use it if
-                       it is available).
---with-clash-detection Use lock files to detect multiple edits of the same file.
-                       The default is to not do clash detection.
---lockdir=DIR          The directory to put clash detection files in, such as
-                       `/var/lock/emacs'.
-    Defaults to `${statedir}/xemacs/lock'.
---with-system-malloc   Force use of the system malloc, rather than GNU malloc.
---with-debug-malloc    Use the debugging malloc package.
+--rel-alloc             Use the relocating allocator (default for this option
+                        is system-dependent).
+--with-dlmalloc         Control usage of Doug Lea malloc on systems that have
+                        it in the standard C library (default is to use it if
+                        it is available).
+--with-system-malloc    Force use of the system malloc, rather than GNU malloc.
+--with-debug-malloc     Use the debugging malloc package.
+--with-clash-detection  Use lock files to detect multiple edits of the same
+                        file.  The default is to not do clash detection.
+--lockdir=DIR           The directory to put clash detection files in, such as
+                        `/var/lock/emacs'.
+                        Defaults to `${statedir}/xemacs/lock'.
 
 You may also specify any of the `path' variables found in Makefile.in,
 including --bindir, --libdir, --lispdir, --sitelispdir, --datadir,
 
 You may also specify any of the `path' variables found in Makefile.in,
 including --bindir, --libdir, --lispdir, --sitelispdir, --datadir,
index b98e2a9..d400da1 100644 (file)
@@ -80,7 +80,7 @@ mostlyclean:
 clean: mostlyclean
        $(RM) *.so *.so.1
 distclean: clean
 clean: mostlyclean
        $(RM) *.so *.so.1
 distclean: clean
-       $(RM) Makefile Makefile.in TAGS
+       $(RM) GNUmakefile Makefile Makefile.in TAGS
 realclean: distclean
 extraclean: realclean
        $(RM) *~ \#*
 realclean: distclean
 extraclean: realclean
        $(RM) *~ \#*
index 847c4eb..c09bd7f 100644 (file)
@@ -32,7 +32,7 @@
  * Mountain View, California 94043
  */
 
  * Mountain View, California 94043
  */
 
-#pragma ident  "@(#) $Id: _dynodump.h,v 1.3 1997/05/29 04:22:29 steve Exp $ - SMI"
+#pragma ident  "@(#) $Id: _dynodump.h,v 1.5 1996/05/23 18:39:07 georgn Exp $ - SMI"
 
 #ifndef        _DYNODUMP_DOT_H
 #define        _DYNODUMP_DOT_H
 
 #ifndef        _DYNODUMP_DOT_H
 #define        _DYNODUMP_DOT_H
index ff4477d..b684813 100644 (file)
@@ -73,7 +73,7 @@
  * N.B. The above commentary is not quite correct in the flags have been hardwired
  *      to RTLD_SAVREL.
  */
  * N.B. The above commentary is not quite correct in the flags have been hardwired
  *      to RTLD_SAVREL.
  */
-#pragma ident  "@(#) $Id: dynodump.c,v 1.6 1998/03/31 20:10:55 steve Exp $ - SMI"
+#pragma ident  "@(#) $Id: dynodump.c,v 1.8 1996/05/23 18:39:21 georgn Exp $ - SMI"
 
 #define __EXTENSIONS__ 1
 
 
 #define __EXTENSIONS__ 1
 
index f97dd1b..d3ec59c 100644 (file)
@@ -32,7 +32,7 @@
  * Mountain View, California 94043
  */
 
  * Mountain View, California 94043
  */
 
-#pragma ident  "@(#) $Id: _relocate.c,v 1.3 1997/05/29 04:23:02 steve Exp $ - SMI"
+#pragma ident  "@(#) $Id: _relocate.c,v 1.4 1995/06/26 20:12:41 georgn Exp $ - SMI"
 
 /* LINTLIBRARY */
 
 
 /* LINTLIBRARY */
 
index 4dc66fe..c90e29c 100644 (file)
@@ -32,7 +32,7 @@
  * Mountain View, California 94043
  */
 
  * Mountain View, California 94043
  */
 
-#pragma ident  "@(#) $Id: machdep.h,v 1.3 1997/05/29 04:23:02 steve Exp $ - SMI"
+#pragma ident  "@(#) $Id: machdep.h,v 1.2 1995/02/16 22:58:43 georgn Exp $ - SMI"
 
 /*
  * Global include file for all sgs Intel machine dependent macros, constants
 
 /*
  * Global include file for all sgs Intel machine dependent macros, constants
index 754b417..feb5ca9 100644 (file)
@@ -32,7 +32,7 @@
  * Mountain View, California 94043
  */
 
  * Mountain View, California 94043
  */
 
-#pragma ident "@(#) $Id: _relocate.c,v 1.4 1998/03/31 20:10:55 steve Exp $ - SMI"
+#pragma ident "@(#) $Id: _relocate.c,v 1.3 1995/06/26 20:16:39 georgn Exp $ - SMI"
 
 /* LINTLIBRARY */
 
 
 /* LINTLIBRARY */
 
index a649a9c..2a3d1e6 100644 (file)
@@ -32,7 +32,7 @@
  * Mountain View, California 94043
  */
 
  * Mountain View, California 94043
  */
 
-#pragma ident "@(#) $Id: machdep.h,v 1.3 1997/05/29 04:23:20 steve Exp $ - SMI"
+#pragma ident "@(#) $Id: machdep.h,v 1.2 1995/02/16 22:58:49 georgn Exp $ - SMI"
 
 /*
  * Global include file for all sgs PowerPC machine dependent macros, constants
 
 /*
  * Global include file for all sgs PowerPC machine dependent macros, constants
index 14466f0..10b0fda 100644 (file)
@@ -35,7 +35,7 @@
 /*
  * Update the value of the `_edata' and `_end' symbols.
  */
 /*
  * Update the value of the `_edata' and `_end' symbols.
  */
-#pragma ident  "@(#) $Id: _relocate.c,v 1.4 1998/03/31 20:10:55 steve Exp $ - SMI"
+#pragma ident  "@(#) $Id: _relocate.c,v 1.4 1995/06/26 20:13:26 georgn Exp $ - SMI"
 
 #include       <libelf.h>
 #include       <string.h>
 
 #include       <libelf.h>
 #include       <string.h>
index b4b76d8..972081e 100644 (file)
@@ -32,7 +32,7 @@
  * Mountain View, California 94043
  */
 
  * Mountain View, California 94043
  */
 
-#pragma ident  "@(#) $Id: machdep.h,v 1.3 1997/05/29 04:23:26 steve Exp $ - SMI"
+#pragma ident  "@(#) $Id: machdep.h,v 1.2 1995/02/16 22:58:55 georgn Exp $ - SMI"
 
 /*
  * Global include file for all sgs SPARC machine dependent macros, constants
 
 /*
  * Global include file for all sgs SPARC machine dependent macros, constants
index 0ac5cb8..c060f33 100644 (file)
@@ -35,7 +35,7 @@
 /*
  * Update the value of the `_edata' and `_end' symbols.
  */
 /*
  * Update the value of the `_edata' and `_end' symbols.
  */
-#pragma ident  "@(#) $Id: syms.c,v 1.3 1997/05/29 04:22:30 steve Exp $ - SMI"
+#pragma ident  "@(#) $Id: syms.c,v 1.2 1995/03/06 22:39:22 georgn Exp $ - SMI"
 
 #include       <libelf.h>
 #include       <string.h>
 
 #include       <libelf.h>
 #include       <string.h>
index 0e619ee..b5babd1 100644 (file)
--- a/etc/BETA
+++ b/etc/BETA
@@ -197,7 +197,7 @@ Then type `make' and you should have a working XEmacs.
 
 After you have verified that you have a functional editor, fire up
 your favorite mail program and send a build report to
 
 After you have verified that you have a functional editor, fire up
 your favorite mail program and send a build report to
-xemacs-beta@xemacs.org.  The build report should include
+xemacs-build-reports@xemacs.org.  The build report should include
 
 1. Your hardware configuration (OS version, etc.)
 
 
 1. Your hardware configuration (OS version, etc.)
 
@@ -224,6 +224,10 @@ Patches to XEmacs should be mailed to <xemacs-patches@xemacs.org>.
 Each patch will be reviewed by the patches review board, and will be
 acked and added to the distribution, or rejected with an explanation.
 
 Each patch will be reviewed by the patches review board, and will be
 acked and added to the distribution, or rejected with an explanation.
 
+Patches to XEmacs Lisp packages should be sent to the maintainer of
+the package.  If the maintainer is listed as `XEmacs Development Team'
+patches should be sent to <xemacs-patches@xemacs.org>.
+
 Emailed patches should preferably be sent in MIME format and quoted
 printable encoding (if necessary).
 
 Emailed patches should preferably be sent in MIME format and quoted
 printable encoding (if necessary).
 
index ea86d00..7938aa5 100644 (file)
--- a/etc/HELLO
+++ b/etc/HELLO
@@ -2,31 +2,37 @@ You need many fonts to read all.
 Please correct this incomplete list and add more!
 
 ---------------------------------------------------------
 Please correct this incomplete list and add more!
 
 ---------------------------------------------------------
+Amharic        (\e$(3"c!<!N"^\e(B)       \e$(3!A!,!>\e(B
 Arabic                 \e[2]\e(38R\e(47d\e(3T!JSa\e(4W\e(3W\e[0]\e(B
 Croatian (Hrvatski)    Bog (Bok), Dobar dan
 Arabic                 \e[2]\e(38R\e(47d\e(3T!JSa\e(4W\e(3W\e[0]\e(B
 Croatian (Hrvatski)    Bog (Bok), Dobar dan
-Czech (\e,Bh\e(Besky)            Dobr\e,B}\e(B den
+Czech (\e.B\eNhesky)             Dobr\eN} den
 Danish (Dansk)         Hej, Goddag
 English                        Hello
 Esperanto              Saluton
 Estonian               Tere, Tervist
 FORTRAN                        PROGRAM
 Finnish (Suomi)                Hei
 Danish (Dansk)         Hej, Goddag
 English                        Hello
 Esperanto              Saluton
 Estonian               Tere, Tervist
 FORTRAN                        PROGRAM
 Finnish (Suomi)                Hei
-French (Fran\e,Ag\e(Bais)        Bonjour, Salut
+French (Fran\e.A\eNgais) Bonjour, Salut
 German (Deutsch Nord)  Guten Tag
 German (Deutsch Nord)  Guten Tag
-German (Deutsch S\e,A|\e(Bd)     Gr\e,A|_\e(B Gott
-Greek (\e,FGkk]mija\e(B) \e,FCei\\e(B \e,Fsar\e(B
-Hebrew                 \e[2]\e,Hylem\e[0]\e(B
+German (Deutsch S\e.A\eN|d)      Gr\eN|\eN_ Gott
+Greek (\e.F\eNE\eNk\eNk\eNg\eNm\eNi\eNj\eN\)    \eNC\eNe\eNi\eN\ \eNs\eNa\eNr
+Hebrew                 \e[2]\e.H\eNy\eNl\eNe\eNm\e[0]
 Italiano               Ciao, Buon giorno
 Maltese                        Ciao
 Nederlands, Vlaams     Hallo, Hoi, Goedendag
 Norwegian (Norsk)      Hei, God dag
 Italiano               Ciao, Buon giorno
 Maltese                        Ciao
 Nederlands, Vlaams     Hallo, Hoi, Goedendag
 Norwegian (Norsk)      Hei, God dag
-Polish                 Cze\e,B6f\e(B!
-Russian (\e,L@caaZXY\e(B)        \e,L7T`PRabRcYbU\e(B!
-Spanish (Espa\e,Aq\e(Bol)        \e,A!\e(BHola!
+Polish                 Cze\e.B\eN6\eNf!
+Russian (\e.L\eN@\eNc\eNa\eNa\eNZ\eNX\eNY)     \eN7\eNT\eN`\eNP\eNR\eNa\eNb\eNR\eNc\eNY\eNb\eNU!
+Slovak                 Dobr\e.B\eN} de\eNr
+Spanish (Espa\e.A\eNqol) \eN!Hola!
 Swedish (Svenska)      Hej, Goddag
 Swedish (Svenska)      Hej, Goddag
-Vietnamese (Ti\e,1*\e(Bng Vi\e,1.\e(Bt)    Ch\e,1`\e(Bo b\e,1U\e(Bn
+Thai (\e$(?@0R0I0R0d070B0\e(B)   \e$(?J0G8J04H$0C8:0\e(B, \e$(?J0G8J04H$2P0\e(B
 
 
-Japanese (\e$BF|K\8l\e(B)                \e$B$3$s$K$A$O\e(B, \e(I:]FAJ\e(B, \e$BqV\e$(DiQ\e(B
+Tigrigna (\e$(3"8#r!N"^\e(B)     \e$(3!Q!,!<"8\e(B
+Turkish (T\e.A\eN|rk\eNge)        Merhaba
+Vietnamese (Ti\e.1\eN*ng Vi\eN.t) Ch\eN`o b\eNUn
+
+Japanese (\e$BF|K\8l\e(B)                \e$B$3$s$K$A$O\e(B, \e*I\eN:\eN]\eNF\eNA\eNJ, \e$BqV\e$(DiQ\e(B
 Chinese (\e$AVPND\e(B,\e$AFUM(;0\e(B,\e$A::So\e(B)   \e$ADc:C\e(B
 Cantonese (\e$(0GnM$\e(B,\e$(0N]0*Hd\e(B)          \e$(0*/=(\e(B, \e$(0+$)p\e(B
 Hangul (\e$(CGQ1[\e(B)                   \e$(C>H3gGO<<?d\e(B, \e$(C>H3gGO=J4O1n\e(B
 Chinese (\e$AVPND\e(B,\e$AFUM(;0\e(B,\e$A::So\e(B)   \e$ADc:C\e(B
 Cantonese (\e$(0GnM$\e(B,\e$(0N]0*Hd\e(B)          \e$(0*/=(\e(B, \e$(0+$)p\e(B
 Hangul (\e$(CGQ1[\e(B)                   \e$(C>H3gGO<<?d\e(B, \e$(C>H3gGO=J4O1n\e(B
index 37ed36f..267a233 100644 (file)
@@ -96,7 +96,7 @@ about rewards and performance.
 
 First, rewards encourage people to focus narrowly on a task, to do it
 as quickly as possible and to take few risks.  "If they feel that
 
 First, rewards encourage people to focus narrowly on a task, to do it
 as quickly as possible and to take few risks.  "If they feel that
-'this is something I hve to get through to get the prize,' the're
+'this is something I have to get through to get the prize,' they're
 going to be less creative," Amabile said.
 
 Second, people come to see themselves as being controlled by the
 going to be less creative," Amabile said.
 
 Second, people come to see themselves as being controlled by the
diff --git a/etc/MYTHOLOGY b/etc/MYTHOLOGY
new file mode 100644 (file)
index 0000000..bbdfdc9
--- /dev/null
@@ -0,0 +1,25 @@
+Reference:    Robert W. Brockway, Myth from the Ice Age to Mickey Mouse
+
+    A collective definition of myth composed of many theories might be
+    framed by the following paraphrase:
+
+    Myths are stories, usually, about gods and other supernatural
+    beings.  They are often stories of origins, how the world and
+    everything in it came to be in illo tempore.  They are usually
+    strongly structured and their meaning is only discerned by
+    linguistic analysis.  Sometimes they are public dreams which, like
+    private dreams, emerge from the unconscious mind.  Indeed, they
+    often reveal the archetypes of the collective unconscious.  They
+    are symbolic and metaphorical.  They orient people to the
+    metaphysical dimension, explain the origins and nature of the
+    cosmos, validate social issues, and, on the psychological plane,
+    address themselves to the innermost depths of the psyche.  Some of
+    them are explanatory, being prescientific attempts to interpret
+    the natural world.  As such, they are usually functional and are
+    the science of primitive peoples.  Often, they are enacted in
+    rituals.  Religious myths are sacred histories, and distinguished
+    from the profane.  But, being semiotic expressions, they are a
+    "disease of language."  They are both individual and social in
+    scope, but they are first and foremost stories.
+
+
index 01711ba..a7cbbe0 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -9,7 +9,7 @@ history.
 
 Use `C-c C-f' to move to the next equal level of outline, and
 `C-c C-b' to move to previous equal level.  `C-h m' will give more
 
 Use `C-c C-f' to move to the next equal level of outline, and
 `C-c C-b' to move to previous equal level.  `C-h m' will give more
-info about the Outline mode.  Many commands are also available through 
+info about the Outline mode.  Many commands are also available through
 the menubar.
 
 Users who would like to know which capabilities have been introduced
 the menubar.
 
 Users who would like to know which capabilities have been introduced
@@ -32,8 +32,178 @@ file.
 \f
 * Changes in XEmacs 21.2
 ========================
 \f
 * Changes in XEmacs 21.2
 ========================
-None yet.
 
 
+** `delete-key-deletes-forward' now defaults to t.
+
+`delete-key-deletes-forward' is the variable that regulates the
+behaviour of the delete key on the systems that offer both a backspace
+and a delete key.  If set to nil, the key labeled "Delete" will delete
+backward.  If set to non-nil, the "Delete" key will delete forward,
+except on keyboards where a "Backspace" key is not provided.
+
+Unless our implementation has bugs, the only reason why you would want 
+to set `delete-key-deletes-forward' to nil is if you want to use the
+Delete key to delete backwards, despite the presence (according to
+Xlib) of a BackSpace key on the keyboard.
+** Interactive searching and matching case improvements.
+
+Case sensitiveness in searching operations is normally controlled by
+the variable `case-fold-search' (if non-nil, case is ignored while
+searching).  This mechanism has now been slightly improved for
+interactive searches: if the search string (or regexp) contains
+uppercase characters, the searching is forced to be case-sensitive,
+`case-fold-search'.   
+
+The new behavior affects all functions performing interactive
+searches, like `zap-to-char', `list-matching-lines', `tags-search'
+etc.  The incremental search facility has always behaved that way.
+
+** You can now create "indirect buffers", like in GNU Emacs.  An
+indirect buffer shares its text with another buffer ("base buffer"),
+but has its own major mode, local variables, extents, and narrowing.
+An indirect buffer has a name of its own, distinct from those of the
+base buffer and all other buffers.  An indirect buffer cannot itself
+be visiting a file (though its base buffer can be).  The base buffer
+cannot itself be indirect.
+
+Use (make-indirect-buffer BASE-BUFFER NAME) to make an indirect buffer
+named NAME whose base is BASE-BUFFER.  If BASE-BUFFER is itself an
+indirect buffer, its base buffer is used as the base for the new
+buffer.
+
+You can make an indirect buffer current, or switch to it in a window,
+just as you would a non-indirect buffer.
+
+The function `buffer-base-buffer' returns a buffer's base buffer or
+nil, if given an ordinary (non-indirect) buffer.  The function
+`buffer-indirect-children' returns a list of the indirect children of
+a base buffer.
+
+** User names following the tilde character can now be completed at
+file name prompts; e.g. `C-x C-f ~hni<TAB>' will complete to
+`~hniksic/'.  To make this operation faster, a cache of user names is
+maintained internally.
+
+\f
+* Lisp and internal changes in XEmacs 21.2
+==========================================
+
+** Much effort has been invested to make XEmacs Lisp faster:
+
+*** Many basic lisp operations are now faster.
+This is especially the case when running a Mule-enabled XEmacs.
+
+A general overhaul of the lisp engine should produce a speedup of 1.4
+in a Latin-1 XEmacs, and 2.1 in a Mule XEmacs.  These numbers were
+obtained running `(byte-compile "simple.el")', which should be a
+pretty typical test of "pure" Lisp.
+
+*** Lisp hash tables have been re-implemented.  The Common Lisp style
+hash table interface has been made standard, and moved from cl.el into
+fast C code (See the section on hash tables in the XEmacs Lisp
+Reference).  A speedup factor of 3 can be expected with code that
+makes intensive use of hash tables.
+
+*** The garbage collector has been tuned, leading to a speedup of
+1.16.
+
+*** The family of functions that iterate over lists, like `memq', and
+`rassq', have been made a little faster (typically 1.3).
+
+*** Lisp function calls are faster, by approximately a factor of two.
+However, defining inline functions (via defsubst) still makes sense
+for tight loops.
+
+*** Finally, a few functions have had dramatic performance
+improvements.  For example, `(last long-list)' is now 30 times faster.
+
+Of course, your mileage will vary.
+
+Many operations do not see any improvement.  Surprisingly, running
+(font-lock-fontify-buffer) does not use the Lisp engine much at all.
+Speeding up your favorite slow operation is an excellent project to
+improve XEmacs.  Don't forget to profile!
+
+** XEmacs finally has an automated test suite!
+Although this is not yet very sophisticated, it is already responsible
+for several important bug fixes in XEmacs.  To try it out, simply use
+the makefile target `make check' after building XEmacs.
+
+** Hash tables have been reimplemented.
+As was pointed out above, the standard interface to hash tables is now
+the Common Lisp interface, as described in Common Lisp, the Language
+(CLtL2, by Steele).  The older interface (functions with names
+containing the phrase `hashtable') will continue to work, but the
+preferred interface now has names containing the phrase `hash-table'.
+
+Here's the executive overview: create hash tables using
+make-hash-table, and use gethash, puthash, remhash, maphash and
+clrhash to manipulate entries in the hash table.  See the (updated)
+Lisp Reference Manual for details.
+
+** Lisp code handles circular lists much more robustly.
+Many basic lisp functions used to loop forever when given a circular
+list, expecting you to C-g (quit) out of the loop.  Now this is more
+likely to trigger a `circular-list' error.  Printing a circular list
+now results in something like this:
+
+    (let ((x (cons 'foo 'foo)))
+      (setcdr x x)
+      x)
+      => (foo ... <circular list>)
+
+An extra bonus is that checking for circularities is not just
+friendlier, but actually faster than checking for C-g.
+
+** The new form `ignore-file-errors', similar to `ignore-errors' may
+be used as a short-hand for condition-case when you wish to ignore
+file-related error.  For example:
+
+    (ignore-file-errors (delete-file "foo"))
+
+** The arguments to `locate-file' are now much more "lispy".  As
+before, the usage is:
+
+    (locate-file FILENAME PATH-LIST &optional SUFFIXES MODE)
+
+Except that SUFFIXES are now a list of strings instead of a single,
+colon-separated string.  MODE is now a symbol or a list of symbols
+(symbols `exists', `executable', `writable', and `readable' are
+supported) instead of an integer code.  See the documentation for
+details.
+
+Of course, the old form is still accepted for backward compatibility.
+
+** The `keywordp' function now returns non-nil only on symbols
+interned in the global obarray.  For example:
+
+    (keywordp (intern ":foo" [0]))
+      => nil
+    (keywordp (intern ":foo"))       ; The same as (keywordp :foo)
+      => t
+
+This behaviour is compatible with other code which treats symbols
+beginning with colon as keywords only if they are interned in the
+global obarray.  `keyword' used to wrongly return t in both cases
+above.
+
+** The first argument to `intern-soft' may now also be a symbol, like
+with `unintern'.  If given a symbol, `intern-soft' will look for that
+exact symbol rather than for any string.  This is useful when you want
+to check whether a specific symbol is interned in an obarray, e.g.:
+
+    (intern "foo")
+    (intern-soft "foo")
+      => foo
+    (intern-soft (make-symbol "foo"))
+      => nil
+
+** Functions for decoding base64 encoding are now available; see
+`base64-encode-region', `base64-encode-string', `base64-decode-region'
+and `base64-decode-string'.
+
+\f
 * Changes in XEmacs 21.0
 ========================
 
 * Changes in XEmacs 21.0
 ========================
 
@@ -63,8 +233,18 @@ will have to set them all again through the menu, and remove the code loading
 ** When the Zmacs region is active, `M-x query-replace' and the other
 replace commands now operate on the region contents only.
 
 ** When the Zmacs region is active, `M-x query-replace' and the other
 replace commands now operate on the region contents only.
 
-** Using the new `-private' option, you can make XEmacs use a private
-colormap.
+** XEmacs now is able to choose X visuals and use private colormaps.
+The '-visual <visualStr>' command line option or the '.EmacsVisual'
+Xresource controls which visual XEmacs will use, and
+'-privateColormap' or '.privateColormap' will force XEmacs to create a
+private colormap for use.  The syntax for the visual string is
+"<visual><bitdepth>" where <visual> is one of 'StaticColor',
+'TrueColor', 'GrayScale', 'PseudoColor' or 'DirectColor' and
+<bitdepth> is the appropriate number of bits per pixel.  If an invalid
+or non-supported combination is entered, XEmacs attempts to find a happy
+medium.  The X creation mechanism will then determine if it needs to
+create a colormap for use, or the presence of the private flags will
+force it to create it.
 
 ** The `imenu' package has been ported to XEmacs and is available as a
 package.
 
 ** The `imenu' package has been ported to XEmacs and is available as a
 package.
@@ -83,15 +263,15 @@ and then through inexact matches, as one would expect.
 ** The new variable `user-full-name' can be used to customize one's
 name when using the Emacs mail and news reading facilities.
 
 ** The new variable `user-full-name' can be used to customize one's
 name when using the Emacs mail and news reading facilities.
 
-Normally, `user-full-name' is a function that returns the full name of 
+Normally, `user-full-name' is a function that returns the full name of
 a user or UID, as specified by the system -- for instance,
 a user or UID, as specified by the system -- for instance,
-(user-full-name "root") returns something like "Super-User".  However, 
+(user-full-name "root") returns something like "Super-User".  However,
 when the function is called without arguments, it will return the
 when the function is called without arguments, it will return the
-value of the `user-full-name' variable.  The `user-full-name' variable 
+value of the `user-full-name' variable.  The `user-full-name' variable
 is initialized using the environment variable NAME and (failing that)
 the user's system name.
 
 is initialized using the environment variable NAME and (failing that)
 the user's system name.
 
-The behaviour of the `user-full-name' function with an argument
+The behavior of the `user-full-name' function with an argument
 specified is unchanged.
 
 ** The new command `M-x customize-changed-options' lets you customize
 specified is unchanged.
 
 ** The new command `M-x customize-changed-options' lets you customize
@@ -157,6 +337,12 @@ commands attached to them.  To use it, add the following to `.emacs':
 It has been greatly enhanced with respect to the one once included
 with the ilisp package and should work well under XEmacs 21.0.
 
 It has been greatly enhanced with respect to the one once included
 with the ilisp package and should work well under XEmacs 21.0.
 
+** Gnuserv changes
+
+*** Like the old 'gnudoit' program. Gnuclient -batch now can read from stdin.
+
+*** Gnuclient -batch no longer breaks off the output at the first LF.
+
 ** C mode changes
 
 *** Multiline macros are now handled, both as they affect indentation,
 ** C mode changes
 
 *** Multiline macros are now handled, both as they affect indentation,
@@ -250,7 +436,7 @@ limit.
 
 *** \\1-expressions are now valid in `nnmail-split-methods'.
 
 
 *** \\1-expressions are now valid in `nnmail-split-methods'.
 
-*** The `custom-face-lookup' function has been removed.  
+*** The `custom-face-lookup' function has been removed.
 If you used this function in your initialization files, you must
 rewrite them to use `face-spec-set' instead.
 
 If you used this function in your initialization files, you must
 rewrite them to use `face-spec-set' instead.
 
@@ -300,7 +486,7 @@ updated by the `gnus-start-date-timer' command.
 subsystem.  If the `dir' file does not exist in an Info directory, the
 relevant information will be generated on-the-fly.
 
 subsystem.  If the `dir' file does not exist in an Info directory, the
 relevant information will be generated on-the-fly.
 
-This behaviour can be customized, look for `Info-auto-generate-directory'
+This behavior can be customized, look for `Info-auto-generate-directory'
 and `Info-save-auto-generated-dir' in the `info' customization group.
 
 \f
 and `Info-save-auto-generated-dir' in the `info' customization group.
 
 \f
@@ -340,7 +526,7 @@ this is set to nil, the vertical dividers between windows are shown
 only when needed, and they are not draggable.
 
 Other properties of the vertical dividers may be controlled using
 only when needed, and they are not draggable.
 
 Other properties of the vertical dividers may be controlled using
-`vertical-divider-shadow-thickness', `vertical-divider-line-width' and 
+`vertical-divider-shadow-thickness', `vertical-divider-line-width' and
 `vertical-divider-spacing' specifiers, which see.
 
 ** Frame focus management changes.
 `vertical-divider-spacing' specifiers, which see.
 
 ** Frame focus management changes.
@@ -412,8 +598,10 @@ instance:
 ** It is now possible to build XEmacs with LDAP support.
 You will need to install a LDAP library first.  The following have
 been tested:
 ** It is now possible to build XEmacs with LDAP support.
 You will need to install a LDAP library first.  The following have
 been tested:
-  - LDAP 3.3 from the University of Michigan 
+  - LDAP 3.3 from the University of Michigan
     (get it from <URL:http://www.umich.edu/~dirsvcs/ldap/>)
     (get it from <URL:http://www.umich.edu/~dirsvcs/ldap/>)
+  - OpenLDAP 1.0.3 from the OpenLDAP Foundation
+    (get it from <URL:http://www.openldap.org/>)
   - LDAP SDK 1.0 from Netscape Corp.
     (get it from <URL:http://developer.netscape.com/>)
 
   - LDAP SDK 1.0 from Netscape Corp.
     (get it from <URL:http://developer.netscape.com/>)
 
index 598c097..138ea65 100644 (file)
@@ -1,7 +1,7 @@
 * Description of available packages by category
 ===============================================
 
 * Description of available packages by category
 ===============================================
 
-This data is up-to-date as of 13 January 1998.
+This data is up-to-date as of 10 February 1999.
 
 ** Library Packages (libs)
 ==========================
 
 ** Library Packages (libs)
 ==========================
@@ -12,8 +12,7 @@ when adding new files there as it is required by almost everything.
 
 *** Sun
 
 
 *** Sun
 
-Support for Sparcworks.  Must be installed prior to XEmacs build to be 
-effective.
+Support for Sparcworks.
 
 *** apel
 
 
 *** apel
 
@@ -38,8 +37,7 @@ Fundamental lisp files for providing email support.
 
 *** tooltalk
 
 
 *** tooltalk
 
-Support for building with Tooltalk.  Must be installed prior to XEmacs 
-build to be effective.
+Support for building with Tooltalk.
 
 *** xemacs-base
 
 
 *** xemacs-base
 
@@ -101,7 +99,7 @@ Emacs MIME support.
 
 *** vm
 
 
 *** vm
 
-An Emacs mailer.  This package must be installed prior to building XEmacs.
+An Emacs mailer.
 
 *** w3
 
 
 *** w3
 
@@ -280,8 +278,7 @@ Support for editing shell scripts.
 
 *** vc
 
 
 *** vc
 
-Version Control for Free systems.  This package must be installed
-prior to building XEmacs.
+Version Control for Free systems.
 
 *** vc-cc
 
 
 *** vc-cc
 
index a7b9fa8..b0ef6d0 100644 (file)
@@ -110,7 +110,7 @@ C-f kann sich, wie C-b, 
    Nun versuche ein weiteres C-f um in die nächste Zeile zu gelangen.
 
 Wenn Du Dich am Anfang oder Ende aus dem Bildschirm bewegst, schiebt
    Nun versuche ein weiteres C-f um in die nächste Zeile zu gelangen.
 
 Wenn Du Dich am Anfang oder Ende aus dem Bildschirm bewegst, schiebt
-sich der Text ins Blickfeld.  Diesen Vorgang nennt man rollen oder
+sich der Text ins Blickfeld.  Diesen Vorgang nennt man Rollen oder
 "scrolling".  Er erlaubt Emacs den Textzeiger an die gewünschte
 Stelle zu bringen, ohne ihn aus dem Bildschirmfenster zu bewegen.
 
 "scrolling".  Er erlaubt Emacs den Textzeiger an die gewünschte
 Stelle zu bringen, ohne ihn aus dem Bildschirmfenster zu bewegen.
 
@@ -148,9 +148,9 @@ Schau wie mehrere C-a's nichts bewirken, mehrere M-a's sich aber Satz
 für Satz weiterbewegen.  Obwohl sich ihr Verhalten unterscheidet,
 erscheint es natürlich.
 
 für Satz weiterbewegen.  Obwohl sich ihr Verhalten unterscheidet,
 erscheint es natürlich.
 
-Die Stelle des Textzeigers im Text wird auch "Punkt" genannt. Der
-Textzeiger auf dem Bildschirm zeigt an welchem Punkt im Text sich
-dieser befindet.
+Die Stelle des Textzeigers im Text wird auch Punkt oder "point"
+genannt. Der Textzeiger auf dem Bildschirm zeigt an welchem Punkt im
+Text sich dieser befindet.
 
 Hier ist eine Zusammenfassung der einfachen Befehle zur Bewegung des
 Textzeigers, inklusive der Befehle zur wort- und satzweisen Bewegung:
 
 Hier ist eine Zusammenfassung der einfachen Befehle zur Bewegung des
 Textzeigers, inklusive der Befehle zur wort- und satzweisen Bewegung:
@@ -187,7 +187,7 @@ Shift-Taste w
    Dann verwende C-v wiederholt um hierher zurück zu kommen.
 
 >> Versuche jetzt M-> um ans Ende der Ãœbungen zu springen.
    Dann verwende C-v wiederholt um hierher zurück zu kommen.
 
 >> Versuche jetzt M-> um ans Ende der Ãœbungen zu springen.
-   Benutzte M-v widerholt um hierher zurück zu gelangen.
+   Benutzte M-v wiederholt um hierher zurück zu gelangen.
 
 Du kannst den Textzeiger auch mit den Pfeil-Tasten bewegen, falls
 Deine Tastatur solche besitzt.  Wir empfehlen das Erlernen von C-b,
 
 Du kannst den Textzeiger auch mit den Pfeil-Tasten bewegen, falls
 Deine Tastatur solche besitzt.  Wir empfehlen das Erlernen von C-b,
@@ -195,7 +195,7 @@ C-f, C-n und C-p aus drei Gr
 Tastaturen. Zweitens wirst Du herausfinden, wenn Du einige Ãœbung mit
 Emacs bekommst, daß es schneller ist die CTRL-Tasten zu drücken als
 die Pfeil-Tasten (weil Du Deine Hände nicht aus dem normalen
 Tastaturen. Zweitens wirst Du herausfinden, wenn Du einige Ãœbung mit
 Emacs bekommst, daß es schneller ist die CTRL-Tasten zu drücken als
 die Pfeil-Tasten (weil Du Deine Hände nicht aus dem normalen
-Fingersatz bringen mußt). Drittens: Hast Du die Versendung der CTRL
+Fingersatz bringen mußt). Drittens: Hast Du die Verwendung der CTRL
 Befehle erst zu Deiner Gewohnheit gemacht, wird es ein Leichtes
 weitere Bewegungs-Befehle zu erlernen.
 
 Befehle erst zu Deiner Gewohnheit gemacht, wird es ein Leichtes
 weitere Bewegungs-Befehle zu erlernen.
 
@@ -226,7 +226,7 @@ haben.  Wenn Du ihn wieder zur
 entsprechendes Argument geben.
 
 Verwendest Du das X Window System, so befindet sich wahrscheinlich ein
 entsprechendes Argument geben.
 
 Verwendest Du das X Window System, so befindet sich wahrscheinlich ein
-rechteckiger Balken, Scrollbar oder Rollbalken genannt, rechts neben
+rechteckiger Balken, Rollbalken oder "scrollbar" genannt, rechts neben
 dem Emacs-Fenster. Du kannst den Text auch durch Manipulieren dieses
 Rollbalkens mit der Maus rollen.
 
 dem Emacs-Fenster. Du kannst den Text auch durch Manipulieren dieses
 Rollbalkens mit der Maus rollen.
 
@@ -242,8 +242,8 @@ Rollbalkens mit der Maus rollen.
 -------------------------------------------
 
 An einem X-Terminal wirst Du es wahrscheinlich einfacher finden die
 -------------------------------------------
 
 An einem X-Terminal wirst Du es wahrscheinlich einfacher finden die
-Tasten des Tastenfeldes zur Textzeiger Steuerung zu gebrauchen.  Die
-Links, Rechts, Auf und Ab Pfeil Tasten steuern in die erwartete
+Tasten des Tastenfeldes zur Textzeiger-Steuerung zu gebrauchen.  Die
+Links, Rechts, Auf und Ab Pfeil-Tasten steuern in die erwartete
 Richtung; sie funktionieren exakt wie C-b, C-f, C-p und C-n, sind aber
 leichter zu tippen und zu merken.  Du kannst auch C-Links und C-Rechts
 verwenden um wortweise zu springen.  C-Auf und C-Ab bewegen den
 Richtung; sie funktionieren exakt wie C-b, C-f, C-p und C-n, sind aber
 leichter zu tippen und zu merken.  Du kannst auch C-Links und C-Rechts
 verwenden um wortweise zu springen.  C-Auf und C-Ab bewegen den
@@ -264,9 +264,9 @@ CONTROL-Taste, getippt werden kann.
 * WENN EMACS HÄNGT
 ------------------
 
 * WENN EMACS HÄNGT
 ------------------
 
-Wenn Emacs auf Deine Befehle nicht mehr reagiert, kannst Du den
-Befehle risikolos mit C-g unterbrechen.  Mit C-g kann man Befehle
-abbrechen, die zu lange dauern.
+Wenn Emacs auf Deine Befehle nicht mehr reagiert, kannst Du den Befehl
+risikolos mit C-g unterbrechen.  Mit C-g kann man Befehle abbrechen,
+die zu lange dauern.
 
 Du kannst mit C-g auch ein numerisches Argument oder einen teilweise
 eingegebenen Befehl, den Du nicht mehr ausführen willst, verwerfen.
 
 Du kannst mit C-g auch ein numerisches Argument oder einen teilweise
 eingegebenen Befehl, den Du nicht mehr ausführen willst, verwerfen.
@@ -367,7 +367,7 @@ wieder eine Fortsetzungszeile.
 >> Geh an den Anfang einer Zeile und tippe <Delete>.  Dies fügt die
    Zeile an die vorhergehende an.
 
 >> Geh an den Anfang einer Zeile und tippe <Delete>.  Dies fügt die
    Zeile an die vorhergehende an.
 
->> Tippe <Return> um den Newline-Zeichen wieder einzufügen.
+>> Tippe <Return> um das Newline-Zeichen wieder einzufügen.
 
 Denke daran, daß die meisten Emacs-Befehle mittels eines Arguments
 wiederholt werden können; Ein Textzeichen wird mittels Argument
 
 Denke daran, daß die meisten Emacs-Befehle mittels eines Arguments
 wiederholt werden können; Ein Textzeichen wird mittels Argument
@@ -393,12 +393,12 @@ Verwandtschaft von C-f und M-f fortsetzen (<Delete> ist zwar keine
 CONTROL-Taste, aber das kümmert uns nicht).  C-k und M-k verhalten
 sich zueinander wie C-e und M-e zu Zeilen und Sätzen.
 
 CONTROL-Taste, aber das kümmert uns nicht).  C-k und M-k verhalten
 sich zueinander wie C-e und M-e zu Zeilen und Sätzen.
 
-Wenn Du mehr als ein Zeichen auf einmal löschst, speichert sie
-Emacs, damit Du sie wieder abrufen kannst.  Den gelöschten Text
-zurückzuholen nennt man "yanking".  Du kannst den gelöschten Text an
-der selben oder an einer anderen Textstelle zurückholen.  Der Text
-kann mehrere Male zurückgeholt geholt werden um Mehrfachkopien
-anzulegen.  Der Zurückhol-Befehl ist C-y.
+Wenn Du mehr als ein Zeichen auf einmal löschst, speichert sie Emacs,
+damit Du sie wieder abrufen kannst.  Den gelöschten Text zurückzuholen
+nennt man "yanking".  Du kannst den gelöschten Text an der selben oder
+an einer anderen Textstelle zurückholen.  Der Text kann mehrere Male
+zurückgeholt werden um Mehrfachkopien anzulegen.  Der Zurückhol-Befehl
+ist C-y.
 
 Beachte daß der Unterschied zwischen Entfernen ("Killing") und Löschen
 ("Deleting") darin besteht, daß gelöschte Teile zurückgeholt werden
 
 Beachte daß der Unterschied zwischen Entfernen ("Killing") und Löschen
 ("Deleting") darin besteht, daß gelöschte Teile zurückgeholt werden
@@ -442,8 +442,8 @@ zur
 zurückgeholten Text durch früher gelöschten Text ersetzten.  Tippst Du
 M-y wieder und wieder, holst Du früher und früher Gelöschtes zurück.
 Hast Du den gewünschten Text erreicht, brauchst Du nichts weiter zu
 zurückgeholten Text durch früher gelöschten Text ersetzten.  Tippst Du
 M-y wieder und wieder, holst Du früher und früher Gelöschtes zurück.
 Hast Du den gewünschten Text erreicht, brauchst Du nichts weiter zu
-tun um diesen zu behalten.  Fahre mit mit Deiner Arbeit fort und laß
-den zurückgeholten Text wo er ist.
+tun um diesen zu behalten.  Fahre mit Deiner Arbeit fort und laß den
+zurückgeholten Text wo er ist.
 
 Verwendest Du M-y oft genug, kehrst Du an den Anfang zurück (der
 letzte Löschvorgang).
 
 Verwendest Du M-y oft genug, kehrst Du an den Anfang zurück (der
 letzte Löschvorgang).
@@ -505,9 +505,9 @@ Namen falls Du sp
 Fehler waren.
 
 Nahe dem unteren Ende des Bildschirms siehst Du eine Zeile die mit
 Fehler waren.
 
 Nahe dem unteren Ende des Bildschirms siehst Du eine Zeile die mit
-Bindestrichen beginnt und endet und den Text "Emacs: TUTORIAL"
+Bindestrichen beginnt und endet und den Text "XEmacs: TUTORIAL.de"
 enthält.  Dieser Teil des Bildschirms zeigt immer den Namen der
 enthält.  Dieser Teil des Bildschirms zeigt immer den Namen der
-besuchten Datei. Zur Zeit besuchst Du eine Datei namens "TUTORIAL",
+besuchten Datei. Zur Zeit besuchst Du eine Datei namens "TUTORIAL.de",
 welche Deine persönliche Kopie des Emacs Tutorials ist.  Was immer für
 eine Datei Du findest, ihr Name wird immer an dieser Stelle
 erscheinen.
 welche Deine persönliche Kopie des Emacs Tutorials ist.  Was immer für
 eine Datei Du findest, ihr Name wird immer an dieser Stelle
 erscheinen.
@@ -560,7 +560,7 @@ Du solltest recht oft sichern, damit Du nicht viel Arbeit verlierst,
 sollte das System abstürzen.
 
 >> Tippe C-x C-s um Deine Kopie des tutorials zu sichern.
 sollte das System abstürzen.
 
 >> Tippe C-x C-s um Deine Kopie des tutorials zu sichern.
-   Dies sollte "Wrote ...TUTORIAL" am Fuß des Bildschirms ausgeben.
+   Dies sollte "Wrote ...TUTORIAL.de" am Fuß des Bildschirms ausgeben.
 
 ACHTUNG: Auf manchen Systemen wird C-x C-s den Bildschirm anhalten und
 Du wirst keine weitere Ausgabe von Emacs sehen.  Dies bedeutet, daß
 
 ACHTUNG: Auf manchen Systemen wird C-x C-s den Bildschirm anhalten und
 Du wirst keine weitere Ausgabe von Emacs sehen.  Dies bedeutet, daß
@@ -592,7 +592,7 @@ haben.
    <Return>.
    Dann füge etwas Text ein, bearbeite ihn und sichere die Datei "foo"
    mit C-x C-s.
    <Return>.
    Dann füge etwas Text ein, bearbeite ihn und sichere die Datei "foo"
    mit C-x C-s.
-   Schließlich tippe C-x C-f TUTORIAL <Return> um zum Tutorial zurück
+   Schließlich tippe C-x C-f TUTORIAL.de <Return> um zum Tutorial zurück
    zu gelangen.
 
 Emacs hält den Text jeder Datei in einem Objekt namens "buffer".  Das
    zu gelangen.
 
 Emacs hält den Text jeder Datei in einem Objekt namens "buffer".  Das
@@ -628,20 +628,20 @@ enth
 willst.
 
 >> Füge eine Text-Zeile ein, dann tippe C-x s.
 willst.
 
 >> Füge eine Text-Zeile ein, dann tippe C-x s.
-   Du wirst gefragt, ob Du den Buffer namens TUTORIAL speichern
+   Du wirst gefragt, ob Du den Buffer namens TUTORIAL.de speichern
    willst.
 
 * VERWENDUNG DES MENÃœS
 ----------------------
 
    willst.
 
 * VERWENDUNG DES MENÃœS
 ----------------------
 
-An einem X-Terminal wirst Du eine Menüleiste am oberen Ende des Emacs
+An einem X-Terminal wirst Du eine Menüleiste am oberen Ende des Emacs-
 Fensters bemerken.  Mit der Menüleiste kannst Du die allgemeinsten
 Emacs-Befehle, wie "Finde Datei" ("find file"), erreichen.  Du wirst
 Fensters bemerken.  Mit der Menüleiste kannst Du die allgemeinsten
 Emacs-Befehle, wie "Finde Datei" ("find file"), erreichen.  Du wirst
-dies anfänglich einfacher finden, da Du dir die notwendigen
-Tastenkombinationen der Befehle nicht merken mußt.  Bist Du einmal
-mit Emacs vertraut, wird es ein Leichtes sein die Kommandos zu
-benutzen, da jeder Menüeintrag, der einer Tastenkombination
-entspricht, diese auch anzeigt.
+dies anfänglich einfacher finden, da Du Dir die notwendigen Tasten-
+kombinationen der Befehle nicht merken mußt.  Bist Du einmal mit Emacs
+vertraut, wird es ein Leichtes sein die Kommandos zu benutzen, da
+jeder Menüeintrag, der einer Tastenkombination entspricht, diese auch
+anzeigt.
 
 Beachte, daß es viele Menüeinträge ohne entsprechende Tastensequenz
 gibt.  So listet z.B. das Buffers-Menü die verfügbaren Buffer in
 
 Beachte, daß es viele Menüeinträge ohne entsprechende Tastensequenz
 gibt.  So listet z.B. das Buffers-Menü die verfügbaren Buffer in
@@ -669,7 +669,7 @@ abholen k
 Verwende "Paste" im Edit-Menü um Text vom X Clipboard zurückzuholen.
 
 Die mittlere Maustaste wird häufig verwendet um sichtbare Objekte auf
 Verwende "Paste" im Edit-Menü um Text vom X Clipboard zurückzuholen.
 
 Die mittlere Maustaste wird häufig verwendet um sichtbare Objekte auf
-dem Bildschirm auszuwählen.  Wenn Du z.B. "Info" (die Online Emacs
+dem Bildschirm auszuwählen.  Wenn Du z.B. "Info" (die Emacs Online
 Dokumentation) mit C-h i oder Ã¼ber das Help-Menü aufrufst, kannst Du
 einer hervorgehobenen Verknüpfung durch Klicken der mittleren
 Maustaste folgen. Ganz Ã¤hnlich, wenn Du einen Dateinamen eingibst
 Dokumentation) mit C-h i oder Ã¼ber das Help-Menü aufrufst, kannst Du
 einer hervorgehobenen Verknüpfung durch Klicken der mittleren
 Maustaste folgen. Ganz Ã¤hnlich, wenn Du einen Dateinamen eingibst
@@ -694,7 +694,7 @@ META-Zeichen unterbringen k
 (eXtend) Befehl. Davon gibt es zwei Ausführungen:
 
        C-x     Zeichenerweiterung eXtend.  Gefolgt von einer
 (eXtend) Befehl. Davon gibt es zwei Ausführungen:
 
        C-x     Zeichenerweiterung eXtend.  Gefolgt von einer
-               Tastaturkombination.
+               Tastenkombination.
        M-x     Namenserweiterung eXtend.  Gefolgt von einer
                ausgeschriebenen Befehlsbezeichnung.
 
        M-x     Namenserweiterung eXtend.  Gefolgt von einer
                ausgeschriebenen Befehlsbezeichnung.
 
@@ -709,7 +709,7 @@ Sichern einer jeden ge
 Mit C-z kann man Emacs vorübergehend verlassen -- so daß Du später zur
 gleichen Sitzung zurückkehren kannst.
 
 Mit C-z kann man Emacs vorübergehend verlassen -- so daß Du später zur
 gleichen Sitzung zurückkehren kannst.
 
-Auf Systemen, die dies unterstützen sendet C-z Emacs "in den
+Auf Systemen, die dies unterstützen, sendet C-z Emacs "in den
 Hintergrund"; man kehrt zur Shell zurück, ohne daß der Emacs-Prozeß
 beendet wird.  In den gebräuchlichsten Shells kann man zu Emacs mit
 `fg' oder `%emacs' zurückkehren.
 Hintergrund"; man kehrt zur Shell zurück, ohne daß der Emacs-Prozeß
 beendet wird.  In den gebräuchlichsten Shells kann man zu Emacs mit
 `fg' oder `%emacs' zurückkehren.
@@ -725,7 +725,7 @@ Es ist auch die richtige Methode um einen Emacs zu verlassen der f
 E-mail-Programme, oder andere Erweiterungen, die das Aussetzen von
 Emacs nicht korrekt handhaben können, benutzt wird.  Normalerweise 
 ist es besser Emacs mit C-z auszusetzen statt ihn zu beenden, wenn 
 E-mail-Programme, oder andere Erweiterungen, die das Aussetzen von
 Emacs nicht korrekt handhaben können, benutzt wird.  Normalerweise 
 ist es besser Emacs mit C-z auszusetzen statt ihn zu beenden, wenn 
-man das System nicht verlassen will,.
+man das System nicht verlassen will.
 
 Es gibt viele C-x-Befehle.  Hier ist eine Liste der bereits erlernten:
 
 
 Es gibt viele C-x-Befehle.  Hier ist eine Liste der bereits erlernten:
 
@@ -753,7 +753,7 @@ werden.
 
    Beachte wie diese Zeile sich veraendert hat: Du hast das Wort
    v-e-r-a-e-n-d-e-r-t mit "geaendert" ersetzt wo immer es nach der
 
    Beachte wie diese Zeile sich veraendert hat: Du hast das Wort
    v-e-r-a-e-n-d-e-r-t mit "geaendert" ersetzt wo immer es nach der
-   anfänglichen Textzeiger Position auftrat.
+   anfänglichen Textzeiger-Position auftrat.
 
 
 * AUTOMATISCHE SICHERUNG
 
 
 * AUTOMATISCHE SICHERUNG
@@ -764,14 +764,14 @@ gesichert hast, so k
 gehen.  Um Dich davor zu schützen, schreibt Emacs regelmäßig eine 
 Autosave-Datei für jede Datei, die Du bearbeitest.  Autosave-Dateien
 beginnen und enden mit "#"; wenn Deine Datei z.B. "hello.c" heißt, so
 gehen.  Um Dich davor zu schützen, schreibt Emacs regelmäßig eine 
 Autosave-Datei für jede Datei, die Du bearbeitest.  Autosave-Dateien
 beginnen und enden mit "#"; wenn Deine Datei z.B. "hello.c" heißt, so
-heißt die auto-save Datei "#hello.c#".  Sicherst Du die Datei, so
+heißt ihre auto-save Datei "#hello.c#".  Sicherst Du die Datei, so
 löscht Emacs die entsprechende auto-save Datei.
 
 Nach einem Computerabsturz kannst Du die automatisch
 gesicherten Ã„nderungen nach dem normalen Finden der Datei (Deiner
 Datei, nicht der Autosave-Datei) durch Eintippen von M-x
 löscht Emacs die entsprechende auto-save Datei.
 
 Nach einem Computerabsturz kannst Du die automatisch
 gesicherten Ã„nderungen nach dem normalen Finden der Datei (Deiner
 Datei, nicht der Autosave-Datei) durch Eintippen von M-x
-recover-file<return> zurückholen.  Wenn Du nach der Bestätigung 
-gefragt wirst, tippst Du yes<return> um die Ã„nderungen in der 
+recover-file<Return> zurückholen.  Wenn Du nach der Bestätigung 
+gefragt wirst, tippst Du yes<Return> um die Ã„nderungen in der 
 Autosave-Datei wiederherzustellen.
 
 
 Autosave-Datei wiederherzustellen.
 
 
@@ -789,7 +789,7 @@ area nimmt die unterste Zeile im Emacs-Fenster ein.
 Die Zeile Ã¼ber der echo area wird "mode line" genannt.  Die Moduszeile
 zeigt etwa folgendes:
 
 Die Zeile Ã¼ber der echo area wird "mode line" genannt.  Die Moduszeile
 zeigt etwa folgendes:
 
---**-XEmacs: TUTORIAL          (Fundamental)--L670--58%----------------
+--**-XEmacs: TUTORIAL.de       (Fundamental)--L791--67%----------------
 
 Diese Zeile gibt nützliche Information Ã¼ber den Zustand von Emacs und
 dem Text, den Du bearbeitest.
 
 Diese Zeile gibt nützliche Information Ã¼ber den Zustand von Emacs und
 dem Text, den Du bearbeitest.
@@ -817,7 +817,7 @@ Hauptmodus aktiv und sein Name kann dort gefunden werden, wo jetzt
 "Fundamental" steht.
 
 Jeder Hauptmodus Ã¤ndert das Verhalten einiger Befehle. So gibt es
 "Fundamental" steht.
 
 Jeder Hauptmodus Ã¤ndert das Verhalten einiger Befehle. So gibt es
-z.B. Befehle zum Erstellen von Kommentaren in Programmen und da diese
+z.B. Befehle zum Erstellen von Kommentaren in Programmen. Da diese
 in jeder Programmiersprache unterschiedlich aussehen, muß jeder
 Hauptmodus diese Kommentare entsprechend vorbereiten.  Jeder
 Hauptmodus trägt den Namen eines entsprechenden Erweiterungsbefehls, so
 in jeder Programmiersprache unterschiedlich aussehen, muß jeder
 Hauptmodus diese Kommentare entsprechend vorbereiten.  Jeder
 Hauptmodus trägt den Namen eines entsprechenden Erweiterungsbefehls, so
@@ -899,7 +899,7 @@ f
 
 Wenn Du C-s tippt, wirst Du den String "I-search" in der echo area
 bemerken.  Dies bedeutet, daß Emacs im inkrementellen Suchmodus auf
 
 Wenn Du C-s tippt, wirst Du den String "I-search" in der echo area
 bemerken.  Dies bedeutet, daß Emacs im inkrementellen Suchmodus auf
-Deine Eingabe wartet.  <RET> bricht die Suche ab.
+Deine Eingabe wartet.  <Return> bricht die Suche ab.
 
 >> Nun tippe C-s um die Suche einzuleiten. LANGSAM, Buchstabe für
    Buchstabe, tippe das Wort 'Textzeiger', mit Pausen dazwischen,
 
 >> Nun tippe C-s um die Suche einzuleiten. LANGSAM, Buchstabe für
    Buchstabe, tippe das Wort 'Textzeiger', mit Pausen dazwischen,
@@ -909,7 +909,7 @@ Deine Eingabe wartet.  <RET> bricht die Suche ab.
    zu suchen.
 >> Nun tippe <Delete> viermal und schau wie sich der Textzeiger
    bewegt.
    zu suchen.
 >> Nun tippe <Delete> viermal und schau wie sich der Textzeiger
    bewegt.
->> Tippe <RET> zum Abbrechen der Suche.
+>> Tippe <Return> zum Abbrechen der Suche.
 
 Hast Du gesehen was passiert?  Emacs, in der inkrementellen Suche,
 versucht zu dem String zu springen, den Du bisher getippt hast.  Um
 
 Hast Du gesehen was passiert?  Emacs, in der inkrementellen Suche,
 versucht zu dem String zu springen, den Du bisher getippt hast.  Um
@@ -1054,7 +1054,7 @@ keine Hilfe mehr, dann tippe einfach C-g zum Abbrechen des Befehls.
 dies wirklich nicht tun, beschwere Dich also beim System
 Administrator.  In der Zwischenzeit, wenn C-h keine Mitteilung
 bezüglich Hilfe am Fuß des Emacs-Fensters anzeigt, versuche M-x help
 dies wirklich nicht tun, beschwere Dich also beim System
 Administrator.  In der Zwischenzeit, wenn C-h keine Mitteilung
 bezüglich Hilfe am Fuß des Emacs-Fensters anzeigt, versuche M-x help
-RET zu tippen.)
+<Return> zu tippen.)
 
 Die einfachste Hilfe-Einrichtung ist C-h c.  Tippe C-h, ein c und
 einen Befehls-Buchstaben oder eine Sequenz davon und Emacs gibt Dir
 
 Die einfachste Hilfe-Einrichtung ist C-h c.  Tippe C-h, ein c und
 einen Befehls-Buchstaben oder eine Sequenz davon und Emacs gibt Dir
@@ -1065,7 +1065,7 @@ eine ganz kurze Beschreibung des Befehls.
 
        C-p runs the command previous-line
 
 
        C-p runs the command previous-line
 
-Dies teils Dir den "Namen der Funktion" mit. Funktions-Namen werden
+Dies teilt Dir den "Namen der Funktion" mit. Funktions-Namen werden
 hauptsächlich zum Spezialisieren und Erweitern von Emacs verwendet.
 Aber da die Funktions-Namen etwas darüber aussagen was der Befehl tut,
 können Sie auch als sehr kurze Dokumentation dienen -- genug um Dich
 hauptsächlich zum Spezialisieren und Erweitern von Emacs verwendet.
 Aber da die Funktions-Namen etwas darüber aussagen was der Befehl tut,
 können Sie auch als sehr kurze Dokumentation dienen -- genug um Dich
@@ -1079,11 +1079,11 @@ C-h c.
 
 >> Tippe C-h k C-p.
 
 
 >> Tippe C-h k C-p.
 
-Dies zeigt die Dokumentation der Funktion, als auch ihren Namen, in
-einem eigenen Emacs-Fenster.  Wenn Du mit dem Lesen fertig bist, tippe
-C-x 1 um den Hilfetext loszuwerden.  Du mußt dies nicht gleich tun.
-Du kannst etwas bearbeiten, das sich auf den Hilfetext bezieht und
-dann C-x 1 tippen.
+Dies zeigt sowohl die Dokumentation der Funktion, als auch ihren
+Namen, in einem eigenen Emacs-Fenster.  Wenn Du mit dem Lesen fertig
+bist, tippe C-x 1 um den Hilfetext loszuwerden.  Du mußt dies nicht
+gleich tun.  Du kannst etwas bearbeiten, das sich auf den Hilfetext
+bezieht und dann C-x 1 tippen.
 
 Hier sind einige andere nützliche C-h Möglichkeiten:
 
 
 Hier sind einige andere nützliche C-h Möglichkeiten:
 
@@ -1120,7 +1120,7 @@ in eine Shell auszusteigen, so da
 verwende C-z.  (Unter X ikonifiziert dies den aktuellen Emacs-Rahmen.)
 
 Dieses Tutorial sollte für Anfänger verständlich sein, hast Du etwas
 verwende C-z.  (Unter X ikonifiziert dies den aktuellen Emacs-Rahmen.)
 
 Dieses Tutorial sollte für Anfänger verständlich sein, hast Du etwas
-Unklares gefunden, schiebe die Schuld nicht auf Dich - beschwere Dich!
+Unklares gefunden, schiebe die Schuld nicht auf Dich -- beschwere Dich!
 
 
 ANFERTIGEN VON KOPIEN
 
 
 ANFERTIGEN VON KOPIEN
index f569562..8c24ce9 100644 (file)
@@ -23,17 +23,17 @@ fi
 OSversion="`uname -v | sed 's/^\(.\).*$/\1/'`"
 
 shell=`type sh | sed 's/sh is //'`
 OSversion="`uname -v | sed 's/^\(.\).*$/\1/'`"
 
 shell=`type sh | sed 's/sh is //'`
-distdir=`dirname $shell`
+distdir=`dirname $shell | sed 's!^//\(.\)/\(.*\)!\1:/\2!'`
 
 echo "cygwin installed in $distdir"
 
 echo "checking paths ..."
 
 if [ ! -d "/bin" ]; then
 
 echo "cygwin installed in $distdir"
 
 echo "checking paths ..."
 
 if [ ! -d "/bin" ]; then
-    echo "You don't have /bin would like to mount cygwin as /bin ?"
+    echo "You don't have a /bin directory.  Would you like to mount cygwin as /bin ?"
     if yorn; then
        mkdir /bin
     if yorn; then
        mkdir /bin
-       mount -b /bin $distdir
+       mount -b $distdir /bin
     fi
 elif [ "$distdir" != "/bin" ]; then
     echo "Warning: you have /bin but it's not the cygwin installation."
     fi
 elif [ "$distdir" != "/bin" ]; then
     echo "Warning: you have /bin but it's not the cygwin installation."
index d516331..a980601 100644 (file)
------BEGIN PGP SIGNED MESSAGE-----
-
 ;; Package Index file -- Do not edit manually.
 ;;;@@@
 (package-get-update-base-entry (quote
 ;; Package Index file -- Do not edit manually.
 ;;;@@@
 (package-get-update-base-entry (quote
-(zenirc
+(ediff
   (standards-version 1.0
   (standards-version 1.0
-   version "1.04"
-   author-version "2.112"
-   date "1998-08-15"
-   build-date "1998-10-12"
-   maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
+   version "1.19"
+   author-version "2.72"
+   date "1999-04-06"
+   build-date "1999-05-13"
+   maintainer "Michael Kifer <kifer@cs.sunysb.edu>"
    distribution stable
    priority medium
    distribution stable
    priority medium
-   category "comm"
+   category "prog"
    dump nil
    dump nil
-   description "ZENIRC IRC Client."
-   filename "zenirc-1.04-pkg.tar.gz"
-   md5sum "96d9e09c41de5c19d8aa092ad544ad6d"
-   size 276116
-   provides (zenirc)
-   requires (zenirc)
+   description "Interface over GNU patch."
+   filename "ediff-1.19-pkg.tar.gz"
+   md5sum "d6e0edc88c5d09279df71ce9aff41b25"
+   size 281804
+   provides (ediff)
+   requires (pcl-cvs elib dired xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(w3
+(hm--html-menus
   (standards-version 1.0
   (standards-version 1.0
-   version "1.10"
-   author-version "4.0pre23"
-   date "1998-07-18"
-   build-date "1998-10-12"
+   version "1.12"
+   author-version "5.9"
+   date "1999-02-05"
+   build-date "1999-02-05"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution experimental
-   priority high
-   category "comm"
+   distribution stable
+   priority low
+   category "oa"
    dump nil
    dump nil
-   description "A Web browser."
-   filename "w3-1.10-pkg.tar.gz"
-   md5sum "6113b455f82c5903b8bd6f4ca48afb00"
-   size 612442
-   provides (w3 url)
-   requires (w3 mail-lib xemacs-base)
+   description "HTML editing."
+   filename "hm--html-menus-1.12-pkg.tar.gz"
+   md5sum "fc80ef260cc0682bde6e706cdc8ddae4"
+   size 177442
+   provides (adapt hm--date hm--html-configuration hm--html-drag-and-drop hm--html-indentation hm--html-keys hm--html-menu hm--html-mode hm--html-not-standard hm--html html-view tmpl-minor-mode)
+   requires (dired xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(vm
+(jde
   (standards-version 1.0
    version "1.14"
   (standards-version 1.0
    version "1.14"
-   author-version "6.62"
-   date "1998-09-22"
-   build-date "1998-10-12"
-   maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
+   author-version "2.14"
+   date "1999-02-05"
+   build-date "1999-02-05"
+   maintainer "Andy Piper <andy@xemacs.org>"
    distribution stable
    priority medium
    distribution stable
    priority medium
-   category "comm"
+   category "prog"
    dump nil
    dump nil
-   description "An Emacs mailer."
-   filename "vm-1.14-pkg.tar.gz"
-   md5sum "e59383b955243ca90581fd6854bb5eff"
-   size 548815
-   provides (vm)
-   requires (mail-lib xemacs-base)
+   description "Java language and development support."
+   filename "jde-1.14-pkg.tar.gz"
+   md5sum "1028c54ef317d8dd4d4c78e5b9c004e6"
+   size 320702
+   provides (jde)
+   requires (cc-mode debug speedbar edit-utils mail-lib xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(tm
+(skk
   (standards-version 1.0
   (standards-version 1.0
-   version "1.15"
-   author-version "21.0"
-   date "1998-08-27"
-   build-date "1998-10-12"
-   maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution stable
-   priority low
-   category "comm"
-   dump nil
-   description "Emacs MIME support."
-   filename "tm-1.15-pkg.tar.gz"
-   md5sum "7769db3ab1473811a0622742c3e9bf69"
-   size 329539
-   provides (tm tm-edit tm-view mime-setup)
-   requires (gnus mh-e rmail vm mailcrypt mail-lib apel xemacs-base)
+   version "1.12"
+   author-version "10.38"
+   date "1998-10-01"
+   build-date "1999-02-02"
+   maintainer "SL Baur <steve@altair.xemacs.org>"
+   distribution mule
+   priority medium
+   category "mule"
+   dump t
+   description "Japanese Language Input Method."
+   filename "skk-1.12-pkg.tar.gz"
+   md5sum "f690c518a0da65c4dc9fe2a867026c26"
+   size 1514106
+   provides (skk skk-tut)
+   requires (viper mule-base elib xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(supercite
+(egg-its
   (standards-version 1.0
   (standards-version 1.0
-   version "1.10"
-   author-version "3.55x2"
-   date "1998-08-9"
-   build-date "1998-10-12"
+   version "1.16"
+   author-version "21.0b65"
+   date "1999-03-05"
+   build-date "1999-03-11"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution stable
-   priority low
-   category "comm"
-   dump nil
-   description "An Emacs citation tool for News & Mail messages."
-   filename "supercite-1.10-pkg.tar.gz"
-   md5sum "09dee2a7f1400bc8680ea067a2399dcb"
-   size 99403
-   provides (supercite)
-   requires (mail-lib xemacs-base)
+   distribution mule
+   priority high
+   category "mule"
+   dump t
+   description "Wnn (4.2 and 6) support.  SJ3 support."
+   filename "egg-its-1.16-pkg.tar.gz"
+   md5sum "5a3b23dbe609feeabfc108ae142715c3"
+   size 257562
+   provides (egg-cnpinyin egg-cnzhuyin egg-cwnn-leim egg-jisx0201 egg-jsymbol egg-kwnn-leim egg-leim egg-sj3-client egg-sj3-leim egg-sj3 egg-wnn egg)
+   requires (leim mule-base fsf-compat xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(rmail
+(edict
   (standards-version 1.0
    version "1.07"
   (standards-version 1.0
    version "1.07"
-   author-version "21.0"
-   date "1998-06-28"
-   build-date "1998-10-12"
-   maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution contrib
-   priority low
-   category "comm"
+   author-version "0.9.8"
+   date "1998-07-23"
+   build-date "1999-02-02"
+   maintainer "Stephen J. Turnbull <turnbull@sk.tsukuba.ac.jp>"
+   distribution mule
+   priority high
+   category "mule"
    dump nil
    dump nil
-   description "An obsolete Emacs mailer."
-   filename "rmail-1.07-pkg.tar.gz"
-   md5sum "0b256dc4b02e832d939850f86951217a"
-   size 96475
-   provides (rmail rmailsum)
-   requires (tm apel mail-lib xemacs-base)
+   description "Lisp Interface to EDICT, Kanji Dictionary"
+   filename "edict-1.07-pkg.tar.gz"
+   md5sum "493ef0ec6f2760e5c94423c23c9d124e"
+   size 71661
+   provides (dui-registry dui edict-edit edict-english edict-japanese edict-morphology edict-test edict ts-mode)
+   requires (mule-base xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(mew
+(leim
   (standards-version 1.0
   (standards-version 1.0
-   version "1.04"
-   author-version "1.93b38"
-   date "1998-06-21"
-   build-date "1998-10-12"
+   version "1.12"
+   author-version "21.0b62"
+   date "1998-07-23"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution contrib
-   priority low
-   category "comm"
+   distribution mule
+   priority medium
+   category "mule"
    dump nil
    dump nil
-   description "Messaging in an Emacs World."
-   filename "mew-1.04-pkg.tar.gz"
-   md5sum "896793a5d91c0ecfe4af5a7351f82fb7"
-   size 517164
-   provides (mew)
-   requires (mew)
+   description "Quail.  All non-English and non-Japanese language support."
+   filename "leim-1.12-pkg.tar.gz"
+   md5sum "07cc5be34a0d9d312b883b430349a882"
+   size 1671757
+   provides ()
+   requires (mule-base fsf-compat xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(net-utils
-  (standards-version 1.0
-   version "1.10"
-   author-version "21.0"
-   date "1998-07-01"
-   build-date "1998-10-12"
-   maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution stable
-   priority low
-   category "comm"
-   dump nil
-   description "Miscellaneous Networking Utilities."
-   filename "net-utils-1.10-pkg.tar.gz"
-   md5sum "89f6d1830b90e701ab57fcadd7337bb8"
-   size 107129
-   provides (ilisp-browse-cltl2 emacsbug feedmail metamail net-utils rcompile shadowfile webjump webster-www)
-   requires (w3 efs mail-lib xemacs-base)
-   type single
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(mh-e
+(locale
   (standards-version 1.0
   (standards-version 1.0
-   version "1.08"
+   version "1.13"
    author-version "21.0"
    author-version "21.0"
-   date "1998-07-12"
-   build-date "1998-10-12"
+   date "1999-05-11"
+   build-date "1999-05-13"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution contrib
-   priority low
-   category "comm"
+   distribution mule
+   priority high
+   category "mule"
    dump nil
    dump nil
-   description "Front end support for MH."
-   filename "mh-e-1.08-pkg.tar.gz"
-   md5sum "f1995b0f516668922a5f4331d0c13187"
-   size 176392
-   provides (mh-e)
-   requires (mail-lib xemacs-base)
+   description "Localized menubars and localized splash screens."
+   filename "locale-1.13-pkg.tar.gz"
+   md5sum "4735b4005dfce55cf3581885add18836"
+   size 33964
+   provides ()
+   requires (mule-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(mailcryptng
+(mule-base
   (standards-version 1.0
   (standards-version 1.0
-   version "1.01"
-   author-version "3.5b7"
-   date "1998-10-10"
-   build-date "1998-10-12"
-   maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution stable
-   priority low
-   category "comm"
-   dump nil
-   description "Support for messaging encryption with PGP."
-   filename "mailcryptng-1.01-pkg.tar.gz"
-   md5sum "70bbfabaa083dc3a6178aa2be979705e"
-   size 120414
-   provides (mailcrypt)
-   requires (gnus vm mail-lib fsf-compat xemacs-base)
+   version "1.29"
+   author-version "21.0"
+   date "1999-05-13"
+   build-date "1999-05-13"
+   maintainer "SL Baur <steve@altair.xemacs.org>"
+   distribution mule
+   priority high
+   category "mule"
+   dump t
+   description "Basic Mule support, required for building with Mule."
+   filename "mule-base-1.29-pkg.tar.gz"
+   md5sum "9b713b6f95c4016dc29d7b584c78f7d1"
+   size 420205
+   provides (canna-leim canna char-table china-util cyril-util isearch-ext japan-util ccl can-n-egg mule-help)
+   requires (fsf-compat xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(mailcrypt
+(strokes
   (standards-version 1.0
   (standards-version 1.0
-   version "1.06"
-   author-version "3.4"
-   date "1998-01-24"
-   build-date "1998-10-12"
+   version "1.04"
+   author-version "21.0b62"
+   date "1998-01-25"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
-   priority low
-   category "comm"
+   priority medium
+   category "oa"
    dump nil
    dump nil
-   description "Support for messaging encryption with PGP."
-   filename "mailcrypt-1.06-pkg.tar.gz"
-   md5sum "e601fc5c1f43c5b7f577c7262c7877a9"
-   size 106355
-   provides (mailcrypt)
-   requires (gnus vm mail-lib xemacs-base)
+   description "Mouse enhancement utility."
+   filename "strokes-1.04-pkg.tar.gz"
+   md5sum "9a83020e888d140da2360dcac83c7c86"
+   size 43481
+   provides (strokes)
+   requires (text-modes edit-utils mail-lib xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(irchat
+(time
   (standards-version 1.0
   (standards-version 1.0
-   version "1.03"
-   author-version "980625-2"
-   date "1998-09-08"
-   build-date "1998-10-12"
+   version "1.07"
+   author-version "1.17"
+   date "1998-04-24"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority medium
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority medium
-   category "comm"
+   category "oa"
    dump nil
    dump nil
-   description "ZENIRC IRC Client."
-   filename "irchat-1.03-pkg.tar.gz"
-   md5sum "9d066b2d79ab2dd5e01e1b8733289aa4"
-   size 219214
-   provides (irchat)
-   requires ()
+   description "Display time & date on the modeline."
+   filename "time-1.07-pkg.tar.gz"
+   md5sum "4cc97d84357412fb7d737a88b6f05cbe"
+   size 20006
+   provides (time)
+   requires (xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(gnats
+(text-modes
   (standards-version 1.0
   (standards-version 1.0
-   version "1.07"
-   author-version "3.101"
-   date "1998-08-01"
-   build-date "1998-10-12"
+   version "1.19"
+   author-version "21.0"
+   date "1999-04-22"
+   build-date "1999-05-13"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority high
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority high
-   category "comm"
+   category "oa"
    dump nil
    dump nil
-   description "XEmacs bug reports."
-   filename "gnats-1.07-pkg.tar.gz"
-   md5sum "40d23fbac2ea05d55be0d0822259b023"
-   size 189213
-   provides (gnats gnats-admin send-pr)
-   requires (mail-lib xemacs-base)
+   description "Miscellaneous support for editing text files."
+   filename "text-modes-1.19-pkg.tar.gz"
+   md5sum "9031e37912506b87a9a4fc4aa8107c13"
+   size 207865
+   provides (autoinsert crontab-edit filladapt fold-isearch folding image-mode iso-acc iso-ascii iso-cvt iso-insert iso-swed swedish tabify whitespace-mode winmgr-mode xpm-mode xrdb-mode)
+   requires (ispell fsf-compat xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(footnote
+(slider
   (standards-version 1.0
   (standards-version 1.0
-   version "1.07"
-   author-version "0.18x"
-   date "1998-08-27"
-   build-date "1998-10-12"
-   maintainer "SL Baur <steve@xemacs.org>"
-   distribution stable
+   version "1.09"
+   author-version "0.3x1"
+   date "1998-08-13"
+   build-date "1999-02-02"
+   maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
+   distribution experimental
    priority low
    priority low
-   category "comm"
+   category "oa"
    dump nil
    dump nil
-   description "Footnoting in mail message editing modes."
-   filename "footnote-1.07-pkg.tar.gz"
-   md5sum "1064b49b7e13a467458af2bafd9e62fb"
-   size 13362
-   provides (footnote)
-   requires (mail-lib xemacs-base)
+   description "User interface tool."
+   filename "slider-1.09-pkg.tar.gz"
+   md5sum "b211a950179fee88712fc5c38e395069"
+   size 12004
+   provides (slider color-selector)
+   requires ()
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(eudc
+(sgml
   (standards-version 1.0
   (standards-version 1.0
-   version "1.24"
-   author-version "1.24"
-   date "1998-10-15"
-   build-date "1998-10-15"
-   maintainer "Oscar Figueiredo <Oscar.Figueiredo@epfl.ch>"
-   distribution stable
+   version "1.04"
+   author-version "21.0b62"
+   date "1998-01-25"
+   build-date "1999-02-02"
+   maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
+   distribution contrib
    priority low
    priority low
-   category "comm"
+   category "oa"
    dump nil
    dump nil
-   description "Emacs Unified Directory Client (LDAP, PH)."
-   filename "eudc-1.24-pkg.tar.gz"
-   md5sum "43c173e7e052c81b196c617fb22b6e00"
-   size 50837
-   provides (eudc eudc-ldap eudc-ph)
-   requires (fsf-compat xemacs-base)
+   description "SGML/Linuxdoc-SGML editing."
+   filename "sgml-1.04-pkg.tar.gz"
+   md5sum "2b762a0fbdda616916624dc2fa53e647"
+   size 26938
+   provides (sgml linuxdoc-sgml)
+   requires (xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(bbdb
+(psgml
   (standards-version 1.0
   (standards-version 1.0
-   version "1.06"
-   author-version "2.00.02"
-   date "1998-10-08"
-   build-date "1998-10-12"
+   version "1.12"
+   author-version "1.01"
+   date "1999-03-05"
+   build-date "1999-03-05"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority medium
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority medium
-   category "comm"
+   category "oa"
    dump nil
    dump nil
-   description "The Big Brother Data Base"
-   filename "bbdb-1.06-pkg.tar.gz"
-   md5sum "4889d21fded3ae5cddee558e0d136a20"
-   size 281992
-   provides (bbdb)
-   requires (bbdb edit-utils gnus mh-e rmail supercite vm tm apel mail-lib xemacs-base)
+   description "Validated HTML/SGML editing."
+   filename "psgml-1.12-pkg.tar.gz"
+   md5sum "7303b3a604659b64f24b0847b3a686d5"
+   size 425458
+   provides (psgml sgml)
+   requires (edit-utils)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(gnus
+(pc
   (standards-version 1.0
   (standards-version 1.0
-   version "1.33"
-   author-version "5.6.44"
-   date "1998-09-25"
-   build-date "1998-10-15"
+   version "1.15"
+   author-version "21.0"
+   date "1999-04-13"
+   build-date "1999-05-13"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
-   priority medium
-   category "comm"
+   priority low
+   category "oa"
    dump nil
    dump nil
-   description "The Gnus Newsreader and Mailreader."
-   filename "gnus-1.33-pkg.tar.gz"
-   md5sum "46a0466ec203cd7b0d78bfeb215a65f5"
-   size 1874633
-   provides (gnus message)
-   requires (gnus w3 mh-e mailcrypt rmail mail-lib xemacs-base)
-   type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(skk
-  (standards-version 1.0
-   version "1.11"
-   author-version "10.38"
-   date "1998-10-01"
-   build-date "1998-10-12"
-   maintainer "SL Baur <steve@altair.xemacs.org>"
-   distribution mule
-   priority medium
-   category "mule"
-   dump t
-   description "Japanese Language Input Method."
-   filename "skk-1.11-pkg.tar.gz"
-   md5sum "c158751b558299be9b5f8f9d10216a79"
-   size 1513975
-   provides (skk skk-tut)
-   requires (viper mule-base elib xemacs-base)
+   description "PC style interface emulation."
+   filename "pc-1.15-pkg.tar.gz"
+   md5sum "99ad6b816d02360a4a9ccb5425974818"
+   size 16315
+   provides (delbs fusion pc-select pending-del s-region)
+   requires (xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(mule-base
+(ispell
   (standards-version 1.0
   (standards-version 1.0
-   version "1.24"
-   author-version "21.0"
-   date "1998-08-12"
-   build-date "1998-10-12"
-   maintainer "SL Baur <steve@altair.xemacs.org>"
-   distribution mule
-   priority high
-   category "mule"
-   dump t
-   description "Basic Mule support, required for building with Mule."
-   filename "mule-base-1.24-pkg.tar.gz"
-   md5sum "9842af89469856fa1c7f3ed60c8c25cf"
-   size 508959
-   provides (canna-leim canna char-table china-util cyril-util isearch-ext japan-util ccl can-n-egg mule-help)
-   requires (fsf-compat xemacs-base)
+   version "1.15"
+   author-version "3.2"
+   date "1999-05-13"
+   build-date "1999-05-13"
+   maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
+   distribution stable
+   priority low
+   category "oa"
+   dump nil
+   description "Spell-checking with GNU ispell."
+   filename "ispell-1.15-pkg.tar.gz"
+   md5sum "23632bd9fc2f7e4c0303865c35c5f4a5"
+   size 68118
+   provides (ispell)
+   requires ()
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(egg-its
+(frame-icon
   (standards-version 1.0
   (standards-version 1.0
-   version "1.13"
-   author-version "21.0"
-   date "1998-08-11"
-   build-date "1998-10-15"
+   version "1.06"
+   author-version "21.0b62"
+   date "1998-07-14"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution mule
-   priority high
-   category "mule"
-   dump t
-   description "Wnn (4.2 and 6) support.  SJ3 support."
-   filename "egg-its-1.13-pkg.tar.gz"
-   md5sum "e7a5d51eb734310b9bb151c4fba05868"
-   size 259686
-   provides (egg-cnpinyin egg-cnzhuyin egg-cwnn-leim egg-jisx0201 egg-jsymbol egg-kwnn-leim egg-leim egg-sj3-client egg-sj3-leim egg-sj3 egg-wnn egg)
-   requires (leim mule-base fsf-compat xemacs-base)
+   distribution contrib
+   priority low
+   category "oa"
+   dump nil
+   description "Set up mode-specific icons for each frame under XEmacs"
+   filename "frame-icon-1.06-pkg.tar.gz"
+   md5sum "bc4f6e838a4fa12d7f3b8b1996b3a9ac"
+   size 33483
+   provides (forms forms-mode)
+   requires ()
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(edict
+(forms
   (standards-version 1.0
   (standards-version 1.0
-   version "1.06"
-   author-version "0.9.8"
-   date "1998-07-23"
-   build-date "1998-10-12"
-   maintainer "Stephen J. Turnbull <turnbull@sk.tsukuba.ac.jp>"
-   distribution mule
-   priority high
-   category "mule"
+   version "1.10"
+   author-version "2.37"
+   date "1999-05-11"
+   build-date "1999-05-13"
+   maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
+   distribution contrib
+   priority low
+   category "oa"
    dump nil
    dump nil
-   description "Lisp Interface to EDICT, Kanji Dictionary"
-   filename "edict-1.06-pkg.tar.gz"
-   md5sum "d9ba0f5372b2b83fe1499d1462dad3ca"
-   size 68008
-   provides (dui-registry dui edict-edit edict-english edict-japanese edict-morphology edict-test edict ts-mode)
-   requires (mule-base xemacs-base)
+   description "Forms editing support (obsolete, use Widget instead)."
+   filename "forms-1.10-pkg.tar.gz"
+   md5sum "a8ad3a114859c0981a1f884072bf4b1b"
+   size 48264
+   provides (forms forms-mode)
+   requires ()
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(leim
+(calendar
   (standards-version 1.0
   (standards-version 1.0
-   version "1.11"
-   author-version "21.0"
-   date "1998-07-23"
-   build-date "1998-10-12"
+   version "1.10"
+   author-version "21.0b63"
+   date "1999-02-08"
+   build-date "1999-03-01"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution mule
-   priority medium
-   category "mule"
+   distribution stable
+   priority low
+   category "oa"
    dump nil
    dump nil
-   description "Quail.  All non-English and non-Japanese language support."
-   filename "leim-1.11-pkg.tar.gz"
-   md5sum "19f4745d0364b46c7526a34777c653e5"
-   size 1670560
-   provides ()
-   requires (mule-base fsf-compat xemacs-base)
+   description "Calendar and diary support."
+   filename "calendar-1.10-pkg.tar.gz"
+   md5sum "09e93d157d2853a35e735a6a04f54055"
+   size 248580
+   provides (appt cal-dst cal-french cal-mayan cal-x cal-xemacs calendar diary-ins diary-lib holidays lunar solar)
+   requires (xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(locale
+(calc
   (standards-version 1.0
    version "1.10"
   (standards-version 1.0
    version "1.10"
-   author-version "21.0"
-   date "1998-07-24"
-   build-date "1998-10-12"
+   author-version "2.02fX3"
+   date "1998-07-25"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution mule
-   priority high
-   category "mule"
+   distribution stable
+   priority low
+   category "oa"
    dump nil
    dump nil
-   description "Localized menubars and localized splash screens."
-   filename "locale-1.10-pkg.tar.gz"
-   md5sum "8439f2d7e266f3e4c2f18a19aa967202"
-   size 32709
-   provides ()
-   requires (mule-base)
+   description "Emacs calculator"
+   filename "calc-1.10-pkg.tar.gz"
+   md5sum "148c82bf6f213d6e2fb234e1f21e4699"
+   size 1616821
+   provides (calc)
+   requires ()
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(time
+(speedbar
   (standards-version 1.0
   (standards-version 1.0
-   version "1.06"
-   author-version "1.17"
-   date "1998-04-24"
-   build-date "1998-10-12"
+   version "1.12"
+   author-version "0.6.2x"
+   date "1999-03-05"
+   build-date "1999-03-12"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
-   priority medium
+   priority low
    category "oa"
    dump nil
    category "oa"
    dump nil
-   description "Display time & date on the modeline."
-   filename "time-1.06-pkg.tar.gz"
-   md5sum "f55965f3ef08e038bd58ca8f4fb83fe6"
-   size 20018
-   provides (time)
+   description "Provides a seperate frame with convenient references."
+   filename "speedbar-1.12-pkg.tar.gz"
+   md5sum "3b578d06426921193ac2b8337a669bfa"
+   size 64892
+   provides (speedbar)
    requires (xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    requires (xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(text-modes
+(edit-utils
   (standards-version 1.0
   (standards-version 1.0
-   version "1.13"
+   version "1.39"
    author-version "21.0"
    author-version "21.0"
-   date "1998-09-24"
-   build-date "1998-10-15"
+   date "1999-05-11"
+   build-date "1999-05-13"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority high
    category "oa"
    dump nil
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority high
    category "oa"
    dump nil
-   description "Miscellaneous support for editing text files."
-   filename "text-modes-1.13-pkg.tar.gz"
-   md5sum "3209269c42e32e39f70259cb68855e4f"
-   size 195165
-   provides (autoinsert crontab-edit filladapt fold-isearch folding image-mode iso-acc iso-ascii iso-cvt iso-insert iso-swed swedish tabify whitespace-mode winmgr-mode xpm-mode xrdb-mode)
-   requires (ispell fsf-compat xemacs-base)
-   type regular
+   description "Miscellaneous editor extensions, you probably need this."
+   filename "edit-utils-1.39-pkg.tar.gz"
+   md5sum "f129277008f56e86ec8630a299df7408"
+   size 577970
+   provides (abbrevlist atomic-extents avoid backup-dir balloon-help big-menubar blink-cursor blink-paren bookmark compare-w completion dabbrev desktop detached-minibuf edit-toolbar fast-lock file-part floating-toolbar flow-ctrl foldout func-menu hippie-exp icomplete id-select info-look iswitchb lazy-lock lazy-shot live-icon man mic-paren paren popper mode-motion+ outl-mouse page-ext blink-paren paren permanent-buffers recent-files redo reportmail rsz-minibuf saveconfsavehist saveplace scroll-in-place tempo toolbar-utils tree-menu uniquify where-was-i-db)
+   requires (xemacs-base)
+   type single
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(strokes
+(view-process
   (standards-version 1.0
   (standards-version 1.0
-   version "1.03"
-   author-version "21.0"
-   date "1998-01-25"
-   build-date "1998-10-12"
+   version "1.06"
+   author-version "2.4"
+   date "1998-01-24"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
-   priority medium
-   category "oa"
+   priority low
+   category "os"
    dump nil
    dump nil
-   description "Mouse enhancement utility."
-   filename "strokes-1.03-pkg.tar.gz"
-   md5sum "170257302196f106a54eb6dcf32fcc7a"
-   size 43480
-   provides (strokes)
-   requires (text-modes edit-utils mail-lib xemacs-base)
+   description "A Unix process browsing tool."
+   filename "view-process-1.06-pkg.tar.gz"
+   md5sum "61c4c7175f23cb4cfd314e10303b238c"
+   size 59958
+   provides (view-process-mode)
+   requires (xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(speedbar
+(os-utils
   (standards-version 1.0
   (standards-version 1.0
-   version "1.10"
-   author-version "0.6.2x"
-   date "1998-10-02"
-   build-date "1998-10-12"
+   version "1.15"
+   author-version "21.0"
+   date "1999-03-19"
+   build-date "1999-05-13"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
-   priority low
-   category "oa"
+   priority medium
+   category "os"
    dump nil
    dump nil
-   description "Provides a seperate frame with convenient references."
-   filename "speedbar-1.10-pkg.tar.gz"
-   md5sum "eab230ae2aa7d6ed5739f46ec4099dcf"
-   size 64861
-   provides (speedbar)
+   description "Miscellaneous O/S utilities."
+   filename "os-utils-1.15-pkg.tar.gz"
+   md5sum "92a3d72b0df1fb79fef2aee88a4d4f50"
+   size 228261
+   provides (archive-mode background crypt crypt++ inf-lisp jka-compr lpr mchat ps-print tar-mode telnet terminal uncompress)
    requires (xemacs-base)
    requires (xemacs-base)
-   type regular
+   type single
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(slider
+(ilisp
   (standards-version 1.0
   (standards-version 1.0
-   version "1.08"
-   author-version "0.3x1"
-   date "1998-08-13"
-   build-date "1998-10-12"
+   version "1.07"
+   author-version "5.8"
+   date "1998-01-24"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution experimental
+   distribution stable
    priority low
    priority low
-   category "oa"
+   category "os"
    dump nil
    dump nil
-   description "User interface tool."
-   filename "slider-1.08-pkg.tar.gz"
-   md5sum "8d2fe53d7d58fa0af58ac0359caccaca"
-   size 12018
-   provides (slider color-selector)
-   requires ()
+   description "Front-end for Inferior Lisp."
+   filename "ilisp-1.07-pkg.tar.gz"
+   md5sum "38cb2d94926e310a6e71ec1be854d636"
+   size 262173
+   provides (ilisp completer)
+   requires (xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(sgml
-  (standards-version 1.0
-   version "1.03"
-   author-version "21.0"
-   date "1998-01-25"
-   build-date "1998-10-12"
+(igrep
+  (standards-version 1.0
+   version "1.05"
+   author-version "2.83"
+   date "1998-08-11"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution contrib
+   distribution stable
    priority low
    priority low
-   category "oa"
+   category "os"
    dump nil
    dump nil
-   description "SGML/Linuxdoc-SGML editing."
-   filename "sgml-1.03-pkg.tar.gz"
-   md5sum "317c7f52a3215f53e964ad90f9c40909"
-   size 26928
-   provides (sgml linuxdoc-sgml)
-   requires (xemacs-base)
+   description "Enhanced front-end for Grep."
+   filename "igrep-1.05-pkg.tar.gz"
+   md5sum "e70d4973a2af4dbd6222f5943bfa1a50"
+   size 14935
+   provides (igrep)
+   requires (dired xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(psgml
+(eterm
   (standards-version 1.0
   (standards-version 1.0
-   version "1.10"
-   author-version "1.01"
-   date "1998-07-06"
-   build-date "1998-10-12"
+   version "1.08"
+   author-version "21.0b62"
+   date "1998-06-28"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority medium
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority medium
-   category "oa"
+   category "os"
    dump nil
    dump nil
-   description "Validated HTML/SGML editing."
-   filename "psgml-1.10-pkg.tar.gz"
-   md5sum "15e584b90a2d2310a2be15ea2aa0717a"
-   size 424930
-   provides (psgml sgml)
-   requires (edit-utils)
+   description "Terminal emulation."
+   filename "eterm-1.08-pkg.tar.gz"
+   md5sum "77e56529b5de6a0a0dd46c5d1634eebf"
+   size 108905
+   provides (eterm)
+   requires (xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(pc
+(viper
   (standards-version 1.0
   (standards-version 1.0
-   version "1.13"
-   author-version "21.0"
-   date "1998-07-25"
-   build-date "1998-10-12"
-   maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
+   version "1.14"
+   author-version "3.061"
+   date "1999-03-03"
+   build-date "1999-03-05"
+   maintainer "Michael Kifer <kifer@cs.sunysb.edu>"
    distribution stable
    priority low
    distribution stable
    priority low
-   category "oa"
+   category "wp"
    dump nil
    dump nil
-   description "PC style interface emulation."
-   filename "pc-1.13-pkg.tar.gz"
-   md5sum "e5355fb82d1dbd77ad522bffb334168d"
-   size 16306
-   provides (delbs fusion pc-select pending-del s-region)
+   description "VI emulation support."
+   filename "viper-1.14-pkg.tar.gz"
+   md5sum "0e118822906e195dc352f28c8efc01e0"
+   size 317899
+   provides (viper)
    requires (xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    requires (xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(ispell
+(tpu
   (standards-version 1.0
   (standards-version 1.0
-   version "1.12"
-   author-version "3.0x2"
-   date "1998-09-15"
-   build-date "1998-10-12"
-   maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution stable
-   priority low
-   category "oa"
+   version "1.08"
+   author-version "4.2X"
+   date "1998-07-23"
+   build-date "1999-02-02"
+   maintainer "Kevin Oberman <oberman@es.net>"
+   distribution normal
+   priority medium
+   category "wp"
    dump nil
    dump nil
-   description "Spell-checking with GNU ispell."
-   filename "ispell-1.12-pkg.tar.gz"
-   md5sum "5786e4688024aae78fe75a5cbf92c446"
-   size 67168
-   provides (ispell)
+   description "DEC EDIT/TPU support."
+   filename "tpu-1.08-pkg.tar.gz"
+   md5sum "2306ac55a0a1ed23da02a85c91f881bb"
+   size 58804
+   provides (tpu)
    requires ()
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    requires ()
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(hm--html-menus
+(textools
   (standards-version 1.0
    version "1.08"
   (standards-version 1.0
    version "1.08"
-   author-version "5.9"
-   date "1998-01-25"
-   build-date "1998-10-12"
+   author-version "21.0b62"
+   date "1998-04-29"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution stable
-   priority low
-   category "oa"
+   distribution stabl
+   priority medium
+   category "wp"
    dump nil
    dump nil
-   description "HTML editing."
-   filename "hm--html-menus-1.08-pkg.tar.gz"
-   md5sum "1f0fda934b84c5eed96fcfd02a046398"
-   size 168017
-   provides (adapt hm--date hm--html-configuration hm--html-drag-and-drop hm--html-indentation hm--html-keys hm--html-menu hm--html-mode hm--html-not-standard hm--html html-view tmpl-minor-mode)
+   description "Miscellaneous TeX support."
+   filename "textools-1.08-pkg.tar.gz"
+   md5sum "22dd0e16433a96547fde5757c6793388"
+   size 79176
+   provides (bib-mode bibtex refer-to-bibtex)
    requires (xemacs-base)
    requires (xemacs-base)
-   type regular
+   type single
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(frame-icon
+(texinfo
   (standards-version 1.0
   (standards-version 1.0
-   version "1.05"
-   author-version "21.0"
-   date "1998-07-14"
-   build-date "1998-10-12"
+   version "1.14"
+   author-version "21.0b62"
+   date "1998-07-20"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution contrib
-   priority low
-   category "oa"
+   distribution stable
+   priority high
+   category "wp"
    dump nil
    dump nil
-   description "Set up mode-specific icons for each frame under XEmacs"
-   filename "frame-icon-1.05-pkg.tar.gz"
-   md5sum "3d1a67ba8a51f74746ecb14385a025ef"
-   size 33490
-   provides (forms forms-mode)
-   requires ()
+   description "XEmacs TeXinfo support."
+   filename "texinfo-1.14-pkg.tar.gz"
+   md5sum "b1b6a7f4c1ff10be38d3e27d1213f1c8"
+   size 127830
+   provides (makeinfo tex-mode texinfmt texinfo texnfo-tex texnfo-upd)
+   requires (xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(forms
+(reftex
   (standards-version 1.0
   (standards-version 1.0
-   version "1.08"
-   author-version "2.10"
-   date "1998-01-25"
-   build-date "1998-10-12"
-   maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution contrib
-   priority low
-   category "oa"
+   version "1.13"
+   author-version "3.43"
+   date "1999-04-06"
+   build-date "1999-05-13"
+   maintainer "Carsten Dominik <dominik@strw.LeidenUniv.nl>"
+   distribution stable
+   priority medium
+   category "wp"
    dump nil
    dump nil
-   description "Forms editing support (obsolete, use Widget instead)."
-   filename "forms-1.08-pkg.tar.gz"
-   md5sum "8af074cfc164331838bc83eb79eed3b5"
-   size 47670
-   provides (forms forms-mode)
-   requires ()
+   description "Emacs support for LaTeX cross-references, citations.."
+   filename "reftex-1.13-pkg.tar.gz"
+   md5sum "5e9196a6fdda2587bec1aff19d6322ec"
+   size 216008
+   provides (reftex)
+   requires (fsf-compat xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(edit-utils
+(edt
   (standards-version 1.0
   (standards-version 1.0
-   version "1.33"
-   author-version "21.0"
-   date "1998-09-29"
-   build-date "1998-10-12"
+   version "1.07"
+   author-version "21.0b62"
+   date "1998-04-07"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution stable
-   priority high
-   category "oa"
+   distribution contrib
+   priority low
+   category "wp"
    dump nil
    dump nil
-   description "Miscellaneous editor extensions, you probably need this."
-   filename "edit-utils-1.33-pkg.tar.gz"
-   md5sum "0aa0b5d2864dc02a62fb6e87880c4733"
-   size 564543
-   provides (abbrevlist atomic-extents avoid backup-dir balloon-help big-menubar blink-cursor blink-paren bookmark compare-w completion dabbrev desktop detached-minibuf edit-toolbar fast-lock file-part floating-toolbar flow-ctrl foldout func-menu hippie-exp icomplete id-select info-look iswitchb lazy-lock lazy-shot live-icon man mic-paren paren popper mode-motion+ outl-mouse page-ext blink-paren paren permanent-buffers recent-files redo reportmail rsz-minibuf saveconfsavehist saveplace scroll-in-place tempo toolbar-utils tree-menu uniquify where-was-i-db)
+   description "DEC EDIT/EDT emulation."
+   filename "edt-1.07-pkg.tar.gz"
+   md5sum "6c48ceb9686c50058be3938288940bc5"
+   size 46131
+   provides (edt)
    requires (xemacs-base)
    requires (xemacs-base)
-   type single
+   type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(calendar
+(crisp
   (standards-version 1.0
   (standards-version 1.0
-   version "1.08"
-   author-version "21.0"
-   date "1998-09-01"
-   build-date "1998-10-12"
+   version "1.09"
+   author-version "1.34"
+   date "1998-08-18"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
-   category "oa"
+   category "wp"
    dump nil
    dump nil
-   description "Calendar and diary support."
-   filename "calendar-1.08-pkg.tar.gz"
-   md5sum "afe4b31eb98b130960046bb3c2385ed3"
-   size 248313
-   provides (appt cal-dst cal-french cal-mayan cal-x cal-xemacs calendar diary-ins diary-lib holidays lunar solar)
-   requires (xemacs-base)
+   description "Crisp/Brief emulation."
+   filename "crisp-1.09-pkg.tar.gz"
+   md5sum "faa9b6f2868a7e5b212d1094039cf526"
+   size 10067
+   provides (crisp scroll-lock)
+   requires ()
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(calc
+(auctex
   (standards-version 1.0
   (standards-version 1.0
-   version "1.09"
-   author-version "2.02fX3"
-   date "1998-07-25"
-   build-date "1998-10-12"
+   version "1.16"
+   author-version "9.7p"
+   date "1998-09-30"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
-   priority low
-   category "oa"
+   priority medium
+   category "wp"
    dump nil
    dump nil
-   description "Emacs calculator"
-   filename "calc-1.09-pkg.tar.gz"
-   md5sum "f0eb907a308a96da7ac5c3fc8c7d8bea"
-   size 1616564
-   provides (calc)
-   requires ()
+   description "Basic TeX/LaTeX support."
+   filename "auctex-1.16-pkg.tar.gz"
+   md5sum "56e3454a1162c25db93fc84bdab61d0f"
+   size 365136
+   provides (auc-old bib-cite font-latex latex multi-prompt tex-buf tex-info tex-jp tex-site tex)
+   requires (xemacs-base)
    type regular
 ))
 ))
    type regular
 ))
 ))
 (package-get-update-base-entry (quote
 (vhdl
   (standards-version 1.0
 (package-get-update-base-entry (quote
 (vhdl
   (standards-version 1.0
-   version "1.06"
+   version "1.07"
    author-version "2.74"
    date "1998-01-24"
    author-version "2.74"
    date "1998-01-24"
-   build-date "1998-10-12"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
    category "prog"
    dump nil
    description "Support for VHDL."
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
    category "prog"
    dump nil
    description "Support for VHDL."
-   filename "vhdl-1.06-pkg.tar.gz"
-   md5sum "b6f786b7f682f76d57eeb94d3c917e56"
-   size 65943
+   filename "vhdl-1.07-pkg.tar.gz"
+   md5sum "0eae8d15cff7d7b6dd7e1d00029c0e3a"
+   size 65961
    provides (vhdl-mode)
    requires ()
    type regular
    provides (vhdl-mode)
    requires ()
    type regular
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(vc-cc
+(vc
   (standards-version 1.0
   (standards-version 1.0
-   version "1.09"
-   author-version "21.0"
-   date "1998-07-24"
-   build-date "1998-10-12"
+   version "1.17"
+   author-version "21.0b63"
+   date "1999-02-25"
+   build-date "1999-03-01"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution contrib
+   distribution stable
    priority low
    category "prog"
    dump nil
    priority low
    category "prog"
    dump nil
-   description "Version Control for ClearCase (UnFree) systems."
-   filename "vc-cc-1.09-pkg.tar.gz"
-   md5sum "43f4947aeb368164aada9dc2df827ce7"
-   size 96473
+   description "Version Control for Free systems."
+   filename "vc-1.17-pkg.tar.gz"
+   md5sum "4e80458c0e6d4cf2805ed6a46135e1c6"
+   size 84499
    provides (vc)
    requires (dired xemacs-base)
    type regular
    provides (vc)
    requires (dired xemacs-base)
    type regular
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(vc
+(vc-cc
   (standards-version 1.0
   (standards-version 1.0
-   version "1.14"
-   author-version "21.0"
-   date "1998-10-07"
-   build-date "1998-10-11"
+   version "1.11"
+   author-version "21.0b62"
+   date "1998-12-09"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution stable
+   distribution contrib
    priority low
    category "prog"
    dump nil
    priority low
    category "prog"
    dump nil
-   description "Version Control for Free systems."
-   filename "vc-1.14-pkg.tar.gz"
-   md5sum "64c350d9c5280e7545e3dc3936992a8a"
-   size 83885
+   description "Version Control for ClearCase (UnFree) systems."
+   filename "vc-cc-1.11-pkg.tar.gz"
+   md5sum "561ab60400e3fa6bfef8ad8567a3702d"
+   size 96544
    provides (vc)
    requires (dired xemacs-base)
    type regular
    provides (vc)
    requires (dired xemacs-base)
    type regular
 (package-get-update-base-entry (quote
 (sh-script
   (standards-version 1.0
 (package-get-update-base-entry (quote
 (sh-script
   (standards-version 1.0
-   version "1.07"
+   version "1.08"
    author-version "2.0e"
    date "1998-05-12"
    author-version "2.0e"
    date "1998-05-12"
-   build-date "1998-10-11"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
    category "prog"
    dump nil
    description "Support for editing shell scripts."
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
    category "prog"
    dump nil
    description "Support for editing shell scripts."
-   filename "sh-script-1.07-pkg.tar.gz"
-   md5sum "c5dd114d8e925fc7c8ec6d9130489421"
-   size 33895
+   filename "sh-script-1.08-pkg.tar.gz"
+   md5sum "f2f584ab19761b1db14160d9d3cbc6f3"
+   size 33900
    provides (sh-script executable)
    requires (xemacs-base)
    type regular
    provides (sh-script executable)
    requires (xemacs-base)
    type regular
 (package-get-update-base-entry (quote
 (scheme
   (standards-version 1.0
 (package-get-update-base-entry (quote
 (scheme
   (standards-version 1.0
-   version "1.06"
-   author-version "21.0"
+   version "1.07"
+   author-version "21.0b62"
    date "1998-09-08"
    date "1998-09-08"
-   build-date "1998-10-11"
+   build-date "1999-02-02"
    maintainer "Karl M. Hegbloom <karlheg@bittersweet.inetarena.com>"
    distribution contrib
    priority low
    category "prog"
    dump nil
    description "Front-end support for Inferior Scheme."
    maintainer "Karl M. Hegbloom <karlheg@bittersweet.inetarena.com>"
    distribution contrib
    priority low
    category "prog"
    dump nil
    description "Front-end support for Inferior Scheme."
-   filename "scheme-1.06-pkg.tar.gz"
-   md5sum "86edb18517b7ed62929041c55ea68927"
-   size 36321
+   filename "scheme-1.07-pkg.tar.gz"
+   md5sum "998d46aee749b32493cae61cac3888d2"
+   size 36292
    provides (scheme xscheme cmuscheme cmuscheme48)
    requires (xemacs-base)
    type regular
    provides (scheme xscheme cmuscheme cmuscheme48)
    requires (xemacs-base)
    type regular
 (package-get-update-base-entry (quote
 (prog-modes
   (standards-version 1.0
 (package-get-update-base-entry (quote
 (prog-modes
   (standards-version 1.0
-   version "1.13"
+   version "1.19"
    author-version "21.0"
    author-version "21.0"
-   date "1998-10-15"
-   build-date "1998-10-15"
+   date "1999-05-12"
+   build-date "1999-05-13"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority medium
    category "prog"
    dump nil
    description "Support for various programming languages."
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority medium
    category "prog"
    dump nil
    description "Support for various programming languages."
-   filename "prog-modes-1.13-pkg.tar.gz"
-   md5sum "6e78de455277b0fe757931532ca56a88"
-   size 574269
+   filename "prog-modes-1.19-pkg.tar.gz"
+   md5sum "11da842b17ee65837bc56c13d76f49af"
+   size 596965
    provides (autoconf-mode cperl-mode eiffel3 f90 fortran ksh-mode m4-mode makefile perl-mode postscript python-mode rexx-mode simula-mode tcl teco verilog-mod)
    provides (autoconf-mode cperl-mode eiffel3 f90 fortran ksh-mode m4-mode makefile perl-mode postscript python-mode rexx-mode simula-mode tcl teco verilog-mod)
-   requires (mail-lib xemacs-base)
+   requires (mail-lib xemacs-devel xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(pcl-cvs
+(emerge
   (standards-version 1.0
   (standards-version 1.0
-   version "1.34"
-   author-version "R-2_0-Beta_2"
-   date "1998-10-12"
-   build-date "1998-10-12"
+   version "1.05"
+   author-version "21.0b62"
+   date "1998-04-07"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
    category "prog"
    dump nil
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
    category "prog"
    dump nil
-   description "CVS frontend."
-   filename "pcl-cvs-1.34-pkg.tar.gz"
-   md5sum "6a3f944402c486679e7cb33f60b8689b"
-   size 161529
-   provides (pcl-cvs generic-sc)
-   requires (xemacs-base elib dired)
+   description "Another interface over GNU patch."
+   filename "emerge-1.05-pkg.tar.gz"
+   md5sum "1f4d70d7f4e73290837b2dbd2189be99"
+   size 61009
+   provides (emerge)
+   requires ()
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(jde
+(debug
+  (standards-version 1.0
+   version "1.09"
+   author-version "21.0"
+   date "1999-05-12"
+   build-date "1999-05-13"
+   maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
+   distribution contrib
+   priority low
+   category "prog"
+   dump nil
+   description "GUD, gdb, dbx debugging support."
+   filename "debug-1.09-pkg.tar.gz"
+   md5sum "24442a34f07cdd97ed52aa2c88c3de0b"
+   size 103161
+   provides (dbx gdb-highlight gdb gdbsrc gud history)
+   requires (xemacs-base)
+   type regular
+))
+))
+;;;@@@
+(package-get-update-base-entry (quote
+(c-support
+  (standards-version 1.0
+   version "1.12"
+   author-version "21.0b64"
+   date "1999-03-02"
+   build-date "1999-03-02"
+   maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
+   distribution contrib
+   priority low
+   category "prog"
+   dump nil
+   description "Basic single-file add-ons for editing C code."
+   filename "c-support-1.12-pkg.tar.gz"
+   md5sum "a793cd83bb595d34771332a46d2abfd4"
+   size 69913
+   provides (c-comment-edit cmacexp ctypes hideif hideshow)
+   requires (cc-mode xemacs-base)
+   type regular
+))
+))
+;;;@@@
+(package-get-update-base-entry (quote
+(ada
   (standards-version 1.0
    version "1.06"
   (standards-version 1.0
    version "1.06"
-   author-version "2.05"
-   date "1998-07-09"
-   build-date "1998-10-11"
-   maintainer "Andy Piper <andyp@parallax.co.uk>"
+   author-version "2.27"
+   date "1998-01-24"
+   build-date "1999-02-02"
+   maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    distribution stable
-   priority medium
+   priority low
    category "prog"
    dump nil
    category "prog"
    dump nil
-   description "Java language and development support."
-   filename "jde-1.06-pkg.tar.gz"
-   md5sum "402a03ac6482ee28a586ee41164cf4f5"
-   size 126911
-   provides (jde)
-   requires (cc-mode debug speedbar edit-utils mail-lib xemacs-base)
+   description "Ada language support."
+   filename "ada-1.06-pkg.tar.gz"
+   md5sum "0f3d2dc2ff33d40092b324a7a5a363d6"
+   size 54364
+   provides (ada-mode ada-stmt)
+   requires ()
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(emerge
+(pcl-cvs
   (standards-version 1.0
   (standards-version 1.0
-   version "1.04"
-   author-version "21.0"
-   date "1998-04-07"
-   build-date "1998-10-11"
+   version "1.38"
+   author-version "R-2_0-Beta_2"
+   date "1998-11-17"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
    category "prog"
    dump nil
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
    category "prog"
    dump nil
-   description "Another interface over GNU patch."
-   filename "emerge-1.04-pkg.tar.gz"
-   md5sum "681e35d3a0c167782db2e93f37ee3147"
-   size 60972
-   provides (emerge)
-   requires ()
+   description "CVS frontend."
+   filename "pcl-cvs-1.38-pkg.tar.gz"
+   md5sum "a5ff4e61dffe3985c20385eb741d4783"
+   size 163524
+   provides (pcl-cvs generic-sc)
+   requires (xemacs-base elib dired)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(ediff
+(cc-mode
   (standards-version 1.0
   (standards-version 1.0
-   version "1.13"
-   author-version "2.71"
-   date "up-mess): "
-   build-date "1998-10-15"
-   maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
+   version "1.15"
+   author-version "5.25"
+   date "1998-12-30"
+   build-date "1999-02-02"
+   maintainer "Barry Warsaw <bug-cc-mode@gnu.org>"
    distribution stable
    priority medium
    category "prog"
    dump nil
    distribution stable
    priority medium
    category "prog"
    dump nil
-   description "Interface over GNU patch."
-   filename "ediff-1.13-pkg.tar.gz"
-   md5sum "6435e57ce61d0b0262196866d62b63be"
-   size 281534
-   provides (ediff)
-   requires (pcl-cvs elib dired xemacs-base)
+   description "C, C++ and Java language support."
+   filename "cc-mode-1.15-pkg.tar.gz"
+   md5sum "ca73b190e79f96ab928eecd12af94222"
+   size 212611
+   provides (cc-mode)
+   requires (xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(debug
+(misc-games
   (standards-version 1.0
   (standards-version 1.0
-   version "1.06"
-   author-version "21.0"
-   date "1998-07-09"
-   build-date "1998-10-11"
+   version "1.11"
+   author-version "21.0b65"
+   date "1999-03-05"
+   build-date "1999-03-11"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution contrib
+   distribution stable
    priority low
    priority low
-   category "prog"
+   category "games"
    dump nil
    dump nil
-   description "GUD, gdb, dbx debugging support."
-   filename "debug-1.06-pkg.tar.gz"
-   md5sum "807421911694a3c5853568efb71b88b0"
-   size 88964
-   provides (dbx gdb-highlight gdb gdbsrc gud history)
+   description "Other amusements and diversions."
+   filename "misc-games-1.11-pkg.tar.gz"
+   md5sum "80149e00e5698d0a48945c918bd2d0ba"
+   size 166197
+   provides (decipher gomoku hanoi life morse rot13)
    requires (xemacs-base)
    requires (xemacs-base)
-   type regular
+   type single
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(cc-mode
+(mine
   (standards-version 1.0
   (standards-version 1.0
-   version "1.13"
-   author-version "5.22"
-   date "1998-03-05"
-   build-date "1998-10-11"
-   maintainer "Barry Warsaw <cc-mode-help@python.org>"
+   version "1.10"
+   author-version "1.9"
+   date "1998-05-09"
+   build-date "1999-02-02"
+   maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    distribution stable
-   priority medium
-   category "prog"
+   priority low
+   category "games"
    dump nil
    dump nil
-   description "C, C++ and Java language support."
-   filename "cc-mode-1.13-pkg.tar.gz"
-   md5sum "1ea7ffaa586063356ae65f4777cfb431"
-   size 186436
-   provides (cc-mode)
+   description "Minehunt Game."
+   filename "mine-1.10-pkg.tar.gz"
+   md5sum "a2d4f93830fe86e4d4e2f081ec0517fb"
+   size 66679
+   provides (xmine)
    requires (xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    requires (xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(c-support
+(games
   (standards-version 1.0
    version "1.09"
   (standards-version 1.0
    version "1.09"
-   author-version "21.0"
-   date "1998-03-25"
-   build-date "1998-10-11"
-   maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution contrib
+   author-version "1.04"
+   date "1998-06-04"
+   build-date "1999-02-02"
+   maintainer "Glynn Clements <glynn@sensei.co.uk>"
+   distribution stable
    priority low
    priority low
-   category "prog"
+   category "games"
    dump nil
    dump nil
-   description "Basic single-file add-ons for editing C code."
-   filename "c-support-1.09-pkg.tar.gz"
-   md5sum "f9dc7f8884203038f750d1e96087dc9c"
-   size 68730
-   provides (c-comment-edit cmacexp ctypes hideif hideshow)
-   requires (cc-mode xemacs-base)
+   description "Tetris, Sokoban, and Snake."
+   filename "games-1.09-pkg.tar.gz"
+   md5sum "76a327a228745576538711180a9e444e"
+   size 32146
+   provides (gamegrid snake tetris sokoban)
+   requires (xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(ada
+(cookie
   (standards-version 1.0
   (standards-version 1.0
-   version "1.05"
-   author-version "2.27"
-   date "1998-01-24"
-   build-date "1998-10-11"
+   version "1.10"
+   author-version "21.0b62"
+   date "1998-04-07"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
-   category "prog"
+   category "games"
    dump nil
    dump nil
-   description "Ada language support."
-   filename "ada-1.05-pkg.tar.gz"
-   md5sum "374870f02139d0d80b56dab23f93b06d"
-   size 54388
-   provides (ada-mode ada-stmt)
-   requires ()
+   description "Spook and Yow (Zippy quotes)."
+   filename "cookie-1.10-pkg.tar.gz"
+   md5sum "1c5599fa30e346af452c126d872121be"
+   size 34198
+   provides (cookie1 yow)
+   requires (xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(viper
+(bbdb
   (standards-version 1.0
   (standards-version 1.0
-   version "1.10"
-   author-version "3.03"
-   date "1998-02-25"
-   build-date "1998-10-11"
+   version "1.07"
+   author-version "2.00.02"
+   date "1998-10-08"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
-   priority low
-   category "wp"
+   priority medium
+   category "comm"
    dump nil
    dump nil
-   description "VI emulation support."
-   filename "viper-1.10-pkg.tar.gz"
-   md5sum "f34ad536e27aa564849fcfb2fcf22a29"
-   size 315794
-   provides (viper)
-   requires (xemacs-base)
+   description "The Big Brother Data Base"
+   filename "bbdb-1.07-pkg.tar.gz"
+   md5sum "e28c4aed70df000812d34cb3795c2f72"
+   size 282200
+   provides (bbdb)
+   requires (bbdb edit-utils gnus mh-e rmail supercite vm tm apel mail-lib xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(tpu
+(zenirc
   (standards-version 1.0
   (standards-version 1.0
-   version "1.07"
-   author-version "4.2X"
-   date "1998-07-23"
-   build-date "1998-10-11"
-   maintainer "Kevin Oberman <oberman@es.net>"
-   distribution normal
+   version "1.05"
+   author-version "2.112"
+   date "1998-08-15"
+   build-date "1999-02-02"
+   maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
+   distribution stable
    priority medium
    priority medium
-   category "wp"
+   category "comm"
    dump nil
    dump nil
-   description "DEC EDIT/TPU support."
-   filename "tpu-1.07-pkg.tar.gz"
-   md5sum "be15173be8a57fcb7b7244a143026f8c"
-   size 58801
-   provides (tpu)
-   requires ()
+   description "ZENIRC IRC Client."
+   filename "zenirc-1.05-pkg.tar.gz"
+   md5sum "df432e4987ddd0dd65e0124d7d910967"
+   size 276054
+   provides (zenirc)
+   requires (zenirc)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(textools
+(mew
   (standards-version 1.0
    version "1.07"
   (standards-version 1.0
    version "1.07"
-   author-version "21.0"
-   date "1998-04-29"
-   build-date "1998-10-11"
+   author-version "1.93b38x1"
+   date "1998-12-09"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution stabl
-   priority medium
-   category "wp"
+   distribution contrib
+   priority low
+   category "comm"
    dump nil
    dump nil
-   description "Miscellaneous TeX support."
-   filename "textools-1.07-pkg.tar.gz"
-   md5sum "a7dff92bcb92c3401f7e6085216f72d7"
-   size 79178
-   provides (bib-mode bibtex refer-to-bibtex)
-   requires (xemacs-base)
-   type single
+   description "Messaging in an Emacs World."
+   filename "mew-1.07-pkg.tar.gz"
+   md5sum "04ed302d5a3735169835e52dadc9e84d"
+   size 518432
+   provides (mew)
+   requires (mew)
+   type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(texinfo
+(tm
   (standards-version 1.0
   (standards-version 1.0
-   version "1.13"
+   version "1.18"
    author-version "21.0"
    author-version "21.0"
-   date "1998-07-20"
-   build-date "1998-10-11"
+   date "1999-02-06"
+   build-date "1999-05-13"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
-   priority high
-   category "wp"
+   priority low
+   category "comm"
    dump nil
    dump nil
-   description "XEmacs TeXinfo support."
-   filename "texinfo-1.13-pkg.tar.gz"
-   md5sum "460efede51ea17cd85872959fcf6474f"
-   size 127794
-   provides (makeinfo tex-mode texinfmt texinfo texnfo-tex texnfo-upd)
-   requires (xemacs-base)
+   description "Emacs MIME support."
+   filename "tm-1.18-pkg.tar.gz"
+   md5sum "3d7641bd11adb085686384ffee80bf04"
+   size 330163
+   provides (tm tm-edit tm-view mime-setup)
+   requires (gnus mh-e rmail vm mailcrypt mail-lib apel xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(reftex
+(gnus
   (standards-version 1.0
   (standards-version 1.0
-   version "1.09"
-   author-version "3.41"
-   date "1998-08-11"
-   build-date "1998-10-11"
-   maintainer "Carsten Dominik <dominik@strw.LeidenUniv.nl>"
+   version "1.40"
+   author-version "5.6.45x1"
+   date "1999-03-12"
+   build-date "1999-05-13"
+   maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority medium
    distribution stable
    priority medium
-   category "wp"
+   category "comm"
    dump nil
    dump nil
-   description "Emacs support for LaTeX cross-references, citations.."
-   filename "reftex-1.09-pkg.tar.gz"
-   md5sum "c7c12198809741e20431cf14a6b965c4"
-   size 204664
-   provides (reftex)
-   requires (fsf-compat xemacs-base)
+   description "The Gnus Newsreader and Mailreader."
+   filename "gnus-1.40-pkg.tar.gz"
+   md5sum "df916949c14fc6a1dcd5b3f3158a5497"
+   size 1873480
+   provides (gnus message)
+   requires (gnus tm apel w3 mh-e mailcrypt rmail mail-lib xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(edt
+(rmail
   (standards-version 1.0
   (standards-version 1.0
-   version "1.06"
-   author-version "21.0"
-   date "1998-04-07"
-   build-date "1998-10-11"
+   version "1.08"
+   author-version "21.0b62"
+   date "1998-06-28"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution contrib
    priority low
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution contrib
    priority low
-   category "wp"
+   category "comm"
    dump nil
    dump nil
-   description "DEC EDIT/EDT emulation."
-   filename "edt-1.06-pkg.tar.gz"
-   md5sum "bb559e2a5c87b7b3f466b83a2ed7ef3b"
-   size 46138
-   provides (edt)
-   requires (xemacs-base)
+   description "An obsolete Emacs mailer."
+   filename "rmail-1.08-pkg.tar.gz"
+   md5sum "90f98f9043e0c6f2180ffec9c6904eca"
+   size 96450
+   provides (rmail rmailsum)
+   requires (tm apel mail-lib xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(crisp
+(mailcrypt
   (standards-version 1.0
   (standards-version 1.0
-   version "1.08"
-   author-version "1.34"
-   date "1998-08-18"
-   build-date "1998-10-11"
+   version "1.07"
+   author-version "3.4"
+   date "1998-01-24"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority low
-   category "wp"
+   category "comm"
    dump nil
    dump nil
-   description "Crisp/Brief emulation."
-   filename "crisp-1.08-pkg.tar.gz"
-   md5sum "2c18df3dd1eb14e01768832b2b208af4"
-   size 10077
-   provides (crisp scroll-lock)
-   requires ()
+   description "Support for messaging encryption with PGP."
+   filename "mailcrypt-1.07-pkg.tar.gz"
+   md5sum "350dccab50ef0800b95d44ef62cca359"
+   size 86362
+   provides (mailcrypt)
+   requires (gnus vm mail-lib xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(auctex
+(supercite
   (standards-version 1.0
   (standards-version 1.0
-   version "1.15"
-   author-version "9.7p"
-   date "1998-09-30"
-   build-date "1998-10-15"
+   version "1.12"
+   author-version "3.55x3"
+   date "1999-04-06"
+   build-date "1999-05-13"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
-   priority medium
-   category "wp"
+   priority low
+   category "comm"
    dump nil
    dump nil
-   description "Basic TeX/LaTeX support."
-   filename "auctex-1.15-pkg.tar.gz"
-   md5sum "491d156e8e1f91b6b1604eccdfddace3"
-   size 365003
-   provides (auc-old bib-cite font-latex latex multi-prompt tex-buf tex-info tex-jp tex-site tex)
-   requires (xemacs-base)
+   description "An Emacs citation tool for News & Mail messages."
+   filename "supercite-1.12-pkg.tar.gz"
+   md5sum "7188738f17ec05c1561fe054fdf120dd"
+   size 99564
+   provides (supercite)
+   requires (mail-lib xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(view-process
+(mh-e
   (standards-version 1.0
   (standards-version 1.0
-   version "1.05"
-   author-version "2.4"
-   date "1998-01-24"
-   build-date "1998-10-12"
+   version "1.09"
+   author-version "21.0b62"
+   date "1998-07-12"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution stable
+   distribution contrib
    priority low
    priority low
-   category "os"
+   category "comm"
    dump nil
    dump nil
-   description "A Unix process browsing tool."
-   filename "view-process-1.05-pkg.tar.gz"
-   md5sum "ec1ba005feb4ea54a832c9d07414de11"
-   size 59881
-   provides (view-process-mode)
-   requires (xemacs-base)
+   description "Front end support for MH."
+   filename "mh-e-1.09-pkg.tar.gz"
+   md5sum "89e6f44e8dca03f6be10068391831262"
+   size 176469
+   provides (mh-e)
+   requires (mail-lib xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(os-utils
+(gnats
   (standards-version 1.0
   (standards-version 1.0
-   version "1.12"
-   author-version "21.0"
-   date "1998-10-01"
-   build-date "1998-10-12"
+   version "1.08"
+   author-version "3.101"
+   date "1998-08-01"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
-   priority medium
-   category "os"
+   priority high
+   category "comm"
    dump nil
    dump nil
-   description "Miscellaneous O/S utilities."
-   filename "os-utils-1.12-pkg.tar.gz"
-   md5sum "603eb56b2af67de1663c9a3fa700b2ae"
-   size 227137
-   provides (archive-mode background crypt crypt++ inf-lisp jka-compr lpr mchat ps-print tar-mode telnet terminal uncompress)
-   requires (xemacs-base)
-   type single
+   description "XEmacs bug reports."
+   filename "gnats-1.08-pkg.tar.gz"
+   md5sum "8c1e3100399aac86c63683b1836d4a61"
+   size 189265
+   provides (gnats gnats-admin send-pr)
+   requires (mail-lib xemacs-base)
+   type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(ilisp
+(footnote
   (standards-version 1.0
   (standards-version 1.0
-   version "1.06"
-   author-version "5.8"
-   date "1998-01-24"
-   build-date "1998-10-12"
-   maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
+   version "1.10"
+   author-version "0.18x"
+   date "1999-03-11"
+   build-date "1999-05-13"
+   maintainer "SL Baur <steve@xemacs.org>"
    distribution stable
    priority low
    distribution stable
    priority low
-   category "os"
-   dump nil
-   description "Front-end for Inferior Lisp."
-   filename "ilisp-1.06-pkg.tar.gz"
-   md5sum "89c81fd6dac09a58d09e46ee10db4484"
-   size 262258
-   provides (ilisp completer)
-   requires (xemacs-base)
+   category "comm"
+   dump nil
+   description "Footnoting in mail message editing modes."
+   filename "footnote-1.10-pkg.tar.gz"
+   md5sum "124d7e58ba9905db7488ee142470249f"
+   size 18356
+   provides (footnote)
+   requires (mail-lib xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(igrep
+(eudc
   (standards-version 1.0
   (standards-version 1.0
-   version "1.04"
-   author-version "2.83"
-   date "1998-08-11"
-   build-date "1998-10-12"
-   maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
+   version "1.28"
+   author-version "1.28"
+   date "1999-02-13"
+   build-date "1999-03-01"
+   maintainer "Oscar Figueiredo <Oscar.Figueiredo@epfl.ch>"
    distribution stable
    priority low
    distribution stable
    priority low
-   category "os"
+   category "comm"
    dump nil
    dump nil
-   description "Enhanced front-end for Grep."
-   filename "igrep-1.04-pkg.tar.gz"
-   md5sum "8621b52d6316c14821334191477a8ba7"
-   size 14904
-   provides (igrep)
-   requires (dired xemacs-base)
+   description "Emacs Unified Directory Client (LDAP, PH)."
+   filename "eudc-1.28-pkg.tar.gz"
+   md5sum "e88e7ed791d16105824812edcd743bc6"
+   size 62476
+   provides (eudc eudc-ldap eudc-ph)
+   requires (fsf-compat xemacs-base bbdb)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(eterm
+(net-utils
   (standards-version 1.0
   (standards-version 1.0
-   version "1.07"
-   author-version "21.0"
-   date "1998-06-28"
-   build-date "1998-10-12"
+   version "1.11"
+   author-version "21.0b62"
+   date "1998-07-01"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
-   priority medium
-   category "os"
+   priority low
+   category "comm"
    dump nil
    dump nil
-   description "Terminal emulation."
-   filename "eterm-1.07-pkg.tar.gz"
-   md5sum "f25bfd3c591f9ca5be6f3705ea2681a3"
-   size 108929
-   provides (eterm)
-   requires (xemacs-base)
-   type regular
+   description "Miscellaneous Networking Utilities."
+   filename "net-utils-1.11-pkg.tar.gz"
+   md5sum "f9d52e6e6b4f53ccf5cdd3521403e276"
+   size 107193
+   provides (ilisp-browse-cltl2 emacsbug feedmail metamail net-utils rcompile shadowfile webjump webster-www)
+   requires (w3 efs mail-lib xemacs-base)
+   type single
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(misc-games
+(w3
   (standards-version 1.0
   (standards-version 1.0
-   version "1.08"
-   author-version "21.0"
-   date "1998-03-22"
-   build-date "1998-10-11"
+   version "1.13"
+   author-version "4.0pre39x1"
+   date "1999-03-02"
+   build-date "1999-03-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution stable
-   priority low
-   category "games"
+   distribution experimental
+   priority high
+   category "comm"
    dump nil
    dump nil
-   description "Other amusements and diversions."
-   filename "misc-games-1.08-pkg.tar.gz"
-   md5sum "ca010a30375137a14b3c37989ad61c48"
-   size 165701
-   provides (decipher gomoku hanoi life morse rot13)
-   requires (xemacs-base)
-   type single
+   description "A Web browser."
+   filename "w3-1.13-pkg.tar.gz"
+   md5sum "8e9f70ef2c4b43090cfbf86974517c66"
+   size 682040
+   provides (w3 url)
+   requires (w3 mail-lib xemacs-base)
+   type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(mine
+(vm
   (standards-version 1.0
   (standards-version 1.0
-   version "1.09"
-   author-version "1.9"
-   date "1998-05-09"
-   build-date "1998-10-11"
+   version "1.20"
+   author-version "6.71"
+   date "1999-05-13"
+   build-date "1999-05-13"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
-   priority low
-   category "games"
+   priority medium
+   category "comm"
    dump nil
    dump nil
-   description "Minehunt Game."
-   filename "mine-1.09-pkg.tar.gz"
-   md5sum "044c1e48ffca88adf46e0df91d456a49"
-   size 66794
-   provides (xmine)
-   requires (xemacs-base)
+   description "An Emacs mailer."
+   filename "vm-1.20-pkg.tar.gz"
+   md5sum "120d25d3541fc7ef4bb34659a4aba89c"
+   size 614987
+   provides (vm)
+   requires (mail-lib xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(games
+(sounds-wav
   (standards-version 1.0
    version "1.07"
   (standards-version 1.0
    version "1.07"
-   author-version "1.04"
-   date "1998-06-04"
-   build-date "1998-10-11"
-   maintainer "Glynn Clements <glynn@sensei.co.uk>"
+   author-version "21.0b64"
+   date "1999-02-02"
+   build-date "1999-03-05"
+   maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    distribution stable
-   priority low
-   category "games"
+   priority high
+   category "libs"
    dump nil
    dump nil
-   description "Tetris, Sokoban, and Snake."
-   filename "games-1.07-pkg.tar.gz"
-   md5sum "ac3fa3b5de00f0daa50c1f372e5b86e0"
-   size 32101
-   provides (gamegrid snake tetris sokoban)
-   requires (xemacs-base)
+   description "XEmacs Microsoft sound files."
+   filename "sounds-wav-1.07-pkg.tar.gz"
+   md5sum "60a70b85e8711fb1c9a1c7d0f4bf8ee0"
+   size 149045
+   provides ()
+   requires ()
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(cookie
+(sounds-au
   (standards-version 1.0
   (standards-version 1.0
-   version "1.09"
-   author-version "21.0"
-   date "1998-04-07"
-   build-date "1998-10-11"
+   version "1.07"
+   author-version "21.0b64"
+   date "1999-02-02"
+   build-date "1999-03-05"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
-   priority low
-   category "games"
+   priority high
+   category "libs"
    dump nil
    dump nil
-   description "Spook and Yow (Zippy quotes)."
-   filename "cookie-1.09-pkg.tar.gz"
-   md5sum "c0618f8a6db3951c081f053233fb75b5"
-   size 34228
-   provides (cookie1 yow)
-   requires (xemacs-base)
+   description "XEmacs Sun sound files."
+   filename "sounds-au-1.07-pkg.tar.gz"
+   md5sum "4b5acd296b50102e50565650d9d7ec0b"
+   size 126184
+   provides ()
+   requires ()
    type regular
 ))
 ))
    type regular
 ))
 ))
 (package-get-update-base-entry (quote
 (xemacs-devel
   (standards-version 1.0
 (package-get-update-base-entry (quote
 (xemacs-devel
   (standards-version 1.0
-   version "1.19"
-   author-version "21.0"
-   date "1998-09-18"
-   build-date "1998-10-11"
+   version "1.21"
+   author-version "21.0b62"
+   date "1998-10-20"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority medium
    category "libs"
    dump nil
    description "Emacs Lisp developer support."
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    priority medium
    category "libs"
    dump nil
    description "Emacs Lisp developer support."
-   filename "xemacs-devel-1.19-pkg.tar.gz"
-   md5sum "1a9a1d467ae39ce1e93f5fd238112b3e"
-   size 83669
+   filename "xemacs-devel-1.21-pkg.tar.gz"
+   md5sum "aa472f2d412382c2fdd3150105ca7d1c"
+   size 83543
    provides (docref eldoc elp find-func hide-copyleft ielm regexp-opt trace)
    requires (xemacs-base)
    type single
    provides (docref eldoc elp find-func hide-copyleft ielm regexp-opt trace)
    requires (xemacs-base)
    type single
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(xemacs-base
+(tooltalk
   (standards-version 1.0
   (standards-version 1.0
-   version "1.27"
-   author-version "21.0"
-   date "1998-10-08"
-   build-date "1998-10-11"
+   version "1.09"
+   author-version "21.0b62"
+   date "1998-07-25"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution mule
-   priority high
+   distribution contrib
+   priority low
    category "libs"
    dump nil
    category "libs"
    dump nil
-   description "Fundamental XEmacs support, you almost certainly need this."
-   filename "xemacs-base-1.27-pkg.tar.gz"
-   md5sum "bbede4998cdf5af078c0e41d7b9af7c8"
-   size 429962
-   provides (add-log advice annotations assoc case-table chistory comint-xemacs comint compile debug ebuff-menu echistory edmacro ehelp electric enriched env facemenu ffap helper imenu iso-syntax macros novice outline overlay passwd pp regi ring shell skeleton sort thing time-stamp timezone xbm-button xpm-button)
+   description "Support for building with Tooltalk."
+   filename "tooltalk-1.09-pkg.tar.gz"
+   md5sum "368d6407bf82711bee9a01fa6908b576"
+   size 9271
+   provides ()
    requires ()
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    requires ()
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(tooltalk
+(elib
   (standards-version 1.0
   (standards-version 1.0
-   version "1.08"
-   author-version "21.0"
-   date "1998-07-25"
-   build-date "1998-10-11"
+   version "1.04"
+   author-version "1.0"
+   date "1998-10-01"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution contrib
-   priority low
+   distribution mule
+   priority high
    category "libs"
    dump nil
    category "libs"
    dump nil
-   description "Support for building with Tooltalk."
-   filename "tooltalk-1.08-pkg.tar.gz"
-   md5sum "9b4d7a73f9bd50273a011b1ed6522535"
-   size 9293
-   provides ()
+   description "Portable Emacs Lisp utilities library."
+   filename "elib-1.04-pkg.tar.gz"
+   md5sum "d17596beb9b03292e322f8460c36eb81"
+   size 72834
+   provides (avltree bintree cookie dll elib-node queue-f queue-m read stack-f stack-m string)
    requires ()
    requires ()
-   type regular
+   type single
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(mail-lib
+(edebug
   (standards-version 1.0
   (standards-version 1.0
-   version "1.18"
-   author-version "21.0"
-   date "1998-06-08"
-   build-date "1998-10-11"
+   version "1.07"
+   author-version "21.0b62"
+   date "1998-03-12"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution stable
-   priority medium
+   priority low
    category "libs"
    dump nil
    category "libs"
    dump nil
-   description "Fundamental lisp files for providing email support."
-   filename "mail-lib-1.18-pkg.tar.gz"
-   md5sum "25896164b50a8c09a45fdf74342c48ea"
-   size 120245
-   provides (browse-url highlight-headers mail-abbrevs mail-extr mail-utils reporter rfc822 rmail-mini rmailout sendmail smtpmail)
+   description "An Emacs Lisp debugger."
+   filename "edebug-1.07-pkg.tar.gz"
+   md5sum "62d3e581feac2c3a73917ad0d81151b0"
+   size 112408
+   provides (edebug cl-read cust-print eval-reg cl-specs)
    requires (xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    requires (xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(fsf-compat
+(Sun
   (standards-version 1.0
   (standards-version 1.0
-   version "1.04"
-   author-version "21.0"
-   date "1998-09-12"
-   build-date "1998-10-11"
+   version "1.10"
+   author-version "21.0b62"
+   date "1998-07-25"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution mule
-   priority high
+   distribution sun
+   priority low
    category "libs"
    dump nil
    category "libs"
    dump nil
-   description "FSF Emacs compatibility files."
-   filename "fsf-compat-1.04-pkg.tar.gz"
-   md5sum "629a4f399a410e88841db23014d00300"
-   size 17419
-   provides (overlay thingatpt timer x-popup-menu)
-   requires ()
-   type single
+   description "Support for Sparcworks."
+   filename "Sun-1.10-pkg.tar.gz"
+   md5sum "54cce5cbb182d99de5562a586714e50c"
+   size 63693
+   provides (sccs eos-browser eos-common eos-debugger eos-debugger eos-editor eos-init eos-load eos-menubar eos-toolbar sunpro)
+   requires (cc-mode xemacs-base)
+   type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(elib
+(apel
   (standards-version 1.0
   (standards-version 1.0
-   version "1.03"
-   author-version "1.0"
-   date "1998-10-01"
-   build-date "1998-10-11"
+   version "1.11"
+   author-version "9.18"
+   date "1999-05-08"
+   build-date "1999-05-13"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution mule
    priority high
    category "libs"
    dump nil
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    distribution mule
    priority high
    category "libs"
    dump nil
-   description "Portable Emacs Lisp utilities library."
-   filename "elib-1.03-pkg.tar.gz"
-   md5sum "f65ecef3ac286ee59e102f5fc5ad62cc"
-   size 72830
-   provides (avltree bintree cookie dll elib-node queue-f queue-m read stack-f stack-m string)
-   requires ()
-   type single
+   description "A Portable Emacs Library.  Used by XEmacs MIME support."
+   filename "apel-1.11-pkg.tar.gz"
+   md5sum "4c53047e1f0964b24626c29ee40a04c5"
+   size 73997
+   provides (atype emu-20 emu-e19 emu-x20 emu-xemacs emu file-detect filename install mule-caesar path-util richtext std11-parse std11 tinyrich)
+   requires (fsf-compat xemacs-base)
+   type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
 (efs
   (standards-version 1.0
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
 (efs
   (standards-version 1.0
-   version "1.11"
-   author-version "1.17"
-   date "1998-08-23"
-   build-date "1998-10-11"
+   version "1.14"
+   author-version "1.18"
+   date "1999-01-03"
+   build-date "1999-02-02"
    maintainer "Mike Sperber <sperber@informatik.uni-tuebingen.de>"
    distribution stable
    priority medium
    category "libs"
    dump nil
    description "Treat files on remote systems the same as local files."
    maintainer "Mike Sperber <sperber@informatik.uni-tuebingen.de>"
    distribution stable
    priority medium
    category "libs"
    dump nil
    description "Treat files on remote systems the same as local files."
-   filename "efs-1.11-pkg.tar.gz"
-   md5sum "88a538a5016ae53380dba011db80887a"
-   size 368997
+   filename "efs-1.14-pkg.tar.gz"
+   md5sum "2b4128fec0dcb31834f404ef962f10ab"
+   size 369742
    provides (efs)
    requires (xemacs-base vm dired)
    type regular
    provides (efs)
    requires (xemacs-base vm dired)
    type regular
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(edebug
-  (standards-version 1.0
-   version "1.06"
-   author-version "21.0"
-   date "1998-03-12"
-   build-date "1998-10-11"
-   maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution stable
-   priority low
-   category "libs"
-   dump nil
-   description "An Emacs Lisp debugger."
-   filename "edebug-1.06-pkg.tar.gz"
-   md5sum "a897be415a8b68c1f79a3632374c9174"
-   size 112385
-   provides (edebug cl-read cust-print eval-reg cl-specs)
-   requires (xemacs-base)
-   type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
 (dired
   (standards-version 1.0
 (dired
   (standards-version 1.0
-   version "1.03"
+   version "1.05"
    author-version "7.9"
    author-version "7.9"
-   date "1998-05-05"
-   build-date "1998-10-11"
+   date "1998-12-09"
+   build-date "1999-02-02"
    maintainer "Mike Sperber <sperber@informatik.uni-tuebingen.de>"
    distribution stable
    priority medium
    category "libs"
    dump nil
    description "Manage file systems."
    maintainer "Mike Sperber <sperber@informatik.uni-tuebingen.de>"
    distribution stable
    priority medium
    category "libs"
    dump nil
    description "Manage file systems."
-   filename "dired-1.03-pkg.tar.gz"
-   md5sum "30e621efdf8b83e72ad3b68f4e795069"
-   size 187593
+   filename "dired-1.05-pkg.tar.gz"
+   md5sum "392440b1472a2415b0b9b6779df93619"
+   size 187654
    provides (diff dired)
    requires (xemacs-base)
    type regular
    provides (diff dired)
    requires (xemacs-base)
    type regular
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(apel
-  (standards-version 1.0
-   version "1.07"
-   author-version "3.3"
-   date "1998-07-23"
-   build-date "1998-10-11"
-   maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution mule
-   priority high
-   category "libs"
-   dump nil
-   description "A Portable Emacs Library.  Used by XEmacs MIME support."
-   filename "apel-1.07-pkg.tar.gz"
-   md5sum "a650a5235403b0a1b46b3269634498e3"
-   size 34784
-   provides (atype emu-20 emu-e19 emu-x20 emu-xemacs emu file-detect filename install mule-caesar path-util richtext std11-parse std11 tinyrich)
-   requires (fsf-compat xemacs-base)
-   type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(Sun
+(mail-lib
   (standards-version 1.0
   (standards-version 1.0
-   version "1.09"
+   version "1.23"
    author-version "21.0"
    author-version "21.0"
-   date "1998-07-25"
-   build-date "1998-10-11"
+   date "1999-04-13"
+   build-date "1999-05-13"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution sun
-   priority low
+   distribution stable
+   priority medium
    category "libs"
    dump nil
    category "libs"
    dump nil
-   description "Support for Sparcworks."
-   filename "Sun-1.09-pkg.tar.gz"
-   md5sum "dc41d791f7c66dc13e8d0d206689188b"
-   size 63916
-   provides (sccs eos-browser eos-common eos-debugger eos-debugger eos-editor eos-init eos-load eos-menubar eos-toolbar sunpro)
-   requires (cc-mode xemacs-base)
+   description "Fundamental lisp files for providing email support."
+   filename "mail-lib-1.23-pkg.tar.gz"
+   md5sum "4293acbed286a63581f55b7a16e4a489"
+   size 131968
+   provides (browse-url highlight-headers mail-abbrevs mail-extr mail-utils reporter rfc822 rmail-mini rmailout sendmail smtpmail)
+   requires (xemacs-base)
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
    type regular
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(sounds-au
+(fsf-compat
   (standards-version 1.0
    version "1.05"
   (standards-version 1.0
    version "1.05"
-   author-version "21.0"
-   date "1998-06-30"
-   build-date "1998-10-11"
+   author-version "21.0b62"
+   date "1998-09-12"
+   build-date "1999-02-02"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution stable
+   distribution mule
    priority high
    category "libs"
    dump nil
    priority high
    category "libs"
    dump nil
-   description "XEmacs Sun sound files."
-   filename "sounds-au-1.05-pkg.tar.gz"
-   md5sum "5e44ddd6754771e35303bf4e71c17a17"
-   size 125753
-   provides ()
+   description "FSF Emacs compatibility files."
+   filename "fsf-compat-1.05-pkg.tar.gz"
+   md5sum "64cb1984a71974f3f40c0be1a971f441"
+   size 17347
+   provides (overlay thingatpt timer x-popup-menu)
    requires ()
    requires ()
-   type regular
+   type single
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
 ))
 ))
 ;;;@@@
 (package-get-update-base-entry (quote
-(sounds-wav
+(xemacs-base
   (standards-version 1.0
   (standards-version 1.0
-   version "1.05"
+   version "1.30"
    author-version "21.0"
    author-version "21.0"
-   date "1998-06-30"
-   build-date "1998-10-11"
+   date "1998-11-30"
+   build-date "1999-05-13"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
    maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
-   distribution stable
+   distribution mule
    priority high
    category "libs"
    dump nil
    priority high
    category "libs"
    dump nil
-   description "XEmacs Microsoft sound files."
-   filename "sounds-wav-1.05-pkg.tar.gz"
-   md5sum "e110bc6096bcd24181b45c1b7f83eb59"
-   size 148564
-   provides ()
+   description "Fundamental XEmacs support, you almost certainly need this."
+   filename "xemacs-base-1.30-pkg.tar.gz"
+   md5sum "d9e95850fe8e13a04166d59d62fb38ab"
+   size 430640
+   provides (add-log advice annotations assoc case-table chistory comint-xemacs comint compile debug ebuff-menu echistory edmacro ehelp electric enriched env facemenu ffap helper imenu iso-syntax macros novice outline overlay passwd pp regi ring shell skeleton sort thing time-stamp timezone xbm-button xpm-button)
    requires ()
    type regular
 ))
 ))
 ;;;@@@
 ;; Package Index file ends here
    requires ()
    type regular
 ))
 ))
 ;;;@@@
 ;; Package Index file ends here
-
------BEGIN PGP SIGNATURE-----
-Version: 2.6.2
-
-iQCVAwUBNibr5aLJZEUiepcNAQHmWQP+PDjjOvmsdhu6RGXIFCUPV4ado8IWD8i8
-/aEwLHJRdoQWEg0ZuiNgmtF2iNPrNIOkSs9hF+sOF4xoszhxaytfFG7DEA5Q8Alb
-jKooHKEUEF7W0wAxihyGojz3VuH5i7GKAtOcVqFtgWS3eAkNaN4QWlmhxavh0Cdv
-p7wnfYTZYSs=
-=65go
------END PGP SIGNATURE-----
diff --git a/etc/photos/wing.png b/etc/photos/wing.png
new file mode 100644 (file)
index 0000000..c56c44b
Binary files /dev/null and b/etc/photos/wing.png differ
diff --git a/etc/photos/wingm.png b/etc/photos/wingm.png
new file mode 100644 (file)
index 0000000..2ff40b4
Binary files /dev/null and b/etc/photos/wingm.png differ
index 6f16863..c5017e5 100644 (file)
@@ -5,12 +5,9 @@ static char *recycle[] = {
 "    51    51     4       1               26    23",
 /*  colors */
 "  c None              m None",
 "    51    51     4       1               26    23",
 /*  colors */
 "  c None              m None",
-/* "# c black          m black",       */
-/* "@ c black          m black",       */
-/* "- c white          m white",       */
-"# c black             m chartreuse4",
-"@ c chartreuse4       m chartreuse4",
-"- c chartreuse1       m chartreuse1",
+"# c black             m black",
+"- c chartreuse1       m #7fff0f",
+"@ c chartreuse4       m #4f8f0f",
 /*  pixels */
 "                                                   ",
 "                 ###################               ",
 /*  pixels */
 "                                                   ",
 "                 ###################               ",
index 9e14814..3124457 100644 (file)
        (setq ispell-extra-args '("-W" "3"))
 
        (cond ((or (not (fboundp 'device-type))
        (setq ispell-extra-args '("-W" "3"))
 
        (cond ((or (not (fboundp 'device-type))
-                 (equal (device-type) 'x))
-             ;; Code which applies only when running emacs under X goes here.
-             ;; (We check whether the function `device-type' exists
-             ;; before using it.  In versions before 19.12, there
-             ;; was no such function.  If it doesn't exist, we
-             ;; simply assume we're running under X -- versions before
-             ;; 19.12 only supported X.)
+                 (equal (device-type) 'x)
+                 (equal (device-type) 'mswindows))
+             ;; Code which applies only when running emacs under X or
+             ;; MicroSoft Windows goes here.  (We check whether the
+             ;; function `device-type' exists before using it.  In
+             ;; versions before 19.12, there was no such function.
+             ;; If it doesn't exist, we simply assume we're running
+             ;; under X -- versions before 19.12 only supported X.)
 
              ;; Remove the binding of C-x C-c, which normally exits emacs.
              ;; It's easy to hit this by mistake, and that can be annoying.
 
              ;; Remove the binding of C-x C-c, which normally exits emacs.
              ;; It's easy to hit this by mistake, and that can be annoying.
              ;; standard beep only works with some X servers; many servers
              ;; completely ignore those parameters.)
              ;;
              ;; standard beep only works with some X servers; many servers
              ;; completely ignore those parameters.)
              ;;
-             (cond ((string-match ":0" (getenv "DISPLAY"))
+             (cond ((or (and (getenv "DISPLAY") 
+                             (string-match ":0" (getenv "DISPLAY")))
+                        (and (eq (console-type) 'mswindows)
+                             (device-sound-enabled-p)))
                     (load-default-sounds))
                    (t
                     (setq bell-volume 40)
                     (load-default-sounds))
                    (t
                     (setq bell-volume 40)
              (set-glyph-image modeline-pointer-glyph "leftbutton")
 
              ;; Change the continuation glyph face so it stands out more
              (set-glyph-image modeline-pointer-glyph "leftbutton")
 
              ;; Change the continuation glyph face so it stands out more
-             (and (fboundp 'set-glyph-property)
+             (and (fboundp 'make-face-bold)
                   (boundp 'continuation-glyph)
                   (boundp 'continuation-glyph)
-                  (set-glyph-property continuation-glyph 'face 'bold))
+                  (make-face-bold (glyph-face continuation-glyph)))
 
              ;; Change the pointer used during garbage collection.
              ;;
 
              ;; Change the pointer used during garbage collection.
              ;;
index c07a7af..e86dce2 100644 (file)
@@ -126,7 +126,7 @@ and
 .B \-eval
 options to specify files to execute and functions to call.
 .TP
 .B \-eval
 options to specify files to execute and functions to call.
 .TP
-.B \-nw\
+.B \-nw
 Inhibit the use of any window-system-specific display code: use the
 current TTY.
 .TP
 Inhibit the use of any window-system-specific display code: use the
 current TTY.
 .TP
@@ -211,6 +211,22 @@ so that you can continue using your original window.
 .I XEmacs
 can be started with the following standard X options:
 .TP
 .I XEmacs
 can be started with the following standard X options:
 .TP
+.BI \-visual " <visualname><bitdepth>"
+Select the visual that XEmacs will attempt to use.
+.I <visualname>
+should be one of the strings "StaticColor", "TrueColor", "GrayScale",
+"PseudoColor" or "DirectColor", and
+.I <bitdepth>
+should be the number of bits per pixel (example, "-visual TrueColor24"
+for a 24bit TrueColor visual) See
+.IR X (1)
+for more information.
+.TP
+.B -privateColormap
+Require XEmacs to create and use a private colormap for display.  This will keep
+XEmacs from taking colors from the default colormap and keeping them from other
+clients.
+.TP
 .BI \-geometry " ##x##+##+##"
 Specify the geometry of the initial window.  The ##'s represent a number;
 the four numbers are width (characters), height (characters), X offset
 .BI \-geometry " ##x##+##+##"
 Specify the geometry of the initial window.  The ##'s represent a number;
 the four numbers are width (characters), height (characters), X offset
@@ -440,6 +456,16 @@ Sets the color of the window's text cursor.
 .B pointerColor (\fPclass\fB Foreground)
 Sets the color of the window's mouse cursor.
 .TP
 .B pointerColor (\fPclass\fB Foreground)
 Sets the color of the window's mouse cursor.
 .TP
+.B emacsVisual (\fPclass\fB EmacsVisual)
+Sets the default visual
+.I XEmacs
+will try to use (as described above).
+.TP
+.B privateColormap (\fPclass\fB PrivateColormap)
+If set, 
+.I XEmacs
+will default to using a private colormap.
+.TP
 .B geometry (\fPclass\fB Geometry)
 Sets the geometry of the
 .I XEmacs
 .B geometry (\fPclass\fB Geometry)
 Sets the geometry of the
 .I XEmacs
diff --git a/lib-src/.cvsignore b/lib-src/.cvsignore
new file mode 100644 (file)
index 0000000..8be3c26
--- /dev/null
@@ -0,0 +1,25 @@
+Makefile.in
+config.values
+ellcc.h
+make-path
+wakeup
+Makefile
+GNUmakefile
+profile
+make-docfile
+digest-doc
+sorted-doc
+movemail
+cvtmail
+fakemail
+yow
+hexl
+gnuserv
+mmencode
+etags
+ctags
+b2m
+gnuclient
+ootags
+ellcc
+DOC
index 738fa34..d90785d 100644 (file)
@@ -1,3 +1,197 @@
+1999-05-14  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+       * XEmacs 21.2.14 is released
+
+1999-05-14  SL Baur  <steve@gneiss.etl.go.jp>
+
+       * update-elc.sh (ignore_pattern): Correct ignore_dirs/ignore=dirs
+       european keyboard fuckage.
+
+1999-05-03  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * update-elc.sh (ignore_pattern): Installation.el is dead.
+
+1999-05-03  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * gnuclient.c: Include <sysfile.h> instead of <../src/sysfile.h>.
+
+       * Makefile.in.in (cppflags): Add -I$(top_srcdir)/src.
+
+1999-04-29  Andy Piper  <andy@xemacs.org>
+       
+       * make-docfile.c: build fixes for mingw32.      
+       * movemail.c: ditto.
+       * run.c: ditto.
+       * yow.c: ditto.
+       * profile.c: ditto.
+       (gettimeofday): new function copied from nt.c.
+       
+       * fakemail.c (make_file_preface): make buildable under windows.
+
+       * Makefile.in.in: fix some build targets for when we are building
+       on a windows platform.
+
+1999-03-12  giacomo boffi  <giacomo.boffi@polimi.it>
+
+       * sorted-doc.c: corrected the outdated or plainly wrong
+       texinfo headers. Broken up the mega-@table that crashes (at
+       least RedHat's) TeX with:
+        "! TeX capacity exceeded, sorry [save size=4000]."
+
+1999-03-12  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+       * XEmacs 21.2.13 is released
+
+1999-03-10  Martin Buchholz  <martin@xemacs.org>
+
+       * fakemail.c (add_a_stream): Always use full ANSI prototypes.
+
+1999-03-06  Martin Buchholz  <martin@xemacs.org>
+
+       * fakemail.c (main): Ansify.
+       (xmalloc): Ansify.
+       (xrealloc): Ansify.
+       (get_keyword): use paranoid casts ((int) (unsigned char) c) for
+       islower, toupper, isspace.
+
+1999-03-05  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+       * XEmacs 21.2.12 is released
+
+1999-03-01  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+       * XEmacs 21.2.11 is released
+
+1999-02-17  SL Baur  <steve@xemacs.org>
+
+       * update-elc.sh (ignore_dirs): Ignore lisp/mule subdirectory when
+       running latin-1 XEmacs.  Eliminate 20.4 bundled kludges.
+       * update-custom.sh (ignore_dirs): Ditto.
+
+1999-02-15  Martin Buchholz  <martin@xemacs.org>
+
+       * update-elc.sh:
+       * update-autoloads.sh:
+       * update-custom.sh:
+       - improved automounter tmp directory support.
+       - support 4 (!) empirically discovered automounter conventions
+
+1999-02-05  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+       * XEmacs 21.2.10 is released
+
+1999-02-02  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+       * XEmacs 21.2.9 is released
+
+1999-01-27  Martin Buchholz  <martin@xemacs.org>
+
+       * movemail.c (strerror): Must be NON-static, since it is used by
+       the POP code, which got moved to a separate file.
+
+1999-01-11  Damon Lipparelli  <lipp@primus.com>
+
+       * Makefile.in.in: use ellcc (not ellc) everywhere
+
+1999-01-10  J. Kean Johnston  <jkj@sco.com>
+
+       * Makefile.in.in: Include moduledir and sitemoduledir as defined
+       by configure.
+       - Install ellcc if we're supporting shared objects
+       - Rules and dependancies for ellcc
+
+       * ellcc.c: New file. Front end to the compiler for making modules.
+
+       * ellcc.h.in: New file. Contains path definitions used by ellcc.
+
+       * make-docfile.c (main): Add check for -E argument used by ellcc.
+
+       * make-docfile.c: Changed output format when in -E mode.
+
+1998-12-28  Martin Buchholz <martin@xemacs.org>
+
+       * XEmacs 21.2.8 is released.
+
+1998-12-24  Martin Buchholz <martin@xemacs.org>
+
+       * XEmacs 21.2.7 is released.
+
+1998-12-17  Andy Piper  <andy@xemacs.org>
+
+       * pop.c (pop_open): disable use of getpass() which doesn't exist under NT.
+
+       * movemail.c: mess with includes so that it builds under native NT.
+
+       * pop.c: mess with includes so that it builds under native NT.
+       From Fabrice Popineau <popineau@ese-metz.fr>
+       
+1998-12-16  Andy Piper  <andy@xemacs.org>
+
+       * XEmacs 21.2.6 is released
+
+1998-12-05  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+       * XEmacs 21.2.5 is released
+
+1998-11-28  SL Baur  <steve@altair.xemacs.org>
+
+       * XEmacs 21.2-beta4 is released.
+
+1998-10-14  Andy Piper  <andyp@parallax.co.uk>
+
+       * Makefile.in.in (movemail): add getopt.o to objects to link with.
+
+       * movemail.c (main): rewrite to use getopt(). Add options for
+       order reversal, progress output, regexp matching and message
+       deletion.
+       (popmail): add some optional verbose messages. Use pop_search_top
+       for getting messages. Make message deletion optional. Delete all
+       messages at the end rather than on a message my message basis.
+       (pop_search_top): new function. Looks for messages matching regexp.
+       (compile_regex): new function stolen from etags.
+
+1998-10-15  SL Baur  <steve@altair.xemacs.org>
+
+       * XEmacs 21.2-beta3 is released.
+
+1998-10-12  SL Baur  <steve@altair.xemacs.org>
+
+       * lib-src/gnudepend.pl: Use /usr/bin/perl.
+       * Makefile.in.in (INSTALLABLE_SCRIPTS): Remove send-pr, install-sid.
+       (GEN_SCRIPTS): Ditto.
+       Delete TM_SCRIPTS.
+
+1998-10-11  SL Baur  <steve@altair.xemacs.org>
+
+       * tm-au:
+       * tm-file:
+       * tm-html:
+       * tm-image:
+       * tm-mpeg:
+       * tm-plain:
+       * tm-ps:
+       * tmdecode: packaged.
+
+1998-10-10  SL Baur  <steve@altair.xemacs.org>
+
+       * install-sid:
+       * send-pr:  Packaged
+
+1998-10-01  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * gnuclient.c (filename_expand): Don't forget to copy the
+       filename under UNIX.
+
+1998-09-29  SL Baur  <steve@altair.xemacs.org>
+
+       * XEmacs 21.2-beta2 is released.
+
+1998-09-08  Raymond Toy  <toy@rtp.ericsson.se>
+
+       * gnuclient.c (filename_expand): Added better recognition of
+       absolute pathnames for CYGWIN.  Convert absolute pathnames with
+       drive letters to something xemacs can handle.
+
 1998-07-19  SL Baur  <steve@altair.xemacs.org>
 
        * XEmacs 21.2-beta1 is released.
 1998-07-19  SL Baur  <steve@altair.xemacs.org>
 
        * XEmacs 21.2-beta1 is released.
index d7e6831..9a4552f 100644 (file)
@@ -53,8 +53,12 @@ exec_prefix=@exec_prefix@
 bindir=@bindir@
 libdir=@libdir@
 srcdir=@srcdir@
 bindir=@bindir@
 libdir=@libdir@
 srcdir=@srcdir@
+top_srcdir=@top_srcdir@
 archlibdir=@archlibdir@
 configuration=@configuration@
 archlibdir=@archlibdir@
 configuration=@configuration@
+moduledir=@moduledir@
+sitemoduledir=@sitemoduledir@
+
 ## ==================== Utility Programs for the Build =================
 
 INSTALL = @install_pp@ @INSTALL@
 ## ==================== Utility Programs for the Build =================
 
 INSTALL = @install_pp@ @INSTALL@
@@ -69,28 +73,45 @@ INSTALL_DATA = @INSTALL_DATA@
 
 ## Things that a user might actually run,
 ## which should be installed in bindir.
 
 ## Things that a user might actually run,
 ## which should be installed in bindir.
+#ifdef WINDOWSNT
+INSTALLABLES_BASE = etags ctags b2m ootags
+#else
 INSTALLABLES_BASE = etags ctags b2m gnuclient ootags
 INSTALLABLES_BASE = etags ctags b2m gnuclient ootags
-INSTALLABLE_SCRIPTS = rcs-checkin pstogif install-sid send-pr gnudoit gnuattach
+#endif
+INSTALLABLE_SCRIPTS = rcs-checkin pstogif gnudoit gnuattach
+#ifdef HAVE_SHLIB
+#ifdef HAVE_MS_WINDOWS
+INSTALLABLES = $(INSTALLABLES_BASE) runxemacs rungnuclient ellcc
+#else
+INSTALLABLES = $(INSTALLABLES_BASE) ellcc
+#endif
+#else
 #ifdef HAVE_MS_WINDOWS
 #ifdef HAVE_MS_WINDOWS
-INSTALLABLES = $(INSTALLABLES_BASE) runemacs
+INSTALLABLES = $(INSTALLABLES_BASE) runxemacs rungnuclient
 #else
 INSTALLABLES = $(INSTALLABLES_BASE) 
 #endif
 #else
 INSTALLABLES = $(INSTALLABLES_BASE) 
 #endif
+#endif
 
 
 ## Things that Emacs runs internally, or during the build process,
 ## which should not be installed in bindir.
 
 
 ## Things that Emacs runs internally, or during the build process,
 ## which should not be installed in bindir.
+#ifdef WINDOWSNT
+UTILITIES= make-path wakeup profile make-docfile digest-doc \
+       sorted-doc movemail cvtmail yow hexl \
+       mmencode
+#else
 UTILITIES= make-path wakeup profile make-docfile digest-doc \
        sorted-doc movemail cvtmail fakemail yow hexl \
        gnuserv mmencode
 UTILITIES= make-path wakeup profile make-docfile digest-doc \
        sorted-doc movemail cvtmail fakemail yow hexl \
        gnuserv mmencode
+#endif
 ## These need to be conditional on I18N3 make-msgfile make-po
 
 ## Like UTILITIES, but they are not system-dependent, and should not be
 ## deleted by the distclean target.
 ## These need to be conditional on I18N3 make-msgfile make-po
 
 ## Like UTILITIES, but they are not system-dependent, and should not be
 ## deleted by the distclean target.
-GEN_SCRIPTS = rcs2log vcdiff gzip-el.sh install-sid send-pr
-TM_SCRIPTS = tm-au tm-file tm-html tm-image tm-mpeg tm-plain tm-ps tmdecode
+GEN_SCRIPTS = rcs2log vcdiff gzip-el.sh
 PKG_SCRIPTS = add-big-package.sh
 PKG_SCRIPTS = add-big-package.sh
-SCRIPTS = $(GEN_SCRIPTS) $(TM_SCRIPTS) $(PKG_SCRIPTS)
+SCRIPTS = $(GEN_SCRIPTS) $(PKG_SCRIPTS)
 
 EXECUTABLES= ${UTILITIES} ${INSTALLABLES} ${SCRIPTS} ${INSTALLABLE_SCRIPTS}
 
 
 EXECUTABLES= ${UTILITIES} ${INSTALLABLES} ${SCRIPTS} ${INSTALLABLE_SCRIPTS}
 
@@ -139,7 +160,7 @@ ld_libs_general=@ld_libs_general@
 
 ## We need to #define emacs to get the right versions of some files.
 
 
 ## We need to #define emacs to get the right versions of some files.
 
-cppflags = -Demacs -I../src $(CPPFLAGS)
+cppflags = -Demacs -I$(top_srcdir)/src -I../src $(CPPFLAGS)
 cflags   = $(CFLAGS) $(cppflags) $(c_switch_general)
 ldflags  = $(LDFLAGS) $(ld_switch_general) $(ld_libs_general)
 
 cflags   = $(CFLAGS) $(cppflags) $(c_switch_general)
 ldflags  = $(LDFLAGS) $(ld_switch_general) $(ld_libs_general)
 
@@ -230,8 +251,8 @@ mostlyclean:
 clean: mostlyclean
        $(RM) ${INSTALLABLES} ${UTILITIES} *.exe
 distclean: clean
 clean: mostlyclean
        $(RM) ${INSTALLABLES} ${UTILITIES} *.exe
 distclean: clean
-       $(RM) DOC *.tab.c *.tab.h aixcc.c TAGS
-       $(RM) Makefile Makefile.in blessmail config.values
+       $(RM) DOC *.tab.c *.tab.h aixcc.c TAGS ellcc.h
+       $(RM) GNUmakefile Makefile Makefile.in blessmail config.values
 realclean: distclean
 extraclean: distclean
        $(RM) *~ \#*
 realclean: distclean
 extraclean: distclean
        $(RM) *~ \#*
@@ -270,15 +291,30 @@ etags_deps   = ${srcdir}/etags.c $(GETOPTDEPS) regex.o ../src/config.h
 etags: ${etags_deps}
        $(CC) ${etags_args} -o $@
 
 etags: ${etags_deps}
        $(CC) ${etags_args} -o $@
 
-runemacs_args = -I. $(cflags) -I${srcdir} -I${srcdir}/../src \
-       -DVERSION='"${version}"' ${srcdir}/../nt/runemacs.c \
-       $(ldflags) -Wl,--subsystem,windows
-runemacs_deps   = ${srcdir}/../nt/runemacs.c ${srcdir}/../nt/xemacs.ico ../src/config.h
+ellcc_args = -I. $(cflags) -I${srcdir} -I${srcdir}/../src \
+    ${srcdir}/ellcc.c $(ldflags)
+ellcc_deps = ${srcdir}/ellcc.c ellcc.h ../src/config.h
+
+ellcc: ${ellcc_deps}
+       $(CC) ${ellcc_args} -o $@
+
+run_args = -I. $(cflags) -I${srcdir} -I${srcdir}/../src \
+       -DVERSION='"${version}"' ${srcdir}/run.c \
+       $(ldflags) -Wl,--subsystem,windows -e _mainCRTStartup
+run_deps   = ${srcdir}/run.c ${srcdir}/run.h ${srcdir}/run.rc \
+       ${srcdir}/../nt/xemacs.ico ${srcdir}/../nt/file.ico \
+       ${srcdir}/../nt/lisp.ico
+
+run: ${run_deps}
+       windres --include-dir ${srcdir}/../nt -i run.rc -o run_res.o
+       $(CC) run_res.o ${run_args} -o $@
+       strip $@.exe
+
+runxemacs: run
+       cp run.exe $@.exe
 
 
-runemacs: ${runemacs_deps}
-       echo "runemacs ICON DISCARDABLE \"../nt/xemacs.ico\"" \
-       | windres -o runemacs_res.o
-       $(CC) runemacs_res.o ${runemacs_args} -o $@
+rungnuclient: run
+       cp run.exe $@.exe
 
 ootags_args = -I. $(cflags) -I${srcdir} -I${srcdir}/../src \
        -DVERSION='"${version}"' ${srcdir}/ootags.c \
 
 ootags_args = -I. $(cflags) -I${srcdir} -I${srcdir}/../src \
        -DVERSION='"${version}"' ${srcdir}/ootags.c \
@@ -311,8 +347,10 @@ sorted-doc: ${srcdir}/sorted-doc.c
 b2m: ${srcdir}/b2m.c ../src/config.h
        $(CC) $(cflags) ${srcdir}/b2m.c $(ldflags) -o $@
 
 b2m: ${srcdir}/b2m.c ../src/config.h
        $(CC) $(cflags) ${srcdir}/b2m.c $(ldflags) -o $@
 
-movemail: ${srcdir}/movemail.c ${srcdir}/pop.c ${srcdir}/pop.h ../src/config.h
-       $(CC) $(cflags) ${MOVE_FLAGS} ${srcdir}/movemail.c ${srcdir}/pop.c $(ldflags) ${MOVE_LIBS} -o $@
+movemail: ${srcdir}/movemail.c ${srcdir}/pop.c ${srcdir}/pop.h $(GETOPTDEPS) regex.o \
+       ../src/config.h
+       $(CC) $(cflags) ${MOVE_FLAGS} ${srcdir}/movemail.c ${srcdir}/pop.c \
+       $(GETOPTOBJS) regex.o $(ldflags) ${MOVE_LIBS} -o $@
 
 cvtmail: ${srcdir}/cvtmail.c
        $(CC) $(cflags) ${srcdir}/cvtmail.c $(ldflags) -o $@
 
 cvtmail: ${srcdir}/cvtmail.c
        $(CC) $(cflags) ${srcdir}/cvtmail.c $(ldflags) -o $@
diff --git a/lib-src/aixcc.lex b/lib-src/aixcc.lex
new file mode 100644 (file)
index 0000000..b7b4470
--- /dev/null
@@ -0,0 +1,301 @@
+%Start ErrorText ErrorMessage OtherText
+
+EC     [0-9][0-9][0-9][0-9]-[0-9][0-9][0-9]
+D      [0-9]
+D3     [0-9 ][0-9 ][0-9]
+D4     [0-9 ][0-9 ][0-9 ][0-9]
+D5     [0-9 ][0-9 ][0-9 ][0-9 ][0-9]
+DS     [0-9 ]
+
+%{
+/* moore@wilma.cs.utk.edu
+
+ * Hack to work around the AIX C compiler's brain-damaged error messages
+ * so that emacs can parse them.  It runs /bin/cc as a subprocess, and
+ * tries to rearrange the error messages so that (a) each message contains
+ * both the filename and line number where the error occurred, and (b)
+ * the error message(s) for a particular line get displayed *before* the
+ * line itself.
+ *
+ * to compile: 
+ * lex aixcc.lex
+ * cc -o aixcc lex.yy.c
+ *
+ *
+ * Copyright December 1991 by Keith Moore
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ *
+ * TODO: figure out how the compiler counts file numbers for included
+ * files, keep track of which file corresponds to which number, and
+ * always output the right file name.
+ */
+
+#include <stdio.h>
+#include <string.h>
+
+char *current_file;
+int line;
+int debug = 0;
+char bigbuf[10240];
+char *bufptr = bigbuf;
+int last_line_was_error = 0;
+
+spaces (s)
+char *s;
+{
+    while (*s++)
+       *bufptr++ = ' ';
+}
+
+char *
+strsave (s)
+char *s;
+{
+    char *ptr = malloc (strlen (s) + 1);
+    strcpy (ptr, s);
+    return ptr;
+}
+
+yywrap ()
+{
+    *bufptr = '\0';
+    bufptr = bigbuf;
+    while (*bufptr)
+       putc (*bufptr++, yyout);
+    return 1;
+}
+
+%}
+%%
+^File\ Line\ Column\ Message\ text[^\n]*       {
+   /*
+    * ignore this.  don't treat it as error text
+    */
+}
+
+^{DS}{DS}{DS}\ {D5}\ \|        {
+    /*
+     * (optional) nesting level, followed by line number, followed
+     * by the source code fragment that caused the error
+     */
+
+    /*
+     * save the line number for later
+     */
+    line = atoi (yytext+4);
+
+    if (debug) {
+       fprintf (yyout, "line <= %d\n", line);
+       fprintf (yyout, "%s\n", yytext);
+    }
+
+    /*
+     * if the last line was an error message, to flush out all of
+     * the old source text before starting to save the new source text.
+     */
+    if (last_line_was_error) {
+       *bufptr = '\0';
+       bufptr = bigbuf;
+       while (*bufptr)
+           putc (*bufptr++, yyout);
+       bufptr = bigbuf;
+        last_line_was_error = 0;
+    }
+    /*
+     * stuff enough spaces in the text buffer so that the
+     * saved text will line up properly when displayed.
+     */
+    spaces (yytext);
+
+    BEGIN ErrorText;   /* continue below */
+}
+
+<ErrorText>[^\n]*$     {
+    char *ptr;
+
+    /* 
+     * Save the text until we see the error message(s), then print it.
+     * This because emacs puts the error message at the top of the
+     * window, and it's nice to be able to see the text below it.
+     */
+
+    ptr = yytext;
+    while (*ptr)
+       *bufptr++ = *ptr++;
+    *bufptr++ = '\n';
+
+    BEGIN 0;
+}
+
+^Processing\ include\ file\ .*$        {
+    /*
+     * name of a new include file being processed.  Increment file number
+     * and remember the file name corresponding to this file number.
+     */
+
+    current_file = strsave (yytext+24);
+    
+    if (debug) {
+       fprintf (yyout, "current_file <= %s\n", current_file);
+       fprintf (yyout, "%s\n", yytext);
+    }
+}
+
+^([a-z]\ -)?\ *{EC}:   {
+    /* 
+     * error message (which we print immediately) preceded by an
+     * error code (which we ignore)
+     */
+
+    fprintf (yyout, "\"%s\", line %d: %c -", current_file, line, *yytext);
+    last_line_was_error = 1;
+    BEGIN ErrorMessage;
+}
+
+^{D3}\ {D5}\ {D4}\ {EC}:       {
+    /*
+     * (optional) nesting level, followed by line number, followed
+     * by column number, followed by error message text.
+     */
+
+    /*
+     * save the line number for later
+     */
+    line = atoi (yytext+4);
+
+    if (debug) {
+       fprintf (yyout, "line <= %d\n", line);
+       fprintf (yyout, "%s\n", yytext);
+    }
+
+    /*
+     * if the last line was an error message, flush out all of
+     * the old source text before printing this error message.
+     */
+    if (last_line_was_error) {
+       *bufptr = '\0';
+       bufptr = bigbuf;
+       while (*bufptr)
+           putc (*bufptr++, yyout);
+       bufptr = bigbuf;
+        last_line_was_error = 0;
+    }
+    fprintf (yyout, "\"%s\", line %d:", current_file, line);
+    last_line_was_error = 1;
+    BEGIN ErrorMessage;
+}
+
+<ErrorMessage>[^\n]*$  {
+    fprintf (yyout, "%s\n", yytext);
+    BEGIN 0;
+}
+
+
+^[^ :]+".c:"\ *$       {
+    /* name of new source file being processed */
+
+    char *ptr;
+
+    if (current_file)
+       free (current_file);
+    ptr = strchr (yytext, ':');
+    *ptr = '\0';
+    current_file = strsave (yytext);
+}
+
+^[^\n] {
+    /*
+     * other text starting with a newline.  We have to break it up this
+     * way to keep this rule from matching any of the above patterns
+     */
+
+    if (last_line_was_error) {
+       *bufptr = '\0';
+       bufptr = bigbuf;
+       while (*bufptr)
+           putc (*bufptr++, yyout);
+       bufptr = bigbuf;
+        last_line_was_error = 0;
+    }
+
+    *bufptr++ = *yytext;
+    BEGIN OtherText;
+}
+
+<OtherText>[^\n]*$     {
+    char *ptr;
+
+    ptr = yytext;
+    while (*ptr)
+       *bufptr++ = *ptr++;
+    *bufptr++ = '\n';
+
+    BEGIN 0;
+}
+
+\n     ;
+
+%%
+
+main (argc, argv)
+char **argv;
+{
+    int pfd[2];
+    int child_pid;
+    int i;
+
+    current_file = strsave ("/dev/null");
+
+    line = 0;
+
+    for (i = 1; i < argc; ++i) {
+       char *ptr = strrchr (argv[i], '.');
+       if (ptr && ptr[1] == 'c' && ptr[2] == '\0') {
+           current_file = strsave (argv[i]);
+           break;
+       }
+    }
+
+    if (pipe (pfd) < 0) {
+       perror ("pipe");
+       exit (1);
+    }
+    if ((child_pid = fork()) > 0) {
+       int status;
+
+       close (pfd[1]);
+       yyin = fdopen (pfd[0], "r");
+       yyout = stderr;
+       yylex();
+
+       wait (&status);
+       exit ((status >> 8) & 0xff);
+    }
+    else if (child_pid == 0) {
+       dup2 (pfd[1], 2);
+       close (pfd[0]);
+       close (pfd[1]);
+       argv[0] = "cc";
+       execv ("/bin/cc", argv);
+       perror ("/bin/cc");
+       exit (1);
+    }
+    else {
+       perror ("fork");
+       exit (1);
+    }
+}
index 6e2c24b..a816455 100644 (file)
@@ -43,6 +43,8 @@ LN_S "@LN_S@"
 LOCKDIR "@LOCKDIR@"
 LOCKDIR_USER_DEFINED "@LOCKDIR_USER_DEFINED@"
 MAKE_SUBDIR "@MAKE_SUBDIR@"
 LOCKDIR "@LOCKDIR@"
 LOCKDIR_USER_DEFINED "@LOCKDIR_USER_DEFINED@"
 MAKE_SUBDIR "@MAKE_SUBDIR@"
+MODULEDIR "@MODULEDIR@"
+MODULEDIR_USER_DEFINED "@MODULEDIR_USER_DEFINED@"
 PACKAGE_PATH "@PACKAGE_PATH@"
 PACKAGE_PATH_USER_DEFINED "@PACKAGE_PATH_USER_DEFINED@"
 PREFIX "@PREFIX@"
 PACKAGE_PATH "@PACKAGE_PATH@"
 PACKAGE_PATH_USER_DEFINED "@PACKAGE_PATH_USER_DEFINED@"
 PREFIX "@PREFIX@"
@@ -50,8 +52,13 @@ PROGNAME "@PROGNAME@"
 RANLIB "@RANLIB@"
 RECURSIVE_MAKE "@RECURSIVE_MAKE@"
 SET_MAKE "@SET_MAKE@"
 RANLIB "@RANLIB@"
 RECURSIVE_MAKE "@RECURSIVE_MAKE@"
 SET_MAKE "@SET_MAKE@"
+SITELISPDIR "@SITELISPDIR@"
+SITELISPDIR_USER_DEFINED "@SITELISPDIR_USER_DEFINED@"
+SITEMODULEDIR "@SITEMODULEDIR@"
+SITEMODULEDIR_USER_DEFINED "@SITEMODULEDIR_USER_DEFINED@"
 SRC_SUBDIR_DEPS "@SRC_SUBDIR_DEPS@"
 SUBDIR_MAKEFILES "@SUBDIR_MAKEFILES@"
 SRC_SUBDIR_DEPS "@SRC_SUBDIR_DEPS@"
 SUBDIR_MAKEFILES "@SUBDIR_MAKEFILES@"
+XEMACS_CC "@XEMACS_CC@"
 X_CFLAGS "@X_CFLAGS@"
 X_EXTRA_LIBS "@X_EXTRA_LIBS@"
 X_LIBS "@X_LIBS@"
 X_CFLAGS "@X_CFLAGS@"
 X_EXTRA_LIBS "@X_EXTRA_LIBS@"
 X_LIBS "@X_LIBS@"
@@ -70,8 +77,9 @@ configure_input "@configure_input@"
 datadir "@datadir@"
 dll_cflags "@dll_cflags@"
 dll_ld "@dll_ld@"
 datadir "@datadir@"
 dll_cflags "@dll_cflags@"
 dll_ld "@dll_ld@"
-dll_lflags "@dll_lflags@"
-dll_oflags "@dll_oflags@"
+dll_ldflags "@dll_ldflags@"
+dll_ldo "@dll_ldo@"
+dll_post "@dll_post@"
 dnd_objs "@dnd_objs@"
 docdir "@docdir@"
 dynodump_arch "@dynodump_arch@"
 dnd_objs "@dnd_objs@"
 docdir "@docdir@"
 dynodump_arch "@dynodump_arch@"
@@ -102,6 +110,7 @@ lockdir "@lockdir@"
 lwlib_objs "@lwlib_objs@"
 machfile "@machfile@"
 mandir "@mandir@"
 lwlib_objs "@lwlib_objs@"
 machfile "@machfile@"
 mandir "@mandir@"
+moduledir "@moduledir@"
 native_sound_lib "@native_sound_lib@"
 oldincludedir "@oldincludedir@"
 opsysfile "@opsysfile@"
 native_sound_lib "@native_sound_lib@"
 oldincludedir "@oldincludedir@"
 opsysfile "@opsysfile@"
@@ -111,6 +120,8 @@ prefix "@prefix@"
 program_transform_name "@program_transform_name@"
 sbindir "@sbindir@"
 sharedstatedir "@sharedstatedir@"
 program_transform_name "@program_transform_name@"
 sbindir "@sbindir@"
 sharedstatedir "@sharedstatedir@"
+sitelispdir "@sitelispdir@"
+sitemoduledir "@sitemoduledir@"
 sound_cflags "@sound_cflags@"
 srcdir "@srcdir@"
 start_files "@start_files@"
 sound_cflags "@sound_cflags@"
 srcdir "@srcdir@"
 start_files "@start_files@"
index 22cb1ab..5397d7c 100644 (file)
@@ -24,9 +24,9 @@ Boston, MA 02111-1307, USA.  */
 #include <../src/config.h>
 
 #if defined (BSD) && !defined (BSD4_1) && !defined (USE_FAKEMAIL)
 #include <../src/config.h>
 
 #if defined (BSD) && !defined (BSD4_1) && !defined (USE_FAKEMAIL)
-/* This program isnot used in BSD, so just avoid loader complaints.  */
+/* This program is not used in BSD, so just avoid loader complaints.  */
 int
 int
-main ()
+main (int argc, char *argv[])
 {
   return 0;
 }
 {
   return 0;
 }
@@ -34,7 +34,7 @@ main ()
 #include <stdio.h>
 #include <stdlib.h>
 int
 #include <stdio.h>
 #include <stdlib.h>
 int
-main ()
+main (int argc, char *argv[])
 {
   /* Linux /bin/mail, if it exists, is NOT the Unix v7 mail that
      fakemail depends on!  This causes garbled mail.  Better to
 {
   /* Linux /bin/mail, if it exists, is NOT the Unix v7 mail that
      fakemail depends on!  This causes garbled mail.  Better to
@@ -48,7 +48,7 @@ main ()
 #else /* not BSD 4.2 (or newer) */
 #ifdef MSDOS
 int
 #else /* not BSD 4.2 (or newer) */
 #ifdef MSDOS
 int
-main ()
+main (int argc, char *argv[])
 {
   return 0;
 }
 {
   return 0;
 }
@@ -100,11 +100,11 @@ struct header_record
   struct header_record *previous;
 };
 typedef struct header_record *header;
   struct header_record *previous;
 };
 typedef struct header_record *header;
-                       
+
 struct stream_record
 {
   FILE *handle;
 struct stream_record
 {
   FILE *handle;
-  int (*action)();
+  int (*action)(FILE *);
   struct stream_record *rest_streams;
 };
 typedef struct stream_record *stream_list;
   struct stream_record *rest_streams;
 };
 typedef struct stream_record *stream_list;
@@ -191,8 +191,7 @@ fatal (CONST char *s1, CONST char *s2)
 /* Like malloc but get fatal error if memory is exhausted.  */
 
 static char *
 /* Like malloc but get fatal error if memory is exhausted.  */
 
 static char *
-xmalloc (size)
-     size_t size;
+xmalloc (size_t size)
 {
   char *result = malloc (((unsigned) size));
   if (result == ((char *) NULL))
 {
   char *result = malloc (((unsigned) size));
   if (result == ((char *) NULL))
@@ -201,9 +200,7 @@ xmalloc (size)
 }
 
 static char *
 }
 
 static char *
-xrealloc (ptr, size)
-     char *ptr;
-     size_t size;
+xrealloc (char *ptr, size_t size)
 {
   char *result = realloc (ptr, ((unsigned) size));
   if (result == ((char *) NULL))
 {
   char *result = realloc (ptr, ((unsigned) size));
   if (result == ((char *) NULL))
@@ -221,7 +218,7 @@ init_linebuffer (struct linebuffer *linebuffer)
 }
 
 /* Read a line of text from `stream' into `linebuffer'.
 }
 
 /* Read a line of text from `stream' into `linebuffer'.
- * Return the length of the line.  
+ * Return the length of the line.
  */
 
 static long
  */
 
 static long
@@ -263,14 +260,17 @@ get_keyword (register char *field, char **rest)
 
   ptr = &keyword[0];
   c = *field++;
 
   ptr = &keyword[0];
   c = *field++;
-  if ((isspace (c)) || (c == ':'))
-    return ((char *) NULL);
-  *ptr++ = ((islower (c)) ? (toupper (c)) : c);
-  while (((c = *field++) != ':') && (!(isspace (c))))
-    *ptr++ = ((islower (c)) ? (toupper (c)) : c);
+  if ((isspace ((int) (unsigned char) c)) || (c == ':'))
+    return (char *) NULL;
+  *ptr++ = ((islower ((int) (unsigned char) c)) ?
+           (toupper ((int) (unsigned char) c)) : c);
+  while (((c = *field++) != ':') &&
+        (!(isspace ((int) (unsigned char) c))))
+    *ptr++ = ((islower ((int) (unsigned char) c)) ?
+             (toupper ((int) (unsigned char) c)) : c);
   *ptr++ = '\0';
   *ptr++ = '\0';
-  while (isspace (c)) c = *field++;
-  if (c != ':') return ((char *) NULL);
+  while (isspace ((int) (unsigned char) c)) c = *field++;
+  if (c != ':') return (char *) NULL;
   *rest = field;
   return &keyword[0];
 }
   *rest = field;
   return &keyword[0];
 }
@@ -323,7 +323,11 @@ make_file_preface (void)
   /* the_date has an unwanted newline at the end */
   date_length = strlen (the_date) - 1;
   the_date[date_length] = '\0';
   /* the_date has an unwanted newline at the end */
   date_length = strlen (the_date) - 1;
   the_date[date_length] = '\0';
+#ifdef WINDOWSNT
+  temp = "(null)";
+#else
   temp = cuserid ((char *) NULL);
   temp = cuserid ((char *) NULL);
+#endif
   user_length = strlen (temp);
   the_user = alloc_string ((size_t) (user_length + 1));
   strcpy (the_user, temp);
   user_length = strlen (temp);
   the_user = alloc_string ((size_t) (user_length + 1));
   strcpy (the_user, temp);
@@ -371,7 +375,7 @@ close_the_streams (void)
 }
 
 static void
 }
 
 static void
-add_a_stream (FILE *the_stream, int (*closing_action)())
+add_a_stream (FILE *the_stream, int (*closing_action)(FILE *))
 {
   stream_list old = the_streams;
   the_streams = new_stream ();
 {
   stream_list old = the_streams;
   the_streams = new_stream ();
@@ -553,7 +557,7 @@ parse_header (header the_header, register char *where)
   *where = '\0';
   return;
 }
   *where = '\0';
   return;
 }
-\f    
+\f
 static header
 read_header (void)
 {
 static header
 read_header (void)
 {
@@ -624,9 +628,7 @@ write_header (header the_header)
 }
 \f
 int
 }
 \f
 int
-main (argc, argv)
-     int argc;
-     char **argv;
+main (int argc, char *argv[])
 {
   char *command_line;
   header the_header;
 {
   char *command_line;
   header the_header;
@@ -655,7 +657,7 @@ main (argc, argv)
                                         args_size (the_header)));
   strcpy (command_line, mail_program_name);
   parse_header (the_header, &command_line[name_length]);
                                         args_size (the_header)));
   strcpy (command_line, mail_program_name);
   parse_header (the_header, &command_line[name_length]);
-  
+
   the_pipe = popen (command_line, "w");
   if (the_pipe == ((FILE *) NULL))
     fatal ("cannot open pipe to real mailer", (char *) 0);
   the_pipe = popen (command_line, "w");
   if (the_pipe == ((FILE *) NULL))
     fatal ("cannot open pipe to real mailer", (char *) 0);
index a89641f..1902691 100644 (file)
@@ -48,6 +48,8 @@ static char rcsid [] = "!Header: gnuclient.c,v 2.2 95/12/12 01:39:21 wing nene !
 #include <stdio.h>
 #include <stdlib.h>
 #include <sys/types.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <sys/types.h>
+#define DONT_ENCAPSULATE
+#include <sysfile.h>
 
 #ifdef HAVE_STRING_H
 #include <string.h>
 
 #ifdef HAVE_STRING_H
 #include <string.h>
@@ -89,7 +91,9 @@ tell_emacs_to_resume (int sig)
 
   /* Why is SYSV so retarded? */
   /* We want emacs to realize that we are resuming */
 
   /* Why is SYSV so retarded? */
   /* We want emacs to realize that we are resuming */
+#ifdef SIGCONT
   signal(SIGCONT, tell_emacs_to_resume);
   signal(SIGCONT, tell_emacs_to_resume);
+#endif
 
   connect_type = make_connection (NULL, (u_short) 0, &s);
 
 
   connect_type = make_connection (NULL, (u_short) 0, &s);
 
@@ -129,8 +133,10 @@ initialize_signals ()
   signal (SIGWINCH, pass_signal_to_emacs);
 #endif
 
   signal (SIGWINCH, pass_signal_to_emacs);
 #endif
 
+#ifdef SIGCONT
   /* We want emacs to realize that we are resuming */
   signal (SIGCONT, tell_emacs_to_resume);
   /* We want emacs to realize that we are resuming */
   signal (SIGCONT, tell_emacs_to_resume);
+#endif
 }
 
 
 }
 
 
@@ -179,8 +185,37 @@ filename_expand (char *fullpath, char *filename)
 
   fullpath[0] = '\0';
 
 
   fullpath[0] = '\0';
 
-  if (filename[0] && filename[0] != '/')
-    {  /* relative filename */
+  if (filename[0] && filename[0] == '/')
+     {
+       /* Absolute (unix-style) pathname.  Do nothing */
+       strcat (fullpath, filename);
+     }
+#ifdef  __CYGWIN32__
+  else if (filename[0] && filename[0] == '\\' &&
+           filename[1] && filename[1] == '\\')
+    {
+      /* This path includes the server name (something like
+         "\\server\path"), so we assume it's absolute.  Do nothing to
+         it. */
+      strcat (fullpath, filename);
+    }
+  else if (filename[0] &&
+           filename[1] && filename[1] == ':' &&
+           filename[2] && filename[2] == '\\')
+    {
+      /* Absolute pathname with drive letter.  Convert "<drive>:"
+         to "//<drive>/". */
+      strcat (fullpath, "//");
+      strncat (fullpath, filename, 1);
+      strcat (fullpath, &filename[2]);
+    }
+#endif
+  else
+    {
+      /* Assume relative Unix style path.  Get the current directory
+       and prepend it.  FIXME: need to fix the case of DOS paths like
+       "\foo", where we need to get the current drive. */
+      
       strcat (fullpath, get_current_working_directory ());
       len = strlen (fullpath);
 
       strcat (fullpath, get_current_working_directory ());
       len = strlen (fullpath);
 
@@ -188,10 +223,9 @@ filename_expand (char *fullpath, char *filename)
        ;                                       /* yep */
       else
        strcat (fullpath, "/");         /* nope, append trailing slash */
        ;                                       /* yep */
       else
        strcat (fullpath, "/");         /* nope, append trailing slash */
-    } /* if */
-
-  strcat (fullpath,filename);
-
+      /* Don't forget to add the filename! */
+      strcat (fullpath,filename);
+    }
 } /* filename_expand */
 
 /* Encase the string in quotes, escape all the backslashes and quotes
 } /* filename_expand */
 
 /* Encase the string in quotes, escape all the backslashes and quotes
@@ -525,7 +559,7 @@ main (int argc, char *argv[])
 
          if (read_line (s, buffer) == 0)
            {
 
          if (read_line (s, buffer) == 0)
            {
-             fprintf (stderr, "%s: Could not establish Emacs procces id\n",
+             fprintf (stderr, "%s: Could not establish Emacs process id\n",
                       progname);
              exit (1);
            }
                       progname);
              exit (1);
            }
index 7b85080..2400068 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/local/bin/perl
+#!/usr/bin/perl
 
 while (<>)
 {
 
 while (<>)
 {
index 39f9147..ddce69c 100644 (file)
@@ -563,7 +563,7 @@ add_host (u_long host_addr)
 
 
 /*
 
 
 /*
-  setup_table -- initialise the table of hosts allowed to contact the server,
+  setup_table -- initialize the table of hosts allowed to contact the server,
                  by reading from the file specified by the GNU_SECURE
                 environment variable
                  Put in the local machine, and, if a security file is specifed,
                  by reading from the file specified by the GNU_SECURE
                 environment variable
                  Put in the local machine, and, if a security file is specifed,
@@ -832,9 +832,7 @@ handle_unix_request (int ls)
 
 
 int
 
 
 int
-main(argc,argv)
-     int argc;
-     char *argv[];
+main (int argc, char *argv[])
 {
   int chan;                    /* temporary channel number */
 #ifdef SYSV_IPC
 {
   int chan;                    /* temporary channel number */
 #ifdef SYSV_IPC
@@ -867,7 +865,7 @@ main(argc,argv)
 #endif /* SYSV_IPC */
 
 #ifdef INTERNET_DOMAIN_SOCKETS
 #endif /* SYSV_IPC */
 
 #ifdef INTERNET_DOMAIN_SOCKETS
-  ils = internet_init();       /* get a internet domain socket to listen on */
+  ils = internet_init();       /* get an internet domain socket to listen on */
 #endif /* INTERNET_DOMAIN_SOCKETS */
 
 #ifdef UNIX_DOMAIN_SOCKETS
 #endif /* INTERNET_DOMAIN_SOCKETS */
 
 #ifdef UNIX_DOMAIN_SOCKETS
index 2db8dc8..e28e38e 100644 (file)
@@ -1,6 +1,7 @@
 /* Generate doc-string file for XEmacs from source files.
    Copyright (C) 1985, 1986, 1992, 1993, 1994 Free Software Foundation, Inc.
 /* Generate doc-string file for XEmacs from source files.
    Copyright (C) 1985, 1986, 1992, 1993, 1994 Free Software Foundation, Inc.
-   Copyright (C) 1995 Board of Trustees, University of Illinois
+   Copyright (C) 1995 Board of Trustees, University of Illinois.
+   Copyright (C) 1998, 1999 J. Kean Johnston.
 
 This file is part of XEmacs.
 
 
 This file is part of XEmacs.
 
@@ -50,8 +51,6 @@ Boston, MA 02111-1307, USA.  */
 #include <ctype.h>
 #endif
 
 #include <ctype.h>
 #endif
 
-#include <sys/param.h>
-
 #if defined(MSDOS) || defined(__CYGWIN32__)
 #include <fcntl.h>
 #endif /* MSDOS */
 #if defined(MSDOS) || defined(__CYGWIN32__)
 #include <fcntl.h>
 #endif /* MSDOS */
@@ -62,6 +61,8 @@ Boston, MA 02111-1307, USA.  */
 #include <stdlib.h>
 #endif /* WINDOWSNT */
 
 #include <stdlib.h>
 #endif /* WINDOWSNT */
 
+#include <sys/param.h>
+
 #if defined(DOS_NT) || defined(__CYGWIN32__)
 #define READ_TEXT "rt"
 #define READ_BINARY "rb"
 #if defined(DOS_NT) || defined(__CYGWIN32__)
 #define READ_TEXT "rt"
 #define READ_BINARY "rb"
@@ -108,6 +109,9 @@ static int scan_lisp_file (CONST char *filename, CONST char *mode);
 /* Name this program was invoked with.  */
 char *progname;
 
 /* Name this program was invoked with.  */
 char *progname;
 
+/* Set to 1 if this was invoked by ellcc */
+int ellcc = 0;
+
 /* Print error message.  `s1' is printf control string, `s2' is arg for it. */
 
 static void
 /* Print error message.  `s1' is printf control string, `s2' is arg for it. */
 
 static void
@@ -213,6 +217,12 @@ main (int argc, char **argv)
       outfile = fopen (argv[i + 1], APPEND_BINARY);
       i += 2;
     }
       outfile = fopen (argv[i + 1], APPEND_BINARY);
       i += 2;
     }
+  if (argc > i + 1 && !strcmp (argv[i], "-E"))
+    {
+      outfile = fopen (argv[i + 1], APPEND_BINARY);
+      i += 2;
+      ellcc = 1;
+    }
   if (argc > i + 1 && !strcmp (argv[i], "-d"))
     {
       chdir (argv[i + 1]);
   if (argc > i + 1 && !strcmp (argv[i], "-d"))
     {
       chdir (argv[i + 1]);
@@ -227,6 +237,9 @@ main (int argc, char **argv)
   if (outfile == 0)
     fatal ("No output file specified", "");
 
   if (outfile == 0)
     fatal ("No output file specified", "");
 
+  if (ellcc)
+    fprintf (outfile, "{\n");
+
   first_infile = i;
   for (; i < argc; i++)
     {
   first_infile = i;
   for (; i < argc; i++)
     {
@@ -249,6 +262,8 @@ main (int argc, char **argv)
   }
 
   putc ('\n', outfile);
   }
 
   putc ('\n', outfile);
+  if (ellcc)
+    fprintf (outfile, "}\n\n");
 #ifndef VMS
   exit (err_count > 0);
 #endif /* VMS */
 #ifndef VMS
   exit (err_count > 0);
 #endif /* VMS */
@@ -262,12 +277,12 @@ static int
 scan_file (CONST char *filename)
 {
   int len = strlen (filename);
 scan_file (CONST char *filename)
 {
   int len = strlen (filename);
-  if (len > 4 && !strcmp (filename + len - 4, ".elc"))
+  if (ellcc == 0 && len > 4 && !strcmp (filename + len - 4, ".elc"))
     {
       Current_file_type = elc_file;
       return scan_lisp_file (filename, READ_BINARY);
     }
     {
       Current_file_type = elc_file;
       return scan_lisp_file (filename, READ_BINARY);
     }
-  else if (len > 3 && !strcmp (filename + len - 3, ".el"))
+  else if (ellcc == 0 && len > 3 && !strcmp (filename + len - 3, ".el"))
     {
       Current_file_type = el_file;
       return scan_lisp_file (filename, READ_TEXT);
     {
       Current_file_type = el_file;
       return scan_lisp_file (filename, READ_TEXT);
@@ -314,7 +329,11 @@ read_c_string (FILE *infile, int printflag, int c_docstring)
              if (start != -1)
                {
                  if (printflag > 0)
              if (start != -1)
                {
                  if (printflag > 0)
-                   putc ('\n', outfile);
+            {
+              if (ellcc)
+                fprintf (outfile, "\\n\\");
+              putc ('\n', outfile);
+            }
                  else if (printflag < 0)
                    *p++ = '\n';
                }
                  else if (printflag < 0)
                    *p++ = '\n';
                }
@@ -339,8 +358,11 @@ read_c_string (FILE *infile, int printflag, int c_docstring)
          else
            {
              start = 0;
          else
            {
              start = 0;
-             if (printflag > 0)
+             if (printflag > 0) {
+                if (ellcc && c == '"')
+                  putc ('\\', outfile);
                putc (c, outfile);
                putc (c, outfile);
+              }
              else if (printflag < 0)
                *p++ = c;
            }
              else if (printflag < 0)
                *p++ = c;
            }
@@ -464,7 +486,8 @@ write_c_args (FILE *out, CONST char *func, char *buff, int minargs,
       need_space = 0;
 #endif
     }
       need_space = 0;
 #endif
     }
-  putc ('\n', out); /* XEmacs addition */
+  if (!ellcc)
+    putc ('\n', out); /* XEmacs addition */
 }
 \f
 /* Read through a c file.  If a .o file is named,
 }
 \f
 /* Read through a c file.  If a .o file is named,
@@ -639,9 +662,15 @@ scan_c_file (CONST char *filename, CONST char *mode)
 
       if (defunflag || defvarflag || c == '"')
        {
 
       if (defunflag || defvarflag || c == '"')
        {
-         putc (037, outfile);
-         putc (defvarflag ? 'V' : 'F', outfile);
-         fprintf (outfile, "%s\n", buf);
+      if (ellcc)
+        fprintf (outfile, "  CDOC%s(\"%s\", \"\\\n",
+                 defvarflag ? "SYM" : "SUBR", buf);
+      else
+        {
+          putc (037, outfile);
+          putc (defvarflag ? 'V' : 'F', outfile);
+          fprintf (outfile, "%s\n", buf);
+        }
          c = read_c_string (infile, 1, (defunflag || defvarflag));
 
          /* If this is a defun, find the arguments and print them.  If
          c = read_c_string (infile, 1, (defunflag || defvarflag));
 
          /* If this is a defun, find the arguments and print them.  If
@@ -673,9 +702,14 @@ scan_c_file (CONST char *filename, CONST char *mode)
              while (c != ')');
              *p = '\0';
              /* Output them.  */
              while (c != ')');
              *p = '\0';
              /* Output them.  */
-             fprintf (outfile, "\n\n");
+          if (ellcc)
+            fprintf (outfile, "\\n\\\n\\n\\\n");
+          else
+            fprintf (outfile, "\n\n");
              write_c_args (outfile, buf, argbuf, minargs, maxargs);
            }
              write_c_args (outfile, buf, argbuf, minargs, maxargs);
            }
+      if (ellcc)
+        fprintf (outfile, "\\n\");\n\n");
        }
     }
  eof:
        }
     }
  eof:
@@ -1032,7 +1066,7 @@ scan_lisp_file (CONST char *filename, CONST char *mode)
       else
        {
 #ifdef DEBUG
       else
        {
 #ifdef DEBUG
-         fprintf (stderr, "## unrecognised top-level form, %s (%s)\n",
+         fprintf (stderr, "## unrecognized top-level form, %s (%s)\n",
                   buffer, filename);
 #endif
          continue;
                   buffer, filename);
 #endif
          continue;
index 118dd1f..31b9379 100644 (file)
@@ -69,7 +69,7 @@
    This program (make-msgfile.c) addresses the first part, extracting the 
    strings.
    
    This program (make-msgfile.c) addresses the first part, extracting the 
    strings.
    
-   For the emacs C code, we need to recognise the following patterns:
+   For the emacs C code, we need to recognize the following patterns:
    
      message ("string" ... )
      error ("string")
    
      message ("string" ... )
      error ("string")
@@ -94,7 +94,7 @@
      there are no alphabetic characters in it that are not a part of a `%'
      directive.  (Careful not to translate either "%s%s" or "%s: ".)
 
      there are no alphabetic characters in it that are not a part of a `%'
      directive.  (Careful not to translate either "%s%s" or "%s: ".)
 
-   For the emacs Lisp code, we need to recognise the following patterns:
+   For the emacs Lisp code, we need to recognize the following patterns:
    
      (message "string" ... )
      (error "string" ... )
    
      (message "string" ... )
      (error "string" ... )
      
    I expect there will be a lot like the above; basically, any function which
    is a commonly used wrapper around an eventual call to `message' or
      
    I expect there will be a lot like the above; basically, any function which
    is a commonly used wrapper around an eventual call to `message' or
-   `read-from-minibuffer' needs to be recognised by this program.
+   `read-from-minibuffer' needs to be recognized by this program.
 
 
      (dgettext "domain-name" "string")         #### do we still need this?
 
 
      (dgettext "domain-name" "string")         #### do we still need this?
    Menu descriptors: one way to extract the strings in menu labels would be
    to teach this program about "^(defvar .*menu\n" forms; that's probably
    kind of hard, though, so perhaps a better approach would be to make this
    Menu descriptors: one way to extract the strings in menu labels would be
    to teach this program about "^(defvar .*menu\n" forms; that's probably
    kind of hard, though, so perhaps a better approach would be to make this
-   program recognise lines of the form
+   program recognize lines of the form
 
      "string" ... ;###translate
 
 
      "string" ... ;###translate
 
index 957a8b5..21a050a 100644 (file)
@@ -134,7 +134,7 @@ Boston, MA 02111-1307, USA.  */
    This program (make-msgfile.c) addresses the first part, extracting the 
    strings.
    
    This program (make-msgfile.c) addresses the first part, extracting the 
    strings.
    
-   For the emacs C code, we need to recognise the following patterns:
+   For the emacs C code, we need to recognize the following patterns:
    
      message ("string" ... )
      error ("string")
    
      message ("string" ... )
      error ("string")
@@ -159,7 +159,7 @@ Boston, MA 02111-1307, USA.  */
      there are no alphabetic characters in it that are not a part of a `%'
      directive.  (Careful not to translate either "%s%s" or "%s: ".)
 
      there are no alphabetic characters in it that are not a part of a `%'
      directive.  (Careful not to translate either "%s%s" or "%s: ".)
 
-   For the emacs Lisp code, we need to recognise the following patterns:
+   For the emacs Lisp code, we need to recognize the following patterns:
    
      (message "string" ... )
      (error "string" ... )
    
      (message "string" ... )
      (error "string" ... )
@@ -174,7 +174,7 @@ Boston, MA 02111-1307, USA.  */
      
    I expect there will be a lot like the above; basically, any function which
    is a commonly used wrapper around an eventual call to `message' or
      
    I expect there will be a lot like the above; basically, any function which
    is a commonly used wrapper around an eventual call to `message' or
-   `read-from-minibuffer' needs to be recognised by this program.
+   `read-from-minibuffer' needs to be recognized by this program.
 
 
      (dgettext "domain-name" "string")         #### do we still need this?
 
 
      (dgettext "domain-name" "string")         #### do we still need this?
@@ -218,7 +218,7 @@ Boston, MA 02111-1307, USA.  */
    Menu descriptors: one way to extract the strings in menu labels would be
    to teach this program about "^(defvar .*menu\n" forms; that's probably
    kind of hard, though, so perhaps a better approach would be to make this
    Menu descriptors: one way to extract the strings in menu labels would be
    to teach this program about "^(defvar .*menu\n" forms; that's probably
    kind of hard, though, so perhaps a better approach would be to make this
-   program recognise lines of the form
+   program recognize lines of the form
 
      "string" ... ;###translate
 
 
      "string" ... ;###translate
 
index 0419719..19793a3 100644 (file)
@@ -55,22 +55,30 @@ Boston, MA 02111-1307, USA.  */
  */
 
 #define NO_SHORTNAMES   /* Tell config not to load remap.h */
  */
 
 #define NO_SHORTNAMES   /* Tell config not to load remap.h */
+#define DONT_ENCAPSULATE
 #include <../src/config.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <../src/config.h>
 #include <sys/types.h>
 #include <sys/stat.h>
-#include <sys/file.h>
 #include <stdio.h>
 #include <errno.h>
 #include <stdio.h>
 #include <errno.h>
+#include "../src/sysfile.h"
 #include "../src/syswait.h"
 #include "../src/syswait.h"
+#ifndef WINDOWSNT
 #include "../src/systime.h"
 #include "../src/systime.h"
+#endif
 #include <stdlib.h>
 #include <string.h>
 #include <stdlib.h>
 #include <string.h>
+#include "getopt.h"
 #ifdef MAIL_USE_POP
 #include "pop.h"
 #ifdef MAIL_USE_POP
 #include "pop.h"
+#include "../src/regex.h"
 #endif
 
 #endif
 
+extern char *optarg;
+extern int optind, opterr;
+
 #ifndef HAVE_STRERROR
 #ifndef HAVE_STRERROR
-static char * strerror (int errnum);
+char * strerror (int errnum);
 #endif /* HAVE_STRERROR */
 
 #ifdef MSDOS
 #endif /* HAVE_STRERROR */
 
 #ifdef MSDOS
@@ -146,15 +154,43 @@ static int pop_retr (popserver server, int msgno, int (*action)(), void *arg);
 static int mbx_write (char *, FILE *);
 static int mbx_delimit_begin (FILE *);
 static int mbx_delimit_end (FILE *);
 static int mbx_write (char *, FILE *);
 static int mbx_delimit_begin (FILE *);
 static int mbx_delimit_end (FILE *);
+static struct re_pattern_buffer* compile_regex (char* regexp_pattern);
+static int pop_search_top (popserver server, int msgno, int lines, 
+                          struct re_pattern_buffer* regexp);
 #endif
 
 /* Nonzero means this is name of a lock file to delete on fatal error.  */
 char *delete_lockname;
 
 #endif
 
 /* Nonzero means this is name of a lock file to delete on fatal error.  */
 char *delete_lockname;
 
+int verbose=0;
+#ifdef MAIL_USE_POP
+int reverse=0;
+int keep_messages=0;
+struct re_pattern_buffer* regexp_pattern=0;
+int match_lines=10;
+#endif
+
+#define VERBOSE(x) if (verbose) { printf x; fflush(stdout); }
+
+struct option longopts[] =
+{
+  { "inbox",                   required_argument,         NULL,        'i'     },
+  { "outfile",                 required_argument,         NULL,        'o'     },
+#ifdef MAIL_USE_POP
+  { "password",                        required_argument,         NULL,        'p'     },
+  { "reverse-pop-order",               no_argument,               NULL,        'x'     },
+  { "keep-messages",           no_argument,               NULL,        'k'     },
+  { "regex",                   required_argument,         NULL,        'r'     },
+  { "match-lines",             required_argument,         NULL,        'l'     },
+#endif
+  { "verbose",                         no_argument,               NULL,        'v'     },
+  { 0 }
+};
+
 int
 main (int argc, char *argv[])
 {
 int
 main (int argc, char *argv[])
 {
-  char *inname, *outname;
+  char *inname=0, *outname=0, *poppass=0;
 #ifndef DISABLE_DIRECT_ACCESS
   int indesc, outdesc;
   int nread;
 #ifndef DISABLE_DIRECT_ACCESS
   int indesc, outdesc;
   int nread;
@@ -172,14 +208,72 @@ main (int argc, char *argv[])
 
   delete_lockname = 0;
 
 
   delete_lockname = 0;
 
-  if (argc < 3)
+  while (1)
     {
     {
-      fprintf (stderr, "Usage: movemail inbox destfile [POP-password]\n");
-      exit(1);
+#ifdef MAIL_USE_POP
+      char* optstring = "i:o:p:l:r:xvk";
+#else
+      char* optstring = "i:o:v";
+#endif
+      int opt = getopt_long (argc, argv, optstring, longopts, 0);
+  
+      if (opt == EOF)
+       break;
+
+      switch (opt)
+       {
+       case 0:
+         break;
+       case 1:                 /* one of the standard arguments seen */
+         if (!inname)
+           inname = optarg;
+         else if (!outname)
+           outname = optarg;
+         else
+           poppass = optarg;
+         break;
+
+       case 'i':               /* infile */
+         inname = optarg;
+         break;
+         
+       case 'o':               /* outfile */
+         outname = optarg;
+         break;
+#ifdef MAIL_USE_POP
+       case 'p':               /* pop password */
+         poppass = optarg;     
+         break;
+       case 'k':               keep_messages=1;        break;
+       case 'x':               reverse = 1;            break;
+       case 'l':               /* lines to match */
+         match_lines = atoi (optarg);
+         break;
+
+       case 'r':               /* regular expression */
+         regexp_pattern = compile_regex (optarg);
+         break;
+#endif
+       case 'v':               verbose = 1;    break;
+       }
     }
 
     }
 
-  inname = argv[1];
-  outname = argv[2];
+  while (optind < argc)
+      {
+         if (!inname)
+             inname = argv[optind];
+         else if (!outname)
+             outname = argv[optind];
+         else
+             poppass = argv[optind];
+         optind++;
+      }
+    
+  if (!inname || !outname)
+    {
+      fprintf (stderr, "Usage: movemail [-rvxk] [-l lines ] [-i] inbox [-o] destfile [[-p] POP-password]\n");
+      exit(1);
+    }
 
 #ifdef MAIL_USE_MMDF
   mmdf_init (argv[0]);
 
 #ifdef MAIL_USE_MMDF
   mmdf_init (argv[0]);
@@ -210,11 +304,13 @@ main (int argc, char *argv[])
 #ifdef MAIL_USE_POP
   if (!strncmp (inname, "po:", 3))
     {
 #ifdef MAIL_USE_POP
   if (!strncmp (inname, "po:", 3))
     {
-      int retcode = popmail (inname + 3, outname, argc > 3 ? argv[3] : NULL);
+      int retcode = popmail (inname + 3, outname, poppass);
       exit (retcode);
     }
 
       exit (retcode);
     }
 
+#ifndef WINDOWSNT
   setuid (getuid ());
   setuid (getuid ());
+#endif
 #endif /* MAIL_USE_POP */
 
 #ifndef DISABLE_DIRECT_ACCESS
 #endif /* MAIL_USE_POP */
 
 #ifndef DISABLE_DIRECT_ACCESS
@@ -487,9 +583,9 @@ xmalloc (unsigned int size)
 #include <stdio.h>
 #include <pwd.h>
 
 #include <stdio.h>
 #include <pwd.h>
 
-#define NOTOK (-1)
-#define OK 0
-#define DONE 1
+#define POP_ERROR      (-1)
+#define POP_RETRIEVED (0)
+#define POP_DONE (1)
 
 char *progname;
 FILE *sfi;
 
 char *progname;
 FILE *sfi;
@@ -502,11 +598,13 @@ static int
 popmail (char *user, char *outfile, char *password)
 {
   int nmsgs, nbytes;
 popmail (char *user, char *outfile, char *password)
 {
   int nmsgs, nbytes;
-  register int i;
+  register int i, idx;
   int mbfi;
   int mbfi;
+  short* retrieved_list;
   FILE *mbf;
   popserver server;
 
   FILE *mbf;
   popserver server;
 
+  VERBOSE(("opening server\r"));
   server = pop_open (0, user, password, POP_NO_GETPASS);
   if (! server)
     {
   server = pop_open (0, user, password, POP_NO_GETPASS);
   if (! server)
     {
@@ -514,6 +612,7 @@ popmail (char *user, char *outfile, char *password)
       return (1);
     }
 
       return (1);
     }
 
+  VERBOSE(("stat'ing messages\r"));
   if (pop_stat (server, &nmsgs, &nbytes))
     {
       error (pop_error, NULL, NULL);
   if (pop_stat (server, &nmsgs, &nbytes))
     {
       error (pop_error, NULL, NULL);
@@ -522,10 +621,15 @@ popmail (char *user, char *outfile, char *password)
 
   if (!nmsgs)
     {
 
   if (!nmsgs)
     {
+      VERBOSE(("closing server\n"));
       pop_close (server);
       return (0);
     }
 
       pop_close (server);
       return (0);
     }
 
+  /* build a retrieved table */
+  retrieved_list = (short*) xmalloc (sizeof (short) * (nmsgs+1));
+  memset (retrieved_list, 0, sizeof (short) * (nmsgs+1));
+
   mbfi = open (outfile, O_WRONLY | O_CREAT | O_EXCL, 0666);
   if (mbfi < 0)
     {
   mbfi = open (outfile, O_WRONLY | O_CREAT | O_EXCL, 0666);
   if (mbfi < 0)
     {
@@ -533,7 +637,7 @@ popmail (char *user, char *outfile, char *password)
       error ("Error in open: %s, %s", strerror (errno), outfile);
       return (1);
     }
       error ("Error in open: %s, %s", strerror (errno), outfile);
       return (1);
     }
-#ifndef __CYGWIN32__
+#if !defined(__CYGWIN32__) && !defined(WINDOWSNT)
   fchown (mbfi, getuid (), -1);
 #endif
 
   fchown (mbfi, getuid (), -1);
 #endif
 
@@ -546,23 +650,35 @@ popmail (char *user, char *outfile, char *password)
       return (1);
     }
 
       return (1);
     }
 
-  for (i = 1; i <= nmsgs; i++)
+  for (idx = 0; idx < nmsgs; idx++)
     {
     {
-      mbx_delimit_begin (mbf);
-      if (pop_retr (server, i, mbx_write, mbf) != OK)
+      i = reverse ? nmsgs - idx : idx + 1;
+      VERBOSE(("checking message %d     \r", i));
+      
+      if (!regexp_pattern 
+         || 
+         pop_search_top (server, i, match_lines, regexp_pattern) == POP_RETRIEVED)
        {
        {
-         error (Errmsg, NULL, NULL);
-         close (mbfi);
-         return (1);
-       }
-      mbx_delimit_end (mbf);
-      fflush (mbf);
-      if (ferror (mbf))
-       {
-         error ("Error in fflush: %s", strerror (errno), NULL);
-         pop_close (server);
-         close (mbfi);
-         return (1);
+         VERBOSE(("retrieving message %d     \r", i));
+          mbx_delimit_begin (mbf);
+         if (pop_retr (server, i, mbx_write, mbf) != POP_RETRIEVED)
+           {
+             error (Errmsg, NULL, NULL);
+             close (mbfi);
+             return (1);
+           }
+
+         retrieved_list[i]=1;
+
+         mbx_delimit_end (mbf);
+         fflush (mbf);
+         if (ferror (mbf))
+           {
+             error ("Error in fflush: %s", strerror (errno), NULL);
+             pop_close (server);
+             close (mbfi);
+             return (1);
+           }
        }
     }
 
        }
     }
 
@@ -586,16 +702,24 @@ popmail (char *user, char *outfile, char *password)
       return (1);
     }
 
       return (1);
     }
 
-  for (i = 1; i <= nmsgs; i++)
+  if (!keep_messages)
     {
     {
-      if (pop_delete (server, i))
+      for (i = 1; i <= nmsgs; i++)
        {
        {
-         error (pop_error, NULL, NULL);
-         pop_close (server);
-         return (1);
+         if (retrieved_list[i] == 1)
+           {
+             VERBOSE(("deleting message %d     \r", i));
+             if (pop_delete (server, i))
+               {
+                 error (pop_error, NULL, NULL);
+                 pop_close (server);
+                 return (1);
+               }
+           }
        }
     }
 
        }
     }
 
+  VERBOSE(("closing server             \n"));
   if (pop_quit (server))
     {
       error (pop_error, NULL, NULL);
   if (pop_quit (server))
     {
       error (pop_error, NULL, NULL);
@@ -615,7 +739,7 @@ pop_retr (popserver server, int msgno, int (*action)(), void *arg)
     {
       strncpy (Errmsg, pop_error, sizeof (Errmsg));
       Errmsg[sizeof (Errmsg)-1] = '\0';
     {
       strncpy (Errmsg, pop_error, sizeof (Errmsg));
       Errmsg[sizeof (Errmsg)-1] = '\0';
-      return (NOTOK);
+      return (POP_ERROR);
     }
 
   while (! (ret = pop_retrieve_next (server, &line)))
     }
 
   while (! (ret = pop_retrieve_next (server, &line)))
@@ -623,11 +747,11 @@ pop_retr (popserver server, int msgno, int (*action)(), void *arg)
       if (! line)
        break;
 
       if (! line)
        break;
 
-      if ((*action)(line, arg) != OK)
+      if ((*action)(line, arg) != POP_RETRIEVED)
        {
          strcpy (Errmsg, strerror (errno));
          pop_close (server);
        {
          strcpy (Errmsg, strerror (errno));
          pop_close (server);
-         return (NOTOK);
+         return (POP_ERROR);
        }
     }
 
        }
     }
 
@@ -635,10 +759,56 @@ pop_retr (popserver server, int msgno, int (*action)(), void *arg)
     {
       strncpy (Errmsg, pop_error, sizeof (Errmsg));
       Errmsg[sizeof (Errmsg)-1] = '\0';
     {
       strncpy (Errmsg, pop_error, sizeof (Errmsg));
       Errmsg[sizeof (Errmsg)-1] = '\0';
-      return (NOTOK);
+      return (POP_ERROR);
     }
 
     }
 
-  return (OK);
+  return (POP_RETRIEVED);
+}
+
+/* search the top lines of each message looking for a match */
+static int
+pop_search_top (popserver server, int msgno, int lines, struct re_pattern_buffer* regexp)
+{
+  char *line;
+  int ret;
+  int match = POP_DONE;
+
+  if (pop_top_first (server, msgno, lines, &line))
+    {
+      strncpy (Errmsg, pop_error, sizeof (Errmsg));
+      Errmsg[sizeof (Errmsg)-1] = '\0';
+      return (POP_ERROR);
+    }
+
+  while (! (ret = pop_top_next (server, &line)))
+    {
+      if (! line)
+       break;
+
+      /*      VERBOSE (("checking %s\n", line));*/
+      if (match != POP_RETRIEVED)
+       {
+         if ((ret = re_match (regexp, line, strlen (line), 0, 0)) == -2 )
+           {
+             strcpy (Errmsg, "error in regular expression");
+             pop_close (server);
+             return (POP_ERROR);
+           }
+         else if (ret >=0)
+           {
+             match = POP_RETRIEVED;
+           }
+       }
+    }
+
+  if (ret)
+    {
+      strncpy (Errmsg, pop_error, sizeof (Errmsg));
+      Errmsg[sizeof (Errmsg)-1] = '\0';
+      return (POP_ERROR);
+    }
+
+  return match;
 }
 
 /* Do this as a macro instead of using strcmp to save on execution time. */
 }
 
 /* Do this as a macro instead of using strcmp to save on execution time. */
@@ -654,35 +824,61 @@ mbx_write (char *line, FILE *mbf)
   if (IS_FROM_LINE (line))
     {
       if (fputc ('>', mbf) == EOF)
   if (IS_FROM_LINE (line))
     {
       if (fputc ('>', mbf) == EOF)
-       return (NOTOK);
+       return (POP_ERROR);
     }
   if (fputs (line, mbf) == EOF) 
     }
   if (fputs (line, mbf) == EOF) 
-    return (NOTOK);
+    return (POP_ERROR);
   if (fputc (0x0a, mbf) == EOF)
   if (fputc (0x0a, mbf) == EOF)
-    return (NOTOK);
-  return (OK);
+    return (POP_ERROR);
+  return (POP_RETRIEVED);
 }
 
 static int
 mbx_delimit_begin (FILE *mbf)
 {
   if (fputs ("\f\n0, unseen,,\n", mbf) == EOF)
 }
 
 static int
 mbx_delimit_begin (FILE *mbf)
 {
   if (fputs ("\f\n0, unseen,,\n", mbf) == EOF)
-    return (NOTOK);
-  return (OK);
+    return (POP_ERROR);
+  return (POP_RETRIEVED);
 }
 
 static int
 mbx_delimit_end (FILE *mbf)
 {
   if (putc ('\037', mbf) == EOF)
 }
 
 static int
 mbx_delimit_end (FILE *mbf)
 {
   if (putc ('\037', mbf) == EOF)
-    return (NOTOK);
-  return (OK);
+    return (POP_ERROR);
+  return (POP_RETRIEVED);
 }
 
 }
 
+/* Turn a name, which is an ed-style (but Emacs syntax) regular
+   expression, into a real regular expression by compiling it. */
+static struct re_pattern_buffer*
+compile_regex (char* pattern)
+{
+  char *err;
+  struct re_pattern_buffer *patbuf=0;
+  
+  patbuf = (struct re_pattern_buffer*) xmalloc (sizeof (struct re_pattern_buffer));
+  patbuf->translate = NULL;
+  patbuf->fastmap = NULL;
+  patbuf->buffer = NULL;
+  patbuf->allocated = 0;
+
+  err = (char*) re_compile_pattern (pattern, strlen (pattern), patbuf);
+  if (err != NULL)
+    {
+      error ("%s while compiling pattern", err, NULL);
+      return 0;
+    }
+
+  return patbuf;
+}
+
+
+
 #endif /* MAIL_USE_POP */
 \f
 #ifndef HAVE_STRERROR
 #endif /* MAIL_USE_POP */
 \f
 #ifndef HAVE_STRERROR
-static char *
+char *
 strerror (int errnum)
 {
   extern char *sys_errlist[];
 strerror (int errnum)
 {
   extern char *sys_errlist[];
index 728d1ca..bbec8ab 100644 (file)
@@ -38,7 +38,6 @@ Boston, MA 02111-1307, USA.  */
 
 #include <sys/types.h>
 #ifdef WINDOWSNT
 
 #include <sys/types.h>
 #ifdef WINDOWSNT
-#include "ntlib.h"
 #include <winsock.h>
 #undef SOCKET_ERROR
 #define RECV(s,buf,len,flags) recv(s,buf,len,flags)
 #include <winsock.h>
 #undef SOCKET_ERROR
 #define RECV(s,buf,len,flags) recv(s,buf,len,flags)
@@ -77,7 +76,9 @@ extern struct servent *hes_getservbyname (/* char *, char * */);
 #include <sys/stat.h>
 #include <sys/file.h>
 #include "../src/syswait.h"
 #include <sys/stat.h>
 #include <sys/file.h>
 #include "../src/syswait.h"
+#ifndef WINDOWSNT
 #include "../src/systime.h"
 #include "../src/systime.h"
+#endif
 #include <stdlib.h>
 #include <string.h>
 
 #include <stdlib.h>
 #include <string.h>
 
@@ -183,6 +184,7 @@ pop_open (char *host, char *username, char *password, int flags)
       username = getenv ("USER");
       if (! (username && *username))
        {
       username = getenv ("USER");
       if (! (username && *username))
        {
+#ifndef WINDOWSNT
          username = getlogin ();
          if (! (username && *username))
            {
          username = getlogin ();
          if (! (username && *username))
            {
@@ -198,6 +200,10 @@ pop_open (char *host, char *username, char *password, int flags)
                  return (0);
                }
            }
                  return (0);
                }
            }
+#else
+         strcpy (pop_error, "Could not determine username");
+         return (0);
+#endif
        }
     }
 
        }
     }
 
@@ -247,10 +253,12 @@ pop_open (char *host, char *username, char *password, int flags)
  
   if ((! password) && (! DONT_NEED_PASSWORD))
     {
  
   if ((! password) && (! DONT_NEED_PASSWORD))
     {
+#ifndef WINDOWSNT
       if (! (flags & POP_NO_GETPASS))
        {
          password = getpass ("Enter POP password:");
        }
       if (! (flags & POP_NO_GETPASS))
        {
          password = getpass ("Enter POP password:");
        }
+#endif
       if (! password)
        {
          strcpy (pop_error, "Could not determine POP password");
       if (! password)
        {
          strcpy (pop_error, "Could not determine POP password");
diff --git a/lib-src/process-depends.sh b/lib-src/process-depends.sh
new file mode 100644 (file)
index 0000000..258d606
--- /dev/null
@@ -0,0 +1,68 @@
+## Process the output of makedepend.
+## Copyright (c) 1994 Amdahl Corporation.
+## Written by Ben Wing, December 1994.
+
+## This file is used as part of 'make depend', to produce the
+## dependency list for src/Makefile.in.in.
+
+## Unfortunately, makedepend (at least the one that comes as part
+## of Open Windows under Solaris) is stupid and doesn't follow the
+## documented behavior.  So we have to force the definitions of
+## certain options through -D flags (even though it's supposed to
+## pick this up), and post-process the output to get rid of stuff
+## we don't want.
+
+## The sed stage gets rid of include files in other directories,
+## except for lwlib.h (makedepend puts system include files in,
+## which is pretty stupid).  We also get rid of some standard
+## include files that are in every or pretty much every file
+## and where changes in those files don't usually merit
+## recompilation of everything.  Finally, we eliminate entirely
+## the dependencies for some files (such as unex*.c) that get
+## screwed up by makedepend.  We just put those in by hand at
+## the top of the dependency list.
+
+## For Mule, we need to do some additional processing: conversion
+## to MULESRCDIR (at least so that the include files don't get
+## wiped out by the next stage) and removing the mule/ prefix
+## from the object file names.
+
+## The awk stage puts one dependency per line.  Then we pass
+## the result through sort and uniq (makedepend is supposed
+## to not put in duplicate dependencies, but it does so
+## occasionally).
+
+## After running 'make depend', verify that the output (in
+## depend.out) is reasonable and then replace the stuff in
+## Makefile.in.in marked "generated by 'make depend'".
+
+sed -e '
+1d
+s/ \/[^ ]*\/lwlib\// $(LWLIBSRCDIR)\//g
+s/\.\.\/etc\//${srcdir}\/${etcdir}/g
+s/^mule\///g
+s/ mule\// $(MULESRCDIR)\/mule\//g
+s/ \/[^ ]*\.h//g
+s/ \/[^ ]*gray//g
+s/ [a-z][^ ]*\/[^ ]*\.h//g
+s/ lisp\.h//g
+s/ lisp-union\.h//g
+s/ lisp-disunion\.h//g
+s/ lrecord\.h//g
+s/ emacsfns\.h//g
+s/ symeval\.h//g
+s/ symsinit\.h//g
+s/ syssignal\.h//g
+s/ intl\.h//g
+s/ tt_c\.h//g
+s/ descrip\.h//g
+/^unex/d
+/^sgiplay/d
+/^Extern/d
+/^extw/d
+/^[^ ]*\.o:$/d
+' | awk '
+{ for (i = 2; i <= NF; i++)
+  printf ("%s %s\n", $1, $i)
+}
+' | sort | uniq
diff --git a/lib-src/process-gnu-depends.sh b/lib-src/process-gnu-depends.sh
new file mode 100755 (executable)
index 0000000..b08a916
--- /dev/null
@@ -0,0 +1,49 @@
+#!/bin/sh
+
+perl -e '
+while (<>)
+{
+    chop;
+    $foo .= $_;
+    if (!/\\$/)
+    {
+        @foo = split (/[ \\:\n]+/, $foo);
+        $filename = $foo[0];
+       if (($filename =~ /^unex/) ||
+           ($filename =~ /^sgiplay/) ||
+           ($filename =~ /^Extern/) ||
+           ($filename =~ /^extw/))
+       {
+           $foo = "";
+           next;
+       }
+        @foo = grep (!/\.c$/, @foo);
+        @foo = grep ((s/\/.*lwlib\//\$(LWLIBSRCDIR)\//, 1), @foo);
+        @foo = grep (!/lisp\.h/, @foo);
+       @foo = grep (!/lisp\.h/, @foo);
+       @foo = grep (!/lisp-union\.h/, @foo);
+       @foo = grep (!/lisp-disunion\.h/, @foo);
+       @foo = grep (!/lrecord\.h/, @foo);
+       @foo = grep (!/emacsfns\.h/, @foo);
+       @foo = grep (!/symeval\.h/, @foo);
+       @foo = grep (!/symsinit\.h/, @foo);
+       @foo = grep (!/syssignal\.h/, @foo);
+       @foo = grep (!/intl\.h/, @foo);
+       @foo = grep (!/tt_c\.h/, @foo);
+       @foo = grep (!/descrip\.h/, @foo);
+        shift @foo;
+       if (!$#foo)
+       {
+           next;
+       }
+        foreach $i (0 .. $#foo)
+       {
+            $foo[$i] = $filename . ": " . $foo[$i];
+       }
+       print $filename . ": config.h\n";
+        print join ("\n", @foo);
+        print "\n";
+        $foo = "";
+    }
+}
+' | sort | uniq
\ No newline at end of file
index 5644d21..ec62ebb 100644 (file)
@@ -41,6 +41,25 @@ static struct timeval TV1, TV2;
 static int watch_not_started = 1; /* flag */
 static char time_string[30];
 
 static int watch_not_started = 1; /* flag */
 static char time_string[30];
 
+#ifdef WINDOWSNT
+#include <sys/timeb.h>
+/* Emulate gettimeofday (Ulrich Leodolter, 1/11/95).  */
+void 
+gettimeofday (struct timeval *tv, struct timezone *tz)
+{
+  struct _timeb tb;
+  _ftime (&tb);
+
+  tv->tv_sec = tb.time;
+  tv->tv_usec = tb.millitm * 1000L;
+  if (tz) 
+    {
+      tz->tz_minuteswest = tb.timezone;        /* minutes west of Greenwich  */
+      tz->tz_dsttime = tb.dstflag;     /* type of dst correction  */
+    }
+}
+#endif
+
 /* Reset the stopwatch to zero.  */
 
 static void
 /* Reset the stopwatch to zero.  */
 
 static void
index 9ff1cbf..7ddbcd3 100755 (executable)
@@ -59,7 +59,7 @@ $GS= $ENV{'GS'} || 'gs';
 #$PSTOPPM= $ENV{'PSTOPPM'} ||
 #    'pstoppm.ps';
 
 #$PSTOPPM= $ENV{'PSTOPPM'} ||
 #    'pstoppm.ps';
 
-# Available in the PBMPLUS libary         
+# Available in the PBMPLUS library        
 $PNMCROP=$ENV{'PNMCROP'} || 'pnmcrop' ;
 
 # Also in PBMPLUS
 $PNMCROP=$ENV{'PNMCROP'} || 'pnmcrop' ;
 
 # Also in PBMPLUS
index 8fa12d9..2a9e7d1 100755 (executable)
@@ -28,7 +28,7 @@ Options:
 
 Report bugs to <bug-gnu-emacs@prep.ai.mit.edu>.'
 
 
 Report bugs to <bug-gnu-emacs@prep.ai.mit.edu>.'
 
-Id='$Id: rcs2log,v 1.2 1997/07/09 04:31:03 steve Exp $'
+Id='$Id: rcs2log,v 1.37 1997/03/21 22:19:30 eggert Exp $'
 
 # Copyright 1992, 1993, 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
 
 
 # Copyright 1992, 1993, 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
 
index f3830ed..86830ba 100644 (file)
@@ -121,7 +121,6 @@ int start_child(char* cmdline, int wait_for_child)
 {
    STARTUPINFO start;
    SECURITY_ATTRIBUTES sec_attrs;
 {
    STARTUPINFO start;
    SECURITY_ATTRIBUTES sec_attrs;
-   SECURITY_DESCRIPTOR sec_desc;
    PROCESS_INFORMATION child;
    int retval;
 
    PROCESS_INFORMATION child;
    int retval;
 
@@ -240,7 +239,6 @@ void process_execname(char *exec, const char* execname,const char* execpath )
    char buf[MAX_PATH + FILENAME_MAX + 100];
    int i,j;
 
    char buf[MAX_PATH + FILENAME_MAX + 100];
    int i,j;
 
-   int len = 0;
    /* 
     * STARTS WITH / or \ 
     * execpath NOT used
    /* 
     * STARTS WITH / or \ 
     * execpath NOT used
@@ -625,7 +623,6 @@ char *pfopen(char *retval, const char *name, const char *dirs)
     char *ptr;
     char *tdirs;
     char returnval[MAX_PATH + FILENAME_MAX + 100];
     char *ptr;
     char *tdirs;
     char returnval[MAX_PATH + FILENAME_MAX + 100];
-    char *recursive_name;
     int foundit = FALSE;
     
     returnval[0] = '\0';
     int foundit = FALSE;
     
     returnval[0] = '\0';
diff --git a/lib-src/run.h b/lib-src/run.h
new file mode 100644 (file)
index 0000000..896dc5c
--- /dev/null
@@ -0,0 +1,100 @@
+// #define DEBUG
+// #define DEBUGALL
+
+// B19 - egcs automatically defines CYGWIN32 but not CYGWIN
+// B20 - egcs automatically defines both CYGWIN32 and CYGWIN
+// Bfuture - (???) defines CYGWIN but not CYGWIN32
+#if defined(__CYGWIN32__)
+#if !defined(__CYGWIN__)
+ #define B19
+ #define __CYGWIN__
+#else
+ #define B20
+#endif
+#else
+#if defined(__CYGWIN__)
+ #define B21
+#endif
+#endif
+// Now: use __CYGWIN__ to represent any version
+// distinguish using B19, B20, or B21
+
+#if defined(__CYGWIN__)
+#ifdef B19
+#define CYGWIN_ATTACH_HANDLE_TO_FD(a)      cygwin32_attach_handle_to_fd      a
+#define CYGWIN_CONV_TO_FULL_POSIX_PATH(a)  cygwin32_conv_to_full_posix_path  a 
+#define CYGWIN_CONV_TO_FULL_WIN32_PATH(a)  cygwin32_conv_to_full_win32_path  a
+#define CYGWIN_CONV_TO_POSIX_PATH(a)       cygwin32_conv_to_posix_path       a
+#define CYGWIN_CONV_TO_WIN32_PATH(a)       cygwin32_conv_to_win32_path       a
+#define CYGWIN_DETACH_DLL(a)               cygwin32_detach_dll               a
+#define CYGWIN_GETSHARED(a)                cygwin32_getshared                a
+#define CYGWIN_INTERNAL(a)                 cygwin32_internal                 a
+#define CYGWIN_POSIX_PATH_LIST_P(a)        cygwin32_posix_path_list_p        a
+#define CYGWIN_POSIX_TO_WIN32_PATH_LIST(a) cygwin32_posix_to_win32_path_list a
+#define CYGWIN_POSIX_TO_WIN32_PATH_LIST_BUF_SIZE(a) cygwin32_posix_to_win32_path_list_buf_size a
+#define CYGWIN_SPLIT_PATH(a)               cygwin32_split_path               a
+#define CYGWIN_WIN32_TO_POSIX_PATH_LIST(a) cygwin32_win32_to_posix_path_list a
+#define CYGWIN_WIN32_TO_POSIX_PATH_LIST_BUF_SIZE(a) cygwin32_win32_to_posix_path_list_buf_size a
+#define CYGWIN_WINPID_TO_PID(a)            cygwin32_winpid_to_pid            a
+#else
+#define CYGWIN_ATTACH_HANDLE_TO_FD(a)      cygwin_attach_handle_to_fd      a
+#define CYGWIN_CONV_TO_FULL_POSIX_PATH(a)  cygwin_conv_to_full_posix_path  a 
+#define CYGWIN_CONV_TO_FULL_WIN32_PATH(a)  cygwin_conv_to_full_win32_path  a
+#define CYGWIN_CONV_TO_POSIX_PATH(a)       cygwin_conv_to_posix_path       a
+#define CYGWIN_CONV_TO_WIN32_PATH(a)       cygwin_conv_to_win32_path       a
+#define CYGWIN_DETACH_DLL(a)               cygwin_detach_dll               a
+#define CYGWIN_GETSHARED(a)                cygwin_getshared                a
+#define CYGWIN_INTERNAL(a)                 cygwin_internal                 a
+#define CYGWIN_POSIX_PATH_LIST_P(a)        cygwin_posix_path_list_p        a
+#define CYGWIN_POSIX_TO_WIN32_PATH_LIST(a) cygwin_posix_to_win32_path_list a
+#define CYGWIN_POSIX_TO_WIN32_PATH_LIST_BUF_SIZE(a) cygwin_posix_to_win32_path_list_buf_size a
+#define CYGWIN_SPLIT_PATH(a)               cygwin_split_path               a
+#define CYGWIN_WIN32_TO_POSIX_PATH_LIST(a) cygwin_win32_to_posix_path_list a
+#define CYGWIN_WIN32_TO_POSIX_PATH_LIST_BUF_SIZE(a) cygwin_win32_to_posix_path_list_buf_size a
+#define CYGWIN_WINPID_TO_PID(a)            cygwin_winpid_to_pid            a
+#endif
+#endif
+
+#if defined(__CYGWIN__)
+ #define PATH_SEP_CHAR_STR "/"
+ #define SEP_CHARS ":"
+#else
+ #define PATH_SEP_CHAR_STR "\\"
+ #define SEP_CHARS ";"
+#endif
+
+#ifndef RC_INVOKED
+
+#define MAX_ARGS 20
+
+#ifdef DEBUG
+ #define Trace(x)   Trace_ x
+#else
+ #define Trace(x)
+#endif
+
+#define NUM_EXTENSIONS 2
+const char* exts[NUM_EXTENSIONS] = { "", ".exe" };
+
+char* pfopen(char *retval, const char *name, const char *dirs);
+void error(char* fmt, ...);
+void message(char* fmt, ...);
+void Trace_(char* fmt, ...);
+int get_exec_name_and_path(char* execname, char* execpath);
+char* my_strtok(char* s, const char* delim, char** lasts);
+int parse_cmdline_to_arg_array(char* argv[MAX_ARGS], char* cmdline);
+void strip_exe(char* s);
+int start_child(char* cmdline, int wait_for_child);
+void xemacs_special(char* exec);
+int build_cmdline(char* new_cmdline, char* exec, int argc, char* argv[]);
+void process_execname(char *exec, const char* execname, const char* execpath);
+int fileExists(char* fullname, const char* path, const char* name);
+int endsWith(const char* s1, const char* s2);
+int fileExistsMulti(char* fullname, const char* path, 
+                    const char* name_noext, const char* exts[],
+                    const int extcnt);
+
+#endif /* RC_INVOKED */
+
+
+
diff --git a/lib-src/run.rc b/lib-src/run.rc
new file mode 100644 (file)
index 0000000..35ec240
--- /dev/null
@@ -0,0 +1,30 @@
+XEmacs ICON PRELOAD "xemacs.ico"
+XEmacsFile ICON "file.ico"
+XEmacsLisp ICON "lisp.ico"
+
+#include <windows.h>
+#include "run.h"
+
+1 VERSIONINFO 
+FILEVERSION 1, 1, 4, 0
+PRODUCTVERSION 1, 1, 4, 0
+FILEOS VOS_NT_WINDOWS32
+FILETYPE VFT_APP
+FILESUBTYPE 0
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+  BLOCK "04090000"
+  BEGIN
+   VALUE "CompanyName", "Charles S. Wilson\000"
+   VALUE "FileDescription", "Runs console-mode programs sans console.\000"
+   VALUE "FileVersion", "1.1.4\000"
+   VALUE "InternalName", "run\000"
+   VALUE "LegalCopyright", "Copyright Â© 1998 Charles S. Wilson\000"
+   VALUE "OriginalFilename", "run.exe\000"
+   VALUE "ProductName","run\000"
+   VALUE "ProductVersion","1.1.4\000"
+   VALUE "GPL Copyleft", "Released under the GNU General Public License version 2 --------------------------------------- This program is free software; you can redistribute it and/or modify it under the termms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. --------------------------------------- This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details. --------------------------------------- You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\000"
+  END
+ END
+END
index 89ecafd..b7c3baa 100644 (file)
@@ -224,7 +224,8 @@ main (int argc, char *argv[])
     printf ("@unnumbered Command Summary for GNU Emacs\n");
     printf ("@table @asis\n");
     printf ("\n");
     printf ("@unnumbered Command Summary for GNU Emacs\n");
     printf ("@table @asis\n");
     printf ("\n");
-    printf ("@let@ITEM@item\n");
+    printf ("@iftex\n");
+    printf ("@global@let@ITEM=@item\n");
     printf ("@def@item{@filbreak@vskip5pt@ITEM}\n");
     printf ("@font@tensy cmsy10 scaled @magstephalf\n");
     printf ("@font@teni cmmi10 scaled @magstephalf\n");
     printf ("@def@item{@filbreak@vskip5pt@ITEM}\n");
     printf ("@font@tensy cmsy10 scaled @magstephalf\n");
     printf ("@font@teni cmmi10 scaled @magstephalf\n");
@@ -237,6 +238,7 @@ main (int argc, char *argv[])
     printf ("@chardef@@64\n");
     printf ("@catcode43=12\n");
     printf ("@tableindent-0.2in\n");
     printf ("@chardef@@64\n");
     printf ("@catcode43=12\n");
     printf ("@tableindent-0.2in\n");
+    printf ("@end iftex\n");
 
     /* print each function from the array */
 
 
     /* print each function from the array */
 
@@ -260,6 +262,7 @@ main (int argc, char *argv[])
            putchar ('\n');
          }
        printf("@end display\n");
            putchar ('\n');
          }
        printf("@end display\n");
+       if ( i%200 == 0 && i != 0 ) printf("@end table\n\n@table @asis\n");
       }
 
     printf ("@end table\n");
       }
 
     printf ("@end table\n");
index 6af202c..ee56e65 100644 (file)
@@ -43,14 +43,24 @@ echo " (using $EMACS)"
 
 export EMACS
 
 
 export EMACS
 
-REAL=`cd \`dirname $EMACS\` ; pwd | sed 's|^/tmp_mnt||'`/`basename $EMACS`
+EMACS_DIR=`cd \`dirname $EMACS\` && pwd`;
+CANON_PWD=`pwd`
+# Account for various system automounter configurations
+if test -d "/net"; then
+  if test -d "/tmp_mnt/net"; then tdir="/tmp_mnt/net"; else tdir="/tmp_mnt"; fi
+  EMACS_DIR=`echo "$EMACS_DIR" | \
+   sed -e "s|^${tdir}/|/net/|" -e "s|^/a/|/net/|" -e "s|^/amd/|/net/|"`
+  CANON_PWD=`echo "$CANON_PWD" | \
+   sed -e "s|^${tdir}/|/net/|" -e "s|^/a/|/net/|" -e "s|^/amd/|/net/|"`
+fi
+REAL="$EMACS_DIR/`basename $EMACS`"
 
 
-echo "Rebuilding autoloads in `pwd|sed 's|^/tmp_mnt||'`"
+echo "Rebuilding autoloads in $CANON_PWD"
 echo "          with $REAL..."
 
 if [ "`uname -r | sed 's/\(.\).*/\1/'`" -gt 4 ]; then
   echon()
 echo "          with $REAL..."
 
 if [ "`uname -r | sed 's/\(.\).*/\1/'`" -gt 4 ]; then
   echon()
-  {    
+  {
     /bin/echo $* '\c'
   }
 else
     /bin/echo $* '\c'
   }
 else
index 7e0a2ea..dd62a86 100755 (executable)
@@ -45,13 +45,20 @@ echo " (using $EMACS)"
 
 export EMACS
 
 
 export EMACS
 
-REAL=`cd \`dirname $EMACS\` ; pwd | sed 's|^/tmp_mnt||'`/`basename $EMACS`
+EMACS_DIR=`cd \`dirname $EMACS\` && pwd`;
+# Account for various system automounter configurations
+if test -d "/net"; then
+  if test -d "/tmp_mnt/net"; then tdir="/tmp_mnt/net"; else tdir="/tmp_mnt"; fi
+  EMACS_DIR=`echo "$EMACS_DIR" | \
+   sed -e "s|^${tdir}/|/net/|" -e "s|^/a/|/net/|" -e "s|^/amd/|/net/|"`
+fi
+REAL="$EMACS_DIR/`basename $EMACS`"
 
 echo "Rebuilding custom-loads with $REAL..."
 
 if [ "`uname -r | sed 's/\(.\).*/\1/'`" -gt 4 ]; then
   echon()
 
 echo "Rebuilding custom-loads with $REAL..."
 
 if [ "`uname -r | sed 's/\(.\).*/\1/'`" -gt 4 ]; then
   echon()
-  {    
+  {
     /bin/echo $* '\c'
   }
 else
     /bin/echo $* '\c'
   }
 else
@@ -62,12 +69,7 @@ else
 fi
 
 # Compute patterns to ignore when searching for files
 fi
 
 # Compute patterns to ignore when searching for files
-# These directories don't have customizations, or are partially broken.
-# If some of the packages listed here are customized, don't forget to
-#  remove the directory!
-ignore_dirs="cl egg eos its language locale sunpro term \
-tooltalk iso electric \
-hm--html-menus gnats pcl-cvs vm"
+ignore_dirs=""
 
 # Only use Mule XEmacs to build Mule-specific autoloads & custom-loads.
 echon "Checking for Mule support..."
 
 # Only use Mule XEmacs to build Mule-specific autoloads & custom-loads.
 echon "Checking for Mule support..."
@@ -75,7 +77,7 @@ lisp_prog='(princ (featurep (quote mule)))'
 mule_p="`$EMACS -batch -q -no-site-file -eval \"$lisp_prog\"`"
 if test "$mule_p" = nil ; then
        echo No
 mule_p="`$EMACS -batch -q -no-site-file -eval \"$lisp_prog\"`"
 if test "$mule_p" = nil ; then
        echo No
-       ignore_dirs="$ignore_dirs mule leim skk"
+       ignore_dirs="$ignore_dirs mule"
 else
        echo Yes
 fi
 else
        echo Yes
 fi
index f0cfc45..5d3f461 100644 (file)
@@ -60,12 +60,24 @@ else
   }
 fi
 
   }
 fi
 
-REAL=`cd \`dirname $EMACS\` ; pwd | sed 's|^/tmp_mnt||'`/`basename $EMACS`
-BYTECOMP="$REAL -batch -vanilla "
-echo "Recompiling in `pwd|sed 's|^/tmp_mnt||'`"
+EMACS_DIR=`cd \`dirname $EMACS\` && pwd`;
+CANON_PWD=`pwd`
+# Account for various system automounter configurations
+if test -d "/net"; then
+  if test -d "/tmp_mnt/net"; then tdir="/tmp_mnt/net"; else tdir="/tmp_mnt"; fi
+  EMACS_DIR=`echo "$EMACS_DIR" | \
+   sed -e "s|^${tdir}/|/net/|" -e "s|^/a/|/net/|" -e "s|^/amd/|/net/|"`
+  CANON_PWD=`echo "$CANON_PWD" | \
+   sed -e "s|^${tdir}/|/net/|" -e "s|^/a/|/net/|" -e "s|^/amd/|/net/|"`
+fi
+REAL="$EMACS_DIR/`basename $EMACS`"
+
+echo "Recompiling in $CANON_PWD"
 echo "          with $REAL..."
 
 echo "          with $REAL..."
 
-$EMACS -batch -vanilla -l `pwd`/lisp/cleantree -f batch-remove-old-elc lisp
+BYTECOMP="$REAL -batch -vanilla "
+
+$EMACS -batch -vanilla -l $CANON_PWD/lisp/cleantree -f batch-remove-old-elc lisp
 
 prune_vc="( -name '.*' -o -name SCCS -o -name RCS -o -name CVS ) -prune -o"
 
 
 prune_vc="( -name '.*' -o -name SCCS -o -name RCS -o -name CVS ) -prune -o"
 
@@ -94,11 +106,7 @@ lisp_prog='(princ (featurep (quote mule)))'
 mule_p="`$EMACS -batch -vanilla -eval \"$lisp_prog\"`"
 if test "$mule_p" = nil ; then
        echo No
 mule_p="`$EMACS -batch -vanilla -eval \"$lisp_prog\"`"
 if test "$mule_p" = nil ; then
        echo No
-       ignore_dirs="$ignore_dirs its egg mule language leim skk"
-       ignore_pattern='\!/tl/char-table.el$!d
-\!/tl/chartblxmas.el$!d
-\!/mu/latex-math-symbol.el$!d
-'
+       ignore_dirs="$ignore_dirs mule"
 else
   echo Yes
 fi
 else
   echo Yes
 fi
@@ -168,7 +176,6 @@ ignore_pattern="$ignore_pattern"'
 \!/site-init.el$!d
 \!/version.el$!d
 \!/very-early-lisp.el$!d
 \!/site-init.el$!d
 \!/version.el$!d
 \!/very-early-lisp.el$!d
-\!/Installation.el$!d
 '
 
 echo "Compiling files without .elc..."
 '
 
 echo "Compiling files without .elc..."
index f5b7410..6a76772 100644 (file)
@@ -9,6 +9,7 @@
 
 /* Synched up with: FSF 19.28. */
 
 
 /* Synched up with: FSF 19.28. */
 
+#define DONT_ENCAPSULATE
 #include <../src/config.h>
 
 #include <stdio.h>
 #include <../src/config.h>
 
 #include <stdio.h>
diff --git a/lisp/.cvsignore b/lisp/.cvsignore
new file mode 100644 (file)
index 0000000..a7ad904
--- /dev/null
@@ -0,0 +1 @@
+finder-inf.el
index c2f1b30..a8c5f60 100644 (file)
+1999-05-14  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+       * XEmacs 21.2.14 is released
+
+1999-05-13  SL Baur  <steve@gneiss.etl.go.jp>
+
+        * about.el: update contact info for jason and slb.
+
+1999-05-13  SL Baur  <steve@gneiss.etl.go.jp>
+
+       * mule/european.el (setup-romanian-environment): Add Romanian
+       support from Emacs/Mule romanian.el.
+
+1999-03-17  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * cus-face.el: Label all custom changes with the 'custom' tag.
+
+       * cus-edit.el: idem ditto.
+
+       * faces.el: Added suport for adding device tags to various functions.
+       (custom): New device tag.
+       (face-spec-set): Call reset face with tags argument. No longer do
+       x-init-global-faces hack.
+
+       * faces.el (frob-face-property): Use an anonymous specifier to map
+       frob-face-property-1 over.
+
+       * x-font-menu.el (font-menu-set-font): Always specify all
+       properties to custom.
+
+1999-05-12  SL Baur  <steve@gneiss.etl.go.jp>
+
+       * mule/european.el (setup-czech-environment): Add czech support.
+       From David Sauer <davids@orfinet.cz>
+
+1999-03-15  SL Baur  <steve@xemacs.org>
+
+       * check-features.el: Turn hard errors into warnings.
+
+1999-03-21  SL Baur  <steve@xemacs.org>
+
+       * simple.el (delete-key-deletes-forward): As per discussion on
+       xemacs-beta, default to t.
+
+1999-05-11  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * loadup.el: Define Installation-string before loading anything.
+
+1999-05-06  Gunnar Evermann  <ge204@eng.cam.ac.uk>
+
+       * files.el (auto-mode-alist): fix typo in regex for .bash_* files
+       From Anders Stenman <stenman@isy.liu.se>
+
+1999-05-03  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * wid-edit.el (widget-glyph-find): Ditto.
+
+       * packages.el (locate-library): Ditto.
+
+       * loadup.el (really-early-error-handler): Ditto.
+
+       * lib-complete.el (read-library): Ditto.
+
+       * faces.el (set-face-stipple): Ditto.
+
+       * code-files.el (load): Use new calling style of locate-file.
+
+1999-05-03  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * packages.el (packages-unbytecompiled-lisp): Installation.el is
+       dead.
+
+1999-05-03  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * dumped-lisp.el (preloaded-file-list): Don't load
+       Installation.el.
+
+       * loadup.el (Installation-string): Define it here.
+
+1999-05-03  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * dumped-lisp.el (preloaded-file-list): Revert previous change --
+       Installation.el needs to be loaded before `dump-paths', otherwise
+       the dumping process won't find it.
+
+1999-03-13  Adrian Aichner  <aichner@ecf.teradyne.com>
+
+       * dumped-lisp.el (preloaded-file-list): Load Installation.el after
+       subr so that we can use `replace-in-string' in Installation.el to
+       get rid of C-m chars under the native Windows build.
+
+1999-04-29  Andy Piper  <andy@xemacs.org>
+
+       * make-docfile.el: canonicalize file and directory names.
+
+       * device.el (call-device-method): new function for calling device
+       specific methods.
+       (define-device-method): new function for defining device methods.
+       (define-device-method*): ditto.
+
+1999-04-27  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * subr.el (buffer-string): Support new FSFmacs 20.4 stuff.
+
+1999-04-08  MORIOKA Tomohiko  <tomo@etl.go.jp>
+
+       * mule/cyrillic.el (cyrillic-koi8-r-decode-table): New variable.
+       (cyrillic-koi8-r-encode-table): Likewise.
+       (ccl-decode-koi8): Use `cyrillic-koi8-r-decode-table'.
+       (ccl-encode-koi8): Use `cyrillic-koi8-r-encode-table'.
+
+       * mule/mule-misc.el (split-char-or-char-int): New function [moved
+       from vietnamese.el].
+
+       * mule/vietnamese.el: Move function `split-char-or-char-int' to
+       mule/mule-misc.el.
+
+1999-04-08  MORIOKA Tomohiko  <tomo@etl.go.jp>
+
+       * mule/thai-xtis.el:
+       - Change font registry name from "Thai94x94-0" to "xtis-0".
+       - Change mnemonic of coding-system `tis-620' to "TIS620".
+
+1999-04-06  MORIOKA Tomohiko  <tomo@etl.go.jp>
+
+       * mule/ethiopic.el: fixed.
+
+1999-03-30  MORIOKA Tomohiko  <tomo@etl.go.jp>
+
+       * dumped-lisp.el: Add ethiopic, thai-xtis and vietnamese.
+
+       * mule/thai-xtis.el: New file.
+
+       * mule/vietnamese.el: New file.
+
+       * mule/ethiopic.el: New file.
+
+1999-04-22  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * bytecomp.el (byte-compile-close-variables): Leave
+       debug-issue-ebola-notices alone.
+
+1999-04-11  Oscar Figueiredo  <Oscar.Figueiredo@di.epfl.ch>
+
+       * ldap.el (ldap-host-parameters-alist): Make `Search Base' appear
+       at the top of the buffer since it is the most important thing to
+       customize
+       (ldap-get-host-parameter): New defun
+       (ldap-search): Add a new parameter `withdn' to retrieve the
+       distinguished names of entries
+
+1999-04-22  Kai Haberzettl  <khaberz@synnet.de>
+
+       * startup.el (splash-frame-body): Date and spelling fixes.
+
+1999-03-16  Colin Rafferty  <colin@xemacs.org>
+
+       * view-less.el (toggle-truncate-lines): add autoload tag
+
+1999-04-19  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * format.el (format-alist): Disable image stuff.
+
+1999-04-17  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * wid-edit.el (widget-glyph-find): Search by directories, then by
+       suffixes rather than the other way around.
+       (widget-image-conversion): Renamed to
+       `widget-image-file-name-suffixes'.
+
+1999-04-16  Olivier Galibert  <galibert@pobox.com>
+
+       * mule/mule-charset.el: Made old functions obsolete, remove the
+       unspeakably evil (and inexistant in fsf's) charset-leading-byte.
+       (charset-iso-graphic-plane): Rename from charset-graphic.
+       (charset-iso-final-char): Rename from charset-final.
+       (charset-width): Rename from charset-columns.
+       (charset-bytes): Added from fsf compatibility, returns always 1.
+
+       * mule/mule-misc.el: Move charset-doc-string alias to
+       mule-charset.el
+
+1999-04-14  Colin Rafferty  <colin@xemacs.org>
+
+       * x-faces.el (x-make-font-bold-italic): honor
+       *try-oblique-before-italic-fonts*
+
+1999-04-14  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * cl-extra.el (coerce): Coerce numbers to characters correctly.
+
+1998-12-02  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * x-faces.el (try-oblique-before-italic-fonts): Use the right
+       name.
+
+1999-04-14  Dave Gillesipe  <daveg@synaptics.com>
+
+       * cl-extra.el (equalp): Would bug out for lists.
+
+1999-03-12  Charles G Waldman  <cgw@fnal.gov>
+
+       * about.el (about-hackers):  Change cgw's email address
+
+1999-03-12  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+       * XEmacs 21.2.13 is released
+
+1999-03-12  SL Baur  <steve@xemacs.org>
+
+       * simple.el (delete-key-deletes-forward): Revert to previous
+       behavior.
+
+1999-01-18  Didier Verna  <verna@inf.enst.fr>
+
+       * menubar-items.el (xemacs-splash-buffer): handle the case of
+       multiple elements in the splash buffer body.
+
+       * startup.el (splash-frame-timeout): new constant: interval
+       between splash buffer elements.
+       (command-line-1): handle splash buffer with multiple elements (use
+       a timeout).
+       (splash-frame-body): Originally `startup-splash-frame-body'.
+       Rewrote a cleaner and more readable version. This can now be array,
+       in which case each element is displayed in turn in the splash buffer.
+       (splash-frame-static-body): new constant. Persistent information
+       across all splash buffer elements (preserves the possibility to give
+       it in different languages.
+       (circulate-splash-frame-elements): new function. Used as a timeout
+       to circulate through all splash frame elements and display them in
+       sequence.
+       (display-splash-frame): originally `startup-splash-frame'. Handle
+       the case of multiple elements in the splash buffer body. Now
+       returns a timeout id if multiple elements to display, or nil.
+
+1999-02-19  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * x-faces.el (x-init-global-faces): Add default tag to specifiers, 
+       so they can be overridden by x-init-face-from-resources.
+       Additionally specify the font name also with an x tag.
+
+1999-03-08  Andy Piper  <andy@xemacs.org>
+       
+       * package-get.el (package-get-base): autoload.
+
+       * menubar-items.el (default-menubar): add update menu item. Fix
+       custom menu to only be activated when package-base is available.
+
+       * package-get.el (package-get-custom): don't load
+       package-get-custom as it is auto-generated. Fix group definition.
+
+1999-03-05  Didier Verna  <verna@inf.enst.fr>
+
+       * cus-dep.el (Custom-make-dependencies): use `prin1-to-string'
+       instead of `symbol-name' (Thanks Kyle).
+
+       * cus-edit.el (custom-save-variables): use `prin1' instead of
+       princ to write symbols.
+
+1999-03-05  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+       * XEmacs 21.2.12 is released
+
+1999-03-05  SL Baur  <steve@xemacs.org>
+
+       * menubar-items.el (default-menubar): Add kfm browsing support.
+       From Neal Becker <nbecker@fred.net>
+
+1999-03-03  Steven Baur  <steve@gneiss.etl.go.jp>
+
+       * font-lock.el (font-lock-revert-cleanup): Null out to avoid repeated
+       calls to font-lock during buffer reversion.
+
+1999-02-12  Didier Verna  <verna@inf.enst.fr>
+
+       * info.el (Info-build-node-completions): unconditionally widen the
+       tag table buffer.
+
+1999-02-19  Paul Stodghill  <stodghil@cs.cornell.edu>
+
+       * x-faces.el (x-init-face-from-resources):
+       Only set fonts in the 'x locale.
+
+1999-03-04  Adrian Aichner  <aichner@ecf.teradyne.com>
+
+       * package-ui.el (pui-install-selected-packages): Don't throw on
+       `package-admin-delete-binary-package' returning nil since it's
+       normal.  Reindent function.
+       (pui-add-required-packages): Handle case where packages selected
+       for installation have never been installed.
+
+1999-03-03  Martin Buchholz  <martin@xemacs.org>
+
+       * menubar-items.el (default-menubar): 
+       Implement the ``Mule->Set coding system of process'' menu item.
+
+1999-02-18  Martin Buchholz  <martin@xemacs.org>
+
+       * files.el (auto-mode-alist): Use c-mode for *.i pre-processed cpp 
+       files
+       - Change some `if's to `when's
+
+1999-03-01  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+       * XEmacs 21.2.11 is released
+
+1999-02-22  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * userlock.el (ask-user-about-supersession-threat-dbox): Guard
+       against window close (Fix Bug #460).
+       (ask-user-about-lock-dbox): Idem.
+
+1999-02-25  SL Baur  <steve@xemacs.org>
+
+       * mule/mule-charset.el (charset-leading-byte): New function.
+       From Kazuyuki IENAGA <ienaga@jsys.co.jp>
+
+1999-02-12  Andy Piper  <andy@xemacs.org>
+
+       * about.el (xemacs-hackers): change andy's email address.
+       (about-url-alist): change andy's web page address.
+       (about-xemacs): add piper.
+
+1999-02-16  SL Baur  <steve@xemacs.org>
+
+       * dumped-lisp.el (preloaded-file-list): Core mule files moved out
+       of mule-base into lisp/mule.
+
+1999-02-16  SL Baur  <steve@xemacs.org>
+
+       * mule/arabic.el:
+       mule/canna-leim.el:
+       mule/chinese.el:
+       mule/cyrillic.el:
+       mule/english.el:
+       mule/european.el:
+       mule/greek.el:
+       mule/hebrew.el:
+       mule/japanese.el:
+       mule/kinsoku.el:
+       mule/korean.el:
+       mule/misc-lang.el:
+       mule/mule-category.el:
+       mule/mule-ccl.el:
+       mule/mule-charset.el:
+       mule/mule-cmds.el:
+       mule/mule-coding.el:
+       mule/mule-files.el:
+       mule/mule-help.el:
+       mule/mule-init.el:
+       mule/mule-misc.el:
+       mule/mule-tty-init.el:
+       mule/mule-x-init.el:
+       mule/viet-chars.el:  Remerge from mule-base.
+
+       * dumped-lisp.el (preloaded-file-list): Core mule files moved out
+       of mule-base into lisp/mule.
+
+1999-02-10  Adrian Aichner  <aichner@ecf.teradyne.com>
+
+       * process.el (exec-to-string): Use `shell-command-switch' in place
+       of hard-wired "-c" (for WindowsNT).
+
+1999-02-08  Charles G Waldman  <cgw@pgt.com>
+
+       * menubar-items.el (default-menubar):  Remove obsolete
+       "Gopher" item
+
+1999-02-06  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * package-admin.el (package-admin-get-install-dir): First fall
+       back to the location of xemacs-base for non-mule packages.
+
+1999-02-15  Martin Buchholz  <martin@xemacs.org>
+
+       * paths.el: 
+       - improved automounter tmp directory support.
+       - support 4 (!) empirically discovered automounter conventions
+
+1999-02-12  SL Baur  <steve@xemacs.org>
+
+       * etags.el (pop-tag-mark): autoload to match key binding.
+
+1999-02-05  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+       * XEmacs 21.2.10 is released
+
+1999-02-02  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * package-get.el (package-get-remote-filename): Don't bug out for
+       a local file name in the search entry.
+
+1999-02-02  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+       * XEmacs 21.2.9 is released
+
+1999-01-19  Didier Verna  <verna@inf.enst.fr>
+
+       * replace.el (replace-search-function): new variable containing a
+       function to perform a search-forward.
+       (replace-re-search-function): new variable containing a function
+       to perform a re-search-forward.
+       (perform-replace): use them.
+
+1999-01-25  Didier Verna  <verna@inf.enst.fr>
+
+       * select.el (selection-owner-p): use the name `XEmacs'.
+       (cut-copy-clear-internal): ditto.
+
+1999-01-18  Andy Piper  <andy@xemacs.org>
+
+       * about.el (about-url-alist): Update my entry.
+       (xemacs-hackers): Ditto.
+
+1999-01-14  Adrian Aichner  <aichner@ecf.teradyne.com>
+
+       * buffer.el (switch-to-buffer): Fixing documentation.
+       * minibuf.el (minibuffer-completion-table): ditto.
+       * cl-macs.el (return-from): ditto.
+
+1999-01-04  Didier Verna  <verna@inf.enst.fr>
+
+       * replace.el (delete-non-matching-lines): temporarily disable
+       case-folding when called interactively with a regexp containing
+       uppercase characters.
+       (delete-matching-lines): ditto.
+       (count-matches): ditto.
+       (list-matching-lines): ditto.
+
+1999-01-07  Colin Rafferty  <colin@xemacs.org>
+
+       * window.el (shrink-window-if-larger-than-buffer): Clean up.  Only
+       abort if current window is split horizontally, not if others are
+       split.  Got rid of unnecessary minibuffer checking.  Also, add
+       some comments (it's still complex).
+
+1999-01-12  Robert Pluim  <rpluim@BayNetworks.com>
+
+       * package-get.el: changed address for doc.ic.ac.uk to
+       sunsite.doc.ic.ac.uk
+
+1999-01-09  Oscar Figueiredo  <Oscar.Figueiredo@di.epfl.ch>
+
+       * ldap.el (toplevel): Remove requires so that the file compiles
+       with a non LDAP-enabled XEmacs binary.  Provide `ldap'.
+
+1999-01-10  J. Kean Johnston  <jkj@sco.com>
+
+       * dump-paths.el: Calculate module-directory and set
+       module-load-path to the load path for modules.
+
+       * loadup.el: Get bootstrap value of module-load-path from the
+       environment variable EMACSBOOTSTRAPMODULEPATH.
+       - Display the module load path if we're debugging paths.
+
+       * setup-paths.el: Added function paths-find-site-module-directory.
+       - Added function paths-find-module-directory.
+       - Added function paths-construct-module-load-path.  Uses new
+       environment variable EMACSMODULEPATH.
+
+1998-12-30  Martin Buchholz  <martin@xemacs.org>
+
+       * font.el (font-default-object-for-device): 
+       Oops! This `or' can't be replaced by `unless'.
+       Fixed inability to run w3, among other things.
+
+1998-12-17  Charles G. Waldman <cgw@pgt.com>
+
+       * package-admin.el: Change initialization of
+         package-admin-install-function dependent on system type.
+         Change package-admin-install-function-mswindows to use
+         "minitar".
+
+1998-12-23  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * mouse.el (default-mouse-motion-handler): Disable help echo while 
+       in the minibuffer.
+
+1998-12-28  Martin Buchholz <martin@xemacs.org>
+
+       * XEmacs 21.2.8 is released.
+
+1998-12-24  Martin Buchholz <martin@xemacs.org>
+
+       * XEmacs 21.2.7 is released.
+
+1998-12-07  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * package-ui.el (pui-list-packages): Set truncate-lines.
+
+       * package-get.el (package-get-download-menu): Use
+       `package-ui-add-site'. Add a a toggle to indicate it is in the list.
+
+       * package-ui.el (pui-help): Ditch in favor of `describe-mode'
+       (pui-help-string): idem.
+       (list-packages-mode): New major mode.
+       (pui-list-packages): Use 'list-packages-mode' in the package buffer.
+       (pui-install-selected-packages): Add suport for removing packages.
+       (pui-toggle-package-delete-key): New function.
+       (pui-popup-context-sensitive): New kludge.
+       (pui-list-packages): Add warning when `package-get-remote' is nil.
+       (package-ui-add-site): New function.
+
+1998-12-01  Didier Verna  <verna@inf.enst.fr>
+
+       * hyper-apropos.el (hyper-where-is): added the missing autoload.
+
+1998-11-29  Oscar Figueiredo  <Oscar.Figueiredo@di.epfl.ch>
+
+       * ldap.el: Custom-ized
+       (toplevel): Do not provide `ldap' which is provided by C level
+       LDAP code
+       (ldap-search): Docstring and stylistic fixes as suggested by Hrvoje
+
+1998-12-05  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * isearch-mode.el (isearch-mode): Really fix keymap lossage.
+
+1998-12-17  Andy Piper  <andy@xemacs.org>
+
+       * sound.el (sound-load-list): name changed from sound-load-alist.
+       (sound-extension-list): name changed from sound-ext-list.
+       (load-default-sounds): use new names.
+       (load-sound-file): use new names.
+
+1998-12-16  Andy Piper  <andy@xemacs.org>
+
+       * XEmacs 21.2.6 is released
+
+1998-11-30  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * cus-dep.el (Custom-make-dependencies): Be smarter about trapping 
+       errors.
+
+1998-12-04  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * wid-edit.el (widget-echo-this-extent): Set
+       help-echo-owns-message to t.
+
+1998-11-30  Greg Klanderman  <greg@alphatech.com>
+
+       * package-get.el (package-get-download-menu): use toggles for
+         each site in the download site menu.
+
+1998-12-01  Jan Vroonhof <vroonhof@math.ethz.ch>
+
+       * package-get.el (package-get): If we cannot find a package
+         because package-get-remote is not set, give a more helpful
+         error message.
+
+1998-11-30  Greg Klanderman  <greg@alphatech.com>
+
+       * package-get.el (package-get-remote-filename): use an EFS path
+       with user anonymous if no user is specified.
+
+1998-12-10  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * faces.el (face-spec-set): Re-init fallfacks for default after
+       calling reset-face on the default face.
+
+1998-12-10  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * package-admin.el (package-admin-default-install-function):
+       Behave as advertised.  Make sure the pkg-dir is proper for
+       default-directory.
+       (package-admin-add-binary-package): Make sure the pkg-dir is
+       proper for default-directory.
+       (package-admin-install-function-mswindows): Make sure the pkg-dir
+       is proper for default-directory.
+
+1998-12-05  XEmacs Build Bot <builds@cvs.xemacs.org>
+
+       * XEmacs 21.2.5 is released
+
+1998-12-05  SL Baur  <steve@altair.xemacs.org>
+
+       * files.el (binary-file-regexps): regexp-opt is not available at
+       bytecompile time.
+
+1998-11-30  Martin Buchholz  <martin@xemacs.org>
+       
+       * x-win-xfree86.el:
+       * x-win-sun.el (x-win-init-sun):
+       * x-win-sun.el:
+       * x-mouse.el (mouse-track-and-copy-to-cutbuffer):
+       * x-iso8859-1.el:
+       * x-init.el (init-post-x-win):
+       * x-init.el (init-pre-x-win):
+       * x-init.el (x-initialize-compose):
+       * x-init.el:
+       * x-compose.el:
+       * winnt.el:
+       * widget.el:
+       * wid-edit.el (widget-glyph-click):
+       * wid-edit.el (widget-glyph-find):
+       * wid-edit.el (widget-type):
+       * view-less.el (view-buffer-other-window):
+       * very-early-lisp.el:
+       * version.el:
+       * toolbar.el:
+       * toolbar-items.el:
+       * term/sun.el (suntool-map):
+       * term/sun-mouse.el:
+       * term/internal.el:
+       * syntax.el (modify-syntax-entry):
+       * symbol-syntax.el:
+       * subr.el:
+       * startup.el (lock-directory):
+       * simple.el (set-comment-column):
+       * simple.el (backward-delete-char-untabify):
+       * shadow.el (find-emacs-lisp-shadows):
+       * shadow.el:
+       * setup-paths.el (paths-construct-info-path):
+       * select.el (cut-copy-clear-internal):
+       * process.el (call-process-region):
+       * process.el (start-process-shell-command):
+       * process.el:
+       * paths.el (rmail-spool-directory):
+       * paragraphs.el (use-hard-newlines):
+       * package-get.el (package-get-dependencies):
+       * package-admin.el (package-admin-delete-binary-package):
+       * obsolete.el (truncate-string):
+       * obsolete.el (store-substring):
+       * mouse.el (default-mouse-track-maybe-own-selection):
+       * mouse.el (mouse-yank-at-point):
+       * modeline.el:
+       * modeline.el (mouse-drag-modeline):
+       * minibuf.el (read-directory-name-internal):
+       * minibuf.el (read-file-name-internal):
+       * minibuf.el (read-file-name-internal-1):
+       * minibuf.el (read-file-name-2):
+       * minibuf.el (exact-minibuffer-completion-p):
+       * minibuf.el (read-from-minibuffer):
+       * minibuf.el:
+       * menubar.el (check-menu-syntax):
+       * map-ynp.el (map-y-or-n-p):
+       * make-docfile.el (docfile-out-of-date):
+       * loadup.el ((member "run-temacs" command-line-args)):
+       * loadup.el ((member "no-site-file" command-line-args)):
+       * loadup.el (really-early-error-handler):
+       * loadup.el:
+       * loadhist.el:
+       * loaddefs.el:
+       * lisp-mnt.el (lm-verify):
+       * lib-complete.el (lib-complete:cache-completions):
+       * lib-complete.el (library-all-completions):
+       * itimer.el (itimer-run-expired-timers):
+       * info.el (Info-mode):
+       * info.el (Info-insert-file-contents):
+       * info.el (Info-rebuild-dir):
+       * info.el (Info-build-dir-anew):
+       * info.el (Info-parse-dir-entries):
+       * info.el (Info-dir-outdated-p):
+       * info.el (Info-insert-dir):
+       * info.el (info-xref):
+       * info.el:
+       * hyper-apropos.el (hyper-apropos-get-doc):
+       * hyper-apropos.el (hyper-describe-face):
+       * hyper-apropos.el (hyper-apropos-mode):
+       * hyper-apropos.el:
+       * help.el (list-processes):
+       * help.el:
+       * gnuserv.el:
+       * font.el (mswindows-font-create-name):
+       * font.el (font-default-font-for-device):
+       * font.el (x-font-create-object):
+       * font.el (font-registry):
+       * font.el:
+       * font-lock.el (font-lock-keywords):
+       * font-lock.el:
+       * finder.el (finder-compile-keywords):
+       * find-paths.el (paths-find-recursive-path):
+       * fill.el (set-justification-center):
+       * fill.el (fill-region-as-paragraph):
+       * files.el (insert-directory):
+       * files.el (wildcard-to-regexp):
+       * files.el (recover-file):
+       * files.el (basic-save-buffer):
+       * files.el (delete-auto-save-file-if-necessary):
+       * files.el (file-relative-name):
+       * files.el (backup-extract-version):
+       * files.el (backup-buffer):
+       * files.el (set-visited-file-name):
+       * files.el (set-auto-mode):
+       * files.el (interpreter-mode-alist):
+       * files.el:
+       * files.el (find-file-noselect):
+       * files.el (abbreviate-file-name):
+       * files.el (parse-colon-path):
+       * files.el (directory-abbrev-alist):
+       * etags.el (visit-tags-table-buffer):
+       * easymenu.el (easy-menu-define):
+       * dragdrop.el (experimental-dragdrop-drag):
+       * dragdrop.el (dragdrop-drop-do-functions):
+       * dragdrop.el (dragdrop-drop-at-point):
+       * disass.el (disassemble-1):
+       * disass.el (disassemble-internal):
+       * disass.el (disassemble):
+       * disass.el:
+       * derived.el (derived-mode-init-mode-variables):
+       * derived.el (define-derived-mode):
+       * custom.el (defgroup):
+       * cus-edit.el (custom-quote):
+       * config.el:
+       * code-process.el (open-network-stream):
+       * code-process.el (start-process):
+       * code-process.el (call-process-region):
+       * code-process.el (call-process):
+       * code-process.el:
+       * code-files.el (insert-file-contents):
+       * code-files.el:
+       * code-files.el (buffer-file-coding-system-for-read):
+       * cmdloop.el (yes-or-no-p-minibuf):
+       * cl.el:
+       * cl-macs.el:
+       * cl-extra.el:
+       * callers-of-rpt.el (make-caller-report):
+       * callers-of-rpt.el:
+       * bytecomp.el (batch-byte-recompile-directory):
+       * bytecomp.el (batch-byte-compile-1):
+       * bytecomp.el (batch-byte-compile):
+       * bytecomp.el (display-call-tree):
+       * bytecomp.el (byte-compile-insert):
+       * bytecomp.el (byte-compile-two-args-19->20):
+       * bytecomp.el (byte-compile-variable-ref):
+       * bytecomp.el (byte-compile-form):
+       * bytecomp.el (byte-compile-top-level-body):
+       * bytecomp.el (byte-compile-out-toplevel):
+       * bytecomp.el (byte-compile-byte-code-maker):
+       * bytecomp.el (byte-compile-file-form-defmumble):
+       * bytecomp.el (byte-compile-file-form):
+       * bytecomp.el (byte-compile-keep-pending):
+       * bytecomp.el (byte-compile-insert-header):
+       * bytecomp.el (byte-compile-from-buffer):
+       * bytecomp.el (byte-compile-file):
+       * bytecomp.el (byte-recompile-file):
+       * bytecomp.el (byte-compile-close-variables):
+       * bytecomp.el (byte-compile-warn-about-unused-variables):
+       * bytecomp.el (byte-compile-warn-about-unresolved-functions):
+       * bytecomp.el (byte-compiler-legal-options):
+       * bytecomp.el (byte-compile-lapcode):
+       * bytecomp.el (byte-optimize-log):
+       * bytecomp.el ((fboundp 'defsubst)):
+       * bytecomp.el:
+       * bytecomp-runtime.el:
+       * byte-optimize.el (byte-optimize-apply):
+       * byte-optimize.el (car):
+       * byte-optimize.el (byte-optimize-form):
+       * byte-optimize.el (byte-optimize-form-code-walker):
+       * byte-optimize.el:
+       * build-report.el (build-report-insert-installation-file):
+       * build-report.el (build-report):
+       * auto-show.el:
+       * apropos.el (apropos-documentation):
+       - mega patch
+       - clean up byte-compile warnings
+       - remove unused variables
+       - Use common lisp style hashtable functions
+       - byte compiler cleanup
+       - use #'(lambda ...) instead of '(lambda ...) or (function (lambda ...))
+       - remove old backquote syntax usage
+       - move some cl functionality into C for speed.
+       - remove last remaining VMS support
+       - spelling fixes
+       - implement last, butlast, nbutlast, copy-list in C.
+       - new macro ignore-file-errors, similar to ignore-errors
+         (ignore-file-errors (delete-file "foo"))
+       - get frequent garbage collection during loadup.el by tweaking
+         gc-cons-threshold, rather than explicitly calling garbage-collect
+       - default delete-key-deletes-forward to `t'.
+
+1998-11-28  SL Baur  <steve@altair.xemacs.org>
+
+       * XEmacs 21.2-beta4 is released.
+
+1998-11-27  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * easymenu.el (easy-menu-add-item): Wraper around add-menu-btton.
+       (easy-menu-item-present-p): Wrapper around find-menu-item.
+       (easy-menu-remove-item): Wrapper around delete-menu-item.
+
+       * menubar.el (delete-menu-item): Add 'from-menu' argument.
+       (add-menu-button): Add 'in-menu' argument.
+       (add-menu-item-1): Add in-menu support to helper function.
+
+1998-11-27  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * isearch-mode.el (isearch-mode): Fix keymap lossage.
+
+1998-11-26  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * faces.el (get-custom-frame-properties): Revert Hrvoje Niksic change 
+       of Dec 4, 1997.
+
+1998-11-25  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * process.el (shell-command-on-region): Report if the command
+       succeeded or failed.
+
+1998-11-24  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * subr.el (buffer-substring-no-properties): Comment out.
+
+1998-11-07  Adrian Aichner  <aichner@ecf.teradyne.com>
+
+       * msw-faces.el (mswindows-find-smaller-font): Turning font names
+         into font instances first, like `x-frob-font-size' does.
+         (mswindows-find-larger-font): ditto
+
+1998-11-04  Greg Klanderman  <greg@alphatech.com>
+
+       * package-ui.el (pui-install-selected-packages): fix args in call
+       to `package-get'.
+
+1998-10-29  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * package-get.el (host-name): New widget type.
+       (package-get-remote): Better customization using new type.
+       (package-get-download-sites): idem dito.
+
+       (package-get-custom): Do not use package-get-all untill we have
+       runtime dependencies.
+
+       (package-get-remove-copy): Default to 't' we no longer need this
+       kludge as we do not currently use depenencies.
+       
+       (package-get-was-current): New variable.
+       (package-get-require-base): New 'force-current' argument.
+       (package-get-update-base): idem
+       (package-get-package-provider):  idem
+       (package-get-locate-index-file): New 'no-remote' argument.
+       (package-get-locate-file): idem.
+       
+       (package-get-maybe-save-index): New function.
+       (package-get-update-base): Use it.
+
+1998-10-28 Greg Klanderman <greg@alphatech.com>
+
+       * package-get.el (package-get-remote): default to nil; by default, 
+       don't go out to the net via EFS.  They must select a download site.
+       (package-get-download-sites): new variable.
+       (package-get-download-menu): new function.
+       (package-get-locate-index-file): new function.
+       (package-get-update-base): use it.
+
+       * menubar-items.el (default-menubar): add "Update Package Index"
+       and "Add Download Site" menus under Options | Manage Packages.
+
+1998-10-19  Greg Klanderman  <greg@alphatech.com>
+
+       * package-get.el (package-get): bugfix code checking installed version
+       for case where package is not currently installed.
+       (package-get-require-signed-base-updates): new variable.
+       (package-get-update-base-from-buffer): remove REMOTE-SOURCE arg, it was 
+       deemed not a goot thing.  Use the variable
+       package-get-allow-unsigned-base-updates instead.
+
+1998-10-16 Greg Klanderman <greg@alphatech.com>
+
+       * package-get.el (package-get): Don't install an older version than 
+       we already have unless explicitly told to.  Issue a warning.
+
+       * package-ui.el (pui-add-required-packages): when adding
+       dependencies, don't add packages that are up to date.
+       (pui-package-symbol-char):  Don't consider a package out of date 
+       if you have a newer version installed than the latest version in
+       package-get-base.
+
+       * package-get.el (package-get-base-filename): document that it may 
+       be a path relative to package-get-remote;  new default value.
+       (package-get-locate-file): new function.
+       (package-get-update-base): use it to expand package-get-base-filename.
+       (package-get-save-base): new function to save the package-get database
+       to file.
+       (package-get-update-base-from-buffer): add REMOTE-SOURCE argument.
+       (package-get-update-base): pass the REMOTE-SOURCE arg.
+       (package-get-update-base-entry): call package-get-custom-add-entry.
+       (package-get-file-installed-p): removed; no longer needed.
+       (package-get-create-custom): ditto.
+       (toplevel): remove code to build and load package-get-custom.el
+       (package-get-custom-add-entry): new function.
+
+1998-10-12  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * wid-edit.el (widget-button-click): Don't switch window.
+
+1998-10-22  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * cus-face.el (custom-set-face-update-spec): Add autoload cookie
+
+1998-10-20  Malcolm Box  <malcolm@brownale.demon.co.uk>
+        
+       * etags.el (find-tag-default): Run find-tag-hook using
+       run-hooks rather than funcall
+
+1998-10-19  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * isearch-mode.el (isearch-mode): Set the current minor mode maps
+       and the current local map as the parents to isearch-mode-map.
+
+1998-10-15  SL Baur  <steve@altair.xemacs.org>
+
+       * XEmacs 21.2-beta3 is released.
+
+1998-10-15  Greg Klanderman  <greg@alphatech.com>
+
+       * package-get.el (package-get-update-base): use
+       insert-file-contents-internal, not insert-file-contents-literally.
+
+1998-10-14  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * auto-save.el: expand-file 'auto-save-*-dir' at runtime not at
+       dump time. 
+
+1998-10-15  Greg Klanderman  <greg@alphatech.com>
+
+       * package-get.el (package-get-update-base-entry): new function.
+       (package-get-update-base): renamed; was `package-get-load-base'.
+       cleanup, and use package-get-update-base-from-buffer.
+       (package-get-update-base-from-buffer): new function.
+       (package-get-update-base-entries): new; helper for above.
+       Do not eval lisp grabbed over ftp; parse it from new format.
+
+1998-10-15  Greg Klanderman  <greg@alphatech.com>
+
+       * files.el (set-auto-mode): Don't play games loading package-get
+       database; package-get-package-provider will handle it all.
+
+1998-10-14  Greg Klanderman  <greg@alphatech.com>
+
+       * package-get.el (package-get-base-filename): new variable.
+       (package-get-require-base): new function.
+       (package-get-pgp-signed-begin-line): new variable.
+       (package-get-pgp-signature-begin-line): ditto.
+       (package-get-pgp-signature-end-line):  ditto.
+       (package-get-load-base): new function.
+       (package-get-interactive-package-query):
+       (package-get-update-all):
+       (package-get-dependencies):
+       (package-get-package-provider):
+       (package-get-custom): use package-get-require-base.
+       [package-get-custom loading]: disable for now.
+
+       * package-ui.el (pui-list-packages): use (package-get-require-base)
+
+1998-10-14  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * package-ui.el: Correct obvious thinko in choosing extent face.
+
+1998-10-12  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * menubar-items.el (default-menubar): pui-list-package has nothing 
+       to with Customize. Move all the package stuff to a new Item in Options.
+
+       * package-ui.el (pui-menu): Add menu and Popup menu.
+
+       * package-get.el (package-get): Use new
+       package-admin-get-install-dir.
+
+       * package-admin.el (package-admin-get-install-dir): New syntax.
+       Conserve package location and put mule packages where mule-base is.
+
+       * package-get.el : Customized
+
+       * package-ui.el (pui): Customized
+       (pui-package-install-dest-dir): New variable.
+       (pui-install-selected-packages): Use it
+
+1998-10-12  SL Baur  <steve@altair.xemacs.org>
+
+       * package-get.el (package-get-interactive-package-query): Move
+       dependency on package-get-base to run-time.
+       (package-get-update-all): Ditto.
+       (package-get-dependencies): Ditto.
+       (package-get-package-provider): Ditto.
+       (package-get-custom): Ditto.
+
+1998-10-11  Glynn Clements  <glynn@sensei.co.uk>
+
+       * events.el: Remove 'ascii-character property from 'backspace
+       and 'delete symbols
+
+1998-10-11  SL Baur  <steve@altair.xemacs.org>
+
+       * package-get-base.el: removed.
+
+1998-09-23  Didier Verna  <verna@inf.enst.fr>
+
+       * simple.el (search-caps-disable-folding): moved from isearch-mode.el
+       (no-upper-case-p): new function.
+       (with-search-caps-disable-folding): new macro.
+       (with-interactive-search-caps-disable-folding): new macro.
+       (zap-to-char): In interactive mode, do a case-sensitive search if
+       the character is uppercase.
+       (zap-up-to-char): ditto.
+
+       * replace.el (perform-replace): use the function no-upper-case-p.
+
+       * isearch-mode.el (isearch-fix-case): ditto.
+       make obsolete `with-caps-disable-folding' and
+       `isearch-no-upper-case-p'.
+
+       * etags.el (find-tag-internal): use `with-search-caps-disable-folding'.
+       (tags-search): ditto.
+       (tags-query-replace): ditto.
+
+       * info.el (Info-search): ditto.
+
+1998-10-07  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * x-font-menu.el (font-menu-set-font): Respect font-menu-frame-local
+
+1998-10-07  Greg Klanderman  <greg@alphatech.com>
+
+       * package-admin.el (package-admin-rmtree): rewritten.  need to
+       check for "." and ".." before symlink check.  expand files and
+       directories with respect to DIRECTORY, not default-directory.
+
+1998-10-04  Greg Klanderman  <greg@alphatech.com>
+
+       * package-get.el (package-get-all): add INSTALL-DIR argument.
+
+1998-10-06  Greg Klanderman  <greg@alphatech.com>
+
+       * package-ui.el (pui-add-required-packages): new function, select
+       dependent packages.
+       (pui-display-keymap): bind it.
+       (pui-help-string): document it.
+       (pui-install-selected-packages): package-get-all -> package-get.
+
+       * package-get.el (package-get-dependencies): new function.
+
+1998-10-04  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * isearch-mode.el (isearch-done): Use regexp-search-ring-max for
+       regexps.
+
+1998-10-05  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * mouse.el (default-mouse-track-point-at-opening-quote-p): New
+       function.
+       (default-mouse-track-normalize-point): Use it.
+
+1998-09-30  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * package-admin.el (package-admin-delete-binary-package):
+               General cleanup. Remove unnessary use of progn and
+       save-excursion. 
+       (package-admin-delete-binary-package): Do NOT mess with file
+       modes. That is evil. 
+       (package-admin-delete-binary-package): Wrap all deleting in
+       condition-case. The data in MANIFEST is untrustworthy.
+       (package-admin-delete-binary-package): Let the OS worry about non
+       empty directories.
+
+1998-10-09  SL Baur  <steve@altair.xemacs.org>
+
+       * lisp-mnt.el (lm-commentary): Fix InfoDock-style comment
+       processing.
+       (lm-report-bug): Fix mail address to send bug reports to.
+
+1998-09-29  SL Baur  <steve@altair.xemacs.org>
+
+       * XEmacs 21.2-beta2 is released.
+
+1998-08-14  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * files.el (auto-mode-alist): Enhanced regexp for perl-mode
+
+1998-09-22  Karl M. Hegbloom  <karlheg@bittersweet.inetarena.com>
+
+       * info.el (Info-mode): Document page turning by double clicks in
+       docstring so `M-x describe-mode' will display it.
+
+1998-09-20  Karl M. Hegbloom  <karlheg@bittersweet.inetarena.com>
+
+       * info.el (Info-mouse-track-double-click-hook): Use character
+       widths to calculate a border region where double clicking does
+       page turning, and return `nil' by default so other hooks, such as
+       region highlighting, will be run.
+
+1998-09-29  Colin Rafferty   <colin@xemacs.org>
+
+       * sound.el (default-sound-directory-list): Initialize with all the 
+       "sounds" directories in `data-directory-list'.  It used to just be 
+       the first one.
+
+       * packages.el (locate-data-directory-list): Created.  This gives
+       the list of matching directories, unlike `locate-data-directory',
+       which just gives the first one.
+
+1998-09-26  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * minibuf.el (read-from-minibuffer): No longer bind help-form but
+       make a binding in the local keymap until help-char handling is
+       improved. 
+
+       * help.el (help-keymap-with-help-key): Provide keymap with help
+       binding.
+       (help-print-help-form): New helper function.
+
+1998-09-23  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * isearch-mode.el (isearch-highlight): set-extent-endpoints can
+       move extent to another buffer; no need to create a new extent.
+       (isearch-fix-case): New function.
+       (isearch-search-and-update): Use it.
+
+1998-09-22  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * isearch-mode.el (isearch-mode): Use overriding-local-map to set
+       the keymap, not minor-mode-map-alist.
+       (isearch-done): Restore overriding-local-map.
+
+1998-09-21  Martin Buchholz  <martin@xemacs.org>
+
+       * bytecomp.el (byte-compile-buffer-substring): 
+       Fix for: (byte-compile (defun f () (buffer-substring)))
+       ==>   ** buffer-substring called with 3 args, but requires 0-3
+       - new code not only works, but is more readable, too.
+
+1998-09-20  Jonathan Harris  <jhar@tardis.ed.ac.uk>
+
+       * msw-faces.el (mswindows-init-device-faces): Don't try to
+         specify a default font at this late stage. Do try to force
+         creation of the default face font so that if it fails we get
+         an error now instead of a crash at frame creation.
+
+         mswindows-font-canonicalize-name, mswindows-make-font-unbold,
+         mswindows-make-font-unitalic: Canonical default weight
+         changed from "Normal" to "Regular".
+
+         mswindows-make-font-bold / -bold-italic: Supplied device was
+         not being passed into call to mswindows-find-smaller-font.
+
+1998-09-10  Bjrn Torkelsson  <torkel@hpc2n.umu.se>
+
+       * package-get.el (package-get-remote): Fix the path where to find
+         the packages on xemacs.org.
+
+1998-09-08  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * about.el (about-maintainer-info): Update Ben's entry.
+
+1998-09-24  Martin Buchholz  <martin@xemacs.org>
+
+       * lisp/shadow.el (find-emacs-lisp-shadows):
+       - `member' was being called on lists of length 2000!
+       - Replace with hashtables.
+       - Replace hand-coded loops with (dolist)
+       - Fix comment typo
+
+1998-09-20  Darryl Okahata  <darrylo@sr.hp.com>
+
+       * packages.el: Added new function, `package-delete-name', to
+         delete existing packages from the installed package database
+         (`packages-package-list').  Also added the "pkginfo" directory
+         to `packages-special-base-regexp', so that the pkginfo directory
+         would not get added to `late-packages'.
+
+       * package-admin.el: Added ability to delete an installed package
+         (added low-level function, `package-admin-delete-package').
+         Understands how to use the pkginfo/MANIFEST.<package> file to
+         delete the package.  When installing a package, will also
+         create a MANIFEST.* file if one is not provided by the
+         package.  If the MANIFEST.* doesn't exist when deleting a
+         package, the functions will fall back to attempting to delete
+         any package-specific lisp directory.
+
+       * package-get.el: Moved some functions to package-admin.el.
+         Added interactive function `package-get-delete-package', for
+         use by users for deleting a package.
+
+         Also modified to not require the prescence of efs.
+
+1998-09-22  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * files.el (find-file-noselect): Handle all signals, kill the
+       buffer and resignal.
+
+1998-09-23  SL Baur  <steve@altair.xemacs.org>
+
+       * cl-macs.el (glyph-image): Add setf method.
+
+1998-09-06  Darryl Okahata  <darrylo@sr.hp.com>
+
+       * package-get.el: Fixed broken EFS downloading.  Also, look for
+         .tar.gz files first, in preference over .tgz files.
+
+       * package-ui.el: Fix display of package version numbers.
+
+1998-08-27  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * x-font-menu.el (font-menu-set-font):  Add "pt" units to size
+       argument.       
+
+1998-09-03  Darryl Okahata  <darrylo@sr.hp.com>
+
+       * list-mode.el: `display-completion-list': added new/optional
+         keyword `:completion-string', which allows the programmer to
+         change the "Possible completions are:" prompt.
+
+       * menubar-items.el: Added new pulldown menu-pick to start up the 
+         visual package browser/installer:
+
+               Options->Customize->List Packages
+
+       * package-admin.el: Added hooks for installing under both Unix
+         and MS Windows.  Does additional error checking.  No longer
+         calls "add-big-package.sh" to install packages under Unix; now 
+         calls gunzip & tar directly.
+
+       * package-get.el: Added ability to install packages from files
+         on a local disk/CDROM.  Now deletes any existing package lisp
+         directory.  Does completion on available packages when
+         querying for package names.  Will also search for .tgz files
+         in addition for .tar.gz files.  Tries to reload
+         auto-autoloads, as a convenience when loading new packages,
+         and also tries to add any new package paths to `load-path'.
+         Changed all occurences of `concat' to use `expand-file-name'.
+
+       * package-ui.el: New file which implements the main visual
+         package browser/installer, which is started via a menu pick or 
+         M-x pui-list packages.
+
+1998-09-03  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * startup.el (load-init-file): spelling fix.
+
+1998-09-02  Michael Sperber [Mr. Preprocessor]  <sperber@informatik.uni-tuebingen.de>
+
+       * startup.el (normal-top-level): Load auto-autoload files
+       covariantly with their precedence.
+
+1998-08-26  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * menubar-items.el (default-menubar): Remove "Font Weight"
+       option, there is currently no custom equivalent.. Customize-faces
+       is "Edit faces".
+
+       * x-font-menu.el (font-menu-set-font): Use customize to set
+       default face.
+
+       * faces.el (face-spec-update-all-matching): New function.
+
+       * cus-face.el (custom-set-face-update-spec): New function.
+       Interface to customize faces from elisp.
+
+       (custom-face-value-create): Show the customized settings if set
+       but not saved.
+
+1998-08-26  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       (custom-face-value-create): Show the customized settings if set
+       but not saved.
+
+1998-08-31  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * keydefs.el (global-map): Add FSF 20.3 binding of
+       query-replace-regexp.
+
+1998-08-21  Greg Klanderman  <greg@alphatech.com>
+
+       * minibuf.el (read-file-name-internal-1): use
+       user-name-completion-1 instead of user-name-completion.
+
+1998-08-19  Michael Sperber [Mr. Preprocessor]  <sperber@informatik.uni-tuebingen.de>
+
+       * loadup.el: 
+       * make-docfile.el: 
+       * update-elc.el: Don't set `source-directory' (now defunct as a
+       global variable) no more.
+
+       * packages.el (packages-list-autoloads): Made `source-directory'
+       (now defunct as a global variable) a parameter.
+
+1998-08-13  Carsten Leonhardt  <leo@arioch.oche.de>
+
+       * about.el (about-hackers): new email
+
+1998-08-16  SL Baur  <steve@altair.xemacs.org>
+
+       * lisp-mode.el (with-string-as-buffer-contents): Set indentation.
+
+1998-07-17  Didier Verna  <verna@inf.enst.fr>
+
+       * faces.el (set-face-property):
+       (set-face-dim-p):
+       (face-dim-p): updated the doc strings now that the dim property isn't
+       tty-specific. 
+       (face-equal): the dim property is now a common one.
+
+       * cus-face.el (custom-face-attributes): New face attribute: `dim'
+       Renamed the `stipple' attribute to `background-pixmap'.
+       (custom-face-background-pixmap): make custom-face-stipple an
+       obsolete alias for this.
+
+1998-08-11  Michael Sperber [Mr. Preprocessor]  <sperber@informatik.uni-tuebingen.de>
+
+       * find-paths.el (paths-file-readable-directory-p): Created and
+       used.
+
+       * loadup.el: Don't set inhibit-... flags from run-temacs.
+
+1998-08-06  Michael Sperber [Mr. Preprocessor]  <sperber@informatik.uni-tuebingen.de>
+
+       * packages.el (packages-data-path-depth): Added and used.
+
+1998-08-05  Charles G. Waldman <cgw@pgt.com>
+
+       * about.el:
+       - Change .xpm to .png, delete "zcat" section.
+       - cosmetic fix in the 'marcpa' entry.
+
+       * etc/photos
+       - convert all .xpm.Z to .png
+       - rename mrb to martin
+       - rename mcook-m to mcookm
+
+1998-07-31  Martin Buchholz  <martin@xemacs.org>
+
+       * x-init.el (x-initialize-compose): Add support for
+       dead-circumflex as YET ANOTHER NAME for that dead key.
+
+1998-08-05  Colin Rafferty <colin@xemacs.org>
+
+       * setup-paths.el (paths-construct-exec-path): Made the
+       last-packages really be last.
+       (paths-construct-data-directory-list): Ditto.
+
+1998-08-01  Kai Haberzettl  <khaberz@synnet.de>
+
+       * startup.el(startup-splash-frame-body): 
+       Update Copyright notice in splash screen 
+
+1998-07-20  Greg Klanderman  <greg@alphatech.com>
+
+       * minibuf.el (read-file-name-internal-1): do ~user completion.
+
+1998-07-22  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * font-lock.el (font-lock-fontify-glumped-region): Add guard
+       aginst destroyed extents
+
+1998-07-24  Greg Klanderman  <greg@alphatech.com>
+
+       * package-get.el (package-get): add `install-dir' argument.
+
+1998-07-20  John Jones  <jj@asu.edu>
+
+       * package-get.el: calls to package-get-update-all will only
+         update packages which are already installed.
+
+1998-07-23  SL Baur  <steve@altair.xemacs.org>
+
+       * autoload.el (update-file-autoloads): Ensure autoloads buffer is
+       writable.
+
+1998-07-20  Colin Rafferty   <colin@xemacs.org>
+
+       * about.el (about-hackers): Correct my email.
+
+1998-07-20  Kai Haberzettl  <khaberz@synnet.de>
+
+       * about.el (about-hackers): new email-address.
+
+1998-07-25  SL Baur  <steve@altair.xemacs.org>
+
+       * minibuf.el (read-number): Don't let `input-error' condition
+       escape.
+
+1998-07-20  Greg Klanderman  <greg@alphatech.com>
+
+       * about.el (about-hackers): use my `email-for-life' address.
+
 1998-07-19  SL Baur  <steve@altair.xemacs.org>
 
        * XEmacs 21.2-beta1 is released.
 1998-07-19  SL Baur  <steve@altair.xemacs.org>
 
        * XEmacs 21.2-beta1 is released.
index e2f0176..9fcddb2 100644 (file)
@@ -50,7 +50,7 @@
 
 ;; People in this list have their individual links from the main page,
 ;; or from the `Legion' page.  If they have an image, it should be
 
 ;; People in this list have their individual links from the main page,
 ;; or from the `Legion' page.  If they have an image, it should be
-;; named after the CAR of the list element (baw -> baw.xpm).
+;; named after the CAR of the list element (baw -> baw.png).
 ;;
 ;; If you add to this list, you'll want to update
 ;; `about-maintainer-info' (and maybe `about-hackers'.
 ;;
 ;; If you add to this list, you'll want to update
 ;; `about-maintainer-info' (and maybe `about-hackers'.
   '((ajc      "Andrew Cosgriff"   "ajc@bing.wattle.id.au")
     (baw      "Barry Warsaw"      "bwarsaw@python.org")
     (bw       "Bob Weiner"        "weiner@altrasoft.com")
   '((ajc      "Andrew Cosgriff"   "ajc@bing.wattle.id.au")
     (baw      "Barry Warsaw"      "bwarsaw@python.org")
     (bw       "Bob Weiner"        "weiner@altrasoft.com")
+    (chr      "Christian Nybø"    "chr@mediascience.no")
     (cthomp   "Chuck Thompson"    "cthomp@xemacs.org")
     (dmoore   "David Moore"       "dmoore@ucsd.edu")
     (dkindred "Darrell Kindred"          "dkindred@cmu.edu")
     (dv       "Didier Verna"      "verna@inf.enst.fr")
     (hniksic  "Hrvoje Niksic"     "hniksic@srce.hr")
     (jareth   "Jareth Hein"       "jareth@camelot.co.jp")
     (cthomp   "Chuck Thompson"    "cthomp@xemacs.org")
     (dmoore   "David Moore"       "dmoore@ucsd.edu")
     (dkindred "Darrell Kindred"          "dkindred@cmu.edu")
     (dv       "Didier Verna"      "verna@inf.enst.fr")
     (hniksic  "Hrvoje Niksic"     "hniksic@srce.hr")
     (jareth   "Jareth Hein"       "jareth@camelot.co.jp")
-    (jason    "Jason Mastaler"   "jason@mastaler.com")
+    (jason    "Jason Mastaler"   "jason@xemacs.org")
     (jens     "Jens Lautenbacher" "jens@lemcbed.lem.uni-karlsruhe.de")
     (jmiller  "Jeff Miller"       "jmiller@smart.net")
     (juhp     "Jens-Ulrik Holger Petersen" "petersen@kurims.kyoto-u.ac.jp")
     (jens     "Jens Lautenbacher" "jens@lemcbed.lem.uni-karlsruhe.de")
     (jmiller  "Jeff Miller"       "jmiller@smart.net")
     (juhp     "Jens-Ulrik Holger Petersen" "petersen@kurims.kyoto-u.ac.jp")
@@ -79,7 +80,7 @@
     (martin   "Martin Buchholz"   "martin@xemacs.org")
     (ograf    "Oliver Graf"       "ograf@fga.de")
     (pez      "Peter Pezaris"    "pez@dwwc.com")
     (martin   "Martin Buchholz"   "martin@xemacs.org")
     (ograf    "Oliver Graf"       "ograf@fga.de")
     (pez      "Peter Pezaris"    "pez@dwwc.com")
-    (piper    "Andy Piper"        "andyp@parallax.co.uk")
+    (piper    "Andy Piper"        "andy@xemacs.org")
     (rickc    "Rick Campbell"     "rickc@lehman.com")
     (rossini  "Anthony Rossini"          "rossini@stat.sc.edu")
     (vin      "Vin Shelton"      "acs@acm.org")
     (rickc    "Rick Campbell"     "rickc@lehman.com")
     (rossini  "Anthony Rossini"          "rossini@stat.sc.edu")
     (vin      "Vin Shelton"      "acs@acm.org")
@@ -87,7 +88,7 @@
     (slb      "SL Baur"           "steve@xemacs.org")
     (stig     "Jonathan Stigelman" "stig@hackvan.com")
     (stigb    "Stig Bjorlykke"   "stigb@tihlde.hist.no")
     (slb      "SL Baur"           "steve@xemacs.org")
     (stig     "Jonathan Stigelman" "stig@hackvan.com")
     (stigb    "Stig Bjorlykke"   "stigb@tihlde.hist.no")
-    (thiessel "Marcus Thiessel"   "thiessel@rhrk.uni-kl.de")
+    (thiessel "Marcus Thiessel"   "marcus@xemacs.org")
     (vladimir "Vladimir Ivanovic" "vladimir@mri.com")
     (wing     "Ben Wing"          "ben@xemacs.org")
     (wmperry  "William Perry"     "wmperry@aventail.com"))
     (vladimir "Vladimir Ivanovic" "vladimir@mri.com")
     (wing     "Ben Wing"          "ben@xemacs.org")
     (wmperry  "William Perry"     "wmperry@aventail.com"))
 (defvar about-url-alist
   '((ajc       . "http://www-personal.monash.edu.au/~ajc/")
     (altrasoft . "http://www.altrasoft.com/")
 (defvar about-url-alist
   '((ajc       . "http://www-personal.monash.edu.au/~ajc/")
     (altrasoft . "http://www.altrasoft.com/")
+    (ben       . "http://www.666.com/ben/")
+    (ben-xemacs . "http://www.666.com/xemacs/")
     (baw       . "http://www.python.org/~bwarsaw/")
     (cc-mode   . "http://www.python.org/ftp/emacs/")
     (baw       . "http://www.python.org/~bwarsaw/")
     (cc-mode   . "http://www.python.org/ftp/emacs/")
+    (chr       . "http://www.xemacs.org/faq/")
     (dkindred  . "http://www.cs.cmu.edu/People/dkindred/me.html")
     (dmoore    . "http://oj.egbt.org/dmoore/")
     (jason     . "http://www.mastaler.com/")
     (dkindred  . "http://www.cs.cmu.edu/People/dkindred/me.html")
     (dmoore    . "http://oj.egbt.org/dmoore/")
     (jason     . "http://www.mastaler.com/")
     (marcpa    . "http://www.positron911.com/products/power.htm")
     (ograf     . "http://www.fga.de/~ograf/")
     (pez       . "http://www.dwwc.com/")
     (marcpa    . "http://www.positron911.com/products/power.htm")
     (ograf     . "http://www.fga.de/~ograf/")
     (pez       . "http://www.dwwc.com/")
-    (piper     . "http://www.parallax.co.uk/~andyp")
+    (piper     . "http://www.xemacs.freeserve.co.uk/")
     (vin       . "http://www.upa.org/")
     (stigb     . "http://www.tihlde.hist.no/~stigb/")
     (wget      . "ftp://gnjilux.cc.fer.hr/pub/unix/util/wget/")
     (vin       . "http://www.upa.org/")
     (stigb     . "http://www.tihlde.hist.no/~stigb/")
     (wget      . "ftp://gnjilux.cc.fer.hr/pub/unix/util/wget/")
     (let* ((emacs-short-version (format "%d.%d"
                                        emacs-major-version
                                        emacs-minor-version))
     (let* ((emacs-short-version (format "%d.%d"
                                        emacs-major-version
                                        emacs-minor-version))
-          (emacs-about-version (format "version %s; Apr 1998"
+          (emacs-about-version (format "version %s; Aug 1998"
                                        emacs-short-version)))
       (widget-insert (about-center emacs-about-version))
       (widget-create 'link :help-echo "The latest NEWS of XEmacs"
                                        emacs-short-version)))
       (widget-insert (about-center emacs-about-version))
       (widget-create 'link :help-echo "The latest NEWS of XEmacs"
@@ -279,7 +283,7 @@ developers responsible for this release are:\n\n")
                             :value who)
              (widget-insert (format "  <%s>\n" address)))))
       ;; Setup persons responsible for this release.
                             :value who)
              (widget-insert (format "  <%s>\n" address)))))
       ;; Setup persons responsible for this release.
-      (mapc 'setup-person '(slb hniksic kyle martin))
+      (mapc 'setup-person '(slb hniksic kyle martin piper))
       (widget-insert "\n\t* ")
       (widget-create 'link :help-echo "A legion of XEmacs hackers"
                     :action 'about-hackers
       (widget-insert "\n\t* ")
       (widget-create 'link :help-echo "A legion of XEmacs hackers"
                     :action 'about-hackers
@@ -529,45 +533,22 @@ contributed to the XEmacs development from late 1994 to early
                           (if (memq (device-class)
                                     '(color grayscale))
                               "" "m")
                           (if (memq (device-class)
                                     '(color grayscale))
                               "" "m")
-                          ".xpm")
+                          ".png")
                   (locate-data-directory "photos")))
            (data nil))
                   (locate-data-directory "photos")))
            (data nil))
-       (unless (file-exists-p file)
-         ;; Maybe the file is compressed?
-         (setq file (concat file ".Z"))
-         (if (file-exists-p file)
-             ;; Decompress it.
-             (condition-case nil
-                 (let ((buffer (get-buffer-create " *image*")))
-                   (unwind-protect
-                       (save-excursion
-                         (message "Uncompressing image...")
-                         (set-buffer buffer)
-                         (erase-buffer)
-                         (let ((coding-system-for-read 'binary)
-                               (coding-system-for-write 'binary))
-                           (insert-file-contents-literally file)
-                           (call-process-region (point-min) (point-max)
-                                                "zcat" t t nil)
-                           (setq data
-                                 (buffer-substring (point-min) (point-max))))
-                         (message "Uncompressing image... done"))
-                     (kill-buffer buffer)))
-               (error (setq data 'error)))
-           (setq file nil)))
        (setq glyph
              (cond ((stringp data)
                     (make-glyph
        (setq glyph
              (cond ((stringp data)
                     (make-glyph
-                     (if (featurep 'xpm)
-                         `([xpm :data ,data]
+                     (if (featurep 'png)
+                         `([png :data ,data]
                            [string :data "[Image]"])
                        `([string :data "[Image]"]))))
                    ((eq data 'error)
                     (make-glyph [string :data "[Error]"]))
                    (file
                     (make-glyph
                            [string :data "[Image]"])
                        `([string :data "[Image]"]))))
                    ((eq data 'error)
                     (make-glyph [string :data "[Error]"]))
                    (file
                     (make-glyph
-                     (if (featurep 'xpm)
-                         `([xpm :file ,file]
+                     (if (featurep 'png)
+                         `([png :file ,file]
                            [string :data "[Image]"])
                        `([string :data "[Image]"]))))
                    (t
                            [string :data "[Image]"])
                        `([string :data "[Image]"]))))
                    (t
@@ -583,13 +564,8 @@ contributed to the XEmacs development from late 1994 to early
   (ecase (car entry)
     (slb
      (widget-insert "\
   (ecase (car entry)
     (slb
      (widget-insert "\
-I took over the maintenance of XEmacs in November of 1996 (it
-seemed like a good idea at the time ...).  In real life I am a
-network administrator and Unix systems programmer for Calag.com,
-Inc. a small, but growing ISP in California.
-
-My main hobby while not maintaining XEmacs or working is ...
-you have got to be kidding ...")
+Peaches Baur, 1986-1999.
+Rest in peace")
      (widget-insert ".\n"))
     (martin
      (widget-insert "\
      (widget-insert ".\n"))
     (martin
      (widget-insert "\
@@ -607,26 +583,21 @@ Martin is no longer doing XEmacs for a living, and is Just Another
 Volunteer.\n"))
     (hniksic
      (widget-insert "\
 Volunteer.\n"))
     (hniksic
      (widget-insert "\
-Hrvoje is currently a student at the Faculty of Electrical
-Engineering and Computing in Zagreb, Croatia.  He works part-time
-at SRCE, where he helps run the network machines.  In his free time he
-is helping develop free software (especially XEmacs, as well as GNU
-software) and is writing his own -- he has written a small network
-mirroring utility Wget, see ")
-     (about-url-link 'wget "Download Wget")
-     (widget-insert ".\n"))
+Hrvoje is a student at the Faculty of Electrical Engineering and
+Computing in Zagreb, Croatia, working part-time at system administration
+at SRCE.  His hobby is hacking free software, particularly XEmacs and
+GNU Wget, the latter being his very own creation.
+
+His contribution to XEmacs consists of a multitude of hours spent
+adding new features and bugs, and fixing old ones.  He dreams of
+writing a home page.\n"))
     (wing
      (widget-insert
       "\
     (wing
      (widget-insert
       "\
-I'm not a thug -- I just play one on video.
-My roommate says I'm a San Francisco \"Mission Critter\".\n\n"
-      (about-with-face "Gory stuff follows:" 'italic)
-      "\n
-In 1992 I left a stuffy East-Coast university, set out into the real
-world, and ended up a co-founder of Pearl Software.  As part of this
-company, I became the principal architect of Win-Emacs, a port of
-Lucid Emacs to Microsoft Windows and Windows NT (for more info, e-mail
-to info@pearlsoft.com).
+I began my Emacs life in 1992 as the co-founder of the now defunct
+Pearl Software.  As part of this company, I became the principal
+architect of Win-Emacs, an early port of Lucid Emacs to Microsoft
+Windows and Windows NT.
 
 Since April 1993, I've worked on XEmacs as a contractor for various
 companies, changing hats faster than Ronald Reagan's hair color (oops,
 
 Since April 1993, I've worked on XEmacs as a contractor for various
 companies, changing hats faster than Ronald Reagan's hair color (oops,
@@ -637,8 +608,19 @@ widget, improving the documentation (especially the Emacs Lisp
 manual), and being a general nuisance ... er, brainstormer for many of
 the new features of XEmacs.
 
 manual), and being a general nuisance ... er, brainstormer for many of
 the new features of XEmacs.
 
-Recently I took a job at Dimension X, where I'm working on a
-Java-based toolkit for developing VRML applications.\n"))
+Alas, life has not been good to me recently.  This former San Francisco
+\"Mission Critter\" was exiled to \"Stroller Valley\" and, after a brief
+stint developing a Java-based VRML toolkit for the now also defunct
+Dimension X, I developed insidious hand and neck problems, and I was
+forced to quit working.  Since then, I have been learning how to interact
+with the computer by using foot pedals and by dictating text to other
+people.  Recently I completed Architecting XEmacs, a web site about the
+future of XEmacs.\n\n")
+     (widget-insert "Architecting XEmacs: ")
+     (about-url-link 'ben-xemacs "Find the miracles in store for XEmacs")
+     (widget-insert "\nBen's home page:     ")
+     (about-url-link 'ben "Visit Ben's page")
+     (widget-insert "\n"))
     (cthomp
      (widget-insert "\
 Chuck, through being in the wrong place at the right time, has gotten
     (cthomp
      (widget-insert "\
 Chuck, through being in the wrong place at the right time, has gotten
@@ -781,7 +763,7 @@ I'm part of the team producing POWER 911, a 911 emergency response
 system written in Modula3:\n")
      (about-url-link 'marcpa "Visit POWER 911")
      (widget-insert "\
 system written in Modula3:\n")
      (about-url-link 'marcpa "Visit POWER 911")
      (widget-insert "\
-Previously, I worked at Softimage Inc., now a Microsoft company
+\n\nPreviously, I worked at Softimage Inc., now a Microsoft company
 \(eeekkk!), as a UNIX system administrator.  This is where I've been
 converted to NT.
 
 \(eeekkk!), as a UNIX system administrator.  This is where I've been
 converted to NT.
 
@@ -830,16 +812,13 @@ He has a page at ")
      (widget-insert ".\n"))
     (thiessel
      (widget-insert "\
      (widget-insert ".\n"))
     (thiessel
      (widget-insert "\
-On May 1, 1996 he started working at University of Kaiserslautern in
-the field of computer aided analog circuit design. His
-responsibilities include the development and design of a CAD-Tool for
-analog integrated circuits with special emphasis on distributed
-software concepts.
-
-When all the daily hacking is done he tries to take care of XEmacs
-website at ")
-     (about-url-link 'xemacs "Visit XEmacs web site")
-     (widget-insert ".\n"))
+                      All of the buildings,
+                      all of the cars
+                      were once just a dream
+                      in somebody's head.\n
+                                     P. Gabriel\n\n
+")
+     (widget-insert "\n"))
     (sperber
      (widget-insert "\
 Mike ported EFS to XEmacs 20 and integrated EFS into XEmacs.  He's
     (sperber
      (widget-insert "\
 Mike ported EFS to XEmacs 20 and integrated EFS into XEmacs.  He's
@@ -978,8 +957,9 @@ My homepage is ")
      (widget-insert ".\n"))
     (jason
      (widget-insert "\
      (widget-insert ".\n"))
     (jason
      (widget-insert "\
-Beta tester and manager of the various XEmacs mailing lists.
-Originator and maintainer of the gnus.org domain.
+Beta tester, manager of the various XEmacs mailing lists and
+binary kit manager.  Also, originator and maintainer of the gnus.org
+domain.
 
 Jason resides in Albuquerque, New Mexico where he keeps himself
 busy with studies at the university and consulting work.
 
 Jason resides in Albuquerque, New Mexico where he keeps himself
 busy with studies at the university and consulting work.
@@ -997,6 +977,16 @@ skiing, puzzles, and sci-fi.  Jeff is also really interested in classical
 Roman history and enjoys making trips to Italy, where he was born, and
 seeing the sights")
      (widget-insert ".\n"))
 Roman history and enjoys making trips to Italy, where he was born, and
 seeing the sights")
      (widget-insert ".\n"))
+    (chr
+     (widget-insert "\
+Maintainer of the XEmacs FAQ and proud author of `zap-up-to-char'.
+
+Christian is a student at the Norwegian School of Economics and
+Business Administration in Bergen, Norway.  He used to work for an
+internet startup called New Media Science, doing scripting and
+violation of HTML DTD's.  After graduation, spring 1999, he'll be
+looking for a job involving lisp programming, French and Russian.")
+     (widget-insert ".\n"))
 ))
 
 ;; Setup the buffer for a maintainer.
 ))
 
 ;; Setup the buffer for a maintainer.
@@ -1041,7 +1031,7 @@ seeing the sights")
                   (format "<%s>\n%s\n" address shortinfo))))
 
 (defun about-hackers (&rest ignore)
                   (format "<%s>\n%s\n" address shortinfo))))
 
 (defun about-hackers (&rest ignore)
-  (unless (about-get-buffer "*About Hackers*")
+  (unless (about-get-buffer "*About Contributors*")
     (let ((title "Other Contributors to XEmacs"))
       (widget-insert
        (about-center title)
     (let ((title "Other Contributors to XEmacs"))
       (widget-insert
        (about-center title)
@@ -1139,13 +1129,12 @@ XEmacs will speak Scheme.\n")
 Vin helps maintain the older, more mature (read: moldy) versions of
 XEmacs.  Vin has maintained the official XEmacs patch pages.\n")
     (about-show-linked-info 'thiessel "\
 Vin helps maintain the older, more mature (read: moldy) versions of
 XEmacs.  Vin has maintained the official XEmacs patch pages.\n")
     (about-show-linked-info 'thiessel "\
-On May 1, 1996 he started working at University of Kaiserslautern in
-the field of computer aided analog circuit design. His
-responsibilities include the development and design of a CAD-Tool for
-analog integrated circuits with special emphasis on distributed
-software concepts.
+Worked at University of Kaiserslautern where he took part in the 
+development and design of a CAD framework for analog integrated
+circuits with special emphasis on distributed software concepts. He 
+has now joined HP as technical consultant.  
 
 
-When all the daily hacking is done he tries to take care of XEmacs
+For XEmacs he does beta testing and tries to take care of XEmacs
 website at <http://www.xemacs.org>.\n")
     (about-show-linked-info 'ajc "\
 When not helping maintain the XEmacs website, Andrew is a Network
 website at <http://www.xemacs.org>.\n")
     (about-show-linked-info 'ajc "\
 When not helping maintain the XEmacs website, Andrew is a Network
@@ -1206,6 +1195,8 @@ Beta tester and manager of the various XEmacs mailing lists.
 Originator and maintainer of the gnus.org domain.\n")
     (about-show-linked-info 'jmiller "\
 Beta tester and last hacker of calendar.\n")
 Originator and maintainer of the gnus.org domain.\n")
     (about-show-linked-info 'jmiller "\
 Beta tester and last hacker of calendar.\n")
+    (about-show-linked-info 'chr "\
+Maintainer of the XEmacs FAQ and proud author of `zap-up-to-char'.\n")
     (flet ((print-short (name addr &optional shortinfo)
             (concat (about-with-face name 'italic)
                     (about-tabs name)
     (flet ((print-short (name addr &optional shortinfo)
             (concat (about-with-face name 'italic)
                     (about-tabs name)
@@ -1349,7 +1340,7 @@ above.  We couldn't have done it without them.\n\n"
        (print-short "Michael Guenther" "michaelg@igor.stuttgart.netsurf.de")
        (print-short "Dipankar Gupta" "dg@hplb.hpl.hp.com")
        (print-short "Markus Gutschke" "gutschk@GOEDEL.UNI-MUENSTER.DE")
        (print-short "Michael Guenther" "michaelg@igor.stuttgart.netsurf.de")
        (print-short "Dipankar Gupta" "dg@hplb.hpl.hp.com")
        (print-short "Markus Gutschke" "gutschk@GOEDEL.UNI-MUENSTER.DE")
-       (print-short "Kai Haberzettl" "khaberz@privat.circular.de")
+       (print-short "Kai Haberzettl" "khaberz@synnet.de")
        (print-short "Adam Hammer" "hammer@cs.purdue.edu")
        (print-short "Magnus Hammerin" "magnush@epact.se")
        (print-short "ChangGil Han" "cghan@phys401.phys.pusan.ac.kr")
        (print-short "Adam Hammer" "hammer@cs.purdue.edu")
        (print-short "Magnus Hammerin" "magnush@epact.se")
        (print-short "ChangGil Han" "cghan@phys401.phys.pusan.ac.kr")
@@ -1384,15 +1375,16 @@ above.  We couldn't have done it without them.\n\n"
        (print-short "Gregor Kennedy" "gregork@dadd.ti.com")
        (print-short "Michael Kifer" "kifer@cs.sunysb.edu")
        (print-short "Yasuhiko Kiuchi" "kiuchi@dsp.ksp.fujixerox.co.jp")
        (print-short "Gregor Kennedy" "gregork@dadd.ti.com")
        (print-short "Michael Kifer" "kifer@cs.sunysb.edu")
        (print-short "Yasuhiko Kiuchi" "kiuchi@dsp.ksp.fujixerox.co.jp")
-       (print-short "Greg Klanderman" "greg@alphatech.com")
+       (print-short "Greg Klanderman" "greg.klanderman@alum.mit.edu")
        (print-short "Valdis Kletnieks" "Valdis.Kletnieks@vt.edu")
        (print-short "Valdis Kletnieks" "Valdis.Kletnieks@vt.edu")
+       (print-short "Norbert Koch" "n.koch@delta-ii.de")
        (print-short "Rob Kooper" "kooper@cc.gatech.edu")
        (print-short "Peter Skov Knudsen" "knu@dde.dk")
        (print-short "Jens Krinke" "krinke@ips.cs.tu-bs.de")
        (print-short "Maximilien Lincourt" "max@toonboom.com")
        (print-short "Mats Larsson" "Mats.Larsson@uab.ericsson.se")
        (print-short "Simon Leinen" "simon@instrumatic.ch")
        (print-short "Rob Kooper" "kooper@cc.gatech.edu")
        (print-short "Peter Skov Knudsen" "knu@dde.dk")
        (print-short "Jens Krinke" "krinke@ips.cs.tu-bs.de")
        (print-short "Maximilien Lincourt" "max@toonboom.com")
        (print-short "Mats Larsson" "Mats.Larsson@uab.ericsson.se")
        (print-short "Simon Leinen" "simon@instrumatic.ch")
-       (print-short "Carsten Leonhardt" "leo@arioch.tng.oche.de")
+       (print-short "Carsten Leonhardt" "leo@arioch.oche.de")
        (print-short "James LewisMoss" "moss@cs.sc.edu")
        (print-short "Mats Lidell" "mats.lidell@contactor.se")
        (print-short "Matt Liggett" "mliggett@seven.ucs.indiana.edu")
        (print-short "James LewisMoss" "moss@cs.sc.edu")
        (print-short "Mats Lidell" "mats.lidell@contactor.se")
        (print-short "Matt Liggett" "mliggett@seven.ucs.indiana.edu")
@@ -1430,7 +1422,6 @@ above.  We couldn't have done it without them.\n\n"
        (print-short "Andy Norman" "ange@hplb.hpl.hp.com")
        (print-short "Joe Nuspl" "nuspl@sequent.com")
        (print-short "Kim Nyberg" "kny@tekla.fi")
        (print-short "Andy Norman" "ange@hplb.hpl.hp.com")
        (print-short "Joe Nuspl" "nuspl@sequent.com")
        (print-short "Kim Nyberg" "kny@tekla.fi")
-       (print-short "Christian Nybø" "chr@mediascience.no")
        (print-short "Kevin Oberman" "oberman@es.net")
        (print-short "David Ofelt" "ofelt@getalife.Stanford.EDU")
        (print-short "Alexandre Oliva" "oliva@dcc.unicamp.br")
        (print-short "Kevin Oberman" "oberman@es.net")
        (print-short "David Ofelt" "ofelt@getalife.Stanford.EDU")
        (print-short "Alexandre Oliva" "oliva@dcc.unicamp.br")
@@ -1446,7 +1437,7 @@ above.  We couldn't have done it without them.\n\n"
        (print-short "Frederic Poncin" "fp@info.ucl.ac.be")
        (print-short "E. Rehmi Post" "rehmi@asylum.sf.ca.us")
        (print-short "Martin Pottendorfer" "Martin.Pottendorfer@aut.alcatel.at")
        (print-short "Frederic Poncin" "fp@info.ucl.ac.be")
        (print-short "E. Rehmi Post" "rehmi@asylum.sf.ca.us")
        (print-short "Martin Pottendorfer" "Martin.Pottendorfer@aut.alcatel.at")
-       (print-short "Colin Rafferty" "craffert@ml.com")
+       (print-short "Colin Rafferty" "colin@xemacs.org")
        (print-short "Rick Rankin" "Rick_Rankin-P15254@email.mot.com")
        (print-short "Paul M Reilly" "pmr@pajato.com")
        (print-short "Jack Repenning" "jackr@sgi.com")
        (print-short "Rick Rankin" "Rick_Rankin-P15254@email.mot.com")
        (print-short "Paul M Reilly" "pmr@pajato.com")
        (print-short "Jack Repenning" "jackr@sgi.com")
@@ -1469,6 +1460,7 @@ above.  We couldn't have done it without them.\n\n"
        (print-short "Cotton Seed" "cottons@cybercom.net")
        (print-short "Axel Seibert" "seiberta@informatik.tu-muenchen.de")
        (print-short "Odd-Magne Sekkingstad" "oddms@ii.uib.no")
        (print-short "Cotton Seed" "cottons@cybercom.net")
        (print-short "Axel Seibert" "seiberta@informatik.tu-muenchen.de")
        (print-short "Odd-Magne Sekkingstad" "oddms@ii.uib.no")
+       (print-short "Gregory Neil Shapiro" "gshapiro@sendmail.org")
        (print-short "Justin Sheehy" "justin@linus.mitre.org")
        (print-short "John Shen" "zfs60@cas.org")
        (print-short "Murata Shuuichirou" "mrt@mickey.ai.kyutech.ac.jp")
        (print-short "Justin Sheehy" "justin@linus.mitre.org")
        (print-short "John Shen" "zfs60@cas.org")
        (print-short "Murata Shuuichirou" "mrt@mickey.ai.kyutech.ac.jp")
@@ -1496,7 +1488,7 @@ above.  We couldn't have done it without them.\n\n"
        (print-short "Juan E. Villacis" "jvillaci@cs.indiana.edu")
        (print-short "Jan Vroonhof" "vroonhof@math.ethz.ch")
        (print-short "Vladimir Vukicevic" "vladimir@intrepid.com")
        (print-short "Juan E. Villacis" "jvillaci@cs.indiana.edu")
        (print-short "Jan Vroonhof" "vroonhof@math.ethz.ch")
        (print-short "Vladimir Vukicevic" "vladimir@intrepid.com")
-       (print-short "Charles G. Waldman" "cgw@pgt.com")
+       (print-short "Charles G. Waldman" "cgw@fnal.gov")
        (print-short "David Walte" "djw18@cornell.edu")
        (print-short "Peter Ware" "ware@cis.ohio-state.edu")
        (print-short "Christoph Wedler" "wedler@fmi.uni-passau.de")
        (print-short "David Walte" "djw18@cornell.edu")
        (print-short "Peter Ware" "ware@cis.ohio-state.edu")
        (print-short "Christoph Wedler" "wedler@fmi.uni-passau.de")
@@ -1504,6 +1496,7 @@ above.  We couldn't have done it without them.\n\n"
        (print-short "Peter B. West" "p.west@uq.net.au")
        (print-short "Rod Whitby" "rwhitby@asc.corp.mot.com")
        (print-short "Rich Williams" "rdw@hplb.hpl.hp.com")
        (print-short "Peter B. West" "p.west@uq.net.au")
        (print-short "Rod Whitby" "rwhitby@asc.corp.mot.com")
        (print-short "Rich Williams" "rdw@hplb.hpl.hp.com")
+       (print-short "Raymond Wiker" "raymond@orion.no")
        (print-short "Peter Windle" "peterw@SDL.UG.EDS.COM")
        (print-short "David C Worenklein" "dcw@gcm.com")
        (print-short "Takeshi Yamada" "yamada@sylvie.kecl.ntt.jp")
        (print-short "Peter Windle" "peterw@SDL.UG.EDS.COM")
        (print-short "David C Worenklein" "dcw@gcm.com")
        (print-short "Takeshi Yamada" "yamada@sylvie.kecl.ntt.jp")
@@ -1511,6 +1504,7 @@ above.  We couldn't have done it without them.\n\n"
        (print-short "Jason Yanowitz" "yanowitz@eternity.cs.umass.edu")
        (print-short "La Monte Yarroll" "piggy@hilbert.maths.utas.edu.au")
        (print-short "Blair Zajac" "blair@olympia.gps.caltech.edu")
        (print-short "Jason Yanowitz" "yanowitz@eternity.cs.umass.edu")
        (print-short "La Monte Yarroll" "piggy@hilbert.maths.utas.edu.au")
        (print-short "Blair Zajac" "blair@olympia.gps.caltech.edu")
+       (print-short "Volker Zell" "vzell@de.oracle.com")
        (print-short "Daniel Zivkovic" "daniel@canada.sun.com")
        (print-short "Karel Zuiderveld" "Karel.Zuiderveld@cv.ruu.nl")
        "\n"))
        (print-short "Daniel Zivkovic" "daniel@canada.sun.com")
        (print-short "Karel Zuiderveld" "Karel.Zuiderveld@cv.ruu.nl")
        "\n"))
index 6ee8b03..fbd409a 100644 (file)
@@ -1,13 +1,11 @@
-;;; alist.el --- utility functions about assoc-list
+;;; alist.el --- utility functions about association-list
 
 
-;; Copyright (C) 1993,1994,1995,1996 Free Software Foundation, Inc.
+;; Copyright (C) 1993,1994,1995,1996,1998 Free Software Foundation, Inc.
 
 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 
 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
-;; Version:
-;;     $Id: alist.el,v 1.1 1997/11/29 20:37:43 steve Exp $
 ;; Keywords: alist
 
 ;; Keywords: alist
 
-;; This file is part of SEMI (SEMI is Emacs MIME Interfaces).
+;; This file is part of APEL (A Portable Emacs Library).
 
 ;; This program is free software; you can redistribute it and/or
 ;; modify it under the terms of the GNU General Public License as
 
 ;; This program is free software; you can redistribute it and/or
 ;; modify it under the terms of the GNU General Public License as
@@ -26,6 +24,7 @@
 
 ;;; Code:
 
 
 ;;; Code:
 
+;;;###autoload
 (defun put-alist (item value alist)
   "Modify ALIST to set VALUE to ITEM.
 If there is a pair whose car is ITEM, replace its cdr by VALUE.
 (defun put-alist (item value alist)
   "Modify ALIST to set VALUE to ITEM.
 If there is a pair whose car is ITEM, replace its cdr by VALUE.
@@ -40,6 +39,7 @@ return new alist whose car is the new pair and cdr is ALIST.
       (cons (cons item value) alist)
       )))
 
       (cons (cons item value) alist)
       )))
 
+;;;###autoload
 (defun del-alist (item alist)
   "If there is a pair whose key is ITEM, delete it from ALIST.
 \[tomo's ELIS emulating function]"
 (defun del-alist (item alist)
   "If there is a pair whose key is ITEM, delete it from ALIST.
 \[tomo's ELIS emulating function]"
@@ -59,6 +59,7 @@ return new alist whose car is the new pair and cdr is ALIST.
          )
        alist))))
 
          )
        alist))))
 
+;;;###autoload
 (defun set-alist (symbol item value)
   "Modify a alist indicated by SYMBOL to set VALUE to ITEM."
   (or (boundp symbol)
 (defun set-alist (symbol item value)
   "Modify a alist indicated by SYMBOL to set VALUE to ITEM."
   (or (boundp symbol)
@@ -67,12 +68,14 @@ return new alist whose car is the new pair and cdr is ALIST.
   (set symbol (put-alist item value (symbol-value symbol)))
   )
 
   (set symbol (put-alist item value (symbol-value symbol)))
   )
 
+;;;###autoload
 (defun remove-alist (symbol item)
   "Remove ITEM from the alist indicated by SYMBOL."
   (and (boundp symbol)
        (set symbol (del-alist item (symbol-value symbol)))
        ))
 
 (defun remove-alist (symbol item)
   "Remove ITEM from the alist indicated by SYMBOL."
   (and (boundp symbol)
        (set symbol (del-alist item (symbol-value symbol)))
        ))
 
+;;;###autoload
 (defun modify-alist (modifier default)
   "Modify alist DEFAULT into alist MODIFIER."
   (mapcar (function
 (defun modify-alist (modifier default)
   "Modify alist DEFAULT into alist MODIFIER."
   (mapcar (function
@@ -82,6 +85,7 @@ return new alist whose car is the new pair and cdr is ALIST.
          modifier)
   default)
 
          modifier)
   default)
 
+;;;###autoload
 (defun set-modified-alist (sym modifier)
   "Modify a value of a symbol SYM into alist MODIFIER.
 The symbol SYM should be alist. If it is not bound,
 (defun set-modified-alist (sym modifier)
   "Modify a value of a symbol SYM into alist MODIFIER.
 The symbol SYM should be alist. If it is not bound,
index c7857dd..5839194 100644 (file)
@@ -309,7 +309,7 @@ Returns list of symbols and documentation found."
               (lambda (symbol)
                 (setq f (apropos-safe-documentation symbol)
                       v (get symbol 'variable-documentation))
               (lambda (symbol)
                 (setq f (apropos-safe-documentation symbol)
                       v (get symbol 'variable-documentation))
-                (if (integerp v) (setq v))
+                (when (integerp v) (setq v nil))
                 (setq f (apropos-documentation-internal f)
                       v (apropos-documentation-internal v))
                 (if (or f v)
                 (setq f (apropos-documentation-internal f)
                       v (apropos-documentation-internal v))
                 (if (or f v)
index 55a4534..b485276 100644 (file)
@@ -12,6 +12,35 @@ Describe the True Editor and its minions." t nil)
 
 ;;;***
 \f
 
 ;;;***
 \f
+;;;### (autoloads (set-modified-alist modify-alist remove-alist set-alist del-alist put-alist) "alist" "lisp/alist.el")
+
+(autoload 'put-alist "alist" "\
+Modify ALIST to set VALUE to ITEM.
+If there is a pair whose car is ITEM, replace its cdr by VALUE.
+If there is not such pair, create new pair (ITEM . VALUE) and
+return new alist whose car is the new pair and cdr is ALIST.
+[tomo's ELIS like function]" nil nil)
+
+(autoload 'del-alist "alist" "\
+If there is a pair whose key is ITEM, delete it from ALIST.
+[tomo's ELIS emulating function]" nil nil)
+
+(autoload 'set-alist "alist" "\
+Modify a alist indicated by SYMBOL to set VALUE to ITEM." nil nil)
+
+(autoload 'remove-alist "alist" "\
+Remove ITEM from the alist indicated by SYMBOL." nil nil)
+
+(autoload 'modify-alist "alist" "\
+Modify alist DEFAULT into alist MODIFIER." nil nil)
+
+(autoload 'set-modified-alist "alist" "\
+Modify a value of a symbol SYM into alist MODIFIER.
+The symbol SYM should be alist. If it is not bound,
+its value regard as nil." nil nil)
+
+;;;***
+\f
 ;;;### (autoloads (apropos-documentation apropos-value apropos apropos-command) "apropos" "lisp/apropos.el")
 
 (fset 'command-apropos 'apropos-command)
 ;;;### (autoloads (apropos-documentation apropos-value apropos apropos-command) "apropos" "lisp/apropos.el")
 
 (fset 'command-apropos 'apropos-command)
@@ -175,7 +204,7 @@ For example, invoke `xemacs -batch -f batch-byte-recompile-directory .'." nil ni
 
 ;;;***
 \f
 
 ;;;***
 \f
-;;;### (autoloads (compiler-macroexpand define-compiler-macro ignore-errors assert check-type typep deftype cl-struct-setf-expander defstruct define-modify-macro callf2 callf letf* letf rotatef shiftf remf cl-do-pop psetf setf get-setf-method defsetf define-setf-method declare the locally multiple-value-setq multiple-value-bind lexical-let* lexical-let symbol-macrolet macrolet labels flet progv psetq do-all-symbols do-symbols dotimes dolist do* do loop return-from return block etypecase typecase ecase case load-time-value eval-when destructuring-bind function* defmacro* defun* gentemp gensym cl-compile-time-init) "cl-macs" "lisp/cl-macs.el")
+;;;### (autoloads (compiler-macroexpand define-compiler-macro ignore-file-errors ignore-errors assert check-type typep deftype cl-struct-setf-expander defstruct define-modify-macro callf2 callf letf* letf rotatef shiftf remf cl-do-pop psetf setf get-setf-method defsetf define-setf-method declare the locally multiple-value-setq multiple-value-bind lexical-let* lexical-let symbol-macrolet macrolet labels flet progv psetq do-all-symbols do-symbols dotimes dolist do* do loop return-from return block etypecase typecase ecase case load-time-value eval-when destructuring-bind function* defmacro* defun* gentemp gensym cl-compile-time-init) "cl-macs" "lisp/cl-macs.el")
 
 (autoload 'cl-compile-time-init "cl-macs" nil nil nil)
 
 
 (autoload 'cl-compile-time-init "cl-macs" nil nil nil)
 
@@ -254,7 +283,7 @@ This is equivalent to `(return-from nil RESULT)'." nil 'macro)
 
 (autoload 'return-from "cl-macs" "\
 (return-from NAME [RESULT]): return from the block named NAME.
 
 (autoload 'return-from "cl-macs" "\
 (return-from NAME [RESULT]): return from the block named NAME.
-This jump out to the innermost enclosing `(block NAME ...)' form,
+This jumps out to the innermost enclosing `(block NAME ...)' form,
 returning RESULT from that form (or nil if RESULT is omitted).
 This is compatible with Common Lisp, but note that `defun' and
 `defmacro' do not create implicit blocks as they do in Common Lisp." nil 'macro)
 returning RESULT from that form (or nil if RESULT is omitted).
 This is compatible with Common Lisp, but note that `defun' and
 `defmacro' do not create implicit blocks as they do in Common Lisp." nil 'macro)
@@ -322,7 +351,7 @@ go back to their previous definitions, or lack thereof)." nil 'macro)
 (autoload 'labels "cl-macs" "\
 (labels ((FUNC ARGLIST BODY...) ...) FORM...): make temporary func bindings.
 This is like `flet', except the bindings are lexical instead of dynamic.
 (autoload 'labels "cl-macs" "\
 (labels ((FUNC ARGLIST BODY...) ...) FORM...): make temporary func bindings.
 This is like `flet', except the bindings are lexical instead of dynamic.
-Unlike `flet', this macro is fully complaint with the Common Lisp standard." nil 'macro)
+Unlike `flet', this macro is fully compliant with the Common Lisp standard." nil 'macro)
 
 (autoload 'macrolet "cl-macs" "\
 (macrolet ((NAME ARGLIST BODY...) ...) FORM...): make temporary macro defns.
 
 (autoload 'macrolet "cl-macs" "\
 (macrolet ((NAME ARGLIST BODY...) ...) FORM...): make temporary macro defns.
@@ -486,6 +515,10 @@ omitted, a default message listing FORM itself is used." nil 'macro)
 Execute FORMS; if an error occurs, return nil.
 Otherwise, return result of last FORM." nil 'macro)
 
 Execute FORMS; if an error occurs, return nil.
 Otherwise, return result of last FORM." nil 'macro)
 
+(autoload 'ignore-file-errors "cl-macs" "\
+Execute FORMS; if an error of type `file-error' occurs, return nil.
+Otherwise, return result of last FORM." nil 'macro)
+
 (autoload 'define-compiler-macro "cl-macs" "\
 (define-compiler-macro FUNC ARGLIST BODY...): Define a compiler-only macro.
 This is like `defmacro', but macro expansion occurs only if the call to
 (autoload 'define-compiler-macro "cl-macs" "\
 (define-compiler-macro FUNC ARGLIST BODY...): Define a compiler-only macro.
 This is like `defmacro', but macro expansion occurs only if the call to
@@ -511,7 +544,7 @@ and then returning foo." nil 'macro)
 ;;;### (autoloads (config-value config-value-hash-table) "config" "lisp/config.el")
 
 (autoload 'config-value-hash-table "config" "\
 ;;;### (autoloads (config-value config-value-hash-table) "config" "lisp/config.el")
 
 (autoload 'config-value-hash-table "config" "\
-Return hashtable of configuration parameters and their values." nil nil)
+Return hash table of configuration parameters and their values." nil nil)
 
 (autoload 'config-value "config" "\
 Return the value of the configuration parameter CONFIG_SYMBOL." nil nil)
 
 (autoload 'config-value "config" "\
 Return the value of the configuration parameter CONFIG_SYMBOL." nil nil)
@@ -665,11 +698,15 @@ The format is suitable for use with `easy-menu-define'." nil nil)
 
 ;;;***
 \f
 
 ;;;***
 \f
-;;;### (autoloads (custom-set-faces custom-declare-face) "cus-face" "lisp/cus-face.el")
+;;;### (autoloads (custom-set-faces custom-set-face-update-spec custom-declare-face) "cus-face" "lisp/cus-face.el")
 
 (autoload 'custom-declare-face "cus-face" "\
 Like `defface', but FACE is evaluated as a normal argument." nil nil)
 
 
 (autoload 'custom-declare-face "cus-face" "\
 Like `defface', but FACE is evaluated as a normal argument." nil nil)
 
+(autoload 'custom-set-face-update-spec "cus-face" "\
+Customize the FACE for display types matching DISPLAY, merging
+  in the new items from PLIST" nil nil)
+
 (autoload 'custom-set-faces "cus-face" "\
 Initialize faces according to user preferences.
 The arguments should be a list where each entry has the form:
 (autoload 'custom-set-faces "cus-face" "\
 Initialize faces according to user preferences.
 The arguments should be a list where each entry has the form:
@@ -736,7 +773,7 @@ With prefix argument, enable European character display iff arg is positive." t
 
 ;;;***
 \f
 
 ;;;***
 \f
-;;;### (autoloads (tags-apropos list-tags tags-query-replace tags-search tags-loop-continue next-file tag-complete-symbol find-tag-other-window find-tag visit-tags-table) "etags" "lisp/etags.el")
+;;;### (autoloads (pop-tag-mark tags-apropos list-tags tags-query-replace tags-search tags-loop-continue next-file tag-complete-symbol find-tag-other-window find-tag visit-tags-table) "etags" "lisp/etags.el")
 
 (autoload 'visit-tags-table "etags" "\
 Tell tags commands to use tags table file FILE when all else fails.
 
 (autoload 'visit-tags-table "etags" "\
 Tell tags commands to use tags table file FILE when all else fails.
@@ -836,6 +873,11 @@ Display list of tags in FILE." t nil)
 Display list of all tags in tag table REGEXP matches." t nil)
 (define-key esc-map "*" 'pop-tag-mark)
 
 Display list of all tags in tag table REGEXP matches." t nil)
 (define-key esc-map "*" 'pop-tag-mark)
 
+(autoload 'pop-tag-mark "etags" "\
+Go to last tag position.
+`find-tag' maintains a mark-stack seperate from the \\[set-mark-command] mark-stack.
+This function pops (and moves to) the tag at the top of this stack." t nil)
+
 ;;;***
 \f
 ;;;### (autoloads (finder-by-keyword) "finder" "lisp/finder.el")
 ;;;***
 \f
 ;;;### (autoloads (finder-by-keyword) "finder" "lisp/finder.el")
@@ -921,7 +963,7 @@ MATCH-ANCHORED should be of the form:
 Where MATCHER is as for MATCH-HIGHLIGHT with one exception; see below.
 PRE-MATCH-FORM and POST-MATCH-FORM are evaluated before the first, and after
 the last, instance MATCH-ANCHORED's MATCHER is used.  Therefore they can be
 Where MATCHER is as for MATCH-HIGHLIGHT with one exception; see below.
 PRE-MATCH-FORM and POST-MATCH-FORM are evaluated before the first, and after
 the last, instance MATCH-ANCHORED's MATCHER is used.  Therefore they can be
-used to initialise before, and cleanup after, MATCHER is used.  Typically,
+used to initialize before, and cleanup after, MATCHER is used.  Typically,
 PRE-MATCH-FORM is used to move to some position relative to the original
 MATCHER, before starting with MATCH-ANCHORED's MATCHER.  POST-MATCH-FORM might
 be used to move, before resuming with MATCH-ANCHORED's parent's MATCHER.
 PRE-MATCH-FORM is used to move to some position relative to the original
 MATCHER, before starting with MATCH-ANCHORED's MATCHER.  POST-MATCH-FORM might
 be used to move, before resuming with MATCH-ANCHORED's parent's MATCHER.
@@ -956,7 +998,7 @@ the wrong pattern can dramatically slow things down!")
 
 (make-variable-buffer-local 'font-lock-keywords)
 
 
 (make-variable-buffer-local 'font-lock-keywords)
 
-(defcustom font-lock-mode nil "Non nil means `font-lock-mode' is on" :group 'font-lock :type 'boolean :initialize 'custom-initialize-default :require 'font-lock :set '(lambda (var val) (font-lock-mode (or val 0))))
+(defcustom font-lock-mode nil "Non nil means `font-lock-mode' is on" :group 'font-lock :type 'boolean :initialize 'custom-initialize-default :require 'font-lock :set (function (lambda (var val) (font-lock-mode (or val 0)))))
 
 (defvar font-lock-mode-hook nil "\
 Function or functions to run on entry to font-lock-mode.")
 
 (defvar font-lock-mode-hook nil "\
 Function or functions to run on entry to font-lock-mode.")
@@ -1058,7 +1100,7 @@ Prefix arg means just kill any existing server communications subprocess." t nil
 
 ;;;***
 \f
 
 ;;;***
 \f
-;;;### (autoloads (hyper-apropos-popup-menu hyper-apropos-set-variable hyper-set-variable hyper-apropos-read-variable-symbol hyper-describe-function hyper-describe-variable hyper-describe-face hyper-describe-key-briefly hyper-describe-key hyper-apropos) "hyper-apropos" "lisp/hyper-apropos.el")
+;;;### (autoloads (hyper-apropos-popup-menu hyper-apropos-set-variable hyper-set-variable hyper-apropos-read-variable-symbol hyper-describe-function hyper-where-is hyper-describe-variable hyper-describe-face hyper-describe-key-briefly hyper-describe-key hyper-apropos) "hyper-apropos" "lisp/hyper-apropos.el")
 
 (autoload 'hyper-apropos "hyper-apropos" "\
 Display lists of functions and variables matching REGEXP
 
 (autoload 'hyper-apropos "hyper-apropos" "\
 Display lists of functions and variables matching REGEXP
@@ -1078,6 +1120,9 @@ See also `hyper-apropos' and `hyper-describe-function'." t nil)
 Hypertext drop-in replacement for `describe-variable'.
 See also `hyper-apropos' and `hyper-describe-function'." t nil)
 
 Hypertext drop-in replacement for `describe-variable'.
 See also `hyper-apropos' and `hyper-describe-function'." t nil)
 
+(autoload 'hyper-where-is "hyper-apropos" "\
+Print message listing key sequences that invoke specified command." t nil)
+
 (autoload 'hyper-describe-function "hyper-apropos" "\
 Hypertext replacement for `describe-function'.  Unlike `describe-function'
 in that the symbol under the cursor is the default if it is a function.
 (autoload 'hyper-describe-function "hyper-apropos" "\
 Hypertext replacement for `describe-function'.  Unlike `describe-function'
 in that the symbol under the cursor is the default if it is a function.
@@ -1204,7 +1249,88 @@ Install a pre-bytecompiled XEmacs package into package hierarchy." t nil)
 
 ;;;***
 \f
 
 ;;;***
 \f
-;;;### (autoloads (package-get-custom package-get-package-provider package-get package-get-all package-get-update-all) "package-get" "lisp/package-get.el")
+;;;### (autoloads (package-get-custom package-get-package-provider package-get package-get-dependencies package-get-all package-get-update-all package-get-delete-package package-get-save-base package-get-update-base-from-buffer package-get-update-base package-get-update-base-entry package-get-require-base package-get-download-menu) "package-get" "lisp/package-get.el")
+
+(defvar package-get-base nil "\
+List of packages that are installed at this site.
+For each element in the alist,  car is the package name and the cdr is
+a plist containing information about the package.   Typical fields
+kept in the plist are:
+
+version                - version of this package
+provides       - list of symbols provided
+requires       - list of symbols that are required.
+                 These in turn are provided by other packages.
+filename       - name of the file.
+size           - size of the file (aka the bundled package)
+md5sum         - computed md5 checksum
+description    - What this package is for.
+type           - Whether this is a 'binary (default) or 'single file package
+
+More fields may be added as needed.  An example:
+
+'(
+ (name
+  (version \"<version 2>\"
+   file \"filename\"
+   description \"what this package is about.\"
+   provides (<list>)
+   requires (<list>)
+   size <integer-bytes>
+   md5sum \"<checksum\"
+   type single
+   )
+  (version \"<version 1>\"
+   file \"filename\"
+   description \"what this package is about.\"
+   provides (<list>)
+   requires (<list>)
+   size <integer-bytes>
+   md5sum \"<checksum\"
+   type single
+   )
+   ...
+   ))
+
+For version information, it is assumed things are listed in most
+recent to least recent -- in other words, the version names don't have to
+be lexically ordered.  It is debatable if it makes sense to have more than
+one version of a package available.")
+
+(autoload 'package-get-download-menu "package-get" "\
+Build the `Add Download Site' menu." nil nil)
+
+(autoload 'package-get-require-base "package-get" "\
+Require that a package-get database has been loaded.
+If the optional FORCE-CURRENT argument or the value of
+`package-get-always-update' is Non-nil, try to update the database
+from a location in `package-get-remote'. Otherwise a local copy is used
+if available and remote access is never done.
+
+Please use FORCE-CURRENT only when the user is explictly dealing with packages
+and remote access is likely in the near future." nil nil)
+
+(autoload 'package-get-update-base-entry "package-get" "\
+Update an entry in `package-get-base'." nil nil)
+
+(autoload 'package-get-update-base "package-get" "\
+Update the package-get database file with entries from DB-FILE.
+Unless FORCE-CURRENT is non-nil never try to update the database." t nil)
+
+(autoload 'package-get-update-base-from-buffer "package-get" "\
+Update the package-get database with entries from BUFFER.
+BUFFER defaults to the current buffer.  This command can be
+used interactively, for example from a mail or news buffer." t nil)
+
+(autoload 'package-get-save-base "package-get" "\
+Write the package-get database to FILE.
+
+Note: This database will be unsigned of course." t nil)
+
+(autoload 'package-get-delete-package "package-get" "\
+Delete an installation of PACKAGE below directory PKG-TOPDIR.
+PACKAGE is a symbol, not a string.
+This is just an interactive wrapper for `package-admin-delete-binary-package'." t nil)
 
 (autoload 'package-get-update-all "package-get" "\
 Fetch and install the latest versions of all currently installed packages." t nil)
 
 (autoload 'package-get-update-all "package-get" "\
 Fetch and install the latest versions of all currently installed packages." t nil)
@@ -1214,7 +1340,17 @@ Fetch PACKAGE with VERSION and all other required packages.
 Uses `package-get-base' to determine just what is required and what
 package provides that functionality.  If VERSION is nil, retrieves
 latest version.  Optional argument FETCHED-PACKAGES is used to keep
 Uses `package-get-base' to determine just what is required and what
 package provides that functionality.  If VERSION is nil, retrieves
 latest version.  Optional argument FETCHED-PACKAGES is used to keep
-track of packages already fetched." t nil)
+track of packages already fetched.  Optional argument INSTALL-DIR,
+if non-nil, specifies the package directory where fetched packages
+should be installed.
+
+Returns nil upon error." t nil)
+
+(autoload 'package-get-dependencies "package-get" "\
+Compute dependencies for PACKAGES.
+Uses `package-get-base' to determine just what is required and what
+package provides that functionality.  Returns the list of packages
+required by PACKAGES." nil nil)
 
 (autoload 'package-get "package-get" "\
 Fetch PACKAGE from remote site.
 
 (autoload 'package-get "package-get" "\
 Fetch PACKAGE from remote site.
@@ -1223,6 +1359,8 @@ means most recent version.  CONFLICT indicates what happens if the
 package is already installed.  Valid values for CONFLICT are:
 'always        always retrieve the package even if it is already installed
 'never do not retrieve the package if it is installed.
 package is already installed.  Valid values for CONFLICT are:
 'always        always retrieve the package even if it is already installed
 'never do not retrieve the package if it is installed.
+INSTALL-DIR, if non-nil, specifies the package directory where
+fetched packages should be installed.
 
 The value of `package-get-base' is used to determine what files should 
 be retrieved.  The value of `package-get-remote' is used to determine
 
 The value of `package-get-base' is used to determine what files should 
 be retrieved.  The value of `package-get-remote' is used to determine
@@ -1231,19 +1369,48 @@ order so one is better off listing easily reached sites first.
 
 Once the package is retrieved, its md5 checksum is computed.  If that
 sum does not match that stored in `package-get-base' for this version
 
 Once the package is retrieved, its md5 checksum is computed.  If that
 sum does not match that stored in `package-get-base' for this version
-of the package, an error is signalled." t nil)
+of the package, an error is signalled.
+
+Returns `t' upon success, the symbol `error' if the package was
+successfully installed but errors occurred during initialization, or
+`nil' upon error." t nil)
 
 (autoload 'package-get-package-provider "package-get" "\
 Search for a package that provides SYM and return the name and
   version.  Searches in `package-get-base' for SYM.   If SYM is a
   consp, then it must match a corresponding (provide (SYM VERSION)) from 
 
 (autoload 'package-get-package-provider "package-get" "\
 Search for a package that provides SYM and return the name and
   version.  Searches in `package-get-base' for SYM.   If SYM is a
   consp, then it must match a corresponding (provide (SYM VERSION)) from 
-  the package." t nil)
+  the package.
+
+If FORCE-CURRENT is non-nil make sure the database is up to date. This might
+lead to Emacs accessing remote sites." t nil)
 
 (autoload 'package-get-custom "package-get" "\
 Fetch and install the latest versions of all customized packages." t nil)
 
 ;;;***
 \f
 
 (autoload 'package-get-custom "package-get" "\
 Fetch and install the latest versions of all customized packages." t nil)
 
 ;;;***
 \f
+;;;### (autoloads (pui-list-packages pui-add-install-directory package-ui-add-site) "package-ui" "lisp/package-ui.el")
+
+(autoload 'package-ui-add-site "package-ui" "\
+Add site to package-get-remote and possibly offer to update package list." nil nil)
+
+(autoload 'pui-add-install-directory "package-ui" "\
+Add a new package binary directory to the head of `package-get-remote'.
+Note that no provision is made for saving any changes made by this function.
+It exists mainly as a convenience for one-time package installations from
+disk." t nil)
+
+(autoload 'pui-list-packages "package-ui" "\
+List all packages and package information.
+The package name, version, and description are displayed.  From the displayed
+buffer, the user can see which packages are installed, which are not, and
+which are out-of-date (a newer version is available).  The user can then
+select packages for installation via the keyboard or mouse." t nil)
+
+(defalias 'list-packages 'pui-list-packages)
+
+;;;***
+\f
 ;;;### (autoloads (picture-mode) "picture" "lisp/picture.el")
 
 (autoload 'picture-mode "picture" "\
 ;;;### (autoloads (picture-mode) "picture" "lisp/picture.el")
 
 (autoload 'picture-mode "picture" "\
@@ -1448,7 +1615,7 @@ The buffer in question is current when this function is called." nil nil)
 
 ;;;***
 \f
 
 ;;;***
 \f
-;;;### (autoloads (auto-view-mode view-major-mode view-mode view-minor-mode view-buffer-other-window view-file-other-window view-buffer view-file) "view-less" "lisp/view-less.el")
+;;;### (autoloads (toggle-truncate-lines auto-view-mode view-major-mode view-mode view-minor-mode view-buffer-other-window view-file-other-window view-buffer view-file) "view-less" "lisp/view-less.el")
 
 (defvar view-minor-mode-map (let ((map (make-keymap))) (set-keymap-name map 'view-minor-mode-map) (suppress-keymap map) (define-key map "-" 'negative-argument) (define-key map " " 'scroll-up) (define-key map "f" 'scroll-up) (define-key map "b" 'scroll-down) (define-key map 'backspace 'scroll-down) (define-key map 'delete 'scroll-down) (define-key map "\r" 'view-scroll-lines-up) (define-key map "\n" 'view-scroll-lines-up) (define-key map "e" 'view-scroll-lines-up) (define-key map "j" 'view-scroll-lines-up) (define-key map "y" 'view-scroll-lines-down) (define-key map "k" 'view-scroll-lines-down) (define-key map "d" 'view-scroll-some-lines-up) (define-key map "u" 'view-scroll-some-lines-down) (define-key map "r" 'recenter) (define-key map "t" 'toggle-truncate-lines) (define-key map "N" 'view-buffer) (define-key map "E" 'view-file) (define-key map "P" 'view-buffer) (define-key map "!" 'shell-command) (define-key map "|" 'shell-command-on-region) (define-key map "=" 'what-line) (define-key map "?" 'view-search-backward) (define-key map "h" 'view-mode-describe) (define-key map "s" 'view-repeat-search) (define-key map "n" 'view-repeat-search) (define-key map "/" 'view-search-forward) (define-key map "\\" 'view-search-backward) (define-key map "g" 'view-goto-line) (define-key map "G" 'view-last-windowful) (define-key map "%" 'view-goto-percent) (define-key map "p" 'view-goto-percent) (define-key map "m" 'point-to-register) (define-key map "'" 'register-to-point) (define-key map "C" 'view-cleanup-backspaces) (define-key map "\ 3\ 3" 'view-quit) (define-key map "\18\11" 'view-quit-toggle-ro) (define-key map "q" 'view-quit) map))
 
 
 (defvar view-minor-mode-map (let ((map (make-keymap))) (set-keymap-name map 'view-minor-mode-map) (suppress-keymap map) (define-key map "-" 'negative-argument) (define-key map " " 'scroll-up) (define-key map "f" 'scroll-up) (define-key map "b" 'scroll-down) (define-key map 'backspace 'scroll-down) (define-key map 'delete 'scroll-down) (define-key map "\r" 'view-scroll-lines-up) (define-key map "\n" 'view-scroll-lines-up) (define-key map "e" 'view-scroll-lines-up) (define-key map "j" 'view-scroll-lines-up) (define-key map "y" 'view-scroll-lines-down) (define-key map "k" 'view-scroll-lines-down) (define-key map "d" 'view-scroll-some-lines-up) (define-key map "u" 'view-scroll-some-lines-down) (define-key map "r" 'recenter) (define-key map "t" 'toggle-truncate-lines) (define-key map "N" 'view-buffer) (define-key map "E" 'view-file) (define-key map "P" 'view-buffer) (define-key map "!" 'shell-command) (define-key map "|" 'shell-command-on-region) (define-key map "=" 'what-line) (define-key map "?" 'view-search-backward) (define-key map "h" 'view-mode-describe) (define-key map "s" 'view-repeat-search) (define-key map "n" 'view-repeat-search) (define-key map "/" 'view-search-forward) (define-key map "\\" 'view-search-backward) (define-key map "g" 'view-goto-line) (define-key map "G" 'view-last-windowful) (define-key map "%" 'view-goto-percent) (define-key map "p" 'view-goto-percent) (define-key map "m" 'point-to-register) (define-key map "'" 'register-to-point) (define-key map "C" 'view-cleanup-backspaces) (define-key map "\ 3\ 3" 'view-quit) (define-key map "\18\11" 'view-quit-toggle-ro) (define-key map "q" 'view-quit) map))
 
@@ -1514,6 +1681,10 @@ named but is like this for compatibility reasons." t nil)
 If the file of the current buffer is not writable, call view-mode.
 This is meant to be added to `find-file-hooks'." nil nil)
 
 If the file of the current buffer is not writable, call view-mode.
 This is meant to be added to `find-file-hooks'." nil nil)
 
+(autoload 'toggle-truncate-lines "view-less" "\
+Toggles the values of truncate-lines.
+Positive prefix arg sets, negative disables." t nil)
+
 ;;;***
 \f
 ;;;### (autoloads (widget-minor-mode widget-browse-other-window widget-browse widget-browse-at) "wid-browse" "lisp/wid-browse.el")
 ;;;***
 \f
 ;;;### (autoloads (widget-minor-mode widget-browse-other-window widget-browse widget-browse-at) "wid-browse" "lisp/wid-browse.el")
@@ -1550,9 +1721,9 @@ Delete WIDGET." nil nil)
 \f
 ;;;### (autoloads (font-menu-weight-constructor font-menu-size-constructor font-menu-family-constructor reset-device-font-menus) "x-font-menu" "lisp/x-font-menu.el")
 
 \f
 ;;;### (autoloads (font-menu-weight-constructor font-menu-size-constructor font-menu-family-constructor reset-device-font-menus) "x-font-menu" "lisp/x-font-menu.el")
 
-(defcustom font-menu-ignore-scaled-fonts t "*If non-nil, then the font menu will try to show only bitmap fonts." :type 'boolean :group 'x)
+(defcustom font-menu-ignore-scaled-fonts t "*If non-nil, then the font menu will try to show only bitmap fonts." :type 'boolean :group 'font-menu)
 
 
-(defcustom font-menu-this-frame-only-p nil "*If non-nil, then changing the default font from the font menu will only\naffect one frame instead of all frames." :type 'boolean :group 'x)
+(defcustom font-menu-this-frame-only-p nil "*If non-nil, then changing the default font from the font menu will only\naffect one frame instead of all frames." :type 'boolean :group 'font-menu)
 
 (fset 'install-font-menus 'reset-device-font-menus)
 
 
 (fset 'install-font-menus 'reset-device-font-menus)
 
@@ -1571,5 +1742,17 @@ or if you change your font path, you can call this to re-initialize the menus."
 (autoload 'font-menu-weight-constructor "x-font-menu" nil nil nil)
 
 ;;;***
 (autoload 'font-menu-weight-constructor "x-font-menu" nil nil nil)
 
 ;;;***
+\f
+;;;### (autoloads (x-win-init-sun) "x-win-sun" "lisp/x-win-sun.el")
+
+(autoload 'x-win-init-sun "x-win-sun" nil nil nil)
+
+;;;***
+\f
+;;;### (autoloads (x-win-init-xfree86) "x-win-xfree86" "lisp/x-win-xfree86.el")
+
+(autoload 'x-win-init-xfree86 "x-win-xfree86" nil nil nil)
+
+;;;***
 
 (provide 'Standard-autoloads)
 
 (provide 'Standard-autoloads)
index e7df3e6..bbda85d 100644 (file)
@@ -186,7 +186,8 @@ Special value 'always deletes those files silently."
 \f
 ;;; Preparations to be done at load time
 
 \f
 ;;; Preparations to be done at load time
 
-(defvar auto-save-directory-fallback (expand-file-name "~/.autosave/")
+;; Do not call expand-file-name! This is evaluated at dump time now!
+(defvar auto-save-directory-fallback "~/.autosave/"
   ;; not user-variable-p, see above
   "Directory used for local autosaving of remote files if
 both `auto-save-directory' and `efs-auto-save-remotely' are nil.
   ;; not user-variable-p, see above
   "Directory used for local autosaving of remote files if
 both `auto-save-directory' and `efs-auto-save-remotely' are nil.
@@ -199,25 +200,24 @@ created by you, never nil.")
                                auto-save-directory-fallback))
   "If non-nil, directory used for hashed autosave filenames.")
 
                                auto-save-directory-fallback))
   "If non-nil, directory used for hashed autosave filenames.")
 
-(defun auto-save-check-directory (var)
-  (let ((dir (symbol-value var)))
-    (if (null dir)
-       nil
-      ;; Expand and store back into the variable
-      (set var (setq dir (expand-file-name dir)))
+(defun auto-save-checked-directory (dir)
+  "Make sure the directory DIR exists and return it expanded if non-nil."
+    (when dir
+      (setq dir (expand-file-name dir))
       ;; Make sure directory exists
       ;; Make sure directory exists
-      (if (file-directory-p dir)
-         nil
+      (unless (file-directory-p dir)
        ;; Else we create and chmod 0700 the directory
        (setq dir (directory-file-name dir)) ; some systems need this
        (make-directory dir)
        ;; Else we create and chmod 0700 the directory
        (setq dir (directory-file-name dir)) ; some systems need this
        (make-directory dir)
-       (set-file-modes dir #o700)))))
+       (set-file-modes dir #o700))
+      dir))
 
 
-(mapc #'auto-save-check-directory
-     '(auto-save-directory auto-save-directory-fallback))
+;; This make no sense at dump time
+;; (mapc #'auto-save-check-directory
+;     '(auto-save-directory auto-save-directory-fallback))
 
 
-(and auto-save-hash-p
-     (auto-save-check-directory 'auto-save-hash-directory))
+;(and auto-save-hash-p
+;     (auto-save-check-directory 'auto-save-hash-directory))
 
 \f
 ;;; Computing an autosave name for a file and vice versa
 
 \f
 ;;; Computing an autosave name for a file and vice versa
@@ -335,8 +335,12 @@ Hashed files are not understood, see `auto-save-hash-p'."
               (string-match "^#%" basename))
           nil)
          ;; now we know it looks like #...# thus substring is safe to use
               (string-match "^#%" basename))
           nil)
          ;; now we know it looks like #...# thus substring is safe to use
-         ((or (equal savedir auto-save-directory) ; 2nd arg may be nil
-              (equal savedir auto-save-directory-fallback))
+         ((or (equal savedir
+                     (and auto-save-directory
+                          (expand-file-name auto-save-directory)))
+                                       ; 2nd arg may be nil
+              (equal savedir
+                     (expand-file-name auto-save-directory-fallback)))
           ;; it is of the `-fixed-directory' type
           (auto-save-slashify-name (substring basename 1 -1)))
          (t
           ;; it is of the `-fixed-directory' type
           (auto-save-slashify-name (substring basename 1 -1)))
          (t
@@ -358,10 +362,11 @@ Hashed files are not understood, see `auto-save-hash-p'."
             auto-save-hash-directory
             (> (length base-name) 14))
        (expand-file-name (auto-save-cyclic-hash-14 filename)
             auto-save-hash-directory
             (> (length base-name) 14))
        (expand-file-name (auto-save-cyclic-hash-14 filename)
-                         auto-save-hash-directory)
+                         (auto-save-checked-directory auto-save-hash-directory))
       (expand-file-name base-name
       (expand-file-name base-name
-                       (or auto-save-directory
-                           auto-save-directory-fallback)))))
+                       (auto-save-checked-directory
+                          (or auto-save-directory
+                              auto-save-directory-fallback))))))
 
 (defun auto-save-name-in-same-directory (filename &optional prefix)
   ;; Enclose the non-directory part of FILENAME in `#' to make an auto
 
 (defun auto-save-name-in-same-directory (filename &optional prefix)
   ;; Enclose the non-directory part of FILENAME in `#' to make an auto
@@ -374,7 +379,8 @@ Hashed files are not understood, see `auto-save-hash-p'."
   (let ((directory (file-name-directory filename)))
     (or (null directory)
        (file-writable-p directory)
   (let ((directory (file-name-directory filename)))
     (or (null directory)
        (file-writable-p directory)
-       (setq directory auto-save-directory-fallback))
+       (setq directory (auto-save-checked-directory
+                        auto-save-directory-fallback)))
     (concat directory                  ; (concat nil) is ""
            (or prefix "#")
            (file-name-nondirectory filename)
     (concat directory                  ; (concat nil) is ""
            (or prefix "#")
            (file-name-nondirectory filename)
@@ -497,7 +503,8 @@ Hashed files (see `auto-save-hash-p') are not understood, use
        file                            ; its original file
        (total 0)                       ; # of files offered to recover
        (count 0))                      ; # of files actually recovered
        file                            ; its original file
        (total 0)                       ; # of files offered to recover
        (count 0))                      ; # of files actually recovered
-    (or (equal auto-save-directory auto-save-directory-fallback)
+    (or (equal (expand-file-name auto-save-directory)
+              (expand-file-name auto-save-directory-fallback))
        (setq savefiles
              (nconc savefiles
                     (directory-files auto-save-directory-fallback
        (setq savefiles
              (nconc savefiles
                     (directory-files auto-save-directory-fallback
index d8140f5..9e44467 100644 (file)
@@ -140,8 +140,7 @@ actually do any horizontal scrolling; rather, it just sets things up so
 that the region will be visible when `auto-show-make-point-visible'
 is next called (this happens after every command)."
   (if (auto-show-should-take-action-p)
 that the region will be visible when `auto-show-make-point-visible'
 is next called (this happens after every command)."
   (if (auto-show-should-take-action-p)
-      (let* ((col (current-column))    ;column on line point is at
-            (scroll (window-hscroll));how far window is scrolled
+      (let* ((scroll (window-hscroll)) ;how far window is scrolled
             (w-width (- (window-width) 
                         (if (> scroll 0)
                             2 1)))     ;how wide window is on the screen
             (w-width (- (window-width) 
                         (if (> scroll 0)
                             2 1)))     ;how wide window is on the screen
index a4b68da..ec70873 100644 (file)
@@ -375,6 +375,8 @@ This functions refuses to update autoloads files."
        (let ((find-file-hooks nil))
          (set-buffer (or (get-file-buffer generated-autoload-file)
                          (find-file-noselect generated-autoload-file))))
        (let ((find-file-hooks nil))
          (set-buffer (or (get-file-buffer generated-autoload-file)
                          (find-file-noselect generated-autoload-file))))
+       ;; Make sure we can scribble in it.
+       (setq buffer-read-only nil)
        ;; First delete all sections for this file.
        (goto-char (point-min))
        (while (search-forward generate-autoload-section-header nil t)
        ;; First delete all sections for this file.
        (goto-char (point-min))
        (while (search-forward generate-autoload-section-header nil t)
index 44f9221..c829284 100644 (file)
@@ -34,9 +34,9 @@
 
 (defun switch-to-buffer (bufname &optional norecord)
   "Select buffer BUFNAME in the current window.
 
 (defun switch-to-buffer (bufname &optional norecord)
   "Select buffer BUFNAME in the current window.
-BUFNAME may be a buffer or a buffer name and is created if did not exist.
-Optional second arg NORECORD non-nil means
-do not put this buffer at the front of the list of recently selected ones.
+BUFNAME may be a buffer or a buffer name and is created if it did not exist.
+Optional second arg NORECORD non-nil means do not put this buffer at the
+front of the list of recently selected ones.
 
 WARNING: This is NOT the way to work on another buffer temporarily
 within a Lisp program!  Use `set-buffer' instead.  That avoids messing with
 
 WARNING: This is NOT the way to work on another buffer temporarily
 within a Lisp program!  Use `set-buffer' instead.  That avoids messing with
index 1700496..5e33dc5 100644 (file)
@@ -169,6 +169,7 @@ make output and errors and leaves point at the beginning of the mail text.
         (prompts build-report-prompts))
      (progn
        (while prompts
         (prompts build-report-prompts))
      (progn
        (while prompts
+        (defvar hist)
         (setq prompt (caar prompts))
         (setq hist (cdar prompts))
         (setq prompts (cdr prompts))
         (setq prompt (caar prompts))
         (setq hist (cdar prompts))
         (setq prompts (cdr prompts))
@@ -283,12 +284,12 @@ created by the XEmacs Beta configure process."
 
 (defun build-report-keep ()
   "build-report-internal function of no general value."
 
 (defun build-report-keep ()
   "build-report-internal function of no general value."
-  (mapconcat '(lambda (item) item)
+  (mapconcat #'identity
             (cons "^--\\[\\[\\|\\]\\]$" build-report-keep-regexp) "\\|"))
 
 (defun build-report-delete ()
   "build-report-internal function of no general value."
             (cons "^--\\[\\[\\|\\]\\]$" build-report-keep-regexp) "\\|"))
 
 (defun build-report-delete ()
   "build-report-internal function of no general value."
-  (mapconcat '(lambda (item) item)
+  (mapconcat #'identity
             build-report-delete-regexp "\\|"))
 
 ;;; build-report.el ends here
             build-report-delete-regexp "\\|"))
 
 ;;; build-report.el ends here
index fe99286..95e7cb4 100644 (file)
@@ -1,4 +1,4 @@
-;;; byte-opt.el --- the optimization passes of the emacs-lisp byte compiler.
+;;; byte-optimize.el --- the optimization passes of the emacs-lisp byte compiler.
 
 ;;; Copyright (c) 1991, 1994 Free Software Foundation, Inc.
 
 
 ;;; Copyright (c) 1991, 1994 Free Software Foundation, Inc.
 
@@ -39,7 +39,7 @@
 
 ;; TO DO:
 ;;
 
 ;; TO DO:
 ;;
-;; (apply '(lambda (x &rest y) ...) 1 (foo))
+;; (apply #'(lambda (x &rest y) ...) 1 (foo))
 ;;
 ;; maintain a list of functions known not to access any global variables
 ;; (actually, give them a 'dynamically-safe property) and then
 ;;
 ;; maintain a list of functions known not to access any global variables
 ;; (actually, give them a 'dynamically-safe property) and then
 ;; in some grody way, but that's a really bad idea.)
 ;;
 ;; HA!  RMS removed the following paragraph from his version of
 ;; in some grody way, but that's a really bad idea.)
 ;;
 ;; HA!  RMS removed the following paragraph from his version of
-;; byte-opt.el.
+;; byte-optimize.el.
 ;;
 ;; Really the Right Thing is to make lexical scope the default across
 ;; the board, in the interpreter and compiler, and just FIX all of 
 ;;
 ;; Really the Right Thing is to make lexical scope the default across
 ;; the board, in the interpreter and compiler, and just FIX all of 
 ;; Other things to consider:
 
 ;; Associative math should recognize subcalls to identical function:
 ;; Other things to consider:
 
 ;; Associative math should recognize subcalls to identical function:
-;;(disassemble (lambda (x) (+ (+ (foo) 1) (+ (bar) 2))))
+;;(disassemble #'(lambda (x) (+ (+ (foo) 1) (+ (bar) 2))))
 ;; This should generate the same as (1+ x) and (1- x)
 
 ;; This should generate the same as (1+ x) and (1- x)
 
-;;(disassemble (lambda (x) (cons (+ x 1) (- x 1))))
+;;(disassemble #'(lambda (x) (cons (+ x 1) (- x 1))))
 ;; An awful lot of functions always return a non-nil value.  If they're
 ;; error free also they may act as true-constants.
 
 ;; An awful lot of functions always return a non-nil value.  If they're
 ;; error free also they may act as true-constants.
 
-;;(disassemble (lambda (x) (and (point) (foo))))
+;;(disassemble #'(lambda (x) (and (point) (foo))))
 ;; When 
 ;;   - all but one arguments to a function are constant
 ;;   - the non-constant argument is an if-expression (cond-expression?)
 ;; When 
 ;;   - all but one arguments to a function are constant
 ;;   - the non-constant argument is an if-expression (cond-expression?)
 ;; arguments may be any expressions.  Since, however, the code size
 ;; can increase this way they should be "simple".  Compare:
 
 ;; arguments may be any expressions.  Since, however, the code size
 ;; can increase this way they should be "simple".  Compare:
 
-;;(disassemble (lambda (x) (eq (if (point) 'a 'b) 'c)))
-;;(disassemble (lambda (x) (if (point) (eq 'a 'c) (eq 'b 'c))))
+;;(disassemble #'(lambda (x) (eq (if (point) 'a 'b) 'c)))
+;;(disassemble #'(lambda (x) (if (point) (eq 'a 'c) (eq 'b 'c))))
 
 ;; (car (cons A B)) -> (progn B A)
 
 ;; (car (cons A B)) -> (progn B A)
-;;(disassemble (lambda (x) (car (cons (foo) 42))))
+;;(disassemble #'(lambda (x) (car (cons (foo) 42))))
 
 ;; (cdr (cons A B)) -> (progn A B)
 
 ;; (cdr (cons A B)) -> (progn A B)
-;;(disassemble (lambda (x) (cdr (cons 42 (foo)))))
+;;(disassemble #'(lambda (x) (cdr (cons 42 (foo)))))
 
 ;; (car (list A B ...)) -> (progn B ... A)
 
 ;; (car (list A B ...)) -> (progn B ... A)
-;;(disassemble (lambda (x) (car (list (foo) 42 (bar)))))
+;;(disassemble #'(lambda (x) (car (list (foo) 42 (bar)))))
 
 ;; (cdr (list A B ...)) -> (progn A (list B ...))
 
 ;; (cdr (list A B ...)) -> (progn A (list B ...))
-;;(disassemble (lambda (x) (cdr (list 42 (foo) (bar)))))
+;;(disassemble #'(lambda (x) (cdr (list 42 (foo) (bar)))))
 
 
 ;;; Code:
 
 
 ;;; Code:
       (error "The old version of the disassembler is loaded.  Reload new-bytecomp as well."))
   (byte-compile-log-1
    (apply 'format format
       (error "The old version of the disassembler is loaded.  Reload new-bytecomp as well."))
   (byte-compile-log-1
    (apply 'format format
-     (let (c a)
-       (mapcar '(lambda (arg)
-                 (if (not (consp arg))
-                     (if (and (symbolp arg)
-                              (string-match "^byte-" (symbol-name arg)))
-                         (intern (substring (symbol-name arg) 5))
-                       arg)
-                   (if (integerp (setq c (car arg)))
-                       (error "non-symbolic byte-op %s" c))
-                   (if (eq c 'TAG)
-                       (setq c arg)
-                     (setq a (cond ((memq c byte-goto-ops)
-                                    (car (cdr (cdr arg))))
-                                   ((memq c byte-constref-ops)
-                                    (car (cdr arg)))
-                                   (t (cdr arg))))
-                     (setq c (symbol-name c))
-                     (if (string-match "^byte-." c)
-                         (setq c (intern (substring c 5)))))
-                   (if (eq c 'constant) (setq c 'const))
-                   (if (and (eq (cdr arg) 0)
-                            (not (memq c '(unbind call const))))
-                       c
-                     (format "(%s %s)" c a))))
-              args)))))
+         (let (c a)
+           (mapcar
+            #'(lambda (arg)
+                (if (not (consp arg))
+                    (if (and (symbolp arg)
+                             (string-match "^byte-" (symbol-name arg)))
+                        (intern (substring (symbol-name arg) 5))
+                      arg)
+                  (if (integerp (setq c (car arg)))
+                      (error "non-symbolic byte-op %s" c))
+                  (if (eq c 'TAG)
+                      (setq c arg)
+                    (setq a (cond ((memq c byte-goto-ops)
+                                   (car (cdr (cdr arg))))
+                                  ((memq c byte-constref-ops)
+                                   (car (cdr arg)))
+                                  (t (cdr arg))))
+                    (setq c (symbol-name c))
+                    (if (string-match "^byte-." c)
+                        (setq c (intern (substring c 5)))))
+                  (if (eq c 'constant) (setq c 'const))
+                  (if (and (eq (cdr arg) 0)
+                           (not (memq c '(unbind call const))))
+                      c
+                    (format "(%s %s)" c a))))
+            args)))))
 
 (defmacro byte-compile-log-lap (format-string &rest args)
   (list 'and
 
 (defmacro byte-compile-log-lap (format-string &rest args)
   (list 'and
 
 (defun byte-optimize-inline-handler (form)
   "byte-optimize-handler for the `inline' special-form."
 
 (defun byte-optimize-inline-handler (form)
   "byte-optimize-handler for the `inline' special-form."
-  (cons 'progn
-       (mapcar
-        '(lambda (sexp)
-           (let ((fn (car-safe sexp)))
-             (if (and (symbolp fn)
-                   (or (cdr (assq fn byte-compile-function-environment))
-                     (and (fboundp fn)
-                       (not (or (cdr (assq fn byte-compile-macro-environment))
-                                (and (consp (setq fn (symbol-function fn)))
-                                     (eq (car fn) 'macro))
-                                (subrp fn))))))
-                 (byte-compile-inline-expand sexp)
-               sexp)))
-        (cdr form))))
+  (cons
+   'progn
+   (mapcar
+    #'(lambda (sexp)
+       (let ((fn (car-safe sexp)))
+         (if (and (symbolp fn)
+                  (or (cdr (assq fn byte-compile-function-environment))
+                      (and (fboundp fn)
+                           (not (or (cdr (assq fn byte-compile-macro-environment))
+                                    (and (consp (setq fn (symbol-function fn)))
+                                         (eq (car fn) 'macro))
+                                    (subrp fn))))))
+             (byte-compile-inline-expand sexp)
+           sexp)))
+    (cdr form))))
 
 
 ;; Splice the given lap code into the current instruction stream.
 
 
 ;; Splice the given lap code into the current instruction stream.
           ;; are more deeply nested are optimized first.
           (cons fn
             (cons
           ;; are more deeply nested are optimized first.
           (cons fn
             (cons
-             (mapcar '(lambda (binding)
-                        (if (symbolp binding)
-                            binding
-                          (if (cdr (cdr binding))
-                              (byte-compile-warn "malformed let binding: %s"
-                                                 (prin1-to-string binding)))
-                          (list (car binding)
-                                (byte-optimize-form (nth 1 binding) nil))))
-                     (nth 1 form))
+             (mapcar
+              #'(lambda (binding)
+                  (if (symbolp binding)
+                      binding
+                    (if (cdr (cdr binding))
+                        (byte-compile-warn "malformed let binding: %s"
+                                           (prin1-to-string binding)))
+                    (list (car binding)
+                          (byte-optimize-form (nth 1 binding) nil))))
+              (nth 1 form))
              (byte-optimize-body (cdr (cdr form)) for-effect))))
          ((eq fn 'cond)
           (cons fn
              (byte-optimize-body (cdr (cdr form)) for-effect))))
          ((eq fn 'cond)
           (cons fn
-                (mapcar '(lambda (clause)
-                           (if (consp clause)
-                               (cons
-                                (byte-optimize-form (car clause) nil)
-                                (byte-optimize-body (cdr clause) for-effect))
-                             (byte-compile-warn "malformed cond form: %s"
-                                                (prin1-to-string clause))
-                             clause))
-                        (cdr form))))
+                (mapcar
+                 #'(lambda (clause)
+                     (if (consp clause)
+                         (cons
+                          (byte-optimize-form (car clause) nil)
+                          (byte-optimize-body (cdr clause) for-effect))
+                       (byte-compile-warn "malformed cond form: %s"
+                                          (prin1-to-string clause))
+                       clause))
+                 (cdr form))))
          ((eq fn 'progn)
           ;; as an extra added bonus, this simplifies (progn <x>) --> <x>
           (if (cdr (cdr form))
          ((eq fn 'progn)
           ;; as an extra added bonus, this simplifies (progn <x>) --> <x>
           (if (cdr (cdr form))
   ;; First, optimize all sub-forms of this one.
   (setq form (byte-optimize-form-code-walker form for-effect))
   ;;
   ;; First, optimize all sub-forms of this one.
   (setq form (byte-optimize-form-code-walker form for-effect))
   ;;
-  ;; after optimizing all subforms, optimize this form until it doesn't
+  ;; After optimizing all subforms, optimize this form until it doesn't
   ;; optimize any further.  This means that some forms will be passed through
   ;; the optimizer many times, but that's necessary to make the for-effect
   ;; processing do as much as possible.
   ;; optimize any further.  This means that some forms will be passed through
   ;; the optimizer many times, but that's necessary to make the for-effect
   ;; processing do as much as possible.
 
 
 (defun byte-optimize-body (forms all-for-effect)
 
 
 (defun byte-optimize-body (forms all-for-effect)
-  ;; optimize the cdr of a progn or implicit progn; all forms is a list of
+  ;; Optimize the cdr of a progn or implicit progn; `forms' is a list of
   ;; forms, all but the last of which are optimized with the assumption that
   ;; forms, all but the last of which are optimized with the assumption that
-  ;; they are being called for effect.  the last is for-effect as well if
-  ;; all-for-effect is true.  returns a new list of forms.
+  ;; they are being called for effect.  The last is for-effect as well if
+  ;; all-for-effect is true.  Returns a new list of forms.
   (let ((rest forms)
        (result nil)
        fe new)
   (let ((rest forms)
        (result nil)
        fe new)
 ;; I'd like this to be a defsubst, but let's not be self-referential...
 (defmacro byte-compile-trueconstp (form)
   ;; Returns non-nil if FORM is a non-nil constant.
 ;; I'd like this to be a defsubst, but let's not be self-referential...
 (defmacro byte-compile-trueconstp (form)
   ;; Returns non-nil if FORM is a non-nil constant.
-  (` (cond ((consp (, form)) (eq (car (, form)) 'quote))
-          ((not (symbolp (, form))))
-          ((eq (, form) t)))))
+  `(cond ((consp ,form) (eq (car ,form) 'quote))
+        ((not (symbolp ,form)))
+        ((eq ,form t))
+        ((keywordp ,form))))
 
 ;; If the function is being called with constant numeric args,
 ;; evaluate as much as possible at compile-time.  This optimizer 
 
 ;; If the function is being called with constant numeric args,
 ;; evaluate as much as possible at compile-time.  This optimizer 
 
 ;; I'm not convinced that this is necessary.  Doesn't the optimizer loop 
 ;; take care of this? - Jamie
 
 ;; I'm not convinced that this is necessary.  Doesn't the optimizer loop 
 ;; take care of this? - Jamie
-;; I think this may some times be necessary to reduce ie (quote 5) to 5,
+;; I think this may some times be necessary to reduce eg. (quote 5) to 5,
 ;; so arithmetic optimizers recognize the numeric constant.  - Hallvard
 (put 'quote 'byte-optimizer 'byte-optimize-quote)
 (defun byte-optimize-quote (form)
 ;; so arithmetic optimizers recognize the numeric constant.  - Hallvard
 (put 'quote 'byte-optimizer 'byte-optimize-quote)
 (defun byte-optimize-quote (form)
            (if (listp (nth 1 last))
                (let ((butlast (nreverse (cdr (reverse (cdr (cdr form)))))))
                  (nconc (list 'funcall fn) butlast
            (if (listp (nth 1 last))
                (let ((butlast (nreverse (cdr (reverse (cdr (cdr form)))))))
                  (nconc (list 'funcall fn) butlast
-                        (mapcar '(lambda (x) (list 'quote x)) (nth 1 last))))
+                        (mapcar #'(lambda (x) (list 'quote x)) (nth 1 last))))
              (byte-compile-warn
               "last arg to apply can't be a literal atom: %s"
               (prin1-to-string last))
              (byte-compile-warn
               "last arg to apply can't be a literal atom: %s"
               (prin1-to-string last))
         file-newer-than-file-p file-readable-p file-symlink-p file-writable-p
         float floor format
         get get-buffer get-buffer-window getenv get-file-buffer
         file-newer-than-file-p file-readable-p file-symlink-p file-writable-p
         float floor format
         get get-buffer get-buffer-window getenv get-file-buffer
+        ;; hash-table functions
+        make-hash-table copy-hash-table
+        gethash
+        hash-table-count
+        hash-table-rehash-size
+        hash-table-rehash-threshold
+        hash-table-size
+        hash-table-test
+        hash-table-type
+        ;;
         int-to-string
         length log log10 logand logb logior lognot logxor lsh
         marker-buffer max member memq min mod
         int-to-string
         length log log10 logand logb logior lognot logxor lsh
         marker-buffer max member memq min mod
         ;; XEmacs change: window-edges -> window-pixel-edges
         window-buffer window-dedicated-p window-pixel-edges window-height
         window-hscroll window-minibuffer-p window-width
         ;; XEmacs change: window-edges -> window-pixel-edges
         window-buffer window-dedicated-p window-pixel-edges window-height
         window-hscroll window-minibuffer-p window-width
-        zerop))
+        zerop
+        ;; functions defined by cl
+        oddp evenp plusp minusp
+        abs expt signum last butlast ldiff
+        pairlis gcd lcm
+        isqrt floor* ceiling* truncate* round* mod* rem* subseq
+        list-length get* getf
+        ))
       (side-effect-and-error-free-fns
        '(arrayp atom
         bobp bolp buffer-end buffer-list buffer-size buffer-string bufferp
       (side-effect-and-error-free-fns
        '(arrayp atom
         bobp bolp buffer-end buffer-list buffer-size buffer-string bufferp
         dot dot-marker eobp eolp eq eql equal eventp extentp
         extent-live-p floatp framep frame-live-p
         get-largest-window get-lru-window
         dot dot-marker eobp eolp eq eql equal eventp extentp
         extent-live-p floatp framep frame-live-p
         get-largest-window get-lru-window
+        hash-table-p
         identity ignore integerp integer-or-marker-p interactive-p
         invocation-directory invocation-name
         ;; keymapp may autoload in XEmacs, so not on this list!
         identity ignore integerp integer-or-marker-p interactive-p
         invocation-directory invocation-name
         ;; keymapp may autoload in XEmacs, so not on this list!
         user-full-name user-login-name user-original-login-name
         user-real-login-name user-real-uid user-uid
         vector vectorp
         user-full-name user-login-name user-original-login-name
         user-real-login-name user-real-uid user-uid
         vector vectorp
-        window-configuration-p window-live-p windowp)))
-  (while side-effect-free-fns
-    (put (car side-effect-free-fns) 'side-effect-free t)
-    (setq side-effect-free-fns (cdr side-effect-free-fns)))
-  (while side-effect-and-error-free-fns
-    (put (car side-effect-and-error-free-fns) 'side-effect-free 'error-free)
-    (setq side-effect-and-error-free-fns (cdr side-effect-and-error-free-fns)))
-  nil)
+        window-configuration-p window-live-p windowp
+        ;; Functions defined by cl
+        eql floatp-safe list* subst acons equalp random-state-p
+        copy-tree sublis
+        )))
+  (dolist (fn side-effect-free-fns)
+    (put fn 'side-effect-free t))
+  (dolist (fn side-effect-and-error-free-fns)
+    (put fn 'side-effect-free 'error-free)))
 
 
 (defun byte-compile-splice-in-already-compiled-code (form)
 
 
 (defun byte-compile-splice-in-already-compiled-code (form)
     (if endtag
        (setq lap (cons (cons nil endtag) lap)))
     ;; remove addrs, lap = ( [ (op . arg) | (TAG tagno) ]* )
     (if endtag
        (setq lap (cons (cons nil endtag) lap)))
     ;; remove addrs, lap = ( [ (op . arg) | (TAG tagno) ]* )
-    (mapcar (function (lambda (elt)
-                       (if (numberp elt)
-                           elt
-                         (cdr elt))))
+    (mapcar #'(lambda (elt) (if (numberp elt) elt (cdr elt)))
            (nreverse lap))))
 
 \f
            (nreverse lap))))
 
 \f
      (assq 'byte-code (symbol-function 'byte-optimize-form))
      (let ((byte-optimize nil)
           (byte-compile-warnings nil))
      (assq 'byte-code (symbol-function 'byte-optimize-form))
      (let ((byte-optimize nil)
           (byte-compile-warnings nil))
-       (mapcar '(lambda (x)
-                 (or noninteractive (message "compiling %s..." x))
-                 (byte-compile x)
-                 (or noninteractive (message "compiling %s...done" x)))
-              '(byte-optimize-form
-                byte-optimize-body
-                byte-optimize-predicate
-                byte-optimize-binary-predicate
-                ;; Inserted some more than necessary, to speed it up.
-                byte-optimize-form-code-walker
-                byte-optimize-lapcode))))
+       (mapcar
+       #'(lambda (x)
+           (or noninteractive (message "compiling %s..." x))
+           (byte-compile x)
+           (or noninteractive (message "compiling %s...done" x)))
+       '(byte-optimize-form
+         byte-optimize-body
+         byte-optimize-predicate
+         byte-optimize-binary-predicate
+         ;; Inserted some more than necessary, to speed it up.
+         byte-optimize-form-code-walker
+         byte-optimize-lapcode))))
  nil)
 
 ;;; byte-optimize.el ends here
  nil)
 
 ;;; byte-optimize.el ends here
index 105374a..95d8c31 100644 (file)
@@ -55,13 +55,13 @@ They will only be compiled open-coded when `byte-optimize' is true."
        (apply
         'nconc
         (mapcar
        (apply
         'nconc
         (mapcar
-         '(lambda (x)
-            (` ((or (memq (get '(, x) 'byte-optimizer)
-                          '(nil byte-compile-inline-expand))
-                    (error
-                     "%s already has a byte-optimizer, can't make it inline"
-                     '(, x)))
-                (put '(, x) 'byte-optimizer 'byte-compile-inline-expand))))
+         #'(lambda (x)
+             `((or (memq (get ',x 'byte-optimizer)
+                         '(nil byte-compile-inline-expand))
+                   (error
+                    "%s already has a byte-optimizer, can't make it inline"
+                    ',x))
+               (put ',x 'byte-optimizer 'byte-compile-inline-expand)))
          fns))))
 
 
          fns))))
 
 
@@ -71,10 +71,10 @@ They will only be compiled open-coded when `byte-optimize' is true."
        (apply
         'nconc
         (mapcar
        (apply
         'nconc
         (mapcar
-         '(lambda (x)
-            (` ((if (eq (get '(, x) 'byte-optimizer)
-                        'byte-compile-inline-expand)
-                    (put '(, x) 'byte-optimizer nil)))))
+         #'(lambda (x)
+             `((if (eq (get ',x 'byte-optimizer)
+                       'byte-compile-inline-expand)
+                   (put ',x 'byte-optimizer nil))))
          fns))))
 
 ;; This has a special byte-hunk-handler in bytecomp.el.
          fns))))
 
 ;; This has a special byte-hunk-handler in bytecomp.el.
@@ -178,7 +178,7 @@ Called (eval-when-feature (FEATURE [. FILENAME]) BODYFORMS...).
 If (featurep 'FEATURE), evals now; otherwise adds an elt to
 `after-load-alist' (which see), using FEATURE as filename if FILENAME is nil."
   (let ((file (or (cdr feature) (symbol-name (car feature)))))
 If (featurep 'FEATURE), evals now; otherwise adds an elt to
 `after-load-alist' (which see), using FEATURE as filename if FILENAME is nil."
   (let ((file (or (cdr feature) (symbol-name (car feature)))))
-    `(let ((bodythunk (function (lambda () ,@body))))
+    `(let ((bodythunk #'(lambda () ,@body)))
        (if (featurep ',(car feature))
           (funcall bodythunk)
         (setq after-load-alist (cons '(,file . (list 'lambda '() bodythunk))
        (if (featurep ',(car feature))
           (funcall bodythunk)
         (setq after-load-alist (cons '(,file . (list 'lambda '() bodythunk))
index 95bce46..d8ab789 100644 (file)
@@ -9,7 +9,7 @@
 
 ;; Subsequently modified by RMS and others.
 
 
 ;; Subsequently modified by RMS and others.
 
-(defconst byte-compile-version (purecopy  "2.25 XEmacs; 22-Mar-96."))
+(defconst byte-compile-version (purecopy  "2.26 XEmacs; 1998-10-07."))
 
 ;; This file is part of XEmacs.
 
 
 ;; This file is part of XEmacs.
 
 ;;;                            'unresolved (calls to unknown functions)
 ;;;                            'callargs  (lambda calls with args that don't
 ;;;                                        match the lambda's definition)
 ;;;                            'unresolved (calls to unknown functions)
 ;;;                            'callargs  (lambda calls with args that don't
 ;;;                                        match the lambda's definition)
+;;;                            'subr-callargs (calls to subrs with args that
+;;;                                        don't match the subr's definition)
 ;;;                            'redefine  (function cell redefined from
 ;;;                                        a macro to a lambda or vice versa,
 ;;;                                        or redefined to take other args)
 ;;;                            'redefine  (function cell redefined from
 ;;;                                        a macro to a lambda or vice versa,
 ;;;                                        or redefined to take other args)
 ;;;     buffer, and that buffer is modified, you are asked whether you want
 ;;;     to save the buffer before compiling.
 ;;;
 ;;;     buffer, and that buffer is modified, you are asked whether you want
 ;;;     to save the buffer before compiling.
 ;;;
-;;;  o  You can add this to /etc/magic to make file(1) recognise the files
+;;;  o  You can add this to /etc/magic to make file(1) recognize the files
 ;;;     generated by this compiler:
 ;;;
 ;;;      0     string          ;ELC            GNU Emacs Lisp compiled file,
 ;;;     generated by this compiler:
 ;;;
 ;;;      0     string          ;ELC            GNU Emacs Lisp compiled file,
 be hard-coded into bytecomp when it compiles itself.  If the compiler itself
 is compiled with optimization, this causes a speedup.")
 
 be hard-coded into bytecomp when it compiles itself.  If the compiler itself
 is compiled with optimization, this causes a speedup.")
 
-  (cond (byte-compile-single-version
-        (defmacro byte-compile-single-version () t)
-        (defmacro byte-compile-version-cond (cond) (list 'quote (eval cond))))
-       (t
-        (defmacro byte-compile-single-version () nil)
-        (defmacro byte-compile-version-cond (cond) cond)))
+  (cond
+   (byte-compile-single-version
+    (defmacro byte-compile-single-version () t)
+    (defmacro byte-compile-version-cond (cond) (list 'quote (eval cond))))
+   (t
+    (defmacro byte-compile-single-version () nil)
+    (defmacro byte-compile-version-cond (cond) cond)))
   )
 
   )
 
-(defvar emacs-lisp-file-regexp (if (eq system-type 'vax-vms)
-                                  (purecopy "\\.EL\\(;[0-9]+\\)?$")
-                                (purecopy "\\.el$"))
+(defvar emacs-lisp-file-regexp (purecopy "\\.el$")
   "*Regexp which matches Emacs Lisp source files.
 You may want to redefine `byte-compile-dest-file' if you change this.")
 
   "*Regexp which matches Emacs Lisp source files.
 You may want to redefine `byte-compile-dest-file' if you change this.")
 
@@ -234,18 +235,16 @@ You may want to redefine `byte-compile-dest-file' if you change this.")
        (funcall handler 'byte-compiler-base-file-name filename)
       filename)))
 
        (funcall handler 'byte-compiler-base-file-name filename)
       filename)))
 
-(or (fboundp 'byte-compile-dest-file)
-    ;; The user may want to redefine this along with emacs-lisp-file-regexp,
-    ;; so only define it if it is undefined.
-    (defun byte-compile-dest-file (filename)
-      "Convert an Emacs Lisp source file name to a compiled file name."
-      (setq filename (byte-compiler-base-file-name filename))
-      (setq filename (file-name-sans-versions filename))
-      (cond ((eq system-type 'vax-vms)
-                (concat (substring filename 0 (string-match ";" filename)) "c"))
-               ((string-match emacs-lisp-file-regexp filename)
-                (concat (substring filename 0 (match-beginning 0)) ".elc"))
-               (t (concat filename ".elc")))))
+(unless (fboundp 'byte-compile-dest-file)
+  ;; The user may want to redefine this along with emacs-lisp-file-regexp,
+  ;; so only define it if it is undefined.
+  (defun byte-compile-dest-file (filename)
+    "Convert an Emacs Lisp source file name to a compiled file name."
+    (setq filename (byte-compiler-base-file-name filename))
+    (setq filename (file-name-sans-versions filename))
+    (if (string-match emacs-lisp-file-regexp filename)
+       (concat (substring filename 0 (match-beginning 0)) ".elc")
+      (concat filename ".elc"))))
 
 ;; This can be the 'byte-compile property of any symbol.
 (autoload 'byte-compile-inline-expand "byte-optimize")
 
 ;; This can be the 'byte-compile property of any symbol.
 (autoload 'byte-compile-inline-expand "byte-optimize")
@@ -260,7 +259,7 @@ You may want to redefine `byte-compile-dest-file' if you change this.")
 ;; disassembler.  The disassembler just requires 'byte-compile, but
 ;; that doesn't define this function, so this seems to be a reasonable
 ;; thing to do.
 ;; disassembler.  The disassembler just requires 'byte-compile, but
 ;; that doesn't define this function, so this seems to be a reasonable
 ;; thing to do.
-(autoload 'byte-decompile-bytecode "byte-opt")
+(autoload 'byte-decompile-bytecode "byte-optimize")
 
 (defvar byte-compile-verbose
   (and (not noninteractive) (> (device-baud-rate) search-slow-speed))
 
 (defvar byte-compile-verbose
   (and (not noninteractive) (> (device-baud-rate) search-slow-speed))
@@ -350,7 +349,7 @@ If it is 'byte, then only byte-level optimizations will be logged.")
 
 ;; byte-compile-warning-types in FSF.
 (defvar byte-compile-default-warnings
 
 ;; byte-compile-warning-types in FSF.
 (defvar byte-compile-default-warnings
-  '(redefine callargs free-vars unresolved unused-vars obsolete)
+  '(redefine callargs subr-callargs free-vars unresolved unused-vars obsolete)
   "*The warnings used when byte-compile-warnings is t.")
 
 (defvar byte-compile-warnings t
   "*The warnings used when byte-compile-warnings is t.")
 
 (defvar byte-compile-warnings t
@@ -361,6 +360,7 @@ Elements of the list may be:
   unused-vars  references to non-global variables bound but not referenced.
   unresolved   calls to unknown functions.
   callargs     lambda calls with args that don't match the definition.
   unused-vars  references to non-global variables bound but not referenced.
   unresolved   calls to unknown functions.
   callargs     lambda calls with args that don't match the definition.
+  subr-callargs        calls to subrs with args that don't match the definition.
   redefine     function cell redefined from a macro to a lambda or vice
                versa, or redefined to take a different number of arguments.
   obsolete     use of an obsolete function or variable.
   redefine     function cell redefined from a macro to a lambda or vice
                versa, or redefined to take a different number of arguments.
   obsolete     use of an obsolete function or variable.
@@ -373,7 +373,7 @@ See also the macro `byte-compiler-options'.")
 
 (defvar byte-compile-generate-call-tree nil
   "*Non-nil means collect call-graph information when compiling.
 
 (defvar byte-compile-generate-call-tree nil
   "*Non-nil means collect call-graph information when compiling.
-This records functions were called and from where.
+This records functions that were called and from where.
 If the value is t, compilation displays the call graph when it finishes.
 If the value is neither t nor nil, compilation asks you whether to display
 the graph.
 If the value is t, compilation displays the call graph when it finishes.
 If the value is neither t nor nil, compilation asks you whether to display
 the graph.
@@ -620,7 +620,7 @@ Each element is (INDEX . VALUE)")
   "to examine top-of-stack, jump and don't pop it if it's nil,
 otherwise pop it")
 (byte-defop 134 -1 byte-goto-if-not-nil-else-pop
   "to examine top-of-stack, jump and don't pop it if it's nil,
 otherwise pop it")
 (byte-defop 134 -1 byte-goto-if-not-nil-else-pop
-  "to examine top-of-stack, jump and don't pop it if it's non nil,
+  "to examine top-of-stack, jump and don't pop it if it's non-nil,
 otherwise pop it")
 
 (byte-defop 135 -1 byte-return "to pop a value and return it from `byte-code'")
 otherwise pop it")
 
 (byte-defop 135 -1 byte-return "to pop a value and return it from `byte-code'")
@@ -770,13 +770,13 @@ otherwise pop it")
             (error "Non-symbolic opcode `%s'" op))
            ((eq op 'TAG)
             (setcar off pc)
             (error "Non-symbolic opcode `%s'" op))
            ((eq op 'TAG)
             (setcar off pc)
-            (setq patchlist (cons off patchlist)))
+            (push off patchlist))
            ((memq op byte-goto-ops)
             (setq pc (+ pc 3))
             (setq bytes (cons (cons pc (cdr off))
                               (cons nil
                                     (cons (symbol-value op) bytes))))
            ((memq op byte-goto-ops)
             (setq pc (+ pc 3))
             (setq bytes (cons (cons pc (cdr off))
                               (cons nil
                                     (cons (symbol-value op) bytes))))
-            (setq patchlist (cons bytes patchlist)))
+            (push bytes patchlist))
            (t
             (setq bytes
                   (cond ((cond ((consp off)
            (t
             (setq bytes
                   (cond ((cond ((consp off)
@@ -859,81 +859,64 @@ otherwise pop it")
 (defvar byte-compile-dest-file nil)
 
 (defmacro byte-compile-log (format-string &rest args)
 (defvar byte-compile-dest-file nil)
 
 (defmacro byte-compile-log (format-string &rest args)
-  (list 'and
-       'byte-optimize
-       '(memq byte-optimize-log '(t source))
-       (list 'let '((print-escape-newlines t)
-                    (print-level 4)
-                    (print-length 4))
-             (list 'byte-compile-log-1
-                   (cons 'format
-                     (cons format-string
-                       (mapcar
-                        '(lambda (x)
-                           (if (symbolp x) (list 'prin1-to-string x) x))
-                        args)))))))
-
-(defconst byte-compile-last-warned-form nil)
+  `(when (and byte-optimize (memq byte-optimize-log '(t source)))
+      (let ((print-escape-newlines t)
+           (print-level 4)
+           (print-length 4))
+       (byte-compile-log-1 (format ,format-string ,@args)))))
+
+(defconst byte-compile-last-warned-form 'nothing)
 
 ;; Log a message STRING in *Compile-Log*.
 ;; Also log the current function and file if not already done.
 (defun byte-compile-log-1 (string &optional fill)
 
 ;; Log a message STRING in *Compile-Log*.
 ;; Also log the current function and file if not already done.
 (defun byte-compile-log-1 (string &optional fill)
-  (let ((this-form (or byte-compile-current-form "toplevel forms")))
-    (cond
-     (noninteractive
-      (if (or byte-compile-current-file
-             (and byte-compile-last-warned-form
-                  (not (eq this-form byte-compile-last-warned-form))))
-         (message
-          (format "While compiling %s%s:"
-                  this-form
-                  (if byte-compile-current-file
-                      (if (stringp byte-compile-current-file)
-                          (concat " in file " byte-compile-current-file)
-                        (concat " in buffer "
-                                (buffer-name byte-compile-current-file)))
-                    ""))))
-      (message "  %s" string))
-     (t
-      (save-excursion
-       (set-buffer (get-buffer-create "*Compile-Log*"))
+  (let* ((this-form (or byte-compile-current-form "toplevel forms"))
+        (while-compiling-msg
+         (when (or byte-compile-current-file
+                   (not (eq this-form byte-compile-last-warned-form)))
+           (format
+            "While compiling %s%s:"
+            this-form
+            (cond
+             ((stringp byte-compile-current-file)
+              (concat " in file " byte-compile-current-file))
+             ((bufferp byte-compile-current-file)
+              (concat " in buffer "
+                      (buffer-name byte-compile-current-file)))
+             (""))))))
+    (if noninteractive
+       (progn
+         (when while-compiling-msg (message "%s" while-compiling-msg))
+         (message "  %s" string))
+      (with-current-buffer (get-buffer-create "*Compile-Log*")
        (goto-char (point-max))
        (goto-char (point-max))
-       (cond ((or byte-compile-current-file
-                  (and byte-compile-last-warned-form
-                       (not (eq this-form byte-compile-last-warned-form))))
-              (if byte-compile-current-file
-                  (insert "\n\^L\n" (current-time-string) "\n"))
-              (insert "While compiling "
-                      (if (stringp this-form) this-form
-                        (format "%s" this-form)))
-              (if byte-compile-current-file
-                  (if (stringp byte-compile-current-file)
-                      (insert " in file " byte-compile-current-file)
-                    (insert " in buffer "
-                            (buffer-name byte-compile-current-file))))
-              (insert ":\n")))
+       (when byte-compile-current-file
+         (when (> (point-max) (point-min))
+           (insert "\n\^L\n"))
+         (insert (current-time-string) "\n"))
+       (when while-compiling-msg (insert while-compiling-msg "\n"))
        (insert "  " string "\n")
        (insert "  " string "\n")
-       (if (and fill (not (string-match "\n" string)))
-           (let ((fill-prefix "     ")
-                 (fill-column 78))
-             (fill-paragraph nil)))
-       )))
-    (setq byte-compile-current-file nil
-         byte-compile-last-warned-form this-form)))
+       (when (and fill (not (string-match "\n" string)))
+         (let ((fill-prefix "     ")
+               (fill-column 78))
+           (fill-paragraph nil)))))
+    (setq byte-compile-current-file nil)
+    (setq byte-compile-last-warned-form this-form)))
 
 ;; Log the start of a file in *Compile-Log*, and mark it as done.
 ;; But do nothing in batch mode.
 (defun byte-compile-log-file ()
 
 ;; Log the start of a file in *Compile-Log*, and mark it as done.
 ;; But do nothing in batch mode.
 (defun byte-compile-log-file ()
-  (and byte-compile-current-file (not noninteractive)
-       (save-excursion
-        (set-buffer (get-buffer-create "*Compile-Log*"))
-        (goto-char (point-max))
-        (insert "\n\^L\nCompiling "
-                (if (stringp byte-compile-current-file)
-                    (concat "file " byte-compile-current-file)
-                  (concat "buffer " (buffer-name byte-compile-current-file)))
-                " at " (current-time-string) "\n")
-        (setq byte-compile-current-file nil))))
+  (when (and byte-compile-current-file (not noninteractive))
+    (with-current-buffer (get-buffer-create "*Compile-Log*")
+      (when (> (point-max) (point-min))
+       (goto-char (point-max))
+       (insert "\n\^L\n"))
+      (insert "Compiling "
+             (if (stringp byte-compile-current-file)
+                 (concat "file " byte-compile-current-file)
+               (concat "buffer " (buffer-name byte-compile-current-file)))
+             " at " (current-time-string) "\n")
+      (setq byte-compile-current-file nil))))
 
 (defun byte-compile-warn (format &rest args)
   (setq format (apply 'format format args))
 
 (defun byte-compile-warn (format &rest args)
   (setq format (apply 'format format args))
@@ -987,7 +970,7 @@ otherwise pop it")
     (verbose byte-compile-verbose (t nil) val)
     (new-bytecodes byte-compile-new-bytecodes (t nil) val)
     (warnings byte-compile-warnings
     (verbose byte-compile-verbose (t nil) val)
     (new-bytecodes byte-compile-new-bytecodes (t nil) val)
     (warnings byte-compile-warnings
-             ((callargs redefine free-vars unused-vars unresolved))
+             ((callargs subr-callargs redefine free-vars unused-vars unresolved))
              val)))
 
 ;; XEmacs addition
              val)))
 
 ;; XEmacs addition
@@ -1225,7 +1208,7 @@ otherwise pop it")
   nil)
 
 (defun byte-compile-defvar-p (var)
   nil)
 
 (defun byte-compile-defvar-p (var)
-  ;; Whether the byte compiler thinks that nonexical references to this
+  ;; Whether the byte compiler thinks that non-lexical references to this
   ;; variable are ok.
   (or (globally-boundp var)
       (let ((rest byte-compile-bound-variables))
   ;; variable are ok.
   (or (globally-boundp var)
       (let ((rest byte-compile-bound-variables))
@@ -1257,7 +1240,7 @@ otherwise pop it")
               ;; have (declare (ignore x)) yet; and second, inline
               ;; expansion produces forms like
               ;;   ((lambda (arg) (byte-code "..." [arg])) x)
               ;; have (declare (ignore x)) yet; and second, inline
               ;; expansion produces forms like
               ;;   ((lambda (arg) (byte-code "..." [arg])) x)
-              ;; which we can't (ok, well, don't) recognise as
+              ;; which we can't (ok, well, don't) recognize as
               ;; containing a reference to arg, so every inline
               ;; expansion would generate a warning.  (If we had
               ;; `ignore' then inline expansion could emit an
               ;; containing a reference to arg, so every inline
               ;; expansion would generate a warning.  (If we had
               ;; `ignore' then inline expansion could emit an
@@ -1275,12 +1258,14 @@ otherwise pop it")
       (setq unreferenced (cdr unreferenced)))))
 
 \f
       (setq unreferenced (cdr unreferenced)))))
 
 \f
+(defmacro byte-compile-constant-symbol-p (symbol)
+  `(or (keywordp ,symbol) (memq ,symbol '(nil t))))
+
 (defmacro byte-compile-constp (form)
   ;; Returns non-nil if FORM is a constant.
 (defmacro byte-compile-constp (form)
   ;; Returns non-nil if FORM is a constant.
-  (` (cond ((consp (, form)) (eq (car (, form)) 'quote))
-          ((not (symbolp (, form))))
-          ((keywordp (, form)))
-          ((memq (, form) '(nil t))))))
+  `(cond ((consp ,form) (eq (car ,form) 'quote))
+        ((symbolp ,form) (byte-compile-constant-symbol-p ,form))
+        (t)))
 
 (defmacro byte-compile-close-variables (&rest body)
   `(let
 
 (defmacro byte-compile-close-variables (&rest body)
   `(let
@@ -1312,8 +1297,7 @@ otherwise pop it")
        (byte-compile-warnings (if (eq byte-compile-warnings t)
                                   byte-compile-default-warnings
                                 byte-compile-warnings))
        (byte-compile-warnings (if (eq byte-compile-warnings t)
                                   byte-compile-default-warnings
                                 byte-compile-warnings))
-       (byte-compile-file-domain nil)
-       )
+       (byte-compile-file-domain nil))
      (prog1
         (progn ,@body)
        (if (memq 'unused-vars byte-compile-warnings)
      (prog1
         (progn ,@body)
        (if (memq 'unused-vars byte-compile-warnings)
@@ -1321,46 +1305,49 @@ otherwise pop it")
           (byte-compile-warn-about-unused-variables)))))
 
 
           (byte-compile-warn-about-unused-variables)))))
 
 
-(defvar byte-compile-warnings-point-max nil)
 (defmacro displaying-byte-compile-warnings (&rest body)
 (defmacro displaying-byte-compile-warnings (&rest body)
-  `(let ((byte-compile-warnings-point-max byte-compile-warnings-point-max))
-     ;; Log the file name.
+  `(let* ((byte-compile-log-buffer (get-buffer-create "*Compile-Log*"))
+         (byte-compile-point-max-prev (point-max byte-compile-log-buffer)))
+     ;; Log the file name or buffer name.
      (byte-compile-log-file)
      ;; Record how much is logged now.
      ;; We will display the log buffer if anything more is logged
      ;; before the end of BODY.
      (byte-compile-log-file)
      ;; Record how much is logged now.
      ;; We will display the log buffer if anything more is logged
      ;; before the end of BODY.
-     (or byte-compile-warnings-point-max
-        (save-excursion
-          (set-buffer (get-buffer-create "*Compile-Log*"))
-          (setq byte-compile-warnings-point-max (point-max))))
-     (unwind-protect
-        (condition-case error-info
-            (progn ,@body)
-          (error
-           (byte-compile-report-error error-info)))
-       (save-excursion
-        ;; If there were compilation warnings, display them.
-        (set-buffer "*Compile-Log*")
-        (if (= byte-compile-warnings-point-max (point-max))
-            nil
-          (if temp-buffer-show-function
-              (let ((show-buffer (get-buffer-create "*Compile-Log-Show*")))
-                (save-excursion
-                  (set-buffer show-buffer)
-                  (setq buffer-read-only nil)
-                  (erase-buffer))
-                (copy-to-buffer show-buffer
-                                (save-excursion
-                                  (goto-char byte-compile-warnings-point-max)
-                                  (forward-line -1)
-                                  (point))
-                                (point-max))
-                (funcall temp-buffer-show-function show-buffer))
-              (select-window
-               (prog1 (selected-window)
-                 (select-window (display-buffer (current-buffer)))
-                 (goto-char byte-compile-warnings-point-max)
-                 (recenter 1)))))))))
+     (defvar byte-compile-warnings-beginning)
+     (let ((byte-compile-warnings-beginning
+           (if (boundp 'byte-compile-warnings-beginning)
+               byte-compile-warnings-beginning
+             (point-max byte-compile-log-buffer))))
+
+       (unwind-protect
+          (condition-case error-info
+              (progn ,@body)
+            (error
+             (byte-compile-report-error error-info)))
+
+        ;; Always set point in log to start of interesting output.
+        (with-current-buffer byte-compile-log-buffer
+          (let ((show-begin
+                 (progn (goto-char byte-compile-point-max-prev)
+                        (skip-chars-forward "\^L\n")
+                        (point))))
+            ;; If there were compilation warnings, display them.
+            (if temp-buffer-show-function
+                (let ((show-buffer (get-buffer-create "*Compile-Log-Show*")))
+                  ;; Always clean show-buffer, even when not displaying it,
+                  ;; so that misleading previous messages aren't left around.
+                  (with-current-buffer show-buffer
+                    (setq buffer-read-only nil)
+                    (erase-buffer))
+                  (copy-to-buffer show-buffer show-begin (point-max))
+                  (when (< byte-compile-warnings-beginning (point-max))
+                    (funcall temp-buffer-show-function show-buffer)))
+              (when (< byte-compile-warnings-beginning (point-max))
+                (select-window
+                 (prog1 (selected-window)
+                   (select-window (display-buffer (current-buffer)))
+                   (goto-char show-begin)
+                   (recenter 1)))))))))))
 
 \f
 ;;;###autoload
 
 \f
 ;;;###autoload
@@ -1466,8 +1453,6 @@ whether to compile it.  Prefix argument 0 don't ask and recompile anyway."
                        (y-or-n-p (concat "Compile " filename "? "))))))
        (byte-compile-file filename))))
 
                        (y-or-n-p (concat "Compile " filename "? "))))))
        (byte-compile-file filename))))
 
-(defvar kanji-flag nil)
-
 ;;;###autoload
 (defun byte-compile-file (filename &optional load)
   "Compile a file of Lisp code named FILENAME into a file of byte code.
 ;;;###autoload
 (defun byte-compile-file (filename &optional load)
   "Compile a file of Lisp code named FILENAME into a file of byte code.
@@ -1503,7 +1488,6 @@ With prefix arg (noninteractively: 2nd arg), load the file after compiling."
       (message "Compiling %s..." filename))
   (let (;;(byte-compile-current-file (file-name-nondirectory filename))
        (byte-compile-current-file filename)
       (message "Compiling %s..." filename))
   (let (;;(byte-compile-current-file (file-name-nondirectory filename))
        (byte-compile-current-file filename)
-       (debug-issue-ebola-notices 0) ; Hack -slb
        target-file input-buffer output-buffer
        byte-compile-dest-file)
     (setq target-file (byte-compile-dest-file filename))
        target-file input-buffer output-buffer
        byte-compile-dest-file)
     (setq target-file (byte-compile-dest-file filename))
@@ -1534,28 +1518,26 @@ With prefix arg (noninteractively: 2nd arg), load the file after compiling."
        (set-buffer output-buffer)
        (goto-char (point-max))
        (insert "\n")                   ; aaah, unix.
        (set-buffer output-buffer)
        (goto-char (point-max))
        (insert "\n")                   ; aaah, unix.
-       (let ((vms-stmlf-recfm t))
-         (setq target-file (byte-compile-dest-file filename))
-         (or byte-compile-overwrite-file
-             (condition-case ()
-                 (delete-file target-file)
-               (error nil)))
-         (if (file-writable-p target-file)
-             (let ((kanji-flag nil))   ; for nemacs, from Nakagawa Takayuki
-               (if (or (eq system-type 'ms-dos) (eq system-type 'windows-nt))
-                   (setq buffer-file-type t))
-               (write-region 1 (point-max) target-file))
-           ;; This is just to give a better error message than write-region
-           (signal 'file-error
-                   (list "Opening output file"
-                         (if (file-exists-p target-file)
-                             "cannot overwrite file"
-                           "directory not writable or nonexistent")
-                         target-file)))
-         (or byte-compile-overwrite-file
-             (condition-case ()
-                 (set-file-modes target-file (file-modes filename))
-               (error nil))))
+       (setq target-file (byte-compile-dest-file filename))
+       (unless byte-compile-overwrite-file
+         (ignore-file-errors (delete-file target-file)))
+       (if (file-writable-p target-file)
+           (progn
+             (when (memq system-type '(ms-dos windows-nt))
+               (defvar buffer-file-type)
+               (setq buffer-file-type t))
+             (write-region 1 (point-max) target-file))
+         ;; This is just to give a better error message than write-region
+         (signal 'file-error
+                 (list "Opening output file"
+                       (if (file-exists-p target-file)
+                           "cannot overwrite file"
+                         "directory not writable or nonexistent")
+                       target-file)))
+       (or byte-compile-overwrite-file
+           (condition-case ()
+               (set-file-modes target-file (file-modes filename))
+             (error nil)))
        (kill-buffer (current-buffer)))
       (if (and byte-compile-generate-call-tree
               (or (eq t byte-compile-generate-call-tree)
        (kill-buffer (current-buffer)))
       (if (and byte-compile-generate-call-tree
               (or (eq t byte-compile-generate-call-tree)
@@ -1664,7 +1646,7 @@ With argument, insert value in current buffer after the form."
 
        ;; Compile the forms from the input buffer.
        (while (progn
 
        ;; Compile the forms from the input buffer.
        (while (progn
-                (while (progn (skip-chars-forward " \t\n\^l")
+                (while (progn (skip-chars-forward " \t\n\^L")
                               (looking-at ";"))
                   (forward-line 1))
                 (not (eobp)))
                               (looking-at ";"))
                   (forward-line 1))
                 (not (eobp)))
@@ -1767,25 +1749,26 @@ With argument, insert value in current buffer after the form."
   ;; extended characters are output properly and distinguished properly.
   ;; Otherwise, use `no-conversion' for maximum portability with non-Mule
   ;; Emacsen.
   ;; extended characters are output properly and distinguished properly.
   ;; Otherwise, use `no-conversion' for maximum portability with non-Mule
   ;; Emacsen.
-  (if (featurep 'mule)
-      (if (save-excursion
-           (set-buffer byte-compile-inbuffer)
-           (goto-char (point-min))
-           ;; mrb- There must be a better way than skip-chars-forward
-           (skip-chars-forward (concat (char-to-string 0) "-"
-                                       (char-to-string 255)))
-           (eq (point) (point-max)))
-         (setq buffer-file-coding-system 'no-conversion)
-       (insert "(require 'mule)\n;;;###coding system: escape-quoted\n")
-       (setq buffer-file-coding-system 'escape-quoted)
-       ;; Lazy loading not yet implemented for MULE files
-       ;; mrb - Fix this someday.
-       (save-excursion
+  (when (featurep 'mule)
+    (defvar buffer-file-coding-system)
+    (if (save-excursion
          (set-buffer byte-compile-inbuffer)
          (set-buffer byte-compile-inbuffer)
-         (setq byte-compile-dynamic nil
-               byte-compile-dynamic-docstrings nil))
-       ;;(external-debugging-output (prin1-to-string (buffer-local-variables))))
-       ))
+         (goto-char (point-min))
+         ;; mrb- There must be a better way than skip-chars-forward
+         (skip-chars-forward (concat (char-to-string 0) "-"
+                                     (char-to-string 255)))
+         (eq (point) (point-max)))
+       (setq buffer-file-coding-system 'no-conversion)
+      (insert "(require 'mule)\n;;;###coding system: escape-quoted\n")
+      (setq buffer-file-coding-system 'escape-quoted)
+      ;; #### Lazy loading not yet implemented for MULE files
+      ;; mrb - Fix this someday.
+      (save-excursion
+       (set-buffer byte-compile-inbuffer)
+       (setq byte-compile-dynamic nil
+             byte-compile-dynamic-docstrings nil))
+      ;;(external-debugging-output (prin1-to-string (buffer-local-variables))))
+      ))
   )
 
 
   )
 
 
@@ -1904,8 +1887,8 @@ list that represents a doc string reference.
             (nthcdr 300 byte-compile-output)
             (byte-compile-flush-pending))
        (funcall handler form)
             (nthcdr 300 byte-compile-output)
             (byte-compile-flush-pending))
        (funcall handler form)
-       (if for-effect
-           (byte-compile-discard)))
+       (when for-effect
+         (byte-compile-discard)))
     (byte-compile-form form t))
   nil)
 
     (byte-compile-form form t))
   nil)
 
@@ -1939,7 +1922,7 @@ list that represents a doc string reference.
       (byte-compile-file-form form)))))
 
 ;; Functions and variables with doc strings must be output separately,
       (byte-compile-file-form form)))))
 
 ;; Functions and variables with doc strings must be output separately,
-;; so make-docfile can recognise them.  Most other things can be output
+;; so make-docfile can recognize them.  Most other things can be output
 ;; as byte-code.
 
 (put 'defsubst 'byte-hunk-handler 'byte-compile-file-form-defsubst)
 ;; as byte-code.
 
 (put 'defsubst 'byte-hunk-handler 'byte-compile-file-form-defsubst)
@@ -2106,32 +2089,32 @@ list that represents a doc string reference.
                  (cons (list name nil nil) byte-compile-call-tree))))
 
     (setq byte-compile-current-form name) ; for warnings
                  (cons (list name nil nil) byte-compile-call-tree))))
 
     (setq byte-compile-current-form name) ; for warnings
-    (if (memq 'redefine byte-compile-warnings)
-       (byte-compile-arglist-warn form macrop))
-    (if byte-compile-verbose
-       (message "Compiling %s... (%s)"
-                ;; #### filename used free
-                (if filename (file-name-nondirectory filename) "")
-                (nth 1 form)))
+    (when (memq 'redefine byte-compile-warnings)
+      (byte-compile-arglist-warn form macrop))
+    (defvar filename) ; #### filename used free
+    (when byte-compile-verbose
+      (message "Compiling %s... (%s)"
+              (if filename (file-name-nondirectory filename) "")
+              (nth 1 form)))
     (cond (that-one
     (cond (that-one
-          (if (and (memq 'redefine byte-compile-warnings)
-                   ;; hack hack: don't warn when compiling the stubs in
-                   ;; bytecomp-runtime...
-                   (not (assq (nth 1 form)
-                              byte-compile-initial-macro-environment)))
-              (byte-compile-warn
-                "%s defined multiple times, as both function and macro"
-                (nth 1 form)))
+          (when (and (memq 'redefine byte-compile-warnings)
+                     ;; hack hack: don't warn when compiling the stubs in
+                     ;; bytecomp-runtime...
+                     (not (assq (nth 1 form)
+                                byte-compile-initial-macro-environment)))
+            (byte-compile-warn
+             "%s defined multiple times, as both function and macro"
+             (nth 1 form)))
           (setcdr that-one nil))
          (this-one
           (setcdr that-one nil))
          (this-one
-          (if (and (memq 'redefine byte-compile-warnings)
-                   ;; hack: don't warn when compiling the magic internal
-                   ;; byte-compiler macros in bytecomp-runtime.el...
-                   (not (assq (nth 1 form)
-                              byte-compile-initial-macro-environment)))
-              (byte-compile-warn "%s %s defined multiple times in this file"
-                                 (if macrop "macro" "function")
-                                 (nth 1 form))))
+          (when (and (memq 'redefine byte-compile-warnings)
+                     ;; hack: don't warn when compiling the magic internal
+                     ;; byte-compiler macros in bytecomp-runtime.el...
+                     (not (assq (nth 1 form)
+                                byte-compile-initial-macro-environment)))
+            (byte-compile-warn "%s %s defined multiple times in this file"
+                               (if macrop "macro" "function")
+                               (nth 1 form))))
          ((and (fboundp name)
                (or (subrp (symbol-function name))
                    (eq (car-safe (symbol-function name))
          ((and (fboundp name)
                (or (subrp (symbol-function name))
                    (eq (car-safe (symbol-function name))
@@ -2145,8 +2128,7 @@ list that represents a doc string reference.
                                  (if macrop "macro" "function")))
           ;; shadow existing definition
           (set this-kind
                                  (if macrop "macro" "function")))
           ;; shadow existing definition
           (set this-kind
-               (cons (cons name nil) (symbol-value this-kind))))
-         )
+               (cons (cons name nil) (symbol-value this-kind)))))
     (let ((body (nthcdr 3 form)))
       (if (and (stringp (car body))
               (symbolp (car-safe (cdr-safe body)))
     (let ((body (nthcdr 3 form)))
       (if (and (stringp (car body))
               (symbolp (car-safe (cdr-safe body)))
@@ -2345,11 +2327,11 @@ If FORM is a lambda or a macro, byte-compile it as a function."
          (let* ((interactive (assq 'interactive (cdr (cdr fun)))))
            (nconc (list 'make-byte-code
                         (list 'quote (nth 1 fun)) ;arglist
          (let* ((interactive (assq 'interactive (cdr (cdr fun)))))
            (nconc (list 'make-byte-code
                         (list 'quote (nth 1 fun)) ;arglist
-                        (nth 1 tmp)    ;bytes
-                        (nth 2 tmp)    ;consts
-                        (nth 3 tmp))   ;depth
+                        (nth 1 tmp)    ;instructions
+                        (nth 2 tmp)    ;constants
+                        (nth 3 tmp))   ;stack-depth
                   (cond ((stringp (nth 2 fun))
                   (cond ((stringp (nth 2 fun))
-                         (list (nth 2 fun))) ;doc
+                         (list (nth 2 fun))) ;docstring
                         (interactive
                          (list nil)))
                   (cond (interactive
                         (interactive
                          (list nil)))
                   (cond (interactive
@@ -2371,8 +2353,7 @@ If FORM is a lambda or a macro, byte-compile it as a function."
   (let* ((arglist (nth 1 fun))
         (byte-compile-bound-variables
          (let ((new-bindings
   (let* ((arglist (nth 1 fun))
         (byte-compile-bound-variables
          (let ((new-bindings
-                (mapcar (function (lambda (x)
-                                    (cons x byte-compile-arglist-bit)))
+                (mapcar #'(lambda (x) (cons x byte-compile-arglist-bit))
                         (and (memq 'free-vars byte-compile-warnings)
                              (delq '&rest (delq '&optional
                                                 (copy-sequence arglist)))))))
                         (and (memq 'free-vars byte-compile-warnings)
                              (delq '&rest (delq '&optional
                                                 (copy-sequence arglist)))))))
@@ -2383,18 +2364,16 @@ If FORM is a lambda or a macro, byte-compile it as a function."
                  (prog1 (car body)
                    (setq body (cdr body)))))
         (int (assq 'interactive body)))
                  (prog1 (car body)
                    (setq body (cdr body)))))
         (int (assq 'interactive body)))
-    (let ((rest arglist))
-      (while rest
-       (cond ((not (symbolp (car rest)))
-              (byte-compile-warn "non-symbol in arglist: %s"
-                                 (prin1-to-string (car rest))))
-             ((memq (car rest) '(t nil))
-              (byte-compile-warn "constant in arglist: %s" (car rest)))
-             ((and (char= ?\& (aref (symbol-name (car rest)) 0))
-                   (not (memq (car rest) '(&optional &rest))))
-              (byte-compile-warn "unrecognised `&' keyword in arglist: %s"
-                                 (car rest))))
-       (setq rest (cdr rest))))
+    (dolist (arg arglist)
+      (cond ((not (symbolp arg))
+            (byte-compile-warn "non-symbol in arglist: %S" arg))
+           ((byte-compile-constant-symbol-p arg)
+            (byte-compile-warn "constant symbol in arglist: %s" arg))
+           ((and (char= ?\& (aref (symbol-name arg) 0))
+                 (not (eq arg '&optional))
+                 (not (eq arg '&rest)))
+            (byte-compile-warn "unrecognized `&' keyword in arglist: %s"
+                               arg))))
     (cond (int
           ;; Skip (interactive) if it is in front (the most usual location).
           (if (eq int (car body))
     (cond (int
           ;; Skip (interactive) if it is in front (the most usual location).
           (if (eq int (car body))
@@ -2555,8 +2534,7 @@ If FORM is a lambda or a macro, byte-compile it as a function."
                     (if (if (eq (car (car rest)) 'byte-constant)
                             (or (consp tmp)
                                 (and (symbolp tmp)
                     (if (if (eq (car (car rest)) 'byte-constant)
                             (or (consp tmp)
                                 (and (symbolp tmp)
-                                     (not (keywordp tmp))
-                                     (not (memq tmp '(nil t))))))
+                                     (not (byte-compile-constant-symbol-p tmp)))))
                         (if maycall
                             (setq body (cons (list 'quote tmp) body)))
                       (setq body (cons tmp body))))
                         (if maycall
                             (setq body (cons (list 'quote tmp) body)))
                       (setq body (cons tmp body))))
@@ -2606,7 +2584,7 @@ If FORM is a lambda or a macro, byte-compile it as a function."
 ;; This is the recursive entry point for compiling each subform of an
 ;; expression.
 ;; If for-effect is non-nil, byte-compile-form will output a byte-discard
 ;; This is the recursive entry point for compiling each subform of an
 ;; expression.
 ;; If for-effect is non-nil, byte-compile-form will output a byte-discard
-;; before terminating (ie no value will be left on the stack).
+;; before terminating (ie. no value will be left on the stack).
 ;; A byte-compile handler may, when for-effect is non-nil, choose output code
 ;; which does not leave a value on the stack, and then set for-effect to nil
 ;; (to prevent byte-compile-form from outputting the byte-discard).
 ;; A byte-compile handler may, when for-effect is non-nil, choose output code
 ;; which does not leave a value on the stack, and then set for-effect to nil
 ;; (to prevent byte-compile-form from outputting the byte-discard).
@@ -2617,8 +2595,8 @@ If FORM is a lambda or a macro, byte-compile it as a function."
 (defun byte-compile-form (form &optional for-effect)
   (setq form (macroexpand form byte-compile-macro-environment))
   (cond ((not (consp form))
 (defun byte-compile-form (form &optional for-effect)
   (setq form (macroexpand form byte-compile-macro-environment))
   (cond ((not (consp form))
-        ;; XEmacs addition: keywordp
-        (cond ((or (not (symbolp form)) (keywordp form) (memq form '(nil t)))
+        (cond ((or (not (symbolp form))
+                   (byte-compile-constant-symbol-p form))
                (byte-compile-constant form))
               ((and for-effect byte-compile-delete-errors)
                (setq for-effect nil))
                (byte-compile-constant form))
               ((and for-effect byte-compile-delete-errors)
                (setq for-effect nil))
@@ -2644,8 +2622,8 @@ If FORM is a lambda or a macro, byte-compile it as a function."
         (byte-compile-form form for-effect)
         (setq for-effect nil))
        ((byte-compile-normal-call form)))
         (byte-compile-form form for-effect)
         (setq for-effect nil))
        ((byte-compile-normal-call form)))
-  (if for-effect
-      (byte-compile-discard)))
+  (when for-effect
+    (byte-compile-discard)))
 
 (defun byte-compile-normal-call (form)
   (if byte-compile-generate-call-tree
 
 (defun byte-compile-normal-call (form)
   (if byte-compile-generate-call-tree
@@ -2658,12 +2636,14 @@ If FORM is a lambda or a macro, byte-compile it as a function."
 (or (fboundp 'globally-boundp) (fset 'globally-boundp 'boundp))
 
 (defun byte-compile-variable-ref (base-op var &optional varbind-flags)
 (or (fboundp 'globally-boundp) (fset 'globally-boundp 'boundp))
 
 (defun byte-compile-variable-ref (base-op var &optional varbind-flags)
-  (if (or (not (symbolp var)) (keywordp var) (memq var '(nil t)))
-      (byte-compile-warn (if (eq base-op 'byte-varbind)
-                            "Attempt to let-bind %s %s"
-                          "Variable reference to %s %s")
-                        (if (symbolp var) "constant" "nonvariable")
-                        (prin1-to-string var))
+  (if (or (not (symbolp var)) (byte-compile-constant-symbol-p var))
+      (byte-compile-warn
+       (case base-op
+        (byte-varref "Variable reference to %s %s")
+        (byte-varset "Attempt to set %s %s")
+        (byte-varbind "Attempt to let-bind %s %s"))
+       (if (symbolp var) "constant symbol" "non-symbol")
+       var)
     (if (and (get var 'byte-obsolete-variable)
             (memq 'obsolete byte-compile-warnings))
        (let ((ob (get var 'byte-obsolete-variable)))
     (if (and (get var 'byte-obsolete-variable)
             (memq 'obsolete byte-compile-warnings))
        (let ((ob (get var 'byte-obsolete-variable)))
@@ -2709,11 +2689,11 @@ If FORM is a lambda or a macro, byte-compile it as a function."
     (byte-compile-out base-op tmp)))
 
 (defmacro byte-compile-get-constant (const)
     (byte-compile-out base-op tmp)))
 
 (defmacro byte-compile-get-constant (const)
-  (` (or (if (stringp (, const))
-            (assoc (, const) byte-compile-constants)
-          (assq (, const) byte-compile-constants))
-        (car (setq byte-compile-constants
-                   (cons (list (, const)) byte-compile-constants))))))
+  `(or (if (stringp ,const)
+          (assoc ,const byte-compile-constants)
+        (assq ,const byte-compile-constants))
+       (car (setq byte-compile-constants
+                 (cons (list ,const) byte-compile-constants)))))
 
 ;; Use this when the value of a form is a constant.  This obeys for-effect.
 (defun byte-compile-constant (const)
 
 ;; Use this when the value of a form is a constant.  This obeys for-effect.
 (defun byte-compile-constant (const)
@@ -2894,12 +2874,6 @@ If FORM is a lambda or a macro, byte-compile it as a function."
 (byte-defop-compiler20 old-memq                2)
 (byte-defop-compiler cons              2)
 (byte-defop-compiler aref              2)
 (byte-defop-compiler20 old-memq                2)
 (byte-defop-compiler cons              2)
 (byte-defop-compiler aref              2)
-(byte-defop-compiler (= byte-eqlsign)  byte-compile-one-or-more-args)
-(byte-defop-compiler (< byte-lss)      byte-compile-one-or-more-args)
-(byte-defop-compiler (> byte-gtr)      byte-compile-one-or-more-args)
-(byte-defop-compiler (<= byte-leq)     byte-compile-one-or-more-args)
-(byte-defop-compiler (>= byte-geq)     byte-compile-one-or-more-args)
-(byte-defop-compiler /=                        byte-compile-/=)
 (byte-defop-compiler get               2+1)
 (byte-defop-compiler nth               2)
 (byte-defop-compiler substring         2-3)
 (byte-defop-compiler get               2+1)
 (byte-defop-compiler nth               2)
 (byte-defop-compiler substring         2-3)
@@ -2922,9 +2896,6 @@ If FORM is a lambda or a macro, byte-compile it as a function."
 (byte-defop-compiler (rplacd byte-setcdr) 2)
 (byte-defop-compiler setcar            2)
 (byte-defop-compiler setcdr            2)
 (byte-defop-compiler (rplacd byte-setcdr) 2)
 (byte-defop-compiler setcar            2)
 (byte-defop-compiler setcdr            2)
-;; buffer-substring now has its own function.  This used to be
-;; 2+1, but now all args are optional.
-(byte-defop-compiler buffer-substring)
 (byte-defop-compiler delete-region     2+1)
 (byte-defop-compiler narrow-to-region  2+1)
 (byte-defop-compiler (% byte-rem)      2)
 (byte-defop-compiler delete-region     2+1)
 (byte-defop-compiler narrow-to-region  2+1)
 (byte-defop-compiler (% byte-rem)      2)
@@ -2954,55 +2925,56 @@ If FORM is a lambda or a macro, byte-compile it as a function."
 
 \f
 (defun byte-compile-subr-wrong-args (form n)
 
 \f
 (defun byte-compile-subr-wrong-args (form n)
-  (byte-compile-warn "%s called with %d arg%s, but requires %s"
-                    (car form) (length (cdr form))
-                    (if (= 1 (length (cdr form))) "" "s") n)
+  (when (memq 'subr-callargs byte-compile-warnings)
+    (byte-compile-warn "%s called with %d arg%s, but requires %s"
+                      (car form) (length (cdr form))
+                      (if (= 1 (length (cdr form))) "" "s") n))
   ;; get run-time wrong-number-of-args error.
   (byte-compile-normal-call form))
 
 (defun byte-compile-no-args (form)
   ;; get run-time wrong-number-of-args error.
   (byte-compile-normal-call form))
 
 (defun byte-compile-no-args (form)
-  (if (not (= (length form) 1))
-      (byte-compile-subr-wrong-args form "none")
-    (byte-compile-out (get (car form) 'byte-opcode) 0)))
+  (case (length (cdr form))
+    (0 (byte-compile-out (get (car form) 'byte-opcode) 0))
+    (t (byte-compile-subr-wrong-args form "none"))))
 
 (defun byte-compile-one-arg (form)
 
 (defun byte-compile-one-arg (form)
-  (if (not (= (length form) 2))
-      (byte-compile-subr-wrong-args form 1)
-    (byte-compile-form (car (cdr form)))  ;; Push the argument
-    (byte-compile-out (get (car form) 'byte-opcode) 0)))
+  (case (length (cdr form))
+    (1 (byte-compile-form (car (cdr form)))  ;; Push the argument
+       (byte-compile-out (get (car form) 'byte-opcode) 0))
+    (t (byte-compile-subr-wrong-args form 1))))
 
 (defun byte-compile-two-args (form)
 
 (defun byte-compile-two-args (form)
-  (if (not (= (length form) 3))
-      (byte-compile-subr-wrong-args form 2)
-    (byte-compile-form (car (cdr form)))  ;; Push the arguments
-    (byte-compile-form (nth 2 form))
-    (byte-compile-out (get (car form) 'byte-opcode) 0)))
+  (case (length (cdr form))
+    (2 (byte-compile-form (nth 1 form))  ;; Push the arguments
+       (byte-compile-form (nth 2 form))
+       (byte-compile-out (get (car form) 'byte-opcode) 0))
+    (t (byte-compile-subr-wrong-args form 2))))
 
 (defun byte-compile-three-args (form)
 
 (defun byte-compile-three-args (form)
-  (if (not (= (length form) 4))
-      (byte-compile-subr-wrong-args form 3)
-    (byte-compile-form (car (cdr form)))  ;; Push the arguments
-    (byte-compile-form (nth 2 form))
-    (byte-compile-form (nth 3 form))
-    (byte-compile-out (get (car form) 'byte-opcode) 0)))
+  (case (length (cdr form))
+    (3 (byte-compile-form (nth 1 form))  ;; Push the arguments
+       (byte-compile-form (nth 2 form))
+       (byte-compile-form (nth 3 form))
+       (byte-compile-out (get (car form) 'byte-opcode) 0))
+    (t (byte-compile-subr-wrong-args form 3))))
 
 (defun byte-compile-zero-or-one-arg (form)
 
 (defun byte-compile-zero-or-one-arg (form)
-  (let ((len (length form)))
-    (cond ((= len 1) (byte-compile-one-arg (append form '(nil))))
-         ((= len 2) (byte-compile-one-arg form))
-         (t (byte-compile-subr-wrong-args form "0-1")))))
+  (case (length (cdr form))
+    (0 (byte-compile-one-arg (append form '(nil))))
+    (1 (byte-compile-one-arg form))
+    (t (byte-compile-subr-wrong-args form "0-1"))))
 
 (defun byte-compile-one-or-two-args (form)
 
 (defun byte-compile-one-or-two-args (form)
-  (let ((len (length form)))
-    (cond ((= len 2) (byte-compile-two-args (append form '(nil))))
-         ((= len 3) (byte-compile-two-args form))
-         (t (byte-compile-subr-wrong-args form "1-2")))))
+  (case (length (cdr form))
+    (1 (byte-compile-two-args (append form '(nil))))
+    (2 (byte-compile-two-args form))
+    (t (byte-compile-subr-wrong-args form "1-2"))))
 
 (defun byte-compile-two-or-three-args (form)
 
 (defun byte-compile-two-or-three-args (form)
-  (let ((len (length form)))
-    (cond ((= len 3) (byte-compile-three-args (append form '(nil))))
-         ((= len 4) (byte-compile-three-args form))
-         (t (byte-compile-subr-wrong-args form "2-3")))))
+  (case (length (cdr form))
+    (2 (byte-compile-three-args (append form '(nil))))
+    (3 (byte-compile-three-args form))
+    (t (byte-compile-subr-wrong-args form "2-3"))))
 
 ;; from Ben Wing <ben@xemacs.org>: some inlined functions have extra
 ;; optional args added to them in XEmacs 19.12.  Changing the byte
 
 ;; from Ben Wing <ben@xemacs.org>: some inlined functions have extra
 ;; optional args added to them in XEmacs 19.12.  Changing the byte
@@ -3013,55 +2985,55 @@ If FORM is a lambda or a macro, byte-compile it as a function."
 ;; `byte-compile-subr-wrong-args' also converts the call to non-inlined.
 
 (defun byte-compile-no-args-with-one-extra (form)
 ;; `byte-compile-subr-wrong-args' also converts the call to non-inlined.
 
 (defun byte-compile-no-args-with-one-extra (form)
-  (let ((len (length form)))
-    (cond ((= len 1) (byte-compile-no-args form))
-         ((= len 2) (byte-compile-normal-call form))
-         (t (byte-compile-subr-wrong-args form "0-1")))))
+  (case (length (cdr form))
+    (0 (byte-compile-no-args form))
+    (1 (byte-compile-normal-call form))
+    (t (byte-compile-subr-wrong-args form "0-1"))))
 
 (defun byte-compile-one-arg-with-one-extra (form)
 
 (defun byte-compile-one-arg-with-one-extra (form)
-  (let ((len (length form)))
-    (cond ((= len 2) (byte-compile-one-arg form))
-         ((= len 3) (byte-compile-normal-call form))
-         (t (byte-compile-subr-wrong-args form "1-2")))))
+  (case (length (cdr form))
+    (1 (byte-compile-one-arg form))
+    (2 (byte-compile-normal-call form))
+    (t (byte-compile-subr-wrong-args form "1-2"))))
 
 (defun byte-compile-two-args-with-one-extra (form)
 
 (defun byte-compile-two-args-with-one-extra (form)
-  (let ((len (length form)))
-    (cond ((= len 3) (byte-compile-two-args form))
-         ((= len 4) (byte-compile-normal-call form))
-         (t (byte-compile-subr-wrong-args form "2-3")))))
+  (case (length (cdr form))
+    (2 (byte-compile-two-args form))
+    (3 (byte-compile-normal-call form))
+    (t (byte-compile-subr-wrong-args form "2-3"))))
 
 (defun byte-compile-zero-or-one-arg-with-one-extra (form)
 
 (defun byte-compile-zero-or-one-arg-with-one-extra (form)
-  (let ((len (length form)))
-    (cond ((= len 1) (byte-compile-one-arg (append form '(nil))))
-         ((= len 2) (byte-compile-one-arg form))
-         ((= len 3) (byte-compile-normal-call form))
-         (t (byte-compile-subr-wrong-args form "0-2")))))
+  (case (length (cdr form))
+    (0 (byte-compile-one-arg (append form '(nil))))
+    (1 (byte-compile-one-arg form))
+    (2 (byte-compile-normal-call form))
+    (t (byte-compile-subr-wrong-args form "0-2"))))
 
 (defun byte-compile-one-or-two-args-with-one-extra (form)
 
 (defun byte-compile-one-or-two-args-with-one-extra (form)
-  (let ((len (length form)))
-    (cond ((= len 2) (byte-compile-two-args (append form '(nil))))
-         ((= len 3) (byte-compile-two-args form))
-         ((= len 4) (byte-compile-normal-call form))
-         (t (byte-compile-subr-wrong-args form "1-3")))))
+  (case (length (cdr form))
+    (1 (byte-compile-two-args (append form '(nil))))
+    (2 (byte-compile-two-args form))
+    (3 (byte-compile-normal-call form))
+    (t (byte-compile-subr-wrong-args form "1-3"))))
 
 (defun byte-compile-two-or-three-args-with-one-extra (form)
 
 (defun byte-compile-two-or-three-args-with-one-extra (form)
-  (let ((len (length form)))
-    (cond ((= len 3) (byte-compile-three-args (append form '(nil))))
-         ((= len 4) (byte-compile-three-args form))
-         ((= len 5) (byte-compile-normal-call form))
-         (t (byte-compile-subr-wrong-args form "2-4")))))
+  (case (length (cdr form))
+    (2 (byte-compile-three-args (append form '(nil))))
+    (3 (byte-compile-three-args form))
+    (4 (byte-compile-normal-call form))
+    (t (byte-compile-subr-wrong-args form "2-4"))))
 
 (defun byte-compile-no-args-with-two-extra (form)
 
 (defun byte-compile-no-args-with-two-extra (form)
-  (let ((len (length form)))
-    (cond ((= len 1) (byte-compile-no-args form))
-         ((or (= len 2) (= len 3)) (byte-compile-normal-call form))
-         (t (byte-compile-subr-wrong-args form "0-2")))))
+  (case (length (cdr form))
+    (0     (byte-compile-no-args form))
+    ((1 2) (byte-compile-normal-call form))
+    (t     (byte-compile-subr-wrong-args form "0-2"))))
 
 (defun byte-compile-one-arg-with-two-extra (form)
 
 (defun byte-compile-one-arg-with-two-extra (form)
-  (let ((len (length form)))
-    (cond ((= len 2) (byte-compile-one-arg form))
-         ((or (= len 3) (= len 4)) (byte-compile-normal-call form))
-         (t (byte-compile-subr-wrong-args form "1-3")))))
+  (case (length (cdr form))
+    (1     (byte-compile-one-arg form))
+    ((2 3) (byte-compile-normal-call form))
+    (t     (byte-compile-subr-wrong-args form "1-3"))))
 
 ;; XEmacs: used for functions that have a different opcode in v19 than v20.
 ;; this includes `eq', `equal', and other old-ified functions.
 
 ;; XEmacs: used for functions that have a different opcode in v19 than v20.
 ;; this includes `eq', `equal', and other old-ified functions.
@@ -3080,21 +3052,33 @@ If FORM is a lambda or a macro, byte-compile it as a function."
 (defun byte-compile-discard ()
   (byte-compile-out 'byte-discard 0))
 
 (defun byte-compile-discard ()
   (byte-compile-out 'byte-discard 0))
 
+;; Compile a function that accepts one or more args and is right-associative.
+;; We do it by left-associativity so that the operations
+;; are done in the same order as in interpreted code.
+;(defun byte-compile-associative (form)
+;  (if (cdr form)
+;      (let ((opcode (get (car form) 'byte-opcode))
+;          (args (copy-sequence (cdr form))))
+;      (byte-compile-form (car args))
+;      (setq args (cdr args))
+;      (while args
+;        (byte-compile-form (car args))
+;        (byte-compile-out opcode 0)
+;        (setq args (cdr args))))
+;    (byte-compile-constant (eval form))))
 
 ;; Compile a function that accepts one or more args and is right-associative.
 ;; We do it by left-associativity so that the operations
 ;; are done in the same order as in interpreted code.
 (defun byte-compile-associative (form)
 
 ;; Compile a function that accepts one or more args and is right-associative.
 ;; We do it by left-associativity so that the operations
 ;; are done in the same order as in interpreted code.
 (defun byte-compile-associative (form)
-  (if (cdr form)
-      (let ((opcode (get (car form) 'byte-opcode))
-           (args (copy-sequence (cdr form))))
-       (byte-compile-form (car args))
-       (setq args (cdr args))
-       (while args
-         (byte-compile-form (car args))
-         (byte-compile-out opcode 0)
-         (setq args (cdr args))))
-    (byte-compile-constant (eval form))))
+  (let ((args (cdr form))
+       (opcode (get (car form) 'byte-opcode)))
+    (case (length args)
+      (0 (byte-compile-constant (eval form)))
+      (t (byte-compile-form (car args))
+        (dolist (arg (cdr args))
+          (byte-compile-form arg)
+          (byte-compile-out opcode 0))))))
 
 \f
 ;; more complicated compiler macros
 
 \f
 ;; more complicated compiler macros
@@ -3109,92 +3093,110 @@ If FORM is a lambda or a macro, byte-compile it as a function."
 (byte-defop-compiler nconc)
 (byte-defop-compiler-1 beginning-of-line)
 
 (byte-defop-compiler nconc)
 (byte-defop-compiler-1 beginning-of-line)
 
-(defun byte-compile-one-or-more-args (form)
-  (let ((len (length form)))
-    (cond ((= len 1) (byte-compile-subr-wrong-args form "1 or more"))
-         ((= len 2) (byte-compile-constant t))
-         ((= len 3) (byte-compile-two-args form))
-         (t (byte-compile-normal-call form)))))
+(byte-defop-compiler (=  byte-eqlsign) byte-compile-arithcompare)
+(byte-defop-compiler (<  byte-lss)     byte-compile-arithcompare)
+(byte-defop-compiler (>  byte-gtr)     byte-compile-arithcompare)
+(byte-defop-compiler (<= byte-leq)     byte-compile-arithcompare)
+(byte-defop-compiler (>= byte-geq)     byte-compile-arithcompare)
+
+(defun byte-compile-arithcompare (form)
+  (case (length (cdr form))
+    (0 (byte-compile-subr-wrong-args form "1 or more"))
+    (1 (byte-compile-constant t))
+    (2 (byte-compile-two-args form))
+    (t (byte-compile-normal-call form))))
+
+(byte-defop-compiler /= byte-compile-/=)
 
 (defun byte-compile-/= (form)
 
 (defun byte-compile-/= (form)
-  (let ((len (length form)))
-    (cond ((= len 1) (byte-compile-subr-wrong-args form "1 or more"))
-         ((= len 2) (byte-compile-constant t))
-         ;; optimize (/= X Y) to (not (= X Y))
-         ((= len 3) (byte-compile-form-do-effect `(not (= ,@(cdr form)))))
-         (t (byte-compile-normal-call form)))))
+  (case (length (cdr form))
+    (0 (byte-compile-subr-wrong-args form "1 or more"))
+    (1 (byte-compile-constant t))
+    ;; optimize (/= X Y) to (not (= X Y))
+    (2 (byte-compile-form-do-effect `(not (= ,@(cdr form)))))
+    (t (byte-compile-normal-call form))))
+
+;; buffer-substring now has its own function.  This used to be
+;; 2+1, but now all args are optional.
+(byte-defop-compiler buffer-substring)
 
 (defun byte-compile-buffer-substring (form)
 
 (defun byte-compile-buffer-substring (form)
-  (let ((len (length form)))
-    ;; buffer-substring used to take exactly two args, but now takes 0-3.
-    ;; convert 0-2 to two args and use special bytecode operand.
-    ;; convert 3 args to a normal call.
-    (cond ((= len 1) (setq form (append form '(nil nil)))
-          (= len 2) (setq form (append form '(nil)))))
-    (cond ((= len 3) (byte-compile-two-args form))
-         ((= len 4) (byte-compile-normal-call form))
-         (t (byte-compile-subr-wrong-args form "0-3")))))
+  ;; buffer-substring used to take exactly two args, but now takes 0-3.
+  ;; convert 0-2 to two args and use special bytecode operand.
+  ;; convert 3 args to a normal call.
+  (case (length (cdr form))
+    (0 (byte-compile-two-args (append form '(nil nil))))
+    (1 (byte-compile-two-args (append form '(nil))))
+    (2 (byte-compile-two-args form))
+    (3 (byte-compile-normal-call form))
+    (t (byte-compile-subr-wrong-args form "0-3"))))
 
 (defun byte-compile-list (form)
 
 (defun byte-compile-list (form)
-  (let ((count (length (cdr form))))
-    (cond ((= count 0)
-          (byte-compile-constant nil))
-         ((< count 5)
-          (mapcar 'byte-compile-form (cdr form))
-          (byte-compile-out
-           (aref [byte-list1 byte-list2 byte-list3 byte-list4] (1- count)) 0))
-         ((< count 256)
-          (mapcar 'byte-compile-form (cdr form))
-          (byte-compile-out 'byte-listN count))
-         (t (byte-compile-normal-call form)))))
+  (let* ((args (cdr form))
+        (nargs (length args)))
+    (cond
+     ((= nargs 0)
+      (byte-compile-constant nil))
+     ((< nargs 5)
+      (mapcar 'byte-compile-form args)
+      (byte-compile-out
+       (aref [byte-list1 byte-list2 byte-list3 byte-list4] (1- nargs))
+       0))
+     ((< nargs 256)
+      (mapcar 'byte-compile-form args)
+      (byte-compile-out 'byte-listN nargs))
+     (t (byte-compile-normal-call form)))))
 
 (defun byte-compile-concat (form)
 
 (defun byte-compile-concat (form)
-  (let ((count (length (cdr form))))
-    (cond ((and (< 1 count) (< count 5))
-          (mapcar 'byte-compile-form (cdr form))
-          (byte-compile-out
-           (aref [byte-concat2 byte-concat3 byte-concat4] (- count 2))
-           0))
-         ;; Concat of one arg is not a no-op if arg is not a string.
-         ((= count 0)
-          (byte-compile-form ""))
-         ((< count 256)
-          (mapcar 'byte-compile-form (cdr form))
-          (byte-compile-out 'byte-concatN count))
-         ((byte-compile-normal-call form)))))
+  (let* ((args (cdr form))
+        (nargs (length args)))
+    ;; Concat of one arg is not a no-op if arg is not a string.
+    (cond
+     ((memq nargs '(2 3 4))
+      (mapcar 'byte-compile-form args)
+      (byte-compile-out
+       (aref [byte-concat2 byte-concat3 byte-concat4] (- nargs 2))
+       0))
+     ((eq nargs 0)
+      (byte-compile-form ""))
+     ((< nargs 256)
+      (mapcar 'byte-compile-form args)
+      (byte-compile-out 'byte-concatN nargs))
+     ((byte-compile-normal-call form)))))
 
 (defun byte-compile-minus (form)
 
 (defun byte-compile-minus (form)
-  (if (null (setq form (cdr form)))
-      (byte-compile-constant 0)
-    (byte-compile-form (car form))
-    (if (cdr form)
-       (while (setq form (cdr form))
-         (byte-compile-form (car form))
-         (byte-compile-out 'byte-diff 0))
-      (byte-compile-out 'byte-negate 0))))
+  (let ((args (cdr form)))
+    (case (length args)
+      (0 (byte-compile-subr-wrong-args form "1 or more"))
+      (1 (byte-compile-form (car args))
+        (byte-compile-out 'byte-negate 0))
+      (t (byte-compile-form (car args))
+        (dolist (elt (cdr args))
+          (byte-compile-form elt)
+          (byte-compile-out 'byte-diff 0))))))
 
 (defun byte-compile-quo (form)
 
 (defun byte-compile-quo (form)
-  (let ((len (length form)))
-    (cond ((<= len 2)
-          (byte-compile-subr-wrong-args form "2 or more"))
-         (t
-          (byte-compile-form (car (setq form (cdr form))))
-          (while (setq form (cdr form))
-            (byte-compile-form (car form))
-            (byte-compile-out 'byte-quo 0))))))
+  (let ((args (cdr form)))
+    (case (length args)
+      (0 (byte-compile-subr-wrong-args form "1 or more"))
+      (1 (byte-compile-constant 1)
+        (byte-compile-form (car args))
+        (byte-compile-out 'byte-quo 0))
+      (t (byte-compile-form (car args))
+        (dolist (elt (cdr args))
+          (byte-compile-form elt)
+          (byte-compile-out 'byte-quo 0))))))
 
 (defun byte-compile-nconc (form)
 
 (defun byte-compile-nconc (form)
-  (let ((len (length form)))
-    (cond ((= len 1)
-          (byte-compile-constant nil))
-         ((= len 2)
-          ;; nconc of one arg is a noop, even if that arg isn't a list.
-          (byte-compile-form (nth 1 form)))
-         (t
-          (byte-compile-form (car (setq form (cdr form))))
-          (while (setq form (cdr form))
-            (byte-compile-form (car form))
-            (byte-compile-out 'byte-nconc 0))))))
+  (let ((args (cdr form)))
+    (case (length args)
+      (0 (byte-compile-constant nil))
+      ;; nconc of one arg is a noop, even if that arg isn't a list.
+      (1 (byte-compile-form (car args)))
+      (t (byte-compile-form (car args))
+        (dolist (elt (cdr args))
+          (byte-compile-form elt)
+          (byte-compile-out 'byte-nconc 0))))))
 
 (defun byte-compile-fset (form)
   ;; warn about forms like (fset 'foo '(lambda () ...))
 
 (defun byte-compile-fset (form)
   ;; warn about forms like (fset 'foo '(lambda () ...))
@@ -3203,19 +3205,18 @@ If FORM is a lambda or a macro, byte-compile it as a function."
   ;; I'm sick of getting mail asking me whether that warning is a problem.
   (let ((fn (nth 2 form))
        body)
   ;; I'm sick of getting mail asking me whether that warning is a problem.
   (let ((fn (nth 2 form))
        body)
-    (if (and (eq (car-safe fn) 'quote)
-            (eq (car-safe (setq fn (nth 1 fn))) 'lambda)
-            (not (eq (car-safe (cdr-safe (nth 1 form))) 'make-byte-code)))
-       (progn
-         (setq body (cdr (cdr fn)))
-         (if (stringp (car body)) (setq body (cdr body)))
-         (if (eq 'interactive (car-safe (car body))) (setq body (cdr body)))
-         (if (and (consp (car body))
-                  (not (eq 'byte-code (car (car body)))))
-             (byte-compile-warn
-      "A quoted lambda form is the second argument of fset.  This is probably
+    (when (and (eq (car-safe fn) 'quote)
+              (eq (car-safe (setq fn (nth 1 fn))) 'lambda)
+              (not (eq (car-safe (cdr-safe (nth 1 form))) 'make-byte-code)))
+      (setq body (cdr (cdr fn)))
+      (if (stringp (car body)) (setq body (cdr body)))
+      (if (eq 'interactive (car-safe (car body))) (setq body (cdr body)))
+      (if (and (consp (car body))
+              (not (eq 'byte-code (car (car body)))))
+         (byte-compile-warn
+    "A quoted lambda form is the second argument of fset.  This is probably
      not what you want, as that lambda cannot be compiled.  Consider using
      not what you want, as that lambda cannot be compiled.  Consider using
-     the syntax (function (lambda (...) ...)) instead.")))))
+     the syntax (function (lambda (...) ...)) instead."))))
   (byte-compile-two-args form))
 
 (defun byte-compile-funarg (form)
   (byte-compile-two-args form))
 
 (defun byte-compile-funarg (form)
@@ -3255,8 +3256,8 @@ If FORM is a lambda or a macro, byte-compile it as a function."
         (while (setq form (cdr form))
           (byte-compile-form (car form))
           (byte-compile-out 'byte-insert 0)
         (while (setq form (cdr form))
           (byte-compile-form (car form))
           (byte-compile-out 'byte-insert 0)
-          (if (cdr form)
-              (byte-compile-discard))))))
+          (when (cdr form)
+            (byte-compile-discard))))))
 
 ;; alas, the old (pre-19.12, and all existing versions of FSFmacs 19)
 ;; byte compiler will generate incorrect code for
 
 ;; alas, the old (pre-19.12, and all existing versions of FSFmacs 19)
 ;; byte compiler will generate incorrect code for
@@ -3290,76 +3291,82 @@ If FORM is a lambda or a macro, byte-compile it as a function."
 (byte-defop-compiler-1 quote-form)
 
 (defun byte-compile-setq (form)
 (byte-defop-compiler-1 quote-form)
 
 (defun byte-compile-setq (form)
-  (let ((args (cdr form)))
-    (if args
-       (while args
-         (byte-compile-form (car (cdr args)))
-         (or for-effect (cdr (cdr args))
+  (let ((args (cdr form)) var val)
+    (if (null args)
+       ;; (setq), with no arguments.
+       (byte-compile-form nil for-effect)
+      (while args
+       (setq var (pop args))
+       (if (null args)
+           ;; Odd number of args?  Let `set' get the error.
+           (byte-compile-form `(set ',var) for-effect)
+         (setq val (pop args))
+         (if (keywordp var)
+             ;; (setq :foo ':foo) compatibility kludge
+             (byte-compile-form `(set ',var ,val) (if args t for-effect))
+           (byte-compile-form val)
+           (unless (or args for-effect)
              (byte-compile-out 'byte-dup 0))
              (byte-compile-out 'byte-dup 0))
-         (byte-compile-variable-ref 'byte-varset (car args))
-         (setq args (cdr (cdr args))))
-      ;; (setq), with no arguments.
-      (byte-compile-form nil for-effect))
-    (setq for-effect nil)))
+           (byte-compile-variable-ref 'byte-varset var))))))
+  (setq for-effect nil))
 
 (defun byte-compile-set (form)
   ;; Compile (set 'foo x) as (setq foo x) for trivially better code and so
   ;; that we get applicable warnings.  Compile everything else (including
   ;; malformed calls) like a normal 2-arg byte-coded function.
 
 (defun byte-compile-set (form)
   ;; Compile (set 'foo x) as (setq foo x) for trivially better code and so
   ;; that we get applicable warnings.  Compile everything else (including
   ;; malformed calls) like a normal 2-arg byte-coded function.
-  (if (or (not (eq (car-safe (nth 1 form)) 'quote))
-         (not (= (length form) 3))
-         (not (= (length (nth 1 form)) 2)))
-      (byte-compile-two-args form)
-    (byte-compile-setq (list 'setq (nth 1 (nth 1 form)) (nth 2 form)))))
+  (let ((symform (nth 1 form))
+       (valform (nth 2 form))
+       sym)
+    (if (and (= (length form) 3)
+            (= (safe-length symform) 2)
+            (eq (car symform) 'quote)
+            (symbolp (setq sym (car (cdr symform))))
+            (not (byte-compile-constant-symbol-p sym)))
+       (byte-compile-setq `(setq ,sym ,valform))
+      (byte-compile-two-args form))))
 
 (defun byte-compile-setq-default (form)
 
 (defun byte-compile-setq-default (form)
-  (let ((rest (cdr form)))
-    ;; emit multiple calls to set-default if necessary
-    (while rest
-      (byte-compile-form
-       (list 'set-default (list 'quote (car rest)) (car (cdr rest)))
-       (not (null (cdr (cdr rest)))))
-      (setq rest (cdr (cdr rest))))))
+  (let ((args (cdr form)))
+    (if (null args)
+       ;; (setq-default), with no arguments.
+       (byte-compile-form nil for-effect)
+      ;; emit multiple calls to `set-default' if necessary
+      (while args
+       (byte-compile-form
+        ;; Odd number of args?  Let `set-default' get the error.
+        `(set-default ',(pop args) ,@(if args (list (pop args)) nil))
+        (if args t for-effect)))))
+  (setq for-effect nil))
+
 
 (defun byte-compile-set-default (form)
 
 (defun byte-compile-set-default (form)
-  (let ((rest (cdr form)))
-    (if (cdr (cdr (cdr form)))
-       ;; emit multiple calls to set-default if necessary; all but last
-       ;; for-effect (this recurses.)
-       (while rest
-         (byte-compile-form
-          (list 'set-default (car rest) (car (cdr rest)))
-          (not (null (cdr rest))))
-         (setq rest (cdr (cdr rest))))
-      ;; else, this is the one-armed version
-      (let ((var (nth 1 form))
-           ;;(val (nth 2 form))
-           )
-       ;; notice calls to set-default/setq-default for variables which
-       ;; have not been declared with defvar/defconst.
-       (if (and (memq 'free-vars byte-compile-warnings)
-                (or (null var)
-                    (and (eq (car-safe var) 'quote)
-                         (= 2 (length var)))))
-           (let ((sym (nth 1 var))
-                 cell)
-             (or (and sym (symbolp sym) (globally-boundp sym))
-                 (and (setq cell (assq sym byte-compile-bound-variables))
-                      (setcdr cell (logior (cdr cell)
-                                           byte-compile-assigned-bit)))
-                 (memq sym byte-compile-free-assignments)
-                 (if (or (not (symbolp sym)) (memq sym '(t nil)))
-                     (progn
-                       (byte-compile-warn
-                        "Attempt to set-globally %s %s"
-                        (if (symbolp sym) "constant" "nonvariable")
-                        (prin1-to-string sym)))
-                   (progn
-                     (byte-compile-warn "assignment to free variable %s" sym)
-                     (setq byte-compile-free-assignments
-                           (cons sym byte-compile-free-assignments)))))))
-       ;; now emit a normal call to set-default (or possibly multiple calls)
-       (byte-compile-normal-call form)))))
+  (let* ((args (cdr form))
+        (nargs (length args))
+        (var (car args)))
+    (when (and (= (safe-length var) 2)
+              (eq (car var) 'quote))
+      (let ((sym (nth 1 var)))
+       (cond
+        ((not (symbolp sym))
+         (byte-compile-warn "Attempt to set-globally non-symbol %s" sym))
+        ((byte-compile-constant-symbol-p sym)
+         (byte-compile-warn "Attempt to set-globally constant symbol %s" sym))
+        ((let ((cell (assq sym byte-compile-bound-variables)))
+           (and cell
+                (setcdr cell (logior (cdr cell) byte-compile-assigned-bit))
+                t)))
+        ;; notice calls to set-default/setq-default for variables which
+        ;; have not been declared with defvar/defconst.
+        ((globally-boundp sym))        ; OK
+        ((not (memq 'free-vars byte-compile-warnings))) ; warnings suppressed?
+        ((memq sym byte-compile-free-assignments)) ; already warned about sym
+        (t
+         (byte-compile-warn "assignment to free variable %s" sym)
+         (push sym byte-compile-free-assignments)))))
+    (if (= nargs 2)
+       ;; now emit a normal call to set-default
+       (byte-compile-normal-call form)
+      (byte-compile-subr-wrong-args form 2))))
 
 
 (defun byte-compile-quote (form)
 
 
 (defun byte-compile-quote (form)
@@ -3408,20 +3415,22 @@ If FORM is a lambda or a macro, byte-compile it as a function."
   (byte-compile-body-do-effect (cdr form)))
 
 (defun byte-compile-prog1 (form)
   (byte-compile-body-do-effect (cdr form)))
 
 (defun byte-compile-prog1 (form)
-  (byte-compile-form-do-effect (car (cdr form)))
-  (byte-compile-body (cdr (cdr form)) t))
+  (setq form (cdr form))
+  (byte-compile-form-do-effect (pop form))
+  (byte-compile-body form t))
 
 (defun byte-compile-prog2 (form)
 
 (defun byte-compile-prog2 (form)
-  (byte-compile-form (nth 1 form) t)
-  (byte-compile-form-do-effect (nth 2 form))
-  (byte-compile-body (cdr (cdr (cdr form))) t))
+  (setq form (cdr form))
+  (byte-compile-form (pop form) t)
+  (byte-compile-form-do-effect (pop form))
+  (byte-compile-body form t))
 
 (defmacro byte-compile-goto-if (cond discard tag)
 
 (defmacro byte-compile-goto-if (cond discard tag)
-  (` (byte-compile-goto
-      (if (, cond)
-         (if (, discard) 'byte-goto-if-not-nil 'byte-goto-if-not-nil-else-pop)
-       (if (, discard) 'byte-goto-if-nil 'byte-goto-if-nil-else-pop))
-      (, tag))))
+  `(byte-compile-goto
+    (if ,cond
+       (if ,discard 'byte-goto-if-not-nil 'byte-goto-if-not-nil-else-pop)
+      (if ,discard 'byte-goto-if-nil 'byte-goto-if-nil-else-pop))
+    ,tag))
 
 (defun byte-compile-if (form)
   (byte-compile-form (car (cdr form)))
 
 (defun byte-compile-if (form)
   (byte-compile-form (car (cdr form)))
@@ -3827,7 +3836,7 @@ If FORM is a lambda or a macro, byte-compile it as a function."
 
 
 (defun byte-compile-out-tag (tag)
 
 
 (defun byte-compile-out-tag (tag)
-  (setq byte-compile-output (cons tag byte-compile-output))
+  (push tag byte-compile-output)
   (if (cdr (cdr tag))
       (progn
        ;; ## remove this someday
   (if (cdr (cdr tag))
       (progn
        ;; ## remove this someday
@@ -3838,7 +3847,7 @@ If FORM is a lambda or a macro, byte-compile it as a function."
     (setcdr (cdr tag) byte-compile-depth)))
 
 (defun byte-compile-goto (opcode tag)
     (setcdr (cdr tag) byte-compile-depth)))
 
 (defun byte-compile-goto (opcode tag)
-  (setq byte-compile-output (cons (cons opcode tag) byte-compile-output))
+  (push (cons opcode tag) byte-compile-output)
   (setcdr (cdr tag) (if (memq opcode byte-goto-always-pop-ops)
                        (1- byte-compile-depth)
                      byte-compile-depth))
   (setcdr (cdr tag) (if (memq opcode byte-goto-always-pop-ops)
                        (1- byte-compile-depth)
                      byte-compile-depth))
@@ -3846,20 +3855,21 @@ If FORM is a lambda or a macro, byte-compile it as a function."
                                (1- byte-compile-depth))))
 
 (defun byte-compile-out (opcode offset)
                                (1- byte-compile-depth))))
 
 (defun byte-compile-out (opcode offset)
-  (setq byte-compile-output (cons (cons opcode offset) byte-compile-output))
-  (cond ((eq opcode 'byte-call)
-        (setq byte-compile-depth (- byte-compile-depth offset)))
-       ((eq opcode 'byte-return)
-        ;; This is actually an unnecessary case, because there should be
-        ;; no more opcodes behind byte-return.
-        (setq byte-compile-depth nil))
-       (t
-        (setq byte-compile-depth (+ byte-compile-depth
-                                    (or (aref byte-stack+-info
-                                              (symbol-value opcode))
-                                        (- (1- offset))))
-              byte-compile-maxdepth (max byte-compile-depth
-                                         byte-compile-maxdepth))))
+  (push (cons opcode offset) byte-compile-output)
+  (case opcode
+    (byte-call
+     (setq byte-compile-depth (- byte-compile-depth offset)))
+    (byte-return
+     ;; This is actually an unnecessary case, because there should be
+     ;; no more opcodes behind byte-return.
+     (setq byte-compile-depth nil))
+    (t
+     (setq byte-compile-depth (+ byte-compile-depth
+                                (or (aref byte-stack+-info
+                                          (symbol-value opcode))
+                                    (- (1- offset))))
+          byte-compile-maxdepth (max byte-compile-depth
+                                     byte-compile-maxdepth))))
   ;;(if (< byte-compile-depth 0) (error "Compiler error: stack underflow"))
   )
 
   ;;(if (< byte-compile-depth 0) (error "Compiler error: stack underflow"))
   )
 
@@ -3873,18 +3883,15 @@ If FORM is a lambda or a macro, byte-compile it as a function."
        (or (memq byte-compile-current-form (nth 1 entry)) ;callers
            (setcar (cdr entry)
                    (cons byte-compile-current-form (nth 1 entry))))
        (or (memq byte-compile-current-form (nth 1 entry)) ;callers
            (setcar (cdr entry)
                    (cons byte-compile-current-form (nth 1 entry))))
-      (setq byte-compile-call-tree
-           (cons (list (car form) (list byte-compile-current-form) nil)
-                 byte-compile-call-tree)))
+      (push (list (car form) (list byte-compile-current-form) nil)
+           byte-compile-call-tree))
     ;; annotate the current function
     (if (setq entry (assq byte-compile-current-form byte-compile-call-tree))
        (or (memq (car form) (nth 2 entry)) ;called
            (setcar (cdr (cdr entry))
                    (cons (car form) (nth 2 entry))))
     ;; annotate the current function
     (if (setq entry (assq byte-compile-current-form byte-compile-call-tree))
        (or (memq (car form) (nth 2 entry)) ;called
            (setcar (cdr (cdr entry))
                    (cons (car form) (nth 2 entry))))
-      (setq byte-compile-call-tree
-           (cons (list byte-compile-current-form nil (list (car form)))
-                 byte-compile-call-tree)))
-    ))
+      (push (list byte-compile-current-form nil (list (car form)))
+           byte-compile-call-tree))))
 
 ;; Renamed from byte-compile-report-call-tree
 ;; to avoid interfering with completion of byte-compile-file.
 
 ;; Renamed from byte-compile-report-call-tree
 ;; to avoid interfering with completion of byte-compile-file.
@@ -3923,19 +3930,19 @@ invoked interactively."
              (sort byte-compile-call-tree
                    (cond
                     ((eq byte-compile-call-tree-sort 'callers)
              (sort byte-compile-call-tree
                    (cond
                     ((eq byte-compile-call-tree-sort 'callers)
-                     (function (lambda (x y) (< (length (nth 1 x))
-                                                (length (nth 1 y))))))
+                     #'(lambda (x y) (< (length (nth 1 x))
+                                        (length (nth 1 y)))))
                     ((eq byte-compile-call-tree-sort 'calls)
                     ((eq byte-compile-call-tree-sort 'calls)
-                     (function (lambda (x y) (< (length (nth 2 x))
-                                                (length (nth 2 y))))))
+                     #'(lambda (x y) (< (length (nth 2 x))
+                                        (length (nth 2 y)))))
                     ((eq byte-compile-call-tree-sort 'calls+callers)
                     ((eq byte-compile-call-tree-sort 'calls+callers)
-                     (function (lambda (x y) (< (+ (length (nth 1 x))
-                                                   (length (nth 2 x)))
-                                                (+ (length (nth 1 y))
-                                                   (length (nth 2 y)))))))
+                     #'(lambda (x y) (< (+ (length (nth 1 x))
+                                           (length (nth 2 x)))
+                                        (+ (length (nth 1 y))
+                                           (length (nth 2 y))))))
                     ((eq byte-compile-call-tree-sort 'name)
                     ((eq byte-compile-call-tree-sort 'name)
-                     (function (lambda (x y) (string< (car x)
-                                                      (car y)))))
+                     #'(lambda (x y) (string< (car x)
+                                              (car y))))
                     (t (error
                      "`byte-compile-call-tree-sort': `%s' - unknown sort mode"
                               byte-compile-call-tree-sort))))))
                     (t (error
                      "`byte-compile-call-tree-sort': `%s' - unknown sort mode"
                               byte-compile-call-tree-sort))))))
@@ -4031,8 +4038,7 @@ For example, invoke \"xemacs -batch -f batch-byte-compile $emacs/ ~/*.el\""
   (defvar command-line-args-left)      ;Avoid 'free variable' warning
   (if (not noninteractive)
       (error "`batch-byte-compile' is to be used only with -batch"))
   (defvar command-line-args-left)      ;Avoid 'free variable' warning
   (if (not noninteractive)
       (error "`batch-byte-compile' is to be used only with -batch"))
-  (let ((error nil)
-       (debug-issue-ebola-notices 0)) ; Hack -slb
+  (let ((error nil))
     (while command-line-args-left
       (if (file-directory-p (expand-file-name (car command-line-args-left)))
          (let ((files (directory-files (car command-line-args-left)))
     (while command-line-args-left
       (if (file-directory-p (expand-file-name (car command-line-args-left)))
          (let ((files (directory-files (car command-line-args-left)))
@@ -4065,7 +4071,7 @@ For example, invoke \"xemacs -batch -f batch-byte-compile $emacs/ ~/*.el\""
      (if (fboundp 'display-error) ; XEmacs 19.8+
         (display-error err nil)
        (princ (or (get (car err) 'error-message) (car err)))
      (if (fboundp 'display-error) ; XEmacs 19.8+
         (display-error err nil)
        (princ (or (get (car err) 'error-message) (car err)))
-       (mapcar '(lambda (x) (princ " ") (prin1 x)) (cdr err)))
+       (mapcar #'(lambda (x) (princ " ") (prin1 x)) (cdr err)))
      (princ "\n")
      nil)))
 
      (princ "\n")
      nil)))
 
@@ -4086,8 +4092,7 @@ For example, invoke `xemacs -batch -f batch-byte-recompile-directory .'."
       (error "batch-byte-recompile-directory is to be used only with -batch"))
   (or command-line-args-left
       (setq command-line-args-left '(".")))
       (error "batch-byte-recompile-directory is to be used only with -batch"))
   (or command-line-args-left
       (setq command-line-args-left '(".")))
-  (let ((byte-recompile-directory-ignore-errors-p t)
-       (debug-issue-ebola-notices 0))
+  (let ((byte-recompile-directory-ignore-errors-p t))
     (while command-line-args-left
       (byte-recompile-directory (car command-line-args-left))
       (setq command-line-args-left (cdr command-line-args-left))))
     (while command-line-args-left
       (byte-recompile-directory (car command-line-args-left))
       (setq command-line-args-left (cdr command-line-args-left))))
@@ -4140,10 +4145,10 @@ For example, invoke `xemacs -batch -f batch-byte-recompile-directory .'."
      (assq 'byte-code (symbol-function 'byte-compile-form))
      (let ((byte-optimize nil) ; do it fast
           (byte-compile-warnings nil))
      (assq 'byte-code (symbol-function 'byte-compile-form))
      (let ((byte-optimize nil) ; do it fast
           (byte-compile-warnings nil))
-       (mapcar '(lambda (x)
-                 (or noninteractive (message "compiling %s..." x))
-                 (byte-compile x)
-                 (or noninteractive (message "compiling %s...done" x)))
+       (mapcar #'(lambda (x)
+                  (or noninteractive (message "compiling %s..." x))
+                  (byte-compile x)
+                  (or noninteractive (message "compiling %s...done" x)))
               '(byte-compile-normal-call
                 byte-compile-form
                 byte-compile-body
               '(byte-compile-normal-call
                 byte-compile-form
                 byte-compile-body
index 8e9c7fc..104e882 100644 (file)
@@ -40,8 +40,8 @@
   "Where the package lisp sources live.")
 
 ;; (makunbound 'caller-table)
   "Where the package lisp sources live.")
 
 ;; (makunbound 'caller-table)
-(defconst caller-table (make-hashtable 256 #'equal)
-  "Hashtable keyed on the symbols being required.  Each element will
+(defconst caller-table (make-hash-table :test 'equal)
+  "Hash table keyed on the symbols being required.  Each element will
   be a list of file-names of programs that depend on them.")
 
 ;;./apel/atype.el:(require 'emu)
   be a list of file-names of programs that depend on them.")
 
 ;;./apel/atype.el:(require 'emu)
@@ -91,7 +91,8 @@
                                              (point))
                                    cmd-out))
             (lst (gethash key caller-table)))
                                              (point))
                                    cmd-out))
             (lst (gethash key caller-table)))
-       (puthash key (add-to-list 'lst file-name) caller-table))
+       (unless (member file-name lst)
+         (puthash key (cons file-name lst) caller-table)))
       (forward-line 1)
       (sit-for 0))
     (switch-to-buffer rpt)
       (forward-line 1)
       (sit-for 0))
     (switch-to-buffer rpt)
index 3aa0a82..9596ff7 100644 (file)
@@ -39,8 +39,8 @@
   (condition-case nil
       (package-require 'tooltalk 1.0)
     (t (progn
   (condition-case nil
       (package-require 'tooltalk 1.0)
     (t (progn
-        (setq build-error 1)
-        (message "Error:  This XEmacs is built with tooltalk support but")
+        ;; (setq build-error 1)
+        (message "Warning:  This XEmacs is built with tooltalk support but")
         (message "does not have a tooltalk package installed.  Without the")
         (message "tooltalk lisp package, Tooltalk support is broken.")))))
 
         (message "does not have a tooltalk package installed.  Without the")
         (message "tooltalk lisp package, Tooltalk support is broken.")))))
 
@@ -48,8 +48,8 @@
   (condition-case nil
       (package-require 'Sun 1.0)
     (t (progn
   (condition-case nil
       (package-require 'Sun 1.0)
     (t (progn
-        (setq build-error 1)
-        (message "Error:  This XEmacs is built with sparcworks support but")
+        ;; (setq build-error 1)
+        (message "Warning:  This XEmacs is built with sparcworks support but")
         (message "does not have the Sun package installed.  Without the Sun")
         (message "lisp package, Sparcworks support will be broken.")))))
 
         (message "does not have the Sun package installed.  Without the Sun")
         (message "lisp package, Sparcworks support will be broken.")))))
 
index 0d469a7..8c97ea0 100644 (file)
@@ -48,6 +48,8 @@
 
 
 ;;; Code:
 
 
 ;;; Code:
+(eval-when-compile
+  (require 'obsolete))
 
 (or (memq 'cl-19 features)
     (error "Tried to load `cl-extra' before `cl'!"))
 
 (or (memq 'cl-19 features)
     (error "Tried to load `cl-extra' before `cl'!"))
@@ -74,6 +76,8 @@ TYPE is a Common Lisp type specifier."
        ((eq type 'array) (if (arrayp x) x (vconcat x)))
        ((and (eq type 'character) (stringp x) (= (length x) 1)) (aref x 0))
        ((and (eq type 'character) (symbolp x)) (coerce (symbol-name x) type))
        ((eq type 'array) (if (arrayp x) x (vconcat x)))
        ((and (eq type 'character) (stringp x) (= (length x) 1)) (aref x 0))
        ((and (eq type 'character) (symbolp x)) (coerce (symbol-name x) type))
+       ((and (eq type 'character) (numberp x) (char-or-char-int-p x)
+             (int-char x)))
        ((eq type 'float) (float x))
        ((eq type 'bit-vector) (if (bit-vector-p x) x
                                 (apply 'bit-vector (append x nil))))
        ((eq type 'float) (float x))
        ((eq type 'bit-vector) (if (bit-vector-p x) x
                                 (apply 'bit-vector (append x nil))))
@@ -106,7 +110,8 @@ strings case-insensitively."
         (and (numberp y) (= x y)))
        ((consp x)
         ;; XEmacs change
         (and (numberp y) (= x y)))
        ((consp x)
         ;; XEmacs change
-        (while (and (consp x) (consp y) (equalp (cl-pop x) (cl-pop y))))
+        (while (and (consp x) (consp y) (equalp (car x) (car y)))
+          (cl-pop x) (cl-pop y))
         (and (not (consp x)) (equalp x y)))
        ((vectorp x)
         (and (vectorp y) (= (length x) (length y))
         (and (not (consp x)) (equalp x y)))
        ((vectorp x)
         (and (vectorp y) (= (length x) (length y))
@@ -468,7 +473,7 @@ Optional second arg STATE is a random-state object."
   ;; Inspired by "ran3" from Numerical Recipes.  Additive congruential method.
   (let ((vec (aref state 3)))
     (if (integerp vec)
   ;; Inspired by "ran3" from Numerical Recipes.  Additive congruential method.
   (let ((vec (aref state 3)))
     (if (integerp vec)
-       (let ((i 0) (j (- 1357335 (% (abs vec) 1357333))) (k 1) ii)
+       (let ((i 0) (j (- 1357335 (% (abs vec) 1357333))) (k 1))
          (aset state 3 (setq vec (make-vector 55 nil)))
          (aset vec 0 j)
          (while (> (setq i (% (+ i 21) 55)) 0)
          (aset state 3 (setq vec (make-vector 55 nil)))
          (aset vec 0 j)
          (while (> (setq i (% (+ i 21) 55)) 0)
@@ -502,7 +507,7 @@ If STATE is t, return a new state object seeded from the time of day."
 ;; Implementation limits.
 
 (defun cl-finite-do (func a b)
 ;; Implementation limits.
 
 (defun cl-finite-do (func a b)
-  (condition-case err
+  (condition-case nil
       (let ((res (funcall func a b)))   ; check for IEEE infinity
        (and (numberp res) (/= res (/ res 2)) res))
     (arith-error nil)))
       (let ((res (funcall func a b)))   ; check for IEEE infinity
        (and (numberp res) (/= res (/ res 2)) res))
     (arith-error nil)))
@@ -531,14 +536,14 @@ If STATE is t, return a new state object seeded from the time of day."
              most-negative-float (- x))
        ;; Divide down until mantissa starts rounding.
        (setq x (/ x z) y (/ 16 z) x (* x y))
              most-negative-float (- x))
        ;; Divide down until mantissa starts rounding.
        (setq x (/ x z) y (/ 16 z) x (* x y))
-       (while (condition-case err (and (= x (* (/ x 2) 2)) (> (/ y 2) 0))
+       (while (condition-case nil (and (= x (* (/ x 2) 2)) (> (/ y 2) 0))
                 (arith-error nil))
          (setq x (/ x 2) y (/ y 2)))
        (setq least-positive-normalized-float y
              least-negative-normalized-float (- y))
        ;; Divide down until value underflows to zero.
        (setq x (/ 1 z) y x)
                 (arith-error nil))
          (setq x (/ x 2) y (/ y 2)))
        (setq least-positive-normalized-float y
              least-negative-normalized-float (- y))
        ;; Divide down until value underflows to zero.
        (setq x (/ 1 z) y x)
-       (while (condition-case err (> (/ x 2) 0) (arith-error nil))
+       (while (condition-case nil (> (/ x 2) 0) (arith-error nil))
          (setq x (/ x 2)))
        (setq least-positive-float x
              least-negative-float (- x))
          (setq x (/ x 2)))
        (setq least-positive-float x
              least-negative-float (- x))
@@ -581,11 +586,11 @@ If STATE is t, return a new state object seeded from the time of day."
 
 (defun concatenate (type &rest seqs)
   "Concatenate, into a sequence of type TYPE, the argument SEQUENCES."
 
 (defun concatenate (type &rest seqs)
   "Concatenate, into a sequence of type TYPE, the argument SEQUENCES."
-  (cond ((eq type 'vector) (apply 'vconcat seqs))
-       ((eq type 'string) (apply 'concat seqs))
-       ((eq type 'list) (apply 'append (append seqs '(nil))))
-       (t (error "Not a sequence type name: %s" type))))
-
+  (case type
+    (vector (apply 'vconcat seqs))
+    (string (apply 'concat seqs))
+    (list   (apply 'append (append seqs '(nil))))
+    (t (error "Not a sequence type name: %s" type))))
 
 ;;; List functions.
 
 
 ;;; List functions.
 
@@ -666,142 +671,43 @@ PROPLIST is a list of the sort returned by `symbol-plist'."
 
 ;;; Hash tables.
 
 
 ;;; Hash tables.
 
-(defun make-hash-table (&rest cl-keys)
-  "Make an empty Common Lisp-style hash-table.
-If :test is `eq', `eql', or `equal', this can use XEmacs built-in hash-tables.
-In Emacs 19, or with a different test, this internally uses a-lists.
-Keywords supported:  :test :size
-The Common Lisp keywords :rehash-size and :rehash-threshold are ignored."
-  (let ((cl-test (or (car (cdr (memq ':test cl-keys))) 'eql))
-       (cl-size (or (car (cdr (memq ':size cl-keys))) 20)))
-    ;; XEmacs change
-    (if (and (memq cl-test '(eq eql equal)) (fboundp 'make-hashtable))
-       (funcall 'make-hashtable cl-size cl-test)
-      (list 'cl-hash-table-tag cl-test
-           (if (> cl-size 1) (make-vector cl-size 0)
-             (let ((sym (make-symbol "--hashsym--"))) (set sym nil) sym))
-           0))))
-
-(defvar cl-lucid-hash-tag
-  (if (and (fboundp 'make-hashtable) (vectorp (make-hashtable 1)))
-      (aref (make-hashtable 1) 0) (make-symbol "--cl-hash-tag--")))
-
-(defun hash-table-p (x)
-  "Return t if OBJECT is a hash table."
-  (or (and (fboundp 'hashtablep) (funcall 'hashtablep x))
-      (eq (car-safe x) 'cl-hash-table-tag)
-      (and (vectorp x) (= (length x) 4) (eq (aref x 0) cl-lucid-hash-tag))))
-
-(defun cl-not-hash-table (x &optional y &rest z)
-  (signal 'wrong-type-argument (list 'hash-table-p (or y x))))
-
-(defun cl-hash-lookup (key table)
-  (or (eq (car-safe table) 'cl-hash-table-tag) (cl-not-hash-table table))
-  (let* ((array (nth 2 table)) (test (car (cdr table))) (str key) sym)
-    (if (symbolp array) (setq str nil sym (symbol-value array))
-      (while (or (consp str) (and (vectorp str) (> (length str) 0)))
-       (setq str (elt str 0)))
-      (cond ((stringp str) (if (eq test 'equalp) (setq str (downcase str))))
-           ((symbolp str) (setq str (symbol-name str)))
-           ((and (numberp str) (> str -8000000) (< str 8000000))
-            (or (integerp str) (setq str (truncate str)))
-            (setq str (aref ["0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "10"
-                             "11" "12" "13" "14" "15"] (logand str 15))))
-           (t (setq str "*")))
-      (setq sym (symbol-value (intern-soft str array))))
-    (list (and sym (cond ((or (eq test 'eq)
-                             (and (eq test 'eql) (not (numberp key))))
-                         (assq key sym))
-                        ((memq test '(eql equal)) (assoc key sym))
-                        (t (assoc* key sym ':test test))))
-         sym str)))
-
-(defvar cl-builtin-gethash
-  (if (and (fboundp 'gethash) (subrp (symbol-function 'gethash)))
-      (symbol-function 'gethash) 'cl-not-hash-table))
-(defvar cl-builtin-remhash
-  (if (and (fboundp 'remhash) (subrp (symbol-function 'remhash)))
-      (symbol-function 'remhash) 'cl-not-hash-table))
-(defvar cl-builtin-clrhash
-  (if (and (fboundp 'clrhash) (subrp (symbol-function 'clrhash)))
-      (symbol-function 'clrhash) 'cl-not-hash-table))
-(defvar cl-builtin-maphash
-  (if (and (fboundp 'maphash) (subrp (symbol-function 'maphash)))
-      (symbol-function 'maphash) 'cl-not-hash-table))
-
-(defun cl-gethash (key table &optional def)
-  "Look up KEY in HASH-TABLE; return corresponding value, or DEFAULT."
-  (if (consp table)
-      (let ((found (cl-hash-lookup key table)))
-       (if (car found) (cdr (car found)) def))
-    (funcall cl-builtin-gethash key table def)))
-(defalias 'gethash 'cl-gethash)
-
-(defun cl-puthash (key val table)
-  (if (consp table)
-      (let ((found (cl-hash-lookup key table)))
-       (if (car found) (setcdr (car found) val)
-         (if (nth 2 found)
-             (progn
-               (if (> (nth 3 table) (* (length (nth 2 table)) 3))
-                   (let ((new-table (make-vector (nth 3 table) 0)))
-                     (mapatoms (function
-                                (lambda (sym)
-                                  (set (intern (symbol-name sym) new-table)
-                                       (symbol-value sym))))
-                               (nth 2 table))
-                     (setcar (cdr (cdr table)) new-table)))
-               (set (intern (nth 2 found) (nth 2 table))
-                    (cons (cons key val) (nth 1 found))))
-           (set (nth 2 table) (cons (cons key val) (nth 1 found))))
-         (setcar (cdr (cdr (cdr table))) (1+ (nth 3 table)))))
-    (funcall 'puthash key val table)) val)
-
-(defun cl-remhash (key table)
-  "Remove KEY from HASH-TABLE."
-  (if (consp table)
-      (let ((found (cl-hash-lookup key table)))
-       (and (car found)
-            (let ((del (delq (car found) (nth 1 found))))
-              (setcar (cdr (cdr (cdr table))) (1- (nth 3 table)))
-              (if (nth 2 found) (set (intern (nth 2 found) (nth 2 table)) del)
-                (set (nth 2 table) del)) t)))
-    (prog1 (not (eq (funcall cl-builtin-gethash key table '--cl--) '--cl--))
-      (funcall cl-builtin-remhash key table))))
-(defalias 'remhash 'cl-remhash)
-
-(defun cl-clrhash (table)
-  "Clear HASH-TABLE."
-  (if (consp table)
-      (progn
-       (or (hash-table-p table) (cl-not-hash-table table))
-       (if (symbolp (nth 2 table)) (set (nth 2 table) nil)
-         (setcar (cdr (cdr table)) (make-vector (length (nth 2 table)) 0)))
-       (setcar (cdr (cdr (cdr table))) 0))
-    (funcall cl-builtin-clrhash table))
-  nil)
-(defalias 'clrhash 'cl-clrhash)
-
-(defun cl-maphash (cl-func cl-table)
-  "Call FUNCTION on keys and values from HASH-TABLE."
-  (or (hash-table-p cl-table) (cl-not-hash-table cl-table))
-  (if (consp cl-table)
-      (mapatoms (function (lambda (cl-x)
-                           (setq cl-x (symbol-value cl-x))
-                           (while cl-x
-                             (funcall cl-func (car (car cl-x))
-                                      (cdr (car cl-x)))
-                             (setq cl-x (cdr cl-x)))))
-               (if (symbolp (nth 2 cl-table))
-                   (vector (nth 2 cl-table)) (nth 2 cl-table)))
-    (funcall cl-builtin-maphash cl-func cl-table)))
-(defalias 'maphash 'cl-maphash)
-
-(defun hash-table-count (table)
-  "Return the number of entries in HASH-TABLE."
-  (or (hash-table-p table) (cl-not-hash-table table))
-  (if (consp table) (nth 3 table) (funcall 'hashtable-fullness table)))
-
+;; The `regular' Common Lisp hash-table stuff has been moved into C.
+;; Only backward compatibility stuff remains here.
+(defun make-hashtable (size &optional test)
+  (make-hash-table :size size :test test :type 'non-weak))
+(defun make-weak-hashtable (size &optional test)
+  (make-hash-table :size size :test test :type 'weak))
+(defun make-key-weak-hashtable (size &optional test)
+  (make-hash-table :size size :test test :type 'key-weak))
+(defun make-value-weak-hashtable (size &optional test)
+  (make-hash-table :size size :test test :type 'value-weak))
+
+(define-obsolete-function-alias 'hashtablep 'hash-table-p)
+(define-obsolete-function-alias 'hashtable-fullness 'hash-table-count)
+(define-obsolete-function-alias 'hashtable-test-function 'hash-table-test)
+(define-obsolete-function-alias 'hashtable-type 'hash-table-type)
+(define-obsolete-function-alias 'hashtable-size 'hash-table-size)
+(define-obsolete-function-alias 'copy-hashtable 'copy-hash-table)
+
+(make-obsolete 'make-hashtable            'make-hash-table)
+(make-obsolete 'make-weak-hashtable       'make-hash-table)
+(make-obsolete 'make-key-weak-hashtable   'make-hash-table)
+(make-obsolete 'make-value-weak-hashtable 'make-hash-table)
+
+(when (fboundp 'x-keysym-hash-table)
+  (make-obsolete 'x-keysym-hashtable 'x-keysym-hash-table))
+
+;; Compatibility stuff for old kludgy cl.el hash table implementation
+(defvar cl-builtin-gethash (symbol-function 'gethash))
+(defvar cl-builtin-remhash (symbol-function 'remhash))
+(defvar cl-builtin-clrhash (symbol-function 'clrhash))
+(defvar cl-builtin-maphash (symbol-function 'maphash))
+
+(defalias 'cl-gethash 'gethash)
+(defalias 'cl-puthash 'puthash)
+(defalias 'cl-remhash 'remhash)
+(defalias 'cl-clrhash 'clrhash)
+(defalias 'cl-maphash 'maphash)
 
 ;;; Some debugging aids.
 
 
 ;;; Some debugging aids.
 
index e08a165..db30575 100644 (file)
@@ -78,9 +78,9 @@
    (or (fboundp 'defalias) (fset 'defalias 'fset))
    (or (fboundp 'cl-transform-function-property)
        (defalias 'cl-transform-function-property
    (or (fboundp 'defalias) (fset 'defalias 'fset))
    (or (fboundp 'cl-transform-function-property)
        (defalias 'cl-transform-function-property
-        (function (lambda (n p f)
-                    (list 'put (list 'quote n) (list 'quote p)
-                          (list 'function (cons 'lambda f)))))))
+        #'(lambda (n p f)
+            (list 'put (list 'quote n) (list 'quote p)
+                  (list 'function (cons 'lambda f))))))
    (car (or features (setq features (list 'cl-kludge))))))
 
 
    (car (or features (setq features (list 'cl-kludge))))))
 
 
   (setq cl-old-bc-file-form (symbol-function 'byte-compile-file-form))
   (or (fboundp 'byte-compile-flush-pending)   ; Emacs 19 compiler?
       (defalias 'byte-compile-file-form
   (setq cl-old-bc-file-form (symbol-function 'byte-compile-file-form))
   (or (fboundp 'byte-compile-flush-pending)   ; Emacs 19 compiler?
       (defalias 'byte-compile-file-form
-       (function
-        (lambda (form)
-          (setq form (macroexpand form byte-compile-macro-environment))
-          (if (eq (car-safe form) 'progn)
-              (cons 'progn (mapcar 'byte-compile-file-form (cdr form)))
-            (funcall cl-old-bc-file-form form))))))
+       #'(lambda (form)
+           (setq form (macroexpand form byte-compile-macro-environment))
+           (if (eq (car-safe form) 'progn)
+               (cons 'progn (mapcar 'byte-compile-file-form (cdr form)))
+             (funcall cl-old-bc-file-form form)))))
   (put 'eql 'byte-compile 'cl-byte-compile-compiler-macro)
   (run-hooks 'cl-hack-bytecomp-hook))
 
   (put 'eql 'byte-compile 'cl-byte-compile-compiler-macro)
   (run-hooks 'cl-hack-bytecomp-hook))
 
@@ -455,27 +454,26 @@ Key values are compared by `eql'."
         (body (cons
                'cond
                (mapcar
         (body (cons
                'cond
                (mapcar
-                (function
-                 (lambda (c)
-                   (cons (cond ((memq (car c) '(t otherwise))
-                                (or (eq c last-clause)
-                                    (error
-                                     "`%s' is allowed only as the last case clause"
-                                     (car c)))
-                                t)
-                               ((eq (car c) 'ecase-error-flag)
-                                (list 'error "ecase failed: %s, %s"
-                                      temp (list 'quote (reverse head-list))))
-                               ((listp (car c))
-                                (setq head-list (append (car c) head-list))
-                                (list 'member* temp (list 'quote (car c))))
-                               (t
-                                (if (memq (car c) head-list)
-                                    (error "Duplicate key in case: %s"
-                                           (car c)))
-                                (cl-push (car c) head-list)
-                                (list 'eql temp (list 'quote (car c)))))
-                         (or (cdr c) '(nil)))))
+                #'(lambda (c)
+                    (cons (cond ((memq (car c) '(t otherwise))
+                                 (or (eq c last-clause)
+                                     (error
+                                      "`%s' is allowed only as the last case clause"
+                                      (car c)))
+                                 t)
+                                ((eq (car c) 'ecase-error-flag)
+                                 (list 'error "ecase failed: %s, %s"
+                                       temp (list 'quote (reverse head-list))))
+                                ((listp (car c))
+                                 (setq head-list (append (car c) head-list))
+                                 (list 'member* temp (list 'quote (car c))))
+                                (t
+                                 (if (memq (car c) head-list)
+                                     (error "Duplicate key in case: %s"
+                                            (car c)))
+                                 (cl-push (car c) head-list)
+                                 (list 'eql temp (list 'quote (car c)))))
+                          (or (cdr c) '(nil))))
                 clauses))))
     (if (eq temp expr) body
       (list 'let (list (list temp expr)) body))))
                 clauses))))
     (if (eq temp expr) body
       (list 'let (list (list temp expr)) body))))
@@ -507,16 +505,15 @@ final clause, and matches if no other keys match."
         (body (cons
                'cond
                (mapcar
         (body (cons
                'cond
                (mapcar
-                (function
-                 (lambda (c)
-                   (cons (cond ((eq (car c) 'otherwise) t)
-                               ((eq (car c) 'ecase-error-flag)
-                                (list 'error "etypecase failed: %s, %s"
-                                      temp (list 'quote (reverse type-list))))
-                               (t
-                                (cl-push (car c) type-list)
-                                (cl-make-type-test temp (car c))))
-                         (or (cdr c) '(nil)))))
+                #'(lambda (c)
+                    (cons (cond ((eq (car c) 'otherwise) t)
+                                ((eq (car c) 'ecase-error-flag)
+                                 (list 'error "etypecase failed: %s, %s"
+                                       temp (list 'quote (reverse type-list))))
+                                (t
+                                 (cl-push (car c) type-list)
+                                 (cl-make-type-test temp (car c))))
+                          (or (cdr c) '(nil))))
                 clauses))))
     (if (eq temp expr) body
       (list 'let (list (list temp expr)) body))))
                 clauses))))
     (if (eq temp expr) body
       (list 'let (list (list temp expr)) body))))
@@ -575,7 +572,7 @@ This is equivalent to `(return-from nil RESULT)'."
 ;;;###autoload
 (defmacro return-from (name &optional res)
   "(return-from NAME [RESULT]): return from the block named NAME.
 ;;;###autoload
 (defmacro return-from (name &optional res)
   "(return-from NAME [RESULT]): return from the block named NAME.
-This jump out to the innermost enclosing `(block NAME ...)' form,
+This jumps out to the innermost enclosing `(block NAME ...)' form,
 returning RESULT from that form (or nil if RESULT is omitted).
 This is compatible with Common Lisp, but note that `defun' and
 `defmacro' do not create implicit blocks as they do in Common Lisp."
 returning RESULT from that form (or nil if RESULT is omitted).
 This is compatible with Common Lisp, but note that `defun' and
 `defmacro' do not create implicit blocks as they do in Common Lisp."
@@ -1165,16 +1162,14 @@ Format is: (do* ((VAR INIT [STEP])...) (END-TEST [RESULT...]) BODY...)"
 (defun cl-expand-do-loop (steps endtest body star)
   (list 'block nil
        (list* (if star 'let* 'let)
 (defun cl-expand-do-loop (steps endtest body star)
   (list 'block nil
        (list* (if star 'let* 'let)
-              (mapcar (function (lambda (c)
-                                  (if (consp c) (list (car c) (nth 1 c)) c)))
+              (mapcar #'(lambda (c) (if (consp c) (list (car c) (nth 1 c)) c))
                       steps)
               (list* 'while (list 'not (car endtest))
                      (append body
                              (let ((sets (mapcar
                       steps)
               (list* 'while (list 'not (car endtest))
                      (append body
                              (let ((sets (mapcar
-                                          (function
-                                           (lambda (c)
-                                             (and (consp c) (cdr (cdr c))
-                                                  (list (car c) (nth 2 c)))))
+                                          #'(lambda (c)
+                                              (and (consp c) (cdr (cdr c))
+                                                   (list (car c) (nth 2 c))))
                                           steps)))
                                (setq sets (delq nil sets))
                                (and sets
                                           steps)))
                                (setq sets (delq nil sets))
                                (and sets
@@ -1264,20 +1259,19 @@ function definitions in place, then the definitions are undone (the FUNCs
 go back to their previous definitions, or lack thereof)."
   (list* 'letf*
         (mapcar
 go back to their previous definitions, or lack thereof)."
   (list* 'letf*
         (mapcar
-         (function
-          (lambda (x)
-            (if (or (and (fboundp (car x))
-                         (eq (car-safe (symbol-function (car x))) 'macro))
-                    (cdr (assq (car x) cl-macro-environment)))
-                (error "Use `labels', not `flet', to rebind macro names"))
-            (let ((func (list 'function*
-                              (list 'lambda (cadr x)
-                                    (list* 'block (car x) (cddr x))))))
-              (if (and (cl-compiling-file)
-                       (boundp 'byte-compile-function-environment))
-                  (cl-push (cons (car x) (eval func))
-                           byte-compile-function-environment))
-              (list (list 'symbol-function (list 'quote (car x))) func))))
+         #'(lambda (x)
+             (if (or (and (fboundp (car x))
+                          (eq (car-safe (symbol-function (car x))) 'macro))
+                     (cdr (assq (car x) cl-macro-environment)))
+                 (error "Use `labels', not `flet', to rebind macro names"))
+             (let ((func (list 'function*
+                               (list 'lambda (cadr x)
+                                     (list* 'block (car x) (cddr x))))))
+               (if (and (cl-compiling-file)
+                        (boundp 'byte-compile-function-environment))
+                   (cl-push (cons (car x) (eval func))
+                            byte-compile-function-environment))
+               (list (list 'symbol-function (list 'quote (car x))) func)))
          bindings)
         body))
 
          bindings)
         body))
 
@@ -1285,7 +1279,7 @@ go back to their previous definitions, or lack thereof)."
 (defmacro labels (bindings &rest body)
   "(labels ((FUNC ARGLIST BODY...) ...) FORM...): make temporary func bindings.
 This is like `flet', except the bindings are lexical instead of dynamic.
 (defmacro labels (bindings &rest body)
   "(labels ((FUNC ARGLIST BODY...) ...) FORM...): make temporary func bindings.
 This is like `flet', except the bindings are lexical instead of dynamic.
-Unlike `flet', this macro is fully complaint with the Common Lisp standard."
+Unlike `flet', this macro is fully compliant with the Common Lisp standard."
   (let ((vars nil) (sets nil) (cl-macro-environment cl-macro-environment))
     (while bindings
       (let ((var (gensym)))
   (let ((vars nil) (sets nil) (cl-macro-environment cl-macro-environment))
     (while bindings
       (let ((var (gensym)))
@@ -1337,39 +1331,36 @@ by EXPANSION, and (setq NAME ...) will act like (setf EXPANSION ...)."
 The main visible difference is that lambdas inside BODY will create
 lexical closures as in Common Lisp."
   (let* ((cl-closure-vars cl-closure-vars)
 The main visible difference is that lambdas inside BODY will create
 lexical closures as in Common Lisp."
   (let* ((cl-closure-vars cl-closure-vars)
-        (vars (mapcar (function
-                       (lambda (x)
-                         (or (consp x) (setq x (list x)))
-                         (cl-push (gensym (format "--%s--" (car x)))
-                                  cl-closure-vars)
-                         (list (car x) (cadr x) (car cl-closure-vars))))
+        (vars (mapcar #'(lambda (x)
+                          (or (consp x) (setq x (list x)))
+                          (cl-push (gensym (format "--%s--" (car x)))
+                                   cl-closure-vars)
+                          (list (car x) (cadr x) (car cl-closure-vars)))
                       bindings))
                       bindings))
-        (ebody 
+        (ebody
          (cl-macroexpand-all
           (cons 'progn body)
          (cl-macroexpand-all
           (cons 'progn body)
-          (nconc (mapcar (function (lambda (x)
-                                     (list (symbol-name (car x))
-                                           (list 'symbol-value (caddr x))
-                                           t))) vars)
+          (nconc (mapcar #'(lambda (x)
+                             (list (symbol-name (car x))
+                                   (list 'symbol-value (caddr x))
+                                   t))
+                         vars)
                  (list '(defun . cl-defun-expander))
                  cl-macro-environment))))
     (if (not (get (car (last cl-closure-vars)) 'used))
                  (list '(defun . cl-defun-expander))
                  cl-macro-environment))))
     (if (not (get (car (last cl-closure-vars)) 'used))
-       (list 'let (mapcar (function (lambda (x)
-                                      (list (caddr x) (cadr x)))) vars)
-             (sublis (mapcar (function (lambda (x)
-                                         (cons (caddr x)
-                                               (list 'quote (caddr x)))))
+       (list 'let (mapcar #'(lambda (x) (list (caddr x) (cadr x))) vars)
+             (sublis (mapcar #'(lambda (x)
+                                 (cons (caddr x) (list 'quote (caddr x))))
                              vars)
                      ebody))
                              vars)
                      ebody))
-      (list 'let (mapcar (function (lambda (x)
-                                    (list (caddr x)
-                                          (list 'make-symbol
-                                                (format "--%s--" (car x))))))
+      (list 'let (mapcar #'(lambda (x)
+                            (list (caddr x)
+                                  (list 'make-symbol
+                                        (format "--%s--" (car x)))))
                         vars)
            (apply 'append '(setf)
                         vars)
            (apply 'append '(setf)
-                  (mapcar (function
-                           (lambda (x)
-                             (list (list 'symbol-value (caddr x)) (cadr x))))
+                  (mapcar #'(lambda (x)
+                              (list (list 'symbol-value (caddr x)) (cadr x)))
                           vars))
            ebody))))
 
                           vars))
            ebody))))
 
@@ -1403,9 +1394,8 @@ simulate true multiple return values.  For compatibility, (values A B C) is
 a synonym for (list A B C)."
   (let ((temp (gensym)) (n -1))
     (list* 'let* (cons (list temp form)
 a synonym for (list A B C)."
   (let ((temp (gensym)) (n -1))
     (list* 'let* (cons (list temp form)
-                      (mapcar (function
-                               (lambda (v)
-                                 (list v (list 'nth (setq n (1+ n)) temp))))
+                      (mapcar #'(lambda (v)
+                                  (list v (list 'nth (setq n (1+ n)) temp)))
                               vars))
           body)))
 
                               vars))
           body)))
 
@@ -1422,14 +1412,15 @@ values.  For compatibility, (values A B C) is a synonym for (list A B C)."
         (let* ((temp (gensym)) (n 0))
           (list 'let (list (list temp form))
                 (list 'prog1 (list 'setq (cl-pop vars) (list 'car temp))
         (let* ((temp (gensym)) (n 0))
           (list 'let (list (list temp form))
                 (list 'prog1 (list 'setq (cl-pop vars) (list 'car temp))
-                      (cons 'setq (apply 'nconc
-                                         (mapcar (function
-                                                  (lambda (v)
-                                                    (list v (list
-                                                             'nth
-                                                             (setq n (1+ n))
-                                                             temp))))
-                                                 vars)))))))))
+                      (cons 'setq
+                            (apply 'nconc
+                                   (mapcar
+                                    #'(lambda (v)
+                                        (list v (list
+                                                 'nth
+                                                 (setq n (1+ n))
+                                                 temp)))
+                                           vars)))))))))
 
 
 ;;; Declarations.
 
 
 ;;; Declarations.
@@ -1448,7 +1439,7 @@ values.  For compatibility, (values A B C) is a synonym for (list A B C)."
         (if (boundp 'byte-compile-bound-variables)
             (setq byte-compile-bound-variables
                   ;; todo: this should compute correct binding bits vs. 0
         (if (boundp 'byte-compile-bound-variables)
             (setq byte-compile-bound-variables
                   ;; todo: this should compute correct binding bits vs. 0
-                  (append (mapcar #'(lambda (v) (cons v 0)) 
+                  (append (mapcar #'(lambda (v) (cons v 0))
                                   (cdr spec))
                           byte-compile-bound-variables))))
 
                                   (cdr spec))
                           byte-compile-bound-variables))))
 
@@ -1604,15 +1595,16 @@ Example: (defsetf nth (n x) (v) (list 'setcar (list 'nthcdr n x) v))."
              call)))))
 
 ;;; Some standard place types from Common Lisp.
              call)))))
 
 ;;; Some standard place types from Common Lisp.
+(eval-when-compile (defvar ignored-arg)) ; Warning suppression
 (defsetf aref aset)
 (defsetf car setcar)
 (defsetf cdr setcdr)
 (defsetf elt (seq n) (store)
   (list 'if (list 'listp seq) (list 'setcar (list 'nthcdr n seq) store)
        (list 'aset seq n store)))
 (defsetf aref aset)
 (defsetf car setcar)
 (defsetf cdr setcdr)
 (defsetf elt (seq n) (store)
   (list 'if (list 'listp seq) (list 'setcar (list 'nthcdr n seq) store)
        (list 'aset seq n store)))
-(defsetf get (x y &optional d) (store) (list 'put x y store))
-(defsetf get* (x y &optional d) (store) (list 'put x y store))
-(defsetf gethash (x h &optional d) (store) (list 'cl-puthash x store h))
+(defsetf get (x y &optional ignored-arg) (store) (list 'put x y store))
+(defsetf get* (x y &optional ignored-arg) (store) (list 'put x y store))
+(defsetf gethash (x h &optional ignored-arg) (store) (list 'cl-puthash x store h))
 (defsetf nth (n x) (store) (list 'setcar (list 'nthcdr n x) store))
 (defsetf subseq (seq start &optional end) (new)
   (list 'progn (list 'replace seq new ':start1 start ':end1 end) new))
 (defsetf nth (n x) (store) (list 'setcar (list 'nthcdr n x) store))
 (defsetf subseq (seq start &optional end) (new)
   (list 'progn (list 'replace seq new ':start1 start ':end1 end) new))
@@ -1653,7 +1645,7 @@ Example: (defsetf nth (n x) (v) (list 'setcar (list 'nthcdr n x) v))."
 (defsetf documentation-property put)
 (defsetf extent-face set-extent-face)
 (defsetf extent-priority set-extent-priority)
 (defsetf documentation-property put)
 (defsetf extent-face set-extent-face)
 (defsetf extent-priority set-extent-priority)
-(defsetf extent-property (x y &optional d) (arg)
+(defsetf extent-property (x y &optional ignored-arg) (arg)
   (list 'set-extent-property x y arg))
 (defsetf extent-end-position (ext) (store)
   (list 'progn (list 'set-extent-endpoints (list 'extent-start-position ext)
   (list 'set-extent-property x y arg))
 (defsetf extent-end-position (ext) (store)
   (list 'progn (list 'set-extent-endpoints (list 'extent-start-position ext)
@@ -1673,7 +1665,7 @@ Example: (defsetf nth (n x) (v) (list 'setcar (list 'nthcdr n x) v))."
 (defsetf frame-visible-p cl-set-frame-visible-p)
 (defsetf frame-properties (&optional f) (p)
   `(progn (set-frame-properties ,f ,p) ,p))
 (defsetf frame-visible-p cl-set-frame-visible-p)
 (defsetf frame-properties (&optional f) (p)
   `(progn (set-frame-properties ,f ,p) ,p))
-(defsetf frame-property (f p &optional d) (v)
+(defsetf frame-property (f p &optional ignored-arg) (v)
   `(progn (set-frame-property ,f ,v) ,p))
 (defsetf frame-width (&optional f) (v)
   `(progn (set-frame-width ,f ,v) ,v))
   `(progn (set-frame-property ,f ,v) ,p))
 (defsetf frame-width (&optional f) (v)
   `(progn (set-frame-width ,f ,v) ,v))
@@ -1708,9 +1700,9 @@ Example: (defsetf nth (n x) (v) (list 'setcar (list 'nthcdr n x) v))."
 
 ;; Misc
 (defsetf recent-keys-ring-size set-recent-keys-ring-size)
 
 ;; Misc
 (defsetf recent-keys-ring-size set-recent-keys-ring-size)
-(defsetf symbol-value-in-buffer (s b &optional u) (store)
+(defsetf symbol-value-in-buffer (s b &optional ignored-arg) (store)
   `(with-current-buffer ,b (set ,s ,store)))
   `(with-current-buffer ,b (set ,s ,store)))
-(defsetf symbol-value-in-console (s c &optional u) (store)
+(defsetf symbol-value-in-console (s c &optional ignored-arg) (store)
   `(letf (((selected-console) ,c))
      (set ,s ,store)))
 
   `(letf (((selected-console) ,c))
      (set ,s ,store)))
 
@@ -1731,6 +1723,8 @@ Example: (defsetf nth (n x) (v) (list 'setcar (list 'nthcdr n x) v))."
 ;; Avoid adding various face and glyph functions.
 (defsetf frame-selected-window (&optional f) (v)
   `(set-frame-selected-window ,f ,v))
 ;; Avoid adding various face and glyph functions.
 (defsetf frame-selected-window (&optional f) (v)
   `(set-frame-selected-window ,f ,v))
+(defsetf glyph-image (glyph &optional domain) (i)
+  (list 'set-glyph-image glyph i domain))
 (defsetf itimer-function set-itimer-function)
 (defsetf itimer-function-arguments set-itimer-function-arguments)
 (defsetf itimer-is-idle set-itimer-is-idle)
 (defsetf itimer-function set-itimer-function)
 (defsetf itimer-function-arguments set-itimer-function-arguments)
 (defsetf itimer-is-idle set-itimer-is-idle)
@@ -1742,7 +1736,7 @@ Example: (defsetf nth (n x) (v) (list 'setcar (list 'nthcdr n x) v))."
 (defsetf marker-insertion-type set-marker-insertion-type)
 (defsetf mouse-pixel-position (&optional d) (v)
   `(progn
 (defsetf marker-insertion-type set-marker-insertion-type)
 (defsetf mouse-pixel-position (&optional d) (v)
   `(progn
-     set-mouse-pixel-position ,d ,(car v) ,(car (cdr v)) ,(cdr (cdr v))
+     (set-mouse-pixel-position ,d ,(car v) ,(car (cdr v)) ,(cdr (cdr v)))
      ,v))
 (defsetf trunc-stack-length set-trunc-stack-length)
 (defsetf trunc-stack-stack set-trunc-stack-stack)
      ,v))
 (defsetf trunc-stack-length set-trunc-stack-length)
 (defsetf trunc-stack-stack set-trunc-stack-stack)
@@ -1789,13 +1783,13 @@ Example: (defsetf nth (n x) (v) (list 'setcar (list 'nthcdr n x) v))."
 (defsetf window-buffer set-window-buffer t)
 (defsetf window-display-table set-window-display-table t)
 (defsetf window-dedicated-p set-window-dedicated-p t)
 (defsetf window-buffer set-window-buffer t)
 (defsetf window-display-table set-window-display-table t)
 (defsetf window-dedicated-p set-window-dedicated-p t)
-(defsetf window-height () (store)
-  (list 'progn (list 'enlarge-window (list '- store '(window-height))) store))
+(defsetf window-height (&optional window) (store)
+  `(progn (enlarge-window (- ,store (window-height)) nil ,window) ,store))
 (defsetf window-hscroll set-window-hscroll)
 (defsetf window-point set-window-point)
 (defsetf window-start set-window-start)
 (defsetf window-hscroll set-window-hscroll)
 (defsetf window-point set-window-point)
 (defsetf window-start set-window-start)
-(defsetf window-width () (store)
-  (list 'progn (list 'enlarge-window (list '- store '(window-width)) t) store))
+(defsetf window-width (&optional window) (store)
+  `(progn (enlarge-window (- ,store (window-width)) t ,window) ,store))
 (defsetf x-get-cutbuffer x-store-cutbuffer t)
 (defsetf x-get-cut-buffer x-store-cut-buffer t)   ; groan.
 (defsetf x-get-secondary-selection x-own-secondary-selection t)
 (defsetf x-get-cutbuffer x-store-cutbuffer t)
 (defsetf x-get-cut-buffer x-store-cut-buffer t)   ; groan.
 (defsetf x-get-secondary-selection x-own-secondary-selection t)
@@ -2078,8 +2072,8 @@ As a special case, if `(PLACE)' is used instead of `(PLACE VALUE)',
 the PLACE is not modified before executing BODY."
   (if (and (not (cdr bindings)) (cdar bindings) (symbolp (caar bindings)))
       (list* 'let bindings body)
 the PLACE is not modified before executing BODY."
   (if (and (not (cdr bindings)) (cdar bindings) (symbolp (caar bindings)))
       (list* 'let bindings body)
-    (let ((lets nil) (sets nil)
-         (unsets nil) (rev (reverse bindings)))
+    (let ((lets nil)
+         (rev (reverse bindings)))
       (while rev
        (let* ((place (if (symbolp (caar rev))
                          (list 'symbol-value (list 'quote (caar rev)))
       (while rev
        (let* ((place (if (symbolp (caar rev))
                          (list 'symbol-value (list 'quote (caar rev)))
@@ -2202,8 +2196,6 @@ copier, a `NAME-p' predicate, and setf-able `NAME-SLOT' accessors."
         (tag (intern (format "cl-struct-%s" name)))
         (tag-symbol (intern (format "cl-struct-%s-tags" name)))
         (include-descs nil)
         (tag (intern (format "cl-struct-%s" name)))
         (tag-symbol (intern (format "cl-struct-%s-tags" name)))
         (include-descs nil)
-        ;; XEmacs change
-        (include-tag-symbol nil)
         (side-eff nil)
         (type nil)
         (named nil)
         (side-eff nil)
         (type nil)
         (named nil)
@@ -2213,7 +2205,7 @@ copier, a `NAME-p' predicate, and setf-able `NAME-SLOT' accessors."
        (cl-push (list 'put (list 'quote name) '(quote structure-documentation)
                       (cl-pop descs)) forms))
     (setq descs (cons '(cl-tag-slot)
        (cl-push (list 'put (list 'quote name) '(quote structure-documentation)
                       (cl-pop descs)) forms))
     (setq descs (cons '(cl-tag-slot)
-                     (mapcar (function (lambda (x) (if (consp x) x (list x))))
+                     (mapcar #'(lambda (x) (if (consp x) x (list x)))
                              descs)))
     (while opts
       (let ((opt (if (consp (car opts)) (caar opts) (car opts)))
                              descs)))
     (while opts
       (let ((opt (if (consp (car opts)) (caar opts) (car opts)))
@@ -2232,13 +2224,9 @@ copier, a `NAME-p' predicate, and setf-able `NAME-SLOT' accessors."
               (if args (setq predicate (car args))))
              ((eq opt ':include)
               (setq include (car args)
               (if args (setq predicate (car args))))
              ((eq opt ':include)
               (setq include (car args)
-                    include-descs (mapcar (function
-                                           (lambda (x)
-                                             (if (consp x) x (list x))))
-                                          (cdr args))
-                    ;; XEmacs change
-                    include-tag-symbol (intern (format "cl-struct-%s-tags"
-                                                       include))))
+                    include-descs (mapcar #'(lambda (x)
+                                              (if (consp x) x (list x)))
+                                          (cdr args))))
              ((eq opt ':print-function)
               (setq print-func (car args)))
              ((eq opt ':type)
              ((eq opt ':print-function)
               (setq print-func (car args)))
              ((eq opt ':type)
@@ -2368,7 +2356,7 @@ copier, a `NAME-p' predicate, and setf-able `NAME-SLOT' accessors."
       (let* ((name (caar constrs))
             (args (cadr (cl-pop constrs)))
             (anames (cl-arglist-args args))
       (let* ((name (caar constrs))
             (args (cadr (cl-pop constrs)))
             (anames (cl-arglist-args args))
-            (make (mapcar* (function (lambda (s d) (if (memq s anames) s d)))
+            (make (mapcar* #'(lambda (s d) (if (memq s anames) s d))
                            slots defaults)))
        (cl-push (list 'defsubst* name
                       (list* '&cl-defs (list 'quote (cons nil descs)) args)
                            slots defaults)))
        (cl-push (list 'defsubst* name
                       (list* '&cl-defs (list 'quote (cons nil descs)) args)
@@ -2392,10 +2380,10 @@ copier, a `NAME-p' predicate, and setf-able `NAME-SLOT' accessors."
                          (list 'quote include))
                    (list 'put (list 'quote name) '(quote cl-struct-print)
                          print-auto)
                          (list 'quote include))
                    (list 'put (list 'quote name) '(quote cl-struct-print)
                          print-auto)
-                   (mapcar (function (lambda (x)
-                                       (list 'put (list 'quote (car x))
-                                             '(quote side-effect-free)
-                                             (list 'quote (cdr x)))))
+                   (mapcar #'(lambda (x)
+                               (list 'put (list 'quote (car x))
+                                     '(quote side-effect-free)
+                                     (list 'quote (cdr x))))
                            side-eff))
             forms)
     (cons 'progn (nreverse (cons (list 'quote name) forms)))))
                            side-eff))
             forms)
     (cons 'progn (nreverse (cons (list 'quote name) forms)))))
@@ -2462,7 +2450,7 @@ The type name can then be used in `typecase', `check-type', etc."
                             (list '<= val (caddr type)))))))
          ((memq (car-safe type) '(and or not))
           (cons (car type)
                             (list '<= val (caddr type)))))))
          ((memq (car-safe type) '(and or not))
           (cons (car type)
-                (mapcar (function (lambda (x) (cl-make-type-test val x)))
+                (mapcar #'(lambda (x) (cl-make-type-test val x))
                         (cdr type))))
          ((memq (car-safe type) '(member member*))
           (list 'and (list 'member* val (list 'quote (cdr type))) t))
                         (cdr type))))
          ((memq (car-safe type) '(member member*))
           (list 'and (list 'member* val (list 'quote (cdr type))) t))
@@ -2499,10 +2487,10 @@ omitted, a default message listing FORM itself is used."
   (and (or (not (cl-compiling-file))
           (< cl-optimize-speed 3) (= cl-optimize-safety 3))
        (let ((sargs (and show-args (delq nil (mapcar
   (and (or (not (cl-compiling-file))
           (< cl-optimize-speed 3) (= cl-optimize-safety 3))
        (let ((sargs (and show-args (delq nil (mapcar
-                                             (function
-                                              (lambda (x)
-                                                (and (not (cl-const-expr-p x))
-                                                     x))) (cdr form))))))
+                                              #'(lambda (x)
+                                                  (and (not (cl-const-expr-p x))
+                                                       x))
+                                              (cdr form))))))
         (list 'progn
               (list 'or form
                     (if string
         (list 'progn
               (list 'or form
                     (if string
@@ -2515,8 +2503,13 @@ omitted, a default message listing FORM itself is used."
 (defmacro ignore-errors (&rest body)
   "Execute FORMS; if an error occurs, return nil.
 Otherwise, return result of last FORM."
 (defmacro ignore-errors (&rest body)
   "Execute FORMS; if an error occurs, return nil.
 Otherwise, return result of last FORM."
-  (list 'condition-case nil (cons 'progn body) '(error nil)))
+  `(condition-case nil (progn ,@body) (error nil)))
 
 
+;;;###autoload
+(defmacro ignore-file-errors (&rest body)
+  "Execute FORMS; if an error of type `file-error' occurs, return nil.
+Otherwise, return result of last FORM."
+  `(condition-case nil (progn ,@body) (file-error nil)))
 
 ;;; Some predicates for analyzing Lisp forms.  These are used by various
 ;;; macro expanders to optimize the results in certain common cases.
 
 ;;; Some predicates for analyzing Lisp forms.  These are used by various
 ;;; macro expanders to optimize the results in certain common cases.
@@ -2670,12 +2663,11 @@ surrounded by (block NAME ...)."
   (if (and whole (not (cl-safe-expr-p (cons 'progn argvs)))) whole
     (if (cl-simple-exprs-p argvs) (setq simple t))
     (let ((lets (delq nil
   (if (and whole (not (cl-safe-expr-p (cons 'progn argvs)))) whole
     (if (cl-simple-exprs-p argvs) (setq simple t))
     (let ((lets (delq nil
-                     (mapcar* (function
-                               (lambda (argn argv)
-                                 (if (or simple (cl-const-expr-p argv))
-                                     (progn (setq body (subst argv argn body))
-                                            (and unsafe (list argn argv)))
-                                   (list argn argv))))
+                     (mapcar* #'(lambda (argn argv)
+                                  (if (or simple (cl-const-expr-p argv))
+                                      (progn (setq body (subst argv argn body))
+                                             (and unsafe (list argn argv)))
+                                    (list argn argv)))
                               argns argvs))))
       (if lets (list 'let lets body) body))))
 
                               argns argvs))))
       (if lets (list 'let lets body) body))))
 
@@ -2767,45 +2759,49 @@ surrounded by (block NAME ...)."
     form))
 
 
     form))
 
 
-(mapcar (function
-        (lambda (y)
-          (put (car y) 'side-effect-free t)
-          (put (car y) 'byte-compile 'cl-byte-compile-compiler-macro)
-          (put (car y) 'cl-compiler-macro
-               (list 'lambda '(w x)
-                     (if (symbolp (cadr y))
-                         (list 'list (list 'quote (cadr y))
-                               (list 'list (list 'quote (caddr y)) 'x))
-                       (cons 'list (cdr y)))))))
-       '((first 'car x) (second 'cadr x) (third 'caddr x) (fourth 'cadddr x)
-         (fifth 'nth 4 x) (sixth 'nth 5 x) (seventh 'nth 6 x)
-         (eighth 'nth 7 x) (ninth 'nth 8 x) (tenth 'nth 9 x)
-         (rest 'cdr x) (endp 'null x) (plusp '> x 0) (minusp '< x 0)
-         (caar car car) (cadr car cdr) (cdar cdr car) (cddr cdr cdr)
-         (caaar car caar) (caadr car cadr) (cadar car cdar)
-         (caddr car cddr) (cdaar cdr caar) (cdadr cdr cadr)
-         (cddar cdr cdar) (cdddr cdr cddr) (caaaar car caaar)
-         (caaadr car caadr) (caadar car cadar) (caaddr car caddr)
-         (cadaar car cdaar) (cadadr car cdadr) (caddar car cddar)
-         (cadddr car cdddr) (cdaaar cdr caaar) (cdaadr cdr caadr)
-         (cdadar cdr cadar) (cdaddr cdr caddr) (cddaar cdr cdaar)
-         (cddadr cdr cdadr) (cdddar cdr cddar) (cddddr cdr cdddr) ))
+(mapc
+ #'(lambda (y)
+     (put (car y) 'side-effect-free t)
+     (put (car y) 'byte-compile 'cl-byte-compile-compiler-macro)
+     (put (car y) 'cl-compiler-macro
+         (list 'lambda '(w x)
+               (if (symbolp (cadr y))
+                   (list 'list (list 'quote (cadr y))
+                         (list 'list (list 'quote (caddr y)) 'x))
+                 (cons 'list (cdr y))))))
+ '((first 'car x) (second 'cadr x) (third 'caddr x) (fourth 'cadddr x)
+   (fifth 'nth 4 x) (sixth 'nth 5 x) (seventh 'nth 6 x)
+   (eighth 'nth 7 x) (ninth 'nth 8 x) (tenth 'nth 9 x)
+   (rest 'cdr x) (endp 'null x) (plusp '> x 0) (minusp '< x 0)
+   (caar car car) (cadr car cdr) (cdar cdr car) (cddr cdr cdr)
+   (caaar car caar) (caadr car cadr) (cadar car cdar)
+   (caddr car cddr) (cdaar cdr caar) (cdadr cdr cadr)
+   (cddar cdr cdar) (cdddr cdr cddr) (caaaar car caaar)
+   (caaadr car caadr) (caadar car cadar) (caaddr car caddr)
+   (cadaar car cdaar) (cadadr car cdadr) (caddar car cddar)
+   (cadddr car cdddr) (cdaaar cdr caaar) (cdaadr cdr caadr)
+   (cdadar cdr cadar) (cdaddr cdr caddr) (cddaar cdr cdaar)
+   (cddadr cdr cdadr) (cdddar cdr cddar) (cddddr cdr cdddr)))
 
 ;;; Things that are inline.
 (proclaim '(inline floatp-safe acons map concatenate notany notevery
 ;; XEmacs change
 
 ;;; Things that are inline.
 (proclaim '(inline floatp-safe acons map concatenate notany notevery
 ;; XEmacs change
-                  cl-set-elt revappend nreconc))
-
-;;; Things that are side-effect-free.
-(mapcar (function (lambda (x) (put x 'side-effect-free t)))
-       '(oddp evenp abs expt signum last butlast ldiff pairlis gcd lcm
-         isqrt floor* ceiling* truncate* round* mod* rem* subseq
-         list-length get* getf gethash hash-table-count))
-
-;;; Things that are side-effect-and-error-free.
-(mapcar (function (lambda (x) (put x 'side-effect-free 'error-free)))
-       '(eql floatp-safe list* subst acons equalp random-state-p
-         copy-tree sublis hash-table-p))
+                  cl-set-elt revappend nreconc
+                  plusp minusp oddp evenp
+                  ))
+
+;;; Things that are side-effect-free.  Moved to byte-optimize.el
+;(dolist (fun '(oddp evenp plusp minusp
+;                  abs expt signum last butlast ldiff
+;                  pairlis gcd lcm
+;                  isqrt floor* ceiling* truncate* round* mod* rem* subseq
+;                  list-length get* getf))
+;  (put fun 'side-effect-free t))
+
+;;; Things that are side-effect-and-error-free.  Moved to byte-optimize.el
+;(dolist (fun '(eql floatp-safe list* subst acons equalp random-state-p
+;                 copy-tree sublis))
+;  (put fun 'side-effect-free 'error-free))
 
 
 (run-hooks 'cl-macs-load-hook)
 
 
 (run-hooks 'cl-macs-load-hook)
index 233a476..41a5955 100644 (file)
@@ -183,7 +183,7 @@ Analogous to (prog1 (car PLACE) (setf PLACE (cdr PLACE))), though more
 careful about evaluating each argument only once and in the right order.
 PLACE may be a symbol, or any generalized variable allowed by `setf'."
   (if (symbolp place)
 careful about evaluating each argument only once and in the right order.
 PLACE may be a symbol, or any generalized variable allowed by `setf'."
   (if (symbolp place)
-      (list 'car (list 'prog1 place (list 'setq place (list 'cdr place))))
+      `(car (prog1 ,place (setq ,place (cdr ,place))))
     (cl-do-pop place)))
 
 (defmacro push (x place)
     (cl-do-pop place)))
 
 (defmacro push (x place)
@@ -191,7 +191,7 @@ PLACE may be a symbol, or any generalized variable allowed by `setf'."
 Analogous to (setf PLACE (cons X PLACE)), though more careful about
 evaluating each argument only once and in the right order.  PLACE may
 be a symbol, or any generalized variable allowed by `setf'."
 Analogous to (setf PLACE (cons X PLACE)), though more careful about
 evaluating each argument only once and in the right order.  PLACE may
 be a symbol, or any generalized variable allowed by `setf'."
-  (if (symbolp place) (list 'setq place (list 'cons x place))
+  (if (symbolp place) `(setq ,place (cons ,x ,place))
     (list 'callf2 'cons x place)))
 
 (defmacro pushnew (x place &rest keys)
     (list 'callf2 'cons x place)))
 
 (defmacro pushnew (x place &rest keys)
@@ -225,20 +225,9 @@ Keywords supported:  :test :test-not :key"
 
 ;;; Control structures.
 
 
 ;;; Control structures.
 
-;; These macros are so simple and so often-used that it's better to have
-;; them all the time than to load them from cl-macs.el.
-
-;; NOTE: these macros were moved to subr.el in FSF 20.  It is of no
-;; consequence to XEmacs, because we preload this file, and they
-;; should better remain here.
-
-(defmacro when (cond &rest body)
-  "(when COND BODY...): if COND yields non-nil, do BODY, else return nil."
-  (list 'if cond (cons 'progn body)))
-
-(defmacro unless (cond &rest body)
-  "(unless COND BODY...): if COND yields nil, do BODY, else return nil."
-  (cons 'if (cons cond (cons nil body))))
+;; The macros `when' and `unless' are so useful that we want them to
+;; ALWAYS be available.  So they've been moved from cl.el to eval.c.
+;; Note: FSF Emacs moved them to subr.el in FSF 20.
 
 (defun cl-map-extents (&rest cl-args)
   ;; XEmacs: This used to check for overlays first, but that's wrong
 
 (defun cl-map-extents (&rest cl-args)
   ;; XEmacs: This used to check for overlays first, but that's wrong
@@ -406,6 +395,9 @@ SEQ, this is like `mapcar'.  With several, it is like the Common Lisp
 
 ;;; List functions.
 
 
 ;;; List functions.
 
+;; These functions are made known to the byte-compiler by cl-macs.el
+;; and turned into efficient car and cdr bytecodes.
+
 (defalias 'first 'car)
 (defalias 'rest 'cdr)
 (defalias 'endp 'null)
 (defalias 'first 'car)
 (defalias 'rest 'cdr)
 (defalias 'endp 'null)
@@ -558,30 +550,35 @@ SEQ, this is like `mapcar'.  With several, it is like the Common Lisp
   "Return the `cdr' of the `cdr' of the `cdr' of the `cdr' of X."
   (cdr (cdr (cdr (cdr x)))))
 
   "Return the `cdr' of the `cdr' of the `cdr' of the `cdr' of X."
   (cdr (cdr (cdr (cdr x)))))
 
-(defun last (x &optional n)
-  "Return the last link in the list LIST.
-With optional argument N, return Nth-to-last link (default 1)."
-  (if n
-      (let ((m 0) (p x))
-       (while (consp p) (incf m) (pop p))
-       (if (<= n 0) p
-         (if (< n m) (nthcdr (- m n) x) x)))
-    (while (consp (cdr x)) (pop x))
-    x))
-
-(defun butlast (x &optional n)
-  "Return a copy of LIST with the last N elements removed."
-  (if (and n (<= n 0)) x
-    (nbutlast (copy-sequence x) n)))
-
-(defun nbutlast (x &optional n)
-  "Modify LIST to remove the last N elements."
-  (let ((m (length x)))
-    (or n (setq n 1))
-    (and (< n m)
-        (progn
-          (if (> n 0) (setcdr (nthcdr (- (1- m) n) x) nil))
-          x))))
+;;; `last' is implemented as a C primitive, as of 1998-11
+
+;(defun last (x &optional n)
+;  "Return the last link in the list LIST.
+;With optional argument N, return Nth-to-last link (default 1)."
+;  (if n
+;      (let ((m 0) (p x))
+;      (while (consp p) (incf m) (pop p))
+;      (if (<= n 0) p
+;        (if (< n m) (nthcdr (- m n) x) x)))
+;    (while (consp (cdr x)) (pop x))
+;    x))
+
+;;; `butlast'  is implemented as a C primitive, as of 1998-11
+;;; `nbutlast' is implemented as a C primitive, as of 1998-11
+
+;(defun butlast (x &optional n)
+;  "Return a copy of LIST with the last N elements removed."
+;  (if (and n (<= n 0)) x
+;    (nbutlast (copy-sequence x) n)))
+
+;(defun nbutlast (x &optional n)
+;  "Modify LIST to remove the last N elements."
+;  (let ((m (length x)))
+;    (or n (setq n 1))
+;    (and (< n m)
+;       (progn
+;         (if (> n 0) (setcdr (nthcdr (- (1- m) n) x) nil))
+;         x))))
 
 (defun list* (arg &rest rest)   ; See compiler macro in cl-macs.el
   "Return a new list with specified args as elements, cons'd to last arg.
 
 (defun list* (arg &rest rest)   ; See compiler macro in cl-macs.el
   "Return a new list with specified args as elements, cons'd to last arg.
@@ -602,14 +599,16 @@ Thus, `(list* A B C D)' is equivalent to `(nconc (list A B C) D)', or to
       (push (pop list) res))
     (nreverse res)))
 
       (push (pop list) res))
     (nreverse res)))
 
-(defun copy-list (list)
-  "Return a copy of a list, which may be a dotted list.
-The elements of the list are not copied, just the list structure itself."
-  (if (consp list)
-      (let ((res nil))
-       (while (consp list) (push (pop list) res))
-       (prog1 (nreverse res) (setcdr res list)))
-    (car list)))
+;;; `copy-list' is implemented as a C primitive, as of 1998-11
+
+;(defun copy-list (list)
+;  "Return a copy of a list, which may be a dotted list.
+;The elements of the list are not copied, just the list structure itself."
+;  (if (consp list)
+;      (let ((res nil))
+;      (while (consp list) (push (pop list) res))
+;      (prog1 (nreverse res) (setcdr res list)))
+;    (car list)))
 
 (defun cl-maclisp-member (item list)
   (while (and list (not (equal item (car list)))) (setq list (cdr list)))
 
 (defun cl-maclisp-member (item list)
   (while (and list (not (equal item (car list)))) (setq list (cdr list)))
@@ -681,45 +680,45 @@ FUNC is not added if it already appears on the list stored in HOOK."
 ;(load "cl-defs")
 
 ;;; Define data for indentation and edebug.
 ;(load "cl-defs")
 
 ;;; Define data for indentation and edebug.
-(mapcar (function
-        (lambda (entry)
-          (mapcar (function
-                   (lambda (func)
-                     (put func 'lisp-indent-function (nth 1 entry))
-                     (put func 'lisp-indent-hook (nth 1 entry))
-                     (or (get func 'edebug-form-spec)
-                         (put func 'edebug-form-spec (nth 2 entry)))))
-                  (car entry))))
-       '(((defun* defmacro*) defun)
-         ((function*) nil
-          (&or symbolp ([&optional 'macro] 'lambda (&rest sexp) &rest form)))
-         ((eval-when) 1 (sexp &rest form))
-         ((when unless) 1 (&rest form))
-         ((declare) nil (&rest sexp))
-         ((the) 1 (sexp &rest form))
-         ((case ecase typecase etypecase) 1 (form &rest (sexp &rest form)))
-         ((block return-from) 1 (sexp &rest form))
-         ((return) nil (&optional form))
-         ((do do*) 2 ((&rest &or symbolp (symbolp &optional form form))
-                      (form &rest form)
-                      &rest form))
-         ((dolist dotimes) 1 ((symbolp form &rest form) &rest form))
-         ((do-symbols) 1 ((symbolp form &optional form form) &rest form))
-         ((do-all-symbols) 1 ((symbolp form &optional form) &rest form))
-         ((psetq setf psetf) nil edebug-setq-form)
-         ((progv) 2 (&rest form))
-         ((flet labels macrolet) 1
-          ((&rest (sexp sexp &rest form)) &rest form))
-         ((symbol-macrolet lexical-let lexical-let*) 1
-          ((&rest &or symbolp (symbolp form)) &rest form))
-         ((multiple-value-bind) 2 ((&rest symbolp) &rest form))
-         ((multiple-value-setq) 1 ((&rest symbolp) &rest form))
-         ((incf decf remf pop push pushnew shiftf rotatef) nil (&rest form))
-         ((letf letf*) 1 ((&rest (&rest form)) &rest form))
-         ((callf destructuring-bind) 2 (sexp form &rest form))
-         ((callf2) 3 (sexp form form &rest form))
-         ((loop) defun (&rest &or symbolp form))
-         ((ignore-errors) 0 (&rest form))))
+(mapc
+ #'(lambda (entry)
+     (mapc
+      #'(lambda (func)
+         (put func 'lisp-indent-function (nth 1 entry))
+         (put func 'lisp-indent-hook (nth 1 entry))
+         (or (get func 'edebug-form-spec)
+             (put func 'edebug-form-spec (nth 2 entry))))
+      (car entry)))
+ '(((defun* defmacro*) defun)
+   ((function*) nil
+    (&or symbolp ([&optional 'macro] 'lambda (&rest sexp) &rest form)))
+   ((eval-when) 1 (sexp &rest form))
+   ((when unless) 1 (&rest form))
+   ((declare) nil (&rest sexp))
+   ((the) 1 (sexp &rest form))
+   ((case ecase typecase etypecase) 1 (form &rest (sexp &rest form)))
+   ((block return-from) 1 (sexp &rest form))
+   ((return) nil (&optional form))
+   ((do do*) 2 ((&rest &or symbolp (symbolp &optional form form))
+               (form &rest form)
+               &rest form))
+   ((dolist dotimes) 1 ((symbolp form &rest form) &rest form))
+   ((do-symbols) 1 ((symbolp form &optional form form) &rest form))
+   ((do-all-symbols) 1 ((symbolp form &optional form) &rest form))
+   ((psetq setf psetf) nil edebug-setq-form)
+   ((progv) 2 (&rest form))
+   ((flet labels macrolet) 1
+    ((&rest (sexp sexp &rest form)) &rest form))
+   ((symbol-macrolet lexical-let lexical-let*) 1
+    ((&rest &or symbolp (symbolp form)) &rest form))
+   ((multiple-value-bind) 2 ((&rest symbolp) &rest form))
+   ((multiple-value-setq) 1 ((&rest symbolp) &rest form))
+   ((incf decf remf pop push pushnew shiftf rotatef) nil (&rest form))
+   ((letf letf*) 1 ((&rest (&rest form)) &rest form))
+   ((callf destructuring-bind) 2 (sexp form &rest form))
+   ((callf2) 3 (sexp form form &rest form))
+   ((loop) defun (&rest &or symbolp form))
+   ((ignore-errors) 0 (&rest form))))
 
 
 ;;; This goes here so that cl-macs can find it if it loads right now.
 
 
 ;;; This goes here so that cl-macs can find it if it loads right now.
diff --git a/lisp/cleantree.el b/lisp/cleantree.el
new file mode 100644 (file)
index 0000000..17f4680
--- /dev/null
@@ -0,0 +1,68 @@
+;;; cleantree.el --- Remove out of date .elcs in lisp directories
+
+;; Copyright (C) 1997 by Free Software Foundation, Inc.
+
+;; Author: Steven L Baur <steve@altair.xemacs.org>
+;; Keywords: internal
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+;; 02111-1307, USA.
+
+;;; Synched up with: Not in FSF
+
+;;; Commentary:
+
+;; This code is derived from Gnus based on a suggestion by
+;;  David Moore <dmoore@ucsd.edu>
+
+;;; Code:
+
+(defun remove-old-elc-1 (dir &optional seen)
+  (setq dir (file-name-as-directory dir))
+  ;; Only scan this sub-tree if we haven't been here yet.
+  (unless (member (file-truename dir) seen)
+    (push (file-truename dir) seen)
+    ;; We descend recursively
+    (let ((dirs (directory-files dir t nil t))
+          dir)
+      (while (setq dir (pop dirs))
+        (when (and (not (member (file-name-nondirectory dir) '("." "..")))
+                   (file-directory-p dir))
+          (remove-old-elc-1 dir seen))))
+    ;; Do this directory.
+    (let ((files (directory-files dir t ".el$"))
+         file file-c)
+      (while (setq file (car files))
+       (setq files (cdr files))
+       (setq file-c (concat file "c"))
+       (when (and (file-exists-p file-c)
+                  (file-newer-than-file-p file file-c))
+         (message file-c)
+         (delete-file file-c))))))
+
+;;;###autoload
+(defun batch-remove-old-elc ()
+  (defvar command-line-args-left)
+  (unless noninteractive
+    (error "`batch-remove-old-elc' is to be used only with -batch"))
+  (let ((dir (car command-line-args-left)))
+    (message "Cleaning out of date .elcs in directory `%s'..." dir)
+    (remove-old-elc-1 dir)
+    (message "Cleaning out of date .elcs in directory `%s'...done" dir))
+  (setq command-line-args-left nil))
+
+;;; cleantree.el ends here
index 53fd00b..e5b4be0 100644 (file)
@@ -433,9 +433,9 @@ and can edit it until it has been confirmed."
       (while (stringp ans)
         (setq ans (downcase (read-string p nil t))) ;no history
         (cond ((string-equal ans (gettext "yes"))
       (while (stringp ans)
         (setq ans (downcase (read-string p nil t))) ;no history
         (cond ((string-equal ans (gettext "yes"))
-               (setq ans 't))
+               (setq ans t))
               ((string-equal ans (gettext "no"))
               ((string-equal ans (gettext "no"))
-               (setq ans 'nil))
+               (setq ans nil))
               (t
                (ding nil 'yes-or-no-p)
                (discard-input)
               (t
                (ding nil 'yes-or-no-p)
                (discard-input)
index 3ff114b..d74a11c 100644 (file)
@@ -57,20 +57,14 @@ global environment specification.")
   'buffer-file-coding-system-for-read)
 
 (defvar file-coding-system-alist
   'buffer-file-coding-system-for-read)
 
 (defvar file-coding-system-alist
-  '(("\\.elc$" . (binary . binary))
-;; This must not be neccessary, slb suggests -kkm
+  `(
+;; This must not be necessary, slb suggests -kkm
 ;;  ("loaddefs.el$" . (binary . binary))
 ;;  ("loaddefs.el$" . (binary . binary))
-    ("\\.tar$" . (binary . binary))
-    ("\\.\\(tif\\|tiff\\)$" . (binary . binary))
-    ("\\.png$" . (binary . binary))
-    ("\\.gif$" . (binary . binary))
-    ("\\.\\(jpeg\\|jpg\\)$" . (binary . binary))
-    ("TUTORIAL\\.hr$" . iso-8859-2)
-    ("TUTORIAL\\.pl$" . iso-8859-2)
-    ("TUTORIAL\\.ro$" . iso-8859-2)
+    ,@(mapcar
+       #'(lambda (regexp) (cons regexp 'binary)) binary-file-regexps)
+    ("TUTORIAL\\.\\(?:hr\\|pl\\|ro\\)\\'" . iso-8859-2)
     ;; ("\\.\\(el\\|emacs\\|info\\(-[0-9]+\\)?\\|texi\\)$" . iso-2022-8)
     ;; ("\\(ChangeLog\\|CHANGES-beta\\)$" . iso-2022-8)
     ;; ("\\.\\(el\\|emacs\\|info\\(-[0-9]+\\)?\\|texi\\)$" . iso-2022-8)
     ;; ("\\(ChangeLog\\|CHANGES-beta\\)$" . iso-2022-8)
-    ("\\.\\(gz\\|Z\\)$" . binary)
     ("/spool/mail/.*$" . convert-mbox-coding-system))
   "Alist to decide a coding system to use for a file I/O operation.
 The format is ((PATTERN . VAL) ...),
     ("/spool/mail/.*$" . convert-mbox-coding-system))
   "Alist to decide a coding system to use for a file I/O operation.
 The format is ((PATTERN . VAL) ...),
@@ -106,7 +100,7 @@ the current value of `buffer-file-coding-system'."
   "Set EOL type of buffer-file-coding-system of the current buffer to
 something other than what it is at the moment."
   (interactive)
   "Set EOL type of buffer-file-coding-system of the current buffer to
 something other than what it is at the moment."
   (interactive)
-  (let ((eol-type 
+  (let ((eol-type
         (coding-system-eol-type buffer-file-coding-system)))
     (setq buffer-file-coding-system
          (subsidiary-coding-system
         (coding-system-eol-type buffer-file-coding-system)))
     (setq buffer-file-coding-system
          (subsidiary-coding-system
@@ -153,7 +147,7 @@ object (the entry specified a coding system)."
   (let ((alist file-coding-system-alist)
        (found nil)
        (codesys nil))
   (let ((alist file-coding-system-alist)
        (found nil)
        (codesys nil))
-    (let ((case-fold-search (eq system-type 'vax-vms)))
+    (let ((case-fold-search nil))
       (setq filename (file-name-sans-versions filename))
       (while (and (not found) alist)
        (if (string-match (car (car alist)) filename)
       (setq filename (file-name-sans-versions filename))
       (while (and (not found) alist)
        (if (string-match (car (car alist)) filename)
@@ -179,7 +173,7 @@ object (the entry specified a coding system)."
   (let ((alist file-coding-system-alist)
        (found nil)
        (codesys nil))
   (let ((alist file-coding-system-alist)
        (found nil)
        (codesys nil))
-    (let ((case-fold-search (eq system-type 'vax-vms)))
+    (let ((case-fold-search nil))
       (setq filename (file-name-sans-versions filename))
       (while (and (not found) alist)
        (if (string-match (car (car alist)) filename)
       (setq filename (file-name-sans-versions filename))
       (while (and (not found) alist)
        (if (string-match (car (car alist)) filename)
@@ -277,7 +271,7 @@ Return t if file exists."
       (if (or (<= (length filename) 0)
              (null (setq path
                          (locate-file filename load-path
       (if (or (<= (length filename) 0)
              (null (setq path
                          (locate-file filename load-path
-                                      (and (not nosuffix) ".elc:.el:")))))
+                                      (and (not nosuffix) '(".elc" ".el" ""))))))
          (and (null noerror)
               (signal 'file-error (list "Cannot open load file" filename)))
        ;; now use the internal load to actually load the file.
          (and (null noerror)
               (signal 'file-error (list "Cannot open load file" filename)))
        ;; now use the internal load to actually load the file.
@@ -396,7 +390,7 @@ for reading.
 See also `insert-file-contents-access-hook',
 `insert-file-contents-pre-hook', `insert-file-contents-error-hook',
 and `insert-file-contents-post-hook'."
 See also `insert-file-contents-access-hook',
 `insert-file-contents-pre-hook', `insert-file-contents-error-hook',
 and `insert-file-contents-post-hook'."
-  (let (return-val coding-system used-codesys conversion-func)
+  (let (return-val coding-system used-codesys)
     ;; OK, first load the file.
     (condition-case err
        (progn
     ;; OK, first load the file.
     (condition-case err
        (progn
index 7174f97..d96ecea 100644 (file)
 
 ;;; Code:
 
 
 ;;; Code:
 
+(eval-when-compile
+  (defvar buffer-file-type)
+  (defvar binary-process-output))
+
 (defvar process-coding-system-alist nil
   "Alist to decide a coding system to use for a process I/O operation.
 The format is ((PATTERN . VAL) ...),
 (defvar process-coding-system-alist nil
   "Alist to decide a coding system to use for a process I/O operation.
 The format is ((PATTERN . VAL) ...),
@@ -66,7 +70,7 @@ If you quit, the process is killed with SIGINT, or SIGKILL if you
              (let (ret)
                (catch 'found
                  (let ((alist process-coding-system-alist)
              (let (ret)
                (catch 'found
                  (let ((alist process-coding-system-alist)
-                       (case-fold-search (eq system-type 'vax-vms)))
+                       (case-fold-search nil))
                    (while alist
                      (if (string-match (car (car alist)) program)
                          (throw 'found (setq ret (cdr (car alist))))
                    (while alist
                      (if (string-match (car (car alist)) program)
                          (throw 'found (setq ret (cdr (car alist))))
@@ -106,25 +110,16 @@ Otherwise waits for PROGRAM to terminate
 and returns a numeric exit status or a signal description string.
 If you quit, the process is first killed with SIGINT, then with SIGKILL if
 you quit again before the process exits."
 and returns a numeric exit status or a signal description string.
 If you quit, the process is first killed with SIGINT, then with SIGKILL if
 you quit again before the process exits."
-  (let ((temp (cond ((eq system-type 'vax-vms)
-                     (make-temp-name "tmp:emacs"))
-                   ((or (eq system-type 'ms-dos)
-                        (eq system-type 'windows-nt))
-                    (make-temp-name
-                     (concat (file-name-as-directory
-                              (temp-directory))
-                              "em")))
-                    (t
-                    (make-temp-name
-                     (concat (file-name-as-directory
-                              (temp-directory))
-                             "emacs"))))))
+  (let ((temp
+        (make-temp-name
+         (concat (file-name-as-directory (temp-directory))
+                 (if (memq system-type '(ms-dos windows-nt)) "em" "emacs")))))
     (unwind-protect
        (let (cs-r cs-w)
          (let (ret)
            (catch 'found
              (let ((alist process-coding-system-alist)
     (unwind-protect
        (let (cs-r cs-w)
          (let (ret)
            (catch 'found
              (let ((alist process-coding-system-alist)
-                   (case-fold-search (eq system-type 'vax-vms)))
+                   (case-fold-search nil))
                (while alist
                  (if (string-match (car (car alist)) program)
                      (throw 'found (setq ret (cdr (car alist)))))
                (while alist
                  (if (string-match (car (car alist)) program)
                      (throw 'found (setq ret (cdr (car alist)))))
@@ -142,16 +137,13 @@ you quit again before the process exits."
                 (or coding-system-for-read cs-r))
                (coding-system-for-write
                 (or coding-system-for-write cs-w)))
                 (or coding-system-for-read cs-r))
                (coding-system-for-write
                 (or coding-system-for-write cs-w)))
-           (if (or (eq system-type 'ms-dos)
-                   (eq system-type 'windows-nt))
+           (if (memq system-type '(ms-dos windows-nt))
                (let ((buffer-file-type binary-process-output))
                  (write-region start end temp nil 'silent))
              (write-region start end temp nil 'silent))
            (if deletep (delete-region start end))
            (apply #'call-process program temp buffer displayp args)))
                (let ((buffer-file-type binary-process-output))
                  (write-region start end temp nil 'silent))
              (write-region start end temp nil 'silent))
            (if deletep (delete-region start end))
            (apply #'call-process program temp buffer displayp args)))
-      (condition-case ()
-          (delete-file temp)
-        (file-error nil)))))
+      (ignore-file-errors (delete-file temp)))))
 
 (defun start-process (name buffer program &rest program-args)
   "Start a program in a subprocess.  Return the process object for it.
 
 (defun start-process (name buffer program &rest program-args)
   "Start a program in a subprocess.  Return the process object for it.
@@ -170,7 +162,7 @@ INCODE and OUTCODE specify the coding-system objects used in input/output
     (let (ret)
       (catch 'found
        (let ((alist process-coding-system-alist)
     (let (ret)
       (catch 'found
        (let ((alist process-coding-system-alist)
-             (case-fold-search (eq system-type 'vax-vms)))
+             (case-fold-search nil))
          (while alist
            (if (string-match (car (car alist)) program)
                (throw 'found (setq ret (cdr (car alist)))))
          (while alist
            (if (string-match (car (car alist)) program)
                (throw 'found (setq ret (cdr (car alist)))))
@@ -224,7 +216,7 @@ Fourth arg SERVICE is name of the service desired, or an integer
     (let (ret)
       (catch 'found
        (let ((alist network-coding-system-alist)
     (let (ret)
       (catch 'found
        (let ((alist network-coding-system-alist)
-             (case-fold-search (eq system-type 'vax-vms))
+             (case-fold-search nil)
              pattern)
          (while alist
            (setq pattern (car (car alist)))
              pattern)
          (while alist
            (setq pattern (car (car alist)))
index 67d8f8c..6952081 100644 (file)
   "File containing configuration parameters and their values.")
 
 (defvar config-value-hash-table nil
   "File containing configuration parameters and their values.")
 
 (defvar config-value-hash-table nil
-  "Hashtable to store configuration parameters and their values.")
+  "Hash table to store configuration parameters and their values.")
 
 ;;;###autoload
 (defun config-value-hash-table ()
 
 ;;;###autoload
 (defun config-value-hash-table ()
-  "Return hashtable of configuration parameters and their values."
+  "Return hash table of configuration parameters and their values."
   (when (null config-value-hash-table)
   (when (null config-value-hash-table)
-    (setq config-value-hash-table (make-hashtable 300))
+    (setq config-value-hash-table (make-hash-table :size 300))
     (save-excursion
       (let ((buf (get-buffer-create " *Config*")))
        (set-buffer buf)
     (save-excursion
       (let ((buf (get-buffer-create " *Config*")))
        (set-buffer buf)
index 81cb424..8a05073 100644 (file)
@@ -131,15 +131,21 @@ Batch usage: xemacs -batch -l cus-dep.el -f Custom-make-dependencies DIRS"
                             (file-name-nondirectory file))))
                  ;; Search for defcustom/defface/defgroup
                  ;; expressions, and evaluate them.
                             (file-name-nondirectory file))))
                  ;; Search for defcustom/defface/defgroup
                  ;; expressions, and evaluate them.
-                 (ignore-errors
-                   (while (re-search-forward
-                           "^(defcustom\\|^(defface\\|^(defgroup"
-                           nil t)
-                     (beginning-of-line)
-                     (let ((expr (read (current-buffer))))
-                       (eval expr)
-                       ;; Hash the file of the affected symbol.
-                       (setf (gethash (nth 1 expr) hash) name)))))))
+                 (while (re-search-forward
+                         "^(defcustom\\|^(defface\\|^(defgroup"
+                         nil t)
+                   (beginning-of-line)
+                   (let ((expr (read (current-buffer))))
+                     ;; We need to ignore errors here, so that
+                     ;; defcustoms with :set don't bug out.  Of
+                     ;; course, their values will not be assigned in
+                     ;; case of errors, but their `custom-group'
+                     ;; properties will by that time be in place, and
+                     ;; that's all we care about.
+                     (ignore-errors
+                       (eval expr))
+                     ;; Hash the file of the affected symbol.
+                     (setf (gethash (nth 1 expr) hash) name))))))
            (cond
             ((zerop (hash-table-count hash))
              (princ "(No customization dependencies")
            (cond
             ((zerop (hash-table-count hash))
              (princ "(No customization dependencies")
@@ -167,7 +173,7 @@ Batch usage: xemacs -batch -l cus-dep.el -f Custom-make-dependencies DIRS"
                           (if found
                               (insert " ")
                             (insert "(custom-add-loads '"
                           (if found
                               (insert " ")
                             (insert "(custom-add-loads '"
-                                    (symbol-name sym) " '("))
+                                    (prin1-to-string sym) " '("))
                           (prin1 where (current-buffer))
                           (push where found)))
                       (when found
                           (prin1 where (current-buffer))
                           (push where found)))
                       (when found
index 630c5dc..339f262 100644 (file)
@@ -39,7 +39,7 @@
 ;; very slow in an average XEmacs because of the large number of
 ;; symbols requiring a large number of funcalls -- XEmacs with Gnus
 ;; can grow to some 17000 symbols without ever doing anything fancy.
 ;; very slow in an average XEmacs because of the large number of
 ;; symbols requiring a large number of funcalls -- XEmacs with Gnus
 ;; can grow to some 17000 symbols without ever doing anything fancy.
-;; It would probably pay off to make a hashtable of symbols known to
+;; It would probably pay off to make a hash table of symbols known to
 ;; Custom, similar to custom-group-hash-table.
 
 ;; This is not top priority, because none of the functions that do
 ;; Custom, similar to custom-group-hash-table.
 
 ;; This is not top priority, because none of the functions that do
 (defun custom-split-regexp-maybe (regexp)
   "If REGEXP is a string, split it to a list at `\\|'.
 You can get the original back with from the result with:
 (defun custom-split-regexp-maybe (regexp)
   "If REGEXP is a string, split it to a list at `\\|'.
 You can get the original back with from the result with:
-  (mapconcat 'identity result \"\\|\")
+  (mapconcat #'identity result \"\\|\")
 
 IF REGEXP is not a string, return it unchanged."
   (if (stringp regexp)
 
 IF REGEXP is not a string, return it unchanged."
   (if (stringp regexp)
@@ -2288,7 +2288,8 @@ Match frames with dark backgrounds")
             (unless (widget-get widget :custom-form)
                 (widget-put widget :custom-form custom-face-default-form))
             (let* ((symbol (widget-value widget))
             (unless (widget-get widget :custom-form)
                 (widget-put widget :custom-form custom-face-default-form))
             (let* ((symbol (widget-value widget))
-                   (spec (or (get symbol 'saved-face)
+                   (spec (or (get symbol 'customized-face)
+                             (get symbol 'saved-face)
                              (get symbol 'face-defface-spec)
                              ;; Attempt to construct it.
                              (list (list t (face-custom-attributes-get
                              (get symbol 'face-defface-spec)
                              ;; Attempt to construct it.
                              (list (list t (face-custom-attributes-get
@@ -3016,7 +3017,7 @@ Leave point at the location of the call, or after the last expression."
                                           (not (get symbol 'force-value)))))))
                    (when value
                      (princ "\n '(")
                                           (not (get symbol 'force-value)))))))
                    (when value
                      (princ "\n '(")
-                     (princ symbol)
+                     (prin1 symbol)
                      (princ " ")
                      (prin1 (car value))
                      (cond (requests
                      (princ " ")
                      (prin1 (car value))
                      (cond (requests
@@ -3057,7 +3058,7 @@ Leave point at the location of the call, or after the last expression."
                               ;; Don't print default face here.
                               value)
                      (princ "\n '(")
                               ;; Don't print default face here.
                               value)
                      (princ "\n '(")
-                     (princ symbol)
+                     (prin1 symbol)
                      (princ " ")
                      (prin1 value)
                      (if (or (get symbol 'face-defface-spec)
                      (princ " ")
                      (prin1 value)
                      (if (or (get symbol 'face-defface-spec)
index 09e7771..6be65ba 100644 (file)
                           :help-echo "\
 Text size (e.g. 9pt or 2mm).")
           custom-set-face-font-size custom-face-font-size)
                           :help-echo "\
 Text size (e.g. 9pt or 2mm).")
           custom-set-face-font-size custom-face-font-size)
-    (:stipple (editable-field :format "Stipple: %v"
-                             :help-echo "Name of background bitmap file.")
-             set-face-stipple custom-face-stipple)
     (:family (editable-field :format "Font Family: %v"
                             :help-echo "\
 Name of font family to use (e.g. times).") 
             custom-set-face-font-family custom-face-font-family)
     (:family (editable-field :format "Font Family: %v"
                             :help-echo "\
 Name of font family to use (e.g. times).") 
             custom-set-face-font-family custom-face-font-family)
+    (:background-pixmap (editable-field :format "Background pixmap: %v"
+                                       :help-echo "\
+Name of background pixmap file.")
+             set-face-background-pixmap custom-face-background-pixmap)
+    (:dim (toggle :format "%[Dim%]: %v\n"
+                 :help-echo "Control whether the text should be dimmed.")
+         set-face-dim-p face-dim-p)
     (:bold (toggle :format "%[Bold%]: %v\n"
                   :help-echo "Control whether a bold font should be used.")
           custom-set-face-bold custom-face-bold)
     (:bold (toggle :format "%[Bold%]: %v\n"
                   :help-echo "Control whether a bold font should be used.")
           custom-set-face-bold custom-face-bold)
@@ -85,7 +89,6 @@ Control whether an italic font should be used.")
                        :help-echo "\
 Control whether the text should be underlined.")
                set-face-underline-p face-underline-p)
                        :help-echo "\
 Control whether the text should be underlined.")
                set-face-underline-p face-underline-p)
-    ;; #### Should make it work on X
     (:strikethru (toggle :format "%[Strikethru%]: %v\n"
                         :help-echo "\
 Control whether the text should be strikethru.")
     (:strikethru (toggle :format "%[Strikethru%]: %v\n"
                         :help-echo "\
 Control whether the text should be strikethru.")
@@ -146,6 +149,14 @@ If FRAME is nil, use the default face."
        (error nil)))
     result))
 
        (error nil)))
     result))
 
+(defsubst custom-face-get-spec (symbol)
+  (or (get symbol 'customized-face)
+      (get symbol 'saved-face)
+      (get symbol 'face-defface-spec)
+      ;; Attempt to construct it.
+      (list (list t (face-custom-attributes-get
+                    symbol (selected-frame))))))
+
 (defun custom-set-face-bold (face value &optional frame)
   "Set the bold property of FACE to VALUE."
   (if value
 (defun custom-set-face-bold (face value &optional frame)
   "Set the bold property of FACE to VALUE."
   (if value
@@ -178,8 +189,8 @@ If FRAME is nil, use the default face."
         (fontobj (font-create-object font)))
     (font-italic-p fontobj)))
 
         (fontobj (font-create-object font)))
     (font-italic-p fontobj)))
 
-(defun custom-face-stipple (face &rest args)
-  "Return the name of the stipple file used for FACE."
+(defun custom-face-background-pixmap (face &rest args)
+  "Return the name of the background pixmap file used for FACE."
   (let ((image  (apply 'specifier-instance 
                       (face-background-pixmap face) args)))
     (and image 
   (let ((image  (apply 'specifier-instance 
                       (face-background-pixmap face) args)))
     (and image 
@@ -215,6 +226,15 @@ If FRAME is nil, use the default face."
         (fontobj (font-create-object font)))
     (font-family fontobj)))
 
         (fontobj (font-create-object font)))
     (font-family fontobj)))
 
+;;;###autoload
+(defun custom-set-face-update-spec (face display plist)
+  "Customize the FACE for display types matching DISPLAY, merging
+  in the new items from PLIST"
+  (let ((spec (face-spec-update-all-matching (custom-face-get-spec face)
+                                            display plist)))
+    (put face 'customized-face spec)
+    (face-spec-set face spec)))
+
 ;;; Initializing.
 
 ;;;###autoload
 ;;; Initializing.
 
 ;;;###autoload
index d4da910..54b38b3 100644 (file)
 (custom-add-loads 'drag-n-drop '("dragdrop"))
 (custom-add-loads 'mouse '("mouse" "mwheel"))
 (custom-add-loads 'etags '("etags"))
 (custom-add-loads 'drag-n-drop '("dragdrop"))
 (custom-add-loads 'mouse '("mouse" "mwheel"))
 (custom-add-loads 'etags '("etags"))
+(custom-add-loads 'package-tools '("package-get" "package-ui"))
 (custom-add-loads 'widgets '("wid-browse" "wid-edit"))
 (custom-add-loads 'menu '("menubar-items"))
 (custom-add-loads 'minibuffer '("simple" "minibuf"))
 (custom-add-loads 'log-message '("simple"))
 (custom-add-loads 'environment '("frame" "keydefs" "minibuf" "modeline" "window-xemacs" "menubar" "x-init" "toolbar-items" "cus-edit" "gnuserv" "sound"))
 (custom-add-loads 'sound '("sound"))
 (custom-add-loads 'widgets '("wid-browse" "wid-edit"))
 (custom-add-loads 'menu '("menubar-items"))
 (custom-add-loads 'minibuffer '("simple" "minibuf"))
 (custom-add-loads 'log-message '("simple"))
 (custom-add-loads 'environment '("frame" "keydefs" "minibuf" "modeline" "window-xemacs" "menubar" "x-init" "toolbar-items" "cus-edit" "gnuserv" "sound"))
 (custom-add-loads 'sound '("sound"))
+(custom-add-loads 'pui '("package-ui"))
 (custom-add-loads 'terminals '("gnuserv"))
 (custom-add-loads 'auto-save '("files" "auto-save"))
 (custom-add-loads 'mail '("simple"))
 (custom-add-loads 'terminals '("gnuserv"))
 (custom-add-loads 'auto-save '("files" "auto-save"))
 (custom-add-loads 'mail '("simple"))
 (custom-add-loads 'help '("help" "cus-edit" "hyper-apropos" "info"))
 (custom-add-loads 'keyboard '("cmdloop"))
 (custom-add-loads 'hyper-apropos-faces '("hyper-apropos"))
 (custom-add-loads 'help '("help" "cus-edit" "hyper-apropos" "info"))
 (custom-add-loads 'keyboard '("cmdloop"))
 (custom-add-loads 'hyper-apropos-faces '("hyper-apropos"))
+(custom-add-loads 'ldap '("ldap"))
 (custom-add-loads 'widget-browse '("wid-browse"))
 (custom-add-loads 'data '("auto-save"))
 (custom-add-loads 'warnings '("simple"))
 (custom-add-loads 'widget-documentation '("wid-edit"))
 (custom-add-loads 'widget-browse '("wid-browse"))
 (custom-add-loads 'data '("auto-save"))
 (custom-add-loads 'warnings '("simple"))
 (custom-add-loads 'widget-documentation '("wid-edit"))
+(custom-add-loads 'comm '("ldap"))
 (custom-add-loads 'backup '("files"))
 (custom-add-loads 'frames '("frame" "window-xemacs" "gui" "gnuserv"))
 (custom-add-loads 'customize '("cus-edit" "wid-edit"))
 (custom-add-loads 'backup '("files"))
 (custom-add-loads 'frames '("frame" "window-xemacs" "gui" "gnuserv"))
 (custom-add-loads 'customize '("cus-edit" "wid-edit"))
 (custom-add-loads 'toolbar '("toolbar-items"))
 (custom-add-loads 'dired '("files"))
 (custom-add-loads 'dnd-debug '("dragdrop"))
 (custom-add-loads 'toolbar '("toolbar-items"))
 (custom-add-loads 'dired '("files"))
 (custom-add-loads 'dnd-debug '("dragdrop"))
+(custom-add-loads 'package-get '("package-get"))
 (custom-add-loads 'killing '("simple"))
 (custom-add-loads 'widget-button '("wid-edit"))
 (custom-add-loads 'paren-blinking '("simple"))
 (custom-add-loads 'find-file '("files"))
 (custom-add-loads 'killing '("simple"))
 (custom-add-loads 'widget-button '("wid-edit"))
 (custom-add-loads 'paren-blinking '("simple"))
 (custom-add-loads 'find-file '("files"))
+(custom-add-loads 'font-menu '("x-font-menu"))
 (custom-add-loads 'files '("files"))
 (custom-add-loads 'build '("build-report"))
 (custom-add-loads 'font-lock '("font-lock"))
 (custom-add-loads 'files '("files"))
 (custom-add-loads 'build '("build-report"))
 (custom-add-loads 'font-lock '("font-lock"))
index 5b53d63..77dd59d 100644 (file)
@@ -284,8 +284,7 @@ Read the section about customization in the Emacs Lisp manual for more
 information."
   `(custom-declare-group (quote ,symbol) ,members ,doc ,@args))
 
 information."
   `(custom-declare-group (quote ,symbol) ,members ,doc ,@args))
 
-;; This is preloaded very early, so we avoid using CL features.
-(defvar custom-group-hash-table (make-hashtable 300 'eq)
+(defvar custom-group-hash-table (make-hash-table :size 300 :test 'eq)
   "Hash-table of non-empty groups.")
 
 (defun custom-add-to-group (group option widget)
   "Hash-table of non-empty groups.")
 
 (defun custom-add-to-group (group option widget)
index 9210fd8..a2c6a5c 100644 (file)
@@ -146,35 +146,35 @@ been generated automatically, with a reference to the keymap."
             (setq docstring nil)))
   (setq docstring (or docstring (derived-mode-make-docstring parent child)))
 
             (setq docstring nil)))
   (setq docstring (or docstring (derived-mode-make-docstring parent child)))
 
-  (` (progn 
-       (derived-mode-init-mode-variables (quote (, child)))
-       (defun (, child) ()
-        (, docstring)
+  `(progn 
+       (derived-mode-init-mode-variables (quote ,child))
+       (defun ,child ()
+        ,docstring
         (interactive)
                                        ; Run the parent.
         (interactive)
                                        ; Run the parent.
-        ((, parent))
+        (,parent)
                                        ; Identify special modes.
                                        ; Identify special modes.
-        (if (get (quote (, parent)) 'special)
-            (put (quote (, child)) 'special t))
+        (if (get (quote ,parent) 'special)
+            (put (quote ,child) 'special t))
         ;; XEmacs addition
         ;; XEmacs addition
-        (let ((mode-class (get (quote (, parent)) 'mode-class)))
+        (let ((mode-class (get (quote ,parent) 'mode-class)))
           (if mode-class
           (if mode-class
-              (put (quote (, child)) 'mode-class mode-class)))
+              (put (quote ,child) 'mode-class mode-class)))
                                        ; Identify the child mode.
                                        ; Identify the child mode.
-        (setq major-mode (quote (, child)))
-        (setq mode-name (, name))
+        (setq major-mode (quote ,child))
+        (setq mode-name ,name)
                                        ; Set up maps and tables.
                                        ; Set up maps and tables.
-        (derived-mode-set-keymap (quote (, child)))
-        (derived-mode-set-syntax-table (quote (, child)))
-        (derived-mode-set-abbrev-table (quote (, child)))
+        (derived-mode-set-keymap (quote ,child))
+        (derived-mode-set-syntax-table (quote ,child))
+        (derived-mode-set-abbrev-table (quote ,child))
                                        ; Splice in the body (if any).
                                        ; Splice in the body (if any).
-        (,@ body)
+        ,@body
 ;;;                                    ; Run the setup function, if
 ;;;                                    ; any -- this will soon be
 ;;;                                    ; obsolete.
 ;;;                                    ; Run the setup function, if
 ;;;                                    ; any -- this will soon be
 ;;;                                    ; obsolete.
-;;;     (derived-mode-run-setup-function (quote (, child)))
+;;;     (derived-mode-run-setup-function (quote ,child))
                                        ; Run the hooks, if any.
                                        ; Run the hooks, if any.
-        (derived-mode-run-hooks (quote (, child)))))))
+        (derived-mode-run-hooks (quote ,child)))))
 
 
 ;; PUBLIC: find the ultimate class of a derived mode.
 
 
 ;; PUBLIC: find the ultimate class of a derived mode.
@@ -223,30 +223,30 @@ the first time the mode is used."
 
   (if (boundp (derived-mode-map-name mode))
       t
 
   (if (boundp (derived-mode-map-name mode))
       t
-    (eval (` (defvar (, (derived-mode-map-name mode))
-              ;; XEmacs change
-              (make-sparse-keymap (derived-mode-map-name mode))
-              (, (format "Keymap for %s." mode)))))
+    (eval `(defvar ,(derived-mode-map-name mode)
+            ;; XEmacs change
+            (make-sparse-keymap (derived-mode-map-name mode))
+            ,(format "Keymap for %s." mode)))
     (put (derived-mode-map-name mode) 'derived-mode-unmerged t))
 
   (if (boundp (derived-mode-syntax-table-name mode))
       t
     (put (derived-mode-map-name mode) 'derived-mode-unmerged t))
 
   (if (boundp (derived-mode-syntax-table-name mode))
       t
-    (eval (` (defvar (, (derived-mode-syntax-table-name mode))
-              ;; XEmacs change
-              ;; Make a syntax table which doesn't specify anything
-              ;; for any char.  Valid data will be merged in by
-              ;; derived-mode-merge-syntax-tables.
-              ;; (make-char-table 'syntax-table nil)
-              (make-syntax-table)
-              (, (format "Syntax table for %s." mode)))))
+    (eval `(defvar ,(derived-mode-syntax-table-name mode)
+            ;; XEmacs change
+            ;; Make a syntax table which doesn't specify anything
+            ;; for any char.  Valid data will be merged in by
+            ;; derived-mode-merge-syntax-tables.
+            ;; (make-char-table 'syntax-table nil)
+            (make-syntax-table)
+            ,(format "Syntax table for %s." mode)))
     (put (derived-mode-syntax-table-name mode) 'derived-mode-unmerged t))
 
   (if (boundp (derived-mode-abbrev-table-name mode))
       t
     (put (derived-mode-syntax-table-name mode) 'derived-mode-unmerged t))
 
   (if (boundp (derived-mode-abbrev-table-name mode))
       t
-    (eval (` (defvar (, (derived-mode-abbrev-table-name mode))
-              (progn (define-abbrev-table (derived-mode-abbrev-table-name mode) nil)
-                     (make-abbrev-table))
-              (, (format "Abbrev table for %s." mode)))))))
+    (eval `(defvar ,(derived-mode-abbrev-table-name mode)
+            (progn (define-abbrev-table (derived-mode-abbrev-table-name mode) nil)
+                   (make-abbrev-table))
+            ,(format "Abbrev table for %s." mode)))))
 
 (defun derived-mode-make-docstring (parent child)
   "Construct a docstring for a new mode if none is provided."
 
 (defun derived-mode-make-docstring (parent child)
   "Construct a docstring for a new mode if none is provided."
index 6d40d5f..06bac1c 100644 (file)
@@ -106,6 +106,29 @@ the toolbar, glyphs, etc."
   (or device (setq device (selected-device)))
   (console-on-window-system-p (device-console device)))
 
   (or device (setq device (selected-device)))
   (console-on-window-system-p (device-console device)))
 
+(defun call-device-method (name device &rest args)
+  "Call a DEVICE-specific function with the generic name NAME.
+If DEVICE is not provide the selected device is used."
+  (or device (setq device (selected-device)))
+  (or (symbolp name) (error "function name must be a symbol"))
+  (let ((devmeth (intern (concat (symbol-name 
+                                 (device-type device)) "-" (symbol-name name)))))
+    (if (functionp devmeth)
+       (if args
+           (apply devmeth args)
+         (funcall devmeth))
+      nil)))
+
+(defmacro define-device-method (name &optional docstring)
+  "Define NAME to be a device method."
+  `(defun ,name (&rest arglist) ,docstring
+     (apply 'call-device-method (quote ,name) nil arglist)))
+
+(defmacro define-device-method* (name &optional docstring)
+  "Define NAME to be a device method."
+  `(defun* ,name (&rest arglist) ,docstring
+     (apply 'call-device-method (quote ,name) nil arglist)))
+
 (defalias 'valid-device-type-p 'valid-console-type-p)
 (defalias 'device-type-list 'console-type-list)
 (defalias 'device-pixel-depth 'device-bitplanes)
 (defalias 'valid-device-type-p 'valid-console-type-p)
 (defalias 'device-type-list 'console-type-list)
 (defalias 'device-pixel-depth 'device-bitplanes)
index 2185d19..9992f07 100644 (file)
 
 ;;; Code:
 
 
 ;;; Code:
 
-;;; The variable byte-code-vector is defined by the new bytecomp.el.
-;;; The function byte-decompile-lapcode is defined in byte-opt.el.
-;;; Since we don't use byte-decompile-lapcode, let's try not loading byte-opt.
-;;; The variable byte-code-vector is defined by the new bytecomp.el.
-;;; The function byte-decompile-lapcode is defined in byte-optimize.el.
 (require 'byte-optimize)
 
 (defvar disassemble-column-1-indent 8 "*")
 (defvar disassemble-column-2-indent 10 "*")
 (defvar disassemble-recursive-indent 3 "*")
 
 (require 'byte-optimize)
 
 (defvar disassemble-column-1-indent 8 "*")
 (defvar disassemble-column-2-indent 10 "*")
 (defvar disassemble-recursive-indent 3 "*")
 
-
 ;;;###autoload
 (defun disassemble (object &optional buffer indent interactive-p)
   "Print disassembled code for OBJECT in (optional) BUFFER.
 ;;;###autoload
 (defun disassemble (object &optional buffer indent interactive-p)
   "Print disassembled code for OBJECT in (optional) BUFFER.
@@ -75,8 +69,8 @@ redefine OBJECT if it is a symbol."
 
 
 (defun disassemble-internal (obj indent interactive-p)
 
 
 (defun disassemble-internal (obj indent interactive-p)
-  (let ((macro 'nil)
-       (name 'nil)
+  (let ((macro nil)
+       (name nil)
        args)
     (while (symbolp obj)
       (setq name obj
        args)
     (while (symbolp obj)
       (setq name obj
@@ -169,8 +163,8 @@ redefine OBJECT if it is a symbol."
 
 
 (defun disassemble-1 (obj indent)
 
 
 (defun disassemble-1 (obj indent)
-  "Prints the byte-code call OBJ in the current buffer.
-OBJ should be a call to BYTE-CODE generated by the byte compiler."
+  "Print the byte-code call OBJ in the current buffer.
+OBJ should be a compiled-function object generated by the byte compiler."
   (let (bytes constvec)
     (if (consp obj)
        (setq bytes (car (cdr obj))             ; the byte code
   (let (bytes constvec)
     (if (consp obj)
        (setq bytes (car (cdr obj))             ; the byte code
@@ -254,10 +248,10 @@ OBJ should be a call to BYTE-CODE generated by the byte compiler."
                       ((eq (car-safe (car-safe arg)) 'byte-code)
                        (insert "(<byte code>...)\n")
                        (mapcar         ;recurse on list of byte-code objects
                       ((eq (car-safe (car-safe arg)) 'byte-code)
                        (insert "(<byte code>...)\n")
                        (mapcar         ;recurse on list of byte-code objects
-                        '(lambda (obj)
-                           (disassemble-1
-                            obj
-                            (+ indent disassemble-recursive-indent)))
+                        #'(lambda (obj)
+                            (disassemble-1
+                             obj
+                             (+ indent disassemble-recursive-indent)))
                         arg))
                       (t
                        ;; really just a constant
                         arg))
                       (t
                        ;; really just a constant
index 92d3069..9c46f55 100644 (file)
@@ -51,7 +51,7 @@ text is inserted."
 
 (defcustom dragdrop-autoload-tm-view nil
   "*{EXPERIMENTAL} If non-nil, autoload tm-view to decode MIME data.
 
 (defcustom dragdrop-autoload-tm-view nil
   "*{EXPERIMENTAL} If non-nil, autoload tm-view to decode MIME data.
-Otherwise, the buffer is only decoded if tm-view is already avaiable."
+Otherwise, the buffer is only decoded if tm-view is already available."
   :type 'boolean
   :group 'drag-n-drop)
 
   :type 'boolean
   :group 'drag-n-drop)
 
@@ -176,7 +176,7 @@ Returns t if one of drop-funs returns t. Otherwise returns nil."
       (and (or (eq (cadr flist) t)
               (= (cadr flist) button))
           (or (eq (caddr flist) t)
       (and (or (eq (cadr flist) t)
               (= (cadr flist) button))
           (or (eq (caddr flist) t)
-              (dragdrop-compare-mods (caddr flist) modifiers))
+              (dragdrop-compare-mods (caddr flist) mods))
           (apply (car flist) `(,event ,object ,@(cdddr flist)))
           ;; (funcall (car flist) event object)
           (throw 'dragdrop-drop-is-done t))
           (apply (car flist) `(,event ,object ,@(cdddr flist)))
           ;; (funcall (car flist) event object)
           (throw 'dragdrop-drop-is-done t))
@@ -356,7 +356,7 @@ format."
 This function uses special data types if the low-level
 protocol requires it. It does so by calling
 dragdrop-drag-pure-text."
 This function uses special data types if the low-level
 protocol requires it. It does so by calling
 dragdrop-drag-pure-text."
-  (dragdrop-drag-pure-text event
+  (experimental-dragdrop-drag-pure-text event
                           (buffer-substring-no-properties begin end)))
 
 (defun experimental-dragdrop-drag-pure-text (event text)
                           (buffer-substring-no-properties begin end)))
 
 (defun experimental-dragdrop-drag-pure-text (event text)
index 81e4de3..10117d5 100644 (file)
                                             late-package-load-path
                                             '()
                                             lisp-directory
                                             late-package-load-path
                                             '()
                                             lisp-directory
-                                            site-directory)))
+                                            site-directory))
+
+  (setq module-directory (paths-find-module-directory roots))
+  (if debug-paths
+      (princ (format "module-directory:\n%S\n" module-directory)
+            'external-debugging-output))
+  (setq site-module-directory (and (null inhibit-site-modules)
+                           (paths-find-site-module-directory roots)))
+  (if (and debug-paths (null inhibit-site-modules))
+      (princ (format "site-module-directory:\n%S\n" site-module-directory)
+            'external-debugging-output))
+
+  (setq module-load-path (paths-construct-module-load-path roots
+                                                        module-directory
+                                                        site-module-directory)))
 
 ;;; dump-paths.el ends here
 
 ;;; dump-paths.el ends here
index cbbecfb..07c67ce 100644 (file)
@@ -2,7 +2,6 @@
       (assemble-list
         "backquote"            ; needed for defsubst etc.
        "bytecomp-runtime"      ; define defsubst
       (assemble-list
         "backquote"            ; needed for defsubst etc.
        "bytecomp-runtime"      ; define defsubst
-       "Installation.el"
        "find-paths"
        "packages"              ; Bootstrap run-time lisp environment
        "setup-paths"
        "find-paths"
        "packages"              ; Bootstrap run-time lisp environment
        "setup-paths"
 
        (when-feature mule "arabic")
        (when-feature mule "chinese")
 
        (when-feature mule "arabic")
        (when-feature mule "chinese")
-       (when-feature mule "mule-base/cyrillic") ; overloaded in leim/quail
+       (when-feature mule "mule/cyrillic") ; overloaded in leim/quail
        (when-feature mule "english")
        (when-feature mule "english")
-;;     (when-feature mule "ethiopic")
+       (when-feature mule "ethiopic")
        (when-feature mule "european")
        (when-feature mule "european")
-       (when-feature mule "mule-base/greek") ; overloaded in leim/quail
+       (when-feature mule "mule/greek") ; overloaded in leim/quail
        (when-feature mule "hebrew")
        (when-feature mule "japanese")
        (when-feature mule "korean")
        (when-feature mule "misc-lang")
        (when-feature mule "hebrew")
        (when-feature mule "japanese")
        (when-feature mule "korean")
        (when-feature mule "misc-lang")
-;;     (when-feature mule "thai")
+       (when-feature mule "thai-xtis")
        (when-feature mule "viet-chars")
        (when-feature mule "viet-chars")
-;;     (when-feature mule "vietnamese")
+       (when-feature mule "vietnamese")
 
        ;; Specialized language support
        (when-feature (and mule CANNA) "canna-leim")
 
        ;; Specialized language support
        (when-feature (and mule CANNA) "canna-leim")
index 3bd9f34..906b51d 100644 (file)
@@ -23,7 +23,9 @@
 ;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 ;; 02111-1307, USA.
 
 ;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 ;; 02111-1307, USA.
 
-;;; Synched up with: Not synched with FSF.
+;;; Synched up with: Not synched with FSF but coordinated with the FSF
+;;;                  easymenu maintor for compatability with FSF 20.4.
+;;; Please: Coordinate changes with Inge Frick <inge@nada.kth.se>
 
 ;; Commentary:
 
 
 ;; Commentary:
 
 ;; - Function: easy-menu-remove MENU
 ;;     Remove MENU from the current menubar.
 
 ;; - Function: easy-menu-remove MENU
 ;;     Remove MENU from the current menubar.
 
+;; - Function: easy-menu-add-item
+;;     Add item or submenu to existing menu
+
+;; - Function: easy-menu-item-present-p
+;;     Locate item
+
+;; - Function: easy-menu-remove-item
+;;     Delete item from menu.
+
 ;; Emacs 19 never uses `easy-menu-add' or `easy-menu-remove', menus
 ;; automatically appear and disappear when the keymaps specified by
 ;; the MAPS argument to `easy-menu-define' are activated.
 ;; Emacs 19 never uses `easy-menu-add' or `easy-menu-remove', menus
 ;; automatically appear and disappear when the keymaps specified by
 ;; the MAPS argument to `easy-menu-define' are activated.
@@ -137,9 +148,9 @@ A menu item can be a list.  It is treated as a submenu.
 The first element should be the submenu name.  That's used as the
 menu item in the top-level menu.  The cdr of the submenu list
 is a list of menu items, as above."
 The first element should be the submenu name.  That's used as the
 menu item in the top-level menu.  The cdr of the submenu list
 is a list of menu items, as above."
-  (` (progn
-       (defvar (, symbol) nil (, doc))
-       (easy-menu-do-define (quote (, symbol)) (, maps) (, doc) (, menu)))))
+  `(progn
+     (defvar ,symbol nil ,doc)
+     (easy-menu-do-define (quote ,symbol) ,maps ,doc ,menu)))
 
 (defun easy-menu-do-define (symbol maps doc menu)
   (if (featurep 'menubar)
 
 (defun easy-menu-do-define (symbol maps doc menu)
   (if (featurep 'menubar)
@@ -200,6 +211,50 @@ is a list of menu items, as above."
             (assoc (car menu) current-menubar)
             (delete-menu-item (list (car menu)))))))
 
             (assoc (car menu) current-menubar)
             (delete-menu-item (list (car menu)))))))
 
+(defsubst easy-menu-normalize (menu)
+  (if (symbolp menu)
+      (symbol-value menu)
+    menu))
+
+(defun easy-menu-add-item (menu path item &optional before)
+  "At the end of the submenu of MENU with path PATH add ITEM.
+If ITEM is already present in this submenu, then this item will be changed.
+otherwise ITEM will be added at the end of the submenu, unless the optional
+argument BEFORE is present, in which case ITEM will instead be added
+before the item named BEFORE.
+MENU is either a symbol, which have earlier been used as the first
+argument in a call to `easy-menu-define', or the value of such a symbol
+i.e. a menu, or nil which stands for the current menubar.
+PATH is a list of strings for locating the submenu where ITEM is to be
+added.  If PATH is nil, MENU itself is used.  Otherwise, the first
+element should be the name of a submenu directly under MENU.  This
+submenu is then traversed recursively with the remaining elements of PATH.
+ITEM is either defined as in `easy-menu-define', a menu defined earlier
+by `easy-menu-define' or `easy-menu-create-menu' or an item returned
+from `easy-menu-item-present-p' or `easy-menu-remove-item'."
+  (add-menu-button path item before (easy-menu-normalize menu)))                  
+
+(defun easy-menu-item-present-p (menu path name)
+  "In submenu of MENU with path PATH, return true iff item NAME is present.
+MENU and PATH are defined as in `easy-menu-add-item'.
+NAME should be a string, the name of the element to be looked for.
+
+The return value can be used as as an argument to `easy-menu-add-item'."
+  (car (find-menu-item (or (easy-menu-normalize menu) current-menubar)
+                      (append path (list name)))))
+
+(defun easy-menu-remove-item (menu path name)
+  "From submenu of MENU with path PATH remove item NAME.
+MENU and PATH are defined as in `easy-menu-add-item'.
+NAME should be a string, the name of the element to be removed.
+
+The return value can be used as as an argument to `easy-menu-add-item'."
+  (delete-menu-item (append path (list name))
+                   (easy-menu-normalize menu)))
+  
+
+
+
 ;; Think up a good title for the menu.  Take the major-mode of the
 ;; buffer, strip the -mode part, convert hyphens to spaces, and
 ;; capitalize it.
 ;; Think up a good title for the menu.  Take the major-mode of the
 ;; buffer, strip the -mode part, convert hyphens to spaces, and
 ;; capitalize it.
index 14f69d2..00180d6 100644 (file)
@@ -554,7 +554,7 @@ Make it buffer-local in a mode hook.  The function is called with no
  arguments.")
 
 (defvar find-tag-hook nil
  arguments.")
 
 (defvar find-tag-hook nil
-  "Function to call after a tag is found.
+  "*Function to call after a tag is found.
 Make it buffer-local in a mode hook.  The function is called with no
  arguments.")
 
 Make it buffer-local in a mode hook.  The function is called with no
  arguments.")
 
@@ -662,7 +662,7 @@ If it returns non-nil, this file needs processing by evalling
                    syn-tab exact-syntax-table)
            (setq tag-target tagname
                  syn-tab normal-syntax-table))
                    syn-tab exact-syntax-table)
            (setq tag-target tagname
                  syn-tab normal-syntax-table))
-         (with-caps-disable-folding tag-target
+         (with-search-caps-disable-folding tag-target t
            (while tag-tables
              (set-buffer (get-tag-table-buffer (car tag-tables)))
              (bury-buffer (current-buffer))
            (while tag-tables
              (set-buffer (get-tag-table-buffer (car tag-tables)))
              (bury-buffer (current-buffer))
@@ -777,11 +777,11 @@ Variables of note:
     (push-mark)
     (goto-char tag-point)
     (if find-tag-hook
     (push-mark)
     (goto-char tag-point)
     (if find-tag-hook
-       (funcall find-tag-hook)
+               (run-hooks 'find-tag-hook)
       (if local-find-tag-hook
       (if local-find-tag-hook
-         (funcall local-find-tag-hook))))
+                 (run-hooks 'local-find-tag-hook))))
   (setq tags-loop-scan (list 'find-tag nil nil)
   (setq tags-loop-scan (list 'find-tag nil nil)
-       tags-loop-operate nil)
+               tags-loop-operate nil)
   ;; Return t in case used as the tags-loop-scan.
   t)
 
   ;; Return t in case used as the tags-loop-scan.
   t)
 
@@ -963,11 +963,11 @@ To continue searching for next match, use command \\[tags-loop-continue].
 See documentation of variable `tag-table-alist'."
   (interactive "sTags search (regexp): ")
   (if (and (equal regexp "")
 See documentation of variable `tag-table-alist'."
   (interactive "sTags search (regexp): ")
   (if (and (equal regexp "")
-           (eq (car tags-loop-scan) 'with-caps-disable-folding)
+           (eq (car tags-loop-scan) 'with-search-caps-disable-folding)
            (null tags-loop-operate))
       ;; Continue last tags-search as if by `M-,'.
       (tags-loop-continue nil)
            (null tags-loop-operate))
       ;; Continue last tags-search as if by `M-,'.
       (tags-loop-continue nil)
-    (setq tags-loop-scan `(with-caps-disable-folding ,regexp
+    (setq tags-loop-scan `(with-search-caps-disable-folding ,regexp t
                             (re-search-forward ,regexp nil t))
           tags-loop-operate nil)
     (tags-loop-continue (or file-list-form t))))
                             (re-search-forward ,regexp nil t))
           tags-loop-operate nil)
     (tags-loop-continue (or file-list-form t))))
@@ -982,7 +982,7 @@ with the command \\[tags-loop-continue].
 See documentation of variable `tag-table-alist'."
   (interactive
    "sTags query replace (regexp): \nsTags query replace %s by: \nP")
 See documentation of variable `tag-table-alist'."
   (interactive
    "sTags query replace (regexp): \nsTags query replace %s by: \nP")
-  (setq tags-loop-scan `(with-caps-disable-folding ,from
+  (setq tags-loop-scan `(with-search-caps-disable-folding ,from t
                           (if (re-search-forward ,from nil t)
                               ;; When we find a match, move back
                               ;; to the beginning of it so perform-replace
                           (if (re-search-forward ,from nil t)
                               ;; When we find a match, move back
                               ;; to the beginning of it so perform-replace
@@ -1064,7 +1064,7 @@ See documentation of variable `tag-table-alist'."
 \f
 ;; Sample uses of find-tag-hook and find-tag-default-hook
 
 \f
 ;; Sample uses of find-tag-hook and find-tag-default-hook
 
-;; This is wrong.  We should either make this behaviour default and
+;; This is wrong.  We should either make this behavior default and
 ;; back it up, or not use it at all.  For now, I've commented it out.
 ;; --hniksic
 
 ;; back it up, or not use it at all.  For now, I've commented it out.
 ;; --hniksic
 
@@ -1189,6 +1189,7 @@ and `\\[pop-tag-mark]'."
 
 ;;;###autoload (define-key esc-map "*" 'pop-tag-mark)
 
 
 ;;;###autoload (define-key esc-map "*" 'pop-tag-mark)
 
+;;;###autoload
 (defun pop-tag-mark (arg)
   "Go to last tag position.
 `find-tag' maintains a mark-stack seperate from the \\[set-mark-command] mark-stack.
 (defun pop-tag-mark (arg)
   "Go to last tag position.
 `find-tag' maintains a mark-stack seperate from the \\[set-mark-command] mark-stack.
@@ -1203,3 +1204,5 @@ This function pops (and moves to) the tag at the top of this stack."
 \f
 (provide 'etags)
 (provide 'tags)
 \f
 (provide 'etags)
 (provide 'tags)
+
+;;; etags.el ends here
index c587e75..2c1706f 100644 (file)
@@ -120,8 +120,6 @@ See `keyboard-translate-table' for more information."
   (while pairs
     (puthash (pop pairs) (pop pairs) keyboard-translate-table)))
 
   (while pairs
     (puthash (pop pairs) (pop pairs) keyboard-translate-table)))
 
-(put 'backspace 'ascii-character ?\b)
-(put 'delete    'ascii-character ?\177)
 (put 'tab       'ascii-character ?\t)
 (put 'linefeed  'ascii-character ?\n)
 (put 'clear     'ascii-character 12)
 (put 'tab       'ascii-character ?\t)
 (put 'linefeed  'ascii-character ?\n)
 (put 'clear     'ascii-character 12)
index 09a3e79..8231011 100644 (file)
@@ -318,7 +318,6 @@ The following symbols have predefined meanings:
                     For valid instantiators, see `face-boolean-specifier-p'.
 
  dim                Dim all text covered by this face.
                     For valid instantiators, see `face-boolean-specifier-p'.
 
  dim                Dim all text covered by this face.
-                    Only used by faces on TTY devices.
                     For valid instantiators, see `face-boolean-specifier-p'.
 
  blinking           Blink all text covered by this face.
                     For valid instantiators, see `face-boolean-specifier-p'.
 
  blinking           Blink all text covered by this face.
@@ -690,12 +689,12 @@ See `set-face-property' for the semantics of the LOCALE, TAG-SET, and
   (set-face-property face 'highlight highlight-p locale tag-set how-to-add))
 
 (defun face-dim-p (face &optional domain default no-fallback)
   (set-face-property face 'highlight highlight-p locale tag-set how-to-add))
 
 (defun face-dim-p (face &optional domain default no-fallback)
-  "Return t if FACE is dimmed in DOMAIN (TTY domains only).
+  "Return t if FACE is dimmed in DOMAIN.
 See `face-property-instance' for the semantics of the DOMAIN argument."
   (face-property-instance face 'dim domain default no-fallback))
 
 (defun set-face-dim-p (face dim-p &optional locale tag-set how-to-add)
 See `face-property-instance' for the semantics of the DOMAIN argument."
   (face-property-instance face 'dim domain default no-fallback))
 
 (defun set-face-dim-p (face dim-p &optional locale tag-set how-to-add)
-  "Change whether FACE is dimmed in LOCALE (TTY locales only).
+  "Change whether FACE is dimmed in LOCALE.
 DIM-P is normally a face-boolean instantiator; see
  `face-boolean-specifier-p'.
 See `set-face-property' for the semantics of the LOCALE, TAG-SET, and
 DIM-P is normally a face-boolean instantiator; see
  `face-boolean-specifier-p'.
 See `set-face-property' for the semantics of the LOCALE, TAG-SET, and
@@ -750,9 +749,10 @@ See `face-property-instance' for the semantics of the DOMAIN argument."
   (if (not (valid-specifier-domain-p domain))
       (error "Invalid specifier domain"))
   (let ((device (dfw-device domain))
   (if (not (valid-specifier-domain-p domain))
       (error "Invalid specifier domain"))
   (let ((device (dfw-device domain))
-       (common-props '(foreground background font display-table underline))
+       (common-props '(foreground background font display-table underline
+                                  dim))
        (win-props '(background-pixmap strikethru))
        (win-props '(background-pixmap strikethru))
-       (tty-props '(highlight dim blinking reverse)))
+       (tty-props '(highlight blinking reverse)))
 
     ;; First check the properties which are used in common between the
     ;; x and tty devices.  Then, check those properties specific to
 
     ;; First check the properties which are used in common between the
     ;; x and tty devices.  Then, check those properties specific to
@@ -1209,6 +1209,8 @@ See `defface' for information about SPEC."
        (init-face-from-resources face frame))
     (let ((frames (relevant-custom-frames)))
       (reset-face face)
        (init-face-from-resources face frame))
     (let ((frames (relevant-custom-frames)))
       (reset-face face)
+      (if (and (eq 'default face) (featurep 'x))
+         (x-init-global-faces))
       (face-display-set face spec)
       (while frames
        (face-display-set face spec (car frames))
       (face-display-set face spec)
       (while frames
        (face-display-set face spec (car frames))
@@ -1249,13 +1251,44 @@ If FRAME is nil, return the default frame properties."
             ;; and cache it...
             (set-frame-property frame 'custom-properties cache))
           cache))
             ;; and cache it...
             (set-frame-property frame 'custom-properties cache))
           cache))
-       ;; We avoid this cache, because various frame and device
-       ;; properties can change.
-       ;;(default-custom-frame-properties)
+       (default-custom-frame-properties)
        (t
         (setq default-custom-frame-properties
               (extract-custom-frame-properties (selected-frame))))))
 
        (t
         (setq default-custom-frame-properties
               (extract-custom-frame-properties (selected-frame))))))
 
+(defun face-spec-update-all-matching (spec display plist)
+  "Update all entries in the face spec that could match display to
+have the entries from the new plist and return the new spec"
+  (mapcar
+   (lambda (e)
+     (let ((entries (car e))
+          (options (cadr e))
+          (match t)
+          dplist
+          (new-options plist)
+          )
+       (unless (eq display t)
+        (mapc (lambda (arg)
+                (setq dplist (plist-put dplist (car arg) (cadr arg))))
+              display))
+       (unless (eq entries t)
+        (mapc (lambda (arg)
+                (setq match (and match (eq (cadr arg)
+                                           (plist-get
+                                             dplist (car arg)
+                                             (cadr arg))))))
+              entries))
+       (if (not match)
+          e
+        (while new-options
+          (setq options
+                (plist-put options (car new-options) (cadr new-options)))
+          (setq new-options (cddr new-options)))
+        (list entries options))))
+   (copy-sequence spec)))
+       
+                   
+
 (defun face-spec-set-match-display (display &optional frame)
   "Return non-nil if DISPLAY matches FRAME.
 DISPLAY is part of a spec such as can be used in `defface'.
 (defun face-spec-set-match-display (display &optional frame)
   "Return non-nil if DISPLAY matches FRAME.
 DISPLAY is part of a spec such as can be used in `defface'.
@@ -1542,7 +1575,7 @@ If the optional FRAME argument is provided, change only
 in that frame; otherwise change each frame."
   (while (not (find-face face))
     (setq face (signal 'wrong-type-argument (list 'facep face))))
 in that frame; otherwise change each frame."
   (while (not (find-face face))
     (setq face (signal 'wrong-type-argument (list 'facep face))))
-  (locate-file pixmap x-bitmap-file-path ".xbm:" 4)
+  (locate-file pixmap x-bitmap-file-path '(".xbm" ""))
   (while (cond ((stringp pixmap)
                (unless (file-readable-p pixmap)
                  (setq pixmap `[xbm :file ,pixmap]))
   (while (cond ((stringp pixmap)
                (unless (file-readable-p pixmap)
                  (setq pixmap `[xbm :file ,pixmap]))
index 591648d..186043f 100644 (file)
@@ -76,8 +76,7 @@ and FROM the name it is linked to."
                       (regexp :tag "To")))
   :group 'find-file)
 
                       (regexp :tag "To")))
   :group 'find-file)
 
-;;; Turn off backup files on VMS since it has version numbers.
-(defcustom make-backup-files (not (eq system-type 'vax-vms))
+(defcustom make-backup-files t
   "*Non-nil means make a backup of a file the first time it is saved.
 This can be done by renaming the file or by copying.
 
   "*Non-nil means make a backup of a file the first time it is saved.
 This can be done by renaming the file or by copying.
 
@@ -414,8 +413,7 @@ of the same functionality is available as `split-path', which see."
   "Change current directory to given absolute file name DIR."
   ;; Put the name into directory syntax now,
   ;; because otherwise expand-file-name may give some bad results.
   "Change current directory to given absolute file name DIR."
   ;; Put the name into directory syntax now,
   ;; because otherwise expand-file-name may give some bad results.
-  (if (not (eq system-type 'vax-vms))
-      (setq dir (file-name-as-directory dir)))
+  (setq dir (file-name-as-directory dir))
   ;; XEmacs change: stig@hackvan.com
   (if find-file-use-truenames
       (setq dir (file-truename dir)))
   ;; XEmacs change: stig@hackvan.com
   (if find-file-use-truenames
       (setq dir (file-truename dir)))
@@ -790,46 +788,40 @@ If optional argument HACK-HOMEDIR is non-nil, then this also substitutes
        ;; If any elt of directory-abbrev-alist matches this name,
        ;; abbreviate accordingly.
        (while tail
        ;; If any elt of directory-abbrev-alist matches this name,
        ;; abbreviate accordingly.
        (while tail
-         (if (string-match (car (car tail)) filename)
-             (setq filename
-                   (concat (cdr (car tail)) (substring filename (match-end 0)))))
+         (when (string-match (car (car tail)) filename)
+           (setq filename
+                 (concat (cdr (car tail)) (substring filename (match-end 0)))))
          (setq tail (cdr tail))))
          (setq tail (cdr tail))))
-      (if hack-homedir
-         (progn
-           ;; Compute and save the abbreviated homedir name.
-           ;; We defer computing this until the first time it's needed, to
-           ;; give time for directory-abbrev-alist to be set properly.
-           ;; We include a slash at the end, to avoid spurious matches
-           ;; such as `/usr/foobar' when the home dir is `/usr/foo'.
-           (or abbreviated-home-dir
-               (setq abbreviated-home-dir
-                     (let ((abbreviated-home-dir "$foo"))
-                       (concat "\\`" (regexp-quote (abbreviate-file-name
-                                                    (expand-file-name "~")))
-                               "\\(/\\|\\'\\)"))))
-           ;; If FILENAME starts with the abbreviated homedir,
-           ;; make it start with `~' instead.
-           (if (and (string-match abbreviated-home-dir filename)
-                    ;; If the home dir is just /, don't change it.
-                    (not (and (= (match-end 0) 1) ;#### unix-specific
-                              (= (aref filename 0) ?/)))
-                    (not (and (or (eq system-type 'ms-dos)
-                                  (eq system-type 'windows-nt))
-                              (save-match-data
-                                (string-match "^[a-zA-Z]:/$" filename)))))
-               (setq filename
-                     (concat "~"
-                             (substring filename
-                                        (match-beginning 1) (match-end 1))
-                             (substring filename (match-end 0)))))))
+      (when hack-homedir
+       ;; Compute and save the abbreviated homedir name.
+       ;; We defer computing this until the first time it's needed, to
+       ;; give time for directory-abbrev-alist to be set properly.
+       ;; We include a slash at the end, to avoid spurious matches
+       ;; such as `/usr/foobar' when the home dir is `/usr/foo'.
+       (or abbreviated-home-dir
+           (setq abbreviated-home-dir
+                 (let ((abbreviated-home-dir "$foo"))
+                   (concat "\\`" (regexp-quote (abbreviate-file-name
+                                                (expand-file-name "~")))
+                           "\\(/\\|\\'\\)"))))
+       ;; If FILENAME starts with the abbreviated homedir,
+       ;; make it start with `~' instead.
+       (if (and (string-match abbreviated-home-dir filename)
+                ;; If the home dir is just /, don't change it.
+                (not (and (= (match-end 0) 1) ;#### unix-specific
+                          (= (aref filename 0) ?/)))
+                (not (and (memq system-type '(ms-dos windows-nt))
+                          (save-match-data
+                            (string-match "^[a-zA-Z]:/$" filename)))))
+           (setq filename
+                 (concat "~"
+                         (substring filename
+                                    (match-beginning 1) (match-end 1))
+                         (substring filename (match-end 0))))))
       filename)))
 
 (defcustom find-file-not-true-dirname-list nil
       filename)))
 
 (defcustom find-file-not-true-dirname-list nil
-  "*List of logical names for which visiting shouldn't save the true dirname.
-On VMS, when you visit a file using a logical name that searches a path,
-you may or may not want the visited file name to record the specific
-directory where the file was found.  If you *do not* want that, add the logical
-name to this list as a string."
+  "*List of logical names for which visiting shouldn't save the true dirname."
   :type '(repeat (string :tag "Name"))
   :group 'find-file)
 
   :type '(repeat (string :tag "Name"))
   :group 'find-file)
 
@@ -976,65 +968,60 @@ If RAWFILE is non-nil, the file is read literally."
 ;;;            (message "Symbolic link to file in buffer %s"
 ;;;                     (buffer-name linked-buf))))
          (setq buf (create-file-buffer filename))
 ;;;            (message "Symbolic link to file in buffer %s"
 ;;;                     (buffer-name linked-buf))))
          (setq buf (create-file-buffer filename))
-         (set-buffer-major-mode buf)
-         (set-buffer buf)
-         (erase-buffer)
-         (if rawfile
-             (condition-case ()
-                 (insert-file-contents-literally filename t)
-               (file-error
-                (when (and (file-exists-p filename)
-                           (not (file-readable-p filename)))
-                  (kill-buffer buf)
-                  (signal 'file-error (list "File is not readable" filename)))
-                ;; Unconditionally set error
-                (setq error t)))
-           (condition-case ()
-               (insert-file-contents filename t)
-             (file-error
-              (when (and (file-exists-p filename)
-                         (not (file-readable-p filename)))
-                (kill-buffer buf)
-                (signal 'file-error (list "File is not readable" filename)))
-              ;; Run find-file-not-found-hooks until one returns non-nil.
-              (or (run-hook-with-args-until-success 'find-file-not-found-hooks)
-                  ;; If they fail too, set error.
-                  (setq error t)))))
-         ;; Find the file's truename, and maybe use that as visited name.
-         ;; automatically computed in XEmacs, unless jka-compr was used!
-         (unless buffer-file-truename
-           (setq buffer-file-truename truename))
-         (setq buffer-file-number number)
-         ;; On VMS, we may want to remember which directory in a search list
-         ;; the file was found in.
-         (and (eq system-type 'vax-vms)
-              (let (logical)
-                (if (string-match ":" (file-name-directory filename))
-                    (setq logical (substring (file-name-directory filename)
-                                             0 (match-beginning 0))))
-                (not (member logical find-file-not-true-dirname-list)))
-              (setq buffer-file-name buffer-file-truename))
-         (and find-file-use-truenames
-              ;; This should be in C.  Put pathname abbreviations that have
-              ;; been explicitly requested back into the pathname.  Most
-              ;; importantly, strip out automounter /tmp_mnt directories so
-              ;; that auto-save will work
-              (setq buffer-file-name (abbreviate-file-name buffer-file-name)))
-         ;; Set buffer's default directory to that of the file.
-         (setq default-directory (file-name-directory buffer-file-name))
-         ;; Turn off backup files for certain file names.  Since
-         ;; this is a permanent local, the major mode won't eliminate it.
-         (and (not (funcall backup-enable-predicate buffer-file-name))
-              (progn
-                (make-local-variable 'backup-inhibited)
-                (setq backup-inhibited t)))
-         (if rawfile
-             ;; #### FSF 20.3 sets buffer-file-coding-system to
-             ;; `no-conversion' here.  Should we copy?  It also makes
-             ;; `find-file-literally' a local variable and sets it to t.
-             nil
-           (after-find-file error (not nowarn))
-           (setq buf (current-buffer)))))
+         ;; Catch various signals, such as QUIT, and kill the buffer
+         ;; in that case.
+         (condition-case data
+             (progn
+               (set-buffer-major-mode buf)
+               (set-buffer buf)
+               (erase-buffer)
+               (condition-case ()
+                   (if rawfile
+                       (insert-file-contents-literally filename t)
+                     (insert-file-contents filename t))
+                 (file-error
+                  (when (and (file-exists-p filename)
+                             (not (file-readable-p filename)))
+                    (signal 'file-error (list "File is not readable" filename)))
+                  (if rawfile
+                      ;; Unconditionally set error
+                      (setq error t)
+                    (or
+                     ;; Run find-file-not-found-hooks until one returns non-nil.
+                     (run-hook-with-args-until-success 'find-file-not-found-hooks)
+                     ;; If they fail too, set error.
+                     (setq error t)))))
+               ;; Find the file's truename, and maybe use that as visited name.
+               ;; automatically computed in XEmacs, unless jka-compr was used!
+               (unless buffer-file-truename
+                 (setq buffer-file-truename truename))
+               (setq buffer-file-number number)
+               (and find-file-use-truenames
+                    ;; This should be in C.  Put pathname
+                    ;; abbreviations that have been explicitly
+                    ;; requested back into the pathname.  Most
+                    ;; importantly, strip out automounter /tmp_mnt
+                    ;; directories so that auto-save will work
+                    (setq buffer-file-name (abbreviate-file-name buffer-file-name)))
+               ;; Set buffer's default directory to that of the file.
+               (setq default-directory (file-name-directory buffer-file-name))
+               ;; Turn off backup files for certain file names.  Since
+               ;; this is a permanent local, the major mode won't eliminate it.
+               (and (not (funcall backup-enable-predicate buffer-file-name))
+                    (progn
+                      (make-local-variable 'backup-inhibited)
+                      (setq backup-inhibited t)))
+               (if rawfile
+                   ;; #### FSF 20.3 sets buffer-file-coding-system to
+                   ;; `no-conversion' here.  Should we copy?  It also
+                   ;; makes `find-file-literally' a local variable
+                   ;; and sets it to t.
+                   nil
+                 (after-find-file error (not nowarn))
+                 (setq buf (current-buffer))))
+           (t
+            (kill-buffer buf)
+            (signal (car data) (cdr data))))))
       buf)))
 \f
 ;; FSF has `insert-file-literally' and `find-file-literally' here.
       buf)))
 \f
 ;; FSF has `insert-file-literally' and `find-file-literally' here.
@@ -1143,51 +1130,50 @@ run `normal-mode' explicitly."
 
 (defvar auto-mode-alist
   '(("\\.te?xt\\'" . text-mode)
 
 (defvar auto-mode-alist
   '(("\\.te?xt\\'" . text-mode)
-    ("\\.[ch]\\'" . c-mode)
+    ("\\.[chi]\\'" . c-mode)
     ("\\.el\\'" . emacs-lisp-mode)
     ("\\.el\\'" . emacs-lisp-mode)
-    ("\\.\\([CH]\\|cc\\|hh\\)\\'" . c++-mode)
+    ("\\.\\(?:[CH]\\|cc\\|hh\\)\\'" . c++-mode)
     ("\\.[ch]\\(pp\\|xx\\|\\+\\+\\)\\'" . c++-mode)
     ("\\.java\\'" . java-mode)
     ("\\.idl\\'" . idl-mode)
     ("\\.[ch]\\(pp\\|xx\\|\\+\\+\\)\\'" . c++-mode)
     ("\\.java\\'" . java-mode)
     ("\\.idl\\'" . idl-mode)
-    ("\\.f\\(or\\)?\\'" . fortran-mode)
-    ("\\.F\\(OR\\)?\\'" . fortran-mode)
+    ("\\.f\\(?:or\\)?\\'" . fortran-mode)
+    ("\\.F\\(?:OR\\)?\\'" . fortran-mode)
     ("\\.[fF]90\\'" . f90-mode)
 ;;; Less common extensions come here
 ;;; so more common ones above are found faster.
     ("\\.[fF]90\\'" . f90-mode)
 ;;; Less common extensions come here
 ;;; so more common ones above are found faster.
-    ("\\.p[lm]\\'" . perl-mode)
+    ("\\.\\([pP][Llm]\\|al\\)\\'" . perl-mode)
     ("\\.py\\'" . python-mode)
     ("\\.py\\'" . python-mode)
-    ("\\.texi\\(nfo\\)?\\'" . texinfo-mode)
+    ("\\.texi\\(?:nfo\\)?\\'" . texinfo-mode)
     ("\\.ad[abs]\\'" . ada-mode)
     ("\\.ad[abs]\\'" . ada-mode)
-    ("\\.c?l\\(i?sp\\)?\\'" . lisp-mode)
-    ("\\.p\\(as\\)?\\'" . pascal-mode)
+    ("\\.c?l\\(?:i?sp\\)?\\'" . lisp-mode)
+    ("\\.p\\(?:as\\)?\\'" . pascal-mode)
     ("\\.ltx\\'" . latex-mode)
     ("\\.[sS]\\'" . asm-mode)
     ("\\.ltx\\'" . latex-mode)
     ("\\.[sS]\\'" . asm-mode)
-    ("[Cc]hange.?[Ll]og?\\(.[0-9]+\\)?\\'" . change-log-mode)
+    ("[Cc]hange.?[Ll]og?\\(?:.[0-9]+\\)?\\'" . change-log-mode)
     ("\\$CHANGE_LOG\\$\\.TXT" . change-log-mode)
     ("\\.scm?\\(?:\\.[0-9]*\\)?\\'" . scheme-mode)
     ("\\.e\\'" . eiffel-mode)
     ("\\.mss\\'" . scribe-mode)
     ("\\$CHANGE_LOG\\$\\.TXT" . change-log-mode)
     ("\\.scm?\\(?:\\.[0-9]*\\)?\\'" . scheme-mode)
     ("\\.e\\'" . eiffel-mode)
     ("\\.mss\\'" . scribe-mode)
-    ("\\.m\\([mes]\\|an\\)\\'" . nroff-mode)
+    ("\\.m\\(?:[mes]\\|an\\)\\'" . nroff-mode)
     ("\\.icn\\'" . icon-mode)
     ("\\.icn\\'" . icon-mode)
-    ("\\.\\([ckz]?sh\\|shar\\)\\'" . sh-mode)
+    ("\\.\\(?:[ckz]?sh\\|shar\\)\\'" . sh-mode)
     ;; #### Unix-specific!
     ;; #### Unix-specific!
-    ("/\\.\\(bash_\\|z\\)?\\(profile\\|login\||logout\\)\\'" . sh-mode)
-    ("/\\.\\([ckz]sh\\|bash\\|tcsh\\|es\\|xinit\\|startx\\)rc\\'" . sh-mode)
-    ("/\\.\\([kz]shenv\\|xsession\\)\\'" . sh-mode)
+    ("/\\.\\(?:bash_\\|z\\)?\\(profile\\|login\\|logout\\)\\'" . sh-mode)
+    ("/\\.\\(?:[ckz]sh\\|bash\\|tcsh\\|es\\|xinit\\|startx\\)rc\\'" . sh-mode)
+    ("/\\.\\(?:[kz]shenv\\|xsession\\)\\'" . sh-mode)
     ;; The following come after the ChangeLog pattern for the sake of
     ;; ChangeLog.1, etc. and after the .scm.[0-9] pattern too.
     ("\\.[12345678]\\'" . nroff-mode)
     ("\\.[tT]e[xX]\\'" . tex-mode)
     ;; The following come after the ChangeLog pattern for the sake of
     ;; ChangeLog.1, etc. and after the .scm.[0-9] pattern too.
     ("\\.[12345678]\\'" . nroff-mode)
     ("\\.[tT]e[xX]\\'" . tex-mode)
-    ("\\.\\(sty\\|cls\\|bbl\\)\\'" . latex-mode)
+    ("\\.\\(?:sty\\|cls\\|bbl\\)\\'" . latex-mode)
     ("\\.bib\\'" . bibtex-mode)
     ("\\.article\\'" . text-mode)
     ("\\.letter\\'" . text-mode)
     ("\\.bib\\'" . bibtex-mode)
     ("\\.article\\'" . text-mode)
     ("\\.letter\\'" . text-mode)
-    ("\\.\\(tcl\\|exp\\)\\'" . tcl-mode)
+    ("\\.\\(?:tcl\\|exp\\)\\'" . tcl-mode)
     ("\\.wrl\\'" . vrml-mode)
     ("\\.awk\\'" . awk-mode)
     ("\\.prolog\\'" . prolog-mode)
     ("\\.wrl\\'" . vrml-mode)
     ("\\.awk\\'" . awk-mode)
     ("\\.prolog\\'" . prolog-mode)
-    ("\\.tar\\'" . tar-mode)
-    ("\\.\\(arc\\|zip\\|lzh\\|zoo\\)\\'" . archive-mode)
+    ("\\.\\(?:arc\\|zip\\|lzh\\|zoo\\)\\'" . archive-mode)
     ;; Mailer puts message to be edited in /tmp/Re.... or Message
     ;; #### Unix-specific!
     ("\\`/tmp/Re" . text-mode)
     ;; Mailer puts message to be edited in /tmp/Re.... or Message
     ;; #### Unix-specific!
     ("\\`/tmp/Re" . text-mode)
@@ -1201,7 +1187,7 @@ run `normal-mode' explicitly."
     ("\\.oak\\'" . scheme-mode)
     ("\\.s?html?\\'" . html-mode)
     ("\\.htm?l?3\\'" . html3-mode)
     ("\\.oak\\'" . scheme-mode)
     ("\\.s?html?\\'" . html-mode)
     ("\\.htm?l?3\\'" . html3-mode)
-    ("\\.\\(sgml?\\|dtd\\)\\'" . sgml-mode)
+    ("\\.\\(?:sgml?\\|dtd\\)\\'" . sgml-mode)
     ("\\.c?ps\\'" . postscript-mode)
     ;; .emacs following a directory delimiter in either Unix or
     ;; Windows syntax.
     ("\\.c?ps\\'" . postscript-mode)
     ;; .emacs following a directory delimiter in either Unix or
     ;; Windows syntax.
@@ -1214,11 +1200,8 @@ run `normal-mode' explicitly."
     ("\\.X\\(defaults\\|environment\\|resources\\|modmap\\)\\'" . xrdb-mode)
     ;; #### The following three are Unix-specific (but do we care?)
     ("/app-defaults/" . xrdb-mode)
     ("\\.X\\(defaults\\|environment\\|resources\\|modmap\\)\\'" . xrdb-mode)
     ;; #### The following three are Unix-specific (but do we care?)
     ("/app-defaults/" . xrdb-mode)
-    ("\\.[^/]*wm\\'" . winmgr-mode)
-    ("\\.[^/]*wm2?rc" . winmgr-mode)
-    ("\\.[Jj][Pp][Ee]?[Gg]\\'" . image-mode)
-    ("\\.[Pp][Nn][Gg]\\'" . image-mode)
-    ("\\.[Gg][Ii][Ff]\\'" . image-mode)
+    ("\\.[^/]*wm2?\\(?:rc\\)?\\'" . winmgr-mode)
+    ("\\.\\(?:jpe?g\\|JPE?G\\|png\\|PNG\\|gif\\|GIF\\|tiff?\\|TIFF?\\)\\'" . image-mode)
     )
 "Alist of filename patterns vs. corresponding major mode functions.
 Each element looks like (REGEXP . FUNCTION) or (REGEXP FUNCTION NON-NIL).
     )
 "Alist of filename patterns vs. corresponding major mode functions.
 Each element looks like (REGEXP . FUNCTION) or (REGEXP FUNCTION NON-NIL).
@@ -1254,8 +1237,31 @@ The car of each element is a regular expression which is compared
 with the name of the interpreter specified in the first line.
 If it matches, mode MODE is selected.")
 
 with the name of the interpreter specified in the first line.
 If it matches, mode MODE is selected.")
 
-(defvar inhibit-first-line-modes-regexps (purecopy '("\\.tar\\'" "\\.tgz\\'"
-                                                    "\\.tar\\.gz\\'"))
+(defvar binary-file-regexps
+  (purecopy
+   '("\\.\\(?:bz2\\|elc\\|g\\(if\\|z\\)\\|jp\\(eg\\|g\\)\\|png\\|t\\(ar\\|gz\\|iff\\)\\|[Zo]\\)\\'"))
+  "List of regexps of filenames containing binary (non-text) data.")
+
+;   (eval-when-compile
+;     (require 'regexp-opt)
+;     (list
+;      (format "\\.\\(?:%s\\)\\'"
+;            (regexp-opt
+;             '("tar"
+;               "tgz"
+;               "gz"
+;               "bz2"
+;               "Z"
+;               "o"
+;               "elc"
+;               "png"
+;               "gif"
+;               "tiff"
+;               "jpg"
+;               "jpeg"))))))
+  
+(defvar inhibit-first-line-modes-regexps
+  (purecopy binary-file-regexps)
   "List of regexps; if one matches a file name, don't look for `-*-'.")
 
 (defvar inhibit-first-line-modes-suffixes nil
   "List of regexps; if one matches a file name, don't look for `-*-'.")
 
 (defvar inhibit-first-line-modes-suffixes nil
@@ -1305,7 +1311,7 @@ and we don't even do that unless it would come from the file name."
                   (mode nil))
               ;; Find first matching alist entry.
              (let ((case-fold-search
                   (mode nil))
               ;; Find first matching alist entry.
              (let ((case-fold-search
-                    (memq system-type '(vax-vms windows-nt))))
+                    (memq system-type '(windows-nt))))
                (while (and (not mode) alist)
                  (if (string-match (car (car alist)) name)
                      (if (and (consp (cdr (car alist)))
                (while (and (not mode) alist)
                  (if (string-match (car (car alist)) name)
                      (if (and (consp (cdr (car alist)))
@@ -1338,17 +1344,12 @@ and we don't even do that unless it would come from the file name."
                          (setq alist (cdr alist)))))))
               (if mode
                  (if (not (fboundp mode))
                          (setq alist (cdr alist)))))))
               (if mode
                  (if (not (fboundp mode))
-                     (progn
-                       (if (or (not (boundp 'package-get-base))
-                               (not package-get-base))
-                           (load "package-get-base"))
-                       (require 'package-get)
-                       (let ((name (package-get-package-provider mode)))
-                         (if name
-                             (message "Mode %s is not installed.  Download package %s" mode name)
-                           (message "Mode %s either doesn't exist or is not a known package" mode))
-                         (sit-for 2)
-                         (error "%s" mode)))
+                      (let ((name (package-get-package-provider mode)))
+                        (if name
+                            (message "Mode %s is not installed.  Download package %s" mode name)
+                          (message "Mode %s either doesn't exist or is not a known package" mode))
+                        (sit-for 2)
+                        (error "%s" mode))
                    (unless (and just-from-file-name
                                 (or
                                  ;; Don't reinvoke major mode.
                    (unless (and just-from-file-name
                                 (or
                                  ;; Don't reinvoke major mode.
@@ -1723,8 +1724,6 @@ the old visited file has been renamed to the new name FILENAME."
        (let ((new-name (file-name-nondirectory buffer-file-name)))
          (if (string= new-name "")
              (error "Empty file name"))
        (let ((new-name (file-name-nondirectory buffer-file-name)))
          (if (string= new-name "")
              (error "Empty file name"))
-         (if (eq system-type 'vax-vms)
-             (setq new-name (downcase new-name)))
          (setq default-directory (file-name-directory buffer-file-name))
          (or (string= new-name (buffer-name))
              (rename-buffer new-name t))))
          (setq default-directory (file-name-directory buffer-file-name))
          (or (string= new-name (buffer-name))
              (rename-buffer new-name t))))
@@ -1918,9 +1917,7 @@ of the new file to agree with the old modes."
                          ;; Now delete the old versions, if desired.
                          (if delete-old-versions
                              (while targets
                          ;; Now delete the old versions, if desired.
                          (if delete-old-versions
                              (while targets
-                               (condition-case ()
-                                   (delete-file (car targets))
-                                 (file-error nil))
+                               (ignore-file-errors (delete-file (car targets)))
                                (setq targets (cdr targets))))
                          setmodes)
                      (file-error nil)))))))))
                                (setq targets (cdr targets))))
                          setmodes)
                      (file-error nil)))))))))
@@ -1935,28 +1932,17 @@ we do not remove backup version numbers, only true file version numbers."
     (if handler
        (funcall handler 'file-name-sans-versions name keep-backup-version)
       (substring name 0
     (if handler
        (funcall handler 'file-name-sans-versions name keep-backup-version)
       (substring name 0
-                (if (eq system-type 'vax-vms)
-                    ;; VMS version number is (a) semicolon, optional
-                    ;; sign, zero or more digits or (b) period, option
-                    ;; sign, zero or more digits, provided this is the
-                    ;; second period encountered outside of the
-                    ;; device/directory part of the file name.
-                    (or (string-match ";[-+]?[0-9]*\\'" name)
-                        (if (string-match "\\.[^]>:]*\\(\\.[-+]?[0-9]*\\)\\'"
-                                          name)
-                            (match-beginning 1))
-                        (length name))
-                  (if keep-backup-version
-                      (length name)
-                    (or (string-match "\\.~[0-9.]+~\\'" name)
-                        ;; XEmacs - VC uses extensions like ".~tagname~" or ".~1.1.5.2~"
-                        (let ((pos (string-match "\\.~\\([^.~ \t]+\\|[0-9.]+\\)~\\'" name)))
-                          (and pos
-                               ;; #### - is this filesystem check too paranoid?
-                               (file-exists-p (substring name 0 pos))
-                               pos))
-                        (string-match "~\\'" name)
-                        (length name))))))))
+                (if keep-backup-version
+                    (length name)
+                  (or (string-match "\\.~[0-9.]+~\\'" name)
+                      ;; XEmacs - VC uses extensions like ".~tagname~" or ".~1.1.5.2~"
+                      (let ((pos (string-match "\\.~\\([^.~ \t]+\\|[0-9.]+\\)~\\'" name)))
+                        (and pos
+                             ;; #### - is this filesystem check too paranoid?
+                             (file-exists-p (substring name 0 pos))
+                             pos))
+                      (string-match "~\\'" name)
+                      (length name)))))))
 
 (defun file-ownership-preserved-p (file)
   "Return t if deleting FILE and rewriting it would preserve the owner."
 
 (defun file-ownership-preserved-p (file)
   "Return t if deleting FILE and rewriting it would preserve the owner."
@@ -2031,8 +2017,6 @@ the index in the name where the version number begins."
       (string-to-int (substring fn bv-length -1))
       0))
 
       (string-to-int (substring fn bv-length -1))
       0))
 
-;; I believe there is no need to alter this behavior for VMS;
-;; since backup files are not made on VMS, it should not get called.
 (defun find-backup-file-name (fn)
   "Find a file name for a backup file, and suggestions for deletions.
 Value is a list whose car is the name for the backup file
 (defun find-backup-file-name (fn)
   "Find a file name for a backup file, and suggestions for deletions.
 Value is a list whose car is the name for the backup file
@@ -2097,8 +2081,7 @@ then it returns FILENAME."
                       (expand-file-name (or directory default-directory))))
       ;; On Microsoft OSes, if FILENAME and DIRECTORY have different
       ;; drive names, they can't be relative, so return the absolute name.
                       (expand-file-name (or directory default-directory))))
       ;; On Microsoft OSes, if FILENAME and DIRECTORY have different
       ;; drive names, they can't be relative, so return the absolute name.
-      (if (and (or (eq system-type 'ms-dos)
-                  (eq system-type 'windows-nt))
+      (if (and (memq system-type '(ms-dos windows-nt))
               (not (string-equal (substring fname  0 2)
                                  (substring directory 0 2))))
          filename
               (not (string-equal (substring fname  0 2)
                                  (substring directory 0 2))))
          filename
@@ -2168,9 +2151,7 @@ since the last real save, but optional arg FORCE non-nil means delete anyway."
        (not (string= buffer-file-name buffer-auto-save-file-name))
        (or force (recent-auto-save-p))
        (progn
        (not (string= buffer-file-name buffer-auto-save-file-name))
        (or force (recent-auto-save-p))
        (progn
-        (condition-case ()
-            (delete-file buffer-auto-save-file-name)
-          (file-error nil))
+        (ignore-file-errors (delete-file buffer-auto-save-file-name))
         (set-buffer-auto-saved))))
 
 ;; XEmacs change (from Sun)
         (set-buffer-auto-saved))))
 
 ;; XEmacs change (from Sun)
@@ -2212,19 +2193,6 @@ After saving the buffer, run `after-save-hook'."
        (set-buffer (buffer-base-buffer)))
     (if (buffer-modified-p)
        (let ((recent-save (recent-auto-save-p)))
        (set-buffer (buffer-base-buffer)))
     (if (buffer-modified-p)
        (let ((recent-save (recent-auto-save-p)))
-         ;; On VMS, rename file and buffer to get rid of version number.
-         (if (and (eq system-type 'vax-vms)
-                  (not (string= buffer-file-name
-                                (file-name-sans-versions buffer-file-name))))
-             (let (buffer-new-name)
-               ;; Strip VMS version number before save.
-               (setq buffer-file-name
-                     (file-name-sans-versions buffer-file-name))
-               ;; Construct a (unique) buffer name to correspond.
-               (let ((buf (create-file-buffer (downcase buffer-file-name))))
-                 (setq buffer-new-name (buffer-name buf))
-                 (kill-buffer buf))
-               (rename-buffer buffer-new-name)))
          ;; If buffer has no file name, ask user for one.
          (or buffer-file-name
              (let ((filename
          ;; If buffer has no file name, ask user for one.
          (or buffer-file-name
              (let ((filename
@@ -2783,12 +2751,11 @@ non-nil, it is called instead of rereading visited file contents."
                 (not (file-exists-p file-name)))
               (error "Auto-save file %s not current" file-name))
              ((save-window-excursion
                 (not (file-exists-p file-name)))
               (error "Auto-save file %s not current" file-name))
              ((save-window-excursion
-                (if (not (eq system-type 'vax-vms))
-                    (with-output-to-temp-buffer "*Directory*"
-                      (buffer-disable-undo standard-output)
-                      (call-process "ls" nil standard-output nil
-                                    (if (file-symlink-p file) "-lL" "-l")
-                                    file file-name)))
+                (with-output-to-temp-buffer "*Directory*"
+                  (buffer-disable-undo standard-output)
+                  (call-process "ls" nil standard-output nil
+                                (if (file-symlink-p file) "-lL" "-l")
+                                file file-name))
                 (yes-or-no-p (format "Recover auto save file %s? " file-name)))
               (switch-to-buffer (find-file-noselect file t))
               (let ((buffer-read-only nil))
                 (yes-or-no-p (format "Recover auto save file %s? " file-name)))
               (switch-to-buffer (find-file-noselect file t))
               (let ((buffer-read-only nil))
@@ -3088,16 +3055,12 @@ by `sh' are supported."
     ;; not its part.  Make the regexp say so.
     (concat "\\`" result "\\'")))
 \f
     ;; not its part.  Make the regexp say so.
     (concat "\\`" result "\\'")))
 \f
-(defcustom list-directory-brief-switches
-  (if (eq system-type 'vax-vms) "" "-CF")
+(defcustom list-directory-brief-switches "-CF"
   "*Switches for list-directory to pass to `ls' for brief listing."
   :type 'string
   :group 'dired)
 
   "*Switches for list-directory to pass to `ls' for brief listing."
   :type 'string
   :group 'dired)
 
-(defcustom list-directory-verbose-switches
-  (if (eq system-type 'vax-vms)
-      "/PROTECTION/SIZE/DATE/OWNER/WIDTH=(OWNER:10)"
-    "-l")
+(defcustom list-directory-verbose-switches "-l"
   "*Switches for list-directory to pass to `ls' for verbose listing,"
   :type 'string
   :group 'dired)
   "*Switches for list-directory to pass to `ls' for verbose listing,"
   :type 'string
   :group 'dired)
@@ -3167,8 +3130,6 @@ If WILDCARD, it also runs the shell specified by `shell-file-name'."
        (funcall handler 'insert-directory file switches
                 wildcard full-directory-p)
       (cond
        (funcall handler 'insert-directory file switches
                 wildcard full-directory-p)
       (cond
-       ((eq system-type 'vax-vms)
-       (vms-read-directory file switches (current-buffer)))
        ((and (fboundp 'mswindows-insert-directory)
             (eq system-type 'windows-nt))
        (mswindows-insert-directory file switches wildcard full-directory-p))
        ((and (fboundp 'mswindows-insert-directory)
             (eq system-type 'windows-nt))
        (mswindows-insert-directory file switches wildcard full-directory-p))
index f76a017..780d6e6 100644 (file)
@@ -384,6 +384,7 @@ space does not end a sentence, so don't break a line there."
          ;;; 97/3/14 jhod: Kinsoku change
          ;; Spacing is not necessary for charcters of no word-separater.
          ;; The regexp word-across-newline is used for this check.
          ;;; 97/3/14 jhod: Kinsoku change
          ;; Spacing is not necessary for charcters of no word-separater.
          ;; The regexp word-across-newline is used for this check.
+         (defvar word-across-newline)
          (if (not (and (featurep 'mule)
                        (stringp word-across-newline)))
              (subst-char-in-region from (point-max) ?\n ?\ )
          (if (not (and (featurep 'mule)
                        (stringp word-across-newline)))
              (subst-char-in-region from (point-max) ?\n ?\ )
@@ -782,7 +783,7 @@ If the mark is not active, this applies to the current paragraph."
 
 ;; 97/3/14 jhod: This functions are added for Kinsoku support
 (defun find-space-insertable-point ()
 
 ;; 97/3/14 jhod: This functions are added for Kinsoku support
 (defun find-space-insertable-point ()
- "Search backward for a permissable point for inserting justification spaces"
+ "Search backward for a permissible point for inserting justification spaces"
  (if (boundp 'space-insertable)
      (if (re-search-backward space-insertable nil t)
         (progn (forward-char 1)
  (if (boundp 'space-insertable)
      (if (re-search-backward space-insertable nil t)
         (progn (forward-char 1)
index 9685d6e..f5be624 100644 (file)
@@ -62,13 +62,12 @@ from the search."
       (let ((directory (file-name-as-directory
                        (expand-file-name
                         (car directories)))))
       (let ((directory (file-name-as-directory
                        (expand-file-name
                         (car directories)))))
-       (if (file-directory-p directory)
+       (if (paths-file-readable-directory-p directory)
            (let ((raw-entries
                   (if (equal 0 max-depth)
                       '()
            (let ((raw-entries
                   (if (equal 0 max-depth)
                       '()
-                      (directory-files directory nil "^[^.-]")))
+                    (directory-files directory nil "^[^.-]")))
                  (reverse-dirs '()))
                  (reverse-dirs '()))
-
              (while raw-entries
                (if (null (string-match exclude-regexp (car raw-entries)))
                    (setq reverse-dirs
              (while raw-entries
                (if (null (string-match exclude-regexp (car raw-entries)))
                    (setq reverse-dirs
@@ -88,6 +87,11 @@ from the search."
       (setq directories (cdr directories)))
     path))
 
       (setq directories (cdr directories)))
     path))
 
+(defun paths-file-readable-directory-p (filename)
+  "Check if filename is a readable directory."
+  (and (file-directory-p filename)
+       (file-readable-p filename)))
+
 (defun paths-find-recursive-load-path (directories &optional max-depth)
   "Construct a recursive load path underneath DIRECTORIES."
   (paths-find-recursive-path directories
 (defun paths-find-recursive-load-path (directories &optional max-depth)
   "Construct a recursive load path underneath DIRECTORIES."
   (paths-find-recursive-path directories
@@ -97,13 +101,13 @@ from the search."
   "Check if DIRECTORY is a plausible installation root for XEmacs."
   (or
    ;; installed
   "Check if DIRECTORY is a plausible installation root for XEmacs."
   (or
    ;; installed
-   (file-directory-p (paths-construct-path (list directory
-                                                "lib"
-                                                emacs-program-name)))
+   (paths-file-readable-directory-p (paths-construct-path (list directory
+                                                               "lib"
+                                                               emacs-program-name)))
    ;; in-place or windows-nt
    ;; in-place or windows-nt
-   (and 
-    (file-directory-p (paths-construct-path (list directory "lisp")))
-    (file-directory-p (paths-construct-path (list directory "etc"))))))
+   (and
+    (paths-file-readable-directory-p (paths-construct-path (list directory "lisp")))
+    (paths-file-readable-directory-p (paths-construct-path (list directory "etc"))))))
 
 (defun paths-chase-symlink (file-name)
   "Chase a symlink until the bitter end."
 
 (defun paths-chase-symlink (file-name)
   "Chase a symlink until the bitter end."
@@ -148,7 +152,7 @@ to EXPAND-FILE-NAME."
 (defun paths-construct-emacs-directory (root suffix base)
   "Construct a directory name within the XEmacs hierarchy."
   (file-name-as-directory
 (defun paths-construct-emacs-directory (root suffix base)
   "Construct a directory name within the XEmacs hierarchy."
   (file-name-as-directory
-   (expand-file-name 
+   (expand-file-name
     (concat
      (file-name-as-directory root)
      suffix
     (concat
      (file-name-as-directory root)
      suffix
@@ -168,19 +172,19 @@ the directory."
   (let ((preferred-value (or (and envvar (getenv envvar))
                             default)))
     (if (and preferred-value
   (let ((preferred-value (or (and envvar (getenv envvar))
                             default)))
     (if (and preferred-value
-            (file-directory-p preferred-value))
+            (paths-file-readable-directory-p preferred-value))
        (file-name-as-directory preferred-value)
       (catch 'gotcha
        (while roots
          (let* ((root (car roots))
                 ;; installed
                 (path (paths-construct-emacs-directory root suffix base)))
        (file-name-as-directory preferred-value)
       (catch 'gotcha
        (while roots
          (let* ((root (car roots))
                 ;; installed
                 (path (paths-construct-emacs-directory root suffix base)))
-           (if (file-directory-p path)
+           (if (paths-file-readable-directory-p path)
                (throw 'gotcha path)
              ;; in-place
              (if (null keep-suffix)
                  (let ((path (paths-construct-emacs-directory root "" base)))
                (throw 'gotcha path)
              ;; in-place
              (if (null keep-suffix)
                  (let ((path (paths-construct-emacs-directory root "" base)))
-                   (if (file-directory-p path)
+                   (if (paths-file-readable-directory-p path)
                        (throw 'gotcha path))))))
          (setq roots (cdr roots)))
        nil))))
                        (throw 'gotcha path))))))
          (setq roots (cdr roots)))
        nil))))
@@ -230,8 +234,8 @@ If ENFORCE-VERSION is non-nil, the directory must contain the XEmacs version."
   "Return the directories among DIRECTORIES."
   (let ((reverse-directories '()))
     (while directories
   "Return the directories among DIRECTORIES."
   (let ((reverse-directories '()))
     (while directories
-      (if (file-directory-p (car directories))
-         (setq reverse-directories 
+      (if (paths-file-readable-directory-p (car directories))
+         (setq reverse-directories
                (cons (car directories)
                      reverse-directories)))
       (setq directories (cdr directories)))
                (cons (car directories)
                      reverse-directories)))
       (setq directories (cdr directories)))
index 4656b32..8c9594a 100644 (file)
@@ -162,47 +162,44 @@ arguments compiles from `load-path'."
       (insert ";;; Commentary:\n")
       (insert ";; Don't edit this file.  It's generated by finder.el\n\n")
       (insert ";;; Code:\n")
       (insert ";;; Commentary:\n")
       (insert ";; Don't edit this file.  It's generated by finder.el\n\n")
       (insert ";;; Code:\n")
-      (insert "\n(setq finder-package-info '(\n")
+      (insert "\n(defconst finder-package-info '(\n")
       (mapcar
       (mapcar
-       (function
-       (lambda (d)
-         (mapcar
-          (function
-           (lambda (f) 
-             (if (not (member f processed))
-                 (let (summary keystart keywords)
-                   (setq processed (cons f processed))
-                   (if (not finder-compile-keywords-quiet)
-                       (message "Processing %s ..." f))
-                   (save-excursion
-                     (set-buffer (get-buffer-create "*finder-scratch*"))
-                     (buffer-disable-undo (current-buffer))
-                     (erase-buffer)
-                     (insert-file-contents (expand-file-name f d))
-                     (condition-case err
-                         (setq summary  (lm-synopsis)
-                               keywords (lm-keywords))
-                       (t (message "finder: error processing %s %S" f err))))
-                   (if (not summary)
-                       nil
-                     (insert (format "    (\"%s\"\n        " f))
-                     (prin1 summary (current-buffer))
-                     (insert "\n        ")
-                     (setq keystart (point))
-                     (insert (if keywords (format "(%s)" keywords) "nil"))
-                     (subst-char-in-region keystart (point) ?, ? )
-                     (insert "\n        ")
-                     (prin1 (abbreviate-file-name d) (current-buffer))
-                     (insert ")\n"))))))
-          ;;
-          ;; Skip null, non-existent or relative pathnames, e.g. "./", if
-          ;; using load-path, so that they do not interfere with a scan of
-          ;; library directories only.
-          (if (and using-load-path
-                   (not (and d (file-name-absolute-p d) (file-exists-p d))))
-              nil
-            (setq d (file-name-as-directory (or d ".")))
-            (directory-files d nil "^[^=].*\\.el$")))))
+       (lambda (d)
+        (mapcar
+         (lambda (f) 
+           (when (not (member f processed))
+             (let (summary keystart keywords)
+               (setq processed (cons f processed))
+               (if (not finder-compile-keywords-quiet)
+                   (message "Processing %s ..." f))
+               (save-excursion
+                 (set-buffer (get-buffer-create "*finder-scratch*"))
+                 (buffer-disable-undo (current-buffer))
+                 (erase-buffer)
+                 (insert-file-contents (expand-file-name f d))
+                 (condition-case err
+                     (setq summary  (lm-synopsis)
+                           keywords (lm-keywords))
+                   (t (message "finder: error processing %s %S" f err))))
+               (when summary
+                 (insert (format "    (\"%s\"\n        " f))
+                 (prin1 summary (current-buffer))
+                 (insert "\n        ")
+                 (setq keystart (point))
+                 (insert (if keywords (format "(%s)" keywords) "nil"))
+                 (subst-char-in-region keystart (point) ?, ? )
+                 (insert "\n        ")
+                 (prin1 (abbreviate-file-name d) (current-buffer))
+                 (insert ")\n")))))
+         ;;
+         ;; Skip null, non-existent or relative pathnames, e.g. "./", if
+         ;; using load-path, so that they do not interfere with a scan of
+         ;; library directories only.
+         (if (and using-load-path
+                  (not (and d (file-name-absolute-p d) (file-exists-p d))))
+             nil
+           (setq d (file-name-as-directory (or d ".")))
+           (directory-files d nil "^[^=].*\\.el$"))))
        dirs)
       (insert "))\n\n(provide 'finder-inf)\n\n;;; finder-inf.el ends here\n")
       (kill-buffer "*finder-scratch*")
        dirs)
       (insert "))\n\n(provide 'finder-inf)\n\n;;; finder-inf.el ends here\n")
       (kill-buffer "*finder-scratch*")
index 91446fd..ea1e1cb 100644 (file)
 ;; - Keep the faces distinct from each other as far as possible.
 ;;   i.e., (a) above.
 ;; - Make the face attributes fit the concept as far as possible.
 ;; - Keep the faces distinct from each other as far as possible.
 ;;   i.e., (a) above.
 ;; - Make the face attributes fit the concept as far as possible.
-;;   i.e., function names might be a bold colour such as blue, comments might
-;;   be a bright colour such as red, character strings might be brown, because,
+;;   i.e., function names might be a bold color such as blue, comments might
+;;   be a bright color such as red, character strings might be brown, because,
 ;;   err, strings are brown (that was not the reason, please believe me).
 ;; - Don't use a non-nil OVERRIDE unless you have a good reason.
 ;;   Only use OVERRIDE for special things that are easy to define, such as the
 ;;   err, strings are brown (that was not the reason, please believe me).
 ;; - Don't use a non-nil OVERRIDE unless you have a good reason.
 ;;   Only use OVERRIDE for special things that are easy to define, such as the
@@ -375,7 +375,7 @@ MATCH-ANCHORED should be of the form:
 Where MATCHER is as for MATCH-HIGHLIGHT with one exception; see below.
 PRE-MATCH-FORM and POST-MATCH-FORM are evaluated before the first, and after
 the last, instance MATCH-ANCHORED's MATCHER is used.  Therefore they can be
 Where MATCHER is as for MATCH-HIGHLIGHT with one exception; see below.
 PRE-MATCH-FORM and POST-MATCH-FORM are evaluated before the first, and after
 the last, instance MATCH-ANCHORED's MATCHER is used.  Therefore they can be
-used to initialise before, and cleanup after, MATCHER is used.  Typically,
+used to initialize before, and cleanup after, MATCHER is used.  Typically,
 PRE-MATCH-FORM is used to move to some position relative to the original
 MATCHER, before starting with MATCH-ANCHORED's MATCHER.  POST-MATCH-FORM might
 be used to move, before resuming with MATCH-ANCHORED's parent's MATCHER.
 PRE-MATCH-FORM is used to move to some position relative to the original
 MATCHER, before starting with MATCH-ANCHORED's MATCHER.  POST-MATCH-FORM might
 be used to move, before resuming with MATCH-ANCHORED's parent's MATCHER.
@@ -533,8 +533,7 @@ This is normally set via `font-lock-defaults'.")
   :type 'boolean
   :initialize 'custom-initialize-default
   :require 'font-lock
   :type 'boolean
   :initialize 'custom-initialize-default
   :require 'font-lock
-  :set '(lambda (var val)
-         (font-lock-mode (or val 0)))
+  :set #'(lambda (var val) (font-lock-mode (or val 0)))
   )
 
 (defvar font-lock-fontified nil) ; whether we have hacked this buffer
   )
 
 (defvar font-lock-fontified nil) ; whether we have hacked this buffer
@@ -1073,8 +1072,9 @@ This can take a while for large buffers."
   ;; region as fontified; otherwise, the same error might get signaled
   ;; after every command.
   (unwind-protect
   ;; region as fontified; otherwise, the same error might get signaled
   ;; after every command.
   (unwind-protect
-      ;; buffer may be deleted.
-      (if (buffer-live-p (extent-object font-lock-old-extent))
+      ;; buffer/extent may be deleted.
+      (if (and (extent-live-p font-lock-old-extent)
+              (buffer-live-p (extent-object font-lock-old-extent)))
          (save-excursion
            (set-buffer (extent-object font-lock-old-extent))
            (font-lock-after-change-function-1
          (save-excursion
            (set-buffer (extent-object font-lock-old-extent))
            (font-lock-after-change-function-1
@@ -1536,7 +1536,12 @@ START should be at the beginning of a line."
 
 ;; If the buffer has just been reverted, normally that turns off
 ;; Font Lock mode.  So turn the mode back on if necessary.
 
 ;; If the buffer has just been reverted, normally that turns off
 ;; Font Lock mode.  So turn the mode back on if necessary.
-(defalias 'font-lock-revert-cleanup 'turn-on-font-lock)
+;; sb 1999-03-03 -- The above comment no longer appears to be operative as
+;; the first call to normal-mode *will* restore the font-lock state and
+;; this call forces a second font-locking to occur when reverting a buffer,
+;; which is wasteful at best.
+;(defalias 'font-lock-revert-cleanup 'turn-on-font-lock)
+(defun font-lock-revert-cleanup ())
 
 \f
 ;; Various functions.
 
 \f
 ;; Various functions.
index eed2710..28bb05d 100644 (file)
@@ -32,6 +32,7 @@
 (require 'cl)
 
 (eval-and-compile
 (require 'cl)
 
 (eval-and-compile
+  (defvar device-fonts-cache)
   (condition-case ()
       (require 'custom)
     (error nil))
   (condition-case ()
       (require 'custom)
     (error nil))
@@ -40,8 +41,8 @@
     ;; We have the old custom-library, hack around it!
     (defmacro defgroup (&rest args)
       nil)
     ;; We have the old custom-library, hack around it!
     (defmacro defgroup (&rest args)
       nil)
-    (defmacro defcustom (var value doc &rest args) 
-      (` (defvar (, var) (, value) (, doc))))))
+    (defmacro defcustom (var value doc &rest args)
+      `(defvar ,var ,value ,doc))))
 
 (if (not (fboundp 'try-font-name))
     (defun try-font-name (fontname &rest args)
 
 (if (not (fboundp 'try-font-name))
     (defun try-font-name (fontname &rest args)
   "Whether we are running in XEmacs or not.")
 
 (defmacro define-font-keywords (&rest keys)
   "Whether we are running in XEmacs or not.")
 
 (defmacro define-font-keywords (&rest keys)
-  (`
-   (eval-and-compile
-     (let ((keywords (quote (, keys))))
+  `(eval-and-compile
+     (let ((keywords (quote ,keys)))
        (while keywords
         (or (boundp (car keywords))
             (set (car keywords) (car keywords)))
        (while keywords
         (or (boundp (car keywords))
             (set (car keywords) (car keywords)))
-        (setq keywords (cdr keywords)))))))  
+        (setq keywords (cdr keywords))))))
 
 (defconst font-window-system-mappings
   '((x         . (x-font-create-name x-font-create-object))
 
 (defconst font-window-system-mappings
   '((x         . (x-font-create-name x-font-create-object))
@@ -187,37 +187,36 @@ for use in the 'weight' field of an X font string.")
 
 (eval-when-compile
   (defmacro define-new-mask (attr mask)
 
 (eval-when-compile
   (defmacro define-new-mask (attr mask)
-    (`
-     (progn
+    `(progn
        (setq font-style-keywords
        (setq font-style-keywords
-            (cons (cons (quote (, attr))
+            (cons (cons (quote ,attr)
                         (cons
                         (cons
-                         (quote (, (intern (format "set-font-%s-p" attr))))
-                         (quote (, (intern (format "font-%s-p" attr))))))
+                         (quote ,(intern (format "set-font-%s-p" attr)))
+                         (quote ,(intern (format "font-%s-p" attr)))))
                   font-style-keywords))
                   font-style-keywords))
-       (defconst (, (intern (format "font-%s-mask" attr))) (<< 1 (, mask))
-        (, (format
-            "Bitmask for whether a font is to be rendered in %s or not."
-            attr)))
-       (defun (, (intern (format "font-%s-p" attr))) (fontobj)
-        (, (format "Whether FONTOBJ will be renderd in `%s' or not." attr))
+       (defconst ,(intern (format "font-%s-mask" attr)) (<< 1 ,mask)
+        ,(format
+          "Bitmask for whether a font is to be rendered in %s or not."
+          attr))
+       (defun ,(intern (format "font-%s-p" attr)) (fontobj)
+        ,(format "Whether FONTOBJ will be renderd in `%s' or not." attr)
         (if (/= 0 (& (font-style fontobj)
         (if (/= 0 (& (font-style fontobj)
-                     (, (intern (format "font-%s-mask" attr)))))
+                     ,(intern (format "font-%s-mask" attr))))
             t
           nil))
             t
           nil))
-       (defun (, (intern (format "set-font-%s-p" attr))) (fontobj val)
-        (, (format "Set whether FONTOBJ will be renderd in `%s' or not."
-                   attr))
+       (defun ,(intern (format "set-font-%s-p" attr)) (fontobj val)
+        ,(format "Set whether FONTOBJ will be renderd in `%s' or not."
+                 attr)
         (cond
          (val
           (set-font-style fontobj (| (font-style fontobj)
         (cond
          (val
           (set-font-style fontobj (| (font-style fontobj)
-                                     (, (intern
-                                         (format "font-%s-mask" attr))))))
-         (((, (intern (format "font-%s-p" attr))) fontobj)
+                                     ,(intern
+                                       (format "font-%s-mask" attr)))))
+         ((,(intern (format "font-%s-p" attr)) fontobj)
           (set-font-style fontobj (- (font-style fontobj)
           (set-font-style fontobj (- (font-style fontobj)
-                                     (, (intern
-                                         (format "font-%s-mask" attr))))))))
-       ))))
+                                     ,(intern
+                                       (format "font-%s-mask" attr)))))))
+       )))
 
 (let ((mask 0))
   (define-new-mask bold        (setq mask (1+ mask)))
 
 (let ((mask 0))
   (define-new-mask bold        (setq mask (1+ mask)))
@@ -250,7 +249,7 @@ for use in the 'weight' field of an X font string.")
     (while (< i 255)                   ;; Oslash - Thorn
       (aset table i (- i 32))
       (setq i (1+ i)))
     (while (< i 255)                   ;; Oslash - Thorn
       (aset table i (- i 32))
       (setq i (1+ i)))
-    table))    
+    table))
 \f
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; Utility functions
 \f
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; Utility functions
@@ -435,15 +434,14 @@ for use in the 'weight' field of an X font string.")
   (make-font :size "12pt"))
 
 (defun tty-font-create-plist (fontobj &optional device)
   (make-font :size "12pt"))
 
 (defun tty-font-create-plist (fontobj &optional device)
-  (let ((styles (font-style fontobj))
-       (weight (font-weight fontobj)))
-    (list
-     (cons 'underline (font-underline-p fontobj))
-     (cons 'highlight (if (or (font-bold-p fontobj)
-                             (memq weight '(:bold :demi-bold))) t))
-     (cons 'dim       (font-dim-p fontobj))
-     (cons 'blinking  (font-blink-p fontobj))
-     (cons 'reverse   (font-reverse-p fontobj)))))
+  (list
+   (cons 'underline (font-underline-p fontobj))
+   (cons 'highlight (if (or (font-bold-p fontobj)
+                           (memq (font-weight fontobj) '(:bold :demi-bold)))
+                       t))
+   (cons 'dim       (font-dim-p fontobj))
+   (cons 'blinking  (font-blink-p fontobj))
+   (cons 'reverse   (font-reverse-p fontobj))))
 
 \f
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 \f
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -560,16 +558,13 @@ for use in the 'weight' field of an X font string.")
          (set-font-italic-p retval t))
         ((member slant '("o" "O"))
          (set-font-oblique-p retval t)))
          (set-font-italic-p retval t))
         ((member slant '("o" "O"))
          (set-font-oblique-p retval t)))
-       (if (string-match font-x-registry-and-encoding-regexp fontname)
-           (progn
-             (set-font-registry retval (match-string 1 fontname))
-             (set-font-encoding retval (match-string 2 fontname))))
+       (when (string-match font-x-registry-and-encoding-regexp fontname)
+         (set-font-registry retval (match-string 1 fontname))
+         (set-font-encoding retval (match-string 2 fontname)))
        retval))))
 
 (defun x-font-families-for-device (&optional device no-resetp)
        retval))))
 
 (defun x-font-families-for-device (&optional device no-resetp)
-  (condition-case ()
-      (require 'x-font-menu)
-    (error nil))
+  (ignore-errors (require 'x-font-menu))
   (or device (setq device (selected-device)))
   (if (boundp 'device-fonts-cache)
       (let ((menu (or (cdr-safe (assq device device-fonts-cache)))))
   (or device (setq device (selected-device)))
   (if (boundp 'device-fonts-cache)
       (let ((menu (or (cdr-safe (assq device device-fonts-cache)))))
@@ -577,9 +572,9 @@ for use in the 'weight' field of an X font string.")
            (progn
              (reset-device-font-menus device)
              (x-font-families-for-device device t))
            (progn
              (reset-device-font-menus device)
              (x-font-families-for-device device t))
-         (let ((scaled (mapcar (function (lambda (x) (if x (aref x 0))))
+         (let ((scaled (mapcar #'(lambda (x) (if x (aref x 0)))
                                (aref menu 0)))
                                (aref menu 0)))
-               (normal (mapcar (function (lambda (x) (if x (aref x 0))))
+               (normal (mapcar #'(lambda (x) (if x (aref x 0)))
                                (aref menu 1))))
            (sort (font-unique (nconc scaled normal)) 'string-lessp))))
     (cons "monospace" (mapcar 'car font-x-family-mappings))))
                                (aref menu 1))))
            (sort (font-unique (nconc scaled normal)) 'string-lessp))))
     (cons "monospace" (mapcar 'car font-x-family-mappings))))
@@ -597,40 +592,33 @@ for use in the 'weight' field of an X font string.")
       (if (and (fboundp 'fontsetp) (fontsetp font))
          (aref (get-font-info (aref (cdr (get-fontset-info font)) 0)) 2)
        font))))
       (if (and (fboundp 'fontsetp) (fontsetp font))
          (aref (get-font-info (aref (cdr (get-fontset-info font)) 0)) 2)
        font))))
-         
+
 ;;;###autoload
 (defun font-default-object-for-device (&optional device)
   (let ((font (font-default-font-for-device device)))
 ;;;###autoload
 (defun font-default-object-for-device (&optional device)
   (let ((font (font-default-font-for-device device)))
-    (or (cdr-safe 
-        (assoc font font-default-cache))
-       (progn
-         (setq font-default-cache (cons (cons font
-                                              (font-create-object font))
-                                        font-default-cache))
-         (cdr-safe (assoc font font-default-cache))))))
+    (or (cdr-safe (assoc font font-default-cache))
+       (let ((object (font-create-object font)))
+         (push (cons font object) font-default-cache)
+         object))))
 
 ;;;###autoload
 (defun font-default-family-for-device (&optional device)
 
 ;;;###autoload
 (defun font-default-family-for-device (&optional device)
-  (or device (setq device (selected-device)))
-  (font-family (font-default-object-for-device device)))
+  (font-family (font-default-object-for-device (or device (selected-device)))))
 
 ;;;###autoload
 (defun font-default-registry-for-device (&optional device)
 
 ;;;###autoload
 (defun font-default-registry-for-device (&optional device)
-  (or device (setq device (selected-device)))
-  (font-registry (font-default-object-for-device device)))
+  (font-registry (font-default-object-for-device (or device (selected-device)))))
 
 ;;;###autoload
 (defun font-default-encoding-for-device (&optional device)
 
 ;;;###autoload
 (defun font-default-encoding-for-device (&optional device)
-  (or device (setq device (selected-device)))
-  (font-encoding (font-default-object-for-device device)))
+  (font-encoding (font-default-object-for-device (or device (selected-device)))))
 
 ;;;###autoload
 (defun font-default-size-for-device (&optional device)
 
 ;;;###autoload
 (defun font-default-size-for-device (&optional device)
-  (or device (setq device (selected-device)))
   ;; face-height isn't the right thing (always 1 pixel too high?)
   ;; (if font-running-xemacs
   ;;    (format "%dpx" (face-height 'default device))
   ;; face-height isn't the right thing (always 1 pixel too high?)
   ;; (if font-running-xemacs
   ;;    (format "%dpx" (face-height 'default device))
-  (font-size (font-default-object-for-device device)))
+  (font-size (font-default-object-for-device (or device (selected-device)))))
 
 (defun x-font-create-name (fontobj &optional device)
   (if (and (not (or (font-family fontobj)
 
 (defun x-font-create-name (fontobj &optional device)
   (if (and (not (or (font-family fontobj)
@@ -718,9 +706,9 @@ for use in the 'weight' field of an X font string.")
            (progn
              (reset-device-font-menus device)
              (ns-font-families-for-device device t))
            (progn
              (reset-device-font-menus device)
              (ns-font-families-for-device device t))
-         (let ((scaled (mapcar (function (lambda (x) (if x (aref x 0))))
+         (let ((scaled (mapcar #'(lambda (x) (if x (aref x 0)))
                                (aref menu 0)))
                                (aref menu 0)))
-               (normal (mapcar (function (lambda (x) (if x (aref x 0))))
+               (normal (mapcar #'(lambda (x) (if x (aref x 0)))
                                (aref menu 1))))
            (sort (font-unique (nconc scaled normal)) 'string-lessp))))))
 
                                (aref menu 1))))
            (sort (font-unique (nconc scaled normal)) 'string-lessp))))))
 
@@ -776,16 +764,16 @@ for use in the 'weight' field of an X font string.")
 ;;; A maximal mswindows font spec looks like:
 ;;;    Courier New:Bold Italic:10:underline strikeout:western
 ;;; Missing parts of the font spec should be filled in with these values:
 ;;; A maximal mswindows font spec looks like:
 ;;;    Courier New:Bold Italic:10:underline strikeout:western
 ;;; Missing parts of the font spec should be filled in with these values:
-;;;    Courier New:Normal:10::western
+;;;    Courier New:Regular:10::western
 ;;  "^[a-zA-Z ]+:[a-zA-Z ]*:[0-9]+:[a-zA-Z ]*:[a-zA-Z 0-9]*$"
 ;;  "^[a-zA-Z ]+:[a-zA-Z ]*:[0-9]+:[a-zA-Z ]*:[a-zA-Z 0-9]*$"
-(defvar font-mswindows-font-regexp 
+(defvar font-mswindows-font-regexp
   (let
       ((-              ":")
        (fontname       "\\([a-zA-Z ]+\\)")
        (weight         "\\([a-zA-Z]*\\)")
        (style          "\\( [a-zA-Z]*\\)?")
        (pointsize      "\\([0-9]+\\)")
   (let
       ((-              ":")
        (fontname       "\\([a-zA-Z ]+\\)")
        (weight         "\\([a-zA-Z]*\\)")
        (style          "\\( [a-zA-Z]*\\)?")
        (pointsize      "\\([0-9]+\\)")
-       (effects                "\\([a-zA-Z ]*\\)")q
+       (effects                "\\([a-zA-Z ]*\\)")
        (charset                "\\([a-zA-Z 0-9]*\\)")
        )
     (concat "^"
        (charset                "\\([a-zA-Z 0-9]*\\)")
        )
     (concat "^"
@@ -889,7 +877,7 @@ for use in the 'weight' field of an mswindows font string.")
                                       (and (font-bold-p fontobj) :bold)))
       (if (stringp size)
          (setq size (truncate (font-spatial-to-canonical size device))))
                                       (and (font-bold-p fontobj) :bold)))
       (if (stringp size)
          (setq size (truncate (font-spatial-to-canonical size device))))
-      (setq weight (or (cdr-safe 
+      (setq weight (or (cdr-safe
                        (assq weight mswindows-font-weight-mappings)) ""))
       (let ((done nil)                 ; Did we find a good font yet?
            (font-name nil)             ; font name we are currently checking
                        (assq weight mswindows-font-weight-mappings)) ""))
       (let ((done nil)                 ; Did we find a good font yet?
            (font-name nil)             ; font name we are currently checking
@@ -928,7 +916,7 @@ for use in the 'weight' field of an mswindows font string.")
 ;;; Cache building code
 ;;;###autoload
 (defun x-font-build-cache (&optional device)
 ;;; Cache building code
 ;;;###autoload
 (defun x-font-build-cache (&optional device)
-  (let ((hashtable (make-hash-table :test 'equal :size 15))
+  (let ((hash-table (make-hash-table :test 'equal :size 15))
        (fonts (mapcar 'x-font-create-object
                       (x-list-fonts "-*-*-*-*-*-*-*-*-*-*-*-*-*-*")))
        (plist nil)
        (fonts (mapcar 'x-font-create-object
                       (x-list-fonts "-*-*-*-*-*-*-*-*-*-*-*-*-*-*")))
        (plist nil)
@@ -936,7 +924,7 @@ for use in the 'weight' field of an mswindows font string.")
     (while fonts
       (setq cur (car fonts)
            fonts (cdr fonts)
     (while fonts
       (setq cur (car fonts)
            fonts (cdr fonts)
-           plist (cl-gethash (car (font-family cur)) hashtable))
+           plist (cl-gethash (car (font-family cur)) hash-table))
       (if (not (memq (font-weight cur) (plist-get plist 'weights)))
          (setq plist (plist-put plist 'weights (cons (font-weight cur)
                                                      (plist-get plist 'weights)))))
       (if (not (memq (font-weight cur) (plist-get plist 'weights)))
          (setq plist (plist-put plist 'weights (cons (font-weight cur)
                                                      (plist-get plist 'weights)))))
@@ -949,8 +937,8 @@ for use in the 'weight' field of an mswindows font string.")
       (if (and (font-italic-p cur)
               (not (memq 'italic (plist-get plist 'styles))))
          (setq plist (plist-put plist 'styles (cons 'italic (plist-get plist 'styles)))))
       (if (and (font-italic-p cur)
               (not (memq 'italic (plist-get plist 'styles))))
          (setq plist (plist-put plist 'styles (cons 'italic (plist-get plist 'styles)))))
-      (cl-puthash (car (font-family cur)) plist hashtable))
-    hashtable))
+      (cl-puthash (car (font-family cur)) plist hash-table))
+    hash-table))
 
 \f
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 \f
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -1128,7 +1116,7 @@ The list (R G B) is returned, or an error is signaled if the lookup fails."
                     (?3 . 3) (?d . 13) (?D . 13)
                     (?4 . 4) (?e . 14) (?E . 14)
                     (?5 . 5) (?f . 15) (?F . 15)
                     (?3 . 3) (?d . 13) (?D . 13)
                     (?4 . 4) (?e . 14) (?E . 14)
                     (?5 . 5) (?f . 15) (?F . 15)
-                    (?6 . 6) 
+                    (?6 . 6)
                     (?7 . 7)
                     (?8 . 8)
                     (?9 . 9)))
                     (?7 . 7)
                     (?8 . 8)
                     (?9 . 9)))
@@ -1230,7 +1218,7 @@ The variable x-library-search-path is use to locate the rgb.txt file."
      ((and (vectorp color) (= 3 (length color)))
       (list (aref color 0) (aref color 1) (aref color 2)))
      ((and (listp color) (= 3 (length color)) (floatp (car color)))
      ((and (vectorp color) (= 3 (length color)))
       (list (aref color 0) (aref color 1) (aref color 2)))
      ((and (listp color) (= 3 (length color)) (floatp (car color)))
-      (mapcar (function (lambda (x) (* x 65535))) color))
+      (mapcar #'(lambda (x) (* x 65535)) color))
      ((and (listp color) (= 3 (length color)))
       color)
      ((or (string-match "^#" color)
      ((and (listp color) (= 3 (length color)))
       color)
      ((or (string-match "^#" color)
@@ -1250,7 +1238,7 @@ The variable x-library-search-path is use to locate the rgb.txt file."
       (font-lookup-rgb-components color)))))
 
 (defsubst font-tty-compute-color-delta (col1 col2)
       (font-lookup-rgb-components color)))))
 
 (defsubst font-tty-compute-color-delta (col1 col2)
-  (+ 
+  (+
    (* (- (aref col1 0) (aref col2 0))
       (- (aref col1 0) (aref col2 0)))
    (* (- (aref col1 1) (aref col2 1))
    (* (- (aref col1 0) (aref col2 0))
       (- (aref col1 0) (aref col2 0)))
    (* (- (aref col1 1) (aref col2 1))
@@ -1307,7 +1295,7 @@ is returned."
    (tty
     (apply 'font-tty-find-closest-color (font-color-rgb-components color)))
    (ns
    (tty
     (apply 'font-tty-find-closest-color (font-color-rgb-components color)))
    (ns
-    (let ((vals (mapcar (function (lambda (x) (>> x 8)))
+    (let ((vals (mapcar #'(lambda (x) (>> x 8))
                        (font-color-rgb-components color))))
       (apply 'format "RGB%02x%02x%02xff" vals)))
    (otherwise
                        (font-color-rgb-components color))))
       (apply 'format "RGB%02x%02x%02xff" vals)))
    (otherwise
@@ -1365,7 +1353,7 @@ is returned."
       (if (or (eq face face-at) (and (listp face-at) (memq face face-at)))
          (setq found t)))
     found))
       (if (or (eq face face-at) (and (listp face-at) (memq face face-at)))
          (setq found t)))
     found))
-  
+
 (defun font-blink-callback ()
   ;; Optimized to never invert the face unless one of the visible windows
   ;; is showing it.
 (defun font-blink-callback ()
   ;; Optimized to never invert the face unless one of the visible windows
   ;; is showing it.
@@ -1383,7 +1371,7 @@ is returned."
   "How often to blink faces"
   :type 'number
   :group 'faces)
   "How often to blink faces"
   :type 'number
   :group 'faces)
-  
+
 (defun font-blink-initialize ()
   (cond
    ((featurep 'itimer)
 (defun font-blink-initialize ()
   (cond
    ((featurep 'itimer)
@@ -1393,10 +1381,10 @@ is returned."
                  font-blink-interval
                  font-blink-interval))
    ((fboundp 'run-at-time)
                  font-blink-interval
                  font-blink-interval))
    ((fboundp 'run-at-time)
-    (cancel-function-timers 'font-blink-callback)    
+    (cancel-function-timers 'font-blink-callback)
     (run-at-time font-blink-interval
                 font-blink-interval
                 'font-blink-callback))
    (t nil)))
     (run-at-time font-blink-interval
                 font-blink-interval
                 'font-blink-callback))
    (t nil)))
-  
+
 (provide 'font)
 (provide 'font)
index 2b4c609..7542247 100644 (file)
 (put 'buffer-file-format 'permanent-local t)
 
 (defvar format-alist
 (put 'buffer-file-format 'permanent-local t)
 
 (defvar format-alist
-  '((image/jpeg "JPEG image" "\377\330\377\340\000\020JFIF"
-               image-decode-jpeg nil t image-mode)
-    (image/gif "GIF image" "GIF8[79]"
-              image-decode-gif nil t image-mode)
-    (image/png "Portable Network Graphics" "\211PNG"
-              image-decode-png nil t image-mode)
-    (image/x-xpm "XPM image" "/\\* XPM \\*/"
-                image-decode-xpm nil t image-mode)
-
-    ;; TIFF files have lousy magic
-    (image/tiff "TIFF image" "II\\*\000"
-               image-decode-tiff nil t image-mode) ;; TIFF 6.0 big-endian
-    (image/tiff "TIFF image" "MM\000\\*"
-               image-decode-tiff nil t image-mode) ;; TIFF 6.0 little-endian
+  '(
+;    (image/jpeg "JPEG image" "\377\330\377\340\000\020JFIF"
+;              image-decode-jpeg nil t image-mode)
+;    (image/gif "GIF image" "GIF8[79]"
+;             image-decode-gif nil t image-mode)
+;    (image/png "Portable Network Graphics" "\211PNG"
+;             image-decode-png nil t image-mode)
+;    (image/x-xpm "XPM image" "/\\* XPM \\*/"
+;               image-decode-xpm nil t image-mode)
+
+;    ;; TIFF files have lousy magic
+;    (image/tiff "TIFF image" "II\\*\000"
+;              image-decode-tiff nil t image-mode) ;; TIFF 6.0 big-endian
+;    (image/tiff "TIFF image" "MM\000\\*"
+;              image-decode-tiff nil t image-mode) ;; TIFF 6.0 little-endian
 
     (text/enriched "Extended MIME text/enriched format."
                   "Content-[Tt]ype:[ \t]*text/enriched"
 
     (text/enriched "Extended MIME text/enriched format."
                   "Content-[Tt]ype:[ \t]*text/enriched"
index 6594006..08a791a 100644 (file)
@@ -603,6 +603,10 @@ If unspecified in a particular domain, `nontext-pointer-glyph' is used.")
 ;;; (defvar x-toolbar-pointer-shape nil)
 (define-obsolete-pointer-glyph 'x-toolbar-pointer-shape 'toolbar-pointer-glyph)
 
 ;;; (defvar x-toolbar-pointer-shape nil)
 (define-obsolete-pointer-glyph 'x-toolbar-pointer-shape 'toolbar-pointer-glyph)
 
+;; for subwindows
+(defalias 'subwindow-xid 'image-instance-subwindow-id)
+(defalias 'subwindow-width 'image-instance-width)
+(defalias 'subwindow-height 'image-instance-height)
 ;;;;;;;;;; initialization
 
 (defun init-glyphs ()
 ;;;;;;;;;; initialization
 
 (defun init-glyphs ()
index 7b89699..b670e8d 100644 (file)
@@ -68,7 +68,7 @@
 ;; ported the server-temp-file-regexp feature from server.el
 ;; ported server hooks from server.el
 ;; ported kill-*-query functions from server.el (and made it optional)
 ;; ported the server-temp-file-regexp feature from server.el
 ;; ported server hooks from server.el
 ;; ported kill-*-query functions from server.el (and made it optional)
-;; synced other behaviour with server.el
+;; synced other behavior with server.el
 ;;
 ;; Jan Vroonhof
 ;;     Customized.
 ;;
 ;; Jan Vroonhof
 ;;     Customized.
index 5f43c0c..eb7b1b6 100644 (file)
@@ -914,15 +914,11 @@ unless the function is autoloaded."
   :type 'boolean
   :group 'help-appearance)
 
   :type 'boolean
   :group 'help-appearance)
 
-(defun describe-symbol-find-file (function)
-  (let ((files load-history)
-       file)
-    (while files
-      (if (memq function (cdr (car files)))
-         (setq file (car (car files))
-               files nil))
-      (setq files (cdr files)))
-    file))
+(defun describe-symbol-find-file (symbol)
+  (loop for (file . load-data) in load-history
+    do (when (memq symbol load-data)
+        (return file))))
+
 (define-obsolete-function-alias
   'describe-function-find-file
   'describe-symbol-find-file)
 (define-obsolete-function-alias
   'describe-function-find-file
   'describe-symbol-find-file)
@@ -1378,10 +1374,6 @@ after the listing is made.)"
               (s (process-status p)))
          (setq tail (cdr tail))
          (princ (format "%-13s" (process-name p)))
               (s (process-status p)))
          (setq tail (cdr tail))
          (princ (format "%-13s" (process-name p)))
-         ;;(if (and (eq system-type 'vax-vms)
-         ;;         (eq s 'signal)
-         ;;        (< (process-exit-status p) NSIG))
-         ;;    (princ (aref sys_errlist (process-exit-status p))))
          (princ s)
          (if (and (eq s 'exit) (/= (process-exit-status p) 0))
              (princ (format " %d" (process-exit-status p))))
          (princ s)
          (if (and (eq s 'exit) (/= (process-exit-status p) 0))
              (princ (format " %d" (process-exit-status p))))
@@ -1416,4 +1408,25 @@ after the listing is made.)"
                (if cmd (princ " ")))))
          (terpri))))))
 
                (if cmd (princ " ")))))
          (terpri))))))
 
+;; Stop gap for 21.0 untill we do help-char etc properly.
+(defun help-keymap-with-help-key (keymap form)
+  "Return a copy of KEYMAP with an help-key binding according to help-char
+ invoking FORM like help-form.  An existing binding is not overridden.
+ If FORM is nil then no binding is made."
+  (let ((map (copy-keymap keymap))
+       (key (if (characterp help-char)
+                (vector (character-to-event help-char))
+              help-char)))
+    (when (and form key (not (lookup-key map key)))
+      (define-key map key
+       `(lambda () (interactive) (help-print-help-form ,form))))
+    map))
+
+(defun help-print-help-form (form)
+  (let ((string (eval form)))
+    (if (stringp string)
+       (with-displaying-help-buffer
+        (insert string)))))
+
+
 ;;; help.el ends here
 ;;; help.el ends here
index 2839b73..1e34bfa 100644 (file)
@@ -211,7 +211,7 @@ This map inherits from `hyper-apropos-help-map.'")
 
 (defvar hyper-apropos-mode-hook nil
   "*User function run after hyper-apropos mode initialization.  Usage:
 
 (defvar hyper-apropos-mode-hook nil
   "*User function run after hyper-apropos mode initialization.  Usage:
-\(setq hyper-apropos-mode-hook '(lambda () ... your init forms ...)).")
+\(add-hook 'hyper-apropos-mode-hook #'(lambda () ... your init forms ...)).")
 
 ;; ---------------------------------------------------------------------- ;;
 
 
 ;; ---------------------------------------------------------------------- ;;
 
@@ -380,7 +380,7 @@ General Commands:
 
 ;; ---------------------------------------------------------------------- ;;
 
 
 ;; ---------------------------------------------------------------------- ;;
 
-;; similar to `describe-key-briefly', copied from prim/help.el by CW
+;; similar to `describe-key-briefly', copied from help.el by CW
 
 ;;;###autoload
 (defun hyper-describe-key (key)
 
 ;;;###autoload
 (defun hyper-describe-key (key)
@@ -452,7 +452,7 @@ See also `hyper-apropos' and `hyper-describe-function'."
                          (if v
                              (format " (default %s): " v)
                            ": "))
                          (if v
                              (format " (default %s): " v)
                            ": "))
-                 (mapcar (function (lambda (x) (list (symbol-name x))))
+                 (mapcar #'(lambda (x) (list (symbol-name x)))
                          (face-list))
                  nil t nil 'hyper-apropos-face-history)))
      (list (if (string= val "")
                          (face-list))
                  nil t nil 'hyper-apropos-face-history)))
      (list (if (string= val "")
@@ -481,6 +481,7 @@ See also `hyper-apropos' and `hyper-describe-function'."
        (setq hyper-apropos-prev-wconfig (current-window-configuration)))
     (hyper-apropos-get-doc symbol t nil this-ref-buffer)))
 
        (setq hyper-apropos-prev-wconfig (current-window-configuration)))
     (hyper-apropos-get-doc symbol t nil this-ref-buffer)))
 
+;;;###autoload
 (defun hyper-where-is (symbol)
   "Print message listing key sequences that invoke specified command."
   (interactive (list (hyper-apropos-read-function-symbol "Where is function")))
 (defun hyper-where-is (symbol)
   "Print message listing key sequences that invoke specified command."
   (interactive (list (hyper-apropos-read-function-symbol "Where is function")))
@@ -885,14 +886,13 @@ See also `hyper-apropos' and `hyper-describe-function'."
             (progn
               (setq ok t)
               (copy-face symbol 'hyper-apropos-temp-face 'global)
             (progn
               (setq ok t)
               (copy-face symbol 'hyper-apropos-temp-face 'global)
-              (mapcar (function
-                       (lambda (property)
-                         (setq symtype (face-property-instance symbol
-                                                               property))
-                         (if symtype
-                             (set-face-property 'hyper-apropos-temp-face
-                                                property
-                                                symtype))))
+              (mapcar #'(lambda (property)
+                          (setq symtype (face-property-instance symbol
+                                                                property))
+                          (if symtype
+                              (set-face-property 'hyper-apropos-temp-face
+                                                 property
+                                                 symtype)))
                       built-in-face-specifiers)
               (setq font (cons (face-property-instance symbol 'font nil 0 t)
                                (face-property-instance symbol 'font))
                       built-in-face-specifiers)
               (setq font (cons (face-property-instance symbol 'font nil 0 t)
                                (face-property-instance symbol 'font))
index def6f7b..dc40409 100644 (file)
 ;; contain none or when it has become older than info files in the same
 ;; directory.
 
 ;; contain none or when it has become older than info files in the same
 ;; directory.
 
+;; Modified 1998-09-23 by Didier Verna <verna@inf.enst.fr>
+;;
+;; Use the new macro `with-search-caps-disable-folding'
+
 ;; Code:
 ;; Code:
+(eval-when-compile
+  (condition-case nil (require 'browse-url) (error nil)))
 
 (defgroup info nil
   "The info package for Emacs."
 
 (defgroup info nil
   "The info package for Emacs."
@@ -456,6 +462,7 @@ heading."
                            (".info.gz" . "gzip -dc %s")
                            (".info-z" . "gzip -dc %s")
                            (".info.Z" . "uncompress -c %s")
                            (".info.gz" . "gzip -dc %s")
                            (".info-z" . "gzip -dc %s")
                            (".info.Z" . "uncompress -c %s")
+                           (".bz2" . "bzip2 -dc %s")
                            (".gz" . "gzip -dc %s")
                            (".Z" . "uncompress -c %s")
                            (".zip" . "unzip -c %s") )
                            (".gz" . "gzip -dc %s")
                            (".Z" . "uncompress -c %s")
                            (".zip" . "unzip -c %s") )
@@ -800,12 +807,12 @@ actually get any text from."
           ;; Verify that none of the files we used has changed
           ;; since we used it.
           (eval (cons 'and
           ;; Verify that none of the files we used has changed
           ;; since we used it.
           (eval (cons 'and
-                      (mapcar '(lambda (elt)
-                                 (let ((curr (file-attributes (car elt))))
-                                   ;; Don't compare the access time.
-                                   (if curr (setcar (nthcdr 4 curr) 0))
-                                   (setcar (nthcdr 4 (cdr elt)) 0)
-                                   (equal (cdr elt) curr)))
+                      (mapcar #'(lambda (elt)
+                                  (let ((curr (file-attributes (car elt))))
+                                    ;; Don't compare the access time.
+                                    (if curr (setcar (nthcdr 4 curr) 0))
+                                    (setcar (nthcdr 4 (cdr elt)) 0)
+                                    (equal (cdr elt) curr)))
                               Info-dir-file-attributes))))
       (insert Info-dir-contents)
     (let ((dirs (reverse Info-directory-list))
                               Info-dir-file-attributes))))
       (insert Info-dir-contents)
     (let ((dirs (reverse Info-directory-list))
@@ -1018,19 +1025,19 @@ directory has been modified more recently."
        newer)
     (setq Info-dir-newer-info-files nil)
     (mapcar 
        newer)
     (setq Info-dir-newer-info-files nil)
     (mapcar 
-     '(lambda (f)
-       (prog2
-           (setq f-mod-time (nth 5 (file-attributes f)))
-           (setq newer (or (> (car f-mod-time) (car dir-mod-time))
-                           (and (= (car f-mod-time) (car dir-mod-time))
-                                (> (car (cdr f-mod-time)) (car (cdr dir-mod-time))))))
-         (if (and (file-readable-p f)
-                  newer)
-             (setq Info-dir-newer-info-files 
-                   (cons f Info-dir-newer-info-files)))))
+     #'(lambda (f)
+        (prog2
+            (setq f-mod-time (nth 5 (file-attributes f)))
+            (setq newer (or (> (car f-mod-time) (car dir-mod-time))
+                            (and (= (car f-mod-time) (car dir-mod-time))
+                                 (> (car (cdr f-mod-time)) (car (cdr dir-mod-time))))))
+          (if (and (file-readable-p f)
+                   newer)
+              (setq Info-dir-newer-info-files 
+                    (cons f Info-dir-newer-info-files)))))
      (directory-files (file-name-directory file)
                      'fullname
      (directory-files (file-name-directory file)
                      'fullname
-                     ".*\\.info\\(.gz\\|.Z\\|-z\\|.zip\\)?$"
+                     ".*\\.info\\(\\.gz\\|\\.bz2\\|\\.Z\\|-z\\|\\.zip\\)?$"
                      'nosort
                      t))
     Info-dir-newer-info-files))
                      'nosort
                      t))
     Info-dir-newer-info-files))
@@ -1084,22 +1091,22 @@ and `END-INFO-DIR-ENTRY'"
   (let ((tab-width 8)
        (description-col 0)
        len)
   (let ((tab-width 8)
        (description-col 0)
        len)
-    (mapcar '(lambda (e)
-              (setq e (cdr e))         ; Drop filename
-              (setq len (length (concat (car e)
-                                        (car (cdr e)))))
-              (if (> len description-col)
-                  (setq description-col len)))
+    (mapcar #'(lambda (e)
+               (setq e (cdr e))        ; Drop filename
+               (setq len (length (concat (car e)
+                                         (car (cdr e)))))
+               (if (> len description-col)
+                   (setq description-col len)))
            entries)
     (setq description-col (+ 5 description-col)) 
            entries)
     (setq description-col (+ 5 description-col)) 
-    (mapcar '(lambda (e)
-              (setq e (cdr e))         ; Drop filename
-              (insert "* " (car e) ":" (car (cdr e)))
-              (setq e (car (cdr (cdr e))))
-              (while e
-                (indent-to-column description-col)
-                (insert (car e) "\n")
-                (setq e (cdr e))))
+    (mapcar #'(lambda (e)
+               (setq e (cdr e))        ; Drop filename
+               (insert "* " (car e) ":" (car (cdr e)))
+               (setq e (car (cdr (cdr e))))
+               (while e
+                 (indent-to-column description-col)
+                 (insert (car e) "\n")
+                 (setq e (cdr e))))
            entries)
     (insert "\n")))
 
            entries)
     (insert "\n")))
 
@@ -1130,15 +1137,15 @@ to the value of `Info-save-auto-generated-dir'"
              "Info files in " directory ":\n\n")
       (Info-dump-dir-entries 
        (mapcar 
              "Info files in " directory ":\n\n")
       (Info-dump-dir-entries 
        (mapcar 
-       '(lambda (f)
-          (or (Info-extract-dir-entry-from f)
-              (list 'dummy
-                    (progn 
-                      (string-match "\\(.*\\)\\.info\\(.gz\\|.Z\\|-z\\|.zip\\)?$" 
-                                    (file-name-nondirectory f))
-                      (capitalize (match-string 1 (file-name-nondirectory f))))
-                    ":"
-                    (list Info-no-description-string))))
+       #'(lambda (f)
+           (or (Info-extract-dir-entry-from f)
+               (list 'dummy
+                     (progn 
+                       (string-match "\\(.*\\)\\.info\\(.gz\\|.Z\\|-z\\|.zip\\)?$" 
+                                     (file-name-nondirectory f))
+                       (capitalize (match-string 1 (file-name-nondirectory f))))
+                     ":"
+                     (list Info-no-description-string))))
        info-files))
       (if to-temp
          (set-buffer-modified-p nil)
        info-files))
       (if to-temp
          (set-buffer-modified-p nil)
@@ -1195,33 +1202,34 @@ the value of `Info-save-auto-generated-dir' "
            (narrow-to-region mark next-section)
            (setq dir-section-contents (nreverse (Info-parse-dir-entries (point-min)
                                                                         (point-max))))
            (narrow-to-region mark next-section)
            (setq dir-section-contents (nreverse (Info-parse-dir-entries (point-min)
                                                                         (point-max))))
-           (mapcar '(lambda (file)
-                      (setq dir-entry (assoc (downcase
-                                              (file-name-sans-extension
-                                               (file-name-nondirectory file)))
-                                             dir-section-contents)
-                            file-dir-entry (Info-extract-dir-entry-from file))
-                      (if dir-entry
-                          (if file-dir-entry
-                              ;; A dir entry in the info file takes precedence over an
-                              ;; existing entry in the dir file
-                              (setcdr dir-entry (cdr file-dir-entry)))
-                        (unless (or not-first-section
-                                    (assoc (downcase
+           (mapcar
+            #'(lambda (file)
+                (setq dir-entry (assoc (downcase
                                         (file-name-sans-extension
                                          (file-name-nondirectory file)))
                                         (file-name-sans-extension
                                          (file-name-nondirectory file)))
-                                       dir-full-contents))
-                          (if file-dir-entry
-                              (setq dir-section-contents (cons file-dir-entry
-                                                               dir-section-contents))
-                            (setq dir-section-contents 
-                                  (cons (list 'dummy
-                                              (capitalize (file-name-sans-extension
-                                                           (file-name-nondirectory file)))
-                                              ":"
-                                              (list Info-no-description-string)) 
-                                        dir-section-contents))))))
-                   Info-dir-newer-info-files)
+                                       dir-section-contents)
+                      file-dir-entry (Info-extract-dir-entry-from file))
+                (if dir-entry
+                    (if file-dir-entry
+                        ;; A dir entry in the info file takes precedence over an
+                        ;; existing entry in the dir file
+                        (setcdr dir-entry (cdr file-dir-entry)))
+                  (unless (or not-first-section
+                              (assoc (downcase
+                                      (file-name-sans-extension
+                                       (file-name-nondirectory file)))
+                                     dir-full-contents))
+                    (if file-dir-entry
+                        (setq dir-section-contents (cons file-dir-entry
+                                                         dir-section-contents))
+                      (setq dir-section-contents 
+                            (cons (list 'dummy
+                                        (capitalize (file-name-sans-extension
+                                                     (file-name-nondirectory file)))
+                                        ":"
+                                        (list Info-no-description-string)) 
+                                  dir-section-contents))))))
+            Info-dir-newer-info-files)
            (delete-region (point-min) (point-max))
            (Info-dump-dir-entries (nreverse dir-section-contents))
            (widen)
            (delete-region (point-min) (point-max))
            (Info-dump-dir-entries (nreverse dir-section-contents))
            (widen)
@@ -1368,15 +1376,12 @@ for; usually a downcased version of NAME."
                           (format (cdr (car suff)) file)
                         (concat (cdr (car suff)) " < " file))))
          (message "%s..." command)
                           (format (cdr (car suff)) file)
                         (concat (cdr (car suff)) " < " file))))
          (message "%s..." command)
-         (if (eq system-type 'vax-vms)
-             (call-process command nil t nil)
-           (call-process shell-file-name nil t nil "-c" command))
+         (call-process shell-file-name nil t nil "-c" command)
          (message "")
          (message "")
-         (if visit
-             (progn
-               (setq buffer-file-name file)
-               (set-buffer-modified-p nil)
-               (clear-visited-file-modtime))))
+         (when visit
+           (setq buffer-file-name file)
+           (set-buffer-modified-p nil)
+           (clear-visited-file-modtime)))
       (insert-file-contents file visit))))
 
 (defun Info-select-node ()
       (insert-file-contents file visit))))
 
 (defun Info-select-node ()
@@ -1537,6 +1542,7 @@ annotation for any node of any file.  (See `a' and `x' commands.)"
       (let ((compl (Info-build-annotation-completions)))
        (save-excursion
          (save-restriction
       (let ((compl (Info-build-annotation-completions)))
        (save-excursion
          (save-restriction
+           (widen)
            (if (marker-buffer Info-tag-table-marker)
                (progn
                  (set-buffer (marker-buffer Info-tag-table-marker))
            (if (marker-buffer Info-tag-table-marker)
                (progn
                  (set-buffer (marker-buffer Info-tag-table-marker))
@@ -1546,7 +1552,6 @@ annotation for any node of any file.  (See `a' and `x' commands.)"
                          (cons (list (buffer-substring (match-beginning 1)
                                                        (match-end 1)))
                                compl))))
                          (cons (list (buffer-substring (match-beginning 1)
                                                        (match-end 1)))
                                compl))))
-             (widen)
              (goto-char (point-min))
              (while (search-forward "\n\^_" nil t)
                (forward-line 1)
              (goto-char (point-min))
              (while (search-forward "\n\^_" nil t)
                (forward-line 1)
@@ -1571,7 +1576,7 @@ annotation for any node of any file.  (See `a' and `x' commands.)"
   (if (equal regexp "")
       (setq regexp Info-last-search)
     (setq Info-last-search regexp))
   (if (equal regexp "")
       (setq regexp Info-last-search)
     (setq Info-last-search regexp))
-  (with-caps-disable-folding regexp
+  (with-search-caps-disable-folding regexp t
     (let ((found ())
           (onode Info-current-node)
           (ofile Info-current-file)
     (let ((found ())
           (onode Info-current-node)
           (ofile Info-current-file)
@@ -2614,39 +2619,20 @@ At end of the node's text, moves to the next node."
   (if (/= click-count 2)
       ;; Return nil so any other hooks are performed.
       nil
   (if (/= click-count 2)
       ;; Return nil so any other hooks are performed.
       nil
-      (let* ((x (event-x-pixel event))
-            (y (event-y-pixel event))
-            (w (window-pixel-width (event-window event)))
-            (h (window-pixel-height (event-window event)))
-            (w/3 (/ w 3))
-            (w/2 (/ w 2))
-            (h/4 (/ h 4)))
+      (let* ((fw (face-width 'default))
+            (fh (face-height 'default))
+            (x (/ (event-x-pixel event) fw))
+            (y (/ (event-y-pixel event) fw))
+            (w (/ (window-pixel-width (event-window event)) fw))
+            (h (/ (window-pixel-height (event-window event)) fh))
+            (bx 3)
+            (by 2))
        (cond
        (cond
-         ;; In the top 1/4 and inside the middle 1/3
-         ((and (<= y h/4)
-               (and (>= x w/3) (<= x (+ w/3 w/3))))
-          (Info-up)
-          t)
-         ;; In the bottom 1/4 and inside the middle 1/3
-         ((and (>= y (+ h/4 h/4 h/4))
-               (and (>= x w/3) (<= x (+ w/3 w/3))))
-          (Info-nth-menu-item 1)
-          t)
-         ;; In the lower 3/4 and the right 1/2
-         ;; OR in the upper 1/4 and the right 1/3
-         ((or (and (>= y h/4) (>= x w/2))
-              (and (< y h/4) (>= x (+ w/3 w/3))))
-          (Info-next)
-          t)
-         ;; In the lower 3/4 and the left 1/2
-         ;; OR in the upper 1/4 and the left 1/3
-         ((or (and (>= y h/4) (< x w/2))
-              (and (< y h/4) (<= x w/3)))
-          (Info-prev)
-          t)
-         ;; This shouldn't happen.
-         (t
-          (error "event out of bounds: %s %s" x y))))))
+         ((<= y by) (Info-up) t)
+         ((>= y (- h by)) (Info-nth-menu-item 1) t)
+         ((<= x bx) (Info-prev) t)
+         ((>= x (- w bx)) (Info-next) t)
+         (t nil)))))
 \f
 (defvar Info-mode-map nil
   "Keymap containing Info commands.")
 \f
 (defvar Info-mode-map nil
   "Keymap containing Info commands.")
@@ -2742,10 +2728,16 @@ b       Go to beginning of node.        Meta->    Go to end of node.
 TAB    Go to next cross-reference.     Meta-TAB  Go to previous ref.
 
 Mouse commands:
 TAB    Go to next cross-reference.     Meta-TAB  Go to previous ref.
 
 Mouse commands:
-Left Button    Set point.
+Left Button    Set point (usual text-mode functionality)
 Middle Button  Click on a highlighted node reference to go to it.
 Right Button   Pop up a menu of applicable Info commands.
 
 Middle Button  Click on a highlighted node reference to go to it.
 Right Button   Pop up a menu of applicable Info commands.
 
+Left Button Double Click in window edges:
+ Top edge:    Go up to the parent node, like `u'.
+ Left edge:   Go to the previous node, like `p'.
+ Right edge:  Go to the next node, like `n'.
+ Bottom edge: Follow first menu item, like `1'.
+
 Advanced commands:
 g      Move to node, file, or annotation tag specified by name.
        Examples:  `g Rectangles' `g (Emacs)Rectangles' `g Emacs'.
 Advanced commands:
 g      Move to node, file, or annotation tag specified by name.
        Examples:  `g Rectangles' `g (Emacs)Rectangles' `g Emacs'.
@@ -2788,6 +2780,7 @@ e Edit the contents of the current node."
   ;; #### The console-on-window-system-p check is to allow this to
   ;; work on tty's.  The real problem here is that featurep really
   ;; needs to have some device/console domain knowledge added to it.
   ;; #### The console-on-window-system-p check is to allow this to
   ;; work on tty's.  The real problem here is that featurep really
   ;; needs to have some device/console domain knowledge added to it.
+  (defvar info::toolbar)
   (if (and (featurep 'toolbar)
           (console-on-window-system-p)
           (not Info-inhibit-toolbar))
   (if (and (featurep 'toolbar)
           (console-on-window-system-p)
           (not Info-inhibit-toolbar))
index 1abd4e0..cc5b3fa 100644 (file)
@@ -148,12 +148,6 @@ that the search has reached."
   :type 'integer
   :group 'isearch)
 
   :type 'integer
   :group 'isearch)
 
-(defcustom search-caps-disable-folding t
-  "*If non-nil, upper case chars disable case fold searching.
-This does not apply to \"yanked\" strings."
-  :type 'boolean
-  :group 'isearch)
-
 (defcustom search-nonincremental-instead t
   "*If non-nil, do a nonincremental search instead if exiting immediately."
   :type 'boolean
 (defcustom search-nonincremental-instead t
   "*If non-nil, do a nonincremental search instead if exiting immediately."
   :type 'boolean
@@ -459,10 +453,14 @@ is treated as a regexp.  See \\[isearch-forward] for more info."
          isearch-opoint (point)
          isearch-window-configuration (current-window-configuration)
 
          isearch-opoint (point)
          isearch-window-configuration (current-window-configuration)
 
-         ;; #### - don't do this statically: isearch-mode must be FIRST in
-         ;; the minor-mode-map-alist -- Stig
-         minor-mode-map-alist (cons (cons 'isearch-mode isearch-mode-map)
-                                    minor-mode-map-alist)
+         ;; #### Should we remember the old value of
+         ;; overriding-local-map?
+         overriding-local-map (progn
+                                (set-keymap-parents isearch-mode-map
+                                 (nconc (current-minor-mode-maps)
+                                        (and (current-local-map)
+                                             (list (current-local-map)))))
+                                isearch-mode-map)
          isearch-selected-frame (selected-frame)
 
          isearch-mode (gettext " Isearch")
          isearch-selected-frame (selected-frame)
 
          isearch-mode (gettext " Isearch")
@@ -541,8 +539,9 @@ is treated as a regexp.  See \\[isearch-forward] for more info."
          ;; in the buffer we frobbed them in.  But only if the buffer
          ;; is still alive.
          (set-buffer isearch-buffer)
          ;; in the buffer we frobbed them in.  But only if the buffer
          ;; is still alive.
          (set-buffer isearch-buffer)
-         (setq minor-mode-map-alist (delq (assoc 'isearch-mode minor-mode-map-alist)
-                                          minor-mode-map-alist))
+         ;; #### Should we restore the old value of
+         ;; overriding-local-map?
+         (setq overriding-local-map nil)
          ;; Use remove-hook instead of just setting it to our saved value
          ;; in case some process filter has created a buffer and modified
          ;; the pre-command-hook in that buffer...  yeah, this is obscure,
          ;; Use remove-hook instead of just setting it to our saved value
          ;; in case some process filter has created a buffer and modified
          ;; the pre-command-hook in that buffer...  yeah, this is obscure,
@@ -587,7 +586,7 @@ is treated as a regexp.  See \\[isearch-forward] for more info."
                      (cons isearch-string regexp-search-ring)
                      regexp-search-ring-yank-pointer regexp-search-ring)
                (if (> (length regexp-search-ring) regexp-search-ring-max)
                      (cons isearch-string regexp-search-ring)
                      regexp-search-ring-yank-pointer regexp-search-ring)
                (if (> (length regexp-search-ring) regexp-search-ring-max)
-                   (setcdr (nthcdr (1- search-ring-max) regexp-search-ring)
+                   (setcdr (nthcdr (1- regexp-search-ring-max) regexp-search-ring)
                            nil))))
        (if (not (setq search-ring-yank-pointer
                       ;; really need equal test instead of eq.
                            nil))))
        (if (not (setq search-ring-yank-pointer
                       ;; really need equal test instead of eq.
@@ -936,6 +935,21 @@ backwards."
   (interactive)
   (isearch-yank (x-get-clipboard)))
 
   (interactive)
   (isearch-yank (x-get-clipboard)))
 
+(defun isearch-fix-case ()
+  (if (and isearch-case-fold-search search-caps-disable-folding)
+      (setq isearch-case-fold-search 
+           (no-upper-case-p isearch-string isearch-regexp)))
+  (setq isearch-mode (if case-fold-search
+                         (if isearch-case-fold-search
+                             " Isearch"  ;As God Intended Mode
+                          " ISeARch") ;Warn about evil case via StuDLYcAps.
+                      "Isearch"
+;                       (if isearch-case-fold-search
+;                            " isearch"    ;Presumably case-sensitive losers
+;                                          ;will notice this 1-char difference.
+;                            " Isearch")   ;Weenie mode.
+                        )))
+
 (defun isearch-search-and-update ()
   ;; Do the search and update the display.
   (if (and (not isearch-success)
 (defun isearch-search-and-update ()
   ;; Do the search and update the display.
   (if (and (not isearch-success)
@@ -951,12 +965,15 @@ backwards."
     ;; long as the match does not extend past search origin.
     (if (and (not isearch-forward) (not isearch-adjusted)
             (condition-case ()
     ;; long as the match does not extend past search origin.
     (if (and (not isearch-forward) (not isearch-adjusted)
             (condition-case ()
-                (looking-at (if isearch-regexp isearch-string
-                              (regexp-quote isearch-string)))
+                (progn
+                  (isearch-fix-case)
+                  (let ((case-fold-search isearch-case-fold-search))
+                    (looking-at (if isearch-regexp isearch-string
+                                  (regexp-quote isearch-string)))))
               (error nil))
               (error nil))
-              (or isearch-yank-flag
-                  (<= (match-end 0) 
-                      (min isearch-opoint isearch-barrier))))
+            (or isearch-yank-flag
+                (<= (match-end 0) 
+                    (min isearch-opoint isearch-barrier))))
        (setq isearch-success t 
              isearch-invalid-regexp nil
              isearch-other-end (match-end 0))
        (setq isearch-success t 
              isearch-invalid-regexp nil
              isearch-other-end (match-end 0))
@@ -1460,12 +1477,9 @@ currently matches the search-string.")
   (if (null isearch-highlight)
       nil
     ;; make sure isearch-extent is in the current buffer
   (if (null isearch-highlight)
       nil
     ;; make sure isearch-extent is in the current buffer
-    (cond ((not (extentp isearch-extent))
-          (isearch-make-extent begin end))
-         ((not (eq (extent-object isearch-extent) (current-buffer)))
-          (delete-extent isearch-extent)
-          (isearch-make-extent begin end)))
-    (set-extent-endpoints isearch-extent begin end)))
+    (or (extentp isearch-extent)
+       (isearch-make-extent begin end))
+    (set-extent-endpoints isearch-extent begin end (current-buffer))))
 
 (defun isearch-dehighlight (totally)
   (if (and isearch-highlight isearch-extent)
 
 (defun isearch-dehighlight (totally)
   (if (and isearch-highlight isearch-extent)
@@ -1485,19 +1499,7 @@ currently matches the search-string.")
 (defun isearch-search ()
   ;; Do the search with the current search string.
   (isearch-message nil t)
 (defun isearch-search ()
   ;; Do the search with the current search string.
   (isearch-message nil t)
-  (if (and isearch-case-fold-search search-caps-disable-folding)
-      (setq isearch-case-fold-search (isearch-no-upper-case-p isearch-string)))
-
-  (setq isearch-mode (if case-fold-search
-                         (if isearch-case-fold-search
-                             " Isearch"  ;As God Intended Mode
-                             " ISeARch") ;Warn about evil case via StuDLYcAps.
-                        "Isearch"
-;                       (if isearch-case-fold-search
-;                            " isearch"    ;Presumably case-sensitive losers
-;                                          ;will notice this 1-char difference.
-;                            " Isearch")   ;Weenie mode.
-                        ))
+  (isearch-fix-case)
   (condition-case lossage
       (let ((inhibit-quit nil)
            (case-fold-search isearch-case-fold-search))
   (condition-case lossage
       (let ((inhibit-quit nil)
            (case-fold-search isearch-case-fold-search))
@@ -1596,11 +1598,10 @@ currently matches the search-string.")
 ;    ;; Go ahead and search.
 ;    (if search-caps-disable-folding
 ;      (setq isearch-case-fold-search 
 ;    ;; Go ahead and search.
 ;    (if search-caps-disable-folding
 ;      (setq isearch-case-fold-search 
-;            (isearch-no-upper-case-p isearch-string)))
+;            (no-upper-case-p isearch-string isearch-regexp)))
 ;    (let ((case-fold-search isearch-case-fold-search))
 ;      (funcall function isearch-string))))
 
 ;    (let ((case-fold-search isearch-case-fold-search))
 ;      (funcall function isearch-string))))
 
-
 (defun isearch-no-upper-case-p (string)
   "Return t if there are no upper case chars in string.
 But upper case chars preceded by \\ do not count since they
 (defun isearch-no-upper-case-p (string)
   "Return t if there are no upper case chars in string.
 But upper case chars preceded by \\ do not count since they
@@ -1608,6 +1609,7 @@ have special meaning in a regexp."
   ;; this incorrectly returns t for "\\\\A"
   (let ((case-fold-search nil))
     (not (string-match "\\(^\\|[^\\]\\)[A-Z]" string))))
   ;; this incorrectly returns t for "\\\\A"
   (let ((case-fold-search nil))
     (not (string-match "\\(^\\|[^\\]\\)[A-Z]" string))))
+(make-obsolete 'isearch-no-upper-case-p 'no-upper-case-p)
 
 ;; Used by etags.el and info.el
 (defmacro with-caps-disable-folding (string &rest body) "\
 
 ;; Used by etags.el and info.el
 (defmacro with-caps-disable-folding (string &rest body) "\
@@ -1618,6 +1620,7 @@ uppercase letters and `search-caps-disable-folding' is t."
               (isearch-no-upper-case-p ,string)
             case-fold-search)))
      ,@body))
               (isearch-no-upper-case-p ,string)
             case-fold-search)))
      ,@body))
+(make-obsolete 'with-caps-disable-folding 'with-search-caps-disable-folding)
 (put 'with-caps-disable-folding 'lisp-indent-function 1)
 (put 'with-caps-disable-folding 'edebug-form-spec '(form body))
 
 (put 'with-caps-disable-folding 'lisp-indent-function 1)
 (put 'with-caps-disable-folding 'edebug-form-spec '(form body))
 
index 78610a9..aab95e4 100644 (file)
@@ -717,8 +717,7 @@ x      start a new itimer
                         (inhibit-quit nil)
                         ;; for FSF Emacs timer.el emulation under XEmacs.
                         ;; eldoc expect this to be done, apparently.
                         (inhibit-quit nil)
                         ;; for FSF Emacs timer.el emulation under XEmacs.
                         ;; eldoc expect this to be done, apparently.
-                        (this-command nil)
-                        itimer itimers time-elapsed)
+                        (this-command nil))
                    (if (itimer-uses-arguments current-itimer)
                        (apply (itimer-function current-itimer)
                               (itimer-function-arguments current-itimer))
                    (if (itimer-uses-arguments current-itimer)
                        (apply (itimer-function current-itimer)
                               (itimer-function-arguments current-itimer))
index 63b6c2d..947ce34 100644 (file)
@@ -452,11 +452,11 @@ Keymap for characters following C-c.")
 
 
 
 
 
 
-
-
-
 (define-key global-map "\M-%" 'query-replace)
 
 (define-key global-map "\M-%" 'query-replace)
 
+;; FSF v20 binding
+(define-key global-map [(control meta %)] 'query-replace-regexp)
+
 
 ; autoloaded
 ;(define-key global-map "\C-x4a" 'add-change-log-entry-other-window)
 
 ; autoloaded
 ;(define-key global-map "\C-x4a" 'add-change-log-entry-other-window)
index 1f09377..57cfe78 100644 (file)
@@ -5,7 +5,7 @@
 ;; Author: Oscar Figueiredo <Oscar.Figueiredo@di.epfl.ch>
 ;; Maintainer: Oscar Figueiredo <Oscar.Figueiredo@di.epfl.ch>
 ;; Created: Jan 1998
 ;; Author: Oscar Figueiredo <Oscar.Figueiredo@di.epfl.ch>
 ;; Maintainer: Oscar Figueiredo <Oscar.Figueiredo@di.epfl.ch>
 ;; Created: Jan 1998
-;; Version: $Revision: 1.7.2.1 $
+;; Version: $Revision: 1.7.2.3 $
 ;; Keywords: help comm
 
 ;; This file is part of XEmacs
 ;; Keywords: help comm
 
 ;; This file is part of XEmacs
 
 ;;; Code:
 
 
 ;;; Code:
 
-(eval-when '(load eval)
-  (require 'ldap))
-
-(defvar ldap-default-host nil
-  "*Default LDAP server.")
-
-(defvar ldap-host-parameters-alist nil
-  "*An alist of per host options for LDAP transactions
-The list elements look like (HOST PROP1 VAL1 PROP2 VAL2 ...)
-HOST is the name of an LDAP server. PROPn and VALn are property/value pairs
-describing parameters for the server.  Valid properties: 
+(defgroup ldap nil
+  "Lightweight Directory Access Protocol"
+  :group 'comm)
+
+(defcustom ldap-default-host nil
+  "*Default LDAP server hostname.
+A TCP port number can be appended to that name using a colon as 
+a separator."
+  :type '(choice (string :tag "Host name")
+                (const :tag "Use library default" nil))
+  :group 'ldap)
+
+(defcustom ldap-default-port nil
+  "*Default TCP port for LDAP connections.
+Initialized from the LDAP library at build time. Default value is 389."
+  :type '(choice (const :tag "Use library default" nil)
+                (integer :tag "Port number"))
+  :group 'ldap)
+
+(defcustom ldap-default-base nil
+  "*Default base for LDAP searches.
+This is a string using the syntax of RFC 1779.
+For instance, \"o=ACME, c=US\" limits the search to the
+Acme organization in the United States."
+  :type '(choice (const :tag "Use library default" nil)
+                (string :tag "Search base"))
+  :group 'ldap)
+
+
+(defcustom ldap-host-parameters-alist nil
+  "*Alist of host-specific options for LDAP transactions.
+The format of each list element is:
+\(HOST PROP1 VAL1 PROP2 VAL2 ...)
+HOST is the hostname of an LDAP server (with an optional TCP port number
+appended to it  using a colon as a separator). 
+PROPn and VALn are property/value pairs describing parameters for the server.
+Valid properties include:
   `binddn' is the distinguished name of the user to bind as 
     (in RFC 1779 syntax).
   `passwd' is the password to use for simple authentication.
   `binddn' is the distinguished name of the user to bind as 
     (in RFC 1779 syntax).
   `passwd' is the password to use for simple authentication.
@@ -55,39 +81,106 @@ describing parameters for the server.  Valid properties:
   `scope' is one of the three symbols `subtree', `base' or `onelevel'.
   `deref' is one of the symbols `never', `always', `search' or `find'.
   `timelimit' is the timeout limit for the connection in seconds.
   `scope' is one of the three symbols `subtree', `base' or `onelevel'.
   `deref' is one of the symbols `never', `always', `search' or `find'.
   `timelimit' is the timeout limit for the connection in seconds.
-  `sizelimit' is the maximum number of matches to return." )
-
-
-(defun ldap-search (filter &optional host attributes attrsonly)
+  `sizelimit' is the maximum number of matches to return."
+  :type '(repeat :menu-tag "Host parameters"
+                :tag "Host parameters"
+                (list :menu-tag "Host parameters"
+                      :tag "Host parameters"
+                      :value nil
+                      (string :tag "Host name")
+                      (checklist :inline t
+                                 :greedy t
+                                 (list
+                                  :tag "Search Base" 
+                                  :inline t
+                                  (const :tag "Search Base" base)
+                                  string)
+                                 (list
+                                  :tag "Binding DN"
+                                  :inline t
+                                  (const :tag "Binding DN" binddn)
+                                  string)
+                                 (list
+                                  :tag "Password"
+                                  :inline t
+                                  (const :tag "Password" passwd)
+                                  string)
+                                 (list
+                                  :tag "Authentication Method"
+                                  :inline t
+                                  (const :tag "Authentication Method" auth)
+                                  (choice
+                                   (const :menu-tag "None" :tag "None" nil)
+                                   (const :menu-tag "Simple" :tag "Simple" simple)
+                                   (const :menu-tag "Kerberos 4.1" :tag "Kerberos 4.1" krbv41)
+                                   (const :menu-tag "Kerberos 4.2" :tag "Kerberos 4.2" krbv42)))
+                                 (list
+                                  :tag "Search Scope" 
+                                  :inline t
+                                  (const :tag "Search Scope" scope)
+                                  (choice
+                                   (const :menu-tag "Default" :tag "Default" nil)
+                                   (const :menu-tag "Subtree" :tag "Subtree" subtree)
+                                   (const :menu-tag "Base" :tag "Base" base)
+                                   (const :menu-tag "One Level" :tag "One Level" onelevel)))
+                                 (list
+                                  :tag "Dereferencing"
+                                  :inline t
+                                  (const :tag "Dereferencing" deref)
+                                  (choice
+                                   (const :menu-tag "Default" :tag "Default" nil)
+                                   (const :menu-tag "Never" :tag "Never" never)
+                                   (const :menu-tag "Always" :tag "Always" always)
+                                   (const :menu-tag "When searching" :tag "When searching" search)
+                                   (const :menu-tag "When locating base" :tag "When locating base" find)))
+                                 (list
+                                  :tag "Time Limit"
+                                  :inline t
+                                  (const :tag "Time Limit" timelimit)
+                                  (integer :tag "(in seconds)"))
+                                 (list
+                                  :tag "Size Limit"
+                                  :inline t
+                                  (const :tag "Size Limit" sizelimit)
+                                  (integer :tag "(number of records)")))))
+:group 'ldap)
+
+(defun ldap-get-host-parameter (host parameter)
+  "Get the value of PARAMETER for HOST in `ldap-host-parameters-alist'."
+  (plist-get (cdr (assoc host ldap-host-parameters-alist))
+            parameter))
+       
+(defun ldap-search (filter &optional host attributes attrsonly withdn)
   "Perform an LDAP search.
   "Perform an LDAP search.
-FILTER is the search filter in RFC1558 syntax
-HOST is the LDAP host on which to perform the search
-ATTRIBUTES is a list of the specific attributes to retrieve, 
-nil means retrieve all
-ATTRSONLY if non nil retrieves the attributes only without 
+FILTER is the search filter in RFC1558 syntax, i.e. something that
+looks like \"(cn=John Smith)\".
+HOST is the LDAP host on which to perform the search.
+ATTRIBUTES is a list of attributes to retrieve; nil means retrieve all.
+If ATTRSONLY is non nil, the attributes will be retrieved without
 the associated values.
 the associated values.
+If WITHDN is non-nil each entry in the result will be prepennded with
+its distinguished name DN.
 Additional search parameters can be specified through 
 Additional search parameters can be specified through 
-`ldap-host-parameters-alist' which see."
+`ldap-host-parameters-alist' which see.
+The function returns a list of matching entries.  Each entry is itself
+an alist of attribute/value pairs optionally preceded by the DN of the
+entry according to the value of WITHDN."
   (interactive "sFilter:")
   (interactive "sFilter:")
-  (let (host-plist res ldap)
-    (if (null host)
-       (setq host ldap-default-host))
-    (if (null host)
-       (error "No LDAP host specified"))
-    (setq host-plist
-         (cdr (assoc host ldap-host-parameters-alist)))
+  (or host
+      (setq host ldap-default-host))
+  (or host
+      (error "No LDAP host specified"))
+  (let ((host-plist (cdr (assoc host ldap-host-parameters-alist)))
+       ldap)
     (message "Opening LDAP connection to %s..." host)
     (setq ldap (ldap-open host host-plist))
     (message "Searching with LDAP on %s..." host)
     (message "Opening LDAP connection to %s..." host)
     (setq ldap (ldap-open host host-plist))
     (message "Searching with LDAP on %s..." host)
-    (setq res (ldap-search-internal ldap filter 
-                                   (plist-get host-plist 'base)
-                                   (plist-get host-plist 'scope)
-                                   attributes attrsonly))
-    (ldap-close ldap)
-    res))
-
-               
+    (prog1 (ldap-search-internal ldap filter 
+                                (plist-get host-plist 'base)
+                                (plist-get host-plist 'scope)
+                                attributes attrsonly withdn)
+      (ldap-close ldap))))
 
 (provide 'ldap)
 
 (provide 'ldap)
-
+               
 ;;; ldap.el ends here
 ;;; ldap.el ends here
index 83123c6..7ae20c3 100644 (file)
@@ -38,7 +38,7 @@
 ;; Last Modified By: Heiko M|nkel <muenkel@tnt.uni-hannover.de>
 ;; Additional XEmacs integration By: Chuck Thompson <cthomp@cs.uiuc.edu>
 ;; Last Modified On: Thu Jul 1 14:23:00 1994
 ;; Last Modified By: Heiko M|nkel <muenkel@tnt.uni-hannover.de>
 ;; Additional XEmacs integration By: Chuck Thompson <cthomp@cs.uiuc.edu>
 ;; Last Modified On: Thu Jul 1 14:23:00 1994
-;; RCS Info        : $Revision: 1.3 $ $Locker:  $
+;; RCS Info        : $Revision: 1.3.2.1 $ $Locker:  $
 ;; ========================================================================
 ;; NOTE: XEmacs must be redumped if this file is changed.
 ;;
 ;; ========================================================================
 ;; NOTE: XEmacs must be redumped if this file is changed.
 ;;
@@ -104,25 +104,24 @@ If optional fourth argument FAST is non-nil, don't sort the completions,
 
 ;;=== Utilities ===========================================================
 
 
 ;;=== Utilities ===========================================================
 
-(defmacro progn-with-message (MESSAGE &rest FORMS)
+(defmacro progn-with-message (message &rest forms)
   "(progn-with-message MESSAGE FORMS ...)
 Display MESSAGE and evaluate FORMS, returning value of the last one."
   ;; based on Hallvard Furuseth's funcall-with-message
   "(progn-with-message MESSAGE FORMS ...)
 Display MESSAGE and evaluate FORMS, returning value of the last one."
   ;; based on Hallvard Furuseth's funcall-with-message
-  (` 
-   (if (eq (selected-window) (minibuffer-window))
+  `(if (eq (selected-window) (minibuffer-window))
        (save-excursion
         (goto-char (point-max))
         (let ((orig-pmax (point-max)))
           (unwind-protect
               (progn
        (save-excursion
         (goto-char (point-max))
         (let ((orig-pmax (point-max)))
           (unwind-protect
               (progn
-                (insert " " (, MESSAGE)) (goto-char orig-pmax)
+                (insert " " ,message) (goto-char orig-pmax)
                 (sit-for 0)            ; Redisplay
                 (sit-for 0)            ; Redisplay
-                (,@ FORMS))
+                ,@forms)
             (delete-region orig-pmax (point-max)))))
      (prog2
             (delete-region orig-pmax (point-max)))))
      (prog2
-      (message "%s" (, MESSAGE))
-      (progn (,@ FORMS))
-      (message "")))))
+        (message "%s" ,message)
+        (progn ,@forms)
+       (message ""))))
 
 (put 'progn-with-message 'lisp-indent-hook 1)
 
 
 (put 'progn-with-message 'lisp-indent-hook 1)
 
@@ -218,6 +217,7 @@ where each <cache-record> has the form
       (if tail (setcdr tail nil)))))
 
 ;;=== Read a filename, with completion in a search path ===================
       (if tail (setcdr tail nil)))))
 
 ;;=== Read a filename, with completion in a search path ===================
+(defvar read-library-internal-search-path)
 
 (defun read-library-internal (FILE FILTER FLAG)
   "Don't call this."
 
 (defun read-library-internal (FILE FILTER FLAG)
   "Don't call this."
@@ -255,10 +255,7 @@ Optional sixth argument FILTER can be used to provide a function to
     (cond 
      ((equal library "") DEFAULT)
      (FULL (locate-file library read-library-internal-search-path
     (cond 
      ((equal library "") DEFAULT)
      (FULL (locate-file library read-library-internal-search-path
-                       ;; decompression doesn't work with Mule -slb
-                       (if (featurep 'mule)
-                           ".el:.elc"
-                         ".el:.el.gz:.elc")))
+                         '(".el" ".el.gz" ".elc")))
      (t library))))
 
 ;; NOTE: as a special case, read-library may be used to read a filename
      (t library))))
 
 ;; NOTE: as a special case, read-library may be used to read a filename
index 0eda679..76feeb2 100644 (file)
@@ -407,7 +407,7 @@ with tag `Commentary' and ends with tag `Change Log' or `History'."
        (let ((commentary       (lm-commentary-mark))
              (change-log       (lm-history-mark))
              (code             (lm-code-mark))
        (let ((commentary       (lm-commentary-mark))
              (change-log       (lm-history-mark))
              (code             (lm-code-mark))
-             )
+             end)
          (cond
           ((and commentary change-log)
            (buffer-substring commentary change-log))
          (cond
           ((and commentary change-log)
            (buffer-substring commentary change-log))
@@ -415,9 +415,9 @@ with tag `Commentary' and ends with tag `Change Log' or `History'."
            (buffer-substring commentary code))
           (t
            ;; XEmacs change (Infodock headers? -sb)
            (buffer-substring commentary code))
           (t
            ;; XEmacs change (Infodock headers? -sb)
-           (setq commentary (lm-section-mark "DESCRIPTION" t)
-                 code (lm-section-mark "DESCRIP-END"))
-           (and commentary end (buffer-substring commentary code)))))
+           (setq commentary (lm-section-mark "DESCRIPTION" t))
+           (setq end (lm-section-mark "DESCRIP-END"))
+           (and commentary end (buffer-substring commentary end)))))
       (if file
          (kill-buffer (current-buffer)))
       )))
       (if file
          (kill-buffer (current-buffer)))
       )))
@@ -449,17 +449,17 @@ a temporary buffer."
           (switch-to-buffer (get-buffer-create "*lm-verify*"))
           (erase-buffer)
           (mapcar
           (switch-to-buffer (get-buffer-create "*lm-verify*"))
           (erase-buffer)
           (mapcar
-           '(lambda (f)
-              (if (string-match ".*\\.el$" f)
-                  (let ((status (lm-verify f)))
-                    (if status
-                        (progn
-                          (insert f ":")
-                          (lm-insert-at-column lm-comment-column status "\n"))
-                      (and showok
-                           (progn
-                             (insert f ":")
-                             (lm-insert-at-column lm-comment-column "OK\n")))))))
+           #'(lambda (f)
+               (if (string-match ".*\\.el$" f)
+                   (let ((status (lm-verify f)))
+                     (if status
+                         (progn
+                           (insert f ":")
+                           (lm-insert-at-column lm-comment-column status "\n"))
+                       (and showok
+                            (progn
+                              (insert f ":")
+                              (lm-insert-at-column lm-comment-column "OK\n")))))))
            (directory-files file))
           ))
       (save-excursion
            (directory-files file))
           ))
       (save-excursion
@@ -560,7 +560,9 @@ Prompts for bug subject.  Leaves you in a mail buffer."
     (mail nil
          (if addr
              (concat (car addr) " <" (cdr addr) ">")
     (mail nil
          (if addr
              (concat (car addr) " <" (cdr addr) ">")
-           bug-gnu-emacs)
+           (or (and (boundp 'report-emacs-bug-beta-address)
+                    report-emacs-bug-beta-address)
+               "<xemacs-beta@xemacs.org>"))
          topic)
     (goto-char (point-max))
     (insert "\nIn "
          topic)
     (goto-char (point-max))
     (insert "\nIn "
index d193288..e5e97ec 100644 (file)
@@ -766,6 +766,7 @@ of the start of the containing expression."
 (put 'unwind-protect 'lisp-indent-function 1)
 (put 'save-current-buffer 'lisp-indent-function 0)
 (put 'with-current-buffer 'lisp-indent-function 1)
 (put 'unwind-protect 'lisp-indent-function 1)
 (put 'save-current-buffer 'lisp-indent-function 0)
 (put 'with-current-buffer 'lisp-indent-function 1)
+(put 'with-string-as-buffer-contents 'lisp-indent-function 1)
 (put 'with-temp-file 'lisp-indent-function 1)
 (put 'with-temp-buffer 'lisp-indent-function 0)
 (put 'with-output-to-string 'lisp-indent-function 0)
 (put 'with-temp-file 'lisp-indent-function 1)
 (put 'with-temp-buffer 'lisp-indent-function 0)
 (put 'with-output-to-string 'lisp-indent-function 0)
index 8789a14..b3603e5 100644 (file)
@@ -284,6 +284,7 @@ If `completion-highlight-first-word-only' is non-nil, then only the start
        :user-data
        :reference-buffer
        (:help-string completion-default-help-string)
        :user-data
        :reference-buffer
        (:help-string completion-default-help-string)
+       (:completion-string "Possible completions are:")
        :window-width)
       ()
     (let ((old-buffer (current-buffer))
        :window-width)
       ()
     (let ((old-buffer (current-buffer))
@@ -341,7 +342,8 @@ If `completion-highlight-first-word-only' is non-nil, then only the start
                              (if (/= (% count cols) 0) ; want ceiling...
                                  (1+ (/ count cols))
                                 (/ count cols)))))))
                              (if (/= (% count cols) 0) ; want ceiling...
                                  (1+ (/ count cols))
                                 (/ count cols)))))))
-             (princ (gettext "Possible completions are:"))
+             (if (stringp cl-completion-string)
+                 (princ (gettext cl-completion-string)))
              (let ((tail completions)
                    (r 0)
                    (regexp-string
              (let ((tail completions)
                    (r 0)
                    (regexp-string
index 77ba4b1..44ab60b 100644 (file)
 ;; making it more likely you will get a unique match.
 (setq completion-ignored-extensions
       (mapcar 'purecopy
 ;; making it more likely you will get a unique match.
 (setq completion-ignored-extensions
       (mapcar 'purecopy
-             (if (eq system-type 'vax-vms)
-                 '(".obj" ".elc" ".exe" ".bin" ".lbin" ".sbin"
-                   ".dvi" ".toc" ".log" ".aux"
-                   ".lof" ".brn" ".rnt" ".mem" ".lni" ".lis"
-                   ".olb" ".tlb" ".mlb" ".hlb" ".glo" ".idx" ".lot" ".fmt")
-               '(".o" ".elc" "~" ".bin" ".lbin" ".fasl"
-                 ".dvi" ".toc" ".log" ".aux" ".a" ".ln"
-                 ".lof" ".blg" ".bbl" ".glo" ".idx" ".lot" ".fmt"
-                 ".diff" ".oi" ".class"))))
+             '(".o" ".elc" "~" ".bin" ".lbin" ".fasl"
+               ".dvi" ".toc" ".log" ".aux" ".a" ".ln"
+               ".lof" ".blg" ".bbl" ".glo" ".idx" ".lot" ".fmt"
+               ".diff" ".oi" ".class")))
 
 \f
 ;; This needs to be redone better. -slb
 
 \f
 ;; This needs to be redone better. -slb
index f55a51f..7783fd3 100644 (file)
 
 ;;; Code:
 
 
 ;;; Code:
 
+;; load-history is a list of entries that look like this:
+;; ("outline" outline-regexp ... (require . wid-edit) ... (provide . outline) ...)
+
 (defun symbol-file (sym)
   "Return the input source from which SYM was loaded.
 This is a file name, or nil if the source was a buffer with no associated file."
   (interactive "SFind source file for symbol: ") ; XEmacs
 (defun symbol-file (sym)
   "Return the input source from which SYM was loaded.
 This is a file name, or nil if the source was a buffer with no associated file."
   (interactive "SFind source file for symbol: ") ; XEmacs
-  (catch 'foundit
-    (mapcar
-     (function (lambda (x) (if (memq sym (cdr x)) (throw 'foundit (car x)))))
-     load-history)
-    nil))
+  (dolist (entry load-history)
+    (when (memq sym (cdr entry))
+      (return (car entry)))))
 
 (defun feature-symbols (feature)
   "Return the file and list of symbols associated with a given FEATURE."
 
 (defun feature-symbols (feature)
   "Return the file and list of symbols associated with a given FEATURE."
-   (catch 'foundit
-     (mapcar
-      (function (lambda (x) 
-                 (if (member (cons 'provide feature) (cdr x))
-                     (throw 'foundit x))))
-      load-history)
-     nil))
+  (let ((pair `(provide . ,feature)))
+    (dolist (entry load-history)
+      (when (member pair (cdr entry))
+       (return entry)))))
 
 (defun feature-file (feature)
   "Return the file name from which a given FEATURE was loaded.
 Actually, return the load argument, if any; this is sometimes the name of a
 Lisp file without an extension.  If the feature came from an eval-buffer on
 a buffer with no associated file, or an eval-region, return nil."
 
 (defun feature-file (feature)
   "Return the file name from which a given FEATURE was loaded.
 Actually, return the load argument, if any; this is sometimes the name of a
 Lisp file without an extension.  If the feature came from an eval-buffer on
 a buffer with no associated file, or an eval-region, return nil."
-  (if (not (featurep feature))
-      (error "%s is not a currently loaded feature" (symbol-name feature))
-    (car (feature-symbols feature))))
+  (unless (featurep feature)
+    (error "%s is not a currently loaded feature" (symbol-name feature)))
+  (car (feature-symbols feature)))
+
+(defun file-symbols (file)
+  "Return the file and list of symbols associated with FILE.
+The file name in the returned list is the string used to load the file,
+and may not be the same string as FILE, but it will be equivalent."
+  (or (assoc file load-history)
+      (assoc (file-name-sans-extension file) load-history)
+      (assoc (concat file ".el") load-history)
+      (assoc (concat file ".elc") load-history)))
 
 (defun file-provides (file)
   "Return the list of features provided by FILE."
 
 (defun file-provides (file)
   "Return the list of features provided by FILE."
-  (let ((symbols (or (cdr (assoc file load-history))
-                    (cdr (assoc (file-name-sans-extension file) load-history))
-                    (cdr (assoc (concat file ".el") load-history))
-                    (cdr (assoc (concat file ".elc") load-history))))
-       (provides nil))
-    (mapcar
-     (function (lambda (x)
-                (if (and (consp x) (eq (car x) 'provide))
-                    (setq provides (cons (cdr x) provides)))))
-     symbols)
-    provides
-    ))
+  (let ((provides nil))
+    (dolist (x (cdr (file-symbols file)))
+      (when (eq (car-safe x) 'provide)
+       (push (cdr x) provides)))
+    provides))
 
 (defun file-requires (file)
   "Return the list of features required by FILE."
 
 (defun file-requires (file)
   "Return the list of features required by FILE."
-  (let ((symbols (cdr (assoc file load-history))) (requires nil))
-    (mapcar
-     (function (lambda (x)
-                (if (and (consp x) (eq (car x) 'require))
-                    (setq requires (cons (cdr x) requires)))))
-     symbols)
-    requires
-    ))
-
-(defun file-set-intersect (p q)
-  ;; Return the set intersection of two lists
-  (let ((ret nil))
-    (mapcar
-     (function (lambda (x) (if (memq x q) (setq ret (cons x ret)))))
-     p)
-    ret
-    ))
+  (let ((requires nil))
+    (dolist (x (cdr (file-symbols file)))
+      (when (eq (car-safe x) 'require)
+       (push (cdr x) requires)))
+    requires))
 
 (defun file-dependents (file)
   "Return the list of loaded libraries that depend on FILE.
 This can include FILE itself."
 
 (defun file-dependents (file)
   "Return the list of loaded libraries that depend on FILE.
 This can include FILE itself."
-  (let ((provides (file-provides file)) (dependents nil))
-    (mapcar
-     (function (lambda (x) 
-                (if (file-set-intersect provides (file-requires (car x)))
-                    (setq dependents (cons (car x) dependents)))))
-     load-history)
-    dependents
-    ))
+  (let ((provides (file-provides file))
+       (dependents nil))
+    (dolist (entry load-history)
+      (dolist (x (cdr entry))
+       (when (and (eq (car-safe x) 'require)
+                  (memq (cdr-safe x) provides))
+         (push (car entry) dependents))))
+    dependents))
 
 ;; FSFmacs
 ;(defun read-feature (prompt)
 
 ;; FSFmacs
 ;(defun read-feature (prompt)
@@ -116,8 +104,8 @@ This can include FILE itself."
 ;prompting with PROMPT and completing from `features', and
 ;return the feature \(symbol\)."
 ;  (intern (completing-read prompt
 ;prompting with PROMPT and completing from `features', and
 ;return the feature \(symbol\)."
 ;  (intern (completing-read prompt
-;                         (mapcar (function (lambda (feature)
-;                                             (list (symbol-name feature))))
+;                         (mapcar #'(lambda (feature)
+;                                   (list (symbol-name feature)))
 ;                                 features)
 ;                         nil t)))
 
 ;                                 features)
 ;                         nil t)))
 
@@ -127,28 +115,27 @@ This can include FILE itself."
 If the feature is required by any other loaded code, and optional FORCE
 is nil, raise an error."
   (interactive "SFeature: ")
 If the feature is required by any other loaded code, and optional FORCE
 is nil, raise an error."
   (interactive "SFeature: ")
-  (if (not (featurep feature))
-      (error "%s is not a currently loaded feature" (symbol-name feature)))
-  (if (not force)
-      (let* ((file (feature-file feature))
-            (dependents (delete file (copy-sequence (file-dependents file)))))
-       (if dependents
-           (error "Loaded libraries %s depend on %s"
-                  (prin1-to-string dependents) file)
-           )))
+  (unless (featurep feature)
+    (error "%s is not a currently loaded feature" (symbol-name feature)))
+  (when (not force)
+    (let* ((file (feature-file feature))
+          (dependents (delete file (copy-sequence (file-dependents file)))))
+      (when dependents
+       (error "Loaded libraries %s depend on %s"
+              (prin1-to-string dependents) file))))
   (let* ((flist (feature-symbols feature)) (file (car flist)))
     (mapcar
   (let* ((flist (feature-symbols feature)) (file (car flist)))
     (mapcar
-     (function (lambda (x) 
-                (cond ((stringp x) nil)
-                      ((consp x)
-                       ;; Remove any feature names that this file provided.
-                       (if (eq (car x) 'provide)
-                           (setq features (delq (cdr x) features))))
-                      ((boundp x) (makunbound x))
-                      ((fboundp x)
-                       (fmakunbound x)
-                       (let ((aload (get x 'autoload)))
-                         (if aload (fset x (cons 'autoload aload))))))))
+     #'(lambda (x)
+        (cond ((stringp x) nil)
+              ((consp x)
+               ;; Remove any feature names that this file provided.
+               (if (eq (car x) 'provide)
+                   (setq features (delq (cdr x) features))))
+              ((boundp x) (makunbound x))
+              ((fboundp x)
+               (fmakunbound x)
+               (let ((aload (get x 'autoload)))
+                 (if aload (fset x (cons 'autoload aload)))))))
      (cdr flist))
     ;; Delete the load-history element for this file.
     (let ((elt (assoc file load-history)))
      (cdr flist))
     ;; Delete the load-history element for this file.
     (let ((elt (assoc file load-history)))
index 68063a8..4c836bb 100644 (file)
 
 ;;; Code:
 
 
 ;;; Code:
 
-(if (fboundp 'error)
-    (error "loadup.el already loaded!"))
+(when (fboundp 'error)
+  (error "loadup.el already loaded!"))
 
 (defvar running-xemacs t
   "Non-nil when the current emacs is XEmacs.")
 (defvar preloaded-file-list nil
   "List of files preloaded into the XEmacs binary image.")
 
 
 (defvar running-xemacs t
   "Non-nil when the current emacs is XEmacs.")
 (defvar preloaded-file-list nil
   "List of files preloaded into the XEmacs binary image.")
 
+(defvar Installation-string nil
+  "Description of XEmacs installation.")
+
+(let ((gc-cons-threshold 30000))
+  
 ;; This is awfully damn early to be getting an error, right?
 (call-with-condition-handler 'really-early-error-handler
     #'(lambda ()
 ;; This is awfully damn early to be getting an error, right?
 (call-with-condition-handler 'really-early-error-handler
     #'(lambda ()
-       ;; message not defined yet ...
+
+       ;; Initializa Installation-string.  We do it before loading
+       ;; anything so that dumped code can make use of its value.
+       (setq Installation-string
+             (save-current-buffer
+               (set-buffer (get-buffer-create (generate-new-buffer-name
+                                               " *temp*")))
+               ;; insert-file-contents-internal bogusly calls
+               ;; format-decode without checking if it's defined.
+               (fset 'format-decode #'(lambda (f l &optional v) l))
+               (insert-file-contents-internal "../Installation")
+               (fmakunbound 'format-decode)
+               (prog1 (buffer-substring)
+                 (kill-buffer (current-buffer)))))
+
        (setq load-path (split-path (getenv "EMACSBOOTSTRAPLOADPATH")))
        (setq load-path (split-path (getenv "EMACSBOOTSTRAPLOADPATH")))
+       (setq module-load-path (split-path (getenv "EMACSBOOTSTRAPMODULEPATH")))
 
 
+       ;; message not defined yet ...
        (external-debugging-output (format "\nUsing load-path %s" load-path))
        (external-debugging-output (format "\nUsing load-path %s" load-path))
+       (external-debugging-output (format "\nUsing module-load-path %s"
+                                          module-load-path))
 
        ;; We don't want to have any undo records in the dumped XEmacs.
        (buffer-disable-undo (get-buffer "*scratch*"))
 
        ;; We don't want to have any undo records in the dumped XEmacs.
        (buffer-disable-undo (get-buffer "*scratch*"))
@@ -64,7 +87,6 @@
        ;; the package path.
        ;; #### This code is duplicated in two other places.
        (let ((temp-path (expand-file-name "." (car load-path))))
        ;; the package path.
        ;; #### This code is duplicated in two other places.
        (let ((temp-path (expand-file-name "." (car load-path))))
-         (setq source-directory temp-path)
          (setq load-path (nconc (mapcar
                                  #'(lambda (i) (concat i "/"))
                                  (directory-files temp-path t "^[^-.]"
          (setq load-path (nconc (mapcar
                                  #'(lambda (i) (concat i "/"))
                                  (directory-files temp-path t "^[^-.]"
        ;; there will be lots of extra space in the data segment filled
        ;; with garbage-collected junk)
        (defun pureload (file)
        ;; there will be lots of extra space in the data segment filled
        ;; with garbage-collected junk)
        (defun pureload (file)
-         (let ((full-path (locate-file file
-                                       load-path
-                                       (if load-ignore-elc-files
-                                           ".el:"
-                                         ".elc:.el:"))))
+         (let ((full-path
+                (locate-file file load-path
+                             (if load-ignore-elc-files
+                                 '(".el" "") '(".elc" ".el" "")))))
            (if full-path
                (prog1
                  (load full-path)
            (if full-path
                (prog1
                  (load full-path)
        (let ((files preloaded-file-list)
              file)
          (while (setq file (car files))
        (let ((files preloaded-file-list)
              file)
          (while (setq file (car files))
-           (or (pureload file)
-             (progn
-               (external-debugging-output "Fatal error during load, aborting")
-               (kill-emacs 1)))
+           (unless (pureload file)
+             (external-debugging-output "Fatal error during load, aborting")
+             (kill-emacs 1))
            (setq files (cdr files)))
            (setq files (cdr files)))
-         (if (not (featurep 'toolbar))
-             (progn
-               ;; else still define a few functions.
-               (defun toolbar-button-p    (obj) "No toolbar support." nil)
-               (defun toolbar-specifier-p (obj) "No toolbar support." nil)))
+         (when (not (featurep 'toolbar))
+           ;; else still define a few functions.
+           (defun toolbar-button-p    (obj) "No toolbar support." nil)
+           (defun toolbar-specifier-p (obj) "No toolbar support." nil))
          (fmakunbound 'pureload))
 
        (packages-load-package-dumped-lisps late-package-load-path)
          (fmakunbound 'pureload))
 
        (packages-load-package-dumped-lisps late-package-load-path)
 ;; But you must also cause them to be scanned when the DOC file
 ;; is generated.  For VMS, you must edit ../../vms/makedoc.com.
 ;; For other systems, you must edit ../../src/Makefile.in.in.
 ;; But you must also cause them to be scanned when the DOC file
 ;; is generated.  For VMS, you must edit ../../vms/makedoc.com.
 ;; For other systems, you must edit ../../src/Makefile.in.in.
-(if (load "site-load" t)
-    (garbage-collect))
+(when (load "site-load" t)
+  (garbage-collect))
 
 ;;FSFmacs randomness
 ;;(if (fboundp 'x-popup-menu)
 
 ;;FSFmacs randomness
 ;;(if (fboundp 'x-popup-menu)
 ;;; for the sake of the next call to precompute-menubar-bindings.
 ;(setq define-key-rebound-commands nil)
 
 ;;; for the sake of the next call to precompute-menubar-bindings.
 ;(setq define-key-rebound-commands nil)
 
-
 ;; Note: all compiled Lisp files loaded above this point
 ;; must be among the ones parsed by make-docfile
 ;; to construct DOC.  Any that are not processed
 ;; Note: all compiled Lisp files loaded above this point
 ;; must be among the ones parsed by make-docfile
 ;; to construct DOC.  Any that are not processed
   (message "Finding pointers to doc strings...")
   (Snarf-documentation "DOC")
   (message "Finding pointers to doc strings...done")
   (message "Finding pointers to doc strings...")
   (Snarf-documentation "DOC")
   (message "Finding pointers to doc strings...done")
-  (Verify-documentation)
-  )
+  (Verify-documentation))
 
 ;; Note: You can cause additional libraries to be preloaded
 ;; by writing a site-init.el that loads them.
 ;; See also "site-load" above.
 
 ;; Note: You can cause additional libraries to be preloaded
 ;; by writing a site-init.el that loads them.
 ;; See also "site-load" above.
-(if (stringp site-start-file)
-    (load "site-init" t))
+(when (stringp site-start-file)
+  (load "site-init" t))
 (setq current-load-list nil)
 (garbage-collect)
 
 ;;; At this point, we're ready to resume undo recording for scratch.
 (buffer-enable-undo "*scratch*")
 
 (setq current-load-list nil)
 (garbage-collect)
 
 ;;; At this point, we're ready to resume undo recording for scratch.
 (buffer-enable-undo "*scratch*")
 
+) ;; frequent garbage collection
+
 ;; Dump into the name `xemacs' (only)
 (when (member "dump" command-line-args)
 ;; Dump into the name `xemacs' (only)
 (when (member "dump" command-line-args)
-    (message "Dumping under the name xemacs")
-    ;; This is handled earlier in the build process.
-    ;; (condition-case () (delete-file "xemacs") (file-error nil))
-    (when (fboundp 'really-free)
-      (really-free))
-    (dump-emacs (if (featurep 'infodock) "infodock" "xemacs") "temacs")
-    (kill-emacs))
+  (message "Dumping under the name xemacs")
+  ;; This is handled earlier in the build process.
+  ;; (condition-case () (delete-file "xemacs") (file-error nil))
+  (when (fboundp 'really-free)
+    (really-free))
+  (dump-emacs (if (featurep 'infodock) "infodock" "xemacs") "temacs")
+  (kill-emacs))
+
+;; Avoid error if user loads some more libraries now.
+(setq purify-flag nil)
 
 (when (member "run-temacs" command-line-args)
   (message "\nBootstrapping from temacs...")
 
 (when (member "run-temacs" command-line-args)
   (message "\nBootstrapping from temacs...")
-  (setq purify-flag nil)
-  (setq inhibit-early-packages t)
-  (setq inhibit-autoloads t)
   ;; Remove all args up to and including "run-temacs"
   (apply #'run-emacs-from-temacs (cdr (member "run-temacs" command-line-args)))
   ;; run-emacs-from-temacs doesn't actually return anyway.
   (kill-emacs))
 
   ;; Remove all args up to and including "run-temacs"
   (apply #'run-emacs-from-temacs (cdr (member "run-temacs" command-line-args)))
   ;; run-emacs-from-temacs doesn't actually return anyway.
   (kill-emacs))
 
-;; Avoid error if user loads some more libraries now.
-(setq purify-flag nil)
-
 ;; XEmacs change
 ;; If you are using 'recompile', then you should have used -l loadup-el.el
 ;; so that the .el files always get loaded (the .elc files may be out-of-
 ;; date or bad).
 (when (member "recompile" command-line-args)
 ;; XEmacs change
 ;; If you are using 'recompile', then you should have used -l loadup-el.el
 ;; so that the .el files always get loaded (the .elc files may be out-of-
 ;; date or bad).
 (when (member "recompile" command-line-args)
-  (let ((command-line-args-left (cdr (member "recompile" command-line-args))))
-    (batch-byte-recompile-directory)
-    (kill-emacs)))
+  (setq command-line-args-left (cdr (member "recompile" command-line-args)))
+  (batch-byte-recompile-directory)
+  (kill-emacs))
 
 ;; For machines with CANNOT_DUMP defined in config.h,
 ;; this file must be loaded each time Emacs is run.
 
 ;; For machines with CANNOT_DUMP defined in config.h,
 ;; this file must be loaded each time Emacs is run.
index 1f56feb..e67fdbf 100644 (file)
@@ -51,9 +51,9 @@
                 (string-equal arg "-a") ; Append to DOC file
                 (string-equal arg "-d")) ; Set working directory
             (if (string-equal arg "-o")
                 (string-equal arg "-a") ; Append to DOC file
                 (string-equal arg "-d")) ; Set working directory
             (if (string-equal arg "-o")
-                (setq docfile (car (cdr command-line-args))))
+                (setq docfile (expand-file-name (car (cdr command-line-args)))))
             (setq options (cons arg options))
             (setq options (cons arg options))
-            (setq options (cons (car (cdr command-line-args)) options)))
+            (setq options (cons (expand-file-name (car (cdr command-line-args))) options)))
            ((string-equal arg "-i") ; Set site files to scan
             (setq site-file-list (car (cdr command-line-args))))
            (t (setq done t)))
            ((string-equal arg "-i") ; Set site files to scan
             (setq site-file-list (car (cdr command-line-args))))
            (t (setq done t)))
@@ -81,8 +81,6 @@
 
 ;; Then process the autoloads
 (setq autoload-file-name "auto-autoloads.elc")
 
 ;; Then process the autoloads
 (setq autoload-file-name "auto-autoloads.elc")
-(setq source-directory (concat default-directory "../lisp"))
-;; (print (concat "Source directory: " source-directory))
 (load "find-paths.el")
 (load "packages.el")
 (load "setup-paths.el")
 (load "find-paths.el")
 (load "packages.el")
 (load "setup-paths.el")
           nil
           "-fc"
           (mapconcat
           nil
           "-fc"
           (mapconcat
-           'identity
+           #'identity
            (append
             (list (concat default-directory "../lib-src/make-docfile"))
             options processed)
            (append
             (list (concat default-directory "../lib-src/make-docfile"))
             options processed)
index 64d3e58..6fef0e9 100644 (file)
@@ -90,15 +90,14 @@ Returns the number of actions taken."
                       (compiled-function-p list)
                       (and (consp list)
                            (eq (car list) 'lambda)))
                       (compiled-function-p list)
                       (and (consp list)
                            (eq (car list) 'lambda)))
-                  (function (lambda ()
-                              (setq elt (funcall list))))
-                (function (lambda ()
-                            (if list
-                                (progn
-                                  (setq elt (car list)
-                                        list (cdr list))
-                                  t)
-                              nil))))))
+                  #'(lambda () (setq elt (funcall list)))
+                #'(lambda ()
+                    (if list
+                        (progn
+                          (setq elt (car list)
+                                list (cdr list))
+                          t)
+                      nil)))))
     (if (should-use-dialog-box-p)
        ;; Make a list describing a dialog box.
        (let (;; (object (capitalize (or (nth 0 help) "object")))
     (if (should-use-dialog-box-p)
        ;; Make a list describing a dialog box.
        (let (;; (object (capitalize (or (nth 0 help) "object")))
@@ -123,19 +122,18 @@ Returns the number of actions taken."
                        ("Yes All" . automatic)
                        ("No All" . exit)
                        ("Cancel" . quit)
                        ("Yes All" . automatic)
                        ("No All" . exit)
                        ("Cancel" . quit)
-                       ,@(mapcar (lambda (elt)
-                                   (cons (capitalize (nth 2 elt))
-                                         (vector (nth 1 elt))))
+                       ,@(mapcar #'(lambda (elt)
+                                     (cons (capitalize (nth 2 elt))
+                                           (vector (nth 1 elt))))
                                  action-alist))
                mouse-event last-command-event))
       (setq user-keys (if action-alist
                                  action-alist))
                mouse-event last-command-event))
       (setq user-keys (if action-alist
-                         (concat (mapconcat (function
-                                             (lambda (elt)
-                                               (key-description
-                                                (if (characterp (car elt))
-                                                    ;; XEmacs
-                                                    (char-to-string (car elt))
-                                                  (car elt)))))
+                         (concat (mapconcat #'(lambda (elt)
+                                                (key-description
+                                                 (if (characterp (car elt))
+                                                     ;; XEmacs
+                                                     (char-to-string (car elt))
+                                                   (car elt))))
                                             action-alist ", ")
                                  " ")
                        "")
                                             action-alist ", ")
                                  " ")
                        "")
@@ -156,8 +154,8 @@ Returns the number of actions taken."
     (unwind-protect
        (progn
          (if (stringp prompter)
     (unwind-protect
        (progn
          (if (stringp prompter)
-             (setq prompter (` (lambda (object)
-                                 (format (, prompter) object)))))
+             (setq prompter `(lambda (object)
+                               (format ,prompter object))))
          (while (funcall next)
            (setq prompt (funcall prompter elt))
            (cond ((stringp prompt)
          (while (funcall next)
            (setq prompt (funcall prompter elt))
            (cond ((stringp prompt)
@@ -186,7 +184,7 @@ Returns the number of actions taken."
                         (single-key-description char))))
                     (setq def (lookup-key map (vector char))))
                   (cond ((eq def 'exit)
                         (single-key-description char))))
                     (setq def (lookup-key map (vector char))))
                   (cond ((eq def 'exit)
-                         (setq next (function (lambda () nil))))
+                         (setq next #'(lambda () nil)))
                         ((eq def 'act)
                          ;; Act on the object.
                          (funcall actor elt)
                         ((eq def 'act)
                          ;; Act on the object.
                          (funcall actor elt)
@@ -201,9 +199,9 @@ Returns the number of actions taken."
                                next (function (lambda () nil))))
                         ((or (eq def 'quit) (eq def 'exit-prefix))
                          (setq quit-flag t)
                                next (function (lambda () nil))))
                         ((or (eq def 'quit) (eq def 'exit-prefix))
                          (setq quit-flag t)
-                         (setq next (` (lambda ()
-                                         (setq next '(, next))
-                                         '(, elt)))))
+                         (setq next `(lambda ()
+                                       (setq next ',next)
+                                         ',elt)))
                         ((eq def 'automatic)
                          ;; Act on this and all following objects.
                          ;; (if (funcall prompter elt) ; Emacs
                         ((eq def 'automatic)
                          ;; Act on this and all following objects.
                          ;; (if (funcall prompter elt) ; Emacs
@@ -244,34 +242,34 @@ the current %s and exit."
                              (set-buffer standard-output)
                              (help-mode)))
 
                              (set-buffer standard-output)
                              (help-mode)))
 
-                         (setq next (` (lambda ()
-                                         (setq next '(, next))
-                                         '(, elt)))))
+                         (setq next `(lambda ()
+                                       (setq next ',next)
+                                       ',elt)))
                         ((vectorp def)
                          ;; A user-defined key.
                          (if (funcall (aref def 0) elt) ;Call its function.
                              ;; The function has eaten this object.
                              (setq actions (1+ actions))
                            ;; Regurgitated; try again.
                         ((vectorp def)
                          ;; A user-defined key.
                          (if (funcall (aref def 0) elt) ;Call its function.
                              ;; The function has eaten this object.
                              (setq actions (1+ actions))
                            ;; Regurgitated; try again.
-                           (setq next (` (lambda ()
-                                           (setq next '(, next))
-                                           '(, elt))))))
+                           (setq next `(lambda ()
+                                         (setq next ',next)
+                                         ',elt))))
                         ;((and (consp char) ; Emacs
                         ;      (eq (car char) 'switch-frame))
                         ; ;; switch-frame event.  Put it off until we're done.
                         ; (setq delayed-switch-frame char)
                         ;((and (consp char) ; Emacs
                         ;      (eq (car char) 'switch-frame))
                         ; ;; switch-frame event.  Put it off until we're done.
                         ; (setq delayed-switch-frame char)
-                        ; (setq next (` (lambda ()
-                        ;                 (setq next '(, next))
-                        ;                 '(, elt)))))
+                        ; (setq next `(lambda ()
+                        ;               (setq next ',next)
+                        ;               ',elt)))
                         (t
                          ;; Random char.
                          (message "Type %s for help."
                                   (key-description (vector help-char)))
                          (beep)
                          (sit-for 1)
                         (t
                          ;; Random char.
                          (message "Type %s for help."
                                   (key-description (vector help-char)))
                          (beep)
                          (sit-for 1)
-                         (setq next (` (lambda ()
-                                         (setq next '(, next))
-                                         '(, elt)))))))
+                         (setq next `(lambda ()
+                                       (setq next ',next)
+                                       ',elt)))))
                  ((eval prompt)
                   (progn
                     (funcall actor elt)
                  ((eval prompt)
                   (progn
                     (funcall actor elt)
index fa55059..a2f84d5 100644 (file)
@@ -171,8 +171,8 @@ See `current-menubar' for a description of the syntax of a menubar."
                             menuitem)))
                )))
        )
                             menuitem)))
                )))
        )
-       ;; (t (signal 'error (list "unrecognised menu descriptor" menuitem))))
-       (t (message "unrecognised menu descriptor %s" (prin1-to-string menuitem))))
+       ;; (t (signal 'error (list "unrecognized menu descriptor" menuitem))))
+       (t (message "unrecognized menu descriptor %s" (prin1-to-string menuitem))))
       (setq menu (cdr menu)))))
 
 \f
       (setq menu (cdr menu)))))
 
 \f
@@ -218,7 +218,7 @@ If some menu in the ITEM-PATH-LIST does not exist, an error is signalled."
                                      (car item-path-list)))))
        (cons result parent)))))
 
                                      (car item-path-list)))))
        (cons result parent)))))
 
-(defun add-menu-item-1 (leaf-p menu-path new-item before)
+(defun add-menu-item-1 (leaf-p menu-path new-item before in-menu)
   ;; This code looks like it could be cleaned up some more
   ;; Do we really need 6 calls to find-menu-item?
   (when before (setq before (normalize-menu-item-name before)))
   ;; This code looks like it could be cleaned up some more
   ;; Do we really need 6 calls to find-menu-item?
   (when before (setq before (normalize-menu-item-name before)))
@@ -226,7 +226,7 @@ If some menu in the ITEM-PATH-LIST does not exist, an error is signalled."
          (cond ((vectorp new-item) (aref new-item 0))
                ((consp   new-item) (car  new-item))
                (t nil)))
          (cond ((vectorp new-item) (aref new-item 0))
                ((consp   new-item) (car  new-item))
                (t nil)))
-        (menubar current-menubar)
+        (menubar (or in-menu current-menubar))
         (menu (condition-case ()
                   (car (find-menu-item menubar menu-path))
                 (error nil)))
         (menu (condition-case ()
                   (car (find-menu-item menubar menu-path))
                 (error nil)))
@@ -292,7 +292,7 @@ If some menu in the ITEM-PATH-LIST does not exist, an error is signalled."
     (set-menubar-dirty-flag)
     new-item))
 
     (set-menubar-dirty-flag)
     new-item))
 
-(defun add-menu-button (menu-path menu-leaf &optional before)
+(defun add-menu-button (menu-path menu-leaf &optional before in-menu)
   "Add a menu item to some menu, creating the menu first if necessary.
 If the named item exists already, it is changed.
 MENU-PATH identifies the menu under which the new menu item should be inserted.
   "Add a menu item to some menu, creating the menu first if necessary.
 If the named item exists already, it is changed.
 MENU-PATH identifies the menu under which the new menu item should be inserted.
@@ -301,12 +301,16 @@ MENU-PATH identifies the menu under which the new menu item should be inserted.
 MENU-LEAF is a menubar leaf node.  See the documentation of `current-menubar'.
 BEFORE, if provided, is the name of a menu item before which this item should
  be added, if this item is not on the menu already.  If the item is already
 MENU-LEAF is a menubar leaf node.  See the documentation of `current-menubar'.
 BEFORE, if provided, is the name of a menu item before which this item should
  be added, if this item is not on the menu already.  If the item is already
- present, it will not be moved."
-  (add-menu-item-1 t menu-path menu-leaf before))
+ present, it will not be moved.
+If IN-MENU is present use that instead of `current-menubar' as the menu to
+change.
+"
+  ;; Note easymenu.el uses the fact that menu-leaf can be a submenu.
+  (add-menu-item-1 t menu-path menu-leaf before in-menu))
 
 ;; I actually liked the old name better, but the interface has changed too
 ;; drastically to keep it. --Stig 
 
 ;; I actually liked the old name better, but the interface has changed too
 ;; drastically to keep it. --Stig 
-(defun add-submenu (menu-path submenu &optional before)
+(defun add-submenu (menu-path submenu &optional before in-menu)
   "Add a menu to the menubar or one of its submenus.
 If the named menu exists already, it is changed.
 MENU-PATH identifies the menu under which the new menu should be inserted.
   "Add a menu to the menubar or one of its submenus.
 If the named menu exists already, it is changed.
 MENU-PATH identifies the menu under which the new menu should be inserted.
@@ -319,7 +323,7 @@ BEFORE, if provided, is the name of a menu before which this menu should
  be added, if this menu is not on its parent already.  If the menu is already
  present, it will not be moved."
   (check-menu-syntax submenu nil)
  be added, if this menu is not on its parent already.  If the menu is already
  present, it will not be moved."
   (check-menu-syntax submenu nil)
-  (add-menu-item-1 nil menu-path submenu before))
+  (add-menu-item-1 nil menu-path submenu before in-menu))
 
 (defun purecopy-menubar (x)
   ;; this calls purecopy on the strings, and the contents of the vectors,
 
 (defun purecopy-menubar (x)
   ;; this calls purecopy on the strings, and the contents of the vectors,
@@ -340,11 +344,12 @@ BEFORE, if provided, is the name of a menu before which this menu should
        (t
         (purecopy x))))
 
        (t
         (purecopy x))))
 
-(defun delete-menu-item (path)
+(defun delete-menu-item (path &optional from-menu)
   "Remove the named menu item from the menu hierarchy.
 PATH is a list of strings which identify the position of the menu item in 
 the menu hierarchy.  The documentation of `add-submenu' describes menu-paths."
   "Remove the named menu item from the menu hierarchy.
 PATH is a list of strings which identify the position of the menu item in 
 the menu hierarchy.  The documentation of `add-submenu' describes menu-paths."
-  (let* ((pair (condition-case nil (find-menu-item current-menubar path)
+  (let* ((pair (condition-case nil (find-menu-item (or from-menu
+                                                      current-menubar) path)
                 (error nil)))
         (item (car pair))
         (parent (or (cdr pair) current-menubar)))
                 (error nil)))
         (item (car pair))
         (parent (or (cdr pair) current-menubar)))
index 5778428..73ba99c 100644 (file)
@@ -1,8 +1,8 @@
 #!/bin/sh
 emacs_major_version=21
 emacs_minor_version=2
 #!/bin/sh
 emacs_major_version=21
 emacs_minor_version=2
-emacs_beta_version=1
-xemacs_codename="Aeolus"
+emacs_beta_version=14
+xemacs_codename="Dionysos"
 infodock_major_version=4
 infodock_minor_version=0
 infodock_major_version=4
 infodock_minor_version=0
-infodock_build_version=1
+infodock_build_version=7