From a5f466de30a3e927ed1146b0c7e3870e71465c8f Mon Sep 17 00:00:00 2001 From: tomo Date: Mon, 17 May 1999 09:41:54 +0000 Subject: [PATCH] XEmacs 21.2.14. --- .cvsignore | 9 + CHANGES-beta | 130 ++ ChangeLog | 558 ++++-- INSTALL | 48 +- Makefile.in.in | 32 +- PROBLEMS | 1294 +++++++------- README.packages | 14 +- aclocal.m4 | 693 +++++++- config.guess | 70 +- config.sub | 208 ++- configure | 3750 ++++++++++++++++++++++++++-------------- configure.in | 764 ++++---- configure.usage | 320 ++-- dynodump/Makefile.in.in | 2 +- dynodump/_dynodump.h | 2 +- dynodump/dynodump.c | 2 +- dynodump/i386/_relocate.c | 2 +- dynodump/i386/machdep.h | 2 +- dynodump/ppc/_relocate.c | 2 +- dynodump/ppc/machdep.h | 2 +- dynodump/sparc/_relocate.c | 2 +- dynodump/sparc/machdep.h | 2 +- dynodump/syms.c | 2 +- etc/BETA | 6 +- etc/HELLO | 26 +- etc/MOTIVATION | 2 +- etc/MYTHOLOGY | 25 + etc/NEWS | 212 ++- etc/PACKAGES | 13 +- etc/TUTORIAL.de | 104 +- etc/check_cygwin_setup.sh | 6 +- etc/package-index.LATEST.pgp | 2072 +++++++++++----------- etc/photos/wing.png | Bin 0 -> 7014 bytes etc/photos/wingm.png | Bin 0 -> 1370 bytes etc/recycle.xpm | 9 +- etc/sample.emacs | 24 +- etc/xemacs.1 | 28 +- lib-src/.cvsignore | 25 + lib-src/ChangeLog | 194 +++ lib-src/Makefile.in.in | 74 +- lib-src/aixcc.lex | 301 ++++ lib-src/config.values.in | 15 +- lib-src/fakemail.c | 52 +- lib-src/gnuclient.c | 48 +- lib-src/gnudepend.pl | 2 +- lib-src/gnuserv.c | 8 +- lib-src/make-docfile.c | 60 +- lib-src/make-msgfile.c | 8 +- lib-src/make-msgfile.lex | 8 +- lib-src/movemail.c | 292 +++- lib-src/pop.c | 10 +- lib-src/process-depends.sh | 68 + lib-src/process-gnu-depends.sh | 49 + lib-src/profile.c | 19 + lib-src/pstogif | 2 +- lib-src/rcs2log | 2 +- lib-src/run.c | 3 - lib-src/run.h | 100 ++ lib-src/run.rc | 30 + lib-src/sorted-doc.c | 5 +- lib-src/update-autoloads.sh | 16 +- lib-src/update-custom.sh | 20 +- lib-src/update-elc.sh | 27 +- lib-src/yow.c | 1 + lisp/.cvsignore | 1 + lisp/ChangeLog | 1375 +++++++++++++++ lisp/about.el | 168 +- lisp/alist.el | 14 +- lisp/apropos.el | 2 +- lisp/auto-autoloads.el | 215 ++- lisp/auto-save.el | 49 +- lisp/auto-show.el | 3 +- lisp/autoload.el | 2 + lisp/buffer.el | 6 +- lisp/build-report.el | 5 +- lisp/byte-optimize.el | 226 +-- lisp/bytecomp-runtime.el | 24 +- lisp/bytecomp.el | 1067 ++++++------ lisp/callers-of-rpt.el | 7 +- lisp/check-features.el | 8 +- lisp/cl-extra.el | 198 +-- lisp/cl-macs.el | 342 ++-- lisp/cl.el | 173 +- lisp/cleantree.el | 68 + lisp/cmdloop.el | 4 +- lisp/code-files.el | 26 +- lisp/code-process.el | 36 +- lisp/config.el | 6 +- lisp/cus-dep.el | 26 +- lisp/cus-edit.el | 11 +- lisp/cus-face.el | 32 +- lisp/custom-load.el | 6 + lisp/custom.el | 3 +- lisp/derived.el | 66 +- lisp/device.el | 23 + lisp/disass.el | 22 +- lisp/dragdrop.el | 6 +- lisp/dump-paths.el | 16 +- lisp/dumped-lisp.el | 11 +- lisp/easymenu.el | 63 +- lisp/etags.el | 21 +- lisp/events.el | 2 - lisp/faces.el | 51 +- lisp/files.el | 357 ++-- lisp/fill.el | 3 +- lisp/find-paths.el | 34 +- lisp/finder.el | 77 +- lisp/font-lock.el | 21 +- lisp/font.el | 148 +- lisp/format.el | 29 +- lisp/glyphs.el | 4 + lisp/gnuserv.el | 2 +- lisp/help.el | 39 +- lisp/hyper-apropos.el | 22 +- lisp/info.el | 209 ++- lisp/isearch-mode.el | 81 +- lisp/itimer.el | 3 +- lisp/keydefs.el | 6 +- lisp/ldap.el | 169 +- lisp/lib-complete.el | 23 +- lisp/lisp-mnt.el | 34 +- lisp/lisp-mode.el | 1 + lisp/list-mode.el | 4 +- lisp/loaddefs.el | 13 +- lisp/loadhist.el | 135 +- lisp/loadup.el | 98 +- lisp/make-docfile.el | 8 +- lisp/map-ynp.el | 72 +- lisp/menubar.el | 27 +- version.sh | 6 +- 130 files changed, 11700 insertions(+), 6185 deletions(-) create mode 100644 .cvsignore create mode 100644 etc/MYTHOLOGY create mode 100644 etc/photos/wing.png create mode 100644 etc/photos/wingm.png create mode 100644 lib-src/.cvsignore create mode 100644 lib-src/aixcc.lex create mode 100644 lib-src/process-depends.sh create mode 100755 lib-src/process-gnu-depends.sh create mode 100644 lib-src/run.h create mode 100644 lib-src/run.rc create mode 100644 lisp/.cvsignore create mode 100644 lisp/cleantree.el diff --git a/.cvsignore b/.cvsignore new file mode 100644 index 0000000..42e5786 --- /dev/null +++ b/.cvsignore @@ -0,0 +1,9 @@ +typescript +config.log +Makefile +Installation +Installation.el +config.status +GNUmakefile +Makefile.in +so_locations diff --git a/CHANGES-beta b/CHANGES-beta index 530bc55..48c24ee 100644 --- a/CHANGES-beta +++ b/CHANGES-beta @@ -1,4 +1,134 @@ -*- 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 diff --git a/ChangeLog b/ChangeLog index 2671250..bb8025d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,365 @@ +1999-05-14 XEmacs Build Bot + + * XEmacs 21.2.14 is released + +1999-05-11 SL Baur + + * version.sh (infodock_build_version): Synch InfoDock version. + +1999-05-06 Hrvoje Niksic + + * aclocal.m4 (ld_dynamic_link_flags): Change -Bexport to -Bdynamic + for Solaris. + +1999-05-03 Hrvoje Niksic + + * configure.in (xemacs_betaname): Don't generate Installation.el. + + * Makefile.in.in (top_distclean): Don't remove Installation.el. + +1999-04-29 Andy Piper + + * configure.in: add mingw32 as a target platform. add nt process + support options. + +1999-03-30 MORIOKA Tomohiko + + * etc/HELLO (Amharic): New language. + (Slovak): Likewise. + (Thai): Likewise (by Virach Sornlertlamvanich). + (Greek): Fixed (by Yannis Haralambous). + +1998-09-04 MORIOKA Tomohiko + + * configure.in: Delete mule-coding.o. + +1999-04-22 Gunnar Evermann + + * 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 + + * 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 + + * configure.in: Check for getloadavg(). + +1999-03-12 XEmacs Build Bot + + * XEmacs 21.2.13 is released + +1999-03-09 SL Baur + + * Makefile.in.in (LC_ALL): Try very, very hard to build in C locale. + +1999-03-05 XEmacs Build Bot + + * XEmacs 21.2.12 is released + +1999-03-04 Martin Buchholz + + * Makefile.in.in (top_distclean): Remove confdefs.h as well. + +1999-03-03 Martin Buchholz + + * 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 + + * PROBLEMS: Document crashes on SPARC with gcc 2.8.1. + +1999-03-01 XEmacs Build Bot + + * XEmacs 21.2.11 is released + +1999-02-16 Andy Piper + + * PROBLEMS: add entries for building under Cygwin. + +1999-02-14 Jan Vroonhof + + * README.packages: Clear up that mule-sumo packages is used _in + addition_ to the normal sumo. + +1999-02-16 Martin Buchholz + + * configure.usage: Move quantify/purify into debug flags section + +1999-02-10 Martin Buchholz + + * 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 + + * lwlib/lwlib.h: + - redo CONST hacking to deal with X11 R4, which was + broken in a previous patch. + +1999-02-10 Martin Buchholz + + * configure.in: + - irix uses -rpath + +1999-02-10 Martin Buchholz + + * configure.in: + - Check for XOpenIM before using xim=xlib + - only use XmIm if $have_motif = yes + +1999-02-10 Martin Buchholz + + * configure.in. Port to BSDI BSD/OS 4.0. + +1999-01-07 Michael Sperber [Mr. Preprocessor] + + * configure.in: Warn if using Motif dialog boxes on AIX 4.3. + +1999-02-05 XEmacs Build Bot + + * XEmacs 21.2.10 is released + +1999-02-02 XEmacs Build Bot + + * XEmacs 21.2.9 is released + +1999-02-01 Glynn Clements + + * etc/recycle.xpm: Fix colours so that they work on TrueColor + and DirectColor displays + +1999-01-21 Andy Piper + + * configure.in: make xface detection specifc to a window system in + general rather than just X. + +1999-18-10 Andy Piper + + * 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 + + * 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 + + * XEmacs 21.2.8 is released. + +1998-12-28 Martin Buchholz + + * PROBLEMS: Document Linux GNU Libc 2.0 I18N crashes. + +1998-12-24 Martin Buchholz + + * XEmacs 21.2.7 is released. + +1998-12-20 Martin Buchholz + + * 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 + + * xemacs.mak (TEMACS_OBJS): + (DOC_SRC4): + - Remove pure.c, pure.obj + +1998-12-06 Martin Buchholz + + * 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 + + * 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 + + * XEmacs 21.2.6 is released + +1998-12-05 XEmacs Build Bot + + * XEmacs 21.2.5 is released + +1998-11-28 SL Baur + + * XEmacs 21.2-beta4 is released. + +1998-11-27 SL Baur + + * configure.in: Linux/Arm Support. + From James LewisMoss + +1998-11-27 Takeshi Hagiwara + + * configure.in: + Fix the realpath() problem of UnixWare2.1.3. + Patches for NEC's sysv4.2 machine. + +1998-11-09 Kazuyuki IENAGA + + * 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 + + * configure.in (CPP): Too many spaces im run-patch flag detection. + +1998-10-15 SL Baur + + * XEmacs 21.2-beta3 is released. + +1998-10-13 Andy Piper + + * configure.in: enable drag and drop support by default if mswindows is + detected. + +1998-10-09 Kevin Oberman + + * config.sub: Fix for Alpha architecture + +1998-10-05 Andy Piper + + * configure.in: don't enable shared lib support for cygwin unless + explititly told to. + +1998-10-02 Andreas Jaeger + + * etc/xemacs.1: Remove misplace "\". + +1998-09-29 SL Baur + + * XEmacs 21.2-beta2 is released. + +1998-09-09 Gunnar Evermann + + * lwlib/xlwmenu.c: + * lwlib/xlwscrollbar: fix for Motif >=2.0 + Patch provided by Glenn Barry + + * PROBLEMS: XEmacs 21.0 now works on HP-UX 11.0 + +1998-09-02 Andy Piper + + * configure.in: check for cygwin32/version.h. + +1998-08-31 Michael Sperber [Mr. Preprocessor] + + * 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 + + * etc/check_cygwin_setup.sh: grammar fix. + +1998-09-02 Andy Piper + + * etc/check_cygwin_setup.sh: fix a couple of buglets. + +1998-08-23 Adrian Aichner + + * etc/sample.emacs: Enable sound support on mswindows devices. + +1998-08-17 P. E. Jareth Hein + + * 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 + + * etc/TUTORIAL.de: Fixing typos and grammatical errors. Fixing + inconsistent usage of RET, , and (only using + 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 + + * configure.usage (--without-gif): Modify text to reflect status + of GIF support + +1998-08-04 P. E. Jareth Hein + + * 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 + + * BETA: Update mailing-list address for build-reports + +1998-08-01 SL Baur + + * Makefile.in (TAGS tags): Add variable `tagslisp' so a TAGS file + can built that includes package lisp. + +1998-07-23 Martin Buchholz + + * 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 * XEmacs 21.2-beta1 is released. @@ -6,9 +368,9 @@ * config.guess: Synched with latest FSF version. -1998-07-12 Björn Torkelsson +1998-07-12 Bjrn Torkelsson - * Makefile.in: added LDFLAGS. + * Makefile.in: added LDFLAGS. 1998-07-12 SL Baur @@ -77,7 +439,7 @@ 1998-06-20 Michael Sperber [Mr. Preprocessor] - * etc/PACKAGES: + * etc/PACKAGES: * etc/BETA: Moved some package stuff into Texinfo docs. Other nitpicks 1998-06-20 Kazuyuki IENAGA @@ -208,7 +570,7 @@ * 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. @@ -271,7 +633,7 @@ 1998-04-27 SL Baur - * 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 @@ -336,7 +698,7 @@ Wed Apr 22 12:59:35 1998 Andy Piper * 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 @@ -356,14 +718,14 @@ Fri Apr 17 12:59:35 1998 Andy Piper * configure.in: enable install pre-processing for mswindows Fri Apr 17 12:59:35 1998 Andy Piper - + * 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 - + * Makefile.in: add install_pp to install incantation. 1998-04-14 Itay Ben-Yaacov @@ -377,7 +739,7 @@ Thu Apr 16 12:59:35 1998 Andy Piper 1998-04-06 Martin Buchholz - * 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] @@ -460,7 +822,7 @@ Thu Apr 16 12:59:35 1998 Andy Piper * 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 @@ -469,13 +831,13 @@ Thu Apr 16 12:59:35 1998 Andy Piper 1998-03-27 Martin Buchholz * 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. - * 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 @@ -564,7 +926,7 @@ Thu Apr 16 12:59:35 1998 Andy Piper * configure.in (quoted_arguments): Fix unquoted variable in error-checking test. - fix bogus substitution. - + 1998-03-17 SL Baur * configure.in: In -lpng test, look for png_set_strip_alpha. @@ -703,7 +1065,7 @@ Wed Mar 04 08:55:12 1998 Andy Piper 1998-02-21 SL Baur - * 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 @@ -717,7 +1079,7 @@ Wed Mar 04 08:55:12 1998 Andy Piper * 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 @@ -805,8 +1167,8 @@ Wed Jan 21 10:49:47 1998 Andy Piper 1998-01-13 Martin Buchholz - * configure.usage: - * etc/NEWS: + * configure.usage: + * etc/NEWS: 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 * 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. @@ -831,13 +1193,13 @@ Wed Jan 21 10:49:47 1998 Andy Piper * 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' - * 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 @@ -920,7 +1282,7 @@ Thu Jan 08 09:42:36 1998 1997-12-21 SL Baur - * etc/BETA (Prerequisite): Add cookbook procedures for maintaining + * etc/BETA (Prerequisite): Add cookbook procedures for maintaining package lisp directories. 1997-12-20 SL Baur @@ -929,7 +1291,7 @@ Thu Jan 08 09:42:36 1998 1997-12-19 SL Baur - * configure.in (bitmapdir): Reenable --with-session by default for + * configure.in (bitmapdir): Reenable --with-session by default for testing. 1997-12-18 Kyle Jones @@ -940,7 +1302,7 @@ Thu Jan 08 09:42:36 1998 1997-12-18 Kyle Jones * etc/toolbar: Added support for foregroundToolBarColor - symbol to most icons. + symbol to most icons. 1997-12-17 SL Baur @@ -1140,7 +1502,7 @@ Thu Jan 08 09:42:36 1998 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 @@ -1176,7 +1538,7 @@ Sun November 01 12:00:00 1997 1997-11-05 Didier Verna * 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 > @@ -1268,7 +1630,7 @@ Sun November 01 12:00:00 1997 TIFF(broken) and replace with test for ImageMagick. 1997-10-30 Kyle Jones - + * etc/Emacs.ad: Added *XlwMenu*highlightForeground entry. Added *XlwMenu*titleForeground entry. @@ -1307,7 +1669,7 @@ Sun November 01 12:00:00 1997 * 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 @@ -1344,7 +1706,7 @@ Sun November 01 12:00:00 1997 1997-10-18 SL Baur - * XEmacs 20.3-beta91 is released. + * XEmacs 20.3-beta91 is released. 1997-10-16 Hrvoje Niksic @@ -1433,7 +1795,7 @@ Sun November 01 12:00:00 1997 * 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 @@ -1484,8 +1846,8 @@ Sun November 01 12:00:00 1997 1997-10-03 Martin Buchholz * 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_* @@ -1505,7 +1867,7 @@ Sun November 01 12:00:00 1997 * 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". @@ -1558,11 +1920,11 @@ Sun November 01 12:00:00 1997 * 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. - - 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. @@ -1605,9 +1967,9 @@ Sun November 01 12:00:00 1997 - 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 " - + * src/dgif_lib.c: Make sure size_t is defined before using it. 1997-09-12 SL Baur @@ -1672,7 +2034,7 @@ Sun November 01 12:00:00 1997 - 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* @@ -1731,10 +2093,10 @@ Sun November 01 12:00:00 1997 * src/fns.c (require): Print messages when loading a file as a result of require. - + * 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. @@ -1764,7 +2126,7 @@ Sun November 01 12:00:00 1997 1997-07-10 Hrvoje Niksic * extents.c (print_extent): Print correctly. - + 1997-07-13 Steven L Baur * configure.in (CPP): Add -Wall to default gcc CFLAGS. @@ -1789,12 +2151,12 @@ Sun November 01 12:00:00 1997 * 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/*.[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 @@ -1803,7 +2165,7 @@ Sun November 01 12:00:00 1997 1997-07-08 Martin Buchholz - * 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. @@ -1842,7 +2204,7 @@ Sun November 01 12:00:00 1997 - 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. @@ -1874,7 +2236,7 @@ Sun November 01 12:00:00 1997 * configure.in (CPP): Correct typo `print-lib-gcc-file-name' should be `print-libgcc-file-name' From Katsumi Yamaoka - + * XEmacs 20.3-beta10 is released. 1997-06-29 MORIOKA Tomohiko @@ -2040,7 +2402,7 @@ Sun November 01 12:00:00 1997 * 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 * etc/gnuserv.1: Updates and cleanup. @@ -2058,7 +2420,7 @@ Sun November 01 12:00:00 1997 * */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 @@ -2098,11 +2460,11 @@ Wed Jun 18 16:41:43 1997 Steven L Baur 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. - * 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 @@ -2114,16 +2476,16 @@ Wed Jun 18 16:41:43 1997 Steven L Baur 1997-06-11 Martin Buchholz - * 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 - * 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 ...` @@ -2131,7 +2493,7 @@ Wed Jun 18 16:41:43 1997 Steven L Baur - 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 @@ -2197,7 +2559,7 @@ Tue Jun 10 15:11:16 1997 Steven L Baur smiley faces. 1997-06-10 Gary D. Foster - + * 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 * 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 * XEmacs 20.3-b5 is released. @@ -2242,24 +2604,24 @@ Tue Jun 10 15:11:16 1997 Steven L Baur * 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/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 - - * 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 @@ -2275,11 +2637,11 @@ Tue Jun 10 15:11:16 1997 Steven L Baur 1997-06-04 Gary D. Foster - * 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. - * 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. - + 1997-05-30 Martin Buchholz * configure.in: Automagically compute -R path for gcc @@ -2288,7 +2650,7 @@ Tue Jun 10 15:11:16 1997 Steven L Baur * lisp/vm/vm-vars.el: Fixed delete key binding to call `vm-scroll-down' - + Thu May 29 15:35:07 1997 Martin Buchholz * configure.in: Add support for Solaris2.6 -z ignore linker flags @@ -2307,9 +2669,9 @@ Thu May 29 15:35:07 1997 Martin Buchholz * 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. - + 1997-06-03 MORIOKA Tomohiko * lisp/x11/x-menubar.el (default-menubar): Add menu for Mule. @@ -2491,14 +2853,14 @@ Thu May 22 04:19:09 1997 Martin Buchholz 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. - * 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. @@ -2592,7 +2954,7 @@ Sat Apr 12 09:01:32 1997 Hrvoje Niksic 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 * XEmacs 20.1-b14 is released. (Beta 13 was skipped). @@ -2612,7 +2974,7 @@ Sat Apr 5 09:11:36 1997 Steven L Baur Wed Apr 2 15:27:35 1997 Steven L Baur - * 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. @@ -2636,7 +2998,7 @@ Thu Mar 27 18:24:19 1997 Steven L Baur Wed Mar 26 22:31:10 1997 Steven L Baur * Remove vms top-level directory. - + * XEmacs 19.15 final released to beta testers. Tue Mar 25 19:13:27 1997 Steven L Baur @@ -2882,7 +3244,7 @@ Sat Jan 11 12:05:31 1997 Steven L Baur * 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 * configure.in (LIBS): Revise test for XFree86 (look for XF86Config). @@ -2897,8 +3259,8 @@ Fri Jan 3 15:18:59 1997 Jeff Miller Wed Jan 1 08:30:48 1997 Martin Buchholz - * src/emacs.c: Make sure - `./temacs -batch -l loadup.el run-temacs ' + * src/emacs.c: Make sure + `./temacs -batch -l loadup.el run-temacs ' 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 * 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. - + Reliability of autoload generation greatly increased. - + Distribution smaller by about 100k. - + `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. - + 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 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. diff --git a/INSTALL b/INSTALL index 50fba0b..88a377f 100644 --- 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 -~/.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. @@ -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. -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. @@ -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. -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 @@ -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 - - `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; @@ -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. +`/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". @@ -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. +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. @@ -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). +`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 diff --git a/Makefile.in.in b/Makefile.in.in index 5d6f4f2..69496da 100644 --- a/Makefile.in.in +++ b/Makefile.in.in @@ -58,6 +58,7 @@ RECURSIVE_MAKE=@RECURSIVE_MAKE@ SHELL = /bin/sh LANG = C +LC_ALL = C RM = rm -f pwd = /bin/pwd @@ -151,11 +152,22 @@ blddir=@blddir@ ## 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 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 @@ -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} -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 @@ -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 -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!" ; \ @@ -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} \ - ${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 @@ -533,12 +540,9 @@ clean: FRC.clean ## `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 diff --git a/PROBLEMS b/PROBLEMS index 072fc72..3f57bc4 100644 --- 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 -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 @@ -29,7 +29,19 @@ A general advice: * 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 @@ -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. -** 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 @@ -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. -** 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 @@ -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. -** `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 @@ -100,12 +114,166 @@ characters, you can fix them by running: 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. -** 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 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. -** 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. -** 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 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 @@ -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. -** 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 writes: @@ -181,30 +368,30 @@ Richard Cognot writes: 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. -** On HP-UX, problems with make +*** On HP-UX, problems with make Marcus Thiessel 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 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 - 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) @@ -218,34 +405,8 @@ Marcus Thiessel 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 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 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. -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. -** 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. -** 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 @@ -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. -** 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 @@ -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. -** 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. -** 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 @@ -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. -** 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 @@ -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). -** 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. @@ -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. -** 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. -** 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/ @@ -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. -** 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. -** 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 @@ -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.) -** 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 @@ -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. -** 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 @@ -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-\. -** 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 @@ -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. -** 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 @@ -824,7 +823,7 @@ slow. If you are interested in fixing this, please let us know at . -** 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 @@ -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. -** 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 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 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 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 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 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 @@ -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. -** 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 @@ -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 -** 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 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 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 @@ -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. -** 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 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: @@ -1311,51 +1443,31 @@ if ("`tty`" == "/dev/console") 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) ============================================================================== -** "Symbol's value as variable is void: unread-command-char". +*** "Symbol's value as variable is void: unread-command-char". "Wrong type argument: arrayp, #" "Wrong type argument: stringp, [#]" diff --git a/README.packages b/README.packages index 2d3f904..014eb00 100644 --- a/README.packages +++ b/README.packages @@ -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. -Download the files +Download the file -xemacs-sumo-.tar.gz if you have a latin-1 XEmacs. +xemacs-sumo-.tar.gz -or +For an XEmacs compiled with Mule you also need -xemacs-mule-sumo-.tar.gz if you have a MULE XEmacs. +xemacs-mule-sumo-.tar.gz -N.B. There are called 'Sumo Tarballs' for good reason. They are -currently 15MB and 23MB (gzipped) respectively. +N.B. They are called 'Sumo Tarballs' for good reason. They are +currently about 15MB and 2.3MB (gzipped) respectively. Install them by @@ -120,7 +120,7 @@ XEmacs comes with some tools to make the periodic updating and installing easier. It will notice if new packages or versions are available and will fetch them from the ftp site. -Unfortunately this requires that a few packages are 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: diff --git a/aclocal.m4 b/aclocal.m4 index c84a38b..ff5c7ae 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,99 +1,602 @@ dnl aclocal.m4 --- Dynamically linked library support for XEmacs -dnl Copyright (C) 1998 Free Software Foundation, Inc. -dnl Author: William Perry -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 , 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 &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_oflags) -AC_SUBST(dll_lflags) +AC_SUBST(dll_ldflags) +AC_SUBST(dll_post) +AC_SUBST(dll_ldo) +AC_SUBST(ld_dynamic_link_flags) ])dnl + diff --git a/config.guess b/config.guess index ed660fb..6e82336 100755 --- a/config.guess +++ b/config.guess @@ -112,6 +112,9 @@ EOF 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 ;; @@ -139,7 +142,7 @@ EOF 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 @@ -219,6 +222,9 @@ EOF 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 ;; @@ -324,7 +330,8 @@ EOF 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 @@ -357,12 +364,44 @@ EOF 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 ;; - 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 + #include + + 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} @@ -468,6 +507,9 @@ EOF 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 ;; @@ -662,6 +704,13 @@ EOF 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. @@ -745,13 +794,22 @@ EOF 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 ;; + 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 diff --git a/config.sub b/config.sub index 8fef96a..f791166 100755 --- a/config.sub +++ b/config.sub @@ -1,6 +1,6 @@ #! /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. @@ -20,8 +20,6 @@ # 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 @@ -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 +# 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 ] @@ -64,11 +64,21 @@ case $1 in ;; 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 @@ -93,33 +103,33 @@ case $os in ;; -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 - 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/'` - 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. - basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -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 - 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*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -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. - 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 ;; + # 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. - 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. @@ -191,9 +209,9 @@ case $basic_machine in amiga | amiga-*) basic_machine=m68k-cbm ;; - amigados) + amigaos | amigados) basic_machine=m68k-cbm - os=-amigados + os=-amigaos ;; amigaunix | amix) basic_machine=m68k-cbm @@ -207,10 +225,6 @@ case $basic_machine in basic_machine=m68k-apple os=-aux ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; 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 ;; + 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? - 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 ;; - 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 ;; - 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 ;; - 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) @@ -377,6 +394,14 @@ case $basic_machine in 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/'` ;; @@ -442,34 +467,25 @@ case $basic_machine in 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/^[^-]*-//'` ;; - pentiumpro-* | p6-*) + pentiumpro-* | p6-* | k6-* | 6x86-*) 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 @@ -553,6 +569,12 @@ case $basic_machine in basic_machine=i386-sequent os=-dynix ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; tower | tower-32) basic_machine=m68k-ncr ;; @@ -572,6 +594,9 @@ case $basic_machine in basic_machine=vax-dec os=-vms ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; 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) - 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 @@ -651,6 +680,8 @@ esac 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|'` @@ -658,29 +689,37 @@ case $os in -solaris) os=-solaris2 ;; - -unixware* | svr4*) + -svr4*) os=-sysv4 ;; + -unixware*) + os=-sysv4.2uw + ;; -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* \ - | -vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[345]* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -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* \ - | -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. ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; @@ -788,6 +827,9 @@ case $basic_machine in sparc-* | *-sun) os=-sunos4.1.1 ;; + *-be) + os=-beos + ;; *-ibm) os=-aix ;; @@ -801,7 +843,7 @@ case $basic_machine in os=-sysv ;; *-cbm) - os=-amigados + os=-amigaos ;; *-dg) os=-dgux @@ -851,6 +893,9 @@ case $basic_machine in *-masscomp) os=-rtu ;; + f301-fujitsu) + os=-uxpv + ;; *) os=-none ;; @@ -869,9 +914,6 @@ case $basic_machine in -sunos*) vendor=sun ;; - -lynxos*) - vendor=lynx - ;; -aix*) vendor=ibm ;; @@ -899,14 +941,12 @@ case $basic_machine in -ptx*) vendor=sequent ;; - -vxworks*) + -vxsim* | -vxworks*) vendor=wrs ;; -aux*) vendor=apple ;; - -aux*) - vendor=apple esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; diff --git a/configure b/configure index 0beba52..8e677b0 100755 --- 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) 1998, 1999 J. Kean Johnston. ### 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' +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' -archlibdir='${libdir}/${PROGNAME}-${version}/${configuration}' +archlibdir='${datadir}/${PROGNAME}-${version}/${configuration}' with_site_lisp='no' +with_site_modules='yes' with_menubars='' with_scrollbars='' with_dialogs='' with_file_coding='' -puresize='' cpp='' cppflags='' libs='' ldflags='' dynamic='' with_x11='' @@ -299,13 +303,12 @@ while test $# != 0; do case "$opt" in - run_in_place | \ - with_site_lisp | \ + with_site_lisp | \ + with_site_modules | \ with_x | \ with_x11 | \ with_msw | \ with_gcc | \ - with_gnu_make | \ dynamic | \ with_ncurses | \ with_dnet | \ @@ -322,19 +325,20 @@ while test $# != 0; do with_tiff | \ with_session | \ with_xmu | \ + with_purify | \ 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_tooltalk | \ + with_tooltalk | \ with_ldap | \ with_pop | \ with_kerberos | \ @@ -345,26 +349,22 @@ while test $# != 0; do verbose | \ extra_verbose | \ const_is_losing | \ - usage_tracking | \ - use_union_type | \ + usage_tracking | \ + use_union_type | \ 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 ;; - 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 - eval "$opt=\"$val\"" ;; + eval "$opt=\"$val\"" ;; srcdir | \ @@ -374,9 +374,8 @@ echo " Use \`$progname --help' to show usage.") >&2 && exit 1 ;; cppflags | \ libs | \ ldflags | \ - puresize | \ cache_file | \ - native_sound_lib | \ + native_sound_lib| \ 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 - 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 @@ -467,18 +466,6 @@ echo " Use \`$progname --help' to show usage.") >&2 && exit 1 ;; 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 ;; @@ -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 | \ - archlibdir | docdir | package_path ) + archlibdir | docdir | package_path ) if test "$valomitted" = "yes"; then if test "$#" = 0; then (echo "$progname: Usage error:" @@ -562,6 +549,22 @@ cat >> confdefs.h <<\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 @@ -611,6 +614,14 @@ cat >> confdefs.h <<\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 @@ -642,7 +653,9 @@ EOF "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 ;; @@ -657,6 +670,11 @@ echo " Use \`$progname --help' to show usage.") >&2 && exit 1 ;; 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 ;; @@ -683,25 +701,10 @@ eval set x "$quoted_arguments"; shift 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" - -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 @@ -715,10 +718,6 @@ elif test "$with_cde" = "yes"; then with_tooltalk=yes 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 "" ) @@ -754,13 +753,8 @@ echo " Use \`$progname --help' to show usage.") >&2 && exit 1 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." @@ -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 -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 @@ -794,17 +788,26 @@ for dir in lisp etc man info; do fi done + absolute_pwd="`pwd`"; if test -n "$PWD" -a "`cd $PWD && pwd`" = "$absolute_pwd" then blddir="$PWD" -else blddir="$absolute_pwd" +else blddir="$absolute_pwd"; if test -d "/net"; then + if test -d "/tmp_mnt/net"; then tdir="tmp_mnt/net"; else tdir="tmp_mnt"; fi + blddir=`echo "$blddir" | \ + sed -e "s|^${tdir}/|/net/|" -e "s|^/a/|/net/|" -e "s|^/amd/|/net/|"` +fi fi case "$srcdir" in /* ) ;; . ) srcdir="$blddir" ;; - * ) srcdir="`cd $srcdir && pwd`" ;; + * ) srcdir="`cd $srcdir && pwd`"; if test -d "/net"; then + if test -d "/tmp_mnt/net"; then tdir="tmp_mnt/net"; else tdir="tmp_mnt"; fi + srcdir=`echo "$srcdir" | \ + sed -e "s|^${tdir}/|/net/|" -e "s|^/a/|/net/|" -e "s|^/amd/|/net/|"` +fi ;; esac if test `pwd` != `sh -c cd $srcdir && pwd` \ @@ -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\)//'` -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 ;; - alpha-*-* ) machine=alpha ;; + alpha*-*-* ) machine=alpha ;; 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 ;; + arm-* ) machine=arm ;; + ns32k-* ) machine=ns32000 ;; 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 ;; - *-*-aix4.2* ) opsys=aix4-2 ;; + *-*-aix4.0* ) opsys=aix4 ;; *-*-aix4.1* ) opsys=aix4-1 ;; - *-*-aix4* ) opsys=aix4 ;; + *-*-aix4* ) opsys=aix4-2 ;; *-gnu* ) opsys=gnu ;; *-*-bsd4.[01] ) opsys=bsd4-1 ;; @@ -1074,13 +1080,9 @@ case "$canonical" in *-*-openbsd* ) case "${canonical}" in - alpha*-*-openbsd*) machine=alpha ;; 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 ;; @@ -1242,6 +1244,12 @@ case "$canonical" in 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 ;; @@ -1353,6 +1361,7 @@ EOF *-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 ;; @@ -1365,7 +1374,9 @@ EOF *-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 ;; @@ -1382,7 +1393,7 @@ fi if test -z "$dynamic"; then case "$opsys" in - hpux* | sunos4* | sco5 ) dynamic=no ;; + hpux* | sunos4* ) dynamic=no ;; *) 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 -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. @@ -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 -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. @@ -1540,7 +1551,7 @@ fi 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' @@ -1552,11 +1563,11 @@ ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ cross_compiling=no cat > conftest.$ac_ext <&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 @@ -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: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 "configure:1585: checking whether we are using GNU C" >&5 +echo "configure:1596: checking whether we are using GNU C" >&5 cat > conftest.c <&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 @@ -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 -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 @@ -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 -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. @@ -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 -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. @@ -1702,7 +1713,7 @@ fi 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' @@ -1714,11 +1725,11 @@ ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ cross_compiling=no cat > conftest.$ac_ext <&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 @@ -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: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 "configure:1747: checking whether we are using GNU C" >&5 +echo "configure:1758: checking whether we are using GNU C" >&5 cat > conftest.c <&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 @@ -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 -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 @@ -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 -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. @@ -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 -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. @@ -1864,7 +1875,7 @@ fi 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' @@ -1876,11 +1887,11 @@ ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ cross_compiling=no cat > conftest.$ac_ext <&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 @@ -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: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 "configure:1909: checking whether we are using GNU C" >&5 +echo "configure:1920: checking whether we are using GNU C" >&5 cat > conftest.c <&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 @@ -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 -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 @@ -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 -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= @@ -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 < 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 : @@ -1989,13 +2000,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < 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 : @@ -2018,9 +2029,9 @@ echo "$ac_t""$CPP" 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 <&6 -echo "configure:2051: checking for GNU libc" >&5 +echo "configure:2062: checking for GNU libc" >&5 cat > conftest.$ac_ext < int main() { @@ -2061,7 +2072,7 @@ int main() { ; 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 @@ -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 <&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 + conftest_rc="$?" 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 -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 +#ifdef HAVE_WIN32_PROCESSES +configure___ win32_processes=yes +#else +configure___ win32_processes=no +#endif + EOF -CPP=`eval "echo $CPP"` +CPP=`eval "echo $CPP $CPPFLAGS"` 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 "$__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" - 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 + elif test "$__DECC" = "yes"; then + CFLAGS="-O3" 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 @@ -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 - -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 @@ -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 - -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 @@ -2324,8 +2347,8 @@ if test "$GCC" = "yes"; then 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 @@ -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 - -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 @@ -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 -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 @@ -2395,12 +2418,12 @@ if test "$unexec" = "unexaix.o"; then 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 <&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 @@ -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 - 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 +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 - 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 +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 +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 @@ -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 - 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 -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 - -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 - cat > conftest.$ac_ext < conftest.$ac_ext <&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 @@ -2528,9 +2575,10 @@ else 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 @@ -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 - -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 @@ -2612,6 +2660,7 @@ fi + 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 -echo "configure:2624: checking for malloc_get_state" >&5 +echo "configure:2673: checking for malloc_get_state" >&5 cat > conftest.$ac_ext <&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 @@ -2666,10 +2715,10 @@ doug_lea_malloc=no 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 <&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 @@ -2712,16 +2761,16 @@ doug_lea_malloc=no 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 <&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 @@ -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 -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. @@ -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 -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}:" @@ -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 -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. @@ -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 -echo "configure:2919: checking for $ac_hdr" >&5 +echo "configure:2968: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < 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* @@ -2952,19 +3001,19 @@ else 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 -echo "configure:2960: checking for $ac_hdr" >&5 +echo "configure:3009: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < 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* @@ -2993,19 +3042,19 @@ else 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 -echo "configure:3001: checking for $ac_hdr" >&5 +echo "configure:3050: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < 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* @@ -3035,10 +3084,10 @@ fi 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 < #include @@ -3054,7 +3103,7 @@ wait (&s); 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 @@ -3078,10 +3127,10 @@ EOF 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 < #include @@ -3089,7 +3138,7 @@ cat > conftest.$ac_ext < 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* @@ -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 @@ -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 @@ -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 < #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 -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 + conftest_rc="$?" 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 -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 < #include @@ -3190,7 +3240,7 @@ int main() { 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 @@ -3214,10 +3264,10 @@ EOF 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 < #include @@ -3229,7 +3279,7 @@ int main() { 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 @@ -3254,9 +3304,9 @@ fi 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 < @@ -3275,7 +3325,7 @@ int main() { 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 @@ -3295,10 +3345,10 @@ fi 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 < #include @@ -3315,7 +3365,7 @@ int main() { 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 @@ -3337,10 +3387,10 @@ EOF 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 < #if STDC_HEADERS @@ -3371,10 +3421,10 @@ EOF 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 < #if STDC_HEADERS @@ -3405,10 +3455,10 @@ EOF 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 @@ -3444,10 +3494,10 @@ EOF 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 < #if STDC_HEADERS @@ -3478,10 +3528,10 @@ EOF 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 < #if STDC_HEADERS @@ -3513,9 +3563,9 @@ fi 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 < @@ -3531,7 +3581,7 @@ int main() { 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 @@ -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 -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 < #include @@ -3564,7 +3614,7 @@ int main() { 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 @@ -3588,10 +3638,10 @@ EOF 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 < #include <$ac_cv_struct_tm> @@ -3599,7 +3649,7 @@ int main() { 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 @@ -3622,10 +3672,10 @@ EOF 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 < #ifndef tzname /* For SGI. */ @@ -3635,7 +3685,7 @@ int main() { 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 @@ -3661,10 +3711,10 @@ fi 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 <&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 @@ -3738,7 +3788,7 @@ fi 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 @@ -3763,12 +3813,12 @@ fi 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 < #include @@ -3779,11 +3829,11 @@ int main() { #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 < #include @@ -3794,7 +3844,7 @@ int main() { #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 @@ -3811,7 +3861,7 @@ fi rm -f conftest* if test $ac_cv_c_bigendian = unknown; then cat > conftest.$ac_ext <&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 + conftest_rc="$?" 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 "configure:3854: checking size of short" >&5 +echo "configure:3905: checking size of short" >&5 cat > conftest.$ac_ext < main() @@ -3864,10 +3915,11 @@ main() 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 + conftest_rc="$?" 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 -echo "configure:3895: checking size of int" >&5 +echo "configure:3947: checking size of int" >&5 cat > conftest.$ac_ext < main() @@ -3905,10 +3957,11 @@ main() 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 + conftest_rc="$?" 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 "configure:3930: checking size of long" >&5 +echo "configure:3983: checking size of long" >&5 cat > conftest.$ac_ext < main() @@ -3940,10 +3993,11 @@ main() 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 + conftest_rc="$?" 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 "configure:3965: checking size of long long" >&5 +echo "configure:4019: checking size of long long" >&5 cat > conftest.$ac_ext < main() @@ -3975,10 +4029,11 @@ main() 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 + conftest_rc="$?" 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 "configure:4000: checking size of void *" >&5 +echo "configure:4055: checking size of void *" >&5 cat > conftest.$ac_ext < main() @@ -4010,10 +4065,11 @@ main() 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 + conftest_rc="$?" 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 "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: @@ -4077,14 +4133,57 @@ EOF fi +echo $ac_n "checking for sin""... $ac_c" 1>&6 +echo "configure:4138: checking for sin" >&5 + +cat > conftest.$ac_ext < +/* 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 "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 <&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 @@ -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 - 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 @@ -4126,6 +4225,8 @@ else fi +fi + { test "$extra_verbose" = "yes" && cat << \EOF Defining LISP_FLOAT_TYPE @@ -4137,14 +4238,14 @@ EOF cat > conftest.$ac_ext < 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 @@ -4161,7 +4262,7 @@ fi 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 @@ -4183,115 +4284,15 @@ EOF 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 <&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 <&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 <&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 <&6 -fi - - - 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 <&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 @@ -4338,7 +4339,7 @@ fi 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; @@ -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 -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 ;; @@ -4359,7 +4360,7 @@ fi 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" && \ @@ -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 -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 @@ -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 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* @@ -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 <&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. @@ -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 -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 <&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 @@ -4668,14 +4669,14 @@ rm -f conftest* else LIBS="$ac_xsave_LIBS -R $x_libraries" cat > conftest.$ac_ext <&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 @@ -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 -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 <&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 @@ -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 -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 <&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 @@ -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 -echo "configure:4800: checking for gethostbyname" >&5 +echo "configure:4801: checking for gethostbyname" >&5 cat > conftest.$ac_ext <&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 @@ -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 -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 <&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 @@ -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 -echo "configure:4893: checking for connect" >&5 +echo "configure:4894: checking for connect" >&5 cat > conftest.$ac_ext <&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 @@ -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 -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 <&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 @@ -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 -echo "configure:4982: checking for remove" >&5 +echo "configure:4983: checking for remove" >&5 cat > conftest.$ac_ext <&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 @@ -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 -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 <&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 @@ -5065,10 +5066,10 @@ fi # 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 <&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 @@ -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 -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 <&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 @@ -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 -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 <&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 @@ -5253,6 +5254,8 @@ EOF 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" @@ -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 - -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 @@ -5345,7 +5348,7 @@ EOF 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 @@ -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 -echo "configure:5381: checking for X11/Intrinsic.h" >&5 +echo "configure:5384: checking for X11/Intrinsic.h" >&5 cat > conftest.$ac_ext < 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* @@ -5409,12 +5412,12 @@ fi 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 <&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 @@ -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 -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 <&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 @@ -5493,12 +5496,12 @@ fi 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 <&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 @@ -5532,12 +5535,12 @@ fi 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 <&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 @@ -5571,17 +5574,18 @@ fi 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 < 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 + conftest_rc="$?" 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 -echo "configure:5606: checking for $ac_hdr" >&5 +echo "configure:5610: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < 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* @@ -5641,7 +5645,7 @@ done 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 \ @@ -5661,12 +5665,12 @@ EOF 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 <&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 @@ -5716,19 +5720,19 @@ EOF 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 <&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 @@ -5765,22 +5769,22 @@ fi 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 "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 <&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 @@ -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 + 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 \ @@ -5830,7 +5835,7 @@ EOF 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 @@ -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_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 < 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 @@ -5860,16 +5865,15 @@ EOF } 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 - 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 @@ -5879,7 +5883,7 @@ fi 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 @@ -5903,8 +5907,7 @@ else 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 @@ -5927,7 +5930,7 @@ case "$x_libraries" in *X11R4* ) 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 @@ -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 -echo "configure:5946: checking for X11/Xauth.h" >&5 +echo "configure:5949: checking for X11/Xauth.h" >&5 cat > conftest.$ac_ext < 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* @@ -5973,12 +5976,12 @@ fi } 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 <&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 @@ -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 -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 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* @@ -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 -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 <&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 @@ -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 -echo "configure:6155: checking for Dt/Dt.h" >&5 +echo "configure:6158: checking for Dt/Dt.h" >&5 cat > conftest.$ac_ext < 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* @@ -6182,12 +6185,12 @@ fi } 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 <&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 @@ -6267,7 +6270,7 @@ EOF 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 @@ -6288,18 +6291,18 @@ EOF 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 -echo "configure:6295: checking for ldap.h" >&5 +echo "configure:6298: checking for ldap.h" >&5 cat > conftest.$ac_ext < 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* @@ -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 -echo "configure:6326: checking for lber.h" >&5 +echo "configure:6329: checking for lber.h" >&5 cat > conftest.$ac_ext < 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* @@ -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 -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 <&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 @@ -6395,12 +6398,12 @@ fi } 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 <&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 @@ -6475,14 +6478,15 @@ fi 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 "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 < 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 -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=$?; - if test "$?" = "0"; then + if test "$xpm_status" = "0"; then 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!" - 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 " -*** 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 - 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 + conftest_rc="$?" 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 -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 <&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 @@ -6565,58 +6570,53 @@ EOF 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 -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* - eval "ac_cv_lib_$ac_lib_var=yes" + 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_lib_$ac_lib_var=no" + eval "ac_cv_header_$ac_safe=no" 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 +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 <&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 - 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 +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 <&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 @@ -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 - 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 -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 < +/* 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 -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* - eval "ac_cv_header_$ac_safe=yes" + eval "ac_cv_lib_$ac_lib_var=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" + eval "ac_cv_lib_$ac_lib_var=no" 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 - : + 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 -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 <&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 @@ -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 - : + 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 -with_gif=no 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 -echo "configure:6773: checking for jpeglib.h" >&5 +echo "configure:6791: checking for jpeglib.h" >&5 cat > conftest.$ac_ext < 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* @@ -6800,12 +6818,12 @@ fi } 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 <&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 @@ -6850,34 +6868,12 @@ EOF 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 < -#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 -echo "configure:6878: checking for pow" >&5 +echo "configure:6874: checking for pow" >&5 cat > conftest.$ac_ext <&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 @@ -6919,14 +6915,45 @@ else 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 +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 -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 <&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 @@ -6958,7 +6985,48 @@ with_png=no 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 < + 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 @@ -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 -echo "configure:6977: checking for tiffio.h" >&5 +echo "configure:7045: checking for tiffio.h" >&5 cat > conftest.$ac_ext < 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* @@ -7004,12 +7072,12 @@ fi } 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 <&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 @@ -7059,99 +7127,16 @@ fi 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 -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 <&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 "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 <&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 @@ -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 -echo "configure:7190: checking for Xm/Xm.h" >&5 +echo "configure:7175: checking for Xm/Xm.h" >&5 cat > conftest.$ac_ext < 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* @@ -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 "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 <&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 @@ -7256,9 +7241,9 @@ fi 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 < #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 "$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 @@ -7503,24 +7485,6 @@ else 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 @@ -7542,7 +7506,7 @@ fi 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 @@ -7559,23 +7523,23 @@ cat >> confdefs.h <<\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 -echo "configure:7571: checking for $ac_hdr" >&5 +echo "configure:7535: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < 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* @@ -7606,12 +7570,12 @@ done 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 <&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 @@ -7655,19 +7619,58 @@ fi 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 -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 <&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 "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 <&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 @@ -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=xlib fi - fi + fi ;; 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 -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 "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 <&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 @@ -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 -echo "configure:7807: checking for wnn/jllib.h" >&5 +echo "configure:7809: checking for wnn/jllib.h" >&5 cat > conftest.$ac_ext < 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* @@ -7836,10 +7838,10 @@ fi 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 <&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 @@ -7891,12 +7893,12 @@ done 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 <&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 @@ -7939,14 +7941,15 @@ 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 "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 <&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 @@ -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 - : + 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 <&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 <&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 <&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 - } + +fi + + +fi + + +fi + + + fi 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 } - 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 -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 <&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 @@ -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 -echo "configure:8050: checking for canna/jrkanji.h" >&5 +echo "configure:8165: checking for canna/jrkanji.h" >&5 cat > conftest.$ac_ext < 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* @@ -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 -echo "configure:8085: checking for canna/jrkanji.h" >&5 +echo "configure:8200: checking for canna/jrkanji.h" >&5 cat > conftest.$ac_ext < 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* @@ -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 -echo "configure:8121: checking for canna/RK.h" >&5 +echo "configure:8236: checking for canna/RK.h" >&5 cat > conftest.$ac_ext < 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* @@ -8148,12 +8263,12 @@ fi } 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 <&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 @@ -8187,12 +8302,12 @@ fi } 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 <&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 @@ -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 -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 <&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 @@ -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 - -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 @@ -8349,15 +8464,82 @@ 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 < +/* 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 <&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 -echo "configure:8358: checking for $ac_func" >&5 +echo "configure:8540: checking for $ac_func" >&5 cat > conftest.$ac_ext <&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 @@ -8407,20 +8589,19 @@ else 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 ;; - * ) - for ac_func in realpath + esac ;; +esac + +for ac_func in getloadavg 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 <&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 @@ -8470,22 +8651,125 @@ else 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 <&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 <&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 <&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 <&6 +fi + + +fi 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 < 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 @@ -8505,16 +8789,16 @@ fi 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 < 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 @@ -8534,11 +8818,11 @@ fi 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 < #if STDC_HEADERS @@ -8573,10 +8857,11 @@ main() 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 + conftest_rc="$?" 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 -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 <&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 @@ -8648,19 +8933,19 @@ fi 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 <&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 @@ -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 -echo "configure:8714: checking for working alloca.h" >&5 +echo "configure:8999: checking for working alloca.h" >&5 cat > conftest.$ac_ext < 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 @@ -8744,10 +9029,10 @@ EOF 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 <&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 @@ -8809,10 +9094,10 @@ EOF 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 <&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 <&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 @@ -8892,10 +9177,10 @@ done 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 <&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 + conftest_rc="$?" 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 -echo "configure:8946: checking for vfork.h" >&5 +echo "configure:9232: checking for vfork.h" >&5 cat > conftest.$ac_ext < 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* @@ -8978,10 +9264,10 @@ else 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 < @@ -9076,10 +9362,11 @@ main() { } } 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 + conftest_rc="$?" 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 "configure:9105: checking for working strcoll" >&5 +echo "configure:9392: checking for working strcoll" >&5 cat > conftest.$ac_ext < main () @@ -9114,10 +9401,11 @@ main () 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 + conftest_rc="$?" 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 -echo "configure:9145: checking for $ac_func" >&5 +echo "configure:9433: checking for $ac_func" >&5 cat > conftest.$ac_ext <&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 @@ -9195,10 +9483,10 @@ fi 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 <&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 + conftest_rc="$?" 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 "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 < #include @@ -9307,27 +9596,291 @@ int main (int argc, char *argv[]) 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 +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 <&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 < +/* 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 <&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 < +#include +#include + +/* This mess was copied from the GNU getpagesize.h. */ +#ifndef HAVE_GETPAGESIZE +# ifdef HAVE_UNISTD_H +# include +# 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 +# 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 - have_mmap=yes + ac_cv_func_mmap_fixed_mapped=yes else + conftest_rc="$?" 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 -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 @@ -9335,6 +9888,8 @@ cat >> confdefs.h <<\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 @@ -9349,15 +9904,15 @@ EOF 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 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* @@ -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 "configure:9404: checking for termio.h" >&5 +echo "configure:9959: checking for termio.h" >&5 cat > conftest.$ac_ext < 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* @@ -9440,10 +9995,10 @@ fi 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 <&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 @@ -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 "configure:9485: checking for netinet/in.h" >&5 +echo "configure:10040: checking for netinet/in.h" >&5 cat > conftest.$ac_ext < 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* @@ -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 "configure:9510: checking for arpa/inet.h" >&5 +echo "configure:10065: checking for arpa/inet.h" >&5 cat > conftest.$ac_ext < 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* @@ -9539,9 +10094,9 @@ EOF } 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 < @@ -9552,7 +10107,7 @@ int main() { 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 @@ -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 -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 < @@ -9582,7 +10137,7 @@ int main() { 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 @@ -9613,10 +10168,10 @@ fi 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 <&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 @@ -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 "configure:9658: checking for sys/ipc.h" >&5 +echo "configure:10213: checking for sys/ipc.h" >&5 cat > conftest.$ac_ext < 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* @@ -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 "configure:9683: checking for sys/msg.h" >&5 +echo "configure:10238: checking for sys/msg.h" >&5 cat > conftest.$ac_ext < 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* @@ -9725,15 +10280,15 @@ fi 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 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* @@ -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 "configure:9764: checking for sys/dir.h" >&5 +echo "configure:10319: checking for sys/dir.h" >&5 cat > conftest.$ac_ext < 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* @@ -9801,15 +10356,15 @@ fi 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 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* @@ -9839,7 +10394,7 @@ fi 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;; @@ -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 -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 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* @@ -9906,12 +10461,12 @@ fi 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 <&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 @@ -9953,12 +10508,12 @@ fi 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 <&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 @@ -10007,15 +10562,15 @@ fi 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 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* @@ -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 @@ -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 -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 @@ -10128,12 +10683,12 @@ EOF 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 <&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 @@ -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 -echo "configure:10181: checking for ncurses/curses.h" >&5 +echo "configure:10736: checking for ncurses/curses.h" >&5 cat > conftest.$ac_ext < 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* @@ -10207,15 +10762,15 @@ fi 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 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* @@ -10245,15 +10800,15 @@ fi 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 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* @@ -10288,12 +10843,12 @@ fi 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 <&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 @@ -10335,12 +10890,12 @@ fi 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 <&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 @@ -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 -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 <&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 @@ -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 -echo "configure:10437: checking for gpm.h" >&5 +echo "configure:10992: checking for gpm.h" >&5 cat > conftest.$ac_ext < 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* @@ -10464,12 +11019,12 @@ fi } 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 <&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 @@ -10528,23 +11083,22 @@ test "$with_x11" = "yes" -o "$with_tty" = "yes" && extra_objs="$extra_objs event 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 < +#include 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* @@ -10559,29 +11113,27 @@ 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 <&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 -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 "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 <&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 @@ -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 - 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 < -/* 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 +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 - 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 -echo "configure:10681: checking for dbm_open" >&5 +echo "configure:11176: checking for dbm_open" >&5 cat > conftest.$ac_ext <&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 @@ -10716,20 +11211,18 @@ rm -f conftest* 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 -fi - if test "$need_libdbm" != "no"; then 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 <&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 @@ -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 - with_database_dbm=yes need_libdbm=yes + with_database_dbm=yes libdbm=-ldbm 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 - 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 @@ -10770,17 +11271,13 @@ cat >> confdefs.h <<\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 -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 <&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 @@ -10807,16 +11304,16 @@ else 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 -echo "configure:10818: checking for Berkeley DB version" >&5 +echo "configure:11315: checking for Berkeley DB version" >&5 cat > conftest.$ac_ext < #if DB_VERSION_MAJOR > 1 @@ -10835,10 +11332,10 @@ fi 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 <&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 @@ -10880,12 +11377,12 @@ else 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 <&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 @@ -10960,12 +11457,12 @@ fi 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 <&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 @@ -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 -echo "configure:11037: checking for $ac_hdr" >&5 +echo "configure:11534: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < 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* @@ -11065,6 +11562,14 @@ cat >> confdefs.h <> confdefs.h <<\EOF +#define HAVE_DLFCN_H 1 +EOF +} + 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 -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 <&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 @@ -11117,12 +11622,12 @@ fi } 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 <&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 @@ -11162,12 +11667,12 @@ fi } 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 <&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 @@ -11207,12 +11712,12 @@ fi } 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 <&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 <&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" + 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 <&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 <&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* -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 - echo "$ac_t""no" 1>&6 + echo "$ac_t""none" 1>&6 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 <&5' + cat > conftest.$ac_ext <&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* - 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* - eval "ac_cv_lib_$ac_lib_var=no" + cc_produces_so=no 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 &5; then + xe_gnu_ld=yes else - echo "$ac_t""no" 1>&6 + xe_gnu_ld=no 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 @@ -11304,115 +12377,21 @@ cat >> confdefs.h <<\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 - 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 - 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 -echo "configure:11413: checking for $ac_func" >&5 +echo "configure:12392: checking for $ac_func" >&5 cat > conftest.$ac_ext <&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 @@ -11462,23 +12441,22 @@ else 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 <&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 + conftest_rc="$?" echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -fr conftest* @@ -11501,8 +12479,12 @@ else 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 @@ -11510,9 +12492,10 @@ cat >> confdefs.h <<\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 +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 -internal_makefile_list="Makefile" +internal_makefile_list="Makefile.in" 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="" -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" @@ -11615,7 +12598,7 @@ if test -f $srcdir/src/gdbinit -a ! -f src/gdbinit ; then 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" @@ -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 @@ -11755,7 +12770,6 @@ done - 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 @@ -11775,6 +12792,16 @@ EOF } 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="" @@ -11858,15 +12885,6 @@ EOF -test -n "$puresize" && { test "$extra_verbose" = "yes" && cat << EOF - Defining RAW_PURESIZE = $puresize -EOF -cat >> confdefs.h <> confdefs.h <<\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 -#define USE_GNU_MAKE 1 +#define NO_DOC_FILE 1 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 -#define NO_DOC_FILE 1 +#define PURIFY 1 EOF } @@ -12035,21 +13053,37 @@ if test "$with_xpm" = yes; then 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: (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 +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_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 -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." @@ -12095,7 +13129,15 @@ case "$with_scrollbars" 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 @@ -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_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_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 "$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 @@ -12124,11 +13163,6 @@ 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" && @@ -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" +if test "$with_shlib" = "yes"; then + ac_output_files="$ac_output_files lib-src/ellcc.h" +fi 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%@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 @@ -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%@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 @@ -12292,7 +13340,6 @@ s%@ARCHLIBDIR@%$ARCHLIBDIR%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 @@ -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%@XEMACS_CC@%$XEMACS_CC%g s%@internal_makefile_list@%$internal_makefile_list%g CEOF @@ -12519,14 +13567,12 @@ fi; done EOF cat >> $CONFIG_STATUS <> $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 @@ -12538,26 +13584,45 @@ for dir in $MAKE_SUBDIR; do -e '/^#/ { p d -}' -e '/./ { +}' \ + -e '/./ { 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 - 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 \ @@ -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 - diff --git a/configure.in b/configure.in index 3044365..e77bf16 100644 --- a/configure.in +++ b/configure.in @@ -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) 1998, 1999 J. Kean Johnston. ### 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 -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 + conftest_rc="$?" 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]) +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 @@ -325,7 +334,6 @@ dnl ----------------------------- 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' @@ -341,13 +349,16 @@ infodir='${datadir}/${PROGNAME}-${version}/info' 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' -archlibdir='${libdir}/${PROGNAME}-${version}/${configuration}' +archlibdir='${datadir}/${PROGNAME}-${version}/${configuration}' with_site_lisp='no' +with_site_modules='yes' 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' -puresize='' cpp='' cppflags='' libs='' ldflags='' dynamic='' with_x11='' @@ -452,13 +462,12 @@ while test $# != 0; do 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_gnu_make | \ dynamic | \ with_ncurses | \ with_dnet | \ @@ -475,19 +484,20 @@ while test $# != 0; do with_tiff | \ with_session | \ with_xmu | \ + with_purify | \ 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_tooltalk | \ + with_tooltalk | \ with_ldap | \ with_pop | \ with_kerberos | \ @@ -498,14 +508,10 @@ while test $# != 0; do verbose | \ extra_verbose | \ const_is_losing | \ - usage_tracking | \ - use_union_type | \ + usage_tracking | \ + use_union_type | \ debug | \ use_assertions | \ - use_minimal_tagbits | \ - use_indexed_lrecord_implementation | \ - gung_ho | \ - use_assertions | \ 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 ;; - n | no ) val=no ;; + n | no ) val=no ;; * ) 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 | \ @@ -528,9 +534,8 @@ while test $# != 0; do cppflags | \ libs | \ ldflags | \ - puresize | \ cache_file | \ - native_sound_lib | \ + native_sound_lib| \ 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 - 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 \ @@ -617,17 +622,6 @@ while test $# != 0; do 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 @@ -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 | \ - 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 @@ -712,7 +706,8 @@ while test $# != 0; do 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) ;; @@ -720,6 +715,7 @@ dnl sitelispdir ) AC_DEFINE(SITELISPDIR_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) ;; @@ -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 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 ;; @@ -747,7 +744,13 @@ dnl sitelispdir ) AC_DEFINE(SITELISPDIR_USER_DEFINED) ;; 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 @@ -756,7 +759,7 @@ dnl sitelispdir ) AC_DEFINE(SITELISPDIR_USER_DEFINED) ;; 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 @@ -778,29 +781,12 @@ eval set x "$quoted_arguments"; shift 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 --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) @@ -815,11 +801,6 @@ fi 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 @@ -855,13 +836,9 @@ esac 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 @@ -881,13 +858,22 @@ for dir in lisp etc man info; do fi done +dnl Do our best to deal with automounter brokenness +dnl CANONICALIZE_PATH(varname) +define([CANONICALIZE_PATH], +[if test -d "/net"; then + if test -d "/tmp_mnt/net"; then tdir="tmp_mnt/net"; else tdir="tmp_mnt"; fi + $1=`echo "[$]$1" | \ + sed -e "s|^${tdir}/|/net/|" -e "s|^/a/|/net/|" -e "s|^/amd/|/net/|"` +fi])dnl + dnl Calculate canonical name for blddir (i.e. current directory). dnl PWD may already be the preferable absolute name for ".", dnl but we can't trust it - it is sometimes inaccurate. absolute_pwd="`pwd`"; if test -n "$PWD" -a "`cd $PWD && pwd`" = "$absolute_pwd" then blddir="$PWD" -else blddir="$absolute_pwd" +else blddir="$absolute_pwd"; CANONICALIZE_PATH(blddir) fi AC_SUBST(blddir) @@ -897,7 +883,7 @@ dnl give you automounter prefixes, which can go away. 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. @@ -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. -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\)//'` -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 @@ -1019,7 +1006,7 @@ machine='' opsys='' 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 ;; @@ -1032,6 +1019,8 @@ case "$canonical" in m68*-sony-* ) machine=news ;; mips-sony-* ) machine=news-risc ;; clipper-* ) machine=clipper ;; + arm-* ) machine=arm ;; + ns32k-* ) machine=ns32000 ;; 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 ;; - *-*-aix4.2* ) opsys=aix4-2 ;; + *-*-aix4.0* ) opsys=aix4 ;; *-*-aix4.1* ) opsys=aix4-1 ;; - *-*-aix4* ) opsys=aix4 ;; + *-*-aix4* ) opsys=aix4-2 ;; dnl Other generic OSes *-gnu* ) opsys=gnu ;; @@ -1102,13 +1091,9 @@ 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 ;; - ns32k-*-openbsd*) machine=ns32000 ;; - sparc-*-openbsd*) machine=sparc ;; - vax-*-openbsd*) machine=vax ;; esac ;; @@ -1324,6 +1309,13 @@ case "$canonical" in 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 ;; @@ -1455,6 +1447,7 @@ case "$canonical" in *-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 ;; @@ -1473,7 +1466,9 @@ case "$canonical" in *-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 ;; @@ -1492,7 +1487,7 @@ fi if test -z "$dynamic"; then case "$opsys" in - hpux* | sunos4* | sco5 ) dynamic=no ;; + hpux* | sunos4* ) dynamic=no ;; *) 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) -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 -], __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" ;; @@ -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(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... -CPP=`eval "echo $CPP"` +CPP=`eval "echo $CPP $CPPFLAGS"` 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 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 @@ -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 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 + elif test "$__DECC" = "yes"; then + CFLAGS="-O3" 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 - dnl ### Add tests for other compilers here... 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 - -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 @@ -1832,39 +1842,61 @@ 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) +COLON_TO_SPACE(site_libraries) 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) +COLON_TO_SPACE(site_includes) 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 +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) @@ -1877,6 +1909,7 @@ for dir in "/usr/ccs/lib"; do 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 @@ -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 - sol2 | irix* | *bsd* ) add_runtime_path=yes ;; + sol2 | irix* | *bsd* | decosf* ) add_runtime_path=yes ;; * ) 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") - 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) @@ -1983,6 +2021,9 @@ fi ])dnl XE_COMPUTE_RUNPATH() +dnl JKJ REMOVEME +dnl XE_SHLIB_STUFF + 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) -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 @@ -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_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) @@ -2157,12 +2198,6 @@ elif test "$mail_locking" = "flock"; then AC_DEFINE(REAL_MAIL_USE_FLOCK) 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" && \ @@ -2281,6 +2316,9 @@ if test "$with_x11" = "yes"; then 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() @@ -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) + 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 \ @@ -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_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_dialogs" != "no" && XE_ADD_OBJS(dialog-msw.o) + test "$with_dialogs" != "no" && XE_ADD_OBJS(dialog-msw.o) fi - dnl check for our special version of select + dnl check for our special version of select AC_TRY_RUN([#include 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 @@ -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 - 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]) @@ -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 - 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]) @@ -2580,7 +2616,7 @@ if test "$with_cde" = "yes" ; then 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. @@ -2651,6 +2687,7 @@ if test "$window_system" != "none"; then 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 @@ -2660,22 +2697,22 @@ if test "$window_system" != "none"; then 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; - if test "$?" = "1"; then + if test "$xpm_status" = "1"; then 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 " -*** 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 - 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= @@ -2696,6 +2733,24 @@ if test "$window_system" != "none"; then 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 @@ -2704,16 +2759,6 @@ if test "$window_system" != "none"; then 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) } @@ -2724,18 +2769,38 @@ if test "$window_system" != "none"; then 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 -#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_HEADER(png.h, ,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 + 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) @@ -2752,22 +2817,13 @@ yes fi dnl ---------------------- -dnl Graphics libraries +dnl X-Specific 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 @@ -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 "$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) @@ -2875,10 +2930,6 @@ else 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 ---------------------- @@ -2902,7 +2953,7 @@ if test "$with_mule" = "yes" ; then 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) @@ -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) + AC_CHECK_LIB(X11, XOpenIM, with_xim=xlib, with_xim=no) dnl XIM + Lesstif is not (yet?) usable - if test "$have_lesstif" = "yes"; then with_xim=xlib - else AC_CHECK_LIB(Xm, XmImMbLookupString, with_xim=motif, with_xim=xlib) - fi + if test "$have_motif $have_lesstif" = "yes no"; then + AC_CHECK_LIB(Xm, XmImMbLookupString, with_xim=motif) + fi ;; esac if test "$with_xim" != "no"; then AC_DEFINE(HAVE_XIM) @@ -2935,7 +2987,7 @@ if test "$with_mule" = "yes" ; then 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) @@ -2945,7 +2997,7 @@ if test "$with_mule" = "yes" ; then 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 @@ -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 -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) - XE_PREPEND(-lwnn, libs_x) + XE_PREPEND(-l$libwnn, libs_x) 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 @@ -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 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) ;; * ) - 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 +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 ], @@ -3181,6 +3256,7 @@ int main (int argc, char *argv[]) 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. @@ -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, - 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 @@ -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 -dnl 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 - 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 +dnl Check for DBM support in libc and libdbm. 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 +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 @@ -3467,7 +3546,7 @@ typedef uint64_t u_int64_t; #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 @@ -3511,26 +3590,26 @@ if test "$usage_tracking" = "yes"; then 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 - 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. @@ -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]) -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 @@ -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) -internal_makefile_list="Makefile" +internal_makefile_list="Makefile.in" 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 - 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) @@ -3623,7 +3703,7 @@ if test -f $srcdir/src/gdbinit -a ! -f src/gdbinit ; then 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" @@ -3718,16 +3798,38 @@ while true; do 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) @@ -3765,13 +3867,12 @@ AC_SUBST(ARCHLIBDIR) 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 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) @@ -3794,10 +3895,20 @@ AC_SUBST(sound_cflags) 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 +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") @@ -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. -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) @@ -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_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 "$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) @@ -3899,21 +4008,37 @@ if test "$with_xpm" = yes; then 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: (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 +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_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 -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." @@ -3959,7 +4084,15 @@ case "$with_scrollbars" 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 @@ -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_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_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 "$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 @@ -3989,15 +4119,9 @@ 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 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" +if test "$with_shlib" = "yes"; then + ac_output_files="$ac_output_files lib-src/ellcc.h" +fi 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/^ *# */#/' \ +dnl Delete Makefile.in.in comment lines -e '/^##/d' \ +dnl Pass through CPP directives unchanged -e '/^#/ { p d -}' -e '/./ { -s/\([\"]\)/\\\1/g +}' \ +dnl Quote other lines to protect from CPP substitution + -e '/./ { +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/^[ 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(<>, +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 - 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 @@ -4064,7 +4207,6 @@ sed < config.status >> lib-src/config.values \ ], [CPP="$CPP" - CPPFLAGS="$CPPFLAGS" top_srcdir="$srcdir" MAKE_SUBDIR="$MAKE_SUBDIR" -]) +])dnl diff --git a/configure.usage b/configure.usage index bcab03e..69088f9 100644 --- a/configure.usage +++ b/configure.usage @@ -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 -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'. @@ -14,214 +14,210 @@ values which are PATHs (i.e. lists of directories). 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: ---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 - 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: ---prefix=DIR Install files below DIR. Defaults to `/usr/local'. +--prefix=DIR Install files below DIR. Defaults to `/usr/local'. 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: ---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: ---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 - `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). ---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. - 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 - 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. - 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. ---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. +--moduledir=DIR Directory to install dynamic modules in. 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: ---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]... - 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: ---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, diff --git a/dynodump/Makefile.in.in b/dynodump/Makefile.in.in index b98e2a9..d400da1 100644 --- a/dynodump/Makefile.in.in +++ b/dynodump/Makefile.in.in @@ -80,7 +80,7 @@ mostlyclean: clean: mostlyclean $(RM) *.so *.so.1 distclean: clean - $(RM) Makefile Makefile.in TAGS + $(RM) GNUmakefile Makefile Makefile.in TAGS realclean: distclean extraclean: realclean $(RM) *~ \#* diff --git a/dynodump/_dynodump.h b/dynodump/_dynodump.h index 847c4eb..c09bd7f 100644 --- a/dynodump/_dynodump.h +++ b/dynodump/_dynodump.h @@ -32,7 +32,7 @@ * 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 diff --git a/dynodump/dynodump.c b/dynodump/dynodump.c index ff4477d..b684813 100644 --- a/dynodump/dynodump.c +++ b/dynodump/dynodump.c @@ -73,7 +73,7 @@ * 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 diff --git a/dynodump/i386/_relocate.c b/dynodump/i386/_relocate.c index f97dd1b..d3ec59c 100644 --- a/dynodump/i386/_relocate.c +++ b/dynodump/i386/_relocate.c @@ -32,7 +32,7 @@ * 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 */ diff --git a/dynodump/i386/machdep.h b/dynodump/i386/machdep.h index 4dc66fe..c90e29c 100644 --- a/dynodump/i386/machdep.h +++ b/dynodump/i386/machdep.h @@ -32,7 +32,7 @@ * 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 diff --git a/dynodump/ppc/_relocate.c b/dynodump/ppc/_relocate.c index 754b417..feb5ca9 100644 --- a/dynodump/ppc/_relocate.c +++ b/dynodump/ppc/_relocate.c @@ -32,7 +32,7 @@ * 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 */ diff --git a/dynodump/ppc/machdep.h b/dynodump/ppc/machdep.h index a649a9c..2a3d1e6 100644 --- a/dynodump/ppc/machdep.h +++ b/dynodump/ppc/machdep.h @@ -32,7 +32,7 @@ * 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 diff --git a/dynodump/sparc/_relocate.c b/dynodump/sparc/_relocate.c index 14466f0..10b0fda 100644 --- a/dynodump/sparc/_relocate.c +++ b/dynodump/sparc/_relocate.c @@ -35,7 +35,7 @@ /* * 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 #include diff --git a/dynodump/sparc/machdep.h b/dynodump/sparc/machdep.h index b4b76d8..972081e 100644 --- a/dynodump/sparc/machdep.h +++ b/dynodump/sparc/machdep.h @@ -32,7 +32,7 @@ * 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 diff --git a/dynodump/syms.c b/dynodump/syms.c index 0ac5cb8..c060f33 100644 --- a/dynodump/syms.c +++ b/dynodump/syms.c @@ -35,7 +35,7 @@ /* * 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 #include diff --git a/etc/BETA b/etc/BETA index 0e619ee..b5babd1 100644 --- 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 -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.) @@ -224,6 +224,10 @@ Patches to XEmacs should be mailed to . 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 . + Emailed patches should preferably be sent in MIME format and quoted printable encoding (if necessary). diff --git a/etc/HELLO b/etc/HELLO index ea86d00..7938aa5 100644 --- 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! --------------------------------------------------------- +Amharic ($(3"c!(B Arabic [2](38R(47d(3T!JSa(4W(3W[0](B Croatian (Hrvatski) Bog (Bok), Dobar dan -Czech (,Bh(Besky) Dobr,B}(B den +Czech (.BNhesky) DobrN} den Danish (Dansk) Hej, Goddag English Hello Esperanto Saluton Estonian Tere, Tervist FORTRAN PROGRAM Finnish (Suomi) Hei -French (Fran,Ag(Bais) Bonjour, Salut +French (Fran.ANgais) Bonjour, Salut German (Deutsch Nord) Guten Tag -German (Deutsch S,A|(Bd) Gr,A|_(B Gott -Greek (,FGkk]mija(B) ,FCei\(B ,Fsar(B -Hebrew [2],Hylem[0](B +German (Deutsch S.AN|d) GrN|N_ Gott +Greek (.FNENkNkNgNmNiNjN\) NCNeNiN\ NsNaNr +Hebrew [2].HNyNlNeNm[0] Italiano Ciao, Buon giorno Maltese Ciao Nederlands, Vlaams Hallo, Hoi, Goedendag Norwegian (Norsk) Hei, God dag -Polish Cze,B6f(B! -Russian (,L@caaZXY(B) ,L7T`PRabRcYbU(B! -Spanish (Espa,Aq(Bol) ,A!(BHola! +Polish Cze.BN6Nf! +Russian (.LN@NcNaNaNZNXNY) N7NTN`NPNRNaNbNRNcNYNbNU! +Slovak Dobr.BN} deNr +Spanish (Espa.ANqol) N!Hola! Swedish (Svenska) Hej, Goddag -Vietnamese (Ti,1*(Bng Vi,1.(Bt) Ch,1`(Bo b,1U(Bn +Thai ($(?@0R0I0R0d070B0(B) $(?J0G8J04H$0C8:0(B, $(?J0G8J04H$2P0(B -Japanese ($BF|K\8l(B) $B$3$s$K$A$O(B, (I:]FAJ(B, $BqV$(DiQ(B +Tigrigna ($(3"8#r!N"^(B) $(3!Q!,!<"8(B +Turkish (T.AN|rkNge) Merhaba +Vietnamese (Ti.1N*ng ViN.t) ChN`o bNUn + +Japanese ($BF|K\8l(B) $B$3$s$K$A$O(B, *IN:N]NFNANJ, $BqV$(DiQ(B Chinese ($AVPND(B,$AFUM(;0(B,$A::So(B) $ADc:C(B Cantonese ($(0GnM$(B,$(0N]0*Hd(B) $(0*/=((B, $(0+$)p(B Hangul ($(CGQ1[(B) $(C>H3gGO<H3gGO=J4O1n(B diff --git a/etc/MOTIVATION b/etc/MOTIVATION index 37ed36f..267a233 100644 --- a/etc/MOTIVATION +++ b/etc/MOTIVATION @@ -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 -'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 diff --git a/etc/MYTHOLOGY b/etc/MYTHOLOGY new file mode 100644 index 0000000..bbdfdc9 --- /dev/null +++ b/etc/MYTHOLOGY @@ -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. + + diff --git a/etc/NEWS b/etc/NEWS index 01711ba..a7cbbe0 100644 --- 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 -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 @@ -32,8 +32,178 @@ file. * 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' will complete to +`~hniksic/'. To make this operation faster, a cache of user names is +maintained internally. + + +* 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 ... ) + +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'. + + * 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. -** 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 ' 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 +"" where is one of 'StaticColor', +'TrueColor', 'GrayScale', 'PseudoColor' or 'DirectColor' and + 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. @@ -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. -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, -(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 -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. -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 @@ -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. +** 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, @@ -250,7 +436,7 @@ limit. *** \\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. @@ -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. -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. @@ -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 -`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. @@ -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: - - LDAP 3.3 from the University of Michigan + - LDAP 3.3 from the University of Michigan (get it from ) + - OpenLDAP 1.0.3 from the OpenLDAP Foundation + (get it from ) - LDAP SDK 1.0 from Netscape Corp. (get it from ) diff --git a/etc/PACKAGES b/etc/PACKAGES index 598c097..138ea65 100644 --- a/etc/PACKAGES +++ b/etc/PACKAGES @@ -1,7 +1,7 @@ * Description of available packages by category =============================================== -This data is up-to-date as of 13 January 1998. +This data is up-to-date as of 10 February 1999. ** Library Packages (libs) ========================== @@ -12,8 +12,7 @@ when adding new files there as it is required by almost everything. *** Sun -Support for Sparcworks. Must be installed prior to XEmacs build to be -effective. +Support for Sparcworks. *** apel @@ -38,8 +37,7 @@ Fundamental lisp files for providing email support. *** tooltalk -Support for building with Tooltalk. Must be installed prior to XEmacs -build to be effective. +Support for building with Tooltalk. *** xemacs-base @@ -101,7 +99,7 @@ Emacs MIME support. *** vm -An Emacs mailer. This package must be installed prior to building XEmacs. +An Emacs mailer. *** w3 @@ -280,8 +278,7 @@ Support for editing shell scripts. *** vc -Version Control for Free systems. This package must be installed -prior to building XEmacs. +Version Control for Free systems. *** vc-cc diff --git a/etc/TUTORIAL.de b/etc/TUTORIAL.de index a7b9fa8..b0ef6d0 100644 --- a/etc/TUTORIAL.de +++ b/etc/TUTORIAL.de @@ -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 -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. @@ -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. -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: @@ -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. - 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, @@ -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 -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. @@ -226,7 +226,7 @@ haben. Wenn Du ihn wieder zur 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. @@ -242,8 +242,8 @@ Rollbalkens mit der Maus rollen. ------------------------------------------- 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 @@ -264,9 +264,9 @@ CONTROL-Taste, getippt werden kann. * 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. @@ -367,7 +367,7 @@ wieder eine Fortsetzungszeile. >> Geh an den Anfang einer Zeile und tippe . Dies fügt die Zeile an die vorhergehende an. ->> Tippe um den Newline-Zeichen wieder einzufügen. +>> Tippe 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 @@ -393,12 +393,12 @@ Verwandtschaft von C-f und M-f fortsetzen ( 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. -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 @@ -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 -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). @@ -505,9 +505,9 @@ Namen falls Du sp 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 -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. @@ -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. - 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ß @@ -592,7 +592,7 @@ haben. . 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 um zum Tutorial zurück + Schließlich tippe C-x C-f TUTORIAL.de um zum Tutorial zurück 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. - 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 ---------------------- -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 -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 @@ -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 -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 @@ -694,7 +694,7 @@ META-Zeichen unterbringen k (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. @@ -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. -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. @@ -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 -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: @@ -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 - anfänglichen Textzeiger Position auftrat. + anfänglichen Textzeiger-Position auftrat. * 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 -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 -recover-file zurückholen. Wenn Du nach der Bestätigung -gefragt wirst, tippst Du yes um die Änderungen in der +recover-file zurückholen. Wenn Du nach der Bestätigung +gefragt wirst, tippst Du yes um die Änderungen in der 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: ---**-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. @@ -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 -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 @@ -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 -Deine Eingabe wartet. bricht die Suche ab. +Deine Eingabe wartet. bricht die Suche ab. >> 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. bricht die Suche ab. zu suchen. >> Nun tippe viermal und schau wie sich der Textzeiger bewegt. ->> Tippe zum Abbrechen der Suche. +>> Tippe 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 @@ -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 -RET zu tippen.) + 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 @@ -1065,7 +1065,7 @@ eine ganz kurze Beschreibung des Befehls. 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 @@ -1079,11 +1079,11 @@ C-h c. >> 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: @@ -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 -Unklares gefunden, schiebe die Schuld nicht auf Dich - beschwere Dich! +Unklares gefunden, schiebe die Schuld nicht auf Dich -- beschwere Dich! ANFERTIGEN VON KOPIEN diff --git a/etc/check_cygwin_setup.sh b/etc/check_cygwin_setup.sh index f569562..8c24ce9 100644 --- a/etc/check_cygwin_setup.sh +++ b/etc/check_cygwin_setup.sh @@ -23,17 +23,17 @@ fi 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 "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 - 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." diff --git a/etc/package-index.LATEST.pgp b/etc/package-index.LATEST.pgp index d516331..a980601 100644 --- a/etc/package-index.LATEST.pgp +++ b/etc/package-index.LATEST.pgp @@ -1,839 +1,793 @@ ------BEGIN PGP SIGNED MESSAGE----- - ;; Package Index file -- Do not edit manually. ;;;@@@ (package-get-update-base-entry (quote -(zenirc +(ediff (standards-version 1.0 - version "1.04" - author-version "2.112" - date "1998-08-15" - build-date "1998-10-12" - maintainer "XEmacs Development Team " + version "1.19" + author-version "2.72" + date "1999-04-06" + build-date "1999-05-13" + maintainer "Michael Kifer " distribution stable priority medium - category "comm" + category "prog" 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 -(w3 +(hm--html-menus (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 " - distribution experimental - priority high - category "comm" + distribution stable + priority low + category "oa" 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 -(vm +(jde (standards-version 1.0 version "1.14" - author-version "6.62" - date "1998-09-22" - build-date "1998-10-12" - maintainer "XEmacs Development Team " + author-version "2.14" + date "1999-02-05" + build-date "1999-02-05" + maintainer "Andy Piper " distribution stable priority medium - category "comm" + category "prog" 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 -(tm +(skk (standards-version 1.0 - version "1.15" - author-version "21.0" - date "1998-08-27" - build-date "1998-10-12" - maintainer "XEmacs Development Team " - 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 " + 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 -(supercite +(egg-its (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 " - 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 -(rmail +(edict (standards-version 1.0 version "1.07" - author-version "21.0" - date "1998-06-28" - build-date "1998-10-12" - maintainer "XEmacs Development Team " - distribution contrib - priority low - category "comm" + author-version "0.9.8" + date "1998-07-23" + build-date "1999-02-02" + maintainer "Stephen J. Turnbull " + distribution mule + priority high + category "mule" 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 -(mew +(leim (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 " - distribution contrib - priority low - category "comm" + distribution mule + priority medium + category "mule" 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 -(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 " - 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 - version "1.08" + version "1.13" 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 " - distribution contrib - priority low - category "comm" + distribution mule + priority high + category "mule" 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 -(mailcryptng +(mule-base (standards-version 1.0 - version "1.01" - author-version "3.5b7" - date "1998-10-10" - build-date "1998-10-12" - maintainer "XEmacs Development Team " - 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 " + 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 -(mailcrypt +(strokes (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 " distribution stable - priority low - category "comm" + priority medium + category "oa" 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 -(irchat +(time (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 " distribution stable priority medium - category "comm" + category "oa" 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 -(gnats +(text-modes (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 " distribution stable priority high - category "comm" + category "oa" 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 -(footnote +(slider (standards-version 1.0 - version "1.07" - author-version "0.18x" - date "1998-08-27" - build-date "1998-10-12" - maintainer "SL Baur " - distribution stable + version "1.09" + author-version "0.3x1" + date "1998-08-13" + build-date "1999-02-02" + maintainer "XEmacs Development Team " + distribution experimental priority low - category "comm" + category "oa" 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 -(eudc +(sgml (standards-version 1.0 - version "1.24" - author-version "1.24" - date "1998-10-15" - build-date "1998-10-15" - maintainer "Oscar Figueiredo " - distribution stable + version "1.04" + author-version "21.0b62" + date "1998-01-25" + build-date "1999-02-02" + maintainer "XEmacs Development Team " + distribution contrib priority low - category "comm" + category "oa" 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 -(bbdb +(psgml (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 " distribution stable priority medium - category "comm" + category "oa" 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 -(gnus +(pc (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 " distribution stable - priority medium - category "comm" + priority low + category "oa" 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 " - 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 -(mule-base +(ispell (standards-version 1.0 - version "1.24" - author-version "21.0" - date "1998-08-12" - build-date "1998-10-12" - maintainer "SL Baur " - 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 " + 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 -(egg-its +(frame-icon (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 " - 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 -(edict +(forms (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 " - 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 " + distribution contrib + priority low + category "oa" 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 -(leim +(calendar (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 " - distribution mule - priority medium - category "mule" + distribution stable + priority low + category "oa" 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 -(locale +(calc (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 " - distribution mule - priority high - category "mule" + distribution stable + priority low + category "oa" 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 -(time +(speedbar (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 " distribution stable - priority medium + priority low 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 -(text-modes +(edit-utils (standards-version 1.0 - version "1.13" + version "1.39" 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 " 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 -(strokes +(view-process (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 " distribution stable - priority medium - category "oa" + priority low + category "os" 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 -(speedbar +(os-utils (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 " distribution stable - priority low - category "oa" + priority medium + category "os" 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) - type regular + type single )) )) ;;;@@@ (package-get-update-base-entry (quote -(slider +(ilisp (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 " - distribution experimental + distribution stable priority low - category "oa" + category "os" 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 -(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 " - distribution contrib + distribution stable priority low - category "oa" + category "os" 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 -(psgml +(eterm (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 " distribution stable priority medium - category "oa" + category "os" 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 -(pc +(viper (standards-version 1.0 - version "1.13" - author-version "21.0" - date "1998-07-25" - build-date "1998-10-12" - maintainer "XEmacs Development Team " + version "1.14" + author-version "3.061" + date "1999-03-03" + build-date "1999-03-05" + maintainer "Michael Kifer " distribution stable priority low - category "oa" + category "wp" 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 -(ispell +(tpu (standards-version 1.0 - version "1.12" - author-version "3.0x2" - date "1998-09-15" - build-date "1998-10-12" - maintainer "XEmacs Development Team " - 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 " + distribution normal + priority medium + category "wp" 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 -(hm--html-menus +(textools (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 " - distribution stable - priority low - category "oa" + distribution stabl + priority medium + category "wp" 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) - type regular + type single )) )) ;;;@@@ (package-get-update-base-entry (quote -(frame-icon +(texinfo (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 " - distribution contrib - priority low - category "oa" + distribution stable + priority high + category "wp" 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 -(forms +(reftex (standards-version 1.0 - version "1.08" - author-version "2.10" - date "1998-01-25" - build-date "1998-10-12" - maintainer "XEmacs Development Team " - 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 " + distribution stable + priority medium + category "wp" 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 -(edit-utils +(edt (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 " - distribution stable - priority high - category "oa" + distribution contrib + priority low + category "wp" 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) - type single + type regular )) )) ;;;@@@ (package-get-update-base-entry (quote -(calendar +(crisp (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 " distribution stable priority low - category "oa" + category "wp" 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 -(calc +(auctex (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 " distribution stable - priority low - category "oa" + priority medium + category "wp" 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 )) )) @@ -841,19 +795,19 @@ (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" - build-date "1998-10-12" + build-date "1999-02-02" maintainer "XEmacs Development Team " 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 @@ -861,21 +815,21 @@ )) ;;;@@@ (package-get-update-base-entry (quote -(vc-cc +(vc (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 " - distribution contrib + distribution stable 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 @@ -883,21 +837,21 @@ )) ;;;@@@ (package-get-update-base-entry (quote -(vc +(vc-cc (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 " - distribution stable + distribution contrib 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 @@ -907,19 +861,19 @@ (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" - build-date "1998-10-11" + build-date "1999-02-02" maintainer "XEmacs Development Team " 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 @@ -929,19 +883,19 @@ (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" - build-date "1998-10-11" + build-date "1999-02-02" maintainer "Karl M. Hegbloom " 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 @@ -951,571 +905,615 @@ (package-get-update-base-entry (quote (prog-modes (standards-version 1.0 - version "1.13" + version "1.19" 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 " 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) - requires (mail-lib xemacs-base) + requires (mail-lib xemacs-devel xemacs-base) type regular )) )) ;;;@@@ (package-get-update-base-entry (quote -(pcl-cvs +(emerge (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 " 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 -(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 " + 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 " + 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" - author-version "2.05" - date "1998-07-09" - build-date "1998-10-11" - maintainer "Andy Piper " + author-version "2.27" + date "1998-01-24" + build-date "1999-02-02" + maintainer "XEmacs Development Team " distribution stable - priority medium + priority low 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 -(emerge +(pcl-cvs (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 " 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 -(ediff +(cc-mode (standards-version 1.0 - version "1.13" - author-version "2.71" - date "up-mess): " - build-date "1998-10-15" - maintainer "XEmacs Development Team " + version "1.15" + author-version "5.25" + date "1998-12-30" + build-date "1999-02-02" + maintainer "Barry Warsaw " 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 -(debug +(misc-games (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 " - distribution contrib + distribution stable priority low - category "prog" + category "games" 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) - type regular + type single )) )) ;;;@@@ (package-get-update-base-entry (quote -(cc-mode +(mine (standards-version 1.0 - version "1.13" - author-version "5.22" - date "1998-03-05" - build-date "1998-10-11" - maintainer "Barry Warsaw " + version "1.10" + author-version "1.9" + date "1998-05-09" + build-date "1999-02-02" + maintainer "XEmacs Development Team " distribution stable - priority medium - category "prog" + priority low + category "games" 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 -(c-support +(games (standards-version 1.0 version "1.09" - author-version "21.0" - date "1998-03-25" - build-date "1998-10-11" - maintainer "XEmacs Development Team " - distribution contrib + author-version "1.04" + date "1998-06-04" + build-date "1999-02-02" + maintainer "Glynn Clements " + distribution stable priority low - category "prog" + category "games" 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 -(ada +(cookie (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 " distribution stable priority low - category "prog" + category "games" 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 -(viper +(bbdb (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 " distribution stable - priority low - category "wp" + priority medium + category "comm" 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 -(tpu +(zenirc (standards-version 1.0 - version "1.07" - author-version "4.2X" - date "1998-07-23" - build-date "1998-10-11" - maintainer "Kevin Oberman " - distribution normal + version "1.05" + author-version "2.112" + date "1998-08-15" + build-date "1999-02-02" + maintainer "XEmacs Development Team " + distribution stable priority medium - category "wp" + category "comm" 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 -(textools +(mew (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 " - distribution stabl - priority medium - category "wp" + distribution contrib + priority low + category "comm" 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 -(texinfo +(tm (standards-version 1.0 - version "1.13" + version "1.18" 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 " distribution stable - priority high - category "wp" + priority low + category "comm" 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 -(reftex +(gnus (standards-version 1.0 - version "1.09" - author-version "3.41" - date "1998-08-11" - build-date "1998-10-11" - maintainer "Carsten Dominik " + version "1.40" + author-version "5.6.45x1" + date "1999-03-12" + build-date "1999-05-13" + maintainer "XEmacs Development Team " distribution stable priority medium - category "wp" + category "comm" 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 -(edt +(rmail (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 " distribution contrib priority low - category "wp" + category "comm" 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 -(crisp +(mailcrypt (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 " distribution stable priority low - category "wp" + category "comm" 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 -(auctex +(supercite (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 " distribution stable - priority medium - category "wp" + priority low + category "comm" 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 -(view-process +(mh-e (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 " - distribution stable + distribution contrib priority low - category "os" + category "comm" 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 -(os-utils +(gnats (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 " distribution stable - priority medium - category "os" + priority high + category "comm" 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 -(ilisp +(footnote (standards-version 1.0 - version "1.06" - author-version "5.8" - date "1998-01-24" - build-date "1998-10-12" - maintainer "XEmacs Development Team " + version "1.10" + author-version "0.18x" + date "1999-03-11" + build-date "1999-05-13" + maintainer "SL Baur " 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 -(igrep +(eudc (standards-version 1.0 - version "1.04" - author-version "2.83" - date "1998-08-11" - build-date "1998-10-12" - maintainer "XEmacs Development Team " + version "1.28" + author-version "1.28" + date "1999-02-13" + build-date "1999-03-01" + maintainer "Oscar Figueiredo " distribution stable priority low - category "os" + category "comm" 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 -(eterm +(net-utils (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 " distribution stable - priority medium - category "os" + priority low + category "comm" 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 -(misc-games +(w3 (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 " - distribution stable - priority low - category "games" + distribution experimental + priority high + category "comm" 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 -(mine +(vm (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 " distribution stable - priority low - category "games" + priority medium + category "comm" 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 -(games +(sounds-wav (standards-version 1.0 version "1.07" - author-version "1.04" - date "1998-06-04" - build-date "1998-10-11" - maintainer "Glynn Clements " + author-version "21.0b64" + date "1999-02-02" + build-date "1999-03-05" + maintainer "XEmacs Development Team " distribution stable - priority low - category "games" + priority high + category "libs" 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 -(cookie +(sounds-au (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 " distribution stable - priority low - category "games" + priority high + category "libs" 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 )) )) @@ -1523,19 +1521,19 @@ (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 " 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 @@ -1543,131 +1541,131 @@ )) ;;;@@@ (package-get-update-base-entry (quote -(xemacs-base +(tooltalk (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 " - distribution mule - priority high + distribution contrib + priority low 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 -(tooltalk +(elib (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 " - distribution contrib - priority low + distribution mule + priority high 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 () - type regular + type single )) )) ;;;@@@ (package-get-update-base-entry (quote -(mail-lib +(edebug (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 " distribution stable - priority medium + priority low 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 -(fsf-compat +(Sun (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 " - distribution mule - priority high + distribution sun + priority low 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 -(elib +(apel (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 " 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 - 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 " 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 @@ -1675,43 +1673,21 @@ )) ;;;@@@ (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 " - 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 - version "1.03" + version "1.05" 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 " 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 @@ -1719,101 +1695,69 @@ )) ;;;@@@ (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 " - 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 - version "1.09" + version "1.23" 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 " - distribution sun - priority low + distribution stable + priority medium 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 -(sounds-au +(fsf-compat (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 " - distribution stable + distribution mule 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 () - type regular + type single )) )) ;;;@@@ (package-get-update-base-entry (quote -(sounds-wav +(xemacs-base (standards-version 1.0 - version "1.05" + version "1.30" 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 " - distribution stable + distribution mule 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 - ------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 index 0000000000000000000000000000000000000000..c56c44b252f8595c8f19f99bf02e52d78f8c22fa GIT binary patch literal 7014 zcmV-s8=2&ZP)ePJgHc4%%CCrbcZG|KW>sbY01s7F zRdF#g@5PDr$e0KZndain(wbeQTSuI+uZ}M+t)64l zwx`W@TX$w=^5WuEL{(B%UqnPiRYXKHA~RenH-v000_ENkl23e5d zy1mVA`6~E1zPl@ms_?36HY1Njp-1>n*H@?G#VkSmkxXBGgo2*U!f`11IjRCn(8G4Fw3@$KzH zoW%qLQ~X=*2){HcWMAa%>rD*T{-hSE+?3G_!?Yg@rXo*xxB zsBnc|1!33x#s%agxf6LR@U18}?tq0cfx(nS8((dk$U{6}S8K?;`CP3|Ao24~NM=EA zw>#!}-0LV;uxh;o7*~>bq1f34EdG;*hA&u`nl>3jyb67>upu$mAiYjMLAe;;DPh3! z>Kz}lY`+)mg3{(y^Ba`$b;ADwOSne0{Nu^*R`tfWxW3vLA8Yv{JjI^YULj<&?5Ma$ zxq3hbHtf0rQ9dJV=Qfgkdx&CXs& zqW5~1bRvRIYT;ehLcI1s8o)Wh9ekc&^lX$aY}j{>1UY=O-A4<6z(0ZKjV; zye#WH-|q$4idtxsxJUbfFW`PH-Y=9X?OVer>8>G7+q##JK*FmzohY{6({8ibZJsu` z9Boj}#KOEvWW97&27S}B>mv99m{0T;{-l}#+;qSIgcH-H`H!_mvNeGBNAR6)^m=@9 z$k4Me2Ipn6#3MNL3pzDGY1eBIKJFd?JKc;3 z{jLNQzfudez%S+Ui`Be;6C0Nmz}`Dj7CLIj1Wx+np7% zd%oxy;1G7d3YS*EmA8ZdW=`2iU7_=52%NIEb}gb_xJ*oN>sUic9DWMiZ=308dUcWW z=Bbmm2%9mRq`fd%R#&v~05beYEGs{E)J-R2v8bW2_w^MsqqomLK8QAIE$j$4v6))O zI$GocX^O^Og_ZIa&Pdb54})BEoQtCEWz?=DhzxnDqE+z2rq1&G<1lU8mfw6LGDZD# zvFyF3DZtL~+$Z})o|dyhQuR1Ki&dY`zW}RE50&>qOj=z!4fEaRSuoqy$TvA(fR8&3 zUjzo((ChbUXN54XDl78YPpUY_BR{LKC)9Bx7-~`rCMMB0#Xtq`z8#D}%CjJY@)MDt zgt3ILupjoBAceYBc}3KjH=8krz2$N_$`2Fs#gc`#eFyK=K@Pq~u2vpIAB{$j@F-=i zky9x5L%ASpug^q{G);}qplL6-g|yH4nO2q)_rdrV9HFc)d?nob_}H{&FqjiE+A1=D zN7kE}B0E`!YFPbn*$;{9IqyzT3TCwH^Vx}-I@XverbNc-O?+$Jgow{m6Gea?L}qU0 z^ZAwn7d0!c&5wa)>rv1ljSMzc={24qaRsrUp3ncVdBY5CmLRfLKi1BDzYccKqbX4b zb3VP0`kd0HFYna8j=56q_eIv8Jo5&i;ZQ8Bs9vyTx&uL;3-;h;-cjBtW6D}6_bV|hQL{qwA=Zv4g18I2&fi>mHbYx_*nn+Sj$2u$ z;WzM&UIrayGN!(#?WPNxJymk(q>W3eAqW~lg|#3`0{B$$FPc_PaDM&ExXMTTr+dY# z+)t;LuY;Zs=8@UXTZGV&22F9~PRad#KfJye!wSh+N%1FfmG0zATJ*074`ErU7sG9% z!53sRAGBt!O4eG0jDri^DwOb9DRHTOQ5^$1$jJANT8>aOa|B zNP2D}Ix|)LC>2m}A64pPQ^zJTtQ#>R;p=5N9ZoJd7h!$2qb=xavndNopCi<3S7dcpZ;uH;BCp+LPON; zNDNDgfyb^82tsRIH0r+XY$~sFuZlfvaJI4QEJZ;FtN~i0rMR}2&!eq~*^#D>Vdqnu z7@trC>~bO87smas{v@VdiE&B&8%%OVrc+H=fec-Ck~GZn68Nj|FXu`Gy}y^2lAN>> z5Wc&d0aN$}HajtN_PxqEa)_!+%*+GhHv)q$qNnKC#%8Gm*f1@SqSEoR5yF=7y;XDT zYLKU+b~2r9X`5bz9p_47C_@+%6c`I%hAohu7}v59S8Q4e5Wmh4Ejuy4zi-vRkR(|6 z*+5Nia_PA5Y$~j@0P72D1djwdrl_qOYhG3zcNK_O*@BH*as!**-gm&AFB?(vMru9V zG-~9cT}!KX4M(Q`JcpPiHmO|6DC^=u*PH)Gi=fTg-6GBJCLL# z0h9SymHZ?*QF7Bh2>;`%!hhpA@oXHcidaIIwd>q9=2ry(ztgO3x1EelJ7+nKB48j9 zvnxPA7&TX*Sy8nd6b>0>h~+HhCW5tq#&4{ zJ~kh&S3QcB9dgII=xZOv>;%GigSB;*TSt}($T1$es+PkSzbT#}>8;q6wurmk?L(k{ ze;@RY2pu`(eEcG6Cu_#(#H;INQqhB@4v~Z`ftoIbTQIh=9X4(VLwtIZ`jQmzp!{*p z_RM@?byrcG`?$9Ua1W3D(cu<}qn2Jd4Gt1L z7$YC2hZdYaV7=0#&_RWGZ=Va{UKZR1V|XthN|`pLb-nsrrMOn?%{}5e#=;j@H|J7l zRWXekaZ6M@-@Xr`s6A|Uab_Jy#Jv}*(hF}wpb6m8^fO(p(Dyh>|1Gr|j{`8S*J{uXb1KhJI zDzgb$%G}s2t{Mni@-@wmiP2Q7xPx|s=Iw?VP+Brhfp)GA*z?`c6S_oBWlV+}5Lutn zQ_X<{fO|IH}1QNy{__CML_Qln>GVDRU^%0@`0Pww7_VlCu{@4Fa{%c&9oXj#8 z^j~)^%G~MW?rev9_31=#j(Z{Bx-9F2BaqV%gfAILWPo+Jk`{+DBB7plb^`1>r;@32)CAzUs#| zULtVRVGj&E0JjGw35i{7iO+=p{XtL4dqMcx z`*_|mo|?lk7`riQ0;IBOATlT!w97==#i{^x07KL_5;7SI0(Tq2IbH;#)wEV*xlj{RZ&GSu6 zt9D~GD0n};*`dZmb2MlVgL^^NR)UoWyN5q*+{mZmYfN1Tn1!W_;;NXfY93_F3I;J0 z9_-t+YeVC*zY8*sf56#}6vd{!-R8L8NYp^my;s8W&wF4;?Ir#8b_WHXPvK9fww62* zA^I%&0XgGmRWfvX78vpl;!F~CK-dXFrVKtr#o^}h2$Nx%6+Is;?)$)XPKeknXF<95 zkRP-N`#wFwsu`tcoZHI4Hu=FpqMi{*`2pMn&LzcX$TIhBLdLA%#hKDzv^(YlVcF7( z9k3e)Xfuum;s}LENi;B^rj$9btz~9h>kF9+fHETwD&GDwv}La88e^*X>3EKS zc0V6IzgtmXnp9hAF;X6E<2*MX$6jzJ1I1ZVmYyUdnHlR*0Sh1GvoZWlnhZ$b*1A)d z44XO_ZF*Ri_QW%mV_Me z=rynz+1LRpjSGzPkL^2MsCA4x&Wg;LG3R@cD&Lq*PNQZMoXDBmQe>=Sy{bYR2{E(A zXBkqk{K_O7zvcF5K=d4rM!UZRskL!SfY~Cyn8DWQ#F~@T$fm6bp_-*uC5>o^ZpDt7 zSZHYTj>D_TQ;|q)7k)$Tju0_)jt)7CM5=R<>(UJ!M} zU&?!kAJQp$3e4`D;;qKjbu$AgmnZF+gY0}UE^WmTt8;UR@W(cfhGyGoS>mR7(eA~J zSQYWjE&CZV*7JbsnxdOLv8FF%fD1paq<}boaVNGf%_%^C#0eI7oA>uGxDqemQS*^u zdeFD$(RTueNg<{j{tB#jGA^nyPafq)0#|98%aojE4N8y4zYh1X;rokuy9R_s-Wr2`RG+W7wWcuc~H{AQnPd3$vx!NK_1w1~&~VLLdO?aLMNWzGew zj^5>F?nTG+V<0ap9X(tw*H;8%*7J2)NiXS&>l@Zw_JED^2jo6P#E)n&f0m?le}5G^ zWo`?`TYZD>6m2wsRLdoaR(*##?rN{*x1z2tUCj< z$P~4)8G>GBMo&E+*Yjvk|MY)O1`=s9Jo#OA6YB(qj5%)MBm}SOXG9MUz^BezzgV_R zP(|9(XHfnJgsvjgA=<^Pbn-P8=_kA^$;<@q`X@Q!8!oJY)#vwUJ|8{qzD=LoFTfg_ zqgKM^Mt&!Z%?`nu!VJe(vgZB`zESCO7EsMft?DnpE`YejgfugBSDx}bALfI>`&Y)S zLL@^ST6WHy$!r*`DQXQ}*IsN-2@t_&i2|e2)Ja4hpRe4BeMA8+FH%~z&m5rs>QHQ! zpPr^XGk|Zgm7rORBio^AaiOhwnw52(dXgkF?T|TSGnclBPu^c@%1|DwjQ3w+S1UPr zIvr8hsDDhf+4XKEA17pd8Tp8!rQoV&v@JbVCGdoEz4Q6YnFOL{ywwD-ZJ%35_+={@ zN@l2!oEgKPY4&D{w1|=`v_*AQb;c#)mJPj5PRlDk4^)W9xr4( zqK*aGwotI77t{fanW($xXkhNyI_3MYSfb=vvY7kDlVDytnm{sUQjWWkKrD^

)YV z*vXAnmk7hH?H4s#1DJgh-Ra7#TdOHZ2y&r$9x-)ihZ#Ve2W10B2M zu0Qte@YW4{p81E{Z|4@WbYj*j1eF&L{I=rg95sF%_YavYf_QbJ6H7UJ5w>E|m8@HN z1eQLvJD9M`3GVQkr(MNwhxYNNxBq6Oh!tXtCw~w zK*yJbDA?cP0GQ03 zu+z<|C1Lw?BYR%Y{J}NOSf!j_bWDG8yQm!d*uY(*5HeeVbWvo`^^Qi4CiFmJ-{X*z z+-hl@yd^6Ul)NF?BbXM!_z$*BdA?K56RkiR*PGk@2(C%;2nh9v_DC<*u!+2t$br&q zBi*uF5RfH^N*X6%hdc+7e8t--vPq!nq0?}#L)7j-QQJ51>S423C+A3!g{mdX;GqT5 z)6?;|Kk7h{T_Rob;yWZ0G#TQN1kc`LdoU<;W?}od^N7 zry?kc*duQQoio&B80c!GOg!r32Y0DLdrY2i78J-%z$AVnvasf;%Psx-ez$b2JE>A; zw~Wa;xMtkqi8T_%9HE+44eZ|jmE-EAXSYGYeL2(SSa$c&LX^okkaGxGiU7RS0hgM~ zO^t_Y*fg^`+iLz(FM2^S)*@)WN8-n*1a=C%cWzvBkBxbXGenv5dG(2od6&gn$;Yx_ zbXXX0jt$r&LEp}EqOSemPUC2B*#j9!N}4;Tf~QR>P{x&!SzxE9m#aBdDtcg^-^Rm!A|$(T*#Ik#j^e!TGKg! zG^oDGChS+nxM4 z-K@AB`UcXuZZ~zy#=aimGK|R2b>saeL1V6ISlTATgH2o3qg@MRgak06s3VuU{hL&F z+uHdGu*)EG%ed^1o6eDZT@zerx=NekH+xL(RD2js&2-L*(`IvXj02Q4$&BGcu*9Tm z8EJ}hmG$Yz>9Z3c{^|-jRB&@UQq+}wnbWU**%M&g^1{EaN10+z(-8-3v}fS5Pbhf= zpd~EiT?(===f*P+DRhU|%^VU(+OAdEO-!3BxMK_t=%dEA$-!uMY}&cuQiSX#aGRZZ zASvZ6kE)d&dOhK@OYNuiWzr#HJO$ar0$V))>JS%}u+<#WHEX-HG(Z)! zb?UaIm!V4q7Pxfl%_To9AxEjDjLTQ6)aS8`s94PQv$}I@&fQ|7p2aMQ`uZB~|M@;} zoFlUxe7U4WMYVSqRC2^4;2NImS)G*WkA$1IW#>^G;w@I9=p=ZUnC5zOjdS{1VPD~+ z->-IF&>&vLPqU389u++3DVububvK&FQ%YEVR%NyN{Pe}C7N14e ztH~XwQH0^)MQPewTY_q&^A(0gRvaRb`P~JJCPEBtBM0kMXjopkU+3& zL?wq@j6}|LTt_vVCO#!pLD-S{50D6g3MFoDEfjpI+19Jw*O{Gl=3;;Ree>r1nlS)b zjxVb_P+33?4T{jccetIr_(0vfR5cj606=K^wHOpuw4)=7&tp>yI~8GE zUasobQ#8?ea%Oa! z(Og?yaRr$@!GrZga4&O z9#6*JUwhIzyd4WFBXgE+Af{83%PT{p4T~Gc*i=`iLgK?srq4`Qn<H$lC!uasVgKx<< z;UioBUBndt(Um^7SpPXHZv!j_Mr%y}?`wIAn0L>S{JCEc|5fot95^YRA+kog{SA_E zgy;;(ztcdYwT4^E94O-(towK!r@COV|6`JGFTvIZmI^$CCr1I^pxq}r7v|h$;OqK;U9hD{6U=W`Dfqms^al(EDm zJ%jz^zV(snYiQer{S^9G8;0~a%PylCcfadN|m|IWJg!`4uDA{lQo-9)pP zyXW`yllpXKEImBnSt>@+x(##{B9X-E&`VOEbsC?!BMkZiL85mwnC_1R^ZmM2UYgJL z(!dA852U{xIxPr(p16BE*3;JOs0x7)oT=0H*U0(!JU;A~9yIN7t5-|HQa;xw+iZ|{ z{UPtC4SPIgGwTex;nD_UQi4ARR_{l~(bf^Of>(sT1N%Clu@zel-McB%>r|r|m-xs4 zROozMpa!kyqT3Ukp!>V2ZcGYFAy?bC?@m*y0ny=qC zNg*#f?FVJeD8sNodNpI`v+%4NyyUC#I(|g~CxG>SrOE!ifYZkVjL`aAqWMRptVk{c z)xRfrs_;M@_R@a`svF6iljt4v-zZHc;8X!=jIop2zY4mjf4Z)c^Gsa~a1vu;ui@Vz zuywwR_?vkOJSqJCvH$=8 literal 0 HcmV?d00001 diff --git a/etc/recycle.xpm b/etc/recycle.xpm index 6f16863..c5017e5 100644 --- a/etc/recycle.xpm +++ b/etc/recycle.xpm @@ -5,12 +5,9 @@ static char *recycle[] = { " 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 */ " ", " ################### ", diff --git a/etc/sample.emacs b/etc/sample.emacs index 9e14814..3124457 100644 --- a/etc/sample.emacs +++ b/etc/sample.emacs @@ -97,13 +97,14 @@ (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. @@ -153,7 +154,10 @@ ;; 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) @@ -169,9 +173,9 @@ (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) - (set-glyph-property continuation-glyph 'face 'bold)) + (make-face-bold (glyph-face continuation-glyph))) ;; Change the pointer used during garbage collection. ;; diff --git a/etc/xemacs.1 b/etc/xemacs.1 index c07a7af..e86dce2 100644 --- a/etc/xemacs.1 +++ b/etc/xemacs.1 @@ -126,7 +126,7 @@ and .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 @@ -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 +.BI \-visual " " +Select the visual that XEmacs will attempt to use. +.I +should be one of the strings "StaticColor", "TrueColor", "GrayScale", +"PseudoColor" or "DirectColor", and +.I +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 @@ -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 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 diff --git a/lib-src/.cvsignore b/lib-src/.cvsignore new file mode 100644 index 0000000..8be3c26 --- /dev/null +++ b/lib-src/.cvsignore @@ -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 diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 738fa34..d90785d 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,3 +1,197 @@ +1999-05-14 XEmacs Build Bot + + * XEmacs 21.2.14 is released + +1999-05-14 SL Baur + + * update-elc.sh (ignore_pattern): Correct ignore_dirs/ignore=dirs + european keyboard fuckage. + +1999-05-03 Hrvoje Niksic + + * update-elc.sh (ignore_pattern): Installation.el is dead. + +1999-05-03 Hrvoje Niksic + + * gnuclient.c: Include instead of <../src/sysfile.h>. + + * Makefile.in.in (cppflags): Add -I$(top_srcdir)/src. + +1999-04-29 Andy Piper + + * 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 + + * 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 + + * XEmacs 21.2.13 is released + +1999-03-10 Martin Buchholz + + * fakemail.c (add_a_stream): Always use full ANSI prototypes. + +1999-03-06 Martin Buchholz + + * 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 + + * XEmacs 21.2.12 is released + +1999-03-01 XEmacs Build Bot + + * XEmacs 21.2.11 is released + +1999-02-17 SL Baur + + * 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 + + * 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 + + * XEmacs 21.2.10 is released + +1999-02-02 XEmacs Build Bot + + * XEmacs 21.2.9 is released + +1999-01-27 Martin Buchholz + + * 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 + + * Makefile.in.in: use ellcc (not ellc) everywhere + +1999-01-10 J. Kean Johnston + + * 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 + + * XEmacs 21.2.8 is released. + +1998-12-24 Martin Buchholz + + * XEmacs 21.2.7 is released. + +1998-12-17 Andy Piper + + * 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 + +1998-12-16 Andy Piper + + * XEmacs 21.2.6 is released + +1998-12-05 XEmacs Build Bot + + * XEmacs 21.2.5 is released + +1998-11-28 SL Baur + + * XEmacs 21.2-beta4 is released. + +1998-10-14 Andy Piper + + * 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 + + * XEmacs 21.2-beta3 is released. + +1998-10-12 SL Baur + + * 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 + + * tm-au: + * tm-file: + * tm-html: + * tm-image: + * tm-mpeg: + * tm-plain: + * tm-ps: + * tmdecode: packaged. + +1998-10-10 SL Baur + + * install-sid: + * send-pr: Packaged + +1998-10-01 Jan Vroonhof + + * gnuclient.c (filename_expand): Don't forget to copy the + filename under UNIX. + +1998-09-29 SL Baur + + * XEmacs 21.2-beta2 is released. + +1998-09-08 Raymond Toy + + * 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 * XEmacs 21.2-beta1 is released. diff --git a/lib-src/Makefile.in.in b/lib-src/Makefile.in.in index d7e6831..9a4552f 100644 --- a/lib-src/Makefile.in.in +++ b/lib-src/Makefile.in.in @@ -53,8 +53,12 @@ exec_prefix=@exec_prefix@ bindir=@bindir@ libdir=@libdir@ srcdir=@srcdir@ +top_srcdir=@top_srcdir@ archlibdir=@archlibdir@ configuration=@configuration@ +moduledir=@moduledir@ +sitemoduledir=@sitemoduledir@ + ## ==================== 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. +#ifdef WINDOWSNT +INSTALLABLES_BASE = etags ctags b2m ootags +#else 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 -INSTALLABLES = $(INSTALLABLES_BASE) runemacs +INSTALLABLES = $(INSTALLABLES_BASE) runxemacs rungnuclient #else INSTALLABLES = $(INSTALLABLES_BASE) #endif +#endif ## 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 +#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. -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 -SCRIPTS = $(GEN_SCRIPTS) $(TM_SCRIPTS) $(PKG_SCRIPTS) +SCRIPTS = $(GEN_SCRIPTS) $(PKG_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. -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) @@ -230,8 +251,8 @@ mostlyclean: 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) *~ \#* @@ -270,15 +291,30 @@ etags_deps = ${srcdir}/etags.c $(GETOPTDEPS) regex.o ../src/config.h 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 \ @@ -311,8 +347,10 @@ sorted-doc: ${srcdir}/sorted-doc.c 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 $@ diff --git a/lib-src/aixcc.lex b/lib-src/aixcc.lex new file mode 100644 index 0000000..b7b4470 --- /dev/null +++ b/lib-src/aixcc.lex @@ -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 +#include + +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 */ +} + +[^\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; +} + +[^\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; +} + +[^\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); + } +} diff --git a/lib-src/config.values.in b/lib-src/config.values.in index 6e2c24b..a816455 100644 --- a/lib-src/config.values.in +++ b/lib-src/config.values.in @@ -43,6 +43,8 @@ LN_S "@LN_S@" LOCKDIR "@LOCKDIR@" LOCKDIR_USER_DEFINED "@LOCKDIR_USER_DEFINED@" MAKE_SUBDIR "@MAKE_SUBDIR@" +MODULEDIR "@MODULEDIR@" +MODULEDIR_USER_DEFINED "@MODULEDIR_USER_DEFINED@" PACKAGE_PATH "@PACKAGE_PATH@" PACKAGE_PATH_USER_DEFINED "@PACKAGE_PATH_USER_DEFINED@" PREFIX "@PREFIX@" @@ -50,8 +52,13 @@ PROGNAME "@PROGNAME@" RANLIB "@RANLIB@" RECURSIVE_MAKE "@RECURSIVE_MAKE@" SET_MAKE "@SET_MAKE@" +SITELISPDIR "@SITELISPDIR@" +SITELISPDIR_USER_DEFINED "@SITELISPDIR_USER_DEFINED@" +SITEMODULEDIR "@SITEMODULEDIR@" +SITEMODULEDIR_USER_DEFINED "@SITEMODULEDIR_USER_DEFINED@" SRC_SUBDIR_DEPS "@SRC_SUBDIR_DEPS@" SUBDIR_MAKEFILES "@SUBDIR_MAKEFILES@" +XEMACS_CC "@XEMACS_CC@" X_CFLAGS "@X_CFLAGS@" X_EXTRA_LIBS "@X_EXTRA_LIBS@" X_LIBS "@X_LIBS@" @@ -70,8 +77,9 @@ configure_input "@configure_input@" datadir "@datadir@" dll_cflags "@dll_cflags@" dll_ld "@dll_ld@" -dll_lflags "@dll_lflags@" -dll_oflags "@dll_oflags@" +dll_ldflags "@dll_ldflags@" +dll_ldo "@dll_ldo@" +dll_post "@dll_post@" dnd_objs "@dnd_objs@" docdir "@docdir@" dynodump_arch "@dynodump_arch@" @@ -102,6 +110,7 @@ lockdir "@lockdir@" lwlib_objs "@lwlib_objs@" machfile "@machfile@" mandir "@mandir@" +moduledir "@moduledir@" 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@" +sitelispdir "@sitelispdir@" +sitemoduledir "@sitemoduledir@" sound_cflags "@sound_cflags@" srcdir "@srcdir@" start_files "@start_files@" diff --git a/lib-src/fakemail.c b/lib-src/fakemail.c index 22cb1ab..5397d7c 100644 --- a/lib-src/fakemail.c +++ b/lib-src/fakemail.c @@ -24,9 +24,9 @@ Boston, MA 02111-1307, USA. */ #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 -main () +main (int argc, char *argv[]) { return 0; } @@ -34,7 +34,7 @@ main () #include #include 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 @@ -48,7 +48,7 @@ main () #else /* not BSD 4.2 (or newer) */ #ifdef MSDOS int -main () +main (int argc, char *argv[]) { return 0; } @@ -100,11 +100,11 @@ struct header_record struct header_record *previous; }; typedef struct header_record *header; - + struct stream_record { FILE *handle; - int (*action)(); + int (*action)(FILE *); 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 * -xmalloc (size) - size_t size; +xmalloc (size_t size) { char *result = malloc (((unsigned) size)); if (result == ((char *) NULL)) @@ -201,9 +200,7 @@ xmalloc (size) } 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)) @@ -221,7 +218,7 @@ init_linebuffer (struct linebuffer *linebuffer) } /* Read a line of text from `stream' into `linebuffer'. - * Return the length of the line. + * Return the length of the line. */ static long @@ -263,14 +260,17 @@ get_keyword (register char *field, char **rest) 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'; - 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]; } @@ -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'; +#ifdef WINDOWSNT + temp = "(null)"; +#else temp = cuserid ((char *) NULL); +#endif 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 -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 (); @@ -553,7 +557,7 @@ parse_header (header the_header, register char *where) *where = '\0'; return; } - + static header read_header (void) { @@ -624,9 +628,7 @@ write_header (header the_header) } int -main (argc, argv) - int argc; - char **argv; +main (int argc, char *argv[]) { 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]); - + the_pipe = popen (command_line, "w"); if (the_pipe == ((FILE *) NULL)) fatal ("cannot open pipe to real mailer", (char *) 0); diff --git a/lib-src/gnuclient.c b/lib-src/gnuclient.c index a89641f..1902691 100644 --- a/lib-src/gnuclient.c +++ b/lib-src/gnuclient.c @@ -48,6 +48,8 @@ static char rcsid [] = "!Header: gnuclient.c,v 2.2 95/12/12 01:39:21 wing nene ! #include #include #include +#define DONT_ENCAPSULATE +#include #ifdef HAVE_STRING_H #include @@ -89,7 +91,9 @@ tell_emacs_to_resume (int sig) /* Why is SYSV so retarded? */ /* We want emacs to realize that we are resuming */ +#ifdef SIGCONT signal(SIGCONT, tell_emacs_to_resume); +#endif connect_type = make_connection (NULL, (u_short) 0, &s); @@ -129,8 +133,10 @@ initialize_signals () signal (SIGWINCH, pass_signal_to_emacs); #endif +#ifdef SIGCONT /* 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'; - 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 ":" + to "///". */ + 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); @@ -188,10 +223,9 @@ filename_expand (char *fullpath, char *filename) ; /* 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 @@ -525,7 +559,7 @@ main (int argc, char *argv[]) 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); } diff --git a/lib-src/gnudepend.pl b/lib-src/gnudepend.pl index 7b85080..2400068 100755 --- a/lib-src/gnudepend.pl +++ b/lib-src/gnudepend.pl @@ -1,4 +1,4 @@ -#!/usr/local/bin/perl +#!/usr/bin/perl while (<>) { diff --git a/lib-src/gnuserv.c b/lib-src/gnuserv.c index 39f9147..ddce69c 100644 --- a/lib-src/gnuserv.c +++ b/lib-src/gnuserv.c @@ -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, @@ -832,9 +832,7 @@ handle_unix_request (int ls) int -main(argc,argv) - int argc; - char *argv[]; +main (int argc, char *argv[]) { int chan; /* temporary channel number */ #ifdef SYSV_IPC @@ -867,7 +865,7 @@ main(argc,argv) #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 diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c index 2db8dc8..e28e38e 100644 --- a/lib-src/make-docfile.c +++ b/lib-src/make-docfile.c @@ -1,6 +1,7 @@ /* 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. @@ -50,8 +51,6 @@ Boston, MA 02111-1307, USA. */ #include #endif -#include - #if defined(MSDOS) || defined(__CYGWIN32__) #include #endif /* MSDOS */ @@ -62,6 +61,8 @@ Boston, MA 02111-1307, USA. */ #include #endif /* WINDOWSNT */ +#include + #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; +/* 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 @@ -213,6 +217,12 @@ main (int argc, char **argv) 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]); @@ -227,6 +237,9 @@ main (int argc, char **argv) if (outfile == 0) fatal ("No output file specified", ""); + if (ellcc) + fprintf (outfile, "{\n"); + first_infile = i; for (; i < argc; i++) { @@ -249,6 +262,8 @@ main (int argc, char **argv) } putc ('\n', outfile); + if (ellcc) + fprintf (outfile, "}\n\n"); #ifndef VMS exit (err_count > 0); #endif /* VMS */ @@ -262,12 +277,12 @@ static int 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); } - 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); @@ -314,7 +329,11 @@ read_c_string (FILE *infile, int printflag, int c_docstring) if (start != -1) { if (printflag > 0) - putc ('\n', outfile); + { + if (ellcc) + fprintf (outfile, "\\n\\"); + putc ('\n', outfile); + } else if (printflag < 0) *p++ = '\n'; } @@ -339,8 +358,11 @@ read_c_string (FILE *infile, int printflag, int c_docstring) else { start = 0; - if (printflag > 0) + if (printflag > 0) { + if (ellcc && c == '"') + putc ('\\', outfile); putc (c, outfile); + } 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 } - putc ('\n', out); /* XEmacs addition */ + if (!ellcc) + putc ('\n', out); /* XEmacs addition */ } /* 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 == '"') { - 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 @@ -673,9 +702,14 @@ scan_c_file (CONST char *filename, CONST char *mode) 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); } + if (ellcc) + fprintf (outfile, "\\n\");\n\n"); } } eof: @@ -1032,7 +1066,7 @@ scan_lisp_file (CONST char *filename, CONST char *mode) 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; diff --git a/lib-src/make-msgfile.c b/lib-src/make-msgfile.c index 118dd1f..31b9379 100644 --- a/lib-src/make-msgfile.c +++ b/lib-src/make-msgfile.c @@ -69,7 +69,7 @@ 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") @@ -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: ".) - 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" ... ) @@ -109,7 +109,7 @@ 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? @@ -124,7 +124,7 @@ 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 diff --git a/lib-src/make-msgfile.lex b/lib-src/make-msgfile.lex index 957a8b5..21a050a 100644 --- a/lib-src/make-msgfile.lex +++ b/lib-src/make-msgfile.lex @@ -134,7 +134,7 @@ Boston, MA 02111-1307, USA. */ 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") @@ -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: ".) - 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" ... ) @@ -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 - `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? @@ -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 - program recognise lines of the form + program recognize lines of the form "string" ... ;###translate diff --git a/lib-src/movemail.c b/lib-src/movemail.c index 0419719..19793a3 100644 --- a/lib-src/movemail.c +++ b/lib-src/movemail.c @@ -55,22 +55,30 @@ Boston, MA 02111-1307, USA. */ */ #define NO_SHORTNAMES /* Tell config not to load remap.h */ +#define DONT_ENCAPSULATE #include <../src/config.h> #include #include -#include #include #include +#include "../src/sysfile.h" #include "../src/syswait.h" +#ifndef WINDOWSNT #include "../src/systime.h" +#endif #include #include +#include "getopt.h" #ifdef MAIL_USE_POP #include "pop.h" +#include "../src/regex.h" #endif +extern char *optarg; +extern int optind, opterr; + #ifndef HAVE_STRERROR -static char * strerror (int errnum); +char * strerror (int errnum); #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 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; +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[]) { - char *inname, *outname; + char *inname=0, *outname=0, *poppass=0; #ifndef DISABLE_DIRECT_ACCESS int indesc, outdesc; int nread; @@ -172,14 +208,72 @@ main (int argc, char *argv[]) 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]); @@ -210,11 +304,13 @@ main (int argc, char *argv[]) #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); } +#ifndef WINDOWSNT setuid (getuid ()); +#endif #endif /* MAIL_USE_POP */ #ifndef DISABLE_DIRECT_ACCESS @@ -487,9 +583,9 @@ xmalloc (unsigned int size) #include #include -#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; @@ -502,11 +598,13 @@ static int popmail (char *user, char *outfile, char *password) { int nmsgs, nbytes; - register int i; + register int i, idx; int mbfi; + short* retrieved_list; FILE *mbf; popserver server; + VERBOSE(("opening server\r")); server = pop_open (0, user, password, POP_NO_GETPASS); if (! server) { @@ -514,6 +612,7 @@ popmail (char *user, char *outfile, char *password) return (1); } + VERBOSE(("stat'ing messages\r")); if (pop_stat (server, &nmsgs, &nbytes)) { error (pop_error, NULL, NULL); @@ -522,10 +621,15 @@ popmail (char *user, char *outfile, char *password) if (!nmsgs) { + VERBOSE(("closing server\n")); 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) { @@ -533,7 +637,7 @@ popmail (char *user, char *outfile, char *password) error ("Error in open: %s, %s", strerror (errno), outfile); return (1); } -#ifndef __CYGWIN32__ +#if !defined(__CYGWIN32__) && !defined(WINDOWSNT) fchown (mbfi, getuid (), -1); #endif @@ -546,23 +650,35 @@ popmail (char *user, char *outfile, char *password) 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); } - 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); @@ -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'; - return (NOTOK); + return (POP_ERROR); } 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 ((*action)(line, arg) != OK) + if ((*action)(line, arg) != POP_RETRIEVED) { 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'; - 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. */ @@ -654,35 +824,61 @@ mbx_write (char *line, FILE *mbf) if (IS_FROM_LINE (line)) { if (fputc ('>', mbf) == EOF) - return (NOTOK); + return (POP_ERROR); } if (fputs (line, mbf) == EOF) - return (NOTOK); + return (POP_ERROR); 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) - return (NOTOK); - return (OK); + return (POP_ERROR); + return (POP_RETRIEVED); } 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 */ #ifndef HAVE_STRERROR -static char * +char * strerror (int errnum) { extern char *sys_errlist[]; diff --git a/lib-src/pop.c b/lib-src/pop.c index 728d1ca..bbec8ab 100644 --- a/lib-src/pop.c +++ b/lib-src/pop.c @@ -38,7 +38,6 @@ Boston, MA 02111-1307, USA. */ #include #ifdef WINDOWSNT -#include "ntlib.h" #include #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 #include #include "../src/syswait.h" +#ifndef WINDOWSNT #include "../src/systime.h" +#endif #include #include @@ -183,6 +184,7 @@ pop_open (char *host, char *username, char *password, int flags) username = getenv ("USER"); if (! (username && *username)) { +#ifndef WINDOWSNT username = getlogin (); if (! (username && *username)) { @@ -198,6 +200,10 @@ pop_open (char *host, char *username, char *password, int flags) 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)) { +#ifndef WINDOWSNT if (! (flags & POP_NO_GETPASS)) { password = getpass ("Enter POP password:"); } +#endif 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 index 0000000..258d606 --- /dev/null +++ b/lib-src/process-depends.sh @@ -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 index 0000000..b08a916 --- /dev/null +++ b/lib-src/process-gnu-depends.sh @@ -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 diff --git a/lib-src/profile.c b/lib-src/profile.c index 5644d21..ec62ebb 100644 --- a/lib-src/profile.c +++ b/lib-src/profile.c @@ -41,6 +41,25 @@ static struct timeval TV1, TV2; static int watch_not_started = 1; /* flag */ static char time_string[30]; +#ifdef WINDOWSNT +#include +/* 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 diff --git a/lib-src/pstogif b/lib-src/pstogif index 9ff1cbf..7ddbcd3 100755 --- a/lib-src/pstogif +++ b/lib-src/pstogif @@ -59,7 +59,7 @@ $GS= $ENV{'GS'} || 'gs'; #$PSTOPPM= $ENV{'PSTOPPM'} || # 'pstoppm.ps'; -# Available in the PBMPLUS libary +# Available in the PBMPLUS library $PNMCROP=$ENV{'PNMCROP'} || 'pnmcrop' ; # Also in PBMPLUS diff --git a/lib-src/rcs2log b/lib-src/rcs2log index 8fa12d9..2a9e7d1 100755 --- a/lib-src/rcs2log +++ b/lib-src/rcs2log @@ -28,7 +28,7 @@ Options: Report bugs to .' -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. diff --git a/lib-src/run.c b/lib-src/run.c index f3830ed..86830ba 100644 --- a/lib-src/run.c +++ b/lib-src/run.c @@ -121,7 +121,6 @@ int start_child(char* cmdline, int wait_for_child) { STARTUPINFO start; SECURITY_ATTRIBUTES sec_attrs; - SECURITY_DESCRIPTOR sec_desc; 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; - int len = 0; /* * 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 *recursive_name; int foundit = FALSE; returnval[0] = '\0'; diff --git a/lib-src/run.h b/lib-src/run.h new file mode 100644 index 0000000..896dc5c --- /dev/null +++ b/lib-src/run.h @@ -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 index 0000000..35ec240 --- /dev/null +++ b/lib-src/run.rc @@ -0,0 +1,30 @@ +XEmacs ICON PRELOAD "xemacs.ico" +XEmacsFile ICON "file.ico" +XEmacsLisp ICON "lisp.ico" + +#include +#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 diff --git a/lib-src/sorted-doc.c b/lib-src/sorted-doc.c index 89ecafd..b7c3baa 100644 --- a/lib-src/sorted-doc.c +++ b/lib-src/sorted-doc.c @@ -224,7 +224,8 @@ main (int argc, char *argv[]) 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"); @@ -237,6 +238,7 @@ main (int argc, char *argv[]) printf ("@chardef@@64\n"); printf ("@catcode43=12\n"); printf ("@tableindent-0.2in\n"); + printf ("@end iftex\n"); /* print each function from the array */ @@ -260,6 +262,7 @@ main (int argc, char *argv[]) putchar ('\n'); } printf("@end display\n"); + if ( i%200 == 0 && i != 0 ) printf("@end table\n\n@table @asis\n"); } printf ("@end table\n"); diff --git a/lib-src/update-autoloads.sh b/lib-src/update-autoloads.sh index 6af202c..ee56e65 100644 --- a/lib-src/update-autoloads.sh +++ b/lib-src/update-autoloads.sh @@ -43,14 +43,24 @@ echo " (using $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() - { + { /bin/echo $* '\c' } else diff --git a/lib-src/update-custom.sh b/lib-src/update-custom.sh index 7e0a2ea..dd62a86 100755 --- a/lib-src/update-custom.sh +++ b/lib-src/update-custom.sh @@ -45,13 +45,20 @@ echo " (using $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() - { + { /bin/echo $* '\c' } else @@ -62,12 +69,7 @@ else fi # Compute patterns to ignore when searching for files -# These directories don't have customizations, or are partially broken. -# If some of the packages listed here are customized, don't forget to -# remove the directory! -ignore_dirs="cl egg eos its language locale sunpro term \ -tooltalk iso electric \ -hm--html-menus gnats pcl-cvs vm" +ignore_dirs="" # Only use Mule XEmacs to build Mule-specific autoloads & custom-loads. echon "Checking for Mule support..." @@ -75,7 +77,7 @@ 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 - ignore_dirs="$ignore_dirs mule leim skk" + ignore_dirs="$ignore_dirs mule" else echo Yes fi diff --git a/lib-src/update-elc.sh b/lib-src/update-elc.sh index f0cfc45..5d3f461 100644 --- a/lib-src/update-elc.sh +++ b/lib-src/update-elc.sh @@ -60,12 +60,24 @@ else } fi -REAL=`cd \`dirname $EMACS\` ; pwd | sed 's|^/tmp_mnt||'`/`basename $EMACS` -BYTECOMP="$REAL -batch -vanilla " -echo "Recompiling in `pwd|sed 's|^/tmp_mnt||'`" +EMACS_DIR=`cd \`dirname $EMACS\` && pwd`; +CANON_PWD=`pwd` +# Account for various system automounter configurations +if test -d "/net"; then + if test -d "/tmp_mnt/net"; then tdir="/tmp_mnt/net"; else tdir="/tmp_mnt"; fi + EMACS_DIR=`echo "$EMACS_DIR" | \ + sed -e "s|^${tdir}/|/net/|" -e "s|^/a/|/net/|" -e "s|^/amd/|/net/|"` + CANON_PWD=`echo "$CANON_PWD" | \ + sed -e "s|^${tdir}/|/net/|" -e "s|^/a/|/net/|" -e "s|^/amd/|/net/|"` +fi +REAL="$EMACS_DIR/`basename $EMACS`" + +echo "Recompiling in $CANON_PWD" echo " with $REAL..." -$EMACS -batch -vanilla -l `pwd`/lisp/cleantree -f batch-remove-old-elc lisp +BYTECOMP="$REAL -batch -vanilla " + +$EMACS -batch -vanilla -l $CANON_PWD/lisp/cleantree -f batch-remove-old-elc lisp prune_vc="( -name '.*' -o -name SCCS -o -name RCS -o -name CVS ) -prune -o" @@ -94,11 +106,7 @@ lisp_prog='(princ (featurep (quote mule)))' 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 @@ -168,7 +176,6 @@ ignore_pattern="$ignore_pattern"' \!/site-init.el$!d \!/version.el$!d \!/very-early-lisp.el$!d -\!/Installation.el$!d ' echo "Compiling files without .elc..." diff --git a/lib-src/yow.c b/lib-src/yow.c index f5b7410..6a76772 100644 --- a/lib-src/yow.c +++ b/lib-src/yow.c @@ -9,6 +9,7 @@ /* Synched up with: FSF 19.28. */ +#define DONT_ENCAPSULATE #include <../src/config.h> #include diff --git a/lisp/.cvsignore b/lisp/.cvsignore new file mode 100644 index 0000000..a7ad904 --- /dev/null +++ b/lisp/.cvsignore @@ -0,0 +1 @@ +finder-inf.el diff --git a/lisp/ChangeLog b/lisp/ChangeLog index c2f1b30..a8c5f60 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,1378 @@ +1999-05-14 XEmacs Build Bot + + * XEmacs 21.2.14 is released + +1999-05-13 SL Baur + + * about.el: update contact info for jason and slb. + +1999-05-13 SL Baur + + * mule/european.el (setup-romanian-environment): Add Romanian + support from Emacs/Mule romanian.el. + +1999-03-17 Jan Vroonhof + + * 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 + + * mule/european.el (setup-czech-environment): Add czech support. + From David Sauer + +1999-03-15 SL Baur + + * check-features.el: Turn hard errors into warnings. + +1999-03-21 SL Baur + + * simple.el (delete-key-deletes-forward): As per discussion on + xemacs-beta, default to t. + +1999-05-11 Hrvoje Niksic + + * loadup.el: Define Installation-string before loading anything. + +1999-05-06 Gunnar Evermann + + * files.el (auto-mode-alist): fix typo in regex for .bash_* files + From Anders Stenman + +1999-05-03 Hrvoje Niksic + + * 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 + + * packages.el (packages-unbytecompiled-lisp): Installation.el is + dead. + +1999-05-03 Hrvoje Niksic + + * dumped-lisp.el (preloaded-file-list): Don't load + Installation.el. + + * loadup.el (Installation-string): Define it here. + +1999-05-03 Hrvoje Niksic + + * 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 + + * 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 + + * 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 + + * subr.el (buffer-string): Support new FSFmacs 20.4 stuff. + +1999-04-08 MORIOKA Tomohiko + + * 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 + + * 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 + + * mule/ethiopic.el: fixed. + +1999-03-30 MORIOKA Tomohiko + + * 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 + + * bytecomp.el (byte-compile-close-variables): Leave + debug-issue-ebola-notices alone. + +1999-04-11 Oscar Figueiredo + + * 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 + + * startup.el (splash-frame-body): Date and spelling fixes. + +1999-03-16 Colin Rafferty + + * view-less.el (toggle-truncate-lines): add autoload tag + +1999-04-19 Hrvoje Niksic + + * format.el (format-alist): Disable image stuff. + +1999-04-17 Hrvoje Niksic + + * 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 + + * 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 + + * x-faces.el (x-make-font-bold-italic): honor + *try-oblique-before-italic-fonts* + +1999-04-14 Hrvoje Niksic + + * cl-extra.el (coerce): Coerce numbers to characters correctly. + +1998-12-02 Hrvoje Niksic + + * x-faces.el (try-oblique-before-italic-fonts): Use the right + name. + +1999-04-14 Dave Gillesipe + + * cl-extra.el (equalp): Would bug out for lists. + +1999-03-12 Charles G Waldman + + * about.el (about-hackers): Change cgw's email address + +1999-03-12 XEmacs Build Bot + + * XEmacs 21.2.13 is released + +1999-03-12 SL Baur + + * simple.el (delete-key-deletes-forward): Revert to previous + behavior. + +1999-01-18 Didier Verna + + * 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 + + * 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 + + * 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 + + * 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 + + * XEmacs 21.2.12 is released + +1999-03-05 SL Baur + + * menubar-items.el (default-menubar): Add kfm browsing support. + From Neal Becker + +1999-03-03 Steven Baur + + * font-lock.el (font-lock-revert-cleanup): Null out to avoid repeated + calls to font-lock during buffer reversion. + +1999-02-12 Didier Verna + + * info.el (Info-build-node-completions): unconditionally widen the + tag table buffer. + +1999-02-19 Paul Stodghill + + * x-faces.el (x-init-face-from-resources): + Only set fonts in the 'x locale. + +1999-03-04 Adrian Aichner + + * 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 + + * menubar-items.el (default-menubar): + Implement the ``Mule->Set coding system of process'' menu item. + +1999-02-18 Martin Buchholz + + * 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 + + * XEmacs 21.2.11 is released + +1999-02-22 Jan Vroonhof + + * 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 + + * mule/mule-charset.el (charset-leading-byte): New function. + From Kazuyuki IENAGA + +1999-02-12 Andy Piper + + * 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 + + * dumped-lisp.el (preloaded-file-list): Core mule files moved out + of mule-base into lisp/mule. + +1999-02-16 SL Baur + + * 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 + + * process.el (exec-to-string): Use `shell-command-switch' in place + of hard-wired "-c" (for WindowsNT). + +1999-02-08 Charles G Waldman + + * menubar-items.el (default-menubar): Remove obsolete + "Gopher" item + +1999-02-06 Jan Vroonhof + + * 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 + + * paths.el: + - improved automounter tmp directory support. + - support 4 (!) empirically discovered automounter conventions + +1999-02-12 SL Baur + + * etags.el (pop-tag-mark): autoload to match key binding. + +1999-02-05 XEmacs Build Bot + + * XEmacs 21.2.10 is released + +1999-02-02 Jan Vroonhof + + * 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 + + * XEmacs 21.2.9 is released + +1999-01-19 Didier Verna + + * 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 + + * select.el (selection-owner-p): use the name `XEmacs'. + (cut-copy-clear-internal): ditto. + +1999-01-18 Andy Piper + + * about.el (about-url-alist): Update my entry. + (xemacs-hackers): Ditto. + +1999-01-14 Adrian Aichner + + * buffer.el (switch-to-buffer): Fixing documentation. + * minibuf.el (minibuffer-completion-table): ditto. + * cl-macs.el (return-from): ditto. + +1999-01-04 Didier Verna + + * 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 + + * 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 + + * package-get.el: changed address for doc.ic.ac.uk to + sunsite.doc.ic.ac.uk + +1999-01-09 Oscar Figueiredo + + * 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 + + * 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 + + * 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 + + * 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 + + * mouse.el (default-mouse-motion-handler): Disable help echo while + in the minibuffer. + +1998-12-28 Martin Buchholz + + * XEmacs 21.2.8 is released. + +1998-12-24 Martin Buchholz + + * XEmacs 21.2.7 is released. + +1998-12-07 Jan Vroonhof + + * 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 + + * hyper-apropos.el (hyper-where-is): added the missing autoload. + +1998-11-29 Oscar Figueiredo + + * 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 + + * isearch-mode.el (isearch-mode): Really fix keymap lossage. + +1998-12-17 Andy Piper + + * 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 + + * XEmacs 21.2.6 is released + +1998-11-30 Hrvoje Niksic + + * cus-dep.el (Custom-make-dependencies): Be smarter about trapping + errors. + +1998-12-04 Hrvoje Niksic + + * wid-edit.el (widget-echo-this-extent): Set + help-echo-owns-message to t. + +1998-11-30 Greg Klanderman + + * package-get.el (package-get-download-menu): use toggles for + each site in the download site menu. + +1998-12-01 Jan Vroonhof + + * 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 + + * package-get.el (package-get-remote-filename): use an EFS path + with user anonymous if no user is specified. + +1998-12-10 Jan Vroonhof + + * faces.el (face-spec-set): Re-init fallfacks for default after + calling reset-face on the default face. + +1998-12-10 Jan Vroonhof + + * 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 + + * XEmacs 21.2.5 is released + +1998-12-05 SL Baur + + * files.el (binary-file-regexps): regexp-opt is not available at + bytecompile time. + +1998-11-30 Martin Buchholz + + * 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 + + * XEmacs 21.2-beta4 is released. + +1998-11-27 Jan Vroonhof + + * 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 + + * isearch-mode.el (isearch-mode): Fix keymap lossage. + +1998-11-26 Jan Vroonhof + + * faces.el (get-custom-frame-properties): Revert Hrvoje Niksic change + of Dec 4, 1997. + +1998-11-25 Hrvoje Niksic + + * process.el (shell-command-on-region): Report if the command + succeeded or failed. + +1998-11-24 Hrvoje Niksic + + * subr.el (buffer-substring-no-properties): Comment out. + +1998-11-07 Adrian Aichner + + * 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 + + * package-ui.el (pui-install-selected-packages): fix args in call + to `package-get'. + +1998-10-29 Jan Vroonhof + + * 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 + + * 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 + + * 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 + + * 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 + + * wid-edit.el (widget-button-click): Don't switch window. + +1998-10-22 Jan Vroonhof + + * cus-face.el (custom-set-face-update-spec): Add autoload cookie + +1998-10-20 Malcolm Box + + * etags.el (find-tag-default): Run find-tag-hook using + run-hooks rather than funcall + +1998-10-19 Hrvoje Niksic + + * 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 + + * XEmacs 21.2-beta3 is released. + +1998-10-15 Greg Klanderman + + * package-get.el (package-get-update-base): use + insert-file-contents-internal, not insert-file-contents-literally. + +1998-10-14 Jan Vroonhof + + * auto-save.el: expand-file 'auto-save-*-dir' at runtime not at + dump time. + +1998-10-15 Greg Klanderman + + * 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 + + * 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 + + * 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 + + * package-ui.el: Correct obvious thinko in choosing extent face. + +1998-10-12 Jan Vroonhof + + * 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 + + * 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 + + * events.el: Remove 'ascii-character property from 'backspace + and 'delete symbols + +1998-10-11 SL Baur + + * package-get-base.el: removed. + +1998-09-23 Didier Verna + + * 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 + + * x-font-menu.el (font-menu-set-font): Respect font-menu-frame-local + +1998-10-07 Greg Klanderman + + * 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 + + * package-get.el (package-get-all): add INSTALL-DIR argument. + +1998-10-06 Greg Klanderman + + * 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 + + * isearch-mode.el (isearch-done): Use regexp-search-ring-max for + regexps. + +1998-10-05 Hrvoje Niksic + + * mouse.el (default-mouse-track-point-at-opening-quote-p): New + function. + (default-mouse-track-normalize-point): Use it. + +1998-09-30 Jan Vroonhof + + * 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 + + * 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 + + * XEmacs 21.2-beta2 is released. + +1998-08-14 Jan Vroonhof + + * files.el (auto-mode-alist): Enhanced regexp for perl-mode + +1998-09-22 Karl M. Hegbloom + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * package-get.el (package-get-remote): Fix the path where to find + the packages on xemacs.org. + +1998-09-08 Hrvoje Niksic + + * about.el (about-maintainer-info): Update Ben's entry. + +1998-09-24 Martin Buchholz + + * 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 + + * 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. 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 + + * files.el (find-file-noselect): Handle all signals, kill the + buffer and resignal. + +1998-09-23 SL Baur + + * cl-macs.el (glyph-image): Add setf method. + +1998-09-06 Darryl Okahata + + * 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 + + * x-font-menu.el (font-menu-set-font): Add "pt" units to size + argument. + +1998-09-03 Darryl Okahata + + * 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 + + * startup.el (load-init-file): spelling fix. + +1998-09-02 Michael Sperber [Mr. Preprocessor] + + * startup.el (normal-top-level): Load auto-autoload files + covariantly with their precedence. + +1998-08-26 Jan Vroonhof + + * 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 + + (custom-face-value-create): Show the customized settings if set + but not saved. + +1998-08-31 Hrvoje Niksic + + * keydefs.el (global-map): Add FSF 20.3 binding of + query-replace-regexp. + +1998-08-21 Greg Klanderman + + * minibuf.el (read-file-name-internal-1): use + user-name-completion-1 instead of user-name-completion. + +1998-08-19 Michael Sperber [Mr. Preprocessor] + + * 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 + + * about.el (about-hackers): new email + +1998-08-16 SL Baur + + * lisp-mode.el (with-string-as-buffer-contents): Set indentation. + +1998-07-17 Didier Verna + + * 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] + + * 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] + + * packages.el (packages-data-path-depth): Added and used. + +1998-08-05 Charles G. Waldman + + * 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 + + * x-init.el (x-initialize-compose): Add support for + dead-circumflex as YET ANOTHER NAME for that dead key. + +1998-08-05 Colin Rafferty + + * 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 + + * startup.el(startup-splash-frame-body): + Update Copyright notice in splash screen + +1998-07-20 Greg Klanderman + + * minibuf.el (read-file-name-internal-1): do ~user completion. + +1998-07-22 Jan Vroonhof + + * font-lock.el (font-lock-fontify-glumped-region): Add guard + aginst destroyed extents + +1998-07-24 Greg Klanderman + + * package-get.el (package-get): add `install-dir' argument. + +1998-07-20 John Jones + + * package-get.el: calls to package-get-update-all will only + update packages which are already installed. + +1998-07-23 SL Baur + + * autoload.el (update-file-autoloads): Ensure autoloads buffer is + writable. + +1998-07-20 Colin Rafferty + + * about.el (about-hackers): Correct my email. + +1998-07-20 Kai Haberzettl + + * about.el (about-hackers): new email-address. + +1998-07-25 SL Baur + + * minibuf.el (read-number): Don't let `input-error' condition + escape. + +1998-07-20 Greg Klanderman + + * about.el (about-hackers): use my `email-for-life' address. + 1998-07-19 SL Baur * XEmacs 21.2-beta1 is released. diff --git a/lisp/about.el b/lisp/about.el index e2f0176..9fcddb2 100644 --- a/lisp/about.el +++ b/lisp/about.el @@ -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 -;; 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'. @@ -58,13 +58,14 @@ '((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") - (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") @@ -79,7 +80,7 @@ (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") @@ -87,7 +88,7 @@ (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")) @@ -99,8 +100,11 @@ (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/") + (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/") @@ -112,7 +116,7 @@ (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/") @@ -209,7 +213,7 @@ (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" @@ -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. - (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 @@ -529,45 +533,22 @@ contributed to the XEmacs development from late 1994 to early (if (memq (device-class) '(color grayscale)) "" "m") - ".xpm") + ".png") (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 - (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 - (if (featurep 'xpm) - `([xpm :file ,file] + (if (featurep 'png) + `([png :file ,file] [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 "\ -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 "\ @@ -607,26 +583,21 @@ Martin is no longer doing XEmacs for a living, and is Just Another 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 "\ -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, @@ -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. -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 @@ -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 "\ -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. @@ -830,16 +812,13 @@ He has a page at ") (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 @@ -978,8 +957,9 @@ My homepage is ") (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. @@ -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")) + (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. @@ -1041,7 +1031,7 @@ seeing the sights") (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) @@ -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 "\ -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 .\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") + (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) @@ -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 "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") @@ -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 "Greg Klanderman" "greg@alphatech.com") + (print-short "Greg Klanderman" "greg.klanderman@alum.mit.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 "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") @@ -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 "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") @@ -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 "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") @@ -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 "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") @@ -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 "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") @@ -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 "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") @@ -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 "Volker Zell" "vzell@de.oracle.com") (print-short "Daniel Zivkovic" "daniel@canada.sun.com") (print-short "Karel Zuiderveld" "Karel.Zuiderveld@cv.ruu.nl") "\n")) diff --git a/lisp/alist.el b/lisp/alist.el index 6ee8b03..fbd409a 100644 --- a/lisp/alist.el +++ b/lisp/alist.el @@ -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 -;; Version: -;; $Id: alist.el,v 1.1 1997/11/29 20:37:43 steve Exp $ ;; 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 @@ -26,6 +24,7 @@ ;;; 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. @@ -40,6 +39,7 @@ return new alist whose car is the new pair and cdr is 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]" @@ -59,6 +59,7 @@ return new alist whose car is the new pair and cdr is ALIST. ) alist)))) +;;;###autoload (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))) ) +;;;###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))) )) +;;;###autoload (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) +;;;###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, diff --git a/lisp/apropos.el b/lisp/apropos.el index c7857dd..5839194 100644 --- a/lisp/apropos.el +++ b/lisp/apropos.el @@ -309,7 +309,7 @@ Returns list of symbols and documentation found." (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) diff --git a/lisp/auto-autoloads.el b/lisp/auto-autoloads.el index 55a4534..b485276 100644 --- a/lisp/auto-autoloads.el +++ b/lisp/auto-autoloads.el @@ -12,6 +12,35 @@ Describe the True Editor and its minions." t nil) ;;;*** +;;;### (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) + +;;;*** + ;;;### (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 ;;;*** -;;;### (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) @@ -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. -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) @@ -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. -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. @@ -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) +(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 @@ -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" "\ -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) @@ -665,11 +698,15 @@ The format is suitable for use with `easy-menu-define'." nil nil) ;;;*** -;;;### (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-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: @@ -736,7 +773,7 @@ With prefix argument, enable European character display iff arg is positive." t ;;;*** -;;;### (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. @@ -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) +(autoload 'pop-tag-mark "etags" "\ +Go to last tag position. +`find-tag' maintains a mark-stack seperate from the \\[set-mark-command] mark-stack. +This function pops (and moves to) the tag at the top of this stack." t nil) + ;;;*** ;;;### (autoloads (finder-by-keyword) "finder" "lisp/finder.el") @@ -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 -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. @@ -956,7 +998,7 @@ the wrong pattern can dramatically slow things down!") (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.") @@ -1058,7 +1100,7 @@ Prefix arg means just kill any existing server communications subprocess." t nil ;;;*** -;;;### (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 @@ -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) +(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. @@ -1204,7 +1249,88 @@ Install a pre-bytecompiled XEmacs package into package hierarchy." t nil) ;;;*** -;;;### (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 \"\" + file \"filename\" + description \"what this package is about.\" + provides () + requires () + size + md5sum \"\" + file \"filename\" + description \"what this package is about.\" + provides () + requires () + size + md5sum \" (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 - (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 @@ -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) - (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) @@ -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 - (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 diff --git a/lisp/auto-show.el b/lisp/auto-show.el index d8140f5..9e44467 100644 --- a/lisp/auto-show.el +++ b/lisp/auto-show.el @@ -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) - (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 diff --git a/lisp/autoload.el b/lisp/autoload.el index a4b68da..ec70873 100644 --- a/lisp/autoload.el +++ b/lisp/autoload.el @@ -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)))) + ;; 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) diff --git a/lisp/buffer.el b/lisp/buffer.el index 44f9221..c829284 100644 --- a/lisp/buffer.el +++ b/lisp/buffer.el @@ -34,9 +34,9 @@ (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 diff --git a/lisp/build-report.el b/lisp/build-report.el index 1700496..5e33dc5 100644 --- a/lisp/build-report.el +++ b/lisp/build-report.el @@ -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 + (defvar hist) (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." - (mapconcat '(lambda (item) item) + (mapconcat #'identity (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 diff --git a/lisp/byte-optimize.el b/lisp/byte-optimize.el index fe99286..95e7cb4 100644 --- a/lisp/byte-optimize.el +++ b/lisp/byte-optimize.el @@ -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. @@ -39,7 +39,7 @@ ;; 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 @@ -149,7 +149,7 @@ ;; 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 @@ -158,14 +158,14 @@ ;; 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) -;;(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. -;;(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?) @@ -174,20 +174,20 @@ ;; 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) -;;(disassemble (lambda (x) (car (cons (foo) 42)))) +;;(disassemble #'(lambda (x) (car (cons (foo) 42)))) ;; (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) -;;(disassemble (lambda (x) (car (list (foo) 42 (bar))))) +;;(disassemble #'(lambda (x) (car (list (foo) 42 (bar))))) ;; (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: @@ -199,31 +199,32 @@ (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 @@ -238,20 +239,21 @@ (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. @@ -392,27 +394,29 @@ ;; 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 - (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 ) --> (if (cdr (cdr form)) @@ -542,7 +546,7 @@ ;; 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. @@ -564,10 +568,10 @@ (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 - ;; 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) @@ -592,9 +596,10 @@ ;; 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 @@ -899,7 +904,7 @@ ;; 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) @@ -1052,7 +1057,7 @@ (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)) @@ -1122,6 +1127,16 @@ 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 @@ -1134,7 +1149,14 @@ ;; 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 @@ -1147,6 +1169,7 @@ 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! @@ -1161,14 +1184,15 @@ 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) @@ -1326,10 +1350,7 @@ (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)))) @@ -1953,17 +1974,18 @@ (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 diff --git a/lisp/bytecomp-runtime.el b/lisp/bytecomp-runtime.el index 105374a..95d8c31 100644 --- a/lisp/bytecomp-runtime.el +++ b/lisp/bytecomp-runtime.el @@ -55,13 +55,13 @@ They will only be compiled open-coded when `byte-optimize' is true." (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)))) @@ -71,10 +71,10 @@ They will only be compiled open-coded when `byte-optimize' is true." (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. @@ -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))))) - `(let ((bodythunk (function (lambda () ,@body)))) + `(let ((bodythunk #'(lambda () ,@body))) (if (featurep ',(car feature)) (funcall bodythunk) (setq after-load-alist (cons '(,file . (list 'lambda '() bodythunk)) diff --git a/lisp/bytecomp.el b/lisp/bytecomp.el index 95bce46..d8ab789 100644 --- a/lisp/bytecomp.el +++ b/lisp/bytecomp.el @@ -9,7 +9,7 @@ ;; 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. @@ -101,6 +101,8 @@ ;;; '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) @@ -171,7 +173,7 @@ ;;; 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, @@ -210,17 +212,16 @@ 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.") @@ -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))) -(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") @@ -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. -(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)) @@ -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 - '(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 @@ -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. + 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. @@ -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. -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. @@ -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 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'") @@ -770,13 +770,13 @@ otherwise pop it") (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)))) - (setq patchlist (cons bytes patchlist))) + (push bytes patchlist)) (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) - (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) - (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)) - (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") - (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 () - (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)) @@ -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 - ((callargs redefine free-vars unused-vars unresolved)) + ((callargs subr-callargs redefine free-vars unused-vars unresolved)) val))) ;; XEmacs addition @@ -1225,7 +1208,7 @@ otherwise pop it") 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)) @@ -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) - ;; 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 @@ -1275,12 +1258,14 @@ otherwise pop it") (setq unreferenced (cdr unreferenced))))) +(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. - (` (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 @@ -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-file-domain nil) - ) + (byte-compile-file-domain nil)) (prog1 (progn ,@body) (if (memq 'unused-vars byte-compile-warnings) @@ -1321,46 +1305,49 @@ otherwise pop it") (byte-compile-warn-about-unused-variables))))) -(defvar byte-compile-warnings-point-max nil) (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. - (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))))))))))) ;;;###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)))) -(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. @@ -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) - (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)) @@ -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. - (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) @@ -1664,7 +1646,7 @@ With argument, insert value in current buffer after the form." ;; 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))) @@ -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. - (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) - (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) - (if for-effect - (byte-compile-discard))) + (when for-effect + (byte-compile-discard))) (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, -;; 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) @@ -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 - (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 - (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 - (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)) @@ -2145,8 +2128,7 @@ list that represents a doc string reference. (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))) @@ -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 - (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)) - (list (nth 2 fun))) ;doc + (list (nth 2 fun))) ;docstring (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 - (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))))))) @@ -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))) - (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)) @@ -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) - (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)))) @@ -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 -;; 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). @@ -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)) - ;; 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)) @@ -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))) - (if for-effect - (byte-compile-discard))) + (when for-effect + (byte-compile-discard))) (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) - (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))) @@ -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) - (` (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) @@ -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-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) @@ -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) -;; 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) @@ -2954,55 +2925,56 @@ If FORM is a lambda or a macro, byte-compile it as a function." (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) - (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) - (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) - (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) - (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) - (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) - (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) - (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 : 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) - (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) - (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) - (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) - (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) - (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) - (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) - (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) - (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. @@ -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)) +;; 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) - (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)))))) ;; 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) -(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) - (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) - (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) - (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) - (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) - (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) - (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) - (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 () ...)) @@ -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) - (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 - the syntax (function (lambda (...) ...)) instead."))))) + the syntax (function (lambda (...) ...)) instead.")))) (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) - (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 @@ -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) - (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-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. - (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) - (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) - (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) @@ -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-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) - (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) - (` (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))) @@ -3827,7 +3836,7 @@ If FORM is a lambda or a macro, byte-compile it as a function." (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 @@ -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) - (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)) @@ -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) - (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")) ) @@ -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)))) - (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)))) - (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. @@ -3923,19 +3930,19 @@ invoked interactively." (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) - (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) - (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) - (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)))))) @@ -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")) - (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))) @@ -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))) - (mapcar '(lambda (x) (princ " ") (prin1 x)) (cdr err))) + (mapcar #'(lambda (x) (princ " ") (prin1 x)) (cdr err))) (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 '("."))) - (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)))) @@ -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)) - (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 diff --git a/lisp/callers-of-rpt.el b/lisp/callers-of-rpt.el index 8e9c7fc..104e882 100644 --- a/lisp/callers-of-rpt.el +++ b/lisp/callers-of-rpt.el @@ -40,8 +40,8 @@ "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) @@ -91,7 +91,8 @@ (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) diff --git a/lisp/check-features.el b/lisp/check-features.el index 3aa0a82..9596ff7 100644 --- a/lisp/check-features.el +++ b/lisp/check-features.el @@ -39,8 +39,8 @@ (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."))))) @@ -48,8 +48,8 @@ (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."))))) diff --git a/lisp/cl-extra.el b/lisp/cl-extra.el index 0d469a7..8c97ea0 100644 --- a/lisp/cl-extra.el +++ b/lisp/cl-extra.el @@ -48,6 +48,8 @@ ;;; Code: +(eval-when-compile + (require 'obsolete)) (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)) + ((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)))) @@ -106,7 +110,8 @@ strings case-insensitively." (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)) @@ -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) - (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) @@ -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) - (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))) @@ -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)) - (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) - (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)) @@ -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." - (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. @@ -666,142 +671,43 @@ PROPLIST is a list of the sort returned by `symbol-plist'." ;;; 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. diff --git a/lisp/cl-macs.el b/lisp/cl-macs.el index e08a165..db30575 100644 --- a/lisp/cl-macs.el +++ b/lisp/cl-macs.el @@ -78,9 +78,9 @@ (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)))))) @@ -97,12 +97,11 @@ (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)) @@ -455,27 +454,26 @@ Key values are compared by `eql'." (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)))) @@ -507,16 +505,15 @@ final clause, and matches if no other keys match." (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)))) @@ -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. -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." @@ -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) - (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 - (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 @@ -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 - (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)) @@ -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. -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))) @@ -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) - (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)) - (ebody + (ebody (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 '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)) - (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) - (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)))) @@ -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) - (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))) @@ -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)) - (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. @@ -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 - (append (mapcar #'(lambda (v) (cons v 0)) + (append (mapcar #'(lambda (v) (cons v 0)) (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. +(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 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)) @@ -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 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) @@ -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-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)) @@ -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) -(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))) -(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))) @@ -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)) +(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) @@ -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 - 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) @@ -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-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-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) @@ -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) - (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))) @@ -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) - ;; XEmacs change - (include-tag-symbol 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) - (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))) @@ -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) - 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) @@ -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)) - (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) @@ -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) - (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))))) @@ -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) - (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)) @@ -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 - (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 @@ -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." - (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. @@ -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 - (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)))) @@ -2767,45 +2759,49 @@ surrounded by (block NAME ...)." 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 - 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) diff --git a/lisp/cl.el b/lisp/cl.el index 233a476..41a5955 100644 --- a/lisp/cl.el +++ b/lisp/cl.el @@ -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) - (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) @@ -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'." - (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) @@ -225,20 +225,9 @@ Keywords supported: :test :test-not :key" ;;; 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 @@ -406,6 +395,9 @@ SEQ, this is like `mapcar'. With several, it is like the Common Lisp ;;; 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) @@ -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))))) -(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. @@ -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))) -(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))) @@ -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. -(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. diff --git a/lisp/cleantree.el b/lisp/cleantree.el new file mode 100644 index 0000000..17f4680 --- /dev/null +++ b/lisp/cleantree.el @@ -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 +;; 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 + +;;; 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 diff --git a/lisp/cmdloop.el b/lisp/cmdloop.el index 53fd00b..e5b4be0 100644 --- a/lisp/cmdloop.el +++ b/lisp/cmdloop.el @@ -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")) - (setq ans 't)) + (setq ans t)) ((string-equal ans (gettext "no")) - (setq ans 'nil)) + (setq ans nil)) (t (ding nil 'yes-or-no-p) (discard-input) diff --git a/lisp/code-files.el b/lisp/code-files.el index 3ff114b..d74a11c 100644 --- a/lisp/code-files.el +++ b/lisp/code-files.el @@ -57,20 +57,14 @@ global environment specification.") '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)) - ("\\.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) - ("\\.\\(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) ...), @@ -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) - (let ((eol-type + (let ((eol-type (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 ((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) @@ -179,7 +173,7 @@ object (the entry specified a coding system)." (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) @@ -277,7 +271,7 @@ Return t if file exists." (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. @@ -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'." - (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 diff --git a/lisp/code-process.el b/lisp/code-process.el index 7174f97..d96ecea 100644 --- a/lisp/code-process.el +++ b/lisp/code-process.el @@ -30,6 +30,10 @@ ;;; 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) ...), @@ -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) - (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)))) @@ -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." - (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) - (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))))) @@ -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))) - (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))) - (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. @@ -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) - (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))))) @@ -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) - (case-fold-search (eq system-type 'vax-vms)) + (case-fold-search nil) pattern) (while alist (setq pattern (car (car alist))) diff --git a/lisp/config.el b/lisp/config.el index 67d8f8c..6952081 100644 --- a/lisp/config.el +++ b/lisp/config.el @@ -33,13 +33,13 @@ "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 () - "Return hashtable of configuration parameters and their values." + "Return hash table of configuration parameters and their values." (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) diff --git a/lisp/cus-dep.el b/lisp/cus-dep.el index 81cb424..8a05073 100644 --- a/lisp/cus-dep.el +++ b/lisp/cus-dep.el @@ -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. - (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") @@ -167,7 +173,7 @@ Batch usage: xemacs -batch -l cus-dep.el -f Custom-make-dependencies DIRS" (if found (insert " ") (insert "(custom-add-loads '" - (symbol-name sym) " '(")) + (prin1-to-string sym) " '(")) (prin1 where (current-buffer)) (push where found))) (when found diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index 630c5dc..339f262 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el @@ -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. -;; 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 @@ -282,7 +282,7 @@ (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) @@ -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)) - (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 @@ -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 '(") - (princ symbol) + (prin1 symbol) (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 '(") - (princ symbol) + (prin1 symbol) (princ " ") (prin1 value) (if (or (get symbol 'face-defface-spec) diff --git a/lisp/cus-face.el b/lisp/cus-face.el index 09e7771..6be65ba 100644 --- a/lisp/cus-face.el +++ b/lisp/cus-face.el @@ -67,13 +67,17 @@ :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) + (: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) @@ -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) - ;; #### Should make it work on X (: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)) +(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 @@ -178,8 +189,8 @@ If FRAME is nil, use the default face." (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 @@ -215,6 +226,15 @@ If FRAME is nil, use the default face." (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 diff --git a/lisp/custom-load.el b/lisp/custom-load.el index d4da910..54b38b3 100644 --- a/lisp/custom-load.el +++ b/lisp/custom-load.el @@ -10,12 +10,14 @@ (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 'pui '("package-ui")) (custom-add-loads 'terminals '("gnuserv")) (custom-add-loads 'auto-save '("files" "auto-save")) (custom-add-loads 'mail '("simple")) @@ -33,10 +35,12 @@ (custom-add-loads 'help '("help" "cus-edit" "hyper-apropos" "info")) (custom-add-loads 'keyboard '("cmdloop")) (custom-add-loads 'hyper-apropos-faces '("hyper-apropos")) +(custom-add-loads 'ldap '("ldap")) (custom-add-loads 'widget-browse '("wid-browse")) (custom-add-loads 'data '("auto-save")) (custom-add-loads 'warnings '("simple")) (custom-add-loads 'widget-documentation '("wid-edit")) +(custom-add-loads 'comm '("ldap")) (custom-add-loads 'backup '("files")) (custom-add-loads 'frames '("frame" "window-xemacs" "gui" "gnuserv")) (custom-add-loads 'customize '("cus-edit" "wid-edit")) @@ -46,10 +50,12 @@ (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 'font-menu '("x-font-menu")) (custom-add-loads 'files '("files")) (custom-add-loads 'build '("build-report")) (custom-add-loads 'font-lock '("font-lock")) diff --git a/lisp/custom.el b/lisp/custom.el index 5b53d63..77dd59d 100644 --- a/lisp/custom.el +++ b/lisp/custom.el @@ -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)) -;; 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) diff --git a/lisp/derived.el b/lisp/derived.el index 9210fd8..a2c6a5c 100644 --- a/lisp/derived.el +++ b/lisp/derived.el @@ -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))) - (` (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. - ((, parent)) + (,parent) ; 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 - (let ((mode-class (get (quote (, parent)) 'mode-class))) + (let ((mode-class (get (quote ,parent) 'mode-class))) (if mode-class - (put (quote (, child)) 'mode-class mode-class))) + (put (quote ,child) 'mode-class mode-class))) ; 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. - (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). - (,@ body) + ,@body ;;; ; 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. - (derived-mode-run-hooks (quote (, child))))))) + (derived-mode-run-hooks (quote ,child))))) ;; 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 - (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 - (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 - (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." diff --git a/lisp/device.el b/lisp/device.el index 6d40d5f..06bac1c 100644 --- a/lisp/device.el +++ b/lisp/device.el @@ -106,6 +106,29 @@ the toolbar, glyphs, etc." (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) diff --git a/lisp/disass.el b/lisp/disass.el index 2185d19..9992f07 100644 --- a/lisp/disass.el +++ b/lisp/disass.el @@ -39,18 +39,12 @@ ;;; 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 "*") - ;;;###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) - (let ((macro 'nil) - (name 'nil) + (let ((macro nil) + (name nil) args) (while (symbolp obj) (setq name obj @@ -169,8 +163,8 @@ redefine OBJECT if it is a symbol." (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 @@ -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 "(...)\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 diff --git a/lisp/dragdrop.el b/lisp/dragdrop.el index 92d3069..9c46f55 100644 --- a/lisp/dragdrop.el +++ b/lisp/dragdrop.el @@ -51,7 +51,7 @@ text is inserted." (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) @@ -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) - (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)) @@ -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." - (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) diff --git a/lisp/dump-paths.el b/lisp/dump-paths.el index 81e4de3..10117d5 100644 --- a/lisp/dump-paths.el +++ b/lisp/dump-paths.el @@ -67,6 +67,20 @@ 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 diff --git a/lisp/dumped-lisp.el b/lisp/dumped-lisp.el index cbbecfb..07c67ce 100644 --- a/lisp/dumped-lisp.el +++ b/lisp/dumped-lisp.el @@ -2,7 +2,6 @@ (assemble-list "backquote" ; needed for defsubst etc. "bytecomp-runtime" ; define defsubst - "Installation.el" "find-paths" "packages" ; Bootstrap run-time lisp environment "setup-paths" @@ -126,18 +125,18 @@ (when-feature mule "arabic") (when-feature mule "chinese") - (when-feature mule "mule-base/cyrillic") ; overloaded in leim/quail + (when-feature mule "mule/cyrillic") ; overloaded in leim/quail (when-feature mule "english") -;; (when-feature mule "ethiopic") + (when-feature mule "ethiopic") (when-feature mule "european") - (when-feature mule "mule-base/greek") ; overloaded in leim/quail + (when-feature mule "mule/greek") ; overloaded in leim/quail (when-feature mule "hebrew") (when-feature mule "japanese") (when-feature mule "korean") (when-feature mule "misc-lang") -;; (when-feature mule "thai") + (when-feature mule "thai-xtis") (when-feature mule "viet-chars") -;; (when-feature mule "vietnamese") + (when-feature mule "vietnamese") ;; Specialized language support (when-feature (and mule CANNA) "canna-leim") diff --git a/lisp/easymenu.el b/lisp/easymenu.el index 3bd9f34..906b51d 100644 --- a/lisp/easymenu.el +++ b/lisp/easymenu.el @@ -23,7 +23,9 @@ ;; 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 ;; Commentary: @@ -63,6 +65,15 @@ ;; - 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. @@ -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." - (` (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) @@ -200,6 +211,50 @@ is a list of menu items, as above." (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. diff --git a/lisp/etags.el b/lisp/etags.el index 14f69d2..00180d6 100644 --- a/lisp/etags.el +++ b/lisp/etags.el @@ -554,7 +554,7 @@ Make it buffer-local in a mode hook. The function is called with no 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.") @@ -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)) - (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)) @@ -777,11 +777,11 @@ Variables of note: (push-mark) (goto-char tag-point) (if find-tag-hook - (funcall find-tag-hook) + (run-hooks '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) - tags-loop-operate nil) + tags-loop-operate nil) ;; 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 "") - (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) - (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)))) @@ -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") - (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 @@ -1064,7 +1064,7 @@ See documentation of variable `tag-table-alist'." ;; 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 @@ -1189,6 +1189,7 @@ and `\\[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. @@ -1203,3 +1204,5 @@ This function pops (and moves to) the tag at the top of this stack." (provide 'etags) (provide 'tags) + +;;; etags.el ends here diff --git a/lisp/events.el b/lisp/events.el index c587e75..2c1706f 100644 --- a/lisp/events.el +++ b/lisp/events.el @@ -120,8 +120,6 @@ See `keyboard-translate-table' for more information." (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) diff --git a/lisp/faces.el b/lisp/faces.el index 09a3e79..8231011 100644 --- a/lisp/faces.el +++ b/lisp/faces.el @@ -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. - Only used by faces on TTY devices. 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) - "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) - "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 @@ -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)) - (common-props '(foreground background font display-table underline)) + (common-props '(foreground background font display-table underline + dim)) (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 @@ -1209,6 +1209,8 @@ See `defface' for information about SPEC." (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)) @@ -1249,13 +1251,44 @@ If FRAME is nil, return the default frame properties." ;; 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)))))) +(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'. @@ -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)))) - (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])) diff --git a/lisp/files.el b/lisp/files.el index 591648d..186043f 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -76,8 +76,7 @@ and FROM the name it is linked to." (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. @@ -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. - (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))) @@ -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 (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)))) - (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 - "*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) @@ -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)) - (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))) ;; 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) - ("\\.[ch]\\'" . c-mode) + ("\\.[chi]\\'" . c-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) - ("\\.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. - ("\\.p[lm]\\'" . perl-mode) + ("\\.\\([pP][Llm]\\|al\\)\\'" . perl-mode) ("\\.py\\'" . python-mode) - ("\\.texi\\(nfo\\)?\\'" . texinfo-mode) + ("\\.texi\\(?:nfo\\)?\\'" . texinfo-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) - ("[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) - ("\\.m\\([mes]\\|an\\)\\'" . nroff-mode) + ("\\.m\\(?:[mes]\\|an\\)\\'" . nroff-mode) ("\\.icn\\'" . icon-mode) - ("\\.\\([ckz]?sh\\|shar\\)\\'" . sh-mode) + ("\\.\\(?:[ckz]?sh\\|shar\\)\\'" . sh-mode) ;; #### 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) - ("\\.\\(sty\\|cls\\|bbl\\)\\'" . latex-mode) + ("\\.\\(?:sty\\|cls\\|bbl\\)\\'" . latex-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) - ("\\.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) @@ -1201,7 +1187,7 @@ run `normal-mode' explicitly." ("\\.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. @@ -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) - ("\\.[^/]*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). @@ -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.") -(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 @@ -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 - (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))) @@ -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)) - (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. @@ -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")) - (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)))) @@ -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 - (condition-case () - (delete-file (car targets)) - (file-error nil)) + (ignore-file-errors (delete-file (car targets))) (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 (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." @@ -2031,8 +2017,6 @@ the index in the name where the version number begins." (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 @@ -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. - (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 @@ -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 - (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) @@ -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))) - ;; 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 @@ -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 - (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)) @@ -3088,16 +3055,12 @@ by `sh' are supported." ;; not its part. Make the regexp say so. (concat "\\`" result "\\'"))) -(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) -(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) @@ -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 - ((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)) diff --git a/lisp/fill.el b/lisp/fill.el index f76a017..780d6e6 100644 --- a/lisp/fill.el +++ b/lisp/fill.el @@ -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. + (defvar word-across-newline) (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 () - "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) diff --git a/lisp/find-paths.el b/lisp/find-paths.el index 9685d6e..f5be624 100644 --- a/lisp/find-paths.el +++ b/lisp/find-paths.el @@ -62,13 +62,12 @@ from the search." (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) '() - (directory-files directory nil "^[^.-]"))) + (directory-files directory nil "^[^.-]"))) (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)) +(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 @@ -97,13 +101,13 @@ from the search." "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 - (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." @@ -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 - (expand-file-name + (expand-file-name (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 - (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))) - (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))) - (if (file-directory-p path) + (if (paths-file-readable-directory-p path) (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 - (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))) diff --git a/lisp/finder.el b/lisp/finder.el index 4656b32..8c9594a 100644 --- a/lisp/finder.el +++ b/lisp/finder.el @@ -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 "\n(setq finder-package-info '(\n") + (insert "\n(defconst finder-package-info '(\n") (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*") diff --git a/lisp/font-lock.el b/lisp/font-lock.el index 91446fd..ea1e1cb 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el @@ -128,8 +128,8 @@ ;; - 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 @@ -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 -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. @@ -533,8 +533,7 @@ This is normally set via `font-lock-defaults'.") :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 @@ -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 - ;; 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 @@ -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. -(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 ()) ;; Various functions. diff --git a/lisp/font.el b/lisp/font.el index eed2710..28bb05d 100644 --- a/lisp/font.el +++ b/lisp/font.el @@ -32,6 +32,7 @@ (require 'cl) (eval-and-compile + (defvar device-fonts-cache) (condition-case () (require 'custom) (error nil)) @@ -40,8 +41,8 @@ ;; 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) @@ -89,13 +90,12 @@ "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))) - (setq keywords (cdr keywords))))))) + (setq keywords (cdr keywords)))))) (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) - (` - (progn + `(progn (setq font-style-keywords - (cons (cons (quote (, attr)) + (cons (cons (quote ,attr) (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)) - (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) - (, (intern (format "font-%s-mask" attr))))) + ,(intern (format "font-%s-mask" attr)))) 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) - (, (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) - (, (intern - (format "font-%s-mask" attr)))))))) - )))) + ,(intern + (format "font-%s-mask" attr))))))) + ))) (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))) - table)) + table)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; 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) - (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)))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -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))) - (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) - (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))))) @@ -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)) - (let ((scaled (mapcar (function (lambda (x) (if x (aref x 0)))) + (let ((scaled (mapcar #'(lambda (x) (if x (aref x 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)))) @@ -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)))) - + ;;;###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) - (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) - (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) - (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) - (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)) - (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) @@ -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)) - (let ((scaled (mapcar (function (lambda (x) (if x (aref x 0)))) + (let ((scaled (mapcar #'(lambda (x) (if x (aref x 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)))))) @@ -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: -;;; 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]*$" -(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]+\\)") - (effects "\\([a-zA-Z ]*\\)")q + (effects "\\([a-zA-Z ]*\\)") (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)))) - (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 @@ -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) - (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) @@ -936,7 +924,7 @@ for use in the 'weight' field of an mswindows font string.") (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))))) @@ -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))))) - (cl-puthash (car (font-family cur)) plist hashtable)) - hashtable)) + (cl-puthash (car (font-family cur)) plist hash-table)) + hash-table)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -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) - (?6 . 6) + (?6 . 6) (?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))) - (mapcar (function (lambda (x) (* x 65535))) color)) + (mapcar #'(lambda (x) (* x 65535)) 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) - (+ + (+ (* (- (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 - (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 @@ -1365,7 +1353,7 @@ is returned." (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. @@ -1383,7 +1371,7 @@ is returned." "How often to blink faces" :type 'number :group 'faces) - + (defun font-blink-initialize () (cond ((featurep 'itimer) @@ -1393,10 +1381,10 @@ is returned." 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))) - + (provide 'font) diff --git a/lisp/format.el b/lisp/format.el index 2b4c609..7542247 100644 --- a/lisp/format.el +++ b/lisp/format.el @@ -69,20 +69,21 @@ (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" diff --git a/lisp/glyphs.el b/lisp/glyphs.el index 6594006..08a791a 100644 --- a/lisp/glyphs.el +++ b/lisp/glyphs.el @@ -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) +;; 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 () diff --git a/lisp/gnuserv.el b/lisp/gnuserv.el index 7b89699..b670e8d 100644 --- a/lisp/gnuserv.el +++ b/lisp/gnuserv.el @@ -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) -;; synced other behaviour with server.el +;; synced other behavior with server.el ;; ;; Jan Vroonhof ;; Customized. diff --git a/lisp/help.el b/lisp/help.el index 5f43c0c..eb7b1b6 100644 --- a/lisp/help.el +++ b/lisp/help.el @@ -914,15 +914,11 @@ unless the function is autoloaded." :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) @@ -1378,10 +1374,6 @@ after the listing is made.)" (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)))) @@ -1416,4 +1408,25 @@ after the listing is made.)" (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 diff --git a/lisp/hyper-apropos.el b/lisp/hyper-apropos.el index 2839b73..1e34bfa 100644 --- a/lisp/hyper-apropos.el +++ b/lisp/hyper-apropos.el @@ -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: -\(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) @@ -452,7 +452,7 @@ See also `hyper-apropos' and `hyper-describe-function'." (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 "") @@ -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))) +;;;###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"))) @@ -885,14 +886,13 @@ See also `hyper-apropos' and `hyper-describe-function'." (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)) diff --git a/lisp/info.el b/lisp/info.el index def6f7b..dc40409 100644 --- a/lisp/info.el +++ b/lisp/info.el @@ -308,7 +308,13 @@ ;; contain none or when it has become older than info files in the same ;; directory. +;; Modified 1998-09-23 by Didier Verna +;; +;; Use the new macro `with-search-caps-disable-folding' + ;; Code: +(eval-when-compile + (condition-case nil (require 'browse-url) (error nil))) (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") + (".bz2" . "bzip2 -dc %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 - (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)) @@ -1018,19 +1025,19 @@ directory has been modified more recently." 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 - ".*\\.info\\(.gz\\|.Z\\|-z\\|.zip\\)?$" + ".*\\.info\\(\\.gz\\|\\.bz2\\|\\.Z\\|-z\\|\\.zip\\)?$" 'nosort t)) Info-dir-newer-info-files)) @@ -1084,22 +1091,22 @@ and `END-INFO-DIR-ENTRY'" (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)) - (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"))) @@ -1130,15 +1137,15 @@ to the value of `Info-save-auto-generated-dir'" "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) @@ -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)))) - (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))) - 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) @@ -1368,15 +1376,12 @@ for; usually a downcased version of NAME." (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 "") - (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 () @@ -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 + (widen) (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)))) - (widen) (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)) - (with-caps-disable-folding regexp + (with-search-caps-disable-folding regexp t (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 - (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 - ;; 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))))) (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: -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. +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'. @@ -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. + (defvar info::toolbar) (if (and (featurep 'toolbar) (console-on-window-system-p) (not Info-inhibit-toolbar)) diff --git a/lisp/isearch-mode.el b/lisp/isearch-mode.el index 1abd4e0..cc5b3fa 100644 --- a/lisp/isearch-mode.el +++ b/lisp/isearch-mode.el @@ -148,12 +148,6 @@ that the search has reached." :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 @@ -459,10 +453,14 @@ is treated as a regexp. See \\[isearch-forward] for more info." 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") @@ -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) - (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, @@ -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) - (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. @@ -936,6 +935,21 @@ backwards." (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) @@ -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 () - (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)) - (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)) @@ -1460,12 +1477,9 @@ currently matches the search-string.") (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) @@ -1485,19 +1499,7 @@ currently matches the search-string.") (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)) @@ -1596,11 +1598,10 @@ currently matches the search-string.") ; ;; 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)))) - (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)))) +(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) "\ @@ -1618,6 +1620,7 @@ uppercase letters and `search-caps-disable-folding' is t." (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)) diff --git a/lisp/itimer.el b/lisp/itimer.el index 78610a9..aab95e4 100644 --- a/lisp/itimer.el +++ b/lisp/itimer.el @@ -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. - (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)) diff --git a/lisp/keydefs.el b/lisp/keydefs.el index 63b6c2d..947ce34 100644 --- a/lisp/keydefs.el +++ b/lisp/keydefs.el @@ -452,11 +452,11 @@ Keymap for characters following C-c.") - - - (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) diff --git a/lisp/ldap.el b/lisp/ldap.el index 1f09377..57cfe78 100644 --- a/lisp/ldap.el +++ b/lisp/ldap.el @@ -5,7 +5,7 @@ ;; Author: Oscar Figueiredo ;; Maintainer: Oscar Figueiredo ;; Created: Jan 1998 -;; Version: $Revision: 1.7.2.1 $ +;; Version: $Revision: 1.7.2.3 $ ;; Keywords: help comm ;; This file is part of XEmacs @@ -35,17 +35,43 @@ ;;; 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. @@ -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. - `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. -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. +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 -`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:") - (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) - (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) - + ;;; ldap.el ends here diff --git a/lisp/lib-complete.el b/lisp/lib-complete.el index 83123c6..7ae20c3 100644 --- a/lisp/lib-complete.el +++ b/lisp/lib-complete.el @@ -38,7 +38,7 @@ ;; Last Modified By: Heiko M|nkel ;; Additional XEmacs integration By: Chuck Thompson ;; 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. ;; @@ -104,25 +104,24 @@ If optional fourth argument FAST is non-nil, don't sort the completions, ;;=== 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 - (` - (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 - (insert " " (, MESSAGE)) (goto-char orig-pmax) + (insert " " ,message) (goto-char orig-pmax) (sit-for 0) ; Redisplay - (,@ FORMS)) + ,@forms) (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) @@ -218,6 +217,7 @@ where each has the form (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." @@ -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 - ;; 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 diff --git a/lisp/lisp-mnt.el b/lisp/lisp-mnt.el index 0eda679..76feeb2 100644 --- a/lisp/lisp-mnt.el +++ b/lisp/lisp-mnt.el @@ -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)) - ) + end) (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) - (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))) ))) @@ -449,17 +449,17 @@ a temporary buffer." (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 @@ -560,7 +560,9 @@ Prompts for bug subject. Leaves you in a mail buffer." (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) + "")) topic) (goto-char (point-max)) (insert "\nIn " diff --git a/lisp/lisp-mode.el b/lisp/lisp-mode.el index d193288..e5e97ec 100644 --- a/lisp/lisp-mode.el +++ b/lisp/lisp-mode.el @@ -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 '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) diff --git a/lisp/list-mode.el b/lisp/list-mode.el index 8789a14..b3603e5 100644 --- a/lisp/list-mode.el +++ b/lisp/list-mode.el @@ -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) + (:completion-string "Possible completions are:") :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))))))) - (princ (gettext "Possible completions are:")) + (if (stringp cl-completion-string) + (princ (gettext cl-completion-string))) (let ((tail completions) (r 0) (regexp-string diff --git a/lisp/loaddefs.el b/lisp/loaddefs.el index 77ba4b1..44ab60b 100644 --- a/lisp/loaddefs.el +++ b/lisp/loaddefs.el @@ -86,15 +86,10 @@ ;; 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"))) ;; This needs to be redone better. -slb diff --git a/lisp/loadhist.el b/lisp/loadhist.el index f55a51f..7783fd3 100644 --- a/lisp/loadhist.el +++ b/lisp/loadhist.el @@ -34,81 +34,69 @@ ;;; 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 - (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." - (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." - (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." - (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." - (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." - (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) @@ -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 -; (mapcar (function (lambda (feature) -; (list (symbol-name feature)))) +; (mapcar #'(lambda (feature) +; (list (symbol-name feature))) ; 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 (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 - (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))) diff --git a/lisp/loadup.el b/lisp/loadup.el index 68063a8..4c836bb 100644 --- a/lisp/loadup.el +++ b/lisp/loadup.el @@ -34,21 +34,44 @@ ;;; 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 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 () - ;; 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 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 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*")) @@ -64,7 +87,6 @@ ;; 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 "^[^-.]" @@ -80,11 +102,10 @@ ;; 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) @@ -101,16 +122,14 @@ (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))) - (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) @@ -135,8 +154,8 @@ ;; 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) @@ -145,7 +164,6 @@ ;;; 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 @@ -159,51 +177,49 @@ (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. -(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*") +) ;; frequent garbage collection + ;; 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...") - (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)) -;; 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) - (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. diff --git a/lisp/make-docfile.el b/lisp/make-docfile.el index 1f56feb..e67fdbf 100644 --- a/lisp/make-docfile.el +++ b/lisp/make-docfile.el @@ -51,9 +51,9 @@ (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 (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))) @@ -81,8 +81,6 @@ ;; 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") @@ -173,7 +171,7 @@ nil "-fc" (mapconcat - 'identity + #'identity (append (list (concat default-directory "../lib-src/make-docfile")) options processed) diff --git a/lisp/map-ynp.el b/lisp/map-ynp.el index 64d3e58..6fef0e9 100644 --- a/lisp/map-ynp.el +++ b/lisp/map-ynp.el @@ -90,15 +90,14 @@ Returns the number of actions taken." (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"))) @@ -123,19 +122,18 @@ Returns the number of actions taken." ("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 - (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 ", ") " ") "") @@ -156,8 +154,8 @@ Returns the number of actions taken." (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) @@ -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) - (setq next (function (lambda () nil)))) + (setq next #'(lambda () nil))) ((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) - (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 @@ -244,34 +242,34 @@ the current %s and exit." (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. - (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) - ; (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) - (setq next (` (lambda () - (setq next '(, next)) - '(, elt))))))) + (setq next `(lambda () + (setq next ',next) + ',elt))))) ((eval prompt) (progn (funcall actor elt) diff --git a/lisp/menubar.el b/lisp/menubar.el index fa55059..a2f84d5 100644 --- a/lisp/menubar.el +++ b/lisp/menubar.el @@ -171,8 +171,8 @@ See `current-menubar' for a description of the syntax of a menubar." 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))))) @@ -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))))) -(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))) @@ -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))) - (menubar current-menubar) + (menubar (or in-menu current-menubar)) (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)) -(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. @@ -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 - 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 -(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. @@ -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) - (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, @@ -340,11 +344,12 @@ BEFORE, if provided, is the name of a menu before which this menu should (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." - (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))) diff --git a/version.sh b/version.sh index 5778428..73ba99c 100644 --- a/version.sh +++ b/version.sh @@ -1,8 +1,8 @@ #!/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_build_version=1 +infodock_build_version=7 -- 1.7.10.4