From: tomo Date: Mon, 17 May 1999 09:41:44 +0000 (+0000) Subject: XEmacs 21.2.9 X-Git-Tag: r21-2-9~1 X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f3ec20f455f3f1212d2c5ee4cadc984330da9c38;p=chise%2Fxemacs-chise.git.1 XEmacs 21.2.9 --- diff --git a/CHANGES-beta b/CHANGES-beta index 4b4d5ae..2c90aef 100644 --- a/CHANGES-beta +++ b/CHANGES-beta @@ -1,4 +1,29 @@ -*- indented-text -*- +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 diff --git a/ChangeLog b/ChangeLog index 42862c5..ccc9364 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,45 @@ +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. diff --git a/INSTALL b/INSTALL index cab2f7b..2cef985 100644 --- a/INSTALL +++ b/INSTALL @@ -444,7 +444,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; @@ -483,6 +483,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". @@ -623,6 +634,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 d1002e1..4daf94e 100644 --- a/Makefile.in.in +++ b/Makefile.in.in @@ -151,11 +151,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 @@ -466,7 +477,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 diff --git a/README.packages b/README.packages new file mode 100644 index 0000000..2d3f904 --- /dev/null +++ b/README.packages @@ -0,0 +1,227 @@ +The XEmacs Packages Quick Start Guide +------------------------------------- + +This text is intended to help you get started installing a new XEmacs +and its packages from start. For details see the 'Startup Paths' and +'Packages' sections of the XEmacs info manual. + +Real Real Quickstart FAQ +------------------------ + +Q. Do I need to have the packages to compile XEmacs? +A. If you want to compile with MULE, you need the mule-base package installed. + Otherwise, no package is required before compilation. + +Q. I really liked the old way that packages were bundled and do not + want to mess with packages at all. +A. You can grab all the packages at once like you used to with old + XEmacs versions, skip to the 'Sumo Tarball' section below. + +A note of caution +----------------- + +The XEmacs package system is still in its infancy. Please expect a few +minor hurdles on the way. Also neither the interface nor the structure is +set in stone. The XEmacs maintainers reserve the right to sacrifice +backwards compatibility as quirks are worked out over the coming +releases. + +Some Package Theory +------------------- + +In order to reduce the size and increase the maintainability of XEmacs, +the majority of the Elisp packages that came with previous releases +have been unbundled. They have been replaced by the package system. +Each elisp add-on (or groups of them when they are small) now comes +in its own tarball that contains a small search hierarchy. + +You select just the ones you need. Install them by untarring them into +the right place. On startup XEmacs will find them, set up the load +path correctly, install autoloads, etc, etc. + +Package hierarchies +------------------- + +On Startup XEmacs looks for packages in so called package hierarchies. +These can be specified by the 'package-path' parameter to the +'configure' script. However by default there are three system wide +hierarchies. + +$prefix/lib/xemacs/site-packages + Local and 3rd party packages go here. + +$prefix/lib/xemacs/mule-packages + Only searched by MULE-enabled XEmacsen. + +$prefix/lib/xemacs/xemacs-packages + Normal packages go here. + +Where to get the packages +------------------------- + +Packages are available from ftp://ftp.xemacs.org/pub/xemacs/packages +and its mirror. + +How to install the packages +--------------------------- + +1. All at once, using the 'Sumo Tarball'. +2. By hand. +3. Automatically, using the package tools from XEmacs. + +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 + +xemacs-sumo-.tar.gz if you have a latin-1 XEmacs. + +or + +xemacs-mule-sumo-.tar.gz if you have a MULE XEmacs. + +N.B. There are called 'Sumo Tarballs' for good reason. They are +currently 15MB and 23MB (gzipped) respectively. + +Install them by + +cd $prefix/lib/xemacs ; gunzip -c | tar xf - + +As the Sumo tarballs are not regenerated as often as the individual +packages, it is recommended that you use the automatic package tools +afterwards to pick up any recent updates. + +Installing by Hand +------------------ + +Fetch the packages from the ftp site, CDROM whatever. The filenames +have the form name--pkg.tar.gz and are gzipped tar files. For +a fresh install it is sufficient to untar the file at the top of the +package hierarchy. For example if we are installing the 'xemacs-base' +package in version 1.27: + +mkdir $prefix/lib/xemacs/xemacs-packages # if it does not exist yet +cd $prefix/lib/xemacs/xemacs-packages +gunzip -c ...../xemacs-base-1.27-pkg.tar.gz | tar xf - + +For MULE related packages, it is best to untar in the mule-packages +hierarchy, i.e. for the mule-base package, version 1.25 + +mkdir $prefix/lib/xemacs/mule-packages # if it does not exist yet +cd $prefix/lib/xemacs/mule-packages +gunzip -c ...../mule-base-1.25-pkg.tar.gz | tar xf - + +Installing automatically +------------------------ + +XEmacs comes with some tools to make the periodic updating and +installing easier. It will notice if new packages or versions are +available and will fetch them from the ftp site. + +Unfortunately this requires that a few packages are alreadyin place. +You will have to install them by hand as above or use a SUMO tarball. +This requirement will hopefully go away in the future. The packages +you need are: + + efs - To fetch the files from the ftp site or mirrors. + xemacs-base - Needed by efs. + +and optionally: + + mailcrypt - If you have PGP installed and want to verify the + signature of the index file. + mule-base - Needed if you want to compile XEmacs with MULE. + +After installing these by hand, you can start XEmacs. (It is a good +idea to use 'xemacs -vanilla' here as your startup files might need +things now moved to packages.) + + - First you need to specify an FTP site to use. + Use Options->Manage Packages->Add Download Site + or M-x customize-variable RET package-get-remote RET + + Alternatively, if you already have the packages on a local disk + then you can specify this directly using 'M-x + pui-add-install-directory'. Please make sure you also have a + corresponding copy of the package index there. + + - Invoke Options->Manage Packages->List & Install + or M-x pui-list-packages RET + XEmacs will now first try to fetch a new version of the package + index from the FTP site. Depending on whether you are using + 'mailcrypt/PGP', you will get some question about keys to fetch or + whether to use the index without verifying the signature. If the + new index was different from the one already on disk, XEmacs will + offer you to overwrite the old index. + +- XEmacs will show you a buffer named "*Packages*" with an overview + of available and installed packages, including a short description. + In this buffer you can select which packages you want using the + mouse or using RET. + +- When you are finished choosing packages, invoke + 'Packages->Install/Remove Select' from the menu or type 'x' to + begin installing packages. + +After Installation +------------------ + +New packages can only be used by XEmacs after a restart. + +Note to MULE users +------------------ + +Unlike all other packages the mule-base package is used at build/dump +time. This means that you need this available before compiling XEmacs +with MULE. Also it is a good idea to keep packages that are +MULE-only separate by putting them in the mule-packages hierarchy. + +Which Packages to install? +-------------------------- + +This is difficult to say. When in doubt install a package. If you +administrate a big site it might be a good idea to just install +everything. A good minimal set of packages for XEmacs-latin1 would be + +xemacs-base, xemacs-devel, c-support, cc-mode, debug, dired, efs, +edit-utils, fsf-compat, mail-lib, net-utils, os-utils, prog-modes, +text-modes, time + +Unfortunately the package system currently provides neither +dependencies nor conflicts. This will be a future enhancement. The +above set includes most packages that are used by others. + +See also '.../etc/PACKAGES' for further descriptions of the individual +packages (currently outdated). + +Upgrading/Removing Packages +--------------------------- + +As the exact files and their locations contained in a package may +change it is recommend to remove a package first before installing a +new version. In order to facilitate removal each package contains an +pgkinfo/MANIFEST.pkgname file which list all the files belong to the +package. M-x package-admin-delete-binary-package RET can be used to +remove a package using this file. + +Note that the interactive package tools included with XEmacs already do +this for you. + +User Package directories +------------------------ + +In addition to the system wide packages, each user can have his own +packages installed in "./xemacs" (Note that this will most likely +change to "./xemacs/packages" in the near future). If you want to +install packages there using the interactive tools, you need to set +'pui-package-install-dest-dir' to "/xemacs" + +Site lisp/Site start +-------------------- + +The site-packages hierarchy replaces the old 'site-lisp' directory. +XEmacs no longer looks into a 'site-lisp' directly by default. +A good place to put 'site-start.el' would be in +$prefix/lib/xemacs/site-packages/lisp/ diff --git a/aclocal.m4 b/aclocal.m4 index c84a38b..1348285 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,99 +1,598 @@ 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= + ;; + + sco3.2v5* | unixware* | sysv5* | sysv4* | solaris2* | solaris7*) + 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/configure b/configure index 25bf198..23394a2 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,12 +229,16 @@ 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='' @@ -300,6 +305,7 @@ while test $# != 0; do case "$opt" in with_site_lisp | \ + with_site_modules | \ with_x | \ with_x11 | \ with_msw | \ @@ -548,6 +554,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 @@ -597,6 +619,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 @@ -751,7 +781,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:755: checking whether ln -s works" >&5 +echo "configure:785: checking whether ln -s works" >&5 rm -f conftestdata if ln -s X conftestdata 2>/dev/null @@ -967,7 +997,7 @@ EOF echo $ac_n "checking "host system type"""... $ac_c" 1>&6 -echo "configure:971: checking "host system type"" >&5 +echo "configure:1001: checking "host system type"" >&5 internal_configuration=`echo $configuration | sed 's/-\(workshop\)//'` canonical=`${CONFIG_SHELL-/bin/sh} $srcdir/config.sub "$internal_configuration"` configuration=`echo "$configuration" | sed 's/^\([^-][^-]*-[^-][^-]*-[^-][^-]*\)-.*$/\1/'` @@ -1369,7 +1399,7 @@ fi if test -z "$dynamic"; then case "$opsys" in - hpux* | sunos4* | sco5 ) dynamic=no ;; + hpux* | sunos4* ) dynamic=no ;; *) dynamic=yes ;; esac fi @@ -1456,7 +1486,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:1460: checking for $ac_word" >&5 +echo "configure:1490: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1482,7 +1512,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:1486: checking for $ac_word" >&5 +echo "configure:1516: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1527,7 +1557,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1531: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:1561: 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' @@ -1539,11 +1569,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:1577: \"$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 @@ -1563,19 +1593,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:1567: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1597: 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:1572: checking whether we are using GNU C" >&5 +echo "configure:1602: 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:1609: \"$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 @@ -1589,7 +1619,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:1593: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1623: checking whether ${CC-cc} accepts -g" >&5 echo 'void f(){}' > conftest.c if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then @@ -1618,7 +1648,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:1622: checking for $ac_word" >&5 +echo "configure:1652: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1644,7 +1674,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:1648: checking for $ac_word" >&5 +echo "configure:1678: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1689,7 +1719,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1693: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:1723: 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' @@ -1701,11 +1731,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:1739: \"$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 @@ -1725,19 +1755,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:1729: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1759: 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:1734: checking whether we are using GNU C" >&5 +echo "configure:1764: 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:1771: \"$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 @@ -1751,7 +1781,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:1755: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1785: checking whether ${CC-cc} accepts -g" >&5 echo 'void f(){}' > conftest.c if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then @@ -1780,7 +1810,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:1784: checking for $ac_word" >&5 +echo "configure:1814: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1806,7 +1836,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:1810: checking for $ac_word" >&5 +echo "configure:1840: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1851,7 +1881,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1855: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:1885: 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' @@ -1863,11 +1893,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:1901: \"$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 @@ -1887,19 +1917,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:1891: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1921: 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:1896: checking whether we are using GNU C" >&5 +echo "configure:1926: 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:1933: \"$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 @@ -1913,7 +1943,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:1917: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1947: checking whether ${CC-cc} accepts -g" >&5 echo 'void f(){}' > conftest.c if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then @@ -1946,7 +1976,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:1950: checking how to run the C preprocessor" >&5 +echo "configure:1980: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -1959,13 +1989,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:1969: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1999: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -1976,13 +2006,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:1986: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2016: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -2005,9 +2035,9 @@ echo "$ac_t""$CPP" 1>&6 echo $ac_n "checking for AIX""... $ac_c" 1>&6 -echo "configure:2009: checking for AIX" >&5 +echo "configure:2039: checking for AIX" >&5 cat > conftest.$ac_ext <&6 -echo "configure:2038: checking for GNU libc" >&5 +echo "configure:2068: checking for GNU libc" >&5 cat > conftest.$ac_ext < int main() { @@ -2048,7 +2078,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:2052: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2082: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_glibc=yes else @@ -2070,7 +2100,7 @@ EOF cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:2116: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then : else @@ -2273,9 +2303,7 @@ test "$__DECC" = "yes" && c_switch_site="$c_switch_site -std" && if test "$extr 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";; @@ -2352,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:2356: checking for dynodump" >&5 +echo "configure:2384: checking for dynodump" >&5 if test "$unexec" != "unexsol2.o"; then echo "$ac_t""no" 1>&6 else @@ -2390,12 +2418,12 @@ if test "$unexec" = "unexaix.o"; then done echo $ac_n "checking for terminateAndUnload in -lC""... $ac_c" 1>&6 -echo "configure:2394: 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 @@ -2510,7 +2538,7 @@ fi if test "$add_runtime_path" = "yes"; then echo $ac_n "checking "for runtime libraries flag"""... $ac_c" 1>&6 -echo "configure:2514: checking "for runtime libraries flag"" >&5 +echo "configure:2542: checking "for runtime libraries flag"" >&5 case "$opsys" in sol2 ) dash_r="-R" ;; decosf* | linux* ) dash_r="-rpath " ;; @@ -2532,14 +2560,14 @@ if test "$GCC" = "yes"; then done fi cat > 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 @@ -2632,6 +2660,7 @@ fi + GNU_MALLOC=yes if test "$with_dlmalloc" != "no"; then doug_lea_malloc=yes @@ -2640,10 +2669,10 @@ else fi after_morecore_hook_exists=yes echo $ac_n "checking for malloc_get_state""... $ac_c" 1>&6 -echo "configure:2644: 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 @@ -2686,10 +2715,10 @@ doug_lea_malloc=no fi echo $ac_n "checking for malloc_set_state""... $ac_c" 1>&6 -echo "configure:2690: 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 @@ -2732,16 +2761,16 @@ doug_lea_malloc=no fi echo $ac_n "checking whether __after_morecore_hook exists""... $ac_c" 1>&6 -echo "configure:2736: 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 @@ -2800,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:2804: 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. @@ -2853,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:2857: 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}:" @@ -2904,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:2908: 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. @@ -2935,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:2939: 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:2947: \"$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* @@ -2976,15 +3005,15 @@ 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:2980: 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:2988: \"$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* @@ -3017,15 +3046,15 @@ 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:3021: 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:3029: \"$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* @@ -3055,10 +3084,10 @@ fi done echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 -echo "configure:3059: 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 @@ -3074,7 +3103,7 @@ wait (&s); s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF -if { (eval echo configure:3078: \"$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 @@ -3098,10 +3127,10 @@ EOF fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:3102: checking for ANSI C header files" >&5 +echo "configure:3131: checking for ANSI C header files" >&5 cat > conftest.$ac_ext < #include @@ -3109,7 +3138,7 @@ cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3113: \"$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* @@ -3126,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 @@ -3144,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 @@ -3162,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') @@ -3173,7 +3202,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF -if { (eval echo configure:3177: \"$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 @@ -3199,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:3203: 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 @@ -3211,7 +3240,7 @@ int main() { struct tm *tp; ; return 0; } EOF -if { (eval echo configure:3215: \"$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 @@ -3235,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:3239: 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 @@ -3250,7 +3279,7 @@ int main() { char *msg = *(sys_siglist + 1); ; return 0; } EOF -if { (eval echo configure:3254: \"$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 @@ -3275,9 +3304,9 @@ fi echo $ac_n "checking for struct utimbuf""... $ac_c" 1>&6 -echo "configure:3279: checking for struct utimbuf" >&5 +echo "configure:3308: checking for struct utimbuf" >&5 cat > conftest.$ac_ext < @@ -3296,7 +3325,7 @@ int main() { static struct utimbuf x; x.actime = x.modtime; ; return 0; } EOF -if { (eval echo configure:3300: \"$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 @@ -3316,10 +3345,10 @@ fi rm -f conftest* echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:3320: checking return type of signal handlers" >&5 +echo "configure:3349: checking return type of signal handlers" >&5 cat > conftest.$ac_ext < #include @@ -3336,7 +3365,7 @@ int main() { int i; ; return 0; } EOF -if { (eval echo configure:3340: \"$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 @@ -3358,10 +3387,10 @@ EOF echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:3362: checking for size_t" >&5 +echo "configure:3391: checking for size_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3392,10 +3421,10 @@ EOF fi echo $ac_n "checking for pid_t""... $ac_c" 1>&6 -echo "configure:3396: checking for pid_t" >&5 +echo "configure:3425: checking for pid_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3426,10 +3455,10 @@ EOF fi echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 -echo "configure:3430: 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 @@ -3465,10 +3494,10 @@ EOF fi echo $ac_n "checking for mode_t""... $ac_c" 1>&6 -echo "configure:3469: checking for mode_t" >&5 +echo "configure:3498: checking for mode_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3499,10 +3528,10 @@ EOF fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:3503: checking for off_t" >&5 +echo "configure:3532: checking for off_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3534,9 +3563,9 @@ fi echo $ac_n "checking for struct timeval""... $ac_c" 1>&6 -echo "configure:3538: checking for struct timeval" >&5 +echo "configure:3567: checking for struct timeval" >&5 cat > conftest.$ac_ext < @@ -3552,7 +3581,7 @@ int main() { static struct timeval x; x.tv_sec = x.tv_usec; ; return 0; } EOF -if { (eval echo configure:3556: \"$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 @@ -3574,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:3578: 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 @@ -3585,7 +3614,7 @@ int main() { struct tm *tp; tp->tm_sec; ; return 0; } EOF -if { (eval echo configure:3589: \"$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 @@ -3609,10 +3638,10 @@ EOF fi echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6 -echo "configure:3613: 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> @@ -3620,7 +3649,7 @@ int main() { struct tm tm; tm.tm_zone; ; return 0; } EOF -if { (eval echo configure:3624: \"$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 @@ -3643,10 +3672,10 @@ EOF else echo $ac_n "checking for tzname""... $ac_c" 1>&6 -echo "configure:3647: checking for tzname" >&5 +echo "configure:3676: checking for tzname" >&5 cat > conftest.$ac_ext < #ifndef tzname /* For SGI. */ @@ -3656,7 +3685,7 @@ int main() { atoi(*tzname); ; return 0; } EOF -if { (eval echo configure:3660: \"$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 @@ -3682,10 +3711,10 @@ fi echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:3686: 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 @@ -3759,7 +3788,7 @@ fi echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:3763: 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 @@ -3784,12 +3813,12 @@ fi echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6 -echo "configure:3788: 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 @@ -3800,11 +3829,11 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:3804: \"$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 @@ -3815,7 +3844,7 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:3819: \"$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 @@ -3832,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 @@ -3872,10 +3901,10 @@ fi echo $ac_n "checking size of short""... $ac_c" 1>&6 -echo "configure:3876: checking size of short" >&5 +echo "configure:3905: checking size of short" >&5 cat > conftest.$ac_ext < main() @@ -3886,7 +3915,7 @@ main() exit(0); } EOF -if { (eval echo configure:3890: \"$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 @@ -3914,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:3918: checking size of int" >&5 +echo "configure:3947: checking size of int" >&5 cat > conftest.$ac_ext < main() @@ -3928,7 +3957,7 @@ main() exit(0); } EOF -if { (eval echo configure:3932: \"$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 @@ -3950,10 +3979,10 @@ EOF echo $ac_n "checking size of long""... $ac_c" 1>&6 -echo "configure:3954: checking size of long" >&5 +echo "configure:3983: checking size of long" >&5 cat > conftest.$ac_ext < main() @@ -3964,7 +3993,7 @@ main() exit(0); } EOF -if { (eval echo configure:3968: \"$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 @@ -3986,10 +4015,10 @@ EOF echo $ac_n "checking size of long long""... $ac_c" 1>&6 -echo "configure:3990: checking size of long long" >&5 +echo "configure:4019: checking size of long long" >&5 cat > conftest.$ac_ext < main() @@ -4000,7 +4029,7 @@ main() exit(0); } EOF -if { (eval echo configure:4004: \"$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 @@ -4022,10 +4051,10 @@ EOF echo $ac_n "checking size of void *""... $ac_c" 1>&6 -echo "configure:4026: checking size of void *" >&5 +echo "configure:4055: checking size of void *" >&5 cat > conftest.$ac_ext < main() @@ -4036,7 +4065,7 @@ main() exit(0); } EOF -if { (eval echo configure:4040: \"$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 @@ -4059,7 +4088,7 @@ EOF echo $ac_n "checking for long file names""... $ac_c" 1>&6 -echo "configure:4063: 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: @@ -4106,12 +4135,12 @@ fi echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6 -echo "configure:4110: checking for sin in -lm" >&5 +echo "configure:4139: 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:4155: \"$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 @@ -4164,14 +4193,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:4175: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4204: \"$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 @@ -4188,7 +4217,7 @@ fi rm -f conftest* echo "checking type of mail spool file locking" 1>&6 -echo "configure:4192: checking type of mail spool file locking" >&5 +echo "configure:4221: 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 @@ -4212,12 +4241,12 @@ fi echo $ac_n "checking for kstat_open in -lkstat""... $ac_c" 1>&6 -echo "configure:4216: checking for kstat_open in -lkstat" >&5 +echo "configure:4245: 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 +if { (eval echo configure:4261: \"$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 @@ -4262,12 +4291,12 @@ fi echo $ac_n "checking for kvm_read in -lkvm""... $ac_c" 1>&6 -echo "configure:4266: checking for kvm_read in -lkvm" >&5 +echo "configure:4295: 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 +if { (eval echo configure:4311: \"$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 @@ -4313,12 +4342,12 @@ fi case "$opsys" in decosf*) echo $ac_n "checking for cma_open in -lpthreads""... $ac_c" 1>&6 -echo "configure:4317: checking for cma_open in -lpthreads" >&5 +echo "configure:4346: 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:4362: \"$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 @@ -4365,7 +4394,7 @@ fi esac echo $ac_n "checking whether the -xildoff compiler flag is required""... $ac_c" 1>&6 -echo "configure:4369: checking whether the -xildoff compiler flag is required" >&5 +echo "configure:4398: 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; @@ -4376,7 +4405,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:4380: checking for \"-z ignore\" linker flag" >&5 +echo "configure:4409: 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 ;; @@ -4386,7 +4415,7 @@ fi echo "checking "for specified window system"" 1>&6 -echo "configure:4390: checking "for specified window system"" >&5 +echo "configure:4419: checking "for specified window system"" >&5 if test "$with_x11" != "no"; then test "$x_includes $x_libraries" != "NONE NONE" && \ @@ -4419,7 +4448,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:4423: checking for X" >&5 +echo "configure:4452: checking for X" >&5 # Check whether --with-x or --without-x was given. if test "${with_x+set}" = set; then @@ -4479,12 +4508,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:4488: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4517: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -4553,14 +4582,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:4593: \"$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. @@ -4669,17 +4698,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:4673: checking whether -R must be followed by a space" >&5 +echo "configure:4702: 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:4712: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_R_nospace=yes else @@ -4695,14 +4724,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:4735: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_R_space=yes else @@ -4738,12 +4767,12 @@ ac_cv_lib_dnet_dnet_ntoa=no else echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 -echo "configure:4742: checking for dnet_ntoa in -ldnet" >&5 +echo "configure:4771: 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:4787: \"$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 @@ -4778,12 +4807,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:4782: checking for dnet_ntoa in -ldnet_stub" >&5 +echo "configure:4811: 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:4827: \"$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 @@ -4823,10 +4852,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:4827: checking for gethostbyname" >&5 +echo "configure:4856: checking for gethostbyname" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4882: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_gethostbyname=yes" else @@ -4870,12 +4899,12 @@ fi if test $ac_cv_func_gethostbyname = no; then echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 -echo "configure:4874: checking for gethostbyname in -lnsl" >&5 +echo "configure:4903: 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:4919: \"$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 @@ -4916,10 +4945,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:4920: checking for connect" >&5 +echo "configure:4949: checking for connect" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:4975: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_connect=yes" else @@ -4965,12 +4994,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:4969: checking "$xe_msg_checking"" >&5 +echo "configure:4998: 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:5014: \"$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 @@ -5005,10 +5034,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:5009: checking for remove" >&5 +echo "configure:5038: checking for remove" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5064: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_remove=yes" else @@ -5052,12 +5081,12 @@ fi if test $ac_cv_func_remove = no; then echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 -echo "configure:5056: checking for remove in -lposix" >&5 +echo "configure:5085: 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:5101: \"$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 @@ -5092,10 +5121,10 @@ fi # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. echo $ac_n "checking for shmat""... $ac_c" 1>&6 -echo "configure:5096: checking for shmat" >&5 +echo "configure:5125: checking for shmat" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:5151: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_shmat=yes" else @@ -5139,12 +5168,12 @@ fi if test $ac_cv_func_shmat = no; then echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 -echo "configure:5143: checking for shmat in -lipc" >&5 +echo "configure:5172: 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:5188: \"$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 @@ -5189,12 +5218,12 @@ fi # --interran@uluru.Stanford.EDU, kb@cs.umb.edu. echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6 -echo "configure:5193: checking for IceConnectionNumber in -lICE" >&5 +echo "configure:5222: 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:5238: \"$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 @@ -5374,7 +5403,7 @@ EOF echo "checking for X defines extracted by xmkmf" 1>&6 -echo "configure:5378: checking for X defines extracted by xmkmf" >&5 +echo "configure:5407: checking for X defines extracted by xmkmf" >&5 rm -fr conftestdir if mkdir conftestdir; then cd conftestdir @@ -5406,15 +5435,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:5410: checking for X11/Intrinsic.h" >&5 +echo "configure:5439: 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:5418: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5447: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -5438,12 +5467,12 @@ fi echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6 -echo "configure:5442: checking for XOpenDisplay in -lX11" >&5 +echo "configure:5471: 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:5487: \"$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 @@ -5479,12 +5508,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:5483: checking "$xe_msg_checking"" >&5 +echo "configure:5512: 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:5528: \"$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 @@ -5522,12 +5551,12 @@ fi echo $ac_n "checking for XShapeSelectInput in -lXext""... $ac_c" 1>&6 -echo "configure:5526: checking for XShapeSelectInput in -lXext" >&5 +echo "configure:5555: 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:5571: \"$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 @@ -5561,12 +5590,12 @@ fi echo $ac_n "checking for XtOpenDisplay in -lXt""... $ac_c" 1>&6 -echo "configure:5565: checking for XtOpenDisplay in -lXt" >&5 +echo "configure:5594: 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:5610: \"$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 @@ -5600,14 +5629,14 @@ fi echo $ac_n "checking the version of X11 being used""... $ac_c" 1>&6 -echo "configure:5604: checking the version of X11 being used" >&5 +echo "configure:5633: 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:5611: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:5640: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ./conftest foobar; x11_release=$? else @@ -5632,15 +5661,15 @@ EOF do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5636: checking for $ac_hdr" >&5 +echo "configure:5665: 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:5644: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5673: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -5671,7 +5700,7 @@ done echo $ac_n "checking for XFree86""... $ac_c" 1>&6 -echo "configure:5675: checking for XFree86" >&5 +echo "configure:5704: checking for XFree86" >&5 if test -d "/usr/X386/include" -o \ -f "/etc/XF86Config" -o \ -f "/etc/X11/XF86Config" -o \ @@ -5691,12 +5720,12 @@ EOF test -z "$with_xmu" && { echo $ac_n "checking for XmuReadBitmapDataFromFile in -lXmu""... $ac_c" 1>&6 -echo "configure:5695: checking for XmuReadBitmapDataFromFile in -lXmu" >&5 +echo "configure:5724: 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:5740: \"$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 @@ -5746,19 +5775,19 @@ EOF echo $ac_n "checking for main in -lXbsd""... $ac_c" 1>&6 -echo "configure:5750: checking for main in -lXbsd" >&5 +echo "configure:5779: 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:5791: \"$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 @@ -5795,22 +5824,22 @@ fi fi if test "$with_msw" != "no"; then echo "checking for MS-Windows" 1>&6 -echo "configure:5799: checking for MS-Windows" >&5 +echo "configure:5828: checking for MS-Windows" >&5 echo $ac_n "checking for main in -lgdi32""... $ac_c" 1>&6 -echo "configure:5802: checking for main in -lgdi32" >&5 +echo "configure:5831: 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:5843: \"$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 @@ -5875,12 +5904,12 @@ EOF fi fi cat > conftest.$ac_ext < int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; } EOF -if { (eval echo configure:5884: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:5913: \"$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 @@ -5911,7 +5940,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 @@ -5935,8 +5964,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 @@ -5959,7 +5987,7 @@ case "$x_libraries" in *X11R4* ) esac echo "checking for session-management option" 1>&6 -echo "configure:5963: checking for session-management option" >&5; +echo "configure:5991: checking for session-management option" >&5; if test "$with_session" != "no"; then { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_SESSION @@ -5974,15 +6002,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:5978: checking for X11/Xauth.h" >&5 +echo "configure:6006: 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:5986: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6014: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -6005,12 +6033,12 @@ fi } test -z "$with_xauth" && { echo $ac_n "checking for XauGetAuthByAddr in -lXau""... $ac_c" 1>&6 -echo "configure:6009: checking for XauGetAuthByAddr in -lXau" >&5 +echo "configure:6037: 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:6053: \"$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 @@ -6066,15 +6094,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:6070: checking for ${dir}tt_c.h" >&5 +echo "configure:6098: 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:6078: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6106: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -6110,12 +6138,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:6114: checking "$xe_msg_checking"" >&5 +echo "configure:6142: 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:6158: \"$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 @@ -6183,15 +6211,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:6187: checking for Dt/Dt.h" >&5 +echo "configure:6215: 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:6195: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6223: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -6214,12 +6242,12 @@ fi } test -z "$with_cde" && { echo $ac_n "checking for DtDndDragStart in -lDtSvc""... $ac_c" 1>&6 -echo "configure:6218: checking for DtDndDragStart in -lDtSvc" >&5 +echo "configure:6246: 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:6262: \"$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 @@ -6299,7 +6327,7 @@ EOF fi echo $ac_n "checking if drag and drop API is needed""... $ac_c" 1>&6 -echo "configure:6303: checking if drag and drop API is needed" >&5 +echo "configure:6331: checking if drag and drop API is needed" >&5 if test "$with_dragndrop" != "no" ; then if test -n "$dragndrop_proto" ; then with_dragndrop=yes @@ -6320,18 +6348,18 @@ EOF fi echo "checking for LDAP" 1>&6 -echo "configure:6324: checking for LDAP" >&5 +echo "configure:6352: 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:6327: checking for ldap.h" >&5 +echo "configure:6355: 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:6335: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6363: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -6354,15 +6382,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:6358: checking for lber.h" >&5 +echo "configure:6386: 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:6366: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6394: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -6388,12 +6416,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:6392: checking "$xe_msg_checking"" >&5 +echo "configure:6420: 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:6436: \"$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 @@ -6427,12 +6455,12 @@ fi } test "$with_umich_ldap" = "no" && { echo $ac_n "checking for ldap_set_option in -lldap10""... $ac_c" 1>&6 -echo "configure:6431: checking for ldap_set_option in -lldap10" >&5 +echo "configure:6459: 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:6475: \"$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 @@ -6507,15 +6535,15 @@ fi if test "$window_system" != "none"; then echo "checking for graphics libraries" 1>&6 -echo "configure:6511: checking for graphics libraries" >&5 +echo "configure:6539: checking for graphics libraries" >&5 xpm_problem="" if test -z "$with_xpm"; then echo $ac_n "checking for Xpm - no older than 3.4f""... $ac_c" 1>&6 -echo "configure:6516: checking for Xpm - no older than 3.4f" >&5 +echo "configure:6544: checking for Xpm - no older than 3.4f" >&5 xe_check_libs=-lXpm cat > conftest.$ac_ext < int main(int c, char **v) { @@ -6523,7 +6551,7 @@ echo "configure:6516: checking for Xpm - no older than 3.4f" >&5 XpmIncludeVersion != XpmLibraryVersion() ? 1 : XpmIncludeVersion < 30406 ? 2 : 0 ;} EOF -if { (eval echo configure:6527: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:6555: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ./conftest dummy_arg; xpm_status=$?; if test "$xpm_status" = "0"; then @@ -6565,17 +6593,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:6569: checking for \"FOR_MSW\" xpm" >&5 +echo "configure:6597: 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:6607: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* xpm_for_msw=no else @@ -6599,6 +6627,89 @@ EOF fi fi + test -z "$with_xface" && { ac_safe=`echo "compface.h" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for compface.h""... $ac_c" 1>&6 +echo "configure:6633: checking for compface.h" >&5 + +cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:6641: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out` +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:6664: 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 + if test "$with_gif" != "no"; then with_gif="yes" { test "$extra_verbose" = "yes" && cat << \EOF @@ -6617,12 +6728,12 @@ EOF if test "$with_png $with_tiff" != "no no"; then echo $ac_n "checking for inflate in -lc""... $ac_c" 1>&6 -echo "configure:6621: checking for inflate in -lc" >&5 +echo "configure:6732: 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:6748: \"$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 @@ -6652,12 +6763,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for inflate in -lz""... $ac_c" 1>&6 -echo "configure:6656: checking for inflate in -lz" >&5 +echo "configure:6767: checking for inflate in -lz" >&5 ac_lib_var=`echo z'_'inflate | sed 'y%./+-%__p_%'` xe_check_libs=" -lz " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:6783: \"$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 @@ -6687,12 +6798,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for inflate in -lgz""... $ac_c" 1>&6 -echo "configure:6691: checking for inflate in -lgz" >&5 +echo "configure:6802: 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:6818: \"$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 @@ -6733,15 +6844,15 @@ fi test -z "$with_jpeg" && { ac_safe=`echo "jpeglib.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for jpeglib.h""... $ac_c" 1>&6 -echo "configure:6737: checking for jpeglib.h" >&5 +echo "configure:6848: 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:6745: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6856: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -6764,12 +6875,12 @@ fi } test -z "$with_jpeg" && { echo $ac_n "checking for jpeg_destroy_decompress in -ljpeg""... $ac_c" 1>&6 -echo "configure:6768: checking for jpeg_destroy_decompress in -ljpeg" >&5 +echo "configure:6879: 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:6895: \"$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 @@ -6816,10 +6927,10 @@ EOF png_problem="" test -z "$with_png" && { echo $ac_n "checking for pow""... $ac_c" 1>&6 -echo "configure:6820: checking for pow" >&5 +echo "configure:6931: checking for pow" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:6957: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_pow=yes" else @@ -6863,15 +6974,15 @@ fi } test -z "$with_png" && { ac_safe=`echo "png.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for png.h""... $ac_c" 1>&6 -echo "configure:6867: checking for png.h" >&5 +echo "configure:6978: 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:6875: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6986: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -6894,12 +7005,12 @@ fi } test -z "$with_png" && { echo $ac_n "checking for png_read_image in -lpng""... $ac_c" 1>&6 -echo "configure:6898: checking for png_read_image in -lpng" >&5 +echo "configure:7009: 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:7025: \"$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 @@ -6933,10 +7044,10 @@ fi } if test -z "$with_png"; then echo $ac_n "checking for workable png version information""... $ac_c" 1>&6 -echo "configure:6937: checking for workable png version information" >&5 +echo "configure:7048: checking for workable png version information" >&5 xe_check_libs="-lpng -lz" cat > conftest.$ac_ext < int main(int c, char **v) { @@ -6944,7 +7055,7 @@ echo "configure:6937: checking for workable png version information" >&5 if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING) != 0) return 1; return (PNG_LIBPNG_VER < 10002) ? 2 : 0 ;} EOF -if { (eval echo configure:6948: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:7059: \"$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 @@ -6987,15 +7098,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:6991: checking for tiffio.h" >&5 +echo "configure:7102: 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:6999: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7110: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -7018,12 +7129,12 @@ fi } test -z "$with_tiff" && { echo $ac_n "checking for TIFFClientOpen in -ltiff""... $ac_c" 1>&6 -echo "configure:7022: checking for TIFFClientOpen in -ltiff" >&5 +echo "configure:7133: 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:7149: \"$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 @@ -7073,99 +7184,16 @@ fi if test "$with_x11" = "yes"; then echo "checking for X11 graphics libraries" 1>&6 -echo "configure:7077: 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:7081: 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:7089: \"$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:7112: 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:7188: checking for X11 graphics libraries" >&5 echo $ac_n "checking for XawScrollbarSetThumb in -lXaw""... $ac_c" 1>&6 -echo "configure:7164: checking for XawScrollbarSetThumb in -lXaw" >&5 +echo "configure:7192: 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:7208: \"$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 @@ -7200,15 +7228,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:7204: checking for Xm/Xm.h" >&5 +echo "configure:7232: 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:7212: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7240: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -7225,12 +7253,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:7229: checking for XmStringFree in -lXm" >&5 +echo "configure:7257: 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:7273: \"$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 @@ -7270,9 +7298,9 @@ fi if test "$have_motif" = "yes"; then echo $ac_n "checking for Lesstif""... $ac_c" 1>&6 -echo "configure:7274: checking for Lesstif" >&5 +echo "configure:7302: checking for Lesstif" >&5 cat > conftest.$ac_ext < #ifdef LESSTIF_VERSION @@ -7553,7 +7581,7 @@ fi if test "$with_mule" = "yes" ; then echo "checking for Mule-related features" 1>&6 -echo "configure:7557: checking for Mule-related features" >&5 +echo "configure:7585: checking for Mule-related features" >&5 { test "$extra_verbose" = "yes" && cat << \EOF Defining MULE EOF @@ -7578,15 +7606,15 @@ EOF do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:7582: checking for $ac_hdr" >&5 +echo "configure:7610: 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:7590: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7618: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -7617,12 +7645,12 @@ done echo $ac_n "checking for strerror in -lintl""... $ac_c" 1>&6 -echo "configure:7621: checking for strerror in -lintl" >&5 +echo "configure:7649: 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:7665: \"$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 @@ -7666,19 +7694,19 @@ fi echo "checking for Mule input methods" 1>&6 -echo "configure:7670: checking for Mule input methods" >&5 +echo "configure:7698: checking for Mule input methods" >&5 case "$with_xim" in "" | "yes" ) echo "checking for XIM" 1>&6 -echo "configure:7673: checking for XIM" >&5 +echo "configure:7701: checking for XIM" >&5 if test "$have_lesstif" = "yes"; then with_xim=xlib else echo $ac_n "checking for XmImMbLookupString in -lXm""... $ac_c" 1>&6 -echo "configure:7677: checking for XmImMbLookupString in -lXm" >&5 +echo "configure:7705: 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:7721: \"$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 @@ -7755,15 +7783,15 @@ EOF if test "$with_xfs" = "yes" ; then echo "checking for XFontSet" 1>&6 -echo "configure:7759: checking for XFontSet" >&5 +echo "configure:7787: checking for XFontSet" >&5 echo $ac_n "checking for XmbDrawString in -lX11""... $ac_c" 1>&6 -echo "configure:7762: checking for XmbDrawString in -lX11" >&5 +echo "configure:7790: 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:7806: \"$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 @@ -7814,15 +7842,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:7818: checking for wnn/jllib.h" >&5 +echo "configure:7846: 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:7826: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7854: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -7847,10 +7875,10 @@ fi for ac_func in crypt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7851: checking for $ac_func" >&5 +echo "configure:7879: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:7905: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7902,12 +7930,12 @@ done test "$ac_cv_func_crypt" != "yes" && { echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6 -echo "configure:7906: checking for crypt in -lcrypt" >&5 +echo "configure:7934: 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:7950: \"$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 @@ -7953,12 +7981,12 @@ fi if test -z "$with_wnn" -o "$with_wnn" = "yes"; then echo $ac_n "checking for jl_dic_list_e in -lwnn""... $ac_c" 1>&6 -echo "configure:7957: checking for jl_dic_list_e in -lwnn" >&5 +echo "configure:7985: 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:8001: \"$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 @@ -7987,12 +8015,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for jl_dic_list_e in -lwnn4""... $ac_c" 1>&6 -echo "configure:7991: checking for jl_dic_list_e in -lwnn4" >&5 +echo "configure:8019: 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 +if { (eval echo configure:8035: \"$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 @@ -8021,12 +8049,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for jl_dic_list_e in -lwnn6""... $ac_c" 1>&6 -echo "configure:8025: checking for jl_dic_list_e in -lwnn6" >&5 +echo "configure:8053: 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 +if { (eval echo configure:8069: \"$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 @@ -8055,12 +8083,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for dic_list_e in -lwnn6_fromsrc""... $ac_c" 1>&6 -echo "configure:8059: checking for dic_list_e in -lwnn6_fromsrc" >&5 +echo "configure:8087: 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 +if { (eval echo configure:8103: \"$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 @@ -8119,12 +8147,12 @@ EOF if test "$with_wnn6" != "no"; then echo $ac_n "checking for jl_fi_dic_list in -l$libwnn""... $ac_c" 1>&6 -echo "configure:8123: checking for jl_fi_dic_list in -l$libwnn" >&5 +echo "configure:8151: checking for jl_fi_dic_list in -l$libwnn" >&5 ac_lib_var=`echo $libwnn'_'jl_fi_dic_list | sed 'y%./+-%__p_%'` xe_check_libs=" -l$libwnn " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:8167: \"$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 @@ -8170,15 +8198,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:8174: checking for canna/jrkanji.h" >&5 +echo "configure:8202: 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:8182: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8210: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -8205,15 +8233,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:8209: checking for canna/jrkanji.h" >&5 +echo "configure:8237: 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:8217: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8245: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -8241,15 +8269,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:8245: checking for canna/RK.h" >&5 +echo "configure:8273: 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:8253: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8281: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -8272,12 +8300,12 @@ fi } test -z "$with_canna" && { echo $ac_n "checking for RkBgnBun in -lRKC""... $ac_c" 1>&6 -echo "configure:8276: checking for RkBgnBun in -lRKC" >&5 +echo "configure:8304: 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:8320: \"$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 @@ -8311,12 +8339,12 @@ fi } test -z "$with_canna" && { echo $ac_n "checking for jrKanjiControl in -lcanna""... $ac_c" 1>&6 -echo "configure:8315: checking for jrKanjiControl in -lcanna" >&5 +echo "configure:8343: 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:8359: \"$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 @@ -8376,12 +8404,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:8380: checking for layout_object_getvalue in -li18n" >&5 +echo "configure:8408: 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:8424: \"$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 @@ -8478,10 +8506,10 @@ 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:8482: checking for $ac_func" >&5 +echo "configure:8510: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:8536: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8545,10 +8573,10 @@ case "$opsys" in * ) for ac_func in realpath do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8549: checking for $ac_func" >&5 +echo "configure:8577: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:8603: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8605,16 +8633,16 @@ done esac echo $ac_n "checking whether netdb declares h_errno""... $ac_c" 1>&6 -echo "configure:8609: checking whether netdb declares h_errno" >&5 +echo "configure:8637: checking whether netdb declares h_errno" >&5 cat > conftest.$ac_ext < int main() { return h_errno; ; return 0; } EOF -if { (eval echo configure:8618: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:8646: \"$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 @@ -8634,16 +8662,16 @@ fi rm -f conftest* echo $ac_n "checking for sigsetjmp""... $ac_c" 1>&6 -echo "configure:8638: checking for sigsetjmp" >&5 +echo "configure:8666: checking for sigsetjmp" >&5 cat > conftest.$ac_ext < int main() { sigjmp_buf bar; sigsetjmp (bar, 0); ; return 0; } EOF -if { (eval echo configure:8647: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:8675: \"$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 @@ -8663,11 +8691,11 @@ fi rm -f conftest* echo $ac_n "checking whether localtime caches TZ""... $ac_c" 1>&6 -echo "configure:8667: checking whether localtime caches TZ" >&5 +echo "configure:8695: checking whether localtime caches TZ" >&5 if test "$ac_cv_func_tzset" = "yes"; then cat > conftest.$ac_ext < #if STDC_HEADERS @@ -8702,7 +8730,7 @@ main() exit (0); } EOF -if { (eval echo configure:8706: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:8734: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then emacs_cv_localtime_cache=no else @@ -8732,9 +8760,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:8736: checking whether gettimeofday accepts one or two arguments" >&5 +echo "configure:8764: 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:8788: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* echo "$ac_t""two" 1>&6 else @@ -8778,19 +8806,19 @@ fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:8782: checking for inline" >&5 +echo "configure:8810: 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:8822: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -8840,17 +8868,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:8844: checking for working alloca.h" >&5 +echo "configure:8872: 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:8854: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:8882: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_cv_header_alloca_h=yes else @@ -8874,10 +8902,10 @@ EOF fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:8878: checking for alloca" >&5 +echo "configure:8906: checking for alloca" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:8932: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_cv_func_alloca_works=yes else @@ -8939,10 +8967,10 @@ EOF echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:8943: checking whether alloca needs Cray hooks" >&5 +echo "configure:8971: 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:8970: checking for $ac_func" >&5 +echo "configure:8998: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:9024: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -9022,10 +9050,10 @@ done fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:9026: checking stack direction for C alloca" >&5 +echo "configure:9054: 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:9076: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_c_stack_direction=1 else @@ -9073,15 +9101,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:9077: checking for vfork.h" >&5 +echo "configure:9105: 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:9085: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9113: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -9109,10 +9137,10 @@ else fi echo $ac_n "checking for working vfork""... $ac_c" 1>&6 -echo "configure:9113: checking for working vfork" >&5 +echo "configure:9141: checking for working vfork" >&5 cat > conftest.$ac_ext < @@ -9207,7 +9235,7 @@ main() { } } EOF -if { (eval echo configure:9211: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:9239: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_vfork_works=yes else @@ -9233,10 +9261,10 @@ fi echo $ac_n "checking for working strcoll""... $ac_c" 1>&6 -echo "configure:9237: checking for working strcoll" >&5 +echo "configure:9265: checking for working strcoll" >&5 cat > conftest.$ac_ext < main () @@ -9246,7 +9274,7 @@ main () strcoll ("123", "456") >= 0); } EOF -if { (eval echo configure:9250: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:9278: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_strcoll_works=yes else @@ -9274,10 +9302,10 @@ fi for ac_func in getpgrp do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:9278: checking for $ac_func" >&5 +echo "configure:9306: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:9332: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -9328,10 +9356,10 @@ fi done echo $ac_n "checking whether getpgrp takes no argument""... $ac_c" 1>&6 -echo "configure:9332: checking whether getpgrp takes no argument" >&5 +echo "configure:9360: 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:9418: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_getpgrp_void=yes else @@ -9413,10 +9441,10 @@ fi echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:9417: checking for working mmap" >&5 +echo "configure:9445: checking for working mmap" >&5 case "$opsys" in ultrix* ) have_mmap=no ;; *) cat > conftest.$ac_ext < #include @@ -9449,7 +9477,7 @@ int main (int argc, char *argv[]) return 1; } EOF -if { (eval echo configure:9453: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:9481: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then have_mmap=yes else @@ -9474,15 +9502,15 @@ 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:9478: checking for $ac_hdr" >&5 +echo "configure:9506: 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:9486: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9514: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -9514,10 +9542,10 @@ done for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:9518: checking for $ac_func" >&5 +echo "configure:9546: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:9572: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -9568,10 +9596,10 @@ fi done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:9572: checking for working mmap" >&5 +echo "configure:9600: checking for working mmap" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:9743: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_mmap_fixed_mapped=yes else @@ -9749,15 +9777,15 @@ EOF ac_safe=`echo "termios.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for termios.h""... $ac_c" 1>&6 -echo "configure:9753: checking for termios.h" >&5 +echo "configure:9781: 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:9761: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9789: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -9800,15 +9828,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:9804: checking for termio.h" >&5 +echo "configure:9832: 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:9812: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9840: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -9840,10 +9868,10 @@ fi echo $ac_n "checking for socket""... $ac_c" 1>&6 -echo "configure:9844: checking for socket" >&5 +echo "configure:9872: checking for socket" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:9898: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_socket=yes" else @@ -9881,15 +9909,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:9885: checking for netinet/in.h" >&5 +echo "configure:9913: 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:9893: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9921: \"$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,15 +9934,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:9910: checking for arpa/inet.h" >&5 +echo "configure:9938: 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:9918: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9946: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -9939,9 +9967,9 @@ EOF } echo $ac_n "checking "for sun_len member in struct sockaddr_un"""... $ac_c" 1>&6 -echo "configure:9943: checking "for sun_len member in struct sockaddr_un"" >&5 +echo "configure:9971: checking "for sun_len member in struct sockaddr_un"" >&5 cat > conftest.$ac_ext < @@ -9952,7 +9980,7 @@ int main() { static struct sockaddr_un x; x.sun_len = 1; ; return 0; } EOF -if { (eval echo configure:9956: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:9984: \"$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 @@ -9970,9 +9998,9 @@ else fi rm -f conftest* echo $ac_n "checking "for ip_mreq struct in netinet/in.h"""... $ac_c" 1>&6 -echo "configure:9974: checking "for ip_mreq struct in netinet/in.h"" >&5 +echo "configure:10002: checking "for ip_mreq struct in netinet/in.h"" >&5 cat > conftest.$ac_ext < @@ -9982,7 +10010,7 @@ int main() { static struct ip_mreq x; ; return 0; } EOF -if { (eval echo configure:9986: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:10014: \"$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 @@ -10013,10 +10041,10 @@ fi echo $ac_n "checking for msgget""... $ac_c" 1>&6 -echo "configure:10017: checking for msgget" >&5 +echo "configure:10045: checking for msgget" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:10071: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_msgget=yes" else @@ -10054,15 +10082,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:10058: checking for sys/ipc.h" >&5 +echo "configure:10086: 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:10066: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10094: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -10079,15 +10107,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:10083: checking for sys/msg.h" >&5 +echo "configure:10111: 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:10091: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10119: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -10125,15 +10153,15 @@ fi ac_safe=`echo "dirent.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for dirent.h""... $ac_c" 1>&6 -echo "configure:10129: checking for dirent.h" >&5 +echo "configure:10157: 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:10137: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10165: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -10160,15 +10188,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:10164: checking for sys/dir.h" >&5 +echo "configure:10192: 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:10172: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10200: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -10201,15 +10229,15 @@ fi ac_safe=`echo "nlist.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for nlist.h""... $ac_c" 1>&6 -echo "configure:10205: checking for nlist.h" >&5 +echo "configure:10233: 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:10213: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10241: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -10239,7 +10267,7 @@ fi echo "checking "for sound support"" 1>&6 -echo "configure:10243: checking "for sound support"" >&5 +echo "configure:10271: checking "for sound support"" >&5 case "$with_sound" in native | both ) with_native_sound=yes;; nas | no ) with_native_sound=no;; @@ -10250,15 +10278,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:10254: checking for multimedia/audio_device.h" >&5 +echo "configure:10282: 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:10262: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10290: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -10306,12 +10334,12 @@ fi if test -z "$native_sound_lib"; then echo $ac_n "checking for ALopenport in -laudio""... $ac_c" 1>&6 -echo "configure:10310: checking for ALopenport in -laudio" >&5 +echo "configure:10338: 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:10354: \"$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 @@ -10353,12 +10381,12 @@ fi if test -z "$native_sound_lib"; then echo $ac_n "checking for AOpenAudio in -lAlib""... $ac_c" 1>&6 -echo "configure:10357: checking for AOpenAudio in -lAlib" >&5 +echo "configure:10385: 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:10401: \"$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 @@ -10407,15 +10435,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:10411: checking for ${dir}/soundcard.h" >&5 +echo "configure:10439: 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:10419: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10447: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -10485,7 +10513,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 @@ -10512,7 +10540,7 @@ test -z "$with_tty" && with_tty=yes if test "$with_tty" = "yes" ; then echo "checking for TTY-related features" 1>&6 -echo "configure:10516: checking for TTY-related features" >&5 +echo "configure:10544: checking for TTY-related features" >&5 { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_TTY EOF @@ -10528,12 +10556,12 @@ EOF if test -z "$with_ncurses"; then echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6 -echo "configure:10532: checking for tgetent in -lncurses" >&5 +echo "configure:10560: 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:10576: \"$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 @@ -10577,15 +10605,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:10581: checking for ncurses/curses.h" >&5 +echo "configure:10609: 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:10589: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10617: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -10607,15 +10635,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:10611: checking for ncurses/term.h" >&5 +echo "configure:10639: 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:10619: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10647: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -10645,15 +10673,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:10649: checking for ncurses/curses.h" >&5 +echo "configure:10677: 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:10657: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10685: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -10688,12 +10716,12 @@ fi for lib in curses termlib termcap; do echo $ac_n "checking for tgetent in -l$lib""... $ac_c" 1>&6 -echo "configure:10692: checking for tgetent in -l$lib" >&5 +echo "configure:10720: 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:10736: \"$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 @@ -10735,12 +10763,12 @@ fi else echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6 -echo "configure:10739: checking for tgetent in -lcurses" >&5 +echo "configure:10767: 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:10783: \"$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 @@ -10769,12 +10797,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:10773: checking for tgetent in -ltermcap" >&5 +echo "configure:10801: 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:10817: \"$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 @@ -10833,15 +10861,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:10837: checking for gpm.h" >&5 +echo "configure:10865: 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:10845: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10873: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -10864,12 +10892,12 @@ fi } test -z "$with_gpm" && { echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6 -echo "configure:10868: checking for Gpm_Open in -lgpm" >&5 +echo "configure:10896: 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:10912: \"$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 @@ -10930,20 +10958,20 @@ test "$with_x11" = "yes" -o "$with_tty" = "yes" && extra_objs="$extra_objs event test "$with_database_gnudbm $with_database_dbm $with_database_berkdb" \ != "no no no" && echo "checking for database support" 1>&6 -echo "configure:10934: checking for database support" >&5 +echo "configure:10962: checking for database support" >&5 if test "$with_database_gnudbm $with_database_dbm" != "no no"; then ac_safe=`echo "ndbm.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ndbm.h""... $ac_c" 1>&6 -echo "configure:10939: checking for ndbm.h" >&5 +echo "configure:10967: checking for ndbm.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10947: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10975: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -10973,12 +11001,12 @@ fi if test "$with_database_gnudbm" != "no"; then echo $ac_n "checking for dbm_open in -lgdbm""... $ac_c" 1>&6 -echo "configure:10977: checking for dbm_open in -lgdbm" >&5 +echo "configure:11005: 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:11021: \"$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 @@ -11017,10 +11045,10 @@ fi if test "$with_database_dbm" != "no"; then echo $ac_n "checking for dbm_open""... $ac_c" 1>&6 -echo "configure:11021: checking for dbm_open" >&5 +echo "configure:11049: checking for dbm_open" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:11075: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_dbm_open=yes" else @@ -11062,12 +11090,12 @@ else echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6 -echo "configure:11066: checking for dbm_open in -ldbm" >&5 +echo "configure:11094: 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:11110: \"$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 @@ -11119,10 +11147,10 @@ EOF if test "$with_database_berkdb" != "no"; then echo $ac_n "checking for Berkeley db.h""... $ac_c" 1>&6 -echo "configure:11123: checking for Berkeley db.h" >&5 +echo "configure:11151: 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:11172: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* db_h_path="$path"; break else @@ -11156,9 +11184,9 @@ rm -f conftest* if test "$with_database_berkdb" != "no"; then echo $ac_n "checking for Berkeley DB version""... $ac_c" 1>&6 -echo "configure:11160: checking for Berkeley DB version" >&5 +echo "configure:11188: checking for Berkeley DB version" >&5 cat > conftest.$ac_ext < #if DB_VERSION_MAJOR > 1 @@ -11177,10 +11205,10 @@ fi rm -f conftest* echo $ac_n "checking for $dbfunc""... $ac_c" 1>&6 -echo "configure:11181: checking for $dbfunc" >&5 +echo "configure:11209: checking for $dbfunc" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:11235: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$dbfunc=yes" else @@ -11222,12 +11250,12 @@ else echo $ac_n "checking for $dbfunc in -ldb""... $ac_c" 1>&6 -echo "configure:11226: checking for $dbfunc in -ldb" >&5 +echo "configure:11254: 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:11270: \"$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 @@ -11302,12 +11330,12 @@ fi if test "$with_socks" = "yes"; then echo $ac_n "checking for SOCKSinit in -lsocks""... $ac_c" 1>&6 -echo "configure:11306: checking for SOCKSinit in -lsocks" >&5 +echo "configure:11334: 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:11350: \"$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 @@ -11371,21 +11399,19 @@ EOF LIBS="-Bstatic -lut -Bdynamic $LIBS" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-Bstatic -lut -Bdynamic\" to \$LIBS"; fi fi -test -z "$with_shlib" && test "$opsys $machine" = "cygwin32 intel386" && with_shlib=no - 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:11381: checking for $ac_hdr" >&5 +echo "configure:11407: 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:11389: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11415: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -11409,6 +11435,14 @@ cat >> confdefs.h <> confdefs.h <<\EOF +#define HAVE_DLFCN_H 1 +EOF +} + else echo "$ac_t""no" 1>&6 fi @@ -11416,12 +11450,12 @@ done test -z "$with_shlib" && test ! -z "$have_dlfcn" && { echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 -echo "configure:11420: checking for dlopen in -ldl" >&5 +echo "configure:11454: 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:11470: \"$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 @@ -11461,12 +11495,12 @@ fi } test -z "$with_shlib" && test ! -z "$have_dlfcn" && { echo $ac_n "checking for _dlopen in -lc""... $ac_c" 1>&6 -echo "configure:11465: checking for _dlopen in -lc" >&5 +echo "configure:11499: 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:11515: \"$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 @@ -11506,12 +11540,12 @@ fi } test -z "$with_shlib" && test ! -z "$have_dlfcn" && { echo $ac_n "checking for dlopen in -lc""... $ac_c" 1>&6 -echo "configure:11510: checking for dlopen in -lc" >&5 +echo "configure:11544: 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:11560: \"$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 @@ -11551,12 +11585,12 @@ fi } test -z "$with_shlib" && { echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 -echo "configure:11555: checking for shl_load in -ldld" >&5 +echo "configure:11589: 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:11605: \"$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 @@ -11596,12 +11630,12 @@ fi } test -z "$with_shlib" && { echo $ac_n "checking for dld_init in -ldld""... $ac_c" 1>&6 -echo "configure:11600: checking for dld_init in -ldld" >&5 +echo "configure:11634: 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 +if { (eval echo configure:11650: \"$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 @@ -11640,7 +11674,571 @@ fi } if test "$with_shlib" = "yes"; then - { test "$extra_verbose" = "yes" && cat << \EOF + +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:11689: 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:11717: 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:11741: 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:11834: 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* + CFLAGS="$save_CFLAGS" +else + echo "$ac_t""none" 1>&6 +fi + +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:11876: 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" + ;; + + freebsd2* | netbsd* | openbsd*) + xldf="-Bshareable" + xcldf="${wl}-Bshareable" + ;; + + freebsd3*) + xcldf="-shared" + ;; + + hpux*) + xldf="-b +s" + xcldf="${wl}-b ${wl}+s" + ;; + + irix5* | irix6* | osf3* | osf4*) + xcldf="${wl}-shared" + xldf="-shared" + ;; + + sco3.2v5* | unixware* | sysv5* | sysv4* | solaris2* | solaris7* | uts4*) + xcldf="-G" + xldf="-G" + ;; + + sunos4*) + xcldf="${wl}-assert ${wl}pure-text ${wl}-Bstatic" + xldf="-assert pure-text -Bstatic" + ;; + esac +fi # End if if we are using gcc + +if test -n "$xcldf"; then + save_LDFLAGS=$LDFLAGS + save_LIBS=$LIBS + save_xe_libs=$xe_libs + LDFLAGS="$xcldf $LDFLAGS" + LIBS= + xe_libs= + ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&5' + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then + rm -rf conftest* + cc_produces_so=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + cc_produces_so=no +fi +rm -f conftest* + 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 + +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:11959: 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:11984: 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:12022: 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 + xe_gnu_ld=no +fi +echo "$ac_t""${xe_gnu_ld}" 1>&6 + +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:12049: 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= + ;; + + sco3.2v5* | unixware* | sysv5* | sysv4* | solaris2* | solaris7*) + 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 @@ -11648,115 +12246,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:11666: 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:11757: checking for $ac_func" >&5 +echo "configure:12261: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:12287: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -11806,20 +12310,18 @@ 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:12325: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then : else @@ -12050,6 +12552,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 @@ -12100,7 +12634,6 @@ done - RECURSIVE_MAKE="\$(MAKE) \$(MFLAGS) CC='\$(CC)' CFLAGS='\$(CFLAGS)' LDFLAGS='\$(LDFLAGS)' CPPFLAGS='\$(CPPFLAGS)'" @@ -12123,6 +12656,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="" @@ -12506,6 +13049,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 @@ -12617,8 +13163,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 @@ -12643,6 +13191,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 @@ -12655,7 +13212,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 diff --git a/configure.in b/configure.in index 8c422dc..5243fb0 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 @@ -348,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='' @@ -460,6 +464,7 @@ while test $# != 0; do dnl Process (many) boolean options with_site_lisp | \ + with_site_modules | \ with_x | \ with_x11 | \ with_msw | \ @@ -706,7 +711,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) ;; @@ -714,6 +720,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) ;; @@ -1486,7 +1493,7 @@ fi if test -z "$dynamic"; then case "$opsys" in - hpux* | sunos4* | sco5 ) dynamic=no ;; + hpux* | sunos4* ) dynamic=no ;; *) dynamic=yes ;; esac fi @@ -1745,9 +1752,9 @@ 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" + dnl cygwin b19 can't cope with -O3, but most people use 20.1 or egcs now. + dnl test "$opsys $machine" = "cygwin32 intel386" && \ + dnl CFLAGS="-g -O2 -Wall -Wno-switch" elif test "$__SUNPRO_C" = "yes"; then case "$opsys" in sol2 ) CFLAGS="-v -xO4" ;; @@ -2022,6 +2029,9 @@ fi ])dnl XE_COMPUTE_RUNPATH() +dnl JKJ REMOVEME +dnl XE_SHLIB_STUFF + dnl ----------------------------------- dnl Do some misc autoconf-special tests dnl ----------------------------------- @@ -2493,7 +2503,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]) @@ -2525,8 +2535,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]) @@ -2740,6 +2749,15 @@ 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 @@ -2822,15 +2840,6 @@ 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 @@ -3585,30 +3594,27 @@ if test "$usage_tracking" = "yes"; then XE_PREPEND(-Bstatic -lut -Bdynamic, LIBS) fi -dnl cygwin can't cope with dlfcn at the moment -test -z "$with_shlib" && test "$opsys $machine" = "cygwin32 intel386" && with_shlib=no - 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. @@ -3796,16 +3802,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) @@ -3843,13 +3871,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) @@ -3878,10 +3905,14 @@ dnl Useful for building XEmacs with a C++ or 64-bit compiler. AC_SUBST(XEMACS_CC) -dnl The default is yes +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") @@ -4114,6 +4145,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 AC_OUTPUT($ac_output_files, [for dir in . $MAKE_SUBDIR; do diff --git a/configure.usage b/configure.usage index fe0004b..b5154f6 100644 --- a/configure.usage +++ b/configure.usage @@ -14,132 +14,134 @@ 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. ---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. - Works best when using GNU Make. + 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. --use-indexed-lrecord-implementation --use-minimal-tagbits ---gung-ho Build with new-style Lisp_Objects. - Equivalent to both of the 2 previous options combined. +--gung-ho Build with new-style Lisp_Objects. + Equivalent to both of the 2 previous options combined. 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. ---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. +--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 `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. + `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 @@ -149,75 +151,78 @@ Additional features: 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. 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. ---with-quantify Add support for performance debugging using Quantify. ---with-purify Add support for memory debugging using Purify. +--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. +--with-quantify Add support for performance debugging using Quantify. +--with-purify Add support for memory debugging using Purify. You may also specify any of the `path' variables found in Makefile.in, including --bindir, --libdir, --lispdir, --sitelispdir, --datadir, diff --git a/etc/NEWS b/etc/NEWS index 2e222f0..439f7c0 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -33,6 +33,16 @@ file. * Changes in XEmacs 21.2 ======================== +** Interactive searching and matching case improvements: +Case sensitiveness in searching operations is controled by the variable +`case-fold-search' (if non-nil, case is ignored while searching). This +mechanism has now been slightly improved in the case of an interactive +search: if the search string (or regexp) happens to contain uppercase +characters, the searching is forced to be case-sensitive, regardless of +the value of `case-fold-search'. This behavior affects all functions +performing interactive searches, like `zap-to-char', `tags-search', +`occur' etc. + ** 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. diff --git a/etc/package-index.LATEST.pgp b/etc/package-index.LATEST.pgp index d516331..c21fcd0 100644 --- a/etc/package-index.LATEST.pgp +++ b/etc/package-index.LATEST.pgp @@ -1,839 +1,727 @@ ------BEGIN PGP SIGNED MESSAGE----- - ;; Package Index file -- Do not edit manually. ;;;@@@ (package-get-update-base-entry (quote -(zenirc +(skk (standards-version 1.0 - version "1.04" - author-version "2.112" - date "1998-08-15" - build-date "1998-10-12" - maintainer "XEmacs Development Team " - distribution stable + version "1.12" + author-version "10.38" + date "1998-10-01" + build-date "1999-02-02" + maintainer "SL Baur " + distribution mule priority medium - category "comm" - dump nil - description "ZENIRC IRC Client." - filename "zenirc-1.04-pkg.tar.gz" - md5sum "96d9e09c41de5c19d8aa092ad544ad6d" - size 276116 - provides (zenirc) - requires (zenirc) + 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 -(w3 +(egg-its (standards-version 1.0 - version "1.10" - author-version "4.0pre23" - date "1998-07-18" - build-date "1998-10-12" + version "1.15" + author-version "21.0b62" + date "1999-01-04" + build-date "1999-02-02" maintainer "XEmacs Development Team " - distribution experimental + distribution mule priority high - category "comm" - 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) + category "mule" + dump t + description "Wnn (4.2 and 6) support. SJ3 support." + filename "egg-its-1.15-pkg.tar.gz" + md5sum "9c3f18c0c7eb0e77bc23af5aed0e3bcd" + size 257327 + 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 -(vm +(edict (standards-version 1.0 - version "1.14" - author-version "6.62" - date "1998-09-22" - build-date "1998-10-12" - maintainer "XEmacs Development Team " - distribution stable - priority medium - category "comm" + version "1.07" + 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 Emacs mailer." - filename "vm-1.14-pkg.tar.gz" - md5sum "e59383b955243ca90581fd6854bb5eff" - size 548815 - provides (vm) - requires (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 -(tm +(leim (standards-version 1.0 - version "1.15" - author-version "21.0" - date "1998-08-27" - 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 stable - priority low - category "comm" + distribution mule + priority medium + category "mule" 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) + 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 -(supercite +(locale (standards-version 1.0 - version "1.10" - author-version "3.55x2" - date "1998-08-9" - build-date "1998-10-12" + version "1.11" + author-version "21.0b62" + date "1998-07-24" + build-date "1999-02-02" maintainer "XEmacs Development Team " - distribution stable - priority low - category "comm" + distribution mule + priority high + category "mule" 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) + description "Localized menubars and localized splash screens." + filename "locale-1.11-pkg.tar.gz" + md5sum "245f5110c2adb4411e3f4e2db014c4bc" + size 32690 + provides () + requires (mule-base) type regular )) )) ;;;@@@ (package-get-update-base-entry (quote -(rmail +(mule-base (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" - 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) + version "1.27" + author-version "21.0b62" + date "1998-12-05" + build-date "1999-02-02" + maintainer "SL Baur " + distribution mule + priority high + category "mule" + dump t + description "Basic Mule support, required for building with Mule." + filename "mule-base-1.27-pkg.tar.gz" + md5sum "7a9732261af6d612e3800c23b3491e41" + size 508690 + 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 -(mew +(strokes (standards-version 1.0 version "1.04" - author-version "1.93b38" - date "1998-06-21" - build-date "1998-10-12" + author-version "21.0b62" + date "1998-01-25" + build-date "1999-02-02" maintainer "XEmacs Development Team " - distribution contrib - priority low - category "comm" + distribution stable + priority medium + category "oa" dump nil - description "Messaging in an Emacs World." - filename "mew-1.04-pkg.tar.gz" - md5sum "896793a5d91c0ecfe4af5a7351f82fb7" - size 517164 - provides (mew) - requires (mew) + 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 -(net-utils +(time (standards-version 1.0 - version "1.10" - author-version "21.0" - date "1998-07-01" - 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 low - category "comm" + priority medium + category "oa" 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 + 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 -(mh-e +(text-modes (standards-version 1.0 - version "1.08" - author-version "21.0" - date "1998-07-12" - build-date "1998-10-12" + version "1.17" + author-version "21.0b62" + date "1998-12-30" + build-date "1999-02-02" maintainer "XEmacs Development Team " - distribution contrib - priority low - category "comm" + distribution stable + priority high + category "oa" 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 "Miscellaneous support for editing text files." + filename "text-modes-1.17-pkg.tar.gz" + md5sum "3004046c35c63dd6df85094c2796d020" + size 195328 + 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 -(mailcryptng +(slider (standards-version 1.0 - version "1.01" - author-version "3.5b7" - date "1998-10-10" - build-date "1998-10-12" + version "1.09" + author-version "0.3x1" + date "1998-08-13" + build-date "1999-02-02" maintainer "XEmacs Development Team " - distribution stable + distribution experimental priority low - category "comm" + category "oa" 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) + 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 -(mailcrypt +(sgml (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 + distribution contrib priority low - category "comm" + 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 "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 -(irchat +(psgml (standards-version 1.0 - version "1.03" - author-version "980625-2" - date "1998-09-08" - build-date "1998-10-12" + version "1.11" + author-version "1.01" + date "1998-07-06" + 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 "Validated HTML/SGML editing." + filename "psgml-1.11-pkg.tar.gz" + md5sum "e6d5a593138aa8861a5a178097c05594" + size 425005 + provides (psgml sgml) + requires (edit-utils) type regular )) )) ;;;@@@ (package-get-update-base-entry (quote -(gnats +(pc (standards-version 1.0 - version "1.07" - author-version "3.101" - date "1998-08-01" - build-date "1998-10-12" + version "1.14" + author-version "21.0b62" + date "1998-07-25" + build-date "1999-02-02" maintainer "XEmacs Development Team " distribution stable - priority high - category "comm" - 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) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(footnote - (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 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 "PC style interface emulation." + filename "pc-1.14-pkg.tar.gz" + md5sum "e300f9e0ee56640e110bee972fca8333" + size 16243 + provides (delbs fusion pc-select pending-del s-region) + requires (xemacs-base) type regular )) )) ;;;@@@ (package-get-update-base-entry (quote -(eudc +(ispell (standards-version 1.0 - version "1.24" - author-version "1.24" - date "1998-10-15" - build-date "1998-10-15" - maintainer "Oscar Figueiredo " + version "1.14" + author-version "3.1" + date "1998-12-09" + build-date "1999-02-02" + maintainer "XEmacs Development Team " distribution stable 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 "Spell-checking with GNU ispell." + filename "ispell-1.14-pkg.tar.gz" + md5sum "2b382122698c2c46aeaa4847e7ab3825" + size 67525 + provides (ispell) + requires () type regular )) )) ;;;@@@ (package-get-update-base-entry (quote -(bbdb +(frame-icon (standards-version 1.0 version "1.06" - author-version "2.00.02" - date "1998-10-08" - build-date "1998-10-12" - maintainer "XEmacs Development Team " - distribution stable - priority medium - category "comm" - 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) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(gnus - (standards-version 1.0 - version "1.33" - author-version "5.6.44" - date "1998-09-25" - build-date "1998-10-15" + author-version "21.0b62" + date "1998-07-14" + build-date "1999-02-02" maintainer "XEmacs Development Team " - distribution stable - priority medium - category "comm" + distribution contrib + 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) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(mule-base - (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) + 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 -(egg-its +(forms (standards-version 1.0 - version "1.13" - author-version "21.0" - date "1998-08-11" - build-date "1998-10-15" + version "1.09" + author-version "2.10" + date "1998-01-25" + 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) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(edict - (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" + 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.09-pkg.tar.gz" + md5sum "7023bf24836c00572fc3b014d9c9b3c9" + size 47673 + 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.09" + author-version "21.0b62" + date "1998-09-01" + build-date "1999-02-02" 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.09-pkg.tar.gz" + md5sum "92e267eb29597430b85834cc57271e86" + size 248518 + 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.11" + author-version "0.6.2x" + date "1998-10-02" + build-date "1999-02-02" 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.11-pkg.tar.gz" + md5sum "896acffc88848f175ada5ae637b67738" + size 64858 + provides (speedbar) requires (xemacs-base) type regular )) )) ;;;@@@ (package-get-update-base-entry (quote -(text-modes +(edit-utils (standards-version 1.0 - version "1.13" - author-version "21.0" - date "1998-09-24" - build-date "1998-10-15" + version "1.36" + author-version "21.0b62" + date "1998-12-30" + build-date "1999-02-02" 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.36-pkg.tar.gz" + md5sum "c8465a98c57d1c91ccfd2ce1aee3b508" + size 574967 + 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 - (standards-version 1.0 - version "1.10" - author-version "0.6.2x" - date "1998-10-02" - build-date "1998-10-12" +(os-utils + (standards-version 1.0 + version "1.14" + author-version "21.0b62" + date "1998-12-30" + build-date "1999-02-02" 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.14-pkg.tar.gz" + md5sum "2ff61cea716a53af1846d1699b5194a7" + size 227298 + 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 +(igrep (standards-version 1.0 - version "1.03" - author-version "21.0" - date "1998-01-25" - build-date "1998-10-12" + 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" + version "1.12" + author-version "3.05" + date " to viper-" + build-date "1999-02-02" maintainer "XEmacs Development Team " 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.12-pkg.tar.gz" + md5sum "ded88cfaad39a6001389918808549efa" + size 317341 + 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.11" + author-version "3.42" + date "1998-08-11" + build-date "1999-02-02" + 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.11-pkg.tar.gz" + md5sum "efe43ac8ef52b9f8cf949783e30bb4a9" + size 209331 + 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 +729,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 +749,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.16" + author-version "21.0b62" + date "1998-10-16" + build-date "1999-02-02" 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.16-pkg.tar.gz" + md5sum "59229957e35e7109cb92407cf9c9dcaf" + size 84381 provides (vc) requires (dired xemacs-base) type regular @@ -883,21 +771,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 +795,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 +817,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,65 +839,21 @@ (package-get-update-base-entry (quote (prog-modes (standards-version 1.0 - version "1.13" - author-version "21.0" - date "1998-10-15" - build-date "1998-10-15" + version "1.17" + author-version "21.0b62" + date "1998-12-30" + build-date "1999-02-02" 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.17-pkg.tar.gz" + md5sum "23daac543cf9622f12fab0aff788ba26" + size 594744 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) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(pcl-cvs - (standards-version 1.0 - version "1.34" - author-version "R-2_0-Beta_2" - date "1998-10-12" - build-date "1998-10-12" - 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) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(jde - (standards-version 1.0 - version "1.06" - author-version "2.05" - date "1998-07-09" - build-date "1998-10-11" - maintainer "Andy Piper " - distribution stable - priority medium - 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) + requires (mail-lib xemacs-devel xemacs-base) type regular )) )) @@ -1017,43 +861,21 @@ (package-get-update-base-entry (quote (emerge (standards-version 1.0 - version "1.04" - author-version "21.0" + version "1.05" + author-version "21.0b62" date "1998-04-07" - build-date "1998-10-11" - 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 () - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(ediff - (standards-version 1.0 - version "1.13" - author-version "2.71" - date "up-mess): " - build-date "1998-10-15" + build-date "1999-02-02" maintainer "XEmacs Development Team " distribution stable - priority medium + priority low 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 "Another interface over GNU patch." + filename "emerge-1.05-pkg.tar.gz" + md5sum "1f4d70d7f4e73290837b2dbd2189be99" + size 61009 + provides (emerge) + requires () type regular )) )) @@ -1061,19 +883,19 @@ (package-get-update-base-entry (quote (debug (standards-version 1.0 - version "1.06" - author-version "21.0" - date "1998-07-09" - build-date "1998-10-11" + version "1.08" + author-version "21.0b62" + date "1998-11-18" + build-date "1999-02-02" maintainer "XEmacs Development Team " distribution contrib priority low category "prog" dump nil description "GUD, gdb, dbx debugging support." - filename "debug-1.06-pkg.tar.gz" - md5sum "807421911694a3c5853568efb71b88b0" - size 88964 + filename "debug-1.08-pkg.tar.gz" + md5sum "e2c9ff97146272670632311a9267765a" + size 89552 provides (dbx gdb-highlight gdb gdbsrc gud history) requires (xemacs-base) type regular @@ -1081,43 +903,21 @@ )) ;;;@@@ (package-get-update-base-entry (quote -(cc-mode - (standards-version 1.0 - version "1.13" - author-version "5.22" - date "1998-03-05" - build-date "1998-10-11" - maintainer "Barry Warsaw " - distribution stable - priority medium - category "prog" - dump nil - description "C, C++ and Java language support." - filename "cc-mode-1.13-pkg.tar.gz" - md5sum "1ea7ffaa586063356ae65f4777cfb431" - size 186436 - provides (cc-mode) - requires (xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote (c-support (standards-version 1.0 - version "1.09" - author-version "21.0" + version "1.10" + author-version "21.0b62" date "1998-03-25" - build-date "1998-10-11" + build-date "1999-02-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.09-pkg.tar.gz" - md5sum "f9dc7f8884203038f750d1e96087dc9c" - size 68730 + filename "c-support-1.10-pkg.tar.gz" + md5sum "40abc17d38e4a4a206cfc6b1eb0f6a8e" + size 69812 provides (c-comment-edit cmacexp ctypes hideif hideshow) requires (cc-mode xemacs-base) type regular @@ -1127,19 +927,19 @@ (package-get-update-base-entry (quote (ada (standards-version 1.0 - version "1.05" + version "1.06" author-version "2.27" date "1998-01-24" - build-date "1998-10-11" + build-date "1999-02-02" maintainer "XEmacs Development Team " distribution stable priority low category "prog" dump nil description "Ada language support." - filename "ada-1.05-pkg.tar.gz" - md5sum "374870f02139d0d80b56dab23f93b06d" - size 54388 + filename "ada-1.06-pkg.tar.gz" + md5sum "0f3d2dc2ff33d40092b324a7a5a363d6" + size 54364 provides (ada-mode ada-stmt) requires () type regular @@ -1147,439 +947,505 @@ )) ;;;@@@ (package-get-update-base-entry (quote -(viper +(pcl-cvs (standards-version 1.0 - version "1.10" - author-version "3.03" - date "1998-02-25" - 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 "wp" + category "prog" dump nil - description "VI emulation support." - filename "viper-1.10-pkg.tar.gz" - md5sum "f34ad536e27aa564849fcfb2fcf22a29" - size 315794 - provides (viper) - requires (xemacs-base) + 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 -(tpu +(cc-mode (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.15" + author-version "5.25" + date "1998-12-30" + build-date "1999-02-02" + maintainer "Barry Warsaw " + distribution stable priority medium - category "wp" + category "prog" dump nil - description "DEC EDIT/TPU support." - filename "tpu-1.07-pkg.tar.gz" - md5sum "be15173be8a57fcb7b7244a143026f8c" - size 58801 - provides (tpu) - requires () + 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 -(textools +(misc-games (standards-version 1.0 - version "1.07" - author-version "21.0" - date "1998-04-29" - build-date "1998-10-11" + version "1.09" + author-version "21.0b62" + date "1998-03-22" + build-date "1999-02-02" maintainer "XEmacs Development Team " - distribution stabl - priority medium - category "wp" + distribution stable + priority low + category "games" dump nil - description "Miscellaneous TeX support." - filename "textools-1.07-pkg.tar.gz" - md5sum "a7dff92bcb92c3401f7e6085216f72d7" - size 79178 - provides (bib-mode bibtex refer-to-bibtex) + description "Other amusements and diversions." + filename "misc-games-1.09-pkg.tar.gz" + md5sum "a4e7e18e7cf3ce771ad65dae24967603" + size 165698 + provides (decipher gomoku hanoi life morse rot13) requires (xemacs-base) type single )) )) ;;;@@@ (package-get-update-base-entry (quote -(texinfo +(mine (standards-version 1.0 - version "1.13" - author-version "21.0" - date "1998-07-20" - build-date "1998-10-11" + version "1.10" + author-version "1.9" + date "1998-05-09" + build-date "1999-02-02" maintainer "XEmacs Development Team " distribution stable - priority high - category "wp" + priority low + category "games" 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) + 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 -(reftex +(games (standards-version 1.0 version "1.09" - author-version "3.41" - date "1998-08-11" - build-date "1998-10-11" - maintainer "Carsten Dominik " + author-version "1.04" + date "1998-06-04" + build-date "1999-02-02" + maintainer "Glynn Clements " distribution stable - priority medium - category "wp" + priority low + category "games" 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 "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 -(edt +(cookie (standards-version 1.0 - version "1.06" - author-version "21.0" + version "1.10" + author-version "21.0b62" date "1998-04-07" - build-date "1998-10-11" + build-date "1999-02-02" maintainer "XEmacs Development Team " - distribution contrib + distribution stable priority low - category "wp" + category "games" dump nil - description "DEC EDIT/EDT emulation." - filename "edt-1.06-pkg.tar.gz" - md5sum "bb559e2a5c87b7b3f466b83a2ed7ef3b" - size 46138 - provides (edt) + 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 -(crisp +(bbdb (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 "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 "Crisp/Brief emulation." - filename "crisp-1.08-pkg.tar.gz" - md5sum "2c18df3dd1eb14e01768832b2b208af4" - size 10077 - provides (crisp scroll-lock) - requires () + 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 -(auctex +(zenirc (standards-version 1.0 - version "1.15" - author-version "9.7p" - date "1998-09-30" - build-date "1998-10-15" + 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 "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 "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 -(view-process +(mew (standards-version 1.0 - version "1.05" - author-version "2.4" - date "1998-01-24" - build-date "1998-10-12" + version "1.07" + author-version "1.93b38x1" + date "1998-12-09" + build-date "1999-02-02" + maintainer "XEmacs Development Team " + distribution contrib + priority low + category "comm" + dump nil + 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 +(tm + (standards-version 1.0 + version "1.16" + author-version "21.0b62" + date "1998-08-27" + build-date "1999-02-02" maintainer "XEmacs Development Team " distribution stable 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 "Emacs MIME support." + filename "tm-1.16-pkg.tar.gz" + md5sum "e8a3e6856d5fcfc674f95bc5b82a343e" + size 329571 + 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 -(os-utils +(gnus (standards-version 1.0 - version "1.12" - author-version "21.0" - date "1998-10-01" - build-date "1998-10-12" + version "1.37" + author-version "5.6.45" + date "1998-09-25" + build-date "1999-02-02" maintainer "XEmacs Development Team " distribution stable priority medium - category "os" + 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 "The Gnus Newsreader and Mailreader." + filename "gnus-1.37-pkg.tar.gz" + md5sum "8af2b47c6ebbe850d7e8c9906aa1611a" + size 1875259 + provides (gnus message) + requires (gnus tm apel w3 mh-e mailcrypt rmail mail-lib xemacs-base) + type regular )) )) ;;;@@@ (package-get-update-base-entry (quote -(ilisp +(rmail (standards-version 1.0 - version "1.06" - author-version "5.8" + 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 "comm" + dump nil + 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 +(mailcrypt + (standards-version 1.0 + version "1.07" + author-version "3.4" date "1998-01-24" - build-date "1998-10-12" + build-date "1999-02-02" maintainer "XEmacs Development Team " distribution stable priority low - category "os" + category "comm" 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) + 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 -(igrep +(supercite (standards-version 1.0 - version "1.04" - author-version "2.83" - date "1998-08-11" - build-date "1998-10-12" + version "1.11" + author-version "3.55x2" + date "1998-08-9" + build-date "1999-02-02" maintainer "XEmacs Development Team " 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 "An Emacs citation tool for News & Mail messages." + filename "supercite-1.11-pkg.tar.gz" + md5sum "816ba6aa0d984b06a0d8749fd85c4434" + size 99417 + provides (supercite) + requires (mail-lib xemacs-base) type regular )) )) ;;;@@@ (package-get-update-base-entry (quote -(eterm +(mh-e + (standards-version 1.0 + version "1.09" + author-version "21.0b62" + date "1998-07-12" + build-date "1999-02-02" + maintainer "XEmacs Development Team " + distribution contrib + priority low + category "comm" + dump nil + 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 +(gnats (standards-version 1.0 - version "1.07" - author-version "21.0" - date "1998-06-28" - 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 "Terminal emulation." - filename "eterm-1.07-pkg.tar.gz" - md5sum "f25bfd3c591f9ca5be6f3705ea2681a3" - size 108929 - provides (eterm) - requires (xemacs-base) + 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 -(misc-games +(footnote (standards-version 1.0 version "1.08" - author-version "21.0" - date "1998-03-22" - build-date "1998-10-11" - maintainer "XEmacs Development Team " + author-version "0.18x" + date "1998-08-27" + build-date "1999-02-02" + maintainer "SL Baur " distribution stable priority low - category "games" + 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 "Footnoting in mail message editing modes." + filename "footnote-1.08-pkg.tar.gz" + md5sum "2c2377f0e702b8ba437cc8e245c08cfd" + size 13352 + provides (footnote) + requires (mail-lib xemacs-base) + type regular )) )) ;;;@@@ (package-get-update-base-entry (quote -(mine +(eudc (standards-version 1.0 - version "1.09" - author-version "1.9" - date "1998-05-09" - build-date "1998-10-11" - maintainer "XEmacs Development Team " + version "1.27" + author-version "1.26" + date "1998-12-14" + build-date "1999-02-02" + maintainer "Oscar Figueiredo " distribution stable priority low - category "games" + category "comm" dump nil - description "Minehunt Game." - filename "mine-1.09-pkg.tar.gz" - md5sum "044c1e48ffca88adf46e0df91d456a49" - size 66794 - provides (xmine) - requires (xemacs-base) + description "Emacs Unified Directory Client (LDAP, PH)." + filename "eudc-1.27-pkg.tar.gz" + md5sum "60dfa739f2949117e7d7a5e382383419" + size 60248 + provides (eudc eudc-ldap eudc-ph) + requires (fsf-compat xemacs-base bbdb) type regular )) )) ;;;@@@ (package-get-update-base-entry (quote -(games +(net-utils (standards-version 1.0 - version "1.07" - author-version "1.04" - date "1998-06-04" - build-date "1998-10-11" - maintainer "Glynn Clements " + version "1.11" + author-version "21.0b62" + date "1998-07-01" + build-date "1999-02-02" + maintainer "XEmacs Development Team " distribution stable priority low - category "games" + category "comm" 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) - 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 -(cookie +(w3 (standards-version 1.0 - version "1.09" - author-version "21.0" - date "1998-04-07" - build-date "1998-10-11" + version "1.11" + author-version "4.0pre23" + date "1998-07-18" + build-date "1999-02-02" maintainer "XEmacs Development Team " - distribution stable - priority low - category "games" + distribution experimental + priority high + category "comm" 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 "A Web browser." + filename "w3-1.11-pkg.tar.gz" + md5sum "98237890a9a0ba5b76b2daf1129b2384" + size 612581 + provides (w3 url) + requires (w3 mail-lib xemacs-base) type regular )) )) ;;;@@@ (package-get-update-base-entry (quote -(xemacs-devel +(vm (standards-version 1.0 - version "1.19" - author-version "21.0" - date "1998-09-18" - build-date "1998-10-11" + version "1.15" + author-version "6.62" + date "1998-09-22" + build-date "1999-02-02" maintainer "XEmacs Development Team " distribution stable priority medium - category "libs" + category "comm" dump nil - description "Emacs Lisp developer support." - filename "xemacs-devel-1.19-pkg.tar.gz" - md5sum "1a9a1d467ae39ce1e93f5fd238112b3e" - size 83669 - provides (docref eldoc elp find-func hide-copyleft ielm regexp-opt trace) - requires (xemacs-base) - type single + description "An Emacs mailer." + filename "vm-1.15-pkg.tar.gz" + md5sum "732ed51ac098cf14a7a164db9cd88f2d" + size 548653 + provides (vm) + requires (mail-lib xemacs-base) + type regular )) )) ;;;@@@ (package-get-update-base-entry (quote -(xemacs-base +(sounds-wav (standards-version 1.0 - version "1.27" - author-version "21.0" - date "1998-10-08" - build-date "1998-10-11" + version "1.06" + author-version "21.0b62" + date "1998-06-30" + build-date "1999-02-02" maintainer "XEmacs Development Team " - distribution mule + distribution stable priority high 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 "XEmacs Microsoft sound files." + filename "sounds-wav-1.06-pkg.tar.gz" + md5sum "7f3dfd84e88b418ea58233bde7d859fc" + size 148545 + provides () requires () type regular )) )) ;;;@@@ (package-get-update-base-entry (quote -(tooltalk +(sounds-au (standards-version 1.0 - version "1.08" - author-version "21.0" - date "1998-07-25" - build-date "1998-10-11" + version "1.06" + author-version "21.0b62" + date "1998-06-30" + build-date "1999-02-02" maintainer "XEmacs Development Team " - distribution contrib - priority low + distribution stable + priority high category "libs" dump nil - description "Support for building with Tooltalk." - filename "tooltalk-1.08-pkg.tar.gz" - md5sum "9b4d7a73f9bd50273a011b1ed6522535" - size 9293 + description "XEmacs Sun sound files." + filename "sounds-au-1.06-pkg.tar.gz" + md5sum "aa4a6080061e802b72156f4ce59e9561" + size 125744 provides () requires () type regular @@ -1587,65 +1453,65 @@ )) ;;;@@@ (package-get-update-base-entry (quote -(mail-lib +(xemacs-devel (standards-version 1.0 - version "1.18" - author-version "21.0" - date "1998-06-08" - 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 "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 "Emacs Lisp developer support." + 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 regular + type single )) )) ;;;@@@ (package-get-update-base-entry (quote -(fsf-compat +(tooltalk (standards-version 1.0 - version "1.04" - author-version "21.0" - date "1998-09-12" - 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 "FSF Emacs compatibility files." - filename "fsf-compat-1.04-pkg.tar.gz" - md5sum "629a4f399a410e88841db23014d00300" - size 17419 - provides (overlay thingatpt timer x-popup-menu) + description "Support for building with Tooltalk." + filename "tooltalk-1.09-pkg.tar.gz" + md5sum "368d6407bf82711bee9a01fa6908b576" + size 9271 + provides () requires () - type single + type regular )) )) ;;;@@@ (package-get-update-base-entry (quote (elib (standards-version 1.0 - version "1.03" + version "1.04" author-version "1.0" date "1998-10-01" - build-date "1998-10-11" + build-date "1999-02-02" 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 + 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 single @@ -1653,43 +1519,21 @@ )) ;;;@@@ (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" - 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 - provides (efs) - requires (xemacs-base vm dired) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote (edebug (standards-version 1.0 - version "1.06" - author-version "21.0" + version "1.07" + author-version "21.0b62" date "1998-03-12" - build-date "1998-10-11" + build-date "1999-02-02" 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 + 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 @@ -1697,23 +1541,23 @@ )) ;;;@@@ (package-get-update-base-entry (quote -(dired +(Sun (standards-version 1.0 - version "1.03" - author-version "7.9" - date "1998-05-05" - build-date "1998-10-11" - maintainer "Mike Sperber " - distribution stable - priority medium + version "1.10" + author-version "21.0b62" + date "1998-07-25" + build-date "1999-02-02" + maintainer "XEmacs Development Team " + distribution sun + priority low category "libs" dump nil - description "Manage file systems." - filename "dired-1.03-pkg.tar.gz" - md5sum "30e621efdf8b83e72ad3b68f4e795069" - size 187593 - provides (diff dired) - requires (xemacs-base) + 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 )) )) @@ -1721,19 +1565,19 @@ (package-get-update-base-entry (quote (apel (standards-version 1.0 - version "1.07" + version "1.08" author-version "3.3" date "1998-07-23" - build-date "1998-10-11" + build-date "1999-02-02" 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 + filename "apel-1.08-pkg.tar.gz" + md5sum "125d8a29874f82ba1b1900848869e3c3" + size 34725 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 @@ -1741,79 +1585,113 @@ )) ;;;@@@ (package-get-update-base-entry (quote -(Sun +(efs (standards-version 1.0 - version "1.09" - author-version "21.0" - date "1998-07-25" - build-date "1998-10-11" - maintainer "XEmacs Development Team " - distribution sun - priority low + 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 "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 "Treat files on remote systems the same as local files." + filename "efs-1.14-pkg.tar.gz" + md5sum "2b4128fec0dcb31834f404ef962f10ab" + size 369742 + provides (efs) + requires (xemacs-base vm dired) type regular )) )) ;;;@@@ (package-get-update-base-entry (quote -(sounds-au +(dired (standards-version 1.0 version "1.05" - author-version "21.0" - date "1998-06-30" - build-date "1998-10-11" + author-version "7.9" + 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.05-pkg.tar.gz" + md5sum "392440b1472a2415b0b9b6779df93619" + size 187654 + provides (diff dired) + requires (xemacs-base) + type regular +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(mail-lib + (standards-version 1.0 + version "1.21" + author-version "21.0b62" + date "1999-01-20" + build-date "1999-02-02" maintainer "XEmacs Development Team " distribution stable - priority high + priority medium category "libs" dump nil - description "XEmacs Sun sound files." - filename "sounds-au-1.05-pkg.tar.gz" - md5sum "5e44ddd6754771e35303bf4e71c17a17" - size 125753 - provides () - requires () + description "Fundamental lisp files for providing email support." + filename "mail-lib-1.21-pkg.tar.gz" + md5sum "4011698f9a440406af74ee1694e5539b" + size 131218 + 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-wav +(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 Microsoft sound files." - filename "sounds-wav-1.05-pkg.tar.gz" - md5sum "e110bc6096bcd24181b45c1b7f83eb59" - size 148564 - 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 single +)) +)) +;;;@@@ +(package-get-update-base-entry (quote +(xemacs-base + (standards-version 1.0 + version "1.29" + author-version "21.0b62" + date "1998-12-05" + build-date "1999-02-02" + maintainer "XEmacs Development Team " + distribution mule + priority high + category "libs" + dump nil + description "Fundamental XEmacs support, you almost certainly need this." + filename "xemacs-base-1.29-pkg.tar.gz" + md5sum "da907ff396bc3d1143a7d2f5142f5dd2" + size 430466 + 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/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/lib-src/ChangeLog b/lib-src/ChangeLog index a9429e0..bce323a 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,3 +1,31 @@ +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. diff --git a/lib-src/Makefile.in.in b/lib-src/Makefile.in.in index 036a225..1e62172 100644 --- a/lib-src/Makefile.in.in +++ b/lib-src/Makefile.in.in @@ -55,6 +55,9 @@ libdir=@libdir@ srcdir=@srcdir@ archlibdir=@archlibdir@ configuration=@configuration@ +moduledir=@moduledir@ +sitemoduledir=@sitemoduledir@ + ## ==================== Utility Programs for the Build ================= INSTALL = @install_pp@ @INSTALL@ @@ -71,11 +74,19 @@ INSTALL_DATA = @INSTALL_DATA@ ## which should be installed in bindir. INSTALLABLES_BASE = etags ctags b2m gnuclient ootags 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, @@ -229,7 +240,7 @@ mostlyclean: clean: mostlyclean $(RM) ${INSTALLABLES} ${UTILITIES} *.exe distclean: clean - $(RM) DOC *.tab.c *.tab.h aixcc.c TAGS + $(RM) DOC *.tab.c *.tab.h aixcc.c TAGS ellcc.h $(RM) GNUmakefile Makefile Makefile.in blessmail config.values realclean: distclean extraclean: distclean @@ -269,15 +280,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 \ diff --git a/lib-src/ellcc.c b/lib-src/ellcc.c new file mode 100644 index 0000000..acc3abe --- /dev/null +++ b/lib-src/ellcc.c @@ -0,0 +1,681 @@ +/* ellcc.c - front-end for compiling Emacs modules +Copyright (C) 1998, 1999 J. Kean Johnston. + +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. + +Author: J. Kean Johnston (jkj@sco.com). +Please mail bugs and suggestions to the XEmacs maintainer. +*/ + +/* +Here's the scoop. We would really like this to be a shell script, but +the various Windows platforms dont have reliable scripting that suits +our needs. We dont want to reply on perl or some other such language +so we have to roll our own executable to act as a front-end for the +compiler. + +This program is used to invoke the compiler, the linker and to generate +the module specific documentation and initialization code. We assume we +are in 'compile' mode unless we encounter an argument which tells us +that we're not. We take all arguments and pass them on directly to the +compiler, except for a few which are specific to this program: + + --mode=VALUE This sets the program mode. VALUE can be one of + compile, link, init or verbose. + --mod-name=NAME Sets the module name to the string NAME. + --mod-title=TITLE Sets the module title to the string TITLE. + --mod-version=VER Sets the module version to the string VER. + +The idea is that Makefiles will use ellcc as the compiler for making +dynamic Emacs modules, and life should be as simple as: + + make CC=ellcc LD='ellcc --mode=link' + +The only additional requirement is an entry in the Makefile to produce +the module initialization file, which will usually be something along +the lines of: + + modinit.c: $(SRCS) + ellcc --mode=init --mod-name=\"$(MODNAME)\" \ + --mod-title=\"$(MODTITLE)\" --mod-version=\"$(MODVERSION)\" \ + -o $@ $(SRCS) + +See the samples for more details. +*/ + +#include +#include + +#ifdef MSDOS +# include +# include +# include +# ifndef HAVE_CONFIG_H +# define DOS_NT +# include +# endif +#endif /* MSDOS */ + +#ifdef WINDOWSNT +# include +# include +# include +# include +# define MAXPATHLEN _MAX_PATH +# ifdef HAVE_CONFIG_H +# undef HAVE_NTGUI +# else +# define DOS_NT +# define HAVE_GETCWD +# endif /* not HAVE_CONFIG_H */ +#endif /* WINDOWSNT */ + +#ifdef HAVE_CONFIG_H +# include + /* On some systems, Emacs defines static as nothing for the sake + of unexec. We don't want that here since we don't use unexec. */ +# undef static +#endif /* HAVE_CONFIG_H */ + +#if !defined (WINDOWSNT) && defined (STDC_HEADERS) +#include +#include +#endif + +#ifdef HAVE_UNISTD_H +# include +#else +# ifdef HAVE_GETCWD + extern char *getcwd (); +# endif +#endif /* HAVE_UNISTD_H */ + +#include +#include +#include +#ifndef errno + extern int errno; +#endif +#include +#include + +#define EMODULES_GATHER_VERSION +#include "emodules.h" +#include "ellcc.h" + +#if !defined (S_ISREG) && defined (S_IFREG) +# define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) +#endif + +/* Exit codes for success and failure. */ +#ifdef VMS +# define GOOD 1 +# define BAD 0 +#else +# define GOOD 0 +# define BAD 1 +#endif + +#define DEBUG + +#ifndef HAVE_SHLIB +int +main() +{ + fprintf (stderr, "Dynamic modules not supported on this platform\n"); + return (BAD); +} +#else + +/* + * Try to figure out the commands we need to use to create shared objects, + * and how to compile for PIC mode. + */ + +/* + * xnew, xrnew -- allocate, reallocate storage + * + * SYNOPSIS: Type *xnew (int n, Type); + * Type *xrnew (OldPointer, int n, Type); + */ +#ifdef chkmalloc +# include "chkmalloc.h" +# define xnew(n,Type) ((Type *) trace_malloc (__FILE__, __LINE__, \ + (n) * sizeof (Type))) +# define xrnew(op,n,Type) ((Type *) trace_realloc (__FILE__, __LINE__, \ + (op), (n) * sizeof (Type))) +#else +# define xnew(n,Type) ((Type *) xmalloc ((n) * sizeof (Type))) +# define xrnew(op,n,Type) ((Type *) xrealloc ((op), (n) * sizeof (Type))) +#endif +long *xmalloc (), *xrealloc (); +void fatal (), pfatal (); +char *ellcc_strchr (), *ellcc_strrchr (); +void add_to_argv (); +void do_compile_mode(), do_link_mode(), do_init_mode(); + +#define SSTR(S) ((S)?(S):"") + +#define ELLCC_COMPILE_MODE 0 +#define ELLCC_LINK_MODE 1 +#define ELLCC_INIT_MODE 2 + +int ellcc_mode = ELLCC_COMPILE_MODE; +char *progname; +char *mod_name = (char *)0, *mod_version = (char *)0, *mod_title = (char *)0; +char *mod_output = (char *)0; +int verbose = 0; +char **exec_argv; +int exec_argc = 1, *exec_args; +int real_argc = 0; +int prog_argc; +char **prog_argv; + +/* + * We allow the user to over-ride things in the environment + */ +char *ellcc, *ellld, *ellcflags, *ellldflags, *ellpicflags, *elldllflags; +#define OVERENV(STR,EVAR,DFLT) \ + STR = getenv(EVAR); \ + if ((STR) == (char *)0) \ + STR = DFLT + +int +main (argc, argv) + int argc; + char *argv[]; +{ + char *tmp; + int i, done_mode = 0; + + prog_argc = argc; + prog_argv = argv; + +#if defined(MSDOS) || defined(WINDOWSNT) + tmp = ellcc_strrchr (argv[0], '\\'); + if (tmp != (char *)0) + tmp++; +#elif !defined (VMS) + tmp = ellcc_strrchr (argv[0], '/'); + if (tmp != (char *)0) + tmp++; +#else + tmp = argv[0]; +#endif + + if (tmp != (char *)0) + progname = tmp; + else + progname = argv[0]; + + tmp = &progname[strlen(progname)-2]; + if (strcmp (tmp, "cc") == 0) + ellcc_mode = ELLCC_COMPILE_MODE; + else if (strcmp (tmp, "ld") == 0) + ellcc_mode = ELLCC_LINK_MODE; + else if (strcmp (tmp, "it") == 0) + ellcc_mode = ELLCC_INIT_MODE; + + exec_argv = xnew(argc + 20, char *); + exec_args = xnew(argc, int); + for (i = 0; i < argc; i++) + exec_args[i] = -1; + + if (argc < 2) + fatal ("too few arguments", (char *)0); + + exec_args[0] = 0; + + for (i = 1; i < argc; i++) + { + if (strncmp (argv[i], "--mode=", 7) == 0) + { + char *modeopt = argv[i] + 7; + + if (done_mode && strcmp (modeopt, "verbose")) + fatal ("more than one mode specified"); + if (strcmp (modeopt, "link") == 0) + { + done_mode++; + ellcc_mode = ELLCC_LINK_MODE; + } + else if (strcmp (modeopt, "compile") == 0) + { + done_mode++; + ellcc_mode = ELLCC_COMPILE_MODE; + } + else if (strcmp (modeopt, "init") == 0) + { + done_mode++; + ellcc_mode = ELLCC_INIT_MODE; + } + else if (strcmp (modeopt, "verbose") == 0) + verbose += 1; + } + else if (strcmp (argv[i], "--mod-location") == 0) + { + printf ("%s\n", ELLCC_MODDIR); + return 0; + } + else if (strcmp (argv[i], "--mod-site-location") == 0) + { + printf ("%s\n", ELLCC_SITEMODS); + return 0; + } + else if (strcmp (argv[i], "--mod-archdir") == 0) + { + printf ("%s\n", ELLCC_ARCHDIR); + return 0; + } + else if (strcmp (argv[i], "--mod-config") == 0) + { + printf ("%s\n", ELLCC_CONFIG); + return 0; + } + else if (strncmp (argv[i], "--mod-name=", 10) == 0) + mod_name = argv[i] + 11; + else if (strncmp (argv[i], "--mod-title=", 11) == 0) + mod_title = argv[i] + 12; + else if (strncmp (argv[i], "--mod-version=", 13) == 0) + mod_version = argv[i] + 14; + else if (strncmp (argv[i], "--mod-output=", 12) == 0) + mod_output = argv[i] + 13; + else + { + exec_args[exec_argc] = i; + exec_argc++; + } + } + + if (ellcc_mode == ELLCC_LINK_MODE && mod_output == (char *)0) + fatal ("must specify --mod-output when linking", (char *)0); + if (ellcc_mode == ELLCC_INIT_MODE && mod_output == (char *)0) + fatal ("must specify --mod-output when creating init file", (char *)0); + if (ellcc_mode == ELLCC_INIT_MODE && mod_name == (char *)0) + fatal ("must specify --mod-name when creating init file", (char *)0); + + /* + * We now have the list of arguments to pass to the compiler or + * linker (or to process for doc files). We can do the real work + * now. + */ + if (verbose) + printf ("ellcc driver version %s for EMODULES version %s (%ld)\n", + ELLCC_EMACS_VER, EMODULES_VERSION, EMODULES_REVISION); +#ifdef DEBUG + if (verbose >= 2) + { + printf (" mode = %d (%s)\n", ellcc_mode, + ellcc_mode == ELLCC_COMPILE_MODE ? "compile" : + ellcc_mode == ELLCC_LINK_MODE ? "link" : "init"); + printf (" module_name = \"%s\"\n", SSTR(mod_name)); + printf (" module_title = \"%s\"\n", SSTR(mod_title)); + printf (" module_version = \"%s\"\n", SSTR(mod_version)); + + printf (" CC = %s\n", ELLCC_CC); + printf (" CFLAGS = %s\n", ELLCC_CFLAGS); + printf (" CC PIC flags = %s\n", ELLCC_DLL_CFLAGS); + printf (" LD = %s\n", ELLCC_DLL_LD); + printf (" LDFLAGS = %s\n", ELLCC_DLL_LDFLAGS); + printf (" architecture = %s\n", ELLCC_CONFIG); + printf (" Include directory = %s/include\n", ELLCC_ARCHDIR); + printf ("\n"); + } +#endif + + if (exec_argc < 2) + fatal ("too few arguments"); + + /* + * Get the over-rides from the environment + */ + OVERENV(ellcc, "ELLCC", ELLCC_CC); + OVERENV(ellld, "ELLLD", ELLCC_DLL_LD); + OVERENV(ellcflags, "ELLCFLAGS", ELLCC_CFLAGS); + OVERENV(ellldflags, "ELLLDFLAGS", ELLCC_LDFLAGS); + OVERENV(elldllflags, "ELLDLLFLAGS", ELLCC_DLL_LDFLAGS); + OVERENV(ellpicflags, "ELLPICFLAGS", ELLCC_DLL_CFLAGS); + + if (ellcc_mode == ELLCC_COMPILE_MODE) + do_compile_mode(); + else if (ellcc_mode == ELLCC_LINK_MODE) + do_link_mode(); + else + do_init_mode(); + + /* + * The arguments to pass on to the desired program have now been set + * up and we can run the program. + */ + if (verbose) + { + for (i = 0; i < real_argc; i++) + printf ("%s ", exec_argv[i]); + printf ("\n"); + fflush (stdout); + } + exec_argv[real_argc] = (char *)0; /* Terminate argument list */ + + i = execvp (exec_argv[0], exec_argv); + if (verbose) + printf ("%s exited with status %d\n", exec_argv[0], i); + return i; +} + +/* Like malloc but get fatal error if memory is exhausted. */ +long * +xmalloc (size) + unsigned int size; +{ + long *result = (long *) malloc (size); + if (result == NULL) + fatal ("virtual memory exhausted", (char *)NULL); + return result; +} + +long * +xrealloc (ptr, size) + char *ptr; + unsigned int size; +{ + long *result = (long *) realloc (ptr, size); + if (result == NULL) + fatal ("virtual memory exhausted", (char *)NULL); + return result; +} + +/* Print error message and exit. */ +void +fatal (s1, s2) + char *s1, *s2; +{ + fprintf (stderr, "%s: ", progname); + fprintf (stderr, s1, s2); + fprintf (stderr, "\n"); + exit (BAD); +} + +void +pfatal (s1) + char *s1; +{ + perror (s1); + exit (BAD); +} + +/* + * Return the ptr in sp at which the character c last + * appears; NULL if not found + * + * Identical to System V strrchr, included for portability. + */ +char * +ellcc_strrchr (sp, c) + register char *sp, c; +{ + register char *r; + + r = NULL; + do + { + if (*sp == c) + r = sp; + } while (*sp++); + return r; +} + +/* + * Return the ptr in sp at which the character c first + * appears; NULL if not found + * + * Identical to System V strchr, included for portability. + */ +char * +ellcc_strchr (sp, c) + register char *sp, c; +{ + do + { + if (*sp == c) + return sp; + } while (*sp++); + return NULL; +} + +/* + * Add a string to the argument vector list that will be passed on down + * to the compiler or linker. We need to split individual words into + * arguments, taking quoting into account. This can get ugly. + */ +void +add_to_argv (str) + CONST char *str; +{ + int sm = 0; + CONST char *s = (CONST char *)0; + + if ((str == (CONST char *)0) || (str[0] == '\0')) + return; + + while (*str) + { + switch (sm) + { + case 0: /* Start of case - string leading whitespace */ + if (isspace (*str)) + str++; + else + { + sm = 1; /* Change state to non-whitespace */ + s = str; /* Mark the start of THIS argument */ + } + break; + + case 1: /* Non-whitespace character. Mark the start */ + if (isspace (*str)) + { + /* Reached the end of the argument. Add it. */ + int l = str-s; + exec_argv[real_argc] = xnew (l+2, char); + strncpy (exec_argv[real_argc], s, l); + exec_argv[real_argc][l] = '\0'; + real_argc++; + sm = 0; /* Back to start state */ + s = (CONST char *)0; + break; + } + else if (*str == '\\') + { + sm = 2; /* Escaped character */ + str++; + break; + } + else if (*str == '\'') + { + /* Start of quoted string (single quotes) */ + sm = 3; + } + else if (*str == '"') + { + /* Start of quoted string (double quotes) */ + sm = 4; + } + else + { + /* This was just a normal character. Advance the pointer. */ + str++; + } + break; + + case 2: /* Escaped character */ + str++; /* Preserve the quoted character */ + sm = 1; /* Go back to gathering state */ + break; + + case 3: /* Inside single quoted string */ + if (*str == '\'') + sm = 1; + str++; + break; + + case 4: /* inside double quoted string */ + if (*str == '"') + sm = 1; + str++; + break; + } + } + + if (s != (CONST char *)0) + { + int l = str-s; + exec_argv[real_argc] = xnew (l+2, char); + strncpy (exec_argv[real_argc], s, l); + exec_argv[real_argc][l] = '\0'; + real_argc++; + s = (CONST char *)0; + } +} + +/* + * For compile mode, things are pretty straight forward. All we need to do + * is build up the argument vector and exec() it. We must just make sure + * that we get all of the required arguments in place. + */ +void +do_compile_mode() +{ + int i; + char ts[4096]; /* Plenty big enough */ + + add_to_argv (ellcc); + add_to_argv (ellcflags); + add_to_argv (ellpicflags); + add_to_argv ("-DPIC"); + add_to_argv ("-DEMACS_MODULE"); +#ifdef XEMACS + add_to_argv ("-DXEMACS_MODULE"); /* Cover both cases */ + add_to_argv ("-Dxemacs"); +#endif + add_to_argv ("-Demacs"); + sprintf (ts, "-I%s/include", ELLCC_ARCHDIR); + add_to_argv (ts); + add_to_argv (ELLCC_CF_ALL); + for (i = 1; i < exec_argc; i++) + exec_argv[real_argc++] = strdup (prog_argv[exec_args[i]]); +} + +/* + * For link mode, things are a little bit more complicated. We need to + * insert the linker commands first, replace any occurrence of ELLSONAME + * with the desired output file name, insert the output arguments, then + * all of the provided arguments, then the final post arguments. Once + * all of this has been done, the argument vector is ready to run. + */ +void +do_link_mode() +{ + int i,x; + char *t, ts[4096]; /* Plenty big enough */ + + add_to_argv (ellld); + add_to_argv (ellldflags); + add_to_argv (elldllflags); + add_to_argv (ELLCC_DLL_LDO); + add_to_argv (mod_output); + for (i = 1; i < exec_argc; i++) + exec_argv[real_argc++] = strdup (prog_argv[exec_args[i]]); + add_to_argv (ELLCC_DLL_POST); + + /* + * Now go through each argument and replace ELLSONAME with mod_output. + */ + for (i = 0; i < real_argc; i++) + { + x = 0; + ts[0] = '\0'; + + t = exec_argv[i]; + while (*t) + { + if (*t == 'E') + { + if (strncmp (t, "ELLSONAME", 9) == 0) + { + strcat (ts, mod_output); + t += 8; + x += strlen (mod_output); + } + else + { + ts[x] = *t; + x++; + ts[x] = '\0'; + } + } + else + { + ts[x] = *t; + x++; + ts[x] = '\0'; + } + t++; + } + free (exec_argv[i]); + exec_argv[i] = strdup (ts); + } +} + +/* + * In init mode, things are a bit easier. We assume that the only things + * passed on the command line are the names of source files which the + * make-doc program will be processing. We prepare the output file with + * the header information first, as make-doc will append to the file by + * special dispensation. + */ +void +do_init_mode() +{ + int i; + char ts[4096]; /* Plenty big enough */ + char *mdocprog; + FILE *mout = fopen (mod_output, "w"); + + if (mout == (FILE *)0) + fatal ("failed to open output file", mod_output); + fprintf (mout, "/* DO NOT EDIT - AUTOMATICALLY GENERATED */\n\n"); + fprintf (mout, "#include \n\n"); + fprintf (mout, "const long emodule_compiler = %ld;\n", EMODULES_REVISION); + fprintf (mout, "const char *emodule_name = \"%s\";\n", SSTR(mod_name)); + fprintf (mout, "const char *emodule_version = \"%s\";\n", SSTR(mod_version)); + fprintf (mout, "const char *emodule_title = \"%s\";\n", SSTR(mod_title)); + fprintf (mout, "\n\n"); + fprintf (mout, "void docs_of_%s()\n", SSTR(mod_name)); + fclose (mout); + + sprintf (ts, "%s/make-docfile", ELLCC_ARCHDIR); + OVERENV(mdocprog, "ELLMAKEDOC", ts); + add_to_argv (mdocprog); + sprintf (ts, "-E %s", mod_output); + add_to_argv (ts); + for (i = 1; i < exec_argc; i++) + exec_argv[real_argc++] = strdup (prog_argv[exec_args[i]]); +} + +#endif /* HAVE_SHLIB */ + diff --git a/lib-src/ellcc.h.in b/lib-src/ellcc.h.in new file mode 100644 index 0000000..7c3e49d --- /dev/null +++ b/lib-src/ellcc.h.in @@ -0,0 +1,33 @@ +/* DO NOT EDIT THIS FILE!!!! */ + +/* Most of this is required due to a bug in the GCC compiler driver + which prevents us from passing this on the command line. It also + reduces the compiler command line length, which can be a problem + on some systems. */ + +#ifndef ELLCC_HDR +#define ELLCC_HDR + +#define ELLCC_CC "@CC@" +#define ELLCC_CFLAGS "@CFLAGS@" +#define ELLCC_CPPFLAGS "@CPPFLAGS@" +#define ELLCC_LDFLAGS "@LDFLAGS@" +#define ELLCC_CF_GENERAL "@c_switch_general@" +#define ELLCC_CF_ALL "@c_switch_all@" +#define ELLCC_LF_GENERAL "@ld_switch_general@" +#define ELLCC_LF_ALL "@ld_switch_all@" +#define ELLCC_LIBS_GENERAL "@ld_libs_general@" +#define ELLCC_DLL_CFLAGS "@dll_cflags@" +#define ELLCC_DLL_LDFLAGS "@dll_ldflags@" +#define ELLCC_DLL_POST "@dll_post@" +#define ELLCC_DLL_LD "@dll_ld@" +#define ELLCC_DLL_LDO "@dll_ldo@" +#define ELLCC_CONFIG "@configuration@" +#define ELLCC_EMACS_VER "@version@" +#define ELLCC_PROGNAME "@PROGNAME@" +#define ELLCC_ARCHDIR "@ARCHLIBDIR@" +#define ELLCC_MODDIR "@MODULEDIR@" +#define ELLCC_SITEMODS "@SITEMODULEDIR@" + +#endif /* ELLCC_HDR */ + diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c index 467b388..79f79e1 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. @@ -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: diff --git a/lib-src/movemail.c b/lib-src/movemail.c index fd578c0..7a91c6e 100644 --- a/lib-src/movemail.c +++ b/lib-src/movemail.c @@ -79,7 +79,7 @@ extern char *optarg; extern int optind, opterr; #ifndef HAVE_STRERROR -static char * strerror (int errnum); +char * strerror (int errnum); #endif /* HAVE_STRERROR */ #ifdef MSDOS @@ -879,7 +879,7 @@ compile_regex (char* pattern) #endif /* MAIL_USE_POP */ #ifndef HAVE_STRERROR -static char * +char * strerror (int errnum) { extern char *sys_errlist[]; diff --git a/lisp/ChangeLog b/lisp/ChangeLog index ca5b6b9..6c2a988 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,89 @@ +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. diff --git a/lisp/about.el b/lisp/about.el index e70d07e..9f5d27b 100644 --- a/lisp/about.el +++ b/lisp/about.el @@ -80,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") @@ -88,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" "marcus_thiessel@hp.com") + (thiessel "Marcus Thiessel" "marcus@xemacs.org") (vladimir "Vladimir Ivanovic" "vladimir@mri.com") (wing "Ben Wing" "ben@xemacs.org") (wmperry "William Perry" "wmperry@aventail.com")) @@ -116,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/") @@ -817,15 +817,13 @@ He has a page at ") (widget-insert ".\n")) (thiessel (widget-insert "\ -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. - -For XEmacs he does beta testing and 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 @@ -1135,13 +1133,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 diff --git a/lisp/auto-autoloads.el b/lisp/auto-autoloads.el index 517e889..fb49fe1 100644 --- a/lisp/auto-autoloads.el +++ b/lisp/auto-autoloads.el @@ -175,7 +175,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) @@ -322,7 +322,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 +486,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 +515,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) @@ -925,7 +929,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. @@ -960,7 +964,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.") @@ -1062,7 +1066,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 @@ -1082,6 +1086,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. @@ -1302,7 +1309,10 @@ Fetch and install the latest versions of all customized packages." t nil) ;;;*** -;;;### (autoloads (pui-list-packages pui-add-install-directory) "package-ui" "lisp/package-ui.el") +;;;### (autoloads (pui-list-packages pui-add-install-directory package-ui-add-site) "package-ui" "lisp/package-ui.el") + +(autoload 'package-ui-add-site "package-ui" "\ +Add site to package-get-remote and possibly offer to update package list." nil nil) (autoload 'pui-add-install-directory "package-ui" "\ Add a new package binary directory to the head of `package-get-remote'. @@ -1317,6 +1327,8 @@ buffer, the user can see which packages are installed, which are not, and which are out-of-date (a newer version is available). The user can then select packages for installation via the keyboard or mouse." t nil) +(defalias 'list-packages 'pui-list-packages) + ;;;*** ;;;### (autoloads (picture-mode) "picture" "lisp/picture.el") @@ -1646,5 +1658,17 @@ or if you change your font path, you can call this to re-initialize the menus." (autoload 'font-menu-weight-constructor "x-font-menu" nil nil nil) ;;;*** + +;;;### (autoloads (x-win-init-sun) "x-win-sun" "lisp/x-win-sun.el") + +(autoload 'x-win-init-sun "x-win-sun" nil nil nil) + +;;;*** + +;;;### (autoloads (x-win-init-xfree86) "x-win-xfree86" "lisp/x-win-xfree86.el") + +(autoload 'x-win-init-xfree86 "x-win-xfree86" nil nil nil) + +;;;*** (provide 'Standard-autoloads) 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/cl-macs.el b/lisp/cl-macs.el index b35f74f..db30575 100644 --- a/lisp/cl-macs.el +++ b/lisp/cl-macs.el @@ -572,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." 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/font.el b/lisp/font.el index b6baa29..28bb05d 100644 --- a/lisp/font.el +++ b/lisp/font.el @@ -596,9 +596,10 @@ for use in the 'weight' field of an X font string.") ;;;###autoload (defun font-default-object-for-device (&optional device) (let ((font (font-default-font-for-device device))) - (unless (cdr-safe (assoc font font-default-cache)) - (push (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) diff --git a/lisp/ldap.el b/lisp/ldap.el index 7a06c6a..cad6f4f 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.2 $ +;; Version: $Revision: 1.7.2.3 $ ;; Keywords: help comm ;; This file is part of XEmacs @@ -35,9 +35,6 @@ ;;; Code: -(require 'ldap) -(require 'custom) - (defgroup ldap nil "Lightweight Directory Access Protocol" :group 'comm) @@ -170,5 +167,7 @@ Additional search parameters can be specified through (plist-get host-plist 'scope) attributes attrsonly) (ldap-close ldap)))) + +(provide 'ldap) ;;; ldap.el ends here diff --git a/lisp/loadup.el b/lisp/loadup.el index 61188a9..ee86aa9 100644 --- a/lisp/loadup.el +++ b/lisp/loadup.el @@ -50,8 +50,10 @@ #'(lambda () ;; message not defined yet ... (setq load-path (split-path (getenv "EMACSBOOTSTRAPLOADPATH"))) + (setq module-load-path (split-path (getenv "EMACSBOOTSTRAPMODULEPATH"))) (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*")) diff --git a/lisp/minibuf.el b/lisp/minibuf.el index 6055b8f..4a8ad96 100644 --- a/lisp/minibuf.el +++ b/lisp/minibuf.el @@ -67,7 +67,7 @@ The value may alternatively be a function, which is given three arguments: CODE, which says what kind of things to do. CODE can be nil, t or `lambda'. nil means to return the best completion of STRING, nil if there is none, - or t if it is was already a unique completion. + or t if it is already a unique completion. t means to return a list of all possible completions of STRING. `lambda' means to return t if STRING is a valid completion as it stands.") diff --git a/lisp/mouse.el b/lisp/mouse.el index 7c07a20..5bd4db7 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el @@ -1385,6 +1385,7 @@ and `mode-motion-hook'." (cond ((extentp help) (or inhibit-help-echo (eq help last-help-echo-object) ;save some time + (eq (selected-window) (minibuffer-window)) (let ((hprop (extent-property help 'help-echo))) (setq last-help-echo-object help) (or (stringp hprop) @@ -1395,11 +1396,12 @@ and `mode-motion-hook'." (toolbar-button-enabled-p help)) (or (not toolbar-help-enabled) (eq help last-help-echo-object) ;save some time + (eq (selected-window) (minibuffer-window)) (let ((hstring (toolbar-button-help-string button))) (setq last-help-echo-object help) (or (stringp hstring) (setq hstring (funcall hstring help))) - (show-help-echo hstring)))) + (and hstring (show-help-echo hstring))))) (last-help-echo-object (clear-help-echo))) (if mouse-grabbed-buffer (setq buffer mouse-grabbed-buffer)) diff --git a/lisp/package-admin.el b/lisp/package-admin.el index dcc62a5..2c99440 100644 --- a/lisp/package-admin.el +++ b/lisp/package-admin.el @@ -38,7 +38,9 @@ (defvar package-admin-temp-buffer "*Package Output*" "Temporary buffer where output of backend commands is saved.") -(defvar package-admin-install-function 'package-admin-default-install-function +(defvar package-admin-install-function (if (eq system-type 'windows-nt) + 'package-admin-install-function-mswindows + 'package-admin-default-install-function) "The function to call to install a package. Three args are passed: FILENAME PKG-DIR BUF Install package FILENAME into directory PKG-DIR, with any messages output @@ -126,7 +128,7 @@ The optional `pkg-dir' can be used to override the default package hierarchy (let ((default-directory (file-name-as-directory pkg-dir))) (unless (file-directory-p default-directory) (make-directory default-directory t)) - (call-process "djtar" nil buf t "-x" file))) + (call-process "minitar" nil buf t file))) (defun package-admin-default-install-function (file pkg-dir buf) "Default function to install a package. diff --git a/lisp/package-get.el b/lisp/package-get.el index 646aae7..3acf44e 100644 --- a/lisp/package-get.el +++ b/lisp/package-get.el @@ -198,7 +198,7 @@ order until the package is found. As a special case, `site-name' can be ("uniroma2.it" "ftp.uniroma2.it" "unix/misc/dist/XEMACS/packages") ("icm.edu.pl" "ftp.icm.edu.pl" "pub/unix/editors/xemacs/packages") ("sunet.se" "ftp.sunet.se" "pub/gnu/xemacs/packages") - ("doc.ic.ac.uk" "ftp.doc.ic.ac.uk" "packages/xemacs/packages") + ("doc.ic.ac.uk" "sunsite.doc.ic.ac.uk" "packages/xemacs/packages") ("srcc.msu.su" "ftp1.srcc.msu.su" "mirror/ftp.xemacs.org/packages") ;; Asia diff --git a/lisp/replace.el b/lisp/replace.el index dd84f83..3b6165e 100644 --- a/lisp/replace.el +++ b/lisp/replace.el @@ -53,6 +53,20 @@ or if the replacement text has any uppercase letters in it.") "Non-nil means `query-replace' uses the last search string. That becomes the \"string to replace\".") +(defvar replace-search-function + (lambda (str limit) + (search-forward str limit t)) + "Function used by perform-replace to search forward for a string. It will be +called with two arguments: the string to search for and a limit bounding the +search.") + +(defvar replace-re-search-function + (lambda (regexp limit) + (re-search-forward regexp limit t)) + "Function used by perform-replace to search forward for a regular +expression. It will be called with two arguments: the regexp to search for and +a limit bounding the search.") + (defun query-replace-read-args (string regexp-flag) (let (from to) (if query-replace-interactive @@ -209,24 +223,25 @@ Applies to all lines after point." (interactive (list (read-from-minibuffer "Keep lines (containing match for regexp): " nil nil nil 'regexp-history))) - (save-excursion - (or (bolp) (forward-line 1)) - (let ((start (point))) - (while (not (eobp)) - ;; Start is first char not preserved by previous match. - (if (not (re-search-forward regexp nil 'move)) - (delete-region start (point-max)) - (let ((end (save-excursion (goto-char (match-beginning 0)) - (beginning-of-line) - (point)))) - ;; Now end is first char preserved by the new match. - (if (< start end) - (delete-region start end)))) - (setq start (save-excursion (forward-line 1) - (point))) - ;; If the match was empty, avoid matching again at same place. - (and (not (eobp)) (= (match-beginning 0) (match-end 0)) - (forward-char 1)))))) + (with-interactive-search-caps-disable-folding regexp t + (save-excursion + (or (bolp) (forward-line 1)) + (let ((start (point))) + (while (not (eobp)) + ;; Start is first char not preserved by previous match. + (if (not (re-search-forward regexp nil 'move)) + (delete-region start (point-max)) + (let ((end (save-excursion (goto-char (match-beginning 0)) + (beginning-of-line) + (point)))) + ;; Now end is first char preserved by the new match. + (if (< start end) + (delete-region start end)))) + (setq start (save-excursion (forward-line 1) + (point))) + ;; If the match was empty, avoid matching again at same place. + (and (not (eobp)) (= (match-beginning 0) (match-end 0)) + (forward-char 1))))))) (define-function 'flush-lines 'delete-matching-lines) (defun delete-matching-lines (regexp) @@ -236,13 +251,14 @@ Applies to lines after point." (interactive (list (read-from-minibuffer "Flush lines (containing match for regexp): " nil nil nil 'regexp-history))) - (save-excursion - (while (and (not (eobp)) - (re-search-forward regexp nil t)) - (delete-region (save-excursion (goto-char (match-beginning 0)) - (beginning-of-line) - (point)) - (progn (forward-line 1) (point)))))) + (with-interactive-search-caps-disable-folding regexp t + (save-excursion + (while (and (not (eobp)) + (re-search-forward regexp nil t)) + (delete-region (save-excursion (goto-char (match-beginning 0)) + (beginning-of-line) + (point)) + (progn (forward-line 1) (point))))))) (define-function 'how-many 'count-matches) (defun count-matches (regexp) @@ -250,15 +266,16 @@ Applies to lines after point." (interactive (list (read-from-minibuffer "How many matches for (regexp): " nil nil nil 'regexp-history))) - (let ((count 0) opoint) - (save-excursion - (while (and (not (eobp)) - (progn (setq opoint (point)) - (re-search-forward regexp nil t))) - (if (= opoint (point)) - (forward-char 1) - (setq count (1+ count)))) - (message "%d occurrences" count)))) + (with-interactive-search-caps-disable-folding regexp t + (let ((count 0) opoint) + (save-excursion + (while (and (not (eobp)) + (progn (setq opoint (point)) + (re-search-forward regexp nil t))) + (if (= opoint (point)) + (forward-char 1) + (setq count (1+ count)))) + (message "%d occurrences" count))))) (defvar occur-mode-map ()) @@ -445,84 +462,86 @@ It serves as a menu to find any of the occurrences in this buffer. (setq occur-pos-list ())) (if (eq buffer standard-output) (goto-char (point-max))) - (save-excursion - (if list-matching-lines-whole-buffer - (beginning-of-buffer)) - (message "Searching for %s ..." regexp) - ;; Find next match, but give up if prev match was at end of buffer. - (while (and (not (= prevpos (point-max))) - (re-search-forward regexp nil t)) - (goto-char (match-beginning 0)) - (beginning-of-line) - (save-match-data - (setq linenum (+ linenum (count-lines prevpos (point))))) - (setq prevpos (point)) - (goto-char (match-end 0)) - (let* ((start (save-excursion - (goto-char (match-beginning 0)) - (forward-line (if (< nlines 0) nlines (- nlines))) - (point))) - (end (save-excursion - (goto-char (match-end 0)) - (if (> nlines 0) - (forward-line (1+ nlines)) + (with-interactive-search-caps-disable-folding regexp t + (save-excursion + (if list-matching-lines-whole-buffer + (beginning-of-buffer)) + (message "Searching for %s ..." regexp) + ;; Find next match, but give up if prev match was at end of buffer. + (while (and (not (= prevpos (point-max))) + (re-search-forward regexp nil t)) + (goto-char (match-beginning 0)) + (beginning-of-line) + (save-match-data + (setq linenum (+ linenum (count-lines prevpos (point))))) + (setq prevpos (point)) + (goto-char (match-end 0)) + (let* ((start (save-excursion + (goto-char (match-beginning 0)) + (forward-line (if (< nlines 0) nlines (- nlines))) + (point))) + (end (save-excursion + (goto-char (match-end 0)) + (if (> nlines 0) + (forward-line (1+ nlines)) (forward-line 1)) - (point))) - (tag (format "%5d" linenum)) - (empty (make-string (length tag) ?\ )) - tem) - (save-excursion - (setq tem (make-marker)) - (set-marker tem (point)) - (set-buffer standard-output) - (setq occur-pos-list (cons tem occur-pos-list)) - (or first (zerop nlines) - (insert "--------\n")) - (setq first nil) - (insert-buffer-substring buffer start end) - (set-marker final-context-start - (- (point) (- end (match-end 0)))) - (backward-char (- end start)) - (setq tem (if (< nlines 0) (- nlines) nlines)) - (while (> tem 0) - (insert empty ?:) - (forward-line 1) - (setq tem (1- tem))) - (let ((this-linenum linenum)) - (while (< (point) final-context-start) - (if (null tag) - (setq tag (format "%5d" this-linenum))) - (insert tag ?:) -;; FSFmacs -- we handle this using mode-motion-highlight-line, above. -; (put-text-property (save-excursion -; (beginning-of-line) -; (point)) -; (save-excursion -; (end-of-line) -; (point)) -; 'mouse-face 'highlight) + (point))) + (tag (format "%5d" linenum)) + (empty (make-string (length tag) ?\ )) + tem) + (save-excursion + (setq tem (make-marker)) + (set-marker tem (point)) + (set-buffer standard-output) + (setq occur-pos-list (cons tem occur-pos-list)) + (or first (zerop nlines) + (insert "--------\n")) + (setq first nil) + (insert-buffer-substring buffer start end) + (set-marker final-context-start + (- (point) (- end (match-end 0)))) + (backward-char (- end start)) + (setq tem (if (< nlines 0) (- nlines) nlines)) + (while (> tem 0) + (insert empty ?:) (forward-line 1) - (setq tag nil) - (setq this-linenum (1+ this-linenum))) - (while (<= (point) final-context-start) + (setq tem (1- tem))) + (let ((this-linenum linenum)) + (while (< (point) final-context-start) + (if (null tag) + (setq tag (format "%5d" this-linenum))) + (insert tag ?:) + ;; FSFmacs -- + ;; we handle this using mode-motion-highlight-line, above. + ;; (put-text-property (save-excursion + ;; (beginning-of-line) + ;; (point)) + ;; (save-excursion + ;; (end-of-line) + ;; (point)) + ;; 'mouse-face 'highlight) + (forward-line 1) + (setq tag nil) + (setq this-linenum (1+ this-linenum))) + (while (<= (point) final-context-start) + (insert empty ?:) + (forward-line 1) + (setq this-linenum (1+ this-linenum)))) + (while (< tem nlines) (insert empty ?:) (forward-line 1) - (setq this-linenum (1+ this-linenum)))) - (while (< tem nlines) - (insert empty ?:) - (forward-line 1) - (setq tem (1+ tem))) - (goto-char (point-max))) - (forward-line 1))) - (set-buffer standard-output) - ;; Put positions in increasing order to go with buffer. - (setq occur-pos-list (nreverse occur-pos-list)) - (goto-char (point-min)) - (if (= (length occur-pos-list) 1) - (insert "1 line") - (insert (format "%d lines" (length occur-pos-list)))) - (if (interactive-p) - (message "%d matching lines." (length occur-pos-list))))))) + (setq tem (1+ tem))) + (goto-char (point-max))) + (forward-line 1))) + (set-buffer standard-output) + ;; Put positions in increasing order to go with buffer. + (setq occur-pos-list (nreverse occur-pos-list)) + (goto-char (point-min)) + (if (= (length occur-pos-list) 1) + (insert "1 line") + (insert (format "%d lines" (length occur-pos-list)))) + (if (interactive-p) + (message "%d matching lines." (length occur-pos-list)))))))) ;; It would be nice to use \\[...], but there is no reasonable way ;; to make that display both SPC and Y. @@ -604,14 +623,17 @@ Don't use this in your own program unless you want to query and set the mark just as `query-replace' does. Instead, write a simple loop like this: (while (re-search-forward \"foo[ \t]+bar\" nil t) (replace-match \"foobar\" nil nil)) -which will run faster and probably do exactly what you want." +which will run faster and probably do exactly what you want. +When searching for a match, this function use `replace-search-function' and `replace-re-search-function'" (or map (setq map query-replace-map)) (let* ((event (make-event)) (nocasify (not (and case-fold-search case-replace (string-equal from-string (downcase from-string))))) (literal (not regexp-flag)) - (search-function (if regexp-flag 're-search-forward 'search-forward)) + (search-function (if regexp-flag + replace-re-search-function + replace-search-function)) (search-string from-string) (real-match-data nil) ; the match data for the current match (next-replacement nil) @@ -646,7 +668,7 @@ which will run faster and probably do exactly what you want." (setq next-replacement replacements) (or repeat-count (setq repeat-count 1))) (if delimited-flag - (setq search-function 're-search-forward + (setq search-function replace-re-search-function search-string (concat "\\b" (if regexp-flag from-string (regexp-quote from-string)) @@ -658,7 +680,7 @@ which will run faster and probably do exactly what you want." (while (and keep-going (not (eobp)) (let ((case-fold-search qr-case-fold-search)) - (funcall search-function search-string limit t)) + (funcall search-function search-string limit)) ;; If the search string matches immediately after ;; the previous match, but it did not match there ;; before the replacement was done, ignore the match. @@ -672,7 +694,7 @@ which will run faster and probably do exactly what you want." ;; right after end of previous replacement. (forward-char 1) (let ((case-fold-search qr-case-fold-search)) - (funcall search-function search-string limit t))) + (funcall search-function search-string limit))) t)) ;; Save the data associated with the real match. diff --git a/lisp/select.el b/lisp/select.el index 824e2db..df593f8 100644 --- a/lisp/select.el +++ b/lisp/select.el @@ -68,7 +68,7 @@ (otherwise nil))) (defun selection-owner-p (&optional selection) - "Return t if current emacs process owns the given Selection. + "Return t if current XEmacs process owns the given Selection. The arg should be the name of the selection in question, typically one of the symbols PRIMARY, SECONDARY, or CLIPBOARD. (For convenience, the symbol nil is the same as PRIMARY, and t is the same as @@ -249,7 +249,7 @@ secondary selection instead of the primary selection." (defun cut-copy-clear-internal (mode) (or (memq mode '(cut copy clear)) (error "unkown mode %S" mode)) (or (selection-owner-p) - (error "emacs does not own the primary selection")) + (error "XEmacs does not own the primary selection")) (setq last-command nil) (or primary-selection-extent (error "the primary selection is not an extent?")) diff --git a/lisp/setup-paths.el b/lisp/setup-paths.el index 4b365ef..b275db2 100644 --- a/lisp/setup-paths.el +++ b/lisp/setup-paths.el @@ -54,12 +54,23 @@ nil configure-site-directory)) +(defun paths-find-site-module-directory (roots) + "Find the site modules directory of the XEmacs hierarchy." + (paths-find-site-directory roots "site-modules" + nil + configure-site-module-directory)) + (defun paths-find-lisp-directory (roots) "Find the main Lisp directory of the XEmacs hierarchy." (paths-find-version-directory roots "lisp" nil configure-lisp-directory)) +(defun paths-find-module-directory (roots) + "Find the main modules directory of the XEmacs hierarchy." + (paths-find-architecture-directory roots "modules" + configure-module-directory)) + (defun paths-construct-load-path (roots early-package-load-path late-package-load-path last-package-load-path lisp-directory @@ -84,6 +95,25 @@ lisp-load-path last-package-load-path))) +(defun paths-construct-module-load-path + (root module-directory &optional site-module-directory) + "Construct the modules load path." + (let* ((envvar-value (getenv "EMACSMODULEPATH")) + (env-module-path + (and envvar-value + (paths-decode-directory-path envvar-value 'drop-empties))) + (site-module-load-path + (and site-module-directory + (paths-find-recursive-load-path (list site-module-directory) + paths-load-path-depth))) + (module-load-path + (and module-directory + (paths-find-recursive-load-path (list module-directory) + paths-load-path-depth)))) + (append env-module-path + site-module-load-path + module-load-path))) + (defun paths-construct-info-path (roots early-packages late-packages last-packages) "Construct the info path." (let ((info-path-envval (getenv "INFOPATH"))) diff --git a/lisp/window.el b/lisp/window.el index 76d638f..faac28f 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -293,17 +293,15 @@ or if the window is the only window of its frame." (unwind-protect (count-windows) (select-frame frame)))) - ;; check to make sure that we don't have horizontally - ;; split windows - (eq (frame-highest-window (window-frame window) 0) - (frame-highest-window (window-frame window) -1)) + ;; check to make sure that the window is the full width + ;; of the frame + (eq (nth 2 edges) + (frame-pixel-width)) + (zerop (nth 0 edges)) + ;; The whole buffer must be visible. (pos-visible-in-window-p (point-min) window) - (not (eq mini 'only)) - (or (not mini) (eq mini t) - (< (nth 3 edges) - (nth 1 (window-pixel-edges mini))) - (> (nth 1 edges) - 0))) + ;; The frame must not be minibuffer-only. + (not (eq mini 'only))) (progn (save-window-excursion (goto-char (point-min)) diff --git a/man/ChangeLog b/man/ChangeLog index ce72582..779dde5 100644 --- a/man/ChangeLog +++ b/man/ChangeLog @@ -1,3 +1,17 @@ +1999-02-02 XEmacs Build Bot + + * XEmacs 21.2.9 is released + +1999-01-14 Adrian Aichner + + * internals\internals.texi (Techniques for XEmacs Developers): + Fixing documentation. + (Basic Lisp Modules): ditto. + +1999-01-10 J. Kean Johnston + + * emodules.texi: New file to describe XEmacs modules. + 1998-12-28 Martin Buchholz * XEmacs 21.2.8 is released. diff --git a/man/emodules.texi b/man/emodules.texi new file mode 100644 index 0000000..d20ccfb --- /dev/null +++ b/man/emodules.texi @@ -0,0 +1,1006 @@ +\input texinfo @c -*-texinfo-*- + +@c %**start of header +@setfilename ../info/emodules.info +@settitle Extending Emacs using C Modules +@c %**end of header + +@c +@c Use some macros so that we can format for either XEmacs +@c or (shudder) GNU Emacs. +@c + +@ifset XEMACS +@macro emacs +XEmacs +@end macro +@clear EMACS +@set HAVE_EMACS +@end ifset + +@ifset EMACS +@macro emacs +Emacs +@end macro +@clear XEMACS +@set HAVE_EMACS +@end ifset + +@ifclear HAVE_EMACS +@set XEMACS +@macro emacs +XEmacs +@end macro +@end ifclear + +@ifinfo +This file documents the module loading technology of @emacs{}. + +Copyright @copyright{} 1998 J. Kean Johnston. + +Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + +@ignore +Permission is granted to process this file through TeX and print the +results, provided the printed document carries copying permission notice +identical to this one except for the removal of this paragraph (this +paragraph not being relevant to the printed manual). + +@end ignore +Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, provided that the +entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + +Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions, +except that this permission notice may be stated in a translation +approved by the Foundation. + +Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, provided also that the +section entitled ``GNU General Public License'' is included exactly as +in the original, and provided that the entire resulting derived work is +distributed under the terms of a permission notice identical to this +one. + +Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions, +except that the section entitled ``GNU General Public License'' may be +included in a translation approved by the Free Software Foundation +instead of in the original English. +@end ifinfo + +@c Combine indices. +@syncodeindex fn cp +@syncodeindex vr cp +@syncodeindex ky cp +@syncodeindex pg cp +@syncodeindex tp cp + +@setchapternewpage odd +@finalout + +@titlepage +@title Extending @emacs{} using C and C++ +@subtitle Version 1.0, September 1998 + +@author J. Kean Johnston +@page +@vskip 0pt plus 1fill + +@noindent +Copyright @copyright{} 1998 J. Kean Johnston. @* + +@sp 2 +Version 1.0 @* +September, 1998.@* + +Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + +Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, provided also that the +section entitled ``GNU General Public License'' is included +exactly as in the original, and provided that the entire resulting +derived work is distributed under the terms of a permission notice +identical to this one. + +Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions, +except that the section entitled ``GNU General Public License'' may be +included in a translation approved by the Free Software Foundation +instead of in the original English. +@end titlepage +@page + +@ifinfo +@node Top, Introduction, (dir), (dir) +This Info file contains v1.0 of the @emacs{} dynamic loadable module +support documentation. +@menu +* Introduction:: Introducing Emacs Modules +* Annatomy of a Module:: Basic module layout and technology +* Using ellcc:: How to use the module compiler +* Defining Functions:: Creating new Lisp primitives +* Defining Variables:: Creating new Lisp variables +* Index:: Concept Index + + --- The Detailed Node Listing --- + +Annatomy of a Module + +* Required Header File:: Always include +* Required Functions:: Functions you must always provide +* Required Variables:: Variables whose values you must provide +* Loading other Modules:: How to load dependant modules + +Using @code{ellcc} + +* Compile Mode:: Compiling modules using ellcc +* Initialization Mode:: Generating documentation and variables +* Link Mode:: Creating the final loadable module +* Other ellcc options:: Other useful options +* Environment Variables:: How to control ellcc + +Defining Functions + +* Using DEFUN:: Using the DEFUN macro to define functions +* Declaring Functions:: Declaring functions to the Lisp reader +@end menu + +@end ifinfo + +@node Introduction, Annatomy of a Module, Top, Top +@chapter Introduction + + @emacs{} is a powerful, extensible editor. The traditional way of +extending the functionality of @emacs{} is to use its built-in Lisp +language (called Emacs Lisp, or Elisp for short). However, while Elisp +is a full programming language and capable of extending @emacs{} in more +ways than you can imagine, it does have its short-comings. + + Firstly, Elisp is an interpreted language, and this has serious speed +implications. Like all other interpreted languages (like Java), Elisp +is often suitable only for certain types of application or extension. +So although Elisp is a general purpose language, and very ligh level, +there are times when it is desirable to descend to a lower level compiled +language for speed purposes. + + Secondly, Elisp (or Lisp in general) is not a very common language any +more, except for certain circles in the computer industry. C is a far +more commonly known language, and because it is compiled, more suited to +a wider range of applications, especially those that require low level +access to a system or need to be as quick as possible. + +@cindex Emacs Modules +@cindex DLL +@cindex DSO +@cindex shared object + This manual describes a new way of extending @emacs{}, by using dynamic +loadable modules (also knows as dynamicaly loadable libraries (DLLs), +dynamic shared objects (DSOs) or just simply shared objectcs), which can +be written in C or C++ and loaded into @emacs{} at any time. I sometimes +refer to this technology as @dfn{CEmacs}, which is short for @dfn{C +Extensible Emacs}. + + @emacs{} modules are configured into and installed with @emacs{} by +default on all systems that support loading of shared objects. From a +users perspective, the internals of @emacs{} modules are irrelevant. +All a user will ever need to know about shared objects is the name of +the shared object when they want to load a given module. From a +developers perspective though, a lot more is provided. + +@itemize @bullet +@item +@pindex ellcc +@cindex compiler +@cindex linker + Of primary interest is the @code{ellcc} program. This program is +created during compile time, and is intended to abstract compiler +specific characteristics from the developer. This program is called to +compile and link all objects that will make up the final shared object, +and accepts all common C compiler flags. @code{ellcc} also sets up the +correct environment for compiling modules by enabling any special +compiler modes (such as PIC mode), setting the correct include paths for +the location of @emacs{} internal header files etc. The program will also +invoke the linker correctly to created the final shared object which is +loaded into @emacs{}. + +@item +@cindex header files + CEmacs also makes all of the relevant @emacs{} internal header files +availible for module authors to use. This is often required to get data +structure definitions and external variable declarations. The header +files installed include the module specific header file +@file{emodules.h}. Due to the nature of dynamic modules, most of the +internals of @emacs{} are exposed. +@xref{Top,,,internals,@emacs{} Internals Manual}, for a +more complete discussion on how to extend and understand @emacs{}. All of +the rules for C modules are discussed there. + +@item +@cindex samples + Part of the @emacs{} distribution is a set of sample modules. These are +not installed when @emacs{} is, but remain in the @emacs{} source tree. +These modules live in the directory @file{modules}, which is a +sub-directory of the main @emacs{} source code directory. Please look at +the samples carefully, and maybe even use them as a basis for making +your own modules. Most of the concepts required for writing extension +modules are covered in the samples. + +@item +@cindex documentation +@cindex help + Last, but not least is this manual. This can be viewed from within +@emacs{}, and it can be printed out as well. It is the intention of this +document that it will describe everything you need to know about +extending @emacs{} in C. If you do not find this to be the case, please +contact the author(s). +@end itemize + + The rest of this document will discuss the actual mechanics of +@emacs{} modules and work through several of the samples. Please be +sure that you have read the @emacs{} Internals Manual and understand +everything in it. The concepts there apply to all modules. This +document may have some overlap, but it is the internals manual which +should be considered the final authority. It will also help a great +deal to look at the actual @emacs{} source code to see how things are +done. + +@node Annatomy of a Module, Using ellcc, Introduction, Top +@chapter Annatomy of a Module +@cindex annatomy +@cindex module skeleton +@cindex skeleton, module +@cindex module format +@cindex format, module + + Each dynamically loadable @emacs{} extension (hereafter refered to as a +module) has a certain compulsory format, and must contain several +pieces of information and several mandatory functions. This chapter +describes the basic layout of a module, and provides a very simple +sample. The source for this sample can be found in the file +@file{modules/simple/sample.c} in the main @emacs{} source code tree. + +@menu +* Required Header File:: Always include +* Required Functions:: Functions you must always provide +* Required Variables:: Variables whose values you must provide +* Loading other Modules:: How to load dependant modules +@end menu + +@node Required Header File, Required Functions, Annatomy of a Module, Annatomy of a Module +@section Required Header File +@cindex required header +@cindex include files + +@cindex emodules.h +@cindex config.h + Every module must include the file @file{}. This +will include several other @emacs{} internal header files, and will set up +certain vital macros. One of the most important files included by +@file{emodules.h} is the generated @file{config.h} file, which contains +all of the required system abstraction macros and definitions. Most +modules will probably require some pre-processor conditionals based on +constants defined in @file{config.h}. Please read that file to +familiarize yourself with the macros defined there. + + Depending on exactly what your module will be doing, you will probably +need to include one or more of the @emacs{} internal header files. When +you @code{#include }, you will get a few of the most important +@emacs{} header files included automatically for you. The files included +are: + +@table @file +@item lisp.h +This file contains most of the macros required for declaring Lisp object +types, macros for accessing Lisp objects, and global variable +declarations. + +@item sysdep.h +All system dependant declarations and abstraction macros live here. You +should never call low level system functions directly. Rather, you +should use the abstraction macros provided in this header file. + +@item window.h +This header file defines the window structures and Lisp types, and +provides functions and macros for manipulating multiple @emacs{} windows. + +@item buffer.h +All macros and function declarations for manipulating internal and user +visible buffers appear in this file. + +@item insdel.h +This header provides the information required for performing text +insertion and deletion. + +@item frame.h +Provides the required structure, macro and function definitions for +manipulating @emacs{} frames. +@end table + +@node Required Functions, Required Variables, Required Header File, Annatomy of a Module +@section Required Functions +@cindex initialization +@cindex functions, required +@cindex required functions + +Every module requires several initialization functions. It is the +responsibility of these functions to load in any dependant modules, and to +declare all variables and functions which are to be made visibile to the +@emacs{} Lisp reader. Each of these functions performs a very specific +task, and they are executed in the correct order by @emacs{}. All of +these functions are @code{void} functions which take no arguments. +Here, briefly, are the required module functions. Note that the actual +function names do not end with the string @code{_module}, but rather +they end with the abbreviated module name by which the module is known. +More on the module name and its importance later. Just bear in mind +that the text @code{_module} in the functions below is simply a +place-holder, not an actual function name. + +@table @code +@item syms_of_module +@findex syms_of_module +This required function is responsible for introducing to the Lisp reader +all functions that you have defined in your module using +@code{DEFUN()}. Note that @emph{only} functions are declared here, using +the @code{DEFSUBR()} macro. No variables are declared. + +@item vars_of_module +@findex vars_of_module +This required function contains calls to macros such as +@code{DEFVAR_LISP()}, @code{DEFVAR_BOOL()} etc, and its purpose is to +declare and initialize all and any variables that your module defines. +They syntax for declaring variables is identical to the syntax used for +all internal @emacs{} source code. + +@item modules_of_module +@findex modules_of_module +This optional function should be used to load in any modules which your +module depends on. The @emacs{} module loading code makes sure that the +same module is not loaded twice, so several modules can safely call the +module load function for the same module. Only one copy of each module +(at a given version) will ever be loaded. + +@item docs_of_module +@findex docs_of_module +This is a required function, but not one which you need ever write. +This function is created automatically by @code{ellcc} when the module +initialization code is produced. It is required to document all +functions and variables declared in your module. +@end table + +@node Required Variables, Loading other Modules, Required Functions, Annatomy of a Module +@section Required Variables +@cindex initialization +@cindex variables, required +@cindex required variables + +Not only does a module need to declare the initialization functions +mentioned above, it is also required to provide certain variables which +the module loading code searches for in order to determine the viability +of a module. You are @emph{not} required to provide these variables in +your source files. They are automatically set up in the module +initialization file by the @code{ellcc} compiler. These variables are +discussed here simply for the sake of completeness. + +@table @code +@item emodules_compiler +This is a variable of type @code{long}, and is used to indicate the +version of the @emacs{} loading technology that was used to produce the +module being loaded. This version number is completely unrelated to +the @emacs{} version number, as a given module may quite well work +regardless of the version of @emacs{} that was installed at the time the +module was created. + +The @emacs{} modules version is used to differentiate between major +changes in the module loading technology, not versions of @emacs{}. + +@item emodules_name +This is a short (typically 10 characters or less) name for the module, +and it is used as a suffix for all of the required functions. This is +also the name by which the module is recognised when loading dependant +modules. The name does not necessarily have to be the same as the +physical file name, although keeping the two names in sync is a pretty +good idea. The name must not be empty, and it must be a valid part of a +C function name. The value of this variable is appended to the function +names @code{syms_of_}, @code{vars_of_}, @code{modules_of_} and +@code{docs_of_} to form the actual function names that the module +loading code looks for when loading a module. + +This variable is set by the @code{--mod-name} argument to @code{ellcc}. + +@item emodules_version +This string variable is used to load specific versions of a module. +Rarely will two or more versions of a module be left lying around, but +just in case this does happen, this variable can be used to control +exactly which module should be loaded. See the Lisp function +@code{load-module} for more details. This variable is set by the +@code{--mod-version} argument to @code{ellcc}. + +@item emodules_title +This is a string which describes the module, and can contain spaces or +other special characters. It is used solely for descriptive purposes, +and does not affect the loading of the module. The value is set by the +@code{--mod-title} argument to @code{ellcc}. +@end table + +@node Loading other Modules, , Required Variables, Annatomy of a Module +@section Loading other Modules +@cindex dependancies +@findex modules_of_module +@findex emodules_load + +During the loading of a module, it is the responsibility of the function +@code{modules_of_module} to load in any modules which the current module +depends on. If the module is stand-alone, and does not depend on other +modules, then this function can be left empty or even undeclared. +However, if it does have dependnacies, it must call +@code{emodules_load}: + +@example @code +@cartouche +int emodules_load (CONST char *module, + CONST char *modname, + CONST char *modver) +@end cartouche +@end example + +The first argument @var{module} is the name of the actual shared object +or DLL. You can omit the @file{.so}, @file{.ell} or @file{.dll} +extension of you wish. If you do not specify an absolute path name, +then the same rules as apply to loading Lisp modules are applied when +searching for the module. If the module cannot be found in any of the +standard places, and an absolute path name was not specified, +@code{emodules_load} will signal an error and loading of the module +will stop. + +The second argument (@var{modname}) is the module name to load, and +must match the contents of the variable @var{emodule_name} in the +module to be loaded. A mis-match will cause the module load to fail. If +this parameter is @code{NULL} or empty, then no checks are performed +against the target module's @var{emodule_name} variable. + +The last argument, @var{modver}, is the desired version of the module +to load, and is compared to the target module's +@var{emodule_version} value. If this parameter is not @code{NULL} +or empty, and the match fails, then the load of the module will fail. + +@code{emodules_load} can be called recursively. If, at any point +during the loading of modules a failure is encountered, then all modules +that were loaded since the top level call to @code{emodules_load} +will be unloaded. This means that if any child modules fail to load, +then their parents will also fail to load. This does not include +previous successful calls to @code{emodules_load} at the top level. + +@node Using ellcc, Defining Functions, Annatomy of a Module, Top +@chapter Using @code{ellcc} +@cindex @code{ellcc} +@cindex module compiler + +Before discussing the anatomy of a module in greater detail, you should +be aware of the steps required in order to correctly compile and link a +module for use within @emacs{}. There is little difference between +compiling normal C code and compiling a module. In fact, all that +changes is the command used to compile the module, and a few extra +arguments to the compiler. + +@emacs{} now ships with a new user utility, called @code{ellcc}. This +is the @dfn{Emacs Loadable Library C Compiler}. This is a wrapper +program that will invoke the real C compiler with the correct arguments +to compile and link your module. With the exception of a few command +line options, this program can be considered a replacement for your C +compiler. It accepts all of the same flags and arguments that your C +compiler does, so in many cases you can simply set the @code{make} +variable @code{CC} to @code{ellcc} and your code will be compiled as +an Emacs module rather than a static C object. + +@code{ellcc} has three distinct modes of operation. It can be run in +compile, link or initialization mode. These modes are discussed in more +detail below. If you want @code{ellcc} to show the commands it is +executing, you can specify the option @code{--mode=verbose} to +@code{ellcc}. Specifying this option twice will enable certain extra +debugging messages to be displayed on the standard output. + +@menu +* Compile Mode:: Compiling modules using ellcc +* Initialization Mode:: Generating documentation and variables +* Link Mode:: Creating the final loadable module +* Other ellcc options:: Other useful options +* Environment Variables:: How to control ellcc +@end menu + +@node Compile Mode, Initialization Mode, Using ellcc, Using ellcc +@section Compile Mode +@cindex compiling + +By default, @code{ellcc} is in @dfn{compile} mode. This means that it +assumes that all of the command line arguments are C compiler arguments, +and that you want to compile the specified source file or files. You +can force compile mode by specifying the @code{--mode=compile} argument +to @code{ellcc}. + +In this mode, @code{ellcc} is simply a front-end to the same C compiler +that was used to create the @emacs{} binary itself. All @code{ellcc} +does in this mode is insert a few extra command line arguments before +the arguments you specify to @code{ellcc} itself. @code{ellcc} will +then invoke the C compiler to compile your module, and will return the +same exit codes and messages that your C compiler does. + +By far the easiest way to compile modules is to construct a +@file{Makefile} as you would for a normal program, and simply insert, at +some appropriate place something similar to: + +@example @code +@cartouche +CC=ellcc --mode=compile + +.c.o: + $(CC) $(CFLAGS) -c $< +@end cartouche +@end example + +After this, all you need to do is provide simple @code{make} rules for +compiling your module source files. Since modules are most useful when +they are small and self-contained, most modules will have a single +source file, aside from the module specific initialization file (see +below for details). + +@node Initialization Mode, Link Mode, Compile Mode, Using ellcc +@section Initialization Mode +@cindex initialization +@cindex documentation + +@emacs{} uses a rather bizarre way of documenting variables and +functions. Rather than have the documentation for compiled functions +and variables passed as static strings in the source code, the +documentation is included as a C comment. A special program, called +@file{make-docfile}, is used to scan the source code files and extract +the documentation from these comments, producing the @emacs{} @file{DOC} +file, which the internal help engine scans when the documentation for a +function or variable is requested. + +Due to the internal construction of Lisp objects, subrs and other such +things, adding documentation for a compiled function or variable in a +compiled module, at any time after @emacs{} has been @dfn{dumped} is +somewhat problematic. Fortunately, as a module writer you are insulated +from the difficulties thanks to your friend @code{ellcc} and some +internal trickery in the module loading code. This is all done using +the @dfn{initialization} mode of @code{ellcc}. + +The result of running @code{ellcc} in initialization mode is a C source +file which you compile with (you guessed it) @code{ellcc} in compile +mode. Initialization mode is where you set the module name, version, +title and gather together all of the documentaion strings for the +functions and vairables in your module. There are several options that +you are required to pass @code{ellcc} in initialization mode, the first +of which is the mode switch itself, @code{--mode=init}. + +Next, you need to specify the name of the C source code file that +@code{ellcc} will produce, and you specify this using the +@code{--mod-output=FILENAME} argument. @var{FILENAME} is the name of +the C source code file that will contain the module variables and +@code{docs_of_module} function. + +As discussed previously, each module requires a short @dfn{handle} or +module name. This is specified with the @code{--mod-name=NAME} option, +where @var{NAME} is the abbreviated module name. This @var{NAME} must +consist only of characters that are valid in C function and variable +names. + +The module version is specified using @code{--mod-version=VERSION} +argument, with @var{VERSION} being any arbitrary version string. This +version can be passed as an optional second argument to the Lisp +function @code{load-module}, and as the third argument to the internal +module loading command @code{emodules_load}. This version string is +used to distinguish between different versions of the same module, and +to ensure that the module is loaded at a specific version. + +Last, but not least, is the module title. Specified using the +@code{--mod-title=TITLE} option, the specified @var{TITLE} is used when +the list of loaded modules is displayed. The module title serves no +purpose other than to inform the user of the function of the module. +This string should be brief, as it has to be formatted to fit the +screen. + +Following all of these parameters, you need to provide the list of all +source code modules that make up your module. These are the files which +are scanned by @file{make-docfile}, and provide the information required +to populate the @code{docs_of_module} function. Below is a sample +@file{Makefile} fragment which indicates how all of this is used. + +@example @code +@cartouche +CC=ellcc --mode=compile +LD=ellcc --mode=link +MODINIT=ellcc --mode=init +CFLAGS=-O2 -DSOME_STUFF + +.c.o: + $(CC) $(CFLAGS) -c $< + +MODNAME=sample +MODVER=1.0.0 +MODTITLE="Small sample module" + +SRCS=modfile1.c modfile2.c modfile3.c +OBJS=$(SRCS:.c=.o) + +all: sample.ell +clean: + rm -f $(OBJS) sample_init.o sample.ell + +install: all + mkdir `ellcc --mod-location`/mymods > /dev/null + cp sample.ell `ellcc --mod-location`/mymods/sample.ell + +sample.ell: $(OBJS) sample_init.o + $(LD) --mod-output=$@ $(OBJS) sample_init.o + +sample_init.o: sample_init.c +sample_init.c: $(SRCS) + $(MODINIT) --mod-name=$(MODNAME) --mod-version=$(MODVER) \ + --mod-title=$(MODTITLE) --mod-output=$@ $(SRCS) +@end cartouche +@end example + +The above @file{Makefile} is, in fact, complete, and would compile the +sample module, and optionally install it. The @code{--mod-location} +argument to @code{ellcc} will produce, on the standard output, the base +location of the @emacs{} module directory. Each sub-directory of that +directory is automatically searched for for modules when they are loaded +with @code{load-module}. An alternative location would be +@file{/usr/local/lib/xemacs/site-modules}. That path can change +depending on the options the person who compiled @emacs{} chose, so you +can always determine the correct site location using the +@code{--mod-site-location} option. This directory is treated the same +way as the main module directory. Each sub-directory within it is +searched for a given module when the user attempts to load it. The +valid extensions that the loader attempts to use are @file{.so}, +@file{.ell} and @file{.dll}. You can use any of these extensions, +although @file{.ell} is the prefered extension. + +@node Link Mode, Other ellcc options, Initialization Mode, Using ellcc +@section Link Mode +@cindex linking + +Once all of your source code files have been compiled (including the +generated init file) you need to link them all together to created the +loadable module. To do this, you invoke @code{ellcc} in link mode, by +pasing the @code{--mode-link} command. You need to specify the final +output file using the @code{--mod-output=NAME} command, but other than +that all other arguments are passed on directly to the system compiler +or linker, along with any other required arguments to create the +loadable module. + +The module has complete access to all symbols that were present in the +dumped @emacs{}, so you do not need to link against libraries that were +linked in with the main executable. If your library uses some other +extra libraries, you will need to link with those. There is nothing +particularly complicated about link mode. All you need to do is make +sure you invoke it correctly in the @file{Makefile}. See the sample +@file{Makefile} above for an example of a well constructed +@file{Makefile} that invoked the linker correctly. + +@node Other ellcc options, Environment Variables, Link Mode, Using ellcc +@section Other @code{ellcc} options +@cindex paths + +Aside from the three main @code{ellcc} modes described above, +@code{ellcc} can accept several other options. These are typically used +in a @file{Makefile} to determine installation paths. @code{ellcc} also +allows you to over-ride several of its built-in compiler and linker +options using environment variables. Here is the complete list of +options that @code{ellcc} accepts. + +@table @code +@item --mode=compile +Enables compilation mode. Use this to compile source modules. + +@item --mode=link +Enabled link edit mode. Use this to create the final module. + +@item --mode=init +Used to create the documentation function and to initialize other +required variables. Produces a C source file that must be compiled with +@code{ellcc} in compile mode before linking the final module. + +@item --mode=verbose +Enables verbose mode. This will show you the commands that are being +executed, as well as the version number of @code{ellcc}. If you specify +this option twice, then some extra debugging information is displayed. + +@item --mod-name=NAME +Sets the short internaml module @var{NAME} to the string specified, +which must consist only of valid C identifiers. Required during +initialization mode. + +@item --mod-version=VERSION +Sets the internal module @var{VERSION} to the specified string. +Required during initialization mode. + +@item --mod-title=TITLE +Sets the module descriptive @var{TITLE} to the string specified. This +string can contain any printable characters, but should not be too +long. It is required during initialization mode. + +@item --mod-output=FILENAME +Used to control the output file name. This is used during +initialization mode to set the name of the C source file that will be +created to @var{FILENAME}. During link mode, it sets the name of the +final loadable module to @var{FILENAME}. + +@item --mod-location +This will print the name of the standard module installation path on the +standard output and immediately exit @code{ellcc}. Use this option to +determine the directory prefix of where you should install your modules. + +@item --mod-site-location +This will print the name of the site specific module location and exit. + +@item --mod-archdir +Prints the name of the root of the architecture-dependant directory that +@emacs{} searches for architecture-dependant files. + +@item --mod-config +Prints the name of the configuration for which @emacs{} and @code{ellcc} +were compiled. +@end table + +@node Environment Variables, , Other ellcc options, Using ellcc +@section Environment Variables +@cindex environment variables + +During its normal operation, @code{ellcc} uses the compiler and linker +flags that were determined at the time @emacs{} was configured. In +certain rare circumstances you may wish to over-ride the flags passed to +the compiler or linker, and you can do so using environment variables. +The table below lists all of the environment variables that @code{ellcc} +recognises. + +@table @code +@item ELLCC +@cindex @code{ELLCC} +This is used to over-ride the name of the C compiler that is invoked by +@code{ellcc}. + +@item ELLLD +@cindex @code{ELLLD} +Sets the name of the link editor to use to created the final module. + +@item ELLCFLAGS +@cindex @code{ELLCFLAGS} +Sets the compiler flags passed on when compiling source modules. This +only sets the basic C compiler flags. There are certain hard-coded +flags that will always be passed. + +@item ELLLDFLAGS +@cindex @code{ELLLDFLAGS} +Sets the flags passed on to the linker. This does @strong{not} include +the flags for enabling PIC mode. This just sets basic linker flags. + +@item ELLDLLFLAGS +@cindex @code{ELLDLLFLAGS} +Sets the flags passed to the linker that are required to created shared +and loadable objects. + +@item ELLPICFLAGS +@cindex @code{ELLPICFLAGS} +Sets the C compiler option required to produce an object file that is +suitable for including in a shared library. This option should turn on +PIC mode, or the moral equivalent thereof on the target system. + +@item ELLMAKEDOC +@cindex @code{ELLMAKEDOC} +Sets the name of the @file{make-docfile} program to use. Usually +@code{ellcc} will use the version that was compiled and installed with +@emacs{}, but this option allows you to specify an alternative path. +Used during the compile phase of @emacs{} itself. +@end table + +@node Defining Functions, Defining Variables, Using ellcc, Top +@chapter Defining Functions +@cindex defining functions + + One of the main reasons you would ever write a module is to +provide one or more @dfn{functions} for the user or the editor to use. +The term +@dfn{function} is a bit overloaded here, as it refers to both a C +function and the way it appears to Lisp, which is a @dfn{subroutine}, or +simply a @dfn{subr}. A Lisp subr is also known as a Lisp primitive, but +that term applies less to dynamic modules. @xref{Writing Lisp +Primitives,,,internals,@emacs{} Internals Manual}, for details on how to +declare functions. You should familiarize yourself with the +instructions there. The format of the function declaration is identical +in modules. + + Normal Lisp primitives document the functions they defining by including +the documentation as a C comment. During the build process, a program +called @file{make-docfile} is run, which will extract all of these +comments, build up a single large documentation file, and will store +pointers to the start of each documentation entry in the dumped @emacs{}. +This, of course, will not work for dynamic modules, as they are loaded +long after @emacs{} has been dumped. For this reason, we require a +special means for adding documentation for new subrs. This is what the +macro @code{CDOCSUBR} is used for, and this is used extensively during +@code{ellcc} initialization mode. + + When using @code{DEFUN} in normal @emacs{} C code, the sixth +``parameter'' is a C comment which documents the function. For a +dynamic module, we of course need to convert the C comment to a usable +string, and we need to set the documentation pointer of the subr to this +string. As a module programmer, you don't actually need to do any work +for this to happen. It is all taken care of in the +@code{docs_of_module} function created by @code{ellcc}. + +@menu +* Using DEFUN:: Using the DEFUN macro to define functions +* Declaring Functions:: Declaring functions to the Lisp reader +@end menu + +@node Using DEFUN, Declaring Functions, Defining Functions, Defining Functions +@section Using @code{DEFUN} +@cindex subrs +@findex DEFUN +@cindex functions, Lisp +@cindex functions, defining + + Although the full syntax of a function declaration is discussed in the +@emacs{} internals manual in greater depth, what follows is a brief +description of how to define and implement a new Lisp primitive in a +module. This is done using the @code{DEFUN} macro. Here is a small +example: + +@example @code +@cartouche +DEFUN ("my-function", Fmy_function, 1, 1, "FFile name: ", /* +Sample Emacs primitive function. + +The specified FILE is frobricated before it is fnozzled. +*/ + (file)) +@{ + char *filename; + + if (NILP(file)) + return Qnil; + + filename = (char *)XSTRING_DATA(file); + frob(filename); + return Qt; +@} +@end cartouche +@end example + +The first argument is the name of the function as it will appear to the +Lisp reader. This must be provided as a string. The second argument is +the name of the actual C function that will be created. This is +typically the Lisp function name with a preceding capital @code{F}, with +hyphens converted to underscores. This must be a valid C function +name. Next come the minimum and maximum number of arguments, +respectively. This is used to ensure that the correct number of +arguments are passed to the function. Next is the @code{interactive} +definition. If this function is meant to be run by a user +interactively, then you need to specify the argument types and prompts +in this string. Please consult the @emacs{} Lisp manual for more +details. Next comes a C comment that is the documentation for this +function. This comment @strong{must} exist. Last comes the list of +function argument names, if any. + +@node Declaring Functions, , Using DEFUN, Defining Functions +@section Declaring Functions +@findex DEFSUBR +@cindex functions, declaring + +Simply writing the code for a function is not enough to make it +availible to the Lisp reader. You have to, during module +initialization, let the Lisp reader know about the new function. This +is done by calling @code{DEFSUBR} with the name of the function. This +is the sole purpose of the initialization function +@code{syms_of_module}. @xref{Required Functions}, for more details. + +Each call to @code{DEFSUBR} takes as its only argument the name of the +function, which is the same as the second argument to the call to +@code{DEFUN}. Using the example function above, you would insert the +following code in the @code{syms_of_module} function: + +@example @code +@cartouche +DEFSUBR(Fmy_function); +@end cartouche +@end example + +This call will instruct @emacs{} to make the function visible to the Lisp +reader and will prepare for the insertion of the documentation into +the right place. Once this is done, the user can call the Lisp +function @code{my-function}, if it was defined as an interactive +function (which in this case it was). + +Thats all there is to defining and announcing new functions. The rules +for what goes inside the functions, and how to write good modules, is +beyond the scope of this document. Please consult the @emacs{} +internals manual for more details. + +@node Defining Variables, Index, Defining Functions, Top +@chapter Defining Variables +@cindex defining variables +@cindex defining objects +@findex DEFVAR_LISP +@findex DEFVAR_BOOL +@findex DEFVAR_INT +@cindex variables, Lisp +@cindex variables, defining +@cindex objects, defining +@cindex objects, Lisp + + Rarely will you write a module that only contains functions. It is +common to also provide variables which can be used to control the +behaviour of the function, or store the results of the function being +executed. The actual C variable types are the same for modules +and internal @emacs{} primitives, and the declaration of the variables +is identical. + + @xref{Adding Global Lisp Variables,,,internals,XEmacs Internals Manual}, +for more information on variables and naming conventions. + + Once your variables are defined, you need to initialize them and make +the Lisp reader aware of them. This is done in the +@code{vars_of_module} initialization function using special @emacs{} +macros such as @code{DEFVAR_LISP}, @code{DEFVAR_BOOL}, @code{DEFVAR_INT} +etc. The best way to see how to use these macros is to look at existing +source code, or read the internals manual. + + One @emph{very} important difference between @emacs{} variables and +module variables is how you use pure space. Simply put, you +@strong{never} use pure space in @emacs{} modules. The pure space +storage is of a limited size, and is initialized propperly during the +dumping of @emacs{}. Because variables are being added dynamically to +an already running @emacs{} when you load a module, you cannot use pure +space. Be warned: @strong{do not use pure space in modules. Repeat, do +not use pure space in modules.} Once again, to remove all doubts: +@strong{DO NOT USE PURE SPACE IN MODULES!!!} + + Below is a small example which declares and initializes two +variables. You will note that this code takes into account the fact +that this module may very well be compiled into @emacs{} itself. This +is a prudent thing to do. + +@example @code +@cartouche +Lisp_Object Vsample_string; +int sample_boolean; + +void +vars_of_module() +@{ + DEFVAR_LISP ("sample-string", &Vsample_string /* +This is a sample string, declared in a module. + +Nothing magical about it. +*/); + + DEFVAR_BOOL("sample-boolean", &sample_boolean /* +*Sample user-settable boolean. +*/); + + sample_boolean = 0; + Vsample_string = build_string("My string"); +@} +@end cartouche +@end example + +@c Print the tables of contents +@contents +@c That's all + +@node Index, , Defining Variables, Top +@unnumbered Index + +@printindex cp + +@bye + diff --git a/man/internals/internals.texi b/man/internals/internals.texi index d9043c3..f6894c5 100644 --- a/man/internals/internals.texi +++ b/man/internals/internals.texi @@ -2676,7 +2676,7 @@ Header files should @emph{not} include @code{} and use it to do so. @item -If the header uses @code{INLINE}, either directly or though +If the header uses @code{INLINE}, either directly or through @code{DECLARE_LRECORD}, then it must be added to @file{inline.c}'s includes. @@ -2968,7 +2968,7 @@ low-level macros. As a general rule, all typedefs should go into the typedefs section of @file{lisp.h} rather than into a module-specific header file even if the structure is defined elsewhere. This allows function prototypes that -use the typedef to placed into other header files. Forward structure +use the typedef to be placed into other header files. Forward structure declarations (i.e. a simple declaration like @code{struct foo;} where the structure itself is defined elsewhere) should be placed into the typedefs section as necessary. diff --git a/modules/README b/modules/README new file mode 100644 index 0000000..8240cc0 --- /dev/null +++ b/modules/README @@ -0,0 +1,17 @@ +This directory contains a number of sample Emacs dynamic modules. +These modules can be loaded with the command 'M-x load-module'. + +To compile one of these modules, simply enter the desired directory +and type 'make'. Then, from within Emacs, load the module by +specifying the path to the directory which contains the compiled +module. + +Each of these samples describes different features and limitations +of the Emacs module loading technology. Please refer to the README +files in each directory for a brief discussion on what the sample +in that directory is demonstrating. For a complete discussion on +Emacs dynamic modules, please consult the Emacs Module Writers Guide, +which can be found in the ../info directory. + +NOTE: As this technology matures, this directory will eventually contain +large parts of XEmacs itself, which will be loaded in as required. diff --git a/modules/base64/Makefile b/modules/base64/Makefile new file mode 100644 index 0000000..43a70e3 --- /dev/null +++ b/modules/base64/Makefile @@ -0,0 +1,39 @@ +# +# Sample makefile for a simple Emacs module. +# This is slightly more complicated than would normally be the case, +# as this makefile has been tailored to work in the Emacs source tree. +# For samples of how to compile modules outside of the source tree +# (as would be the case if a user had downloaded a module and wanted +# to compile it for use within Emacs), see the samples in the sub-directory +# 'installed'. +# + +CC=../../lib-src/ellcc +CFLAGS=-I. -I../../src +LD=$(CC) --mode=link +MKINIT=$(CC) --mode=init + +SRCS=base64.c +OBJS=$(SRCS:.c=.o) + +.c.o: + $(CC) $(CFLAGS) -c $< + +MODNAME=base64 +MODVER=1.0.0 +MODTITLE="Encode objects in Base 64" + +all: $(MODNAME).ell + +clean: + rm -f $(MODNAME).ell $(OBJS) base64_i.o base64_i.c + +$(MODNAME).ell: $(OBJS) base64_i.o + $(LD) --mod-output=$@ $(OBJS) base64_i.o + +base64_i.o: base64_i.c +base64_i.c: $(SRCS) + ELLMAKEDOC=../../lib-src/make-docfile $(MKINIT) --mod-output=$@ \ + --mod-name=$(MODNAME) --mod-version=$(MODVER) \ + --mod-title=$(MODTITLE) $(SRCS) + diff --git a/modules/base64/base64.c b/modules/base64/base64.c index b65625f..48459a7 100644 --- a/modules/base64/base64.c +++ b/modules/base64/base64.c @@ -1,5 +1,5 @@ /* base64 interface for XEmacs. - Copyright (C) 1998 Free Software Foundation, Inc. + Copyright (C) 1998, 1999 Free Software Foundation, Inc. This file is part of XEmacs. @@ -22,15 +22,7 @@ Boston, MA 02111-1307, USA. */ /* Author: William Perry */ -#include - -#include "lisp.h" -#include "buffer.h" -#include "insdel.h" -#include "lstream.h" -#ifdef FILE_CODING -#include "file-coding.h" -#endif +#include unsigned char alphabet[64] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; @@ -416,14 +408,14 @@ determined. Else assume binary coding if all else fails. } void -syms_of (void) +syms_of_base64 (void) { DEFSUBR(Fbase64_encode); DEFSUBR(Fbase64_decode); } void -vars_of (void) +vars_of_base64 (void) { Fprovide (intern ("base64")); } diff --git a/modules/ldap/Makefile b/modules/ldap/Makefile new file mode 100644 index 0000000..e0f1976 --- /dev/null +++ b/modules/ldap/Makefile @@ -0,0 +1,39 @@ +# +# Sample makefile for a simple Emacs module. +# This is slightly more complicated than would normally be the case, +# as this makefile has been tailored to work in the Emacs source tree. +# For samples of how to compile modules outside of the source tree +# (as would be the case if a user had downloaded a module and wanted +# to compile it for use within Emacs), see the samples in the sub-directory +# 'installed'. +# + +CC=../../lib-src/ellcc +CFLAGS=-I. -I../../src +LD=$(CC) --mode=link +MKINIT=$(CC) --mode=init + +SRCS=eldap.c +OBJS=$(SRCS:.c=.o) + +.c.o: + $(CC) $(CFLAGS) -c $< + +MODNAME=ldap +MODVER=1.0.0 +MODTITLE="LDAP Client Interface for XEmacs" + +all: $(MODNAME).ell + +clean: + rm -f $(MODNAME).ell $(OBJS) eldap_i.o eldap_i.c + +$(MODNAME).ell: $(OBJS) eldap_i.o + $(LD) --mod-output=$@ $(OBJS) eldap_i.o + +eldap_i.o: eldap_i.c +eldap_i.c: $(SRCS) + ELLMAKEDOC=../../lib-src/make-docfile $(MKINIT) --mod-output=$@ \ + --mod-name=$(MODNAME) --mod-version=$(MODVER) \ + --mod-title=$(MODTITLE) $(SRCS) + diff --git a/modules/ldap/eldap.c b/modules/ldap/eldap.c index d902d57..e9bdf0c 100644 --- a/modules/ldap/eldap.c +++ b/modules/ldap/eldap.c @@ -28,16 +28,11 @@ Boston, MA 02111-1307, USA. */ - UMich LDAP 3.3 (http://www.umich.edu/~dirsvcs/ldap/) - Netscape's LDAP SDK 1.0 (http://developer.netscape.com) */ - - -#include +#include #if defined (HAVE_LDAP) - /* The entire file is within this conditional */ -#include "lisp.h" - #include "eldap.h" #include #include @@ -409,7 +404,7 @@ an alist of attribute/values. } void -syms_of (void) +syms_of_ldap (void) { DEFSUBR(Fldap_search_internal); @@ -440,7 +435,7 @@ syms_of (void) } void -vars_of (void) +vars_of_ldap (void) { Fprovide (intern ("ldap-internal")); diff --git a/modules/sample/Makefile b/modules/sample/Makefile new file mode 100644 index 0000000..09390d1 --- /dev/null +++ b/modules/sample/Makefile @@ -0,0 +1,39 @@ +# +# Sample makefile for a simple Emacs module. +# This is slightly more complicated than would normally be the case, +# as this makefile has been tailored to work in the Emacs source tree. +# For samples of how to compile modules outside of the source tree +# (as would be the case if a user had downloaded a module and wanted +# to compile it for use within Emacs), see the samples in the sub-directory +# 'installed'. +# + +CC=../../lib-src/ellcc +CFLAGS=-I. -I../../src +LD=$(CC) --mode=link +MKINIT=$(CC) --mode=init + +SRCS=sample.c +OBJS=$(SRCS:.c=.o) + +.c.o: + $(CC) $(CFLAGS) -c $< + +MODNAME=sample +MODVER=1.0.0 +MODTITLE="Sample loadable module" + +all: $(MODNAME).ell + +clean: + rm -f $(MODNAME).ell $(OBJS) sample_i.o sample_i.c + +$(MODNAME).ell: $(OBJS) sample_i.o + $(LD) --mod-output=$@ $(OBJS) sample_i.o + +sample_i.o: sample_i.c +sample_i.c: $(SRCS) + ELLMAKEDOC=../../lib-src/make-docfile $(MKINIT) --mod-output=$@ \ + --mod-name=$(MODNAME) --mod-version=$(MODVER) \ + --mod-title=$(MODTITLE) $(SRCS) + diff --git a/modules/sample/sample.c b/modules/sample/sample.c new file mode 100644 index 0000000..1f519fc --- /dev/null +++ b/modules/sample/sample.c @@ -0,0 +1,92 @@ +/* + * Very simple sample module. Illustrates most of the salient features + * of Emacs dynamic modules. + * (C) Copyright 1998, 1999 J. Kean Johnston. All rights reserved. + */ + +#include + +/* + * This sample introduces three new Lisp objects to the Lisp reader. + * The first, a simple boolean value, and the second a string. The + * Third is a sample function that simply prints a message. + */ +int sample_bool; +Lisp_Object Vsample_string; + +DEFUN ("sample-function", Fsample_function, 0, 0, "", /* +This is a sample function loaded dynamically. + +You will notice in the source code for this module that the +declaration is identical to internal Emacs functions. This +makes it possible to use the exact same code in a dumped +version of Emacs. +*/ + ()) +{ + message ("Eureka! It worked"); + return Qt; +} + +/* + * Each dynamically loaded Emacs module is given a name at compile + * time. This is a short name, and must be a valid part of a C + * identifier. This name is used to contruct the name of several + * functions which must appear in the module source code. + * The first such function, modules_of_XXXX, should load in any dependant + * modules. This function is optional, and the module will still load if + * it is not present in the module. + * + * The second function, which is NOT optional, is syms_of_XXXX, in which + * all functions that the module will be provided are declared. This + * function will contain calls to DEFSUBR(). + * + * The third function, which is also NOT optional, is vars_of_XXXX, in + * which you declare all variables that the module provides. This + * function will contain calls to DEFVAR_LISP(), DEFVAR_BOOL() etc. + * + * When declaring functions and variables in the syms_of_XXXX and + * vars_of_XXXX functions, you use the exact same syntax that you + * would as if this module were being compiled into the pure Emacs. + * + * All three of these functions are declared as void functions, + * taking no parameters. Since this sample module is called 'sample', + * the functions will be named 'modules_of_sample', 'syms_of_sample' + * and 'vars_of_sample'. + */ + +void +modules_of_sample() +{ + /* + * This function isn't actually required as we will not be loading + * in any dependant modules, but if we were, we would do something like: + * emodules_load ("dependant.ell", "sample2", "1.0.0"); + */ +} + +void +syms_of_sample() +{ + DEFSUBR(Fsample_function); +} + +void +vars_of_sample() +{ + DEFVAR_LISP ("sample-string", &Vsample_string /* +This is a sample string, declared in a dynamic module. + +The syntax and conventions used for all normal Emacs variables +apply equally to modules, using an identical syntax. +*/ ); + + DEFVAR_BOOL ("sample-boolean", &sample_bool /* +*Sample boolean value, in a dynamic module. + +This is a user-settable variable, as indicated by the * +as the first character of the description. Declared in +a module exactly as it would be internally in Emacs. +*/ ); +} + diff --git a/modules/zlib/Makefile b/modules/zlib/Makefile new file mode 100644 index 0000000..cb7aecd --- /dev/null +++ b/modules/zlib/Makefile @@ -0,0 +1,39 @@ +# +# Sample makefile for a simple Emacs module. +# This is slightly more complicated than would normally be the case, +# as this makefile has been tailored to work in the Emacs source tree. +# For samples of how to compile modules outside of the source tree +# (as would be the case if a user had downloaded a module and wanted +# to compile it for use within Emacs), see the samples in the sub-directory +# 'installed'. +# + +CC=../../lib-src/ellcc +CFLAGS=-I. -I../../src +LD=$(CC) --mode=link +MKINIT=$(CC) --mode=init + +SRCS=zlib.c +OBJS=$(SRCS:.c=.o) + +.c.o: + $(CC) $(CFLAGS) -c $< + +MODNAME=zlib +MODVER=1.0.4 +MODTITLE="ZLIB compression library interface" + +all: $(MODNAME).ell + +clean: + rm -f $(MODNAME).ell $(OBJS) zlib_i.o zlib_i.c + +$(MODNAME).ell: $(OBJS) zlib_i.o + $(LD) --mod-output=$@ $(OBJS) zlib_i.o + +zlib_i.o: zlib_i.c +zlib_i.c: $(SRCS) + ELLMAKEDOC=../../lib-src/make-docfile $(MKINIT) --mod-output=$@ \ + --mod-name=$(MODNAME) --mod-version=$(MODVER) \ + --mod-title=$(MODTITLE) $(SRCS) + diff --git a/modules/zlib/zlib.c b/modules/zlib/zlib.c index 55adcaf..f5fb817 100644 --- a/modules/zlib/zlib.c +++ b/modules/zlib/zlib.c @@ -22,9 +22,7 @@ Boston, MA 02111-1307, USA. */ /* Author: William Perry */ -#include - -#include "lisp.h" +#include DEFUN ("compress", Fcompress, 1, 6, 0, /* Return the compressed version of an object. @@ -58,14 +56,14 @@ determined. Else assume binary coding if all else fails. } void -syms_of (void) +syms_of_zlib (void) { DEFSUBR(Fcompress); DEFSUBR(Fdecompress); } void -vars_of (void) +vars_of_zlib (void) { Fprovide (intern ("zlib")); } diff --git a/nt/ChangeLog b/nt/ChangeLog index 37ef852..7a0a030 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog @@ -1,3 +1,27 @@ +1999-02-02 XEmacs Build Bot + + * XEmacs 21.2.9 is released + +1999-01-14 Adrian Aichner + + * xemacs.mak (MODULES): Adding variable. + (update-elc): Setting EMACSBOOTSTRAPMODULEPATH. + +1998-12-17 Charles G. Waldman + + * minitar.c: New file + * minitar.mak: New file + +1998-12-29 Jonathan Harris + + * xemacs.mak: + Changed x86 EMACS_CONFIGURATION to i586-pc-win32 since we + build optimised for Pentium. + Created CFLAGS variable, used in building all objects and in + constructing config.values. + Added glyphs-widget.c and gui-msw.c to list of sources. + Added PACKAGE_PATH to EMACSBOOTSTRAPLOADPATH for mule builds. + 1998-12-28 Martin Buchholz * XEmacs 21.2.8 is released. diff --git a/nt/minitar.c b/nt/minitar.c new file mode 100644 index 0000000..4d89875 --- /dev/null +++ b/nt/minitar.c @@ -0,0 +1,211 @@ + +/* Minitar: extract .tar.gz files on Win32 platforms. + Uses zlib for decompression. + + This is very simple-minded, it ignores checksums, and any type of file + that is not a plain file or a directory. Nonetheless it is useful. + + Author: Charles G. Waldman (cgw@pgt.com), Aug 4 1998 + + This file is placed in the public domain; you can + do whatever you like with it. There is NO WARRANTY. + If it breaks, you get to keep both pieces */ + + +#include +#include + +#include + +Usage(char *name) +{ + fprintf(stderr,"Usage: %s file.tar.gz [base-dir]\n",name); + fprintf(stderr,"\tExtracts the contents compressed tar file to base-dir\n"); + exit(-1); +} + + +#define BLOCKSIZE 512 +#define MAXNAMELEN 1024 + +int octal(char *str) +{ + int ret = -1; + sscanf(str,"%o",&ret); + return ret; +} + +/* this is like mkdir -p, except if there is no trailing slash, + the final component is assumed to be a file, rather than a + path component, so it is not created as a directory */ + +int makepath(char *path) +{ + char tmp[MAXNAMELEN]; + char *cp; + extern int errno; + + for (cp=path; cp; cp = (char*)strchr(cp+1,'/')){ + if (!*cp) + break; + if (*cp != '/') + continue; + strncpy(tmp, path, cp-path); + tmp[cp-path] = '\0'; + if (strlen(tmp) == 0) + continue; + if (mkdir(tmp,0777)){ + if (errno == EEXIST) + continue; + else + return -1; + } + } + return 0; +} + + + + +main(int argc, char **argv) +{ + char fullname[MAXNAMELEN]; + char *basedir = "."; + char *tarfile; + char *cp; + int size; + char osize[13]; + char name[101]; + char magic[7]; + char type; + + gzFile *infile = (gzFile*)0; + FILE *outfile = (FILE*)0; + + char block[BLOCKSIZE]; + int nbytes, nread, nwritten; + + int in_block = 0; + int directory = 0; + + if (argc < 2 || argc > 3) + Usage(argv[0]); + + tarfile = argv[1]; + if (argc==3) + basedir = argv[2]; + + if (! (infile = gzopen(tarfile,"rb"))){ + fprintf(stderr,"Cannot open %s\n", tarfile); + exit(-2); + } + + while (1){ + + + nread = gzread(infile,block,512); + + if (!in_block && nread == 0) + break; + + if (nread != BLOCKSIZE){ + fprintf(stderr,"Error: incomplete block read. Exiting.\n"); + exit(-2); + } + + if (!in_block){ + if (block[0]=='\0') /* We're done */ + break; + + strncpy(magic,block+257,6); + magic[6] = '\0'; + if (strcmp(magic,"ustar ")){ + fprintf(stderr, + "Error: incorrect magic number in tar header. Exiting\n"); + } + + strncpy(name,block,100); + name[100] = '\0'; + sprintf(fullname,"%s/%s",basedir,name); + printf("%s\n",fullname); + type = block[156]; + + switch(type){ + case '0': + case '\0': + directory = 0; + break; + case '5': + directory = 1; + break; + default: + fprintf(stderr,"Error: unknown type flag %c. Exiting.\n",type); + break; + } + + if (directory){ + in_block = 0; + + /* makepath will ignore the final path component, so make sure + dirnames have a trailing slash */ + + if (fullname[strlen(fullname)-1] != '/') + strcat(fullname,"/"); + if (makepath(fullname)){ + fprintf(stderr, "Error: cannot create directory %s. Exiting.\n", + fullname); + exit(-2); + } + continue; + } else { /*file */ + in_block = 1; + if (outfile){ + if (fclose(outfile)){ + fprintf(stderr,"Error: cannot close file %s. Exiting.\n", + fullname); + exit(-2); + } + outfile = (FILE*)0; + } + + if ( !(outfile = fopen(fullname,"wb"))){ + /*try creating the directory, maybe it's not there */ + if (makepath(fullname)){ + fprintf(stderr,"Error: cannot create file %s. Exiting.\n", + fullname); + exit(-2); + } + /* now try again to open the file */ + if (!(outfile = fopen(fullname,"wb"))){ + fprintf(stderr,"Error: cannot create file %s. Exiting.\n", + fullname); + exit(-2); + } + } + + strncpy(osize,block+124,12); + osize[12] = '\0'; + size = octal(osize); + if (size<0){ + fprintf(stderr,"Error: invalid size in tar header. Exiting.\n"); + exit(-2); + } + } + } else { /* write or continue writing file contents */ + nbytes = size>512? 512:size; + + nwritten = fwrite(block, 1, nbytes, outfile); + if (nwritten != nbytes){ + fprintf(stderr, "Error: only wrote %d bytes to file %s. Exiting.\n", + nwritten, fullname); + } + size -= nbytes; + if (size==0) + in_block = 0; + } + } +} + + + + diff --git a/nt/xemacs.mak b/nt/xemacs.mak index de64bc6..4743085 100644 --- a/nt/xemacs.mak +++ b/nt/xemacs.mak @@ -26,6 +26,7 @@ XEMACS=.. LISP=$(XEMACS)\lisp +MODULES=$(XEMACS)\modules NT=$(XEMACS)\nt # Program name and version @@ -125,9 +126,9 @@ USE_INDEXED_LRECORD_IMPLEMENTATION=0 # System configuration # !if !defined(PROCESSOR_ARCHITECTURE) && "$(OS)" != "Windows_NT" -EMACS_CONFIGURATION=i386-pc-win32 +EMACS_CONFIGURATION=i586-pc-win32 !else if "$(PROCESSOR_ARCHITECTURE)" == "x86" -EMACS_CONFIGURATION=i386-pc-win32 +EMACS_CONFIGURATION=i586-pc-win32 !else if "$(PROCESSOR_ARCHITECTURE)" == "MIPS" EMACS_CONFIGURATION=mips-pc-win32 !else if "$(PROCESSOR_ARCHITECTURE)" == "ALPHA" @@ -291,9 +292,9 @@ USE_INDEXED_LRECORD_IMPLEMENTATION=$(GUNG_HO) VERBOSECC=0 !endif !if $(VERBOSECC) -CCV=$(CC) -nologo +CCV=$(CC) !else -CCV=@$(CC) -nologo +CCV=@$(CC) !endif !if $(DEBUG_XEMACS) @@ -302,7 +303,7 @@ OPT=-Od -Zi OPT=-O2 -G5 -Zi !endif -WARN_CPP_FLAGS = -W3 +CFLAGS=-nologo -W3 $(OPT) !if $(HAVE_X) X_DEFINES=-DHAVE_X_WINDOWS @@ -416,7 +417,7 @@ OUTDIR=obj # Compiler Information !if defined(CCV) &&\ [echo What compiler should XEmacs be built with?>>Installation] &&\ -[echo $(CCV)>>Installation] +[echo $(CC) $(CFLAGS)>>Installation] !endif # Window System Information !if [echo What window system should XEmacs use?>>Installation] @@ -499,7 +500,7 @@ CONFIG_VALUES = $(LIB_SRC)\config.values # Inferred rule {$(LIB_SRC)}.c{$(LIB_SRC)}.exe : @cd $(LIB_SRC) - $(CCV) -I. -I$(XEMACS)/src -I$(XEMACS)/nt/inc $(LIB_SRC_DEFINES) -O2 -W3 -Fe$@ $** + $(CCV) -I. -I$(XEMACS)/src -I$(XEMACS)/nt/inc $(LIB_SRC_DEFINES) $(CFLAGS) -Fe$@ $** @cd $(NT) # Individual dependencies @@ -507,7 +508,7 @@ ETAGS_DEPS = $(LIB_SRC)/getopt.c $(LIB_SRC)/getopt1.c $(LIB_SRC)/../src/regex.c $(LIB_SRC)/etags.exe : $(LIB_SRC)/etags.c $(ETAGS_DEPS) $(LIB_SRC)/movemail.exe: $(LIB_SRC)/movemail.c $(LIB_SRC)/pop.c $(ETAGS_DEPS) @cd $(LIB_SRC) - $(CCV) -I. -I$(XEMACS)/src -I$(XEMACS)/nt/inc $(LIB_SRC_DEFINES) -O2 -W3 -Fe$@ $** wsock32.lib + $(CCV) -I. -I$(XEMACS)/src -I$(XEMACS)/nt/inc $(LIB_SRC_DEFINES) $(CFLAGS) -Fe$@ $** wsock32.lib @cd $(NT) LIB_SRC_TOOLS = \ @@ -521,12 +522,15 @@ LIB_SRC_TOOLS = \ #------------------------------------------------------------------------------ -# runemacs proglet +# runxemacs proglet -RUNEMACS = $(XEMACS)\src\runemacs.exe +RUNEMACS = $(XEMACS)\src\runxemacs.exe -$(RUNEMACS): $(NT)\runemacs.c $(NT)\xemacs.res - $(CCV) -I. -I$(XEMACS)/src -I$(XEMACS)/nt/inc -O2 -W3 -Fe$@ $** kernel32.lib user32.lib +$(RUNEMACS): $(LIB_SRC)\run.c $(LIB_SRC)\run.res + $(CCV) -I$(LIB_SRC) -O2 -Fe$@ $** kernel32.lib user32.lib + +$(LIB_SRC)\run.res: $(LIB_SRC)\run.rc + rc -I$(LIB_SRC) -FO$(LIB_SRC)\run.res $(LIB_SRC)\run.rc #------------------------------------------------------------------------------ @@ -534,7 +538,7 @@ $(RUNEMACS): $(NT)\runemacs.c $(NT)\xemacs.res LASTFILE=$(OUTDIR)\lastfile.lib LASTFILE_SRC=$(XEMACS)\src -LASTFILE_FLAGS=$(WARN_CPP_FLAGS) $(OPT) $(INCLUDES) -Fo$@ -c +LASTFILE_FLAGS=$(CFLAGS) $(INCLUDES) -Fo$@ -c LASTFILE_OBJS= \ $(OUTDIR)\lastfile.obj @@ -552,7 +556,7 @@ $(OUTDIR)\lastfile.obj: $(LASTFILE_SRC)\lastfile.c LWLIB=$(OUTDIR)\lwlib.lib LWLIB_SRC=$(XEMACS)\lwlib -LWLIB_FLAGS=$(WARN_CPP_FLAGS) $(OPT) $(INCLUDES) $(DEFINES) \ +LWLIB_FLAGS=$(CFLAGS) $(INCLUDES) $(DEFINES) \ -DNEED_ATHENA -DNEED_LUCID \ -D_WINDOWS -DMENUBARS_LUCID -DSCROLLBARS_LUCID -DDIALOGS_ATHENA \ -Fo$@ -c @@ -637,6 +641,7 @@ DOC_SRC3=\ $(XEMACS)\src\general.c \ $(XEMACS)\src\glyphs.c \ $(XEMACS)\src\glyphs-eimage.c \ + $(XEMACS)\src\glyphs-widget.c \ $(XEMACS)\src\gmalloc.c \ $(XEMACS)\src\gui.c \ $(XEMACS)\src\hash.c \ @@ -670,7 +675,6 @@ DOC_SRC4=\ $(XEMACS)\src\redisplay.c \ $(XEMACS)\src\regex.c \ $(XEMACS)\src\scrollbar.c \ - $(XEMACS)\src\scrollbar-msw.c \ $(XEMACS)\src\search.c \ $(XEMACS)\src\signal.c \ $(XEMACS)\src\sound.c @@ -720,6 +724,7 @@ DOC_SRC7=\ $(XEMACS)\src\event-msw.c \ $(XEMACS)\src\frame-msw.c \ $(XEMACS)\src\glyphs-msw.c \ + $(XEMACS)\src\gui-msw.c \ $(XEMACS)\src\menubar-msw.c \ $(XEMACS)\src\objects-msw.c \ $(XEMACS)\src\redisplay-msw.c \ @@ -733,11 +738,13 @@ DOC_SRC7=\ !if $(HAVE_MULE) DOC_SRC8=\ - $(XEMACS)\src\input-method-xlib.c \ $(XEMACS)\src\mule.c \ $(XEMACS)\src\mule-charset.c \ $(XEMACS)\src\mule-ccl.c \ $(XEMACS)\src\mule-coding.c +! if $(HAVE_X) + DOC_SRC8=$(DOC_SRC8) $(XEMACS)\src\input-method-xlib.c +! endif !endif !if $(DEBUG_XEMACS) @@ -759,13 +766,13 @@ TEMACS=$(TEMACS_DIR)\temacs.exe TEMACS_BROWSE=$(TEMACS_DIR)\temacs.bsc TEMACS_SRC=$(XEMACS)\src TEMACS_LIBS=$(LASTFILE) $(LWLIB) $(X_LIBS) $(MSW_LIBS) \ - kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib \ - shell32.lib ole32.lib oleaut32.lib uuid.lib wsock32.lib winmm.lib libc.lib + kernel32.lib user32.lib gdi32.lib advapi32.lib \ + shell32.lib wsock32.lib winmm.lib libc.lib TEMACS_LFLAGS=-nologo $(LIBRARIES) $(DEBUG_FLAGS) -base:0x1000000\ -stack:0x800000 -entry:_start -subsystem:console\ -pdb:$(TEMACS_DIR)\temacs.pdb -map:$(TEMACS_DIR)\temacs.map \ -heap:0x00100000 -out:$@ -TEMACS_CPP_FLAGS= $(WARN_CPP_FLAGS) $(INCLUDES) $(DEFINES) $(DEBUG_DEFINES) \ +TEMACS_CPP_FLAGS=-ML -c $(CFLAGS) $(INCLUDES) $(DEFINES) $(DEBUG_DEFINES) \ -DEMACS_MAJOR_VERSION=$(emacs_major_version) \ -DEMACS_MINOR_VERSION=$(emacs_minor_version) \ $(EMACS_BETA_VERSION) \ @@ -773,8 +780,6 @@ TEMACS_CPP_FLAGS= $(WARN_CPP_FLAGS) $(INCLUDES) $(DEFINES) $(DEBUG_DEFINES) \ -DEMACS_CONFIGURATION=\"$(EMACS_CONFIGURATION)\" \ -DPATH_PACKAGEPATH=\"$(PATH_PACKAGEPATH)\" -TEMACS_FLAGS=-ML $(WARN_CPP_FALGS) $(OPT) -c $(TEMACS_CPP_FLAGS) - !if $(HAVE_X) TEMACS_X_OBJS=\ $(OUTDIR)\balloon-x.obj \ @@ -807,6 +812,7 @@ TEMACS_MSW_OBJS=\ $(OUTDIR)\event-msw.obj \ $(OUTDIR)\frame-msw.obj \ $(OUTDIR)\glyphs-msw.obj \ + $(OUTDIR)\gui-msw.obj \ $(OUTDIR)\menubar-msw.obj \ $(OUTDIR)\objects-msw.obj \ $(OUTDIR)\redisplay-msw.obj \ @@ -820,11 +826,14 @@ TEMACS_MSW_OBJS=\ !if $(HAVE_MULE) TEMACS_MULE_OBJS=\ - $(OUTDIR)\input-method-xlib.obj \ $(OUTDIR)\mule.obj \ $(OUTDIR)\mule-charset.obj \ $(OUTDIR)\mule-ccl.obj \ $(OUTDIR)\mule-coding.obj +! if $(HAVE_X) +TEMACS_MULE_OBJS=\ + $(TEMACS_MULE_OBJS) $(OUTDIR)\input-method-xlib.obj +! endif !endif !if $(DEBUG_XEMACS) @@ -879,6 +888,7 @@ TEMACS_OBJS= \ $(OUTDIR)\general.obj \ $(OUTDIR)\glyphs.obj \ $(OUTDIR)\glyphs-eimage.obj \ + $(OUTDIR)\glyphs-widget.obj \ $(OUTDIR)\gmalloc.obj \ $(OUTDIR)\gui.obj \ $(OUTDIR)\hash.obj \ @@ -934,13 +944,13 @@ TEMACS_OBJS= \ # nmake rule {$(TEMACS_SRC)}.c{$(OUTDIR)}.obj: - $(CCV) $(TEMACS_FLAGS) $< -Fo$@ -Fr$*.sbr + $(CCV) $(TEMACS_CPP_FLAGS) $< -Fo$@ -Fr$*.sbr $(OUTDIR)\TopLevelEmacsShell.obj: $(TEMACS_SRC)\EmacsShell-sub.c - $(CCV) $(TEMACS_FLAGS) -DDEFINE_TOP_LEVEL_EMACS_SHELL $** -Fo$@ + $(CCV) $(TEMACS_CPP_FLAGS) -DDEFINE_TOP_LEVEL_EMACS_SHELL $** -Fo$@ $(OUTDIR)\TransientEmacsShell.obj: $(TEMACS_SRC)\EmacsShell-sub.c - $(CCV) $(TEMACS_FLAGS) -DDEFINE_TRANSIENT_EMACS_SHELL $** -Fo$@ + $(CCV) $(TEMACS_CPP_FLAGS) -DDEFINE_TRANSIENT_EMACS_SHELL $** -Fo$@ $(OUTDIR)\alloc.obj: $(TEMACS_SRC)\alloc.c $(TEMACS_SRC)\puresize-adjust.h @@ -987,7 +997,8 @@ $(LISP)\Installation.el: Installation.el copy Installation.el $(LISP) update-elc: $(LISP)\Installation.el - set EMACSBOOTSTRAPLOADPATH=$(LISP) + set EMACSBOOTSTRAPLOADPATH=$(LISP);$(PACKAGE_PATH) + set EMACSBOOTSTRAPMODULEPATH=$(MODULES) $(TEMACS) -batch -l $(TEMACS_DIR)\..\lisp\update-elc.el # This rule dumps xemacs and then possibly spawns sub-make if PURESPACE @@ -995,7 +1006,7 @@ update-elc: $(LISP)\Installation.el dump-xemacs: $(TEMACS) @echo >$(TEMACS_DIR)\SATISFIED cd $(TEMACS_DIR) - set EMACSBOOTSTRAPLOADPATH=$(LISP) + set EMACSBOOTSTRAPLOADPATH=$(LISP);$(PACKAGE_PATH) -1 $(TEMACS) -batch -l $(TEMACS_DIR)\..\lisp\loadup.el dump @cd $(NT) @if not exist $(TEMACS_DIR)\SATISFIED nmake -nologo -f xemacs.mak $@ @@ -1065,7 +1076,7 @@ distclean: -del /s /q *.bak *.elc *.orig *.rej depend: - mkdepend -f xemacs.mak -p$(OUTDIR)\ -o.obj -w9999 -- $(TEMACS_CPP_FLAGS) -- $(DOC_SRC1) $(DOC_SRC2) $(DOC_SRC3) $(DOC_SRC4) $(DOC_SRC5) $(DOC_SRC6) $(DOC_SRC7) $(DOC_SRC8) $(DOC_SRC9) $(LASTFILE_SRC)\lastfile.c $(LIB_SRC)\make-docfile.c .\runemacs.c + mkdepend -f xemacs.mak -p$(OUTDIR)\ -o.obj -w9999 -- $(TEMACS_CPP_FLAGS) -- $(DOC_SRC1) $(DOC_SRC2) $(DOC_SRC3) $(DOC_SRC4) $(DOC_SRC5) $(DOC_SRC6) $(DOC_SRC7) $(DOC_SRC8) $(DOC_SRC9) $(LASTFILE_SRC)\lastfile.c $(LIB_SRC)\make-docfile.c $(LIB_SRC)\run.c # DO NOT DELETE THIS LINE -- make depend depends on it. diff --git a/src/ChangeLog b/src/ChangeLog index abcaa7a..175fdde 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,227 @@ +1999-02-02 XEmacs Build Bot + + * XEmacs 21.2.9 is released + +1999-01-30 Martin Buchholz + + * bytecode.c (funcall_compiled_function): Call + UNBIND_TO_GCPRO instead of UNBIND_TO_GCPRO_VARIABLES_ONLY. + + * backtrace.h (UNBIND_TO_GCPRO_VARIABLES_ONLY): + #ifdef 0 out unused macro. + +1999-01-27 Martin Buchholz + + * gui.c (gui_parse_item_keywords_internal): Make static. + +1999-01-21 Andy Piper + + * glyphs-msw.c: add xface support. + (mswindows_xface_instantiate): new function copied from glyphs-x.c + (image_instantiator_format_create_glyphs_mswindows): do device + specific initialisation for xfaces. + (xbm_create_bitmap_from_data): line data must be padded to a word + boundary. + + * glyphs-x.c (xface_validate): moved to glyphs.c + (xface_normalize): ditto. + (xface_possible_dest_types): ditto. + (image_instantiator_format_create_glyphs_x): do device specific + initialisation for xfaces. + + * glyphs.h: declare xface symbol. + + * glyphs.c: move generic xface support here. + (xface_validate): moved from glyphs-x.c + (xface_normalize): ditto. + (xface_possible_dest_types): ditto. + (image_instantiator_format_create): xface declarations moved from + glyphs-x.c. + +1999-01-14 Adrian Aichner + + * event-stream.c (vars_of_event_stream): Fixing documentation. + +1999-01-17 Gunnar Evermann + + * glyphs-eimage.c (gif_instantiate): Correct handling of + interlaced gifs to avoid writing past the end of the eimage + buffer. + +1999-01-13 Hrvoje Niksic + + * search.c (Freplace_match): Handle single backslash at end of + NEWTEXT correctly. + +1999-01-12 William M. Perry + + * eldap.c (Fldap_open): slow down interrupts around ldap_open to + avoid connection errors. + +1999-01-12 Andy Piper + + * redisplay-output.c (redisplay_update_line): backout change that + shouldn't have gone ine. + +1999-01-09 Oscar Figueiredo + + * eldap.c (vars_of_ldap): Do no provide `ldap' here since it may + collide with ldap.el + +1999-01-11 Andy Piper + + * redisplay.h (DISPLAY_LINE_HEIGHT): new macro. + (DISPLAY_LINE_YPOS): new macro. + + * redisplay-msw.c (mswindows_output_string): use it. + (mswindows_output_pixmap): ditto. + (mswindows_output_display_block): ditto. + + * redisplay-output.c (redisplay_output_display_block): new + function. just call the devmeth, maybe insert some generic code + here later. + (compare_display_blocks): use it. + (output_display_line): ditto. + (redisplay_unmap_subwindows_maybe): new function. potentially + unmap subwindows in the given area. + + * glyphs.c (reset_subwindow_cachels): unmap subwindows that we are + resetting. + +1999-01-10 J. Kean Johnston + + * Makefile.in.in: Set value of moduledir + - Changed DUMPENV to include $(MODULEPATH) + - Added install rule to install header files for use by ellcc. + + * config.h.in: Added INHIBIT_SITE_MODULES + - Added HAVE__DLERROR + - Added HAVE_DLFCN_H + - Added DLSYM_NEEDS_UNDERSCORE + + * dll.c: Removed. + + * emodules.c: New file containing dynamic loading code. + + * emodules.h: New file. + + * emacs.c: Added variables Vmodule_directory, + Vsite_module_directory, Vconfigure_module_directory and + Vconfigure_site_module_directory. + - (main_1): Added new variable inhibit_site_modules and command + line options `-no-site-modules' and `--no-site-modules'. + - (main_1): Call syms_of_module() instead of syms_of_dll(). + - (main_1): Call vars_of_module(). + - (vars_of_emacs): Introduce inhibit-site-modules, + module-directory, configure-module-directory, + site-module-directory, and configure-site-module-directory to the + Lisp reader. + + * lisp.h: Declare load_module and list_modules, as well as + Vmodule_directory, Vsite_module_directory, + Vconfigure_module_directory and Vconfigure_site_module_directory. + + * paths.h.in: Added PATH_MODULESEARCH and PATH_SITE_MODULES. + - Added correct support for site-lisp directory. + + * symbols.c (defsubr): Modified to allow modules to add new subrs + after dump time. + - (defsubr_macro): Same. + - (defvar_magick): Only use purespace when not initialized, so + that loaded modules can still add symbols. + + * symsinit.h: Add definitions for syms_of_module(), + vars_of_module(). Removed syms_of_dll(). + + * sysdll.c: Include dlfcn.h if HAVE_DLFCN_H is defined. + - (dll_variable): Take DLSYM_NEEDS_UNDERSCORE into account. + - (dll_error): use _dlerror() if HAVE__DLERROR is defined. + + * s/sco5-shr.h (C_SWITCH_SYSTEM): Correct for modern gcc and + explicitly pass -belf for native cc. + + * s/sco5.h (LIB_GCC): Use -print-libgcc-file-name instead of + hard-coding the library name. + +1999-01-01 + + * device-x.c (Fx_set_font_path): + Add proper cast to permit compilation under C++. + + * buffer.c (directory_is_current_directory): + Add proper casts to permit compilation under C++. + +1998-12-30 Damon Lipparelli + + * event-msw.c (mswindows_wnd_proc): + Fixed failure when building with MSVC 5. + +1998-12-29 Martin Buchholz + + * file-coding.c (decode_coding_iso2022): + - Prevent crash when decoding ISO7/Lock detected files + - the usual martin fiddling + +1998-12-29 Jonathan Harris + + * event-msw.c: + glyphs-msw.c: + Fixed failures when building with MSVC. + * unexnt.c (dump_bss_and_heap): + Removed compiler warning by removing bss_data variable. + +1998-12-18 Jim Radford + + * device-x.c (Fx_set_font_path, Fx_get_font_path): New functions + so that packages that distribute their own fonts can access them. + +1998-12-28 Andy Piper + + * glyphs-msw.c (mswindows_button_instantiate): cope with buttons + that have an image provided. + + * glyphs.h: add Q_image decl. + + * glyphs-widget.c new functionality allowing images in + widgets. + (check_valid_glyph_or_image): new function to validate + glyphs passed in through :image. + (widget_normalize): new function. convert :image parameters into + real glyphs if not already so. + (widget_instantiate_1): mess with size parameters to be similar to + :image if provided. + (syms_of_glyphs_widget): new keyword :image. + (image_instantiator_format_create_glyphs_widget): normalize + buttons and allow :image. + +1998-12-27 Andy Piper + + * frame-msw.c (mswindows_init_frame_1): warning elimination. + + * glyphs-widget.c (check_valid_anything): no-op function. + (check_valid_callback): check callbacks in gui_items. + (check_valid_symbol): as it sounds. + (check_valid_string_or_vector): ditto. + (widget_validate): modified for descriptors that are vectors or + sequences of keyword/val pairs. + (widget_instantiate_1): ditto. + (image_instantiator_format_create_glyphs_widget): allow gui_item + keywords in the instantiator. + + * gui.c (gui_parse_item_keywords_internal): renamed from + gui_parse_item_keywords but taking error behaviour. + (gui_parse_item_keywords): use it. + (gui_parse_item_keywords_no_errors): ditto. + (gui_item_add_keyval_pair): add Error_behavior flag and only + signal invalid keywords if required. + + * gui.h: new gui signatures. + + * menubar.c (menu_parse_submenu_keywords): use new + gui_item_add_keyval_pair signature. + + * s/cygwin32.h: modify PTY_ITERATION to eliminate warnings. + 1998-12-28 Martin Buchholz * XEmacs 21.2.8 is released. @@ -44,7 +268,7 @@ * process-unix.c (unix_create_process): - Fix crash invoking program with non-ASCII name. - Try invoking xemacs with SHELL=/bin/üsh, then M-x shell. + Try invoking xemacs with SHELL=/bin/sh, then M-x shell. - Remove unused variable `env'. - Rename `temp' to better name `save_errno'. - Reorganize code for clarity. But still too chicken to nuke the diff --git a/src/Makefile.in.in b/src/Makefile.in.in index bbb3127..723d739 100644 --- a/src/Makefile.in.in +++ b/src/Makefile.in.in @@ -2,6 +2,7 @@ ## Copyright (C) 1985, 1987, 1988, 1993, 1994 Free Software Foundation, Inc. ## Copyright (C) 1994, 1995 Board of Trustees, University of Illinois ## Copyright (C) 1996, 1997 Sun Microsystems, Inc. +## Copyright (C) 1998, 1999 J. Kean Johnston. ## This file is part of XEmacs. @@ -42,6 +43,7 @@ SHELL=/bin/sh RM = rm -f lispdir = ${srcdir}/../lisp/ +moduledir = ${srcdir}/../modules/ libsrc = ../lib-src/ etcdir = ../etc/ @@ -308,8 +310,9 @@ mo_dir = ${etcdir} mo_file = ${mo_dir}emacs.mo #endif -LOADPATH = EMACSBOOTSTRAPLOADPATH="${lispdir}:${blddir}" -DUMPENV = $(LOADPATH) +LOADPATH = EMACSBOOTSTRAPLOADPATH="${lispdir}:${blddir}" +MODULEPATH = EMACSBOOTSTRAPMODULEPATH="${moduledir}:${blddir}" +DUMPENV = $(LOADPATH) $(MODULEPATH) temacs_loadup = $(DUMPENV) ./temacs -batch -l ${srcdir}/../lisp/loadup.el dump_temacs = ${temacs_loadup} dump run_temacs = ${temacs_loadup} run-temacs @@ -709,6 +712,33 @@ unlock: relock: chmod -w $(SOURCES) +## Header files for ellcc +#ifdef HAVE_SHLIB +MAKEPATH=../lib-src/make-path +install: ${PROGNAME} + ${MAKEPATH} ${archlibdir}/include ${archlibdir}/include/m ${archlibdir}/include/s + -@echo "Copying include files for ellcc..." + -@hdir=`pwd`; \ + cd ${srcdir}; hdrdir2=`pwd`; cd $$hdir; \ + test "$$hdrdir2" != "$$hdir" && hdir="$$hdir $$hdrdir2"; \ + (for thisdir in $$hdir; do \ + cd $$hdir && \ + (hdrtars=; \ + for hdrfile in *.h; do \ + hdrtars="$$hdrtars $$hdrfile"; \ + done; \ + test -d s && hdrtars="$$hdrtars s/*"; \ + test -d m && hdrtars="$$hdrtars m/*"; \ + test -n "$$hdrtars" && (tar cf - $$hdrtars) | \ + (cd ${archlibdir}/include && umask 022 && tar xf -); \ + chmod 755 ${archlibdir}/include; \ + test -d ${archlibdir}/include/s && \ + chmod 755 ${archlibdir}/include/s; \ + test -d ${archlibdir}/include/m && \ + chmod 755 ${archlibdir}/include/s;) \ + done) +#endif + ## Dependency processing using home-grown script, not makedepend .PHONY: depend FRC.depend: diff --git a/src/backtrace.h b/src/backtrace.h index 1f57911..126ac25 100644 --- a/src/backtrace.h +++ b/src/backtrace.h @@ -277,6 +277,9 @@ extern int specpdl_size; #define CHECK_SPECBIND_VARIABLE DO_NOTHING #endif +#if 0 +/* Unused. It's too hard to guarantee that the current bindings + contain only variables. */ /* Another inline version of unbind_to(). VALUE is GC-protected. Caller guarantees that: - all of the elements on the binding stack are variable bindings. @@ -303,6 +306,7 @@ extern int specpdl_size; } \ } \ } while (0) +#endif /* unused */ /* A faster, but less safe inline version of Fset(). Caller guarantees that: diff --git a/src/buffer.c b/src/buffer.c index 30489d4..d5d69c9 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -2698,11 +2698,11 @@ directory_is_current_directory (char *pwd) GET_C_CHARPTR_INT_FILENAME_DATA_ALLOCA (pwd, pwd_internal); return (IS_DIRECTORY_SEP (*pwd_internal) - && stat (pwd_internal, &pwdstat) == 0 - && stat ("." , &dotstat) == 0 + && stat ((char *) pwd_internal, &pwdstat) == 0 + && stat (".", &dotstat) == 0 && dotstat.st_ino == pwdstat.st_ino && dotstat.st_dev == pwdstat.st_dev - && (int) strlen (pwd_internal) < MAXPATHLEN); + && (int) strlen ((char *) pwd_internal) < MAXPATHLEN); } void @@ -2734,7 +2734,7 @@ init_initial_directory (void) initial_directory[len + 1] = '\0'; } } - + /* XEmacs change: store buffer's default directory using preferred (i.e. as defined at compile-time) directory separator. --marcpa */ diff --git a/src/bytecode.c b/src/bytecode.c index b6a79b9..09e4908 100644 --- a/src/bytecode.c +++ b/src/bytecode.c @@ -529,7 +529,11 @@ funcall_compiled_function (Lisp_Object fun, int nargs, Lisp_Object args[]) f->stack_depth, XVECTOR_DATA (f->constants)); - UNBIND_TO_GCPRO_VARIABLES_ONLY (speccount, value); + /* The attempt to optimize this by only unbinding variables failed + because using buffer-local variables as function parameters + leads to specpdl_ptr->func != 0 */ + /* UNBIND_TO_GCPRO_VARIABLES_ONLY (speccount, value); */ + UNBIND_TO_GCPRO (speccount, value); return value; } diff --git a/src/config.h.in b/src/config.h.in index a9acd10..40b56c3 100644 --- a/src/config.h.in +++ b/src/config.h.in @@ -1,5 +1,5 @@ /* XEmacs site configuration template file. -*- C -*- - Copyright (C) 1986, 1991, 1992, 1993, 1994 Free Software Foundation, Inc. + Copyright (C) 1986, 1991-1994, 1998, 1999 Free Software Foundation, Inc. This file is part of XEmacs. @@ -81,6 +81,9 @@ char *alloca(); /* Allow the configurer to specify if she wants site-lisp. */ #undef INHIBIT_SITE_LISP +/* Allow the configurer to specify if she wants site-modules. */ +#undef INHIBIT_SITE_MODULES + /* This will be removed in 19.15. */ /* Hah! Try 20.3 ... */ /* Hah! Try never ... */ @@ -214,9 +217,11 @@ char *alloca(); /* Have shared library support */ #undef HAVE_DLOPEN #undef HAVE_DLERROR +#undef HAVE__DLERROR #undef HAVE_SHL_LOAD #undef HAVE_DLD_INIT #undef HAVE_SHLIB +#undef HAVE_DLFCN_H #undef HAVE_LIBKSTAT #undef HAVE_LIBINTL diff --git a/src/depend b/src/depend index 419ee1d..d26e1c9 100644 --- a/src/depend +++ b/src/depend @@ -8,34 +8,35 @@ LISP_UNION_H=lisp-disunion.h LISP_H = lisp.h config.h $(LISP_UNION_H) #ifdef HAVE_MS_WINDOWS console-msw.o: $(LISP_H) conslots.h console-msw.h console.h events.h lisp-disunion.h lisp-union.h lrecord.h opaque.h symeval.h symsinit.h systime.h -device-msw.o: $(LISP_H) buffer.h bufslots.h conslots.h console-msw.h console-stream.h console.h device.h events.h faces.h frame.h frameslots.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h systime.h toolbar.h -dialog-msw.o: $(LISP_H) buffer.h bufslots.h conslots.h console-msw.h console.h device.h frame.h frameslots.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h +device-msw.o: $(LISP_H) buffer.h bufslots.h conslots.h console-msw.h console-stream.h console.h device.h events.h faces.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h systime.h toolbar.h +dialog-msw.o: $(LISP_H) buffer.h bufslots.h conslots.h console-msw.h console.h device.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h dired-msw.o: $(LISP_H) buffer.h bufslots.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h ndir.h nt.h regex.h symeval.h symsinit.h sysdir.h sysfile.h sysproc.h systime.h -event-msw.o: $(LISP_H) conslots.h console-msw.h console.h device.h dragdrop.h events-mod.h events.h frame.h frameslots.h lisp-disunion.h lisp-union.h lrecord.h lstream.h menubar-msw.h mule-charset.h process.h redisplay.h scrollbar-msw.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysfile.h sysproc.h systime.h syswait.h toolbar.h -frame-msw.o: $(LISP_H) buffer.h bufslots.h conslots.h console-msw.h console.h device.h events.h faces.h frame.h frameslots.h glyphs-msw.h glyphs.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h -glyphs-msw.o: $(LISP_H) buffer.h bufslots.h conslots.h console-msw.h console.h device.h faces.h file-coding.h frame.h frameslots.h glyphs-msw.h glyphs.h imgproc.h insdel.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h objects-msw.h objects.h opaque.h scrollbar.h specifier.h symeval.h symsinit.h sysfile.h toolbar.h -menubar-msw.o: $(LISP_H) buffer.h bufslots.h commands.h conslots.h console-msw.h console.h device.h elhash.h events.h frame.h frameslots.h gui.h lisp-disunion.h lisp-union.h lrecord.h menubar-msw.h menubar.h mule-charset.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h +event-msw.o: $(LISP_H) buffer.h bufslots.h conslots.h console-msw.h console.h device.h dragdrop.h events-mod.h events.h faces.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h lstream.h menubar-msw.h mule-charset.h objects-msw.h objects.h process.h redisplay.h scrollbar-msw.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysfile.h sysproc.h systime.h syswait.h toolbar.h +frame-msw.o: $(LISP_H) buffer.h bufslots.h conslots.h console-msw.h console.h device.h elhash.h events.h faces.h frame.h frameslots.h glyphs-msw.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h +glyphs-msw.o: $(LISP_H) buffer.h bufslots.h conslots.h console-msw.h console.h device.h elhash.h faces.h file-coding.h frame.h frameslots.h glyphs-msw.h glyphs.h gui.h imgproc.h insdel.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h objects-msw.h objects.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysfile.h toolbar.h window.h winslots.h +gui-msw.o: $(LISP_H) conslots.h console-msw.h console.h device.h elhash.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h +menubar-msw.o: $(LISP_H) buffer.h bufslots.h commands.h conslots.h console-msw.h console.h device.h elhash.h events.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h menubar-msw.h menubar.h mule-charset.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h objects-msw.o: $(LISP_H) buffer.h bufslots.h conslots.h console-msw.h console.h device.h hash.h insdel.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects-msw.h objects.h specifier.h symeval.h symsinit.h -redisplay-msw.o: $(LISP_H) buffer.h bufslots.h conslots.h console-msw.h console.h debug.h device.h events.h faces.h frame.h frameslots.h glyphs-msw.h glyphs.h lisp-disunion.h lisp-union.h lrecord.h mule-ccl.h mule-charset.h objects-msw.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h systime.h toolbar.h window.h winslots.h -scrollbar-msw.o: $(LISP_H) conslots.h console-msw.h console.h device.h events.h frame.h frameslots.h lisp-disunion.h lisp-union.h lrecord.h redisplay.h scrollbar-msw.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h +redisplay-msw.o: $(LISP_H) buffer.h bufslots.h conslots.h console-msw.h console.h debug.h device.h events.h faces.h frame.h frameslots.h glyphs-msw.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-ccl.h mule-charset.h objects-msw.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h systime.h toolbar.h window.h winslots.h +scrollbar-msw.o: $(LISP_H) conslots.h console-msw.h console.h device.h events.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h redisplay.h scrollbar-msw.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h select-msw.o: $(LISP_H) conslots.h console-msw.h console.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h toolbar-msw.o: $(LISP_H) buffer.h bufslots.h conslots.h console-msw.h console.h device.h elhash.h faces.h frame.h frameslots.h glyphs-msw.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects-msw.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h #endif #ifdef HAVE_X_WINDOWS balloon-x.o: $(LISP_H) balloon_help.h conslots.h console-x.h console.h device.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h xintrinsic.h console-x.o: $(LISP_H) conslots.h console-x.h console.h lisp-disunion.h lisp-union.h lrecord.h process.h redisplay.h symeval.h symsinit.h xintrinsic.h -device-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h buffer.h bufslots.h conslots.h console-x.h console.h device.h elhash.h events.h faces.h frame.h frameslots.h glyphs-x.h glyphs.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects-x.h objects.h offix-types.h offix.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysfile.h systime.h toolbar.h window.h winslots.h xgccache.h xintrinsic.h xintrinsicp.h xmu.h -dialog-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h buffer.h bufslots.h commands.h conslots.h console-x.h console.h device.h events.h frame.h frameslots.h gui-x.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h xintrinsic.h -frame-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h EmacsManager.h EmacsShell.h ExternalShell.h buffer.h bufslots.h conslots.h console-x.h console.h device.h dragdrop.h events-mod.h events.h extents.h faces.h frame.h frameslots.h glyphs-x.h glyphs.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects-x.h objects.h offix-types.h offix.h redisplay.h scrollbar-x.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h xintrinsic.h xintrinsicp.h xmprimitivep.h xmu.h -glyphs-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h bitmaps.h buffer.h bufslots.h conslots.h console-x.h console.h device.h file-coding.h frame.h frameslots.h glyphs-x.h glyphs.h imgproc.h insdel.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h objects-x.h objects.h opaque.h scrollbar.h specifier.h symeval.h symsinit.h sysfile.h toolbar.h xintrinsic.h xmu.h -gui-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h buffer.h bufslots.h conslots.h console-x.h console.h device.h frame.h frameslots.h gui-x.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h xintrinsic.h -input-method-xfs.o: $(LISP_H) EmacsFrame.h buffer.h bufslots.h conslots.h console-x.h console.h device.h events.h frame.h frameslots.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h xintrinsic.h -input-method-xlib.o: $(LISP_H) EmacsFrame.h buffer.h bufslots.h conslots.h console-x.h console.h device.h events.h frame.h frameslots.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h xintrinsic.h -menubar-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h buffer.h bufslots.h commands.h conslots.h console-x.h console.h device.h events.h frame.h frameslots.h gui-x.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h xintrinsic.h +device-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h buffer.h bufslots.h conslots.h console-x.h console.h device.h elhash.h events.h faces.h frame.h frameslots.h glyphs-x.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects-x.h objects.h offix-types.h offix.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysfile.h systime.h toolbar.h window.h winslots.h xgccache.h xintrinsic.h xintrinsicp.h xmu.h +dialog-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h buffer.h bufslots.h commands.h conslots.h console-x.h console.h device.h events.h frame.h frameslots.h glyphs.h gui-x.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h xintrinsic.h +frame-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h EmacsManager.h EmacsShell.h ExternalShell.h buffer.h bufslots.h conslots.h console-x.h console.h device.h dragdrop.h events-mod.h events.h extents.h faces.h frame.h frameslots.h glyphs-x.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects-x.h objects.h offix-types.h offix.h redisplay.h scrollbar-x.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h xintrinsic.h xintrinsicp.h xmprimitivep.h xmu.h +glyphs-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h bitmaps.h buffer.h bufslots.h conslots.h console-x.h console.h device.h file-coding.h frame.h frameslots.h glyphs-x.h glyphs.h gui.h imgproc.h insdel.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h objects-x.h objects.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysfile.h toolbar.h window.h winslots.h xintrinsic.h xmu.h +gui-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h buffer.h bufslots.h conslots.h console-x.h console.h device.h frame.h frameslots.h glyphs.h gui-x.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h xintrinsic.h +input-method-xfs.o: $(LISP_H) EmacsFrame.h buffer.h bufslots.h conslots.h console-x.h console.h device.h events.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h xintrinsic.h +input-method-xlib.o: $(LISP_H) EmacsFrame.h buffer.h bufslots.h conslots.h console-x.h console.h device.h events.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h xintrinsic.h +menubar-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h buffer.h bufslots.h commands.h conslots.h console-x.h console.h device.h events.h frame.h frameslots.h glyphs.h gui-x.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h xintrinsic.h objects-x.o: $(LISP_H) buffer.h bufslots.h conslots.h console-x.h console.h device.h insdel.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects-x.h objects.h specifier.h symeval.h symsinit.h xintrinsic.h -redisplay-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h buffer.h bufslots.h conslots.h console-x.h console.h debug.h device.h faces.h file-coding.h frame.h frameslots.h glyphs-x.h glyphs.h lisp-disunion.h lisp-union.h lrecord.h mule-ccl.h mule-charset.h objects-x.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysproc.h systime.h toolbar.h window.h winslots.h xgccache.h xintrinsic.h xintrinsicp.h xmprimitivep.h -scrollbar-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h conslots.h console-x.h console.h device.h frame.h frameslots.h glyphs-x.h glyphs.h gui-x.h lisp-disunion.h lisp-union.h lrecord.h redisplay.h scrollbar-x.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h xintrinsic.h -toolbar-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h buffer.h bufslots.h conslots.h console-x.h console.h device.h faces.h frame.h frameslots.h glyphs-x.h glyphs.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects-x.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h xintrinsic.h xintrinsicp.h xmprimitivep.h +redisplay-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h buffer.h bufslots.h conslots.h console-x.h console.h debug.h device.h faces.h file-coding.h frame.h frameslots.h glyphs-x.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-ccl.h mule-charset.h objects-x.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysproc.h systime.h toolbar.h window.h winslots.h xgccache.h xintrinsic.h xintrinsicp.h xmprimitivep.h +scrollbar-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h conslots.h console-x.h console.h device.h frame.h frameslots.h glyphs-x.h glyphs.h gui-x.h gui.h lisp-disunion.h lisp-union.h lrecord.h redisplay.h scrollbar-x.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h xintrinsic.h +toolbar-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h buffer.h bufslots.h conslots.h console-x.h console.h device.h faces.h frame.h frameslots.h glyphs-x.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects-x.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h xintrinsic.h xintrinsicp.h xmprimitivep.h #endif #ifdef HAVE_DATABASE database.o: $(LISP_H) buffer.h bufslots.h database.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h symeval.h symsinit.h sysfile.h @@ -56,121 +57,122 @@ ExternalShell.o: ExternalShell.h ExternalShellP.h config.h extw-Xlib.h extw-Xt.h extw-Xlib.o: config.h extw-Xlib.h extw-Xt.o: config.h extw-Xlib.h extw-Xt.h #endif -EmacsFrame.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h EmacsManager.h buffer.h bufslots.h conslots.h console-x.h console.h device.h faces.h frame.h frameslots.h glyphs-x.h glyphs.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects-x.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h xintrinsic.h xintrinsicp.h xmprimitivep.h xmu.h +EmacsFrame.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h EmacsManager.h buffer.h bufslots.h conslots.h console-x.h console.h device.h faces.h frame.h frameslots.h glyphs-x.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects-x.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h xintrinsic.h xintrinsicp.h xmprimitivep.h xmu.h EmacsManager.o: EmacsManager.h EmacsManagerP.h config.h xintrinsicp.h xmmanagerp.h EmacsShell-sub.o: EmacsShell.h EmacsShellP.h config.h xintrinsic.h xintrinsicp.h EmacsShell.o: EmacsShell.h ExternalShell.h config.h xintrinsicp.h abbrev.o: $(LISP_H) buffer.h bufslots.h chartab.h commands.h insdel.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h symeval.h symsinit.h syntax.h window.h winslots.h -alloc.o: $(LISP_H) backtrace.h buffer.h bufslots.h bytecode.h chartab.h conslots.h console.h device.h elhash.h events.h extents.h frame.h frameslots.h glyphs.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h puresize-adjust.h puresize.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysfile.h systime.h toolbar.h window.h winslots.h +alloc.o: $(LISP_H) backtrace.h buffer.h bufslots.h bytecode.h chartab.h conslots.h console.h device.h elhash.h events.h extents.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h puresize-adjust.h puresize.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysfile.h systime.h toolbar.h window.h winslots.h alloca.o: config.h balloon_help.o: balloon_help.h config.h xintrinsic.h blocktype.o: $(LISP_H) blocktype.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h -buffer.o: $(LISP_H) buffer.h bufslots.h chartab.h commands.h conslots.h console.h device.h elhash.h extents.h faces.h frame.h frameslots.h insdel.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h syntax.h sysdep.h sysfile.h toolbar.h window.h winslots.h +buffer.o: $(LISP_H) buffer.h bufslots.h chartab.h commands.h conslots.h console.h device.h elhash.h extents.h faces.h frame.h frameslots.h glyphs.h gui.h insdel.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h syntax.h sysdep.h sysfile.h toolbar.h window.h winslots.h bytecode.o: $(LISP_H) backtrace.h buffer.h bufslots.h bytecode.h chartab.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h symeval.h symsinit.h syntax.h callint.o: $(LISP_H) buffer.h bufslots.h bytecode.h commands.h events.h insdel.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h symeval.h symsinit.h systime.h window.h winslots.h callproc.o: $(LISP_H) buffer.h bufslots.h commands.h file-coding.h insdel.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h nt.h process.h redisplay.h scrollbar.h symeval.h symsinit.h sysdep.h sysfile.h sysproc.h syssignal.h systime.h systty.h window.h winslots.h casefiddle.o: $(LISP_H) buffer.h bufslots.h chartab.h insdel.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h symeval.h symsinit.h syntax.h casetab.o: $(LISP_H) buffer.h bufslots.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h symeval.h symsinit.h chartab.o: $(LISP_H) buffer.h bufslots.h chartab.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h symeval.h symsinit.h syntax.h -cm.o: $(LISP_H) conslots.h console-tty.h console.h device.h frame.h frameslots.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h syssignal.h systty.h toolbar.h -cmdloop.o: $(LISP_H) buffer.h bufslots.h commands.h conslots.h console.h device.h events.h frame.h frameslots.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h +cm.o: $(LISP_H) conslots.h console-tty.h console.h device.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h syssignal.h systty.h toolbar.h +cmdloop.o: $(LISP_H) buffer.h bufslots.h commands.h conslots.h console.h device.h events.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h cmds.o: $(LISP_H) buffer.h bufslots.h chartab.h commands.h insdel.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h symeval.h symsinit.h syntax.h -console-stream.o: $(LISP_H) conslots.h console-stream.h console-tty.h console.h device.h events.h frame.h frameslots.h lisp-disunion.h lisp-union.h lrecord.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysfile.h syssignal.h systime.h systty.h toolbar.h window.h winslots.h -console-tty.o: $(LISP_H) buffer.h bufslots.h conslots.h console-stream.h console-tty.h console.h device.h faces.h file-coding.h frame.h frameslots.h gpmevent.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysfile.h syssignal.h systty.h toolbar.h -console.o: $(LISP_H) buffer.h bufslots.h conslots.h console-tty.h console.h device.h events.h frame.h frameslots.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h syssignal.h systime.h systty.h toolbar.h window.h winslots.h +console-stream.o: $(LISP_H) conslots.h console-stream.h console-tty.h console.h device.h events.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysfile.h syssignal.h systime.h systty.h toolbar.h window.h winslots.h +console-tty.o: $(LISP_H) buffer.h bufslots.h conslots.h console-stream.h console-tty.h console.h device.h faces.h file-coding.h frame.h frameslots.h glyphs.h gpmevent.h gui.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysfile.h syssignal.h systty.h toolbar.h +console.o: $(LISP_H) buffer.h bufslots.h conslots.h console-tty.h console.h device.h events.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h syssignal.h systime.h systty.h toolbar.h window.h winslots.h data.o: $(LISP_H) backtrace.h buffer.h bufslots.h bytecode.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h symeval.h symsinit.h sysfloat.h syssignal.h debug.o: $(LISP_H) bytecode.h debug.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h -device-tty.o: $(LISP_H) buffer.h bufslots.h conslots.h console-stream.h console-tty.h console.h device.h events.h faces.h frame.h frameslots.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h syssignal.h systime.h systty.h toolbar.h -device.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h elhash.h events.h faces.h frame.h frameslots.h keymap.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h syssignal.h systime.h toolbar.h window.h winslots.h +device-tty.o: $(LISP_H) buffer.h bufslots.h conslots.h console-stream.h console-tty.h console.h device.h events.h faces.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h syssignal.h systime.h systty.h toolbar.h +device.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h elhash.h events.h faces.h frame.h frameslots.h glyphs.h gui.h keymap.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h syssignal.h systime.h toolbar.h window.h winslots.h dgif_lib.o: gifrlib.h -dialog.o: $(LISP_H) conslots.h console.h device.h frame.h frameslots.h lisp-disunion.h lisp-union.h lrecord.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h +dialog.o: $(LISP_H) conslots.h console.h device.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h dired.o: $(LISP_H) buffer.h bufslots.h commands.h elhash.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h ndir.h opaque.h regex.h symeval.h symsinit.h sysdir.h sysfile.h syspwd.h systime.h -dll.o: $(LISP_H) buffer.h bufslots.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h symeval.h symsinit.h sysdll.h doc.o: $(LISP_H) buffer.h bufslots.h bytecode.h insdel.h keymap.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h symeval.h symsinit.h sysfile.h doprnt.o: $(LISP_H) buffer.h bufslots.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h symeval.h symsinit.h dragdrop.o: $(LISP_H) dragdrop.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h dynarr.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h ecrt0.o: config.h -editfns.o: $(LISP_H) buffer.h bufslots.h chartab.h commands.h conslots.h console.h device.h events.h extents.h frame.h frameslots.h insdel.h line-number.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h syspwd.h systime.h toolbar.h window.h winslots.h -eldap.o: $(LISP_H) eldap.h lisp-disunion.h lisp-union.h lrecord.h opaque.h symeval.h symsinit.h sysdep.h +editfns.o: $(LISP_H) buffer.h bufslots.h chartab.h commands.h conslots.h console.h device.h events.h extents.h frame.h frameslots.h glyphs.h gui.h insdel.h line-number.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h syspwd.h systime.h toolbar.h window.h winslots.h +eldap.o: $(LISP_H) buffer.h bufslots.h eldap.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h symeval.h symsinit.h sysdep.h elhash.o: $(LISP_H) bytecode.h elhash.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h emacs.o: $(LISP_H) backtrace.h buffer.h bufslots.h commands.h conslots.h console.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h paths.h process.h redisplay.h symeval.h symsinit.h sysdep.h sysdll.h sysfile.h syssignal.h systime.h systty.h +emodules.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h emodules.h file-coding.h frame.h frameslots.h glyphs.h gui.h insdel.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysdll.h toolbar.h window.h winslots.h eval.o: $(LISP_H) backtrace.h buffer.h bufslots.h bytecode.h commands.h conslots.h console.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h symeval.h symsinit.h -event-Xt.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h blocktype.h buffer.h bufslots.h conslots.h console-tty.h console-x.h console.h device.h dragdrop.h elhash.h events-mod.h events.h file-coding.h frame.h frameslots.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h objects-x.h objects.h offix-types.h offix.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysproc.h syssignal.h systime.h systty.h toolbar.h xintrinsic.h xintrinsicp.h -event-stream.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h blocktype.h buffer.h bufslots.h commands.h conslots.h console-x.h console.h device.h elhash.h events-mod.h events.h file-coding.h frame.h frameslots.h gui-x.h insdel.h keymap.h lisp-disunion.h lisp-union.h lrecord.h lstream.h macros.h mule-charset.h opaque.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysfile.h syssignal.h systime.h toolbar.h window.h winslots.h xintrinsic.h -event-tty.o: $(LISP_H) conslots.h console-tty.h console.h device.h events.h frame.h frameslots.h lisp-disunion.h lisp-union.h lrecord.h process.h scrollbar.h specifier.h symeval.h symsinit.h sysproc.h syssignal.h systime.h systty.h syswait.h toolbar.h +event-Xt.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h blocktype.h buffer.h bufslots.h conslots.h console-tty.h console-x.h console.h device.h dragdrop.h elhash.h events-mod.h events.h file-coding.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h objects-x.h objects.h offix-types.h offix.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysproc.h syssignal.h systime.h systty.h toolbar.h xintrinsic.h xintrinsicp.h +event-stream.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h blocktype.h buffer.h bufslots.h commands.h conslots.h console-x.h console.h device.h elhash.h events-mod.h events.h file-coding.h frame.h frameslots.h glyphs.h gui-x.h gui.h insdel.h keymap.h lisp-disunion.h lisp-union.h lrecord.h lstream.h macros.h mule-charset.h opaque.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysfile.h syssignal.h systime.h toolbar.h window.h winslots.h xintrinsic.h +event-tty.o: $(LISP_H) conslots.h console-tty.h console.h device.h events.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h process.h scrollbar.h specifier.h symeval.h symsinit.h sysproc.h syssignal.h systime.h systty.h syswait.h toolbar.h event-unixoid.o: $(LISP_H) conslots.h console-stream.h console-tty.h console.h device.h events.h gpmevent.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h process.h symeval.h symsinit.h sysdep.h sysfile.h sysproc.h syssignal.h systime.h systty.h -events.o: $(LISP_H) buffer.h bufslots.h conslots.h console-tty.h console-x.h console.h device.h events-mod.h events.h extents.h frame.h frameslots.h glyphs.h keymap.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h syssignal.h systime.h systty.h toolbar.h window.h winslots.h xintrinsic.h -extents.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h debug.h device.h elhash.h extents.h faces.h frame.h frameslots.h glyphs.h insdel.h keymap.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h -faces.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h elhash.h extents.h faces.h frame.h frameslots.h glyphs.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h +events.o: $(LISP_H) buffer.h bufslots.h conslots.h console-tty.h console-x.h console.h device.h events-mod.h events.h extents.h frame.h frameslots.h glyphs.h gui.h keymap.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h syssignal.h systime.h systty.h toolbar.h window.h winslots.h xintrinsic.h +extents.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h debug.h device.h elhash.h extents.h faces.h frame.h frameslots.h glyphs.h gui.h insdel.h keymap.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h +faces.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h elhash.h extents.h faces.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h file-coding.o: $(LISP_H) buffer.h bufslots.h elhash.h file-coding.h insdel.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-ccl.h mule-charset.h symeval.h symsinit.h -fileio.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h events.h file-coding.h frame.h frameslots.h insdel.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h ndir.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysdir.h sysfile.h sysproc.h syspwd.h systime.h toolbar.h window.h winslots.h +fileio.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h events.h file-coding.h frame.h frameslots.h glyphs.h gui.h insdel.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h ndir.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysdir.h sysfile.h sysproc.h syspwd.h systime.h toolbar.h window.h winslots.h filelock.o: $(LISP_H) buffer.h bufslots.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h ndir.h paths.h symeval.h symsinit.h sysdir.h sysfile.h syspwd.h syssignal.h filemode.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h sysfile.h floatfns.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h sysfloat.h syssignal.h -fns.o: $(LISP_H) buffer.h bufslots.h bytecode.h conslots.h console.h device.h events.h extents.h frame.h frameslots.h insdel.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h opaque.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h +fns.o: $(LISP_H) buffer.h bufslots.h bytecode.h conslots.h console.h device.h events.h extents.h frame.h frameslots.h glyphs.h gui.h insdel.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h opaque.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h font-lock.o: $(LISP_H) buffer.h bufslots.h chartab.h insdel.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h symeval.h symsinit.h syntax.h -frame-tty.o: $(LISP_H) conslots.h console-tty.h console.h device.h events.h frame.h frameslots.h lisp-disunion.h lisp-union.h lrecord.h scrollbar.h specifier.h symeval.h symsinit.h syssignal.h systime.h systty.h toolbar.h +frame-tty.o: $(LISP_H) conslots.h console-tty.h console.h device.h events.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h scrollbar.h specifier.h symeval.h symsinit.h syssignal.h systime.h systty.h toolbar.h frame.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h events.h extents.h faces.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h menubar.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h free-hook.o: $(LISP_H) hash.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h general.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h getloadavg.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h sysfile.h gif_io.o: gifrlib.h -glyphs-eimage.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h faces.h file-coding.h frame.h frameslots.h gifrlib.h glyphs.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h objects.h opaque.h scrollbar.h specifier.h symeval.h symsinit.h sysfile.h toolbar.h -glyphs.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h elhash.h faces.h frame.h frameslots.h glyphs.h insdel.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h +glyphs-eimage.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h faces.h file-coding.h frame.h frameslots.h gifrlib.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h objects.h opaque.h scrollbar.h specifier.h symeval.h symsinit.h sysfile.h toolbar.h +glyphs-widget.o: $(LISP_H) buffer.h bufslots.h bytecode.h conslots.h console.h device.h faces.h frame.h frameslots.h glyphs.h gui.h insdel.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h objects.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h +glyphs.o: $(LISP_H) buffer.h bufslots.h chartab.h conslots.h console.h device.h elhash.h faces.h frame.h frameslots.h glyphs.h gui.h insdel.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects.h opaque.h rangetab.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h gmalloc.o: config.h getpagesize.h gpmevent.o: $(LISP_H) conslots.h console-tty.h console.h device.h events-mod.h events.h gpmevent.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h sysdep.h syssignal.h systime.h systty.h -gui.o: $(LISP_H) bytecode.h gui.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h +gui.o: $(LISP_H) bytecode.h elhash.h gui.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h hash.o: $(LISP_H) hash.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h hftctl.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h hpplay.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h imgproc.o: $(LISP_H) imgproc.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h -indent.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h extents.h faces.h frame.h frameslots.h glyphs.h insdel.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h -inline.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h buffer.h bufslots.h bytecode.h chartab.h conslots.h console.h database.h device.h eldap.h elhash.h events.h extents.h faces.h file-coding.h frame.h frameslots.h glyphs-x.h glyphs.h gui-x.h keymap.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h objects.h opaque.h process.h rangetab.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h syntax.h systime.h toolbar.h tooltalk.h window.h winslots.h xintrinsic.h -input-method-motif.o: $(LISP_H) EmacsFrame.h conslots.h console-x.h console.h device.h frame.h frameslots.h lisp-disunion.h lisp-union.h lrecord.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h xintrinsic.h -insdel.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h extents.h frame.h frameslots.h insdel.h line-number.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h +indent.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h extents.h faces.h frame.h frameslots.h glyphs.h gui.h insdel.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h +inline.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h buffer.h bufslots.h bytecode.h chartab.h conslots.h console.h database.h device.h eldap.h elhash.h events.h extents.h faces.h file-coding.h frame.h frameslots.h glyphs-x.h glyphs.h gui-x.h gui.h keymap.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h objects.h opaque.h process.h rangetab.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h syntax.h systime.h toolbar.h tooltalk.h window.h winslots.h xintrinsic.h +input-method-motif.o: $(LISP_H) EmacsFrame.h conslots.h console-x.h console.h device.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h xintrinsic.h +insdel.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h extents.h frame.h frameslots.h glyphs.h gui.h insdel.h line-number.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h intl.o: $(LISP_H) bytecode.h conslots.h console.h device.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h -keymap.o: $(LISP_H) buffer.h bufslots.h bytecode.h conslots.h console.h device.h elhash.h events-mod.h events.h frame.h frameslots.h insdel.h keymap.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h +keymap.o: $(LISP_H) buffer.h bufslots.h bytecode.h conslots.h console.h device.h elhash.h events-mod.h events.h frame.h frameslots.h glyphs.h gui.h insdel.h keymap.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h libsst.o: $(LISP_H) libsst.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h line-number.o: $(LISP_H) buffer.h bufslots.h line-number.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h symeval.h symsinit.h linuxplay.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h sysfile.h syssignal.h lread.o: $(LISP_H) buffer.h bufslots.h bytecode.h elhash.h file-coding.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h opaque.h symeval.h symsinit.h sysfile.h sysfloat.h lstream.o: $(LISP_H) buffer.h bufslots.h insdel.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h symeval.h symsinit.h sysfile.h -macros.o: $(LISP_H) buffer.h bufslots.h commands.h conslots.h console.h device.h events.h frame.h frameslots.h keymap.h lisp-disunion.h lisp-union.h lrecord.h macros.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h +macros.o: $(LISP_H) buffer.h bufslots.h commands.h conslots.h console.h device.h events.h frame.h frameslots.h glyphs.h gui.h keymap.h lisp-disunion.h lisp-union.h lrecord.h macros.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h malloc.o: config.h getpagesize.h marker.o: $(LISP_H) buffer.h bufslots.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h symeval.h symsinit.h md5.o: $(LISP_H) buffer.h bufslots.h file-coding.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h symeval.h symsinit.h -menubar.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h frame.h frameslots.h gui.h lisp-disunion.h lisp-union.h lrecord.h menubar.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h -minibuf.o: $(LISP_H) buffer.h bufslots.h commands.h conslots.h console-stream.h console.h device.h events.h frame.h frameslots.h insdel.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h +menubar.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h menubar.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h +minibuf.o: $(LISP_H) buffer.h bufslots.h commands.h conslots.h console-stream.h console.h device.h events.h frame.h frameslots.h glyphs.h gui.h insdel.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h nas.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h sysdep.h syssignal.h nt.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h nt.h ntheap.h symeval.h symsinit.h sysproc.h syssignal.h systime.h ntheap.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h ntheap.h symeval.h symsinit.h ntplay.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h sysfile.h ntproc.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h nt.h ntheap.h process.h symeval.h symsinit.h sysproc.h syssignal.h systime.h syswait.h objects-tty.o: $(LISP_H) conslots.h console-tty.h console.h device.h insdel.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects-tty.h objects.h specifier.h symeval.h symsinit.h syssignal.h systty.h -objects.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h elhash.h faces.h frame.h frameslots.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h +objects.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h elhash.h faces.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h offix.o: offix-cursors.h offix-types.h offix.h xintrinsic.h opaque.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h opaque.h symeval.h symsinit.h -print.o: $(LISP_H) backtrace.h buffer.h bufslots.h bytecode.h conslots.h console-stream.h console-tty.h console.h device.h extents.h frame.h frameslots.h insdel.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h scrollbar.h specifier.h symeval.h symsinit.h sysfile.h syssignal.h systty.h toolbar.h +print.o: $(LISP_H) backtrace.h buffer.h bufslots.h bytecode.h conslots.h console-stream.h console-tty.h console.h device.h extents.h frame.h frameslots.h glyphs.h gui.h insdel.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h scrollbar.h specifier.h symeval.h symsinit.h sysfile.h syssignal.h systty.h toolbar.h process-nt.o: $(LISP_H) hash.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h process.h procimpl.h symeval.h symsinit.h sysdep.h -process-unix.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h events.h file-coding.h frame.h frameslots.h hash.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h opaque.h process.h procimpl.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysfile.h sysproc.h syssignal.h systime.h systty.h syswait.h toolbar.h window.h winslots.h -process.o: $(LISP_H) buffer.h bufslots.h commands.h conslots.h console.h device.h events.h file-coding.h frame.h frameslots.h hash.h insdel.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h opaque.h process.h procimpl.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysfile.h sysproc.h syssignal.h systime.h systty.h syswait.h toolbar.h window.h winslots.h +process-unix.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h events.h file-coding.h frame.h frameslots.h glyphs.h gui.h hash.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h opaque.h process.h procimpl.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysfile.h sysproc.h syssignal.h systime.h systty.h syswait.h toolbar.h window.h winslots.h +process.o: $(LISP_H) buffer.h bufslots.h commands.h conslots.h console.h device.h events.h file-coding.h frame.h frameslots.h glyphs.h gui.h hash.h insdel.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h opaque.h process.h procimpl.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysfile.h sysproc.h syssignal.h systime.h systty.h syswait.h toolbar.h window.h winslots.h profile.o: $(LISP_H) backtrace.h bytecode.h elhash.h hash.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h syssignal.h systime.h pure.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h puresize-adjust.h puresize.h symeval.h symsinit.h ralloc.o: $(LISP_H) getpagesize.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h rangetab.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h rangetab.h symeval.h symsinit.h realpath.o: config.h -redisplay-output.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h faces.h frame.h frameslots.h glyphs.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h -redisplay-tty.o: $(LISP_H) buffer.h bufslots.h conslots.h console-tty.h console.h device.h events.h faces.h frame.h frameslots.h glyphs.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h objects-tty.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h syssignal.h systime.h systty.h toolbar.h window.h winslots.h +redisplay-output.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h faces.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h +redisplay-tty.o: $(LISP_H) buffer.h bufslots.h conslots.h console-tty.h console.h device.h events.h faces.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h objects-tty.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h syssignal.h systime.h systty.h toolbar.h window.h winslots.h redisplay.o: $(LISP_H) buffer.h bufslots.h commands.h conslots.h console-tty.h console.h debug.h device.h elhash.h extents.h faces.h file-coding.h frame.h frameslots.h glyphs.h gui.h insdel.h line-number.h lisp-disunion.h lisp-union.h lrecord.h menubar.h mule-charset.h objects.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h syssignal.h systty.h toolbar.h window.h winslots.h regex.o: $(LISP_H) buffer.h bufslots.h chartab.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h regex.h symeval.h symsinit.h syntax.h -scrollbar.o: $(LISP_H) buffer.h bufslots.h commands.h conslots.h console.h device.h frame.h frameslots.h glyphs.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h +scrollbar.o: $(LISP_H) buffer.h bufslots.h commands.h conslots.h console.h device.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h search.o: $(LISP_H) buffer.h bufslots.h chartab.h insdel.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h regex.h symeval.h symsinit.h syntax.h sgiplay.o: $(LISP_H) libst.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h sheap.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h sheap-adjust.h symeval.h symsinit.h -signal.o: $(LISP_H) conslots.h console.h device.h events.h frame.h frameslots.h lisp-disunion.h lisp-union.h lrecord.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h syssignal.h systime.h toolbar.h +signal.o: $(LISP_H) conslots.h console.h device.h events.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h syssignal.h systime.h toolbar.h sound.o: $(LISP_H) buffer.h bufslots.h conslots.h console-x.h console.h device.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h symeval.h symsinit.h sysdep.h xintrinsic.h -specifier.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h frame.h frameslots.h glyphs.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h +specifier.o: $(LISP_H) buffer.h bufslots.h chartab.h conslots.h console.h device.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h opaque.h rangetab.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h strcat.o: config.h strcmp.o: config.h strcpy.o: config.h @@ -180,11 +182,11 @@ sunplay.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h sunpro.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h symbols.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h elhash.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h symeval.h symsinit.h syntax.o: $(LISP_H) buffer.h bufslots.h chartab.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h symeval.h symsinit.h syntax.h -sysdep.o: $(LISP_H) buffer.h bufslots.h conslots.h console-stream.h console-tty.h console.h device.h events.h frame.h frameslots.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h ndir.h ntheap.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysdir.h sysfile.h syssignal.h systime.h systty.h syswait.h toolbar.h window.h winslots.h +sysdep.o: $(LISP_H) buffer.h bufslots.h conslots.h console-stream.h console-tty.h console.h device.h events.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h ndir.h ntheap.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysdir.h sysfile.h syssignal.h systime.h systty.h syswait.h toolbar.h window.h winslots.h sysdll.o: config.h sysdll.h termcap.o: $(LISP_H) conslots.h console.h device.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h terminfo.o: config.h -toolbar.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h frame.h frameslots.h glyphs.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h +toolbar.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h tooltalk.o: $(LISP_H) buffer.h bufslots.h elhash.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h process.h symeval.h symsinit.h tooltalk.h tparam.o: config.h undo.o: $(LISP_H) buffer.h bufslots.h extents.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h symeval.h symsinit.h @@ -205,7 +207,7 @@ unexnt.o: config.h ntheap.h unexsunos4.o: config.h vm-limit.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h mem-limits.h symeval.h symsinit.h widget.o: $(LISP_H) buffer.h bufslots.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h symeval.h symsinit.h -window.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h faces.h frame.h frameslots.h glyphs.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h +window.o: $(LISP_H) buffer.h bufslots.h commands.h conslots.h console.h device.h elhash.h faces.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h xgccache.o: $(LISP_H) hash.h lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h xgccache.h xmu.o: config.h -xselect.o: $(LISP_H) buffer.h bufslots.h conslots.h console-x.h console.h device.h frame.h frameslots.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects-x.h objects.h opaque.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h xintrinsic.h +xselect.o: $(LISP_H) buffer.h bufslots.h conslots.h console-x.h console.h device.h frame.h frameslots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h objects-x.h objects.h opaque.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h xintrinsic.h diff --git a/src/device-x.c b/src/device-x.c index 0ffbd65..c9ded38 100644 --- a/src/device-x.c +++ b/src/device-x.c @@ -1649,6 +1649,69 @@ Release a keyboard grab made with `x-grab-keyboard'. return Qnil; } +DEFUN ("x-get-font-path", Fx_get_font_path, 0, 1, 0, /* +Get the X Server's font path. + +See also `x-set-font-path'. +*/ + (device)) +{ + Display *dpy = get_x_display (device); + int ndirs_return; + CONST char **directories = (CONST char **) XGetFontPath (dpy, &ndirs_return); + Lisp_Object font_path = Qnil; + + if (!directories) + signal_simple_error ("Can't get X font path", device); + + while (ndirs_return--) + font_path = Fcons (build_ext_string (directories[ndirs_return], + FORMAT_FILENAME), font_path); + + return font_path; +} + +DEFUN ("x-set-font-path", Fx_set_font_path, 1, 2, 0, /* +Set the X Server's font path to FONT-PATH. + +There is only one font path per server, not one per client. Use this +sparingly. It uncaches all of the X server's font information. + +Font directories should end in the path separator and should contain +a file called fonts.dir usually created with the program mkfontdir. + +Setting the FONT-PATH to nil tells the X server to use the default +font path. + +See also `x-get-font-path'. +*/ + (font_path, device)) +{ + Display *dpy = get_x_display (device); + Lisp_Object path_entry; + CONST char **directories; + int i=0,ndirs=0; + + EXTERNAL_LIST_LOOP (path_entry, font_path) + { + CHECK_STRING (XCAR (path_entry)); + ndirs++; + } + + directories = alloca_array (CONST char *, ndirs); + + EXTERNAL_LIST_LOOP (path_entry, font_path) + { + GET_C_STRING_FILENAME_DATA_ALLOCA (XCAR (path_entry), directories[i++]); + } + + expect_x_error (dpy); + XSetFontPath (dpy, (char **) directories, ndirs); + signal_if_x_error (dpy, 1/*resumable_p*/); + + return Qnil; +} + /************************************************************************/ /* initialization */ @@ -1677,6 +1740,9 @@ syms_of_device_x (void) DEFSUBR (Fx_grab_keyboard); DEFSUBR (Fx_ungrab_keyboard); + DEFSUBR (Fx_get_font_path); + DEFSUBR (Fx_set_font_path); + defsymbol (&Qx_error, "x-error"); defsymbol (&Qinit_pre_x_win, "init-pre-x-win"); defsymbol (&Qinit_post_x_win, "init-post-x-win"); diff --git a/src/eldap.c b/src/eldap.c index 0b7117f..325daa8 100644 --- a/src/eldap.c +++ b/src/eldap.c @@ -27,7 +27,7 @@ Boston, MA 02111-1307, USA. */ It has been tested with: - UMich LDAP 3.3 (http://www.umich.edu/~dirsvcs/ldap/) - OpenLDAP 1.0.3 (http://www.openldap.org/) - - Netscape's LDAP SDK 1.0 (http://developer.netscape.com) */ + - Netscape's LDAP SDK 1.0 (http://developer.netscape.com/) */ #include @@ -288,7 +288,10 @@ the LDAP library XEmacs was compiled with: `simple', `krbv41' and `krbv42'. } /* Connect to the server and bind */ + slow_down_interrupts (); ld = ldap_open ((char *)XSTRING_DATA (host), ldap_port); + speed_up_interrupts (); + if (ld == NULL ) signal_simple_error_2 ("Failed connecting to host", host, @@ -563,7 +566,6 @@ syms_of_eldap (void) void vars_of_eldap (void) { - Fprovide (intern ("ldap")); ldap_default_port = LDAP_PORT; Vldap_default_base = Qnil; diff --git a/src/emacs.c b/src/emacs.c index 4a6ab91..d648161 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -139,6 +139,8 @@ Lisp_Object Vemacs_program_name, Vemacs_program_version; Lisp_Object Vexec_path; Lisp_Object Vexec_directory, Vconfigure_exec_directory; Lisp_Object Vlisp_directory, Vconfigure_lisp_directory; +Lisp_Object Vmodule_directory, Vconfigure_module_directory; +Lisp_Object Vsite_module_directory, Vconfigure_site_module_directory; Lisp_Object Vconfigure_package_path; Lisp_Object Vdata_directory, Vconfigure_data_directory; Lisp_Object Vdoc_directory, Vconfigure_doc_directory; @@ -201,6 +203,9 @@ int noninteractive1; /* Nonzero means don't perform site-lisp searches at startup */ int inhibit_site_lisp; +/* Nonzero means don't perform site-modules searches at startup */ +int inhibit_site_modules; + /* Nonzero means don't respect early packages at startup */ int inhibit_early_packages; @@ -705,6 +710,16 @@ main_1 (int argc, char **argv, char **envp, int restart) inhibit_early_packages = 1; skip_args--; } +#ifdef HAVE_SHLIB + if (argmatch (argv, argc, "-no-site-modules", "--no-site-modules", + 9, NULL, &skip_args)) + { + inhibit_site_modules = 1; + skip_args--; + } +#else + inhibit_site_modules = 1; +#endif if (argmatch (argv, argc, "-vanilla", "--vanilla", 7, NULL, &skip_args)) { @@ -891,9 +906,6 @@ main_1 (int argc, char **argv, char **envp, int restart) syms_of_dialog (); #endif syms_of_dired (); -#ifdef HAVE_SHLIB - syms_of_dll (); -#endif syms_of_doc (); syms_of_editfns (); syms_of_elhash (); @@ -938,6 +950,9 @@ main_1 (int argc, char **argv, char **envp, int restart) syms_of_menubar (); #endif syms_of_minibuf (); +#ifdef HAVE_SHLIB + syms_of_module (); +#endif syms_of_objects (); syms_of_print (); #if !defined (NO_SUBPROCESSES) @@ -1328,6 +1343,9 @@ main_1 (int argc, char **argv, char **envp, int restart) vars_of_menubar (); #endif vars_of_minibuf (); +#ifdef HAVE_SHLIB + vars_of_module (); +#endif vars_of_objects (); vars_of_print (); @@ -2830,6 +2848,13 @@ Set to non-nil when the site-lisp should not be searched at startup. inhibit_site_lisp = 1; #endif + DEFVAR_BOOL ("inhibit-site-modules", &inhibit_site_modules /* +Set to non-nil when site-modules should not be searched at startup. +*/ ); +#ifdef INHIBIT_SITE_MODULES + inhibit_site_modules = 1; +#endif + DEFVAR_INT ("emacs-priority", &emacs_priority /* Priority for XEmacs to run at. This value is effective only if set before XEmacs is dumped, @@ -2941,6 +2966,22 @@ configure's idea of what LISP-DIRECTORY will be. Vconfigure_lisp_directory = Qnil; #endif + DEFVAR_LISP ("module-directory", &Vmodule_directory /* +*Directory of core dynamic modules that come with XEmacs. +*/ ); + Vmodule_directory = Qnil; + + DEFVAR_LISP ("configure-module-directory", &Vconfigure_module_directory /* +For internal use by the build procedure only. +configure's idea of what MODULE-DIRECTORY will be. +*/ ); +#ifdef PATH_MODULESEARCH + Vconfigure_module_directory = Ffile_name_as_directory + (build_string ((char *) PATH_MODULESEARCH)); +#else + Vconfigure_module_directory = Qnil; +#endif + DEFVAR_LISP ("configure-package-path", &Vconfigure_package_path /* For internal use by the build procedure only. configure's idea of what the package path will be. @@ -3005,6 +3046,22 @@ configure's idea of what SITE-DIRECTORY will be. Vconfigure_site_directory = Qnil; #endif + DEFVAR_LISP ("site-module-directory", &Vsite_module_directory /* +*Directory of site-specific loadable modules that come with XEmacs. +*/ ); + Vsite_module_directory = Qnil; + + DEFVAR_LISP ("configure-site-module-directory", &Vconfigure_site_module_directory /* +For internal use by the build procedure only. +configure's idea of what SITE-DIRECTORY will be. +*/ ); +#ifdef PATH_SITE_MODULES + Vconfigure_site_module_directory = Ffile_name_as_directory + (build_string ((char *) PATH_SITE_MODULES)); +#else + Vconfigure_site_module_directory = Qnil; +#endif + DEFVAR_LISP ("doc-directory", &Vdoc_directory /* *Directory containing the DOC file that comes with XEmacs. This is usually the same as exec-directory. diff --git a/src/emodules.c b/src/emodules.c new file mode 100644 index 0000000..1a5d896 --- /dev/null +++ b/src/emodules.c @@ -0,0 +1,579 @@ +/* emodules.c - Support routines for dynamic module loading +(C) Copyright 1998, 1999 J. Kean Johnston. All rights reserved. + +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. */ + +#include "emodules.h" +#include "sysdll.h" + +#ifdef HAVE_SHLIB + +/* CE-Emacs version number */ +Lisp_Object Vmodule_version; + +/* Do we do our work quietly? */ +int load_modules_quietly; + +/* Load path */ +Lisp_Object Vmodule_load_path; + +typedef struct _emodules_list +{ + int used; /* Is this slot used? */ + char *soname; /* Name of the shared object loaded (full path) */ + char *modname; /* The name of the module */ + char *modver; /* The version that the module is at */ + char *modtitle; /* How the module announces itself */ + dll_handle dlhandle; /* Dynamic lib handle */ +} emodules_list; + +static int emodules_depth; +static dll_handle dlhandle; +static emodules_list *modules; +static int modnum; + +static int find_make_module (CONST char *mod, CONST char *name, CONST char *ver, int make_or_find); +static Lisp_Object module_load_unwind (Lisp_Object); +static void attempt_module_delete (int mod); + +DEFUN ("load-module", Fload_module, 1, 3, "FLoad dynamic module: ", /* +Load in a C Emacs Extension module named FILE. +The optional NAME and VERSION are used to identify specific modules. + +This function is similar in intent to `load' except that it loads in +pre-compiled C or C++ code, using dynamic shared objects. If NAME is +specified, then the module is only loaded if its internal name matches +the NAME specified. If VERSION is specified, then the module is only +loaded if it matches that VERSION. This function will check to make +sure that the same module is not loaded twice. Modules are searched +for in the same way as Lisp files, except that the valid file +extensions are `.so', `.dll' or `.ell'. + +All symbols in the shared module must be completely resolved in order +for this function to be successful. Any modules which the specified +FILE depends on will be automatically loaded. You can determine which +modules have been loaded as dynamic shared objects by examining the +return value of the function `list-modules'. + +It is possible, although unwise, to unload modules using `unload-module'. +The prefered mechanism for unloading or reloading modules is to quit +XEmacs, and then reload those new or changed modules that are required. + +Messages informing you of the progress of the load are displayed unless +the variable `load-modules-quietly' is non-NIL. +*/ + (file,name,version)) +{ + char *mod, *mname, *mver; + int speccount = specpdl_depth(); + + CHECK_STRING(file); + + mod = (char *)XSTRING_DATA (file); + + if (NILP (name)) + mname = ""; + else + mname = (char *)XSTRING_DATA (name); + + if (NILP (version)) + mver = ""; + else + mver = (char *)XSTRING_DATA (version); + + dlhandle = 0; + record_unwind_protect (module_load_unwind, make_int(modnum)); + emodules_load (mod, mname, mver); + unbind_to (speccount, Qnil); + + return Qt; +} + +#ifdef DANGEROUS_NASTY_SCARY_MONSTER + +DEFUN ("unload-module", Fmodule_unload, 1, 3, 0, /* +Unload a module previously loaded with load-module. + +As with load-module, this function requires at least the module FILE, and +optionally the module NAME and VERSION to unload. It may not be possible +for the module to be unloaded from memory, as there may be Lisp objects +refering to variables inside the module code. However, once you have +requested a module to be unloaded, it will be unloaded from memory as +soon as the last reference to symbols within the module is destroyed. +*/ + (file,name,version)) +{ + int x; + char *mod, *mname, *mver; + + CHECK_STRING(file); + + mod = (char *)XSTRING_DATA (file); + + if (NILP (name)) + mname = ""; + else + mname = (char *)XSTRING_DATA (name); + + if (NILP (version)) + mver = ""; + else + mver = (char *)XSTRING_DATA (version); + + x = find_make_module (mod, mname, mver, 1); + if (x != -1) + attempt_module_delete (x); + return Qt; +} +#endif /* DANGEROUS_NASTY_SCARY_MONSTER */ + +DEFUN ("list-modules", Flist_modules, 0, 0, "", /* +Produce a list of loaded dynamic modules. + +This function will return a list of all the loaded dynamic modules. +Each element in the list is a list in the form (SONAME NAME VER DESC), +where SONAME is the name of the shared object that was loaded, NAME +is the internal module name, VER is the version of the module, and DESC +is how the module describes itself. + +This function returns a list, so you will need to assign the return value +to a variable and then examine the variable with `describe-variable'. +For example: + + (setq mylist (list-modules)) + (describe-variable 'mylist) + + +NOTE: It is possible for the same module to be loaded more than once, +at different versions. However, you should never see the same module, +with the same name and version, loaded more than once. If you do, this +is a bug, and you are encouraged to report it. +*/ + ()) +{ + Lisp_Object mlist = Qnil; + int i; + + for (i = 0; i < modnum; i++) + { + if (modules[i].used == 1) + mlist = Fcons (list4 (build_string (modules[i].soname), + build_string (modules[i].modname), + build_string (modules[i].modver), + build_string (modules[i].modtitle)), mlist); + } + + return mlist; +} + +static int +find_make_module (CONST char *mod, CONST char *name, CONST char *ver, int mof) +{ + int i, fs = -1; + + for (i = 0; i < modnum; i++) + { + if (fs == -1 && modules[i].used == 0) + fs = i; + if (strcmp (modules[i].soname, mod) == 0) + { + if (name && name[0] && strcmp (modules[i].modname, name)) + continue; + if (ver && ver[0] && strcmp (modules[i].modver, ver)) + continue; + return i; /* Found a match */ + } + } + + if (mof) + return fs; + + if (fs != -1) + return fs; /* First free slot */ + + /* + * We only get here if we havent found a free slot and the module was + * not previously loaded. + */ + if (modules == (emodules_list *)0) + modules = (emodules_list *)xmalloc (sizeof(emodules_list)); + modnum++; + modules = xrealloc (modules, modnum * sizeof(emodules_list)); + + fs = modnum - 1; + memset (&modules[fs], 0, sizeof(emodules_list)); + return fs; +} + +static void +attempt_module_delete (int mod) +{ + if (dll_close (modules[mod].dlhandle) == 0) + { + xfree (modules[mod].soname); + xfree (modules[mod].modname); + xfree (modules[mod].modver); + xfree (modules[mod].modtitle); + modules[mod].dlhandle = 0; + modules[mod].used = 0; + } + else if (modules[mod].used > 1) + modules[mod].used = 1; /* We couldn't delete it - it stays */ +} + +static Lisp_Object +module_load_unwind (Lisp_Object upto) +{ + int x,l=0; + + /* + * First close off the current handle if it is open. + */ + if (dlhandle != 0) + dll_close (dlhandle); + dlhandle = 0; + + if (CONSP (upto)) + { + if (INTP (XCAR (upto))) + l = XINT (XCAR (upto)); + free_cons (XCONS (upto)); + } + else + l = XINT (upto); + + /* + * Here we need to go through and dlclose() (IN REVERSE ORDER!) any + * modules that were loaded as part of this load chain. We only mark + * the slots as closed if the dlclose() succeeds. + */ + for (x = modnum-1; x >= l; x--) + { + if (modules[x].used > 1) + attempt_module_delete (x); + } + emodules_depth = 0; + + return Qnil; +} + +/* + * Do the actual grunt-work of loading in a module. We first try and + * dlopen() the module. If that fails, we have an error and we bail + * out immediately. If the dlopen() succeeds, we need to check for the + * existance of certain special symbols. + * + * All modules will have complete access to the variables and functions + * defined within XEmacs itself. It is up to the module to declare any + * variables or functions it uses, however. Modules will also have access + * to other functions and variables in other loaded modules, unless they + * are defined as STATIC. + * + * We need to be very careful with how we load modules. If we encounter an + * error along the way, we need to back out completely to the point at + * which the user started. Since we can be called resursively, we need to + * take care with marking modules as loaded. When we first start loading + * modules, we set the counter to zero. As we enter the function each time, + * we incremement the counter, and before we leave we decrement it. When + * we get back down to 0, we know we are at the end of the chain and we + * can mark all the modules in the list as loaded. + * + * When we signal an error, we need to be sure to unwind all modules loaded + * thus far (but only for this module chain). It is assumed that if any + * modules in a chain fail, then they all do. This is logical, considering + * that the only time we recurse is when we have dependant modules. So in + * the error handler we take great care to close off the module chain before + * we call "error" and let the Fmodule_load unwind_protect() function handle + * the cleaning up. + */ +void +emodules_load(CONST char *module, CONST char *modname, CONST char *modver) +{ + Lisp_Object filename; + Lisp_Object foundname; + int fd, x, mpx; + char *soname, *tmod; + CONST char **f; + CONST long *ellcc_rev; + char *mver, *mname, *mtitle, *symname; + void (*modload)(void) = 0; + void (*modsyms)(void) = 0; + void (*modvars)(void) = 0; + void (*moddocs)(void) = 0; + emodules_list *mp; + struct gcpro gcpro1,gcpro2; + + filename = Qnil; + foundname = Qnil; + + emodules_depth++; + dlhandle = 0; + + if ((module == (CONST char *)0) || (module[0] == '\0')) + error ("Empty module name"); + + /* This is to get around the fact that build_string() is not declared + as taking a const char * as an argument. I HATE compiler warnings. */ + tmod = (char *)alloca (strlen (module) + 1); + strcpy (tmod, module); + + GCPRO2(filename, foundname); + filename = build_string (tmod); + fd = locate_file(Vmodule_load_path, filename, ":.ell:.so:.dll", &foundname, -1); + UNGCPRO; + + if (fd < 0) + signal_simple_error ("Cannot open dynamic module", filename); + + soname = (char *)alloca (XSTRING_LENGTH (foundname) + 1); + strcpy (soname, (char *)XSTRING_DATA (foundname)); + + dlhandle = dll_open (soname); + if (dlhandle == (dll_handle)0) + error ("Opening dynamic module: %s", dll_error (dlhandle)); + + ellcc_rev = (CONST long *)dll_variable (dlhandle, "emodule_compiler"); + if ((ellcc_rev == (CONST long *)0) || (*ellcc_rev <= 0)) + error ("Missing symbol `emodule_compiler': Invalid dynamic module"); + if (*ellcc_rev > EMODULES_REVISION) + error ("Unsupported version `%ld(%ld)': Invalid dynamic module", + *ellcc_rev, EMODULES_REVISION); + + f = (CONST char **)dll_variable (dlhandle, "emodule_name"); + if ((f == (CONST char **)0) || (*f == (CONST char *)0)) + error ("Missing symbol `emodule_name': Invalid dynamic module"); + + mname = (char *)alloca (strlen (*f) + 1); + strcpy (mname, *f); + if (mname[0] == '\0') + error ("Empty value for `emodule_name': Invalid dynamic module"); + + f = (CONST char **)dll_variable (dlhandle, "emodule_version"); + if ((f == (CONST char **)0) || (*f == (CONST char *)0)) + error ("Missing symbol `emodule_version': Invalid dynamic module"); + + mver = (char *)alloca (strlen (*f) + 1); + strcpy (mver, *f); + + f = (CONST char **)dll_variable (dlhandle, "emodule_title"); + if ((f == (CONST char **)0) || (*f == (CONST char *)0)) + error ("Missing symbol `emodule_title': Invalid dynamic module"); + + mtitle = (char *)alloca (strlen (*f) + 1); + strcpy (mtitle, *f); + + symname = (char *)alloca (strlen (mname) + 15); + + strcpy (symname, "modules_of_"); + strcat (symname, mname); + modload = (void (*)(void))dll_function (dlhandle, symname); + /* + * modload is optional. If the module doesnt require other modules it can + * be left out. + */ + + strcpy (symname, "syms_of_"); + strcat (symname, mname); + modsyms = (void (*)(void))dll_function (dlhandle, symname); + if (modsyms == (void (*)(void))0) + error ("Missing symbol `%s': Invalid dynamic module", symname); + + strcpy (symname, "vars_of_"); + strcat (symname, mname); + modvars = (void (*)(void))dll_function (dlhandle, symname); + if (modvars == (void (*)(void))0) + error ("Missing symbol `%s': Invalid dynamic module", symname); + + strcpy (symname, "docs_of_"); + strcat (symname, mname); + moddocs = (void (*)(void))dll_function (dlhandle, symname); + if (moddocs == (void (*)(void))0) + error ("Missing symbol `%s': Invalid dynamic module", symname); + + if (modname && modname[0] && strcmp (modname, mname)) + error ("Module name mismatch"); + + if (modver && modver[0] && strcmp (modver, mver)) + error ("Module version mismatch"); + + /* + * Attempt to make a new slot for this module. If this really is the + * first time we are loading this module, the used member will be 0. + * If that is non-zero, we know that we have a previously loaded module + * of the same name and version, and we dont need to go any further. + */ + mpx = find_make_module (soname, mname, mver, 0); + mp = &modules[mpx]; + if (mp->used > 0) + { + emodules_depth--; + dll_close (dlhandle); + return; + } + + if (!load_modules_quietly) + message ("Loading %s v%s (%s)", mname, mver, mtitle); + + /* + * We have passed the basic initialization, and can now add this + * module to the list of modules. + */ + mp->used = emodules_depth + 1; + mp->soname = xstrdup (soname); + mp->modname = xstrdup (mname); + mp->modver = xstrdup (mver); + mp->modtitle = xstrdup (mtitle); + mp->dlhandle = dlhandle; + dlhandle = 0; + + /* + * Now we need to call the module init function and perform the various + * startup tasks. + */ + if (modload != 0) + (*modload)(); + + /* + * Now we can get the module to initialize its symbols, and then its + * variables, and lastly the documentation strings. + */ + (*modsyms)(); + (*modvars)(); + (*moddocs)(); + + if (!load_modules_quietly) + message ("Loaded module %s v%s (%s)", mname, mver, mtitle); + + + emodules_depth--; + if (emodules_depth == 0) + { + /* + * We have reached the end of the load chain. We now go through the + * list of loaded modules and mark all the valid modules as just + * that. + */ + for (x = 0; x < modnum; x++) + if (modules[x].used > 1) + modules[x].used = 1; + } +} + +void +emodules_doc_subr(CONST char *symname, CONST char *doc) +{ + Bytecount len = strlen (symname); + Lisp_Object sym = oblookup (Vobarray, (CONST Bufbyte *)symname, len); + struct Lisp_Subr *subr; + + if (SYMBOLP(sym)) + { + subr = XSUBR( XSYMBOL(sym)->function); + subr->doc = xstrdup (doc); + } + /* + * FIXME: I wish there was some way to avoid the xstrdup(). Is it + * possible to just set a pointer to the string, or somehow create a + * symbol whose value we can point to the constant string? Can someone + * look into this? + */ +} + +void +emodules_doc_sym (CONST char *symname, CONST char *doc) +{ + Bytecount len = strlen (symname); + Lisp_Object sym = oblookup (Vobarray, (CONST Bufbyte *)symname, len); + Lisp_Object docstr; + struct gcpro gcpro1; + + if (SYMBOLP(sym)) + { + docstr = build_string (doc); + GCPRO1(docstr); + Fput (sym, Qvariable_documentation, docstr); + UNGCPRO; + } +} + + +void +syms_of_module (void) +{ + DEFSUBR(Fload_module); + DEFSUBR(Flist_modules); +#ifdef DANGEROUS_NASTY_SCARY_MONSTER + DEFSUBR(Funload_module); +#endif +} + +void +vars_of_module (void) +{ + DEFVAR_LISP ("module-version", &Vmodule_version /* +Emacs dynamic loading mechanism version, as a string. + +This string is in the form XX.YY.ppp, where XX is the major version +number, YY is the minor version number, and ppp is the patch level. +This variable can be used to distinquish between different versions of +the dynamic loading technology used in Emacs, if required. It is not +a given that this value will be the same as the Emacs version number. +*/ ); + Vmodule_version = Fpurecopy (build_string (EMODULES_VERSION)); + + DEFVAR_BOOL ("load-modules-quietly", &load_modules_quietly /* +*Set to t if module loading is to be silent. + +Normally, when loading dynamic modules, Emacs will inform you of its +progress, and will display the module name and version if the module +is loaded correctly. Setting this variable to `t' will suppress these +messages. This would normally only be done if `load-module' was being +called by a Lisp function. +*/); + + DEFVAR_LISP ("module-load-path", &Vmodule_load_path /* +*List of directories to search for dynamic modules to load. +Each element is a string (directory name) or nil (try default directory). + +Note that elements of this list *may not* begin with "~", so you must +call `expland-file-name' on them before adding them to this list. + +Initialized based on EMACSMODULEPATH environment variable, if any, otherwise +to default specified the file `paths.h' when XEmacs was built. If there +were no paths specified in `paths.h', then XEmacs chooses a default +value for this variable by looking around in the file-system near the +directory in which the XEmacs executable resides. + +Due to the nature of dynamic modules, the path names should almost always +refer to architecture-dependant directories. It is unwise to attempt to +store dynamic modules in a hetrogenous environment. Some environments +are similar enough to each other that XEmacs will be unable to determine +the correctness of a dynamic module, which can have unpredictable results +when a dynamic module is loaded. +*/); + + load_modules_quietly = 0; + emodules_depth = 0; + modules = (emodules_list *)0; + modnum = 0; + Vmodule_load_path = Qnil; + Fprovide (intern ("modules")); +} + +#endif /* HAVE_SHLIB */ + diff --git a/src/emodules.h b/src/emodules.h new file mode 100644 index 0000000..9cfd639 --- /dev/null +++ b/src/emodules.h @@ -0,0 +1,86 @@ +/* emodules.h - Declarations and definitions for XEmacs loadable modules. +(C) Copyright 1998, 1999 J. Kean Johnston. All rights reserved. + +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. */ + +#ifndef EMODULES_HDR + +#ifndef EMODULES_GATHER_VERSION +#define EMODULES_HDR +#endif + +#define EMODULES_VERSION "1.0.0" +#define EMODULES_MAJOR 1 +#define EMODULES_MINOR 0 +#define EMODULES_PATCH 0 +#define EMODULES_REVISION (long)((EMODULES_MAJOR * 1000) + \ + (EMODULES_MINOR * 10) + \ + (EMODULES_PATCH)) + +#ifndef EMODULES_GATHER_VERSION +#include +#include "lisp.h" +#include "sysdep.h" +#include "window.h" +#include "buffer.h" +#include "insdel.h" +#include "frame.h" +#include "lstream.h" +#ifdef FILE_CODING +#include "file-coding.h" +#endif + +/* Module loading technology version number */ +extern Lisp_Object Vmodule_version; + +/* Load path */ +extern Lisp_Object Vmodule_load_path; + +/* XEmacs version Information */ +extern Lisp_Object Vemacs_major_version; +extern Lisp_Object Vemacs_minor_version; + +/* + * Load in a C module. The first argument is the name of the .so file, the + * second is the name of the module, and the third is the module version. + * If the module name is NULL, we will always reload the .so. If it is not + * NULL, we check to make sure we haven't loaded it before. If the version + * is specified, we check to make sure we didnt load the module of the + * specified version before. We also use these as checks when we open the + * module to make sure we have the right module. + */ +extern void emodules_load (CONST char *module, CONST char *name, CONST char *version); + +/* + * Because subrs and symbols added by a dynamic module are not part of + * the make-docfile process, we need a clean way to get the variables + * and functions documented. Since people dont like the idea of making + * shared modules use different versions of DEFSUBR() and DEFVAR_LISP() + * and friends, we need these two functions to insert the documentation + * into the right place. These functions will be called by the module + * init code, generated by ellcc during initialization mode. + */ +extern void emodules_doc_subr (CONST char *objname, CONST char *docstr); +extern void emodules_doc_sym (CONST char *objname, CONST char *docstr); + +#define CDOCSUBR(Fname, DOC) emodules_doc_subr (Fname, DOC) +#define CDOCSYM(Sname, DOC) emodules_doc_sym (Sname, DOC) +#endif /* EMODULES_GATHER_VERSION */ + +#endif /* EMODULES_HDR */ + diff --git a/src/event-msw.c b/src/event-msw.c index c2b0030..cd67be2 100644 --- a/src/event-msw.c +++ b/src/event-msw.c @@ -1672,7 +1672,14 @@ mswindows_wnd_proc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) int quit_ch = CONSOLE_QUIT_CHAR (XCONSOLE (mswindows_find_console (hwnd))); BYTE keymap_orig[256]; POINT pnt = { LOWORD (GetMessagePos()), HIWORD (GetMessagePos()) }; - MSG msg = { hwnd, message, wParam, lParam, GetMessageTime(), pnt }; + MSG msg; + + msg.hwnd = hwnd; + msg.message = message; + msg.wParam = wParam; + msg.lParam = lParam; + msg.time = GetMessageTime(); + msg.pt = pnt; /* GetKeyboardState() does not work as documented on Win95. We have * to loosely track Left and Right modifiers on behalf of the OS, @@ -2157,7 +2164,6 @@ mswindows_wnd_proc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) case CBN_SELCHANGE: if (!NILP (mswindows_handle_gui_wm_command (frame, cid, id))) return 0; - default: /* do nothing */ } /* menubars always must come last since the hashtables do not always exist*/ diff --git a/src/event-stream.c b/src/event-stream.c index 2b955fe..1829140 100644 --- a/src/event-stream.c +++ b/src/event-stream.c @@ -5047,7 +5047,7 @@ Errors running the hook are caught and ignored. *Variable to control XEmacs behavior with respect to focus changing. If this variable is set to t, then XEmacs will not gratuitously change the keyboard focus. XEmacs cannot in general detect when this mode is -use by the window manager, so it is up to the user to set it. +used by the window manager, so it is up to the user to set it. */ ); focus_follows_mouse = 0; diff --git a/src/file-coding.c b/src/file-coding.c index 71feff2..ce4f83b 100644 --- a/src/file-coding.c +++ b/src/file-coding.c @@ -3586,11 +3586,15 @@ static int detect_coding_iso2022 (struct detection_state *st, CONST unsigned char *src, unsigned int n) { - int c; int mask; /* #### There are serious deficiencies in the recognition mechanism - here. This needs to be much smarter if it's going to cut it. */ + here. This needs to be much smarter if it's going to cut it. + The sequence "\xff\x0f" is currently detected as LOCK_SHIFT while + it should be detected as Latin-1. + All the ISO2022 stuff in this file should be synced up with the + code from FSF Emacs-20.4, in which Mule should be more or less stable. + Perhaps we should wait till R2L works in FSF Emacs? */ if (!st->iso2022.initted) { @@ -3610,7 +3614,7 @@ detect_coding_iso2022 (struct detection_state *st, CONST unsigned char *src, while (n--) { - c = *src++; + int c = *src++; if (c >= 0xA0) { mask &= ~CODING_CATEGORY_ISO_7_MASK; @@ -3773,7 +3777,6 @@ static void decode_coding_iso2022 (Lstream *decoding, CONST unsigned char *src, unsigned_char_dynarr *dst, unsigned int n) { - unsigned char c; unsigned int flags, ch; enum eol_type eol_type; struct decoding_stream *str = DECODING_STREAM_DATA (decoding); @@ -3789,7 +3792,7 @@ decode_coding_iso2022 (Lstream *decoding, CONST unsigned char *src, while (n--) { - c = *src++; + unsigned char c = *src++; if (flags & CODING_STATE_ESCAPE) { /* Within ESC sequence */ int retval = parse_iso2022_esc (coding_system, &str->iso2022, @@ -3904,7 +3907,8 @@ decode_coding_iso2022 (Lstream *decoding, CONST unsigned char *src, charset = str->iso2022.charset[reg]; /* Error checking: */ - if (NILP (charset) || str->iso2022.invalid_designated[reg] + if (! CHARSETP (charset) + || str->iso2022.invalid_designated[reg] || (((c & 0x7F) == ' ' || (c & 0x7F) == ISO_CODE_DEL) && XCHARSET_CHARS (charset) == 94)) /* Mrmph. We are trying to invoke a register that has no diff --git a/src/frame-msw.c b/src/frame-msw.c index e7c19a0..5a88a67 100644 --- a/src/frame-msw.c +++ b/src/frame-msw.c @@ -181,7 +181,9 @@ mswindows_init_frame_1 (struct frame *f, Lisp_Object props) hwnd = CreateWindowEx (exstyle, XEMACS_CLASS, STRINGP(f->name) ? XSTRING_DATA(f->name) : - (STRINGP(name) ? XSTRING_DATA(name) : XEMACS_CLASS), + (STRINGP(name) ? + (CONST Extbyte*)XSTRING_DATA(name) : + (CONST Extbyte*)XEMACS_CLASS), style, rect_default.left, rect_default.top, rect_default.width, rect_default.height, diff --git a/src/glyphs-eimage.c b/src/glyphs-eimage.c index 7e58f9c..6b80c82 100644 --- a/src/glyphs-eimage.c +++ b/src/glyphs-eimage.c @@ -689,7 +689,7 @@ gif_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, if (interlace) if (row >= height) { row = InterlacedOffset[++pass]; - while (row > height) + while (row >= height) row = InterlacedOffset[++pass]; } eip = unwind.eimage + (row * width * 3); diff --git a/src/glyphs-msw.c b/src/glyphs-msw.c index f95c1e8..70b948a 100644 --- a/src/glyphs-msw.c +++ b/src/glyphs-msw.c @@ -47,6 +47,9 @@ Boston, MA 02111-1307, USA. */ #endif #include #include +#ifdef HAVE_XFACE +#include +#endif #define WIDGET_GLYPH_SLOT 0 @@ -54,6 +57,9 @@ Boston, MA 02111-1307, USA. */ DEFINE_DEVICE_IIFORMAT (mswindows, xpm); #endif DEFINE_DEVICE_IIFORMAT (mswindows, xbm); +#ifdef HAVE_XFACE +DEFINE_DEVICE_IIFORMAT (mswindows, xface); +#endif DEFINE_DEVICE_IIFORMAT (mswindows, button); DEFINE_DEVICE_IIFORMAT (mswindows, edit); #if 0 @@ -64,6 +70,7 @@ DEFINE_DEVICE_IIFORMAT (mswindows, widget); DEFINE_DEVICE_IIFORMAT (mswindows, label); DEFINE_DEVICE_IIFORMAT (mswindows, scrollbar); DEFINE_DEVICE_IIFORMAT (mswindows, combo); +DEFINE_DEVICE_IIFORMAT (mswindows, progress); DEFINE_IMAGE_INSTANTIATOR_FORMAT (bmp); Lisp_Object Qbmp; @@ -1176,8 +1183,7 @@ mswindows_resource_instantiate (Lisp_Object image_instance, Lisp_Object instanti #ifdef __CYGWIN32__ CYGWIN_WIN32_PATH (f, fname); #else - /* #### FIXME someone who knows ... */ - fname = f + fname = f; #endif if (NILP (resource_id)) @@ -1562,7 +1568,7 @@ xbm_create_bitmap_from_data (HDC hdc, char *data, int mask, COLORREF fg, COLORREF bg) { int old_width = (width + 7)/8; - int new_width = 2*((width + 15)/16); + int new_width = BPLINE (2*((width + 15)/16)); unsigned char *offset; void *bmp_buf = 0; unsigned char *new_data, *new_offset; @@ -1574,7 +1580,7 @@ xbm_create_bitmap_from_data (HDC hdc, char *data, if (!bmp_info) return NULL; - new_data = (unsigned char *) xmalloc (height * new_width); + new_data = (unsigned char *) xmalloc_and_zero (height * new_width); if (!new_data) { @@ -1587,8 +1593,6 @@ xbm_create_bitmap_from_data (HDC hdc, char *data, offset = data + i*old_width; new_offset = new_data + i*new_width; - new_offset[new_width - 1] = 0; /* there may be an extra byte - that needs to be padded */ for (j=0; jbmiHeader.biWidth=width; - bmp_info->bmiHeader.biHeight=-height; + bmp_info->bmiHeader.biHeight=-(LONG)height; bmp_info->bmiHeader.biPlanes=1; bmp_info->bmiHeader.biSize=sizeof(BITMAPINFOHEADER); bmp_info->bmiHeader.biBitCount=1; @@ -1833,6 +1837,93 @@ mswindows_xbm_instantiate (Lisp_Object image_instance, XINT (XCAR (XCDR (data))), gcc_go_home); } +#ifdef HAVE_XFACE +/********************************************************************** + * X-Face * + **********************************************************************/ +#if defined(EXTERN) +/* This is about to get redefined! */ +#undef EXTERN +#endif +/* We have to define SYSV32 so that compface.h includes string.h + instead of strings.h. */ +#define SYSV32 +#ifdef __cplusplus +extern "C" { +#endif +#include +#ifdef __cplusplus +} +#endif +/* JMP_BUF cannot be used here because if it doesn't get defined + to jmp_buf we end up with a conflicting type error with the + definition in compface.h */ +extern jmp_buf comp_env; +#undef SYSV32 + +static void +mswindows_xface_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, + Lisp_Object pointer_fg, Lisp_Object pointer_bg, + int dest_mask, Lisp_Object domain) +{ + Lisp_Object data = find_keyword_in_vector (instantiator, Q_data); + int i, stattis; + char *p, *bits, *bp; + CONST char * volatile emsg = 0; + CONST char * volatile dstring; + + assert (!NILP (data)); + + GET_C_STRING_BINARY_DATA_ALLOCA (data, dstring); + + if ((p = strchr (dstring, ':'))) + { + dstring = p + 1; + } + + /* Must use setjmp not SETJMP because we used jmp_buf above not JMP_BUF */ + if (!(stattis = setjmp (comp_env))) + { + UnCompAll ((char *) dstring); + UnGenFace (); + } + + switch (stattis) + { + case -2: + emsg = "uncompface: internal error"; + break; + case -1: + emsg = "uncompface: insufficient or invalid data"; + break; + case 1: + emsg = "uncompface: excess data ignored"; + break; + } + + if (emsg) + signal_simple_error_2 (emsg, data, Qimage); + + bp = bits = (char *) alloca (PIXELS / 8); + + /* the compface library exports char F[], which uses a single byte per + pixel to represent a 48x48 bitmap. Yuck. */ + for (i = 0, p = F; i < (PIXELS / 8); ++i) + { + int n, b; + /* reverse the bit order of each byte... */ + for (b = n = 0; b < 8; ++b) + { + n |= ((*p++) << b); + } + *bp++ = (char) n; + } + + xbm_instantiate_1 (image_instance, instantiator, pointer_fg, + pointer_bg, dest_mask, 48, 48, bits); +} +#endif /* HAVE_XFACE */ + /************************************************************************/ /* image instance methods */ @@ -2159,10 +2250,21 @@ mswindows_button_instantiate (Lisp_Object image_instance, Lisp_Object instantiat int flags = BS_NOTIFY; Lisp_Object style; struct gui_item* pgui = &IMAGE_INSTANCE_WIDGET_ITEM (ii); - + Lisp_Object glyph = find_keyword_in_vector (instantiator, Q_image); + if (!gui_item_active_p (pgui)) flags |= WS_DISABLED; + if (!NILP (glyph)) + { + if (!IMAGE_INSTANCEP (glyph)) + glyph = glyph_image_instance (glyph, domain, ERROR_ME, 1); + + if (IMAGE_INSTANCEP (glyph)) + flags |= XIMAGE_INSTANCE_MSWINDOWS_BITMAP (glyph) ? + BS_BITMAP : BS_ICON; + } + style = pgui->style; if (EQ (style, Qradio)) @@ -2186,6 +2288,16 @@ mswindows_button_instantiate (Lisp_Object image_instance, Lisp_Object instantiat SendMessage (wnd, BM_SETCHECK, (WPARAM)BST_CHECKED, 0); else SendMessage (wnd, BM_SETCHECK, (WPARAM)BST_UNCHECKED, 0); + /* add the image if one was given */ + if (!NILP (glyph) && IMAGE_INSTANCEP (glyph)) + { + SendMessage (wnd, BM_SETIMAGE, + (WPARAM) (XIMAGE_INSTANCE_MSWINDOWS_BITMAP (glyph) ? + IMAGE_BITMAP : IMAGE_ICON), + (LPARAM) (XIMAGE_INSTANCE_MSWINDOWS_BITMAP (glyph) ? + XIMAGE_INSTANCE_MSWINDOWS_BITMAP (glyph) : + XIMAGE_INSTANCE_MSWINDOWS_ICON (glyph))); + } } /* instantiate an edit control */ @@ -2201,6 +2313,38 @@ mswindows_edit_instantiate (Lisp_Object image_instance, Lisp_Object instantiator WS_EX_CLIENTEDGE | WS_EX_CONTROLPARENT); } +/* instantiate an edit control */ +static void +mswindows_progress_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, + Lisp_Object pointer_fg, Lisp_Object pointer_bg, + int dest_mask, Lisp_Object domain) +{ + HWND wnd; + struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); + mswindows_widget_instantiate (image_instance, instantiator, pointer_fg, + pointer_bg, dest_mask, domain, PROGRESS_CLASS, + WS_TABSTOP | WS_BORDER | PBS_SMOOTH, + WS_EX_CLIENTEDGE | WS_EX_CONTROLPARENT); + wnd = WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii); + /* set the colors */ +#ifdef PBS_SETBKCOLOR + SendMessage (wnd, PBS_SETBKCOLOR, 0, + (LPARAM) (COLOR_INSTANCE_MSWINDOWS_COLOR + (XCOLOR_INSTANCE + (FACE_BACKGROUND + (XIMAGE_INSTANCE_WIDGET_FACE (ii), + XIMAGE_INSTANCE_SUBWINDOW_FRAME (ii)))))); +#endif +#ifdef PBS_SETBARCOLOR + SendMessage (wnd, PBS_SETBARCOLOR, 0, + (L:PARAM) (COLOR_INSTANCE_MSWINDOWS_COLOR + (XCOLOR_INSTANCE + (FACE_FOREGROUND + (XIMAGE_INSTANCE_WIDGET_FACE (ii), + XIMAGE_INSTANCE_SUBWINDOW_FRAME (ii)))))); +#endif +} + /* instantiate a static control possible for putting other things in */ static void mswindows_label_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, @@ -2283,7 +2427,7 @@ mswindows_widget_property (Lisp_Object image_instance, Lisp_Object prop) struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); HANDLE wnd = WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii); /* get the text from a control */ - if (EQ (prop, Qtext)) + if (EQ (prop, Q_text)) { Extcount len = SendMessage (wnd, WM_GETTEXTLENGTH, 0, 0); Extbyte* buf =alloca (len+1); @@ -2301,7 +2445,7 @@ mswindows_button_property (Lisp_Object image_instance, Lisp_Object prop) struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); HANDLE wnd = WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii); /* check the state of a button */ - if (EQ (prop, Qselected)) + if (EQ (prop, Q_selected)) { if (SendMessage (wnd, BM_GETSTATE, 0, 0) & BST_CHECKED) return Qt; @@ -2318,7 +2462,7 @@ mswindows_combo_property (Lisp_Object image_instance, Lisp_Object prop) struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); HANDLE wnd = WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii); /* get the text from a control */ - if (EQ (prop, Qtext)) + if (EQ (prop, Q_text)) { long item = SendMessage (wnd, CB_GETCURSEL, 0, 0); Extcount len = SendMessage (wnd, CB_GETLBTEXTLEN, (WPARAM)item, 0); @@ -2336,7 +2480,7 @@ mswindows_widget_set_property (Lisp_Object image_instance, Lisp_Object prop, { struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); - if (EQ (prop, Qtext)) + if (EQ (prop, Q_text)) { Extbyte* lparam=0; CHECK_STRING (val); @@ -2348,6 +2492,23 @@ mswindows_widget_set_property (Lisp_Object image_instance, Lisp_Object prop, return Qunbound; } +/* set the properties of a progres guage */ +static Lisp_Object +mswindows_progress_set_property (Lisp_Object image_instance, Lisp_Object prop, + Lisp_Object val) +{ + struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); + + if (EQ (prop, Q_percent)) + { + CHECK_INT (val); + SendMessage (WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii), + PBM_SETPOS, (WPARAM)XINT (val), 0); + return Qt; + } + return Qunbound; +} + /************************************************************************/ /* initialization */ @@ -2386,7 +2547,10 @@ image_instantiator_format_create_glyphs_mswindows (void) #endif INITIALIZE_DEVICE_IIFORMAT (mswindows, xbm); IIFORMAT_HAS_DEVMETHOD (mswindows, xbm, instantiate); - +#ifdef HAVE_XFACE + INITIALIZE_DEVICE_IIFORMAT (mswindows, xface); + IIFORMAT_HAS_DEVMETHOD (mswindows, xface, instantiate); +#endif INITIALIZE_DEVICE_IIFORMAT (mswindows, button); IIFORMAT_HAS_DEVMETHOD (mswindows, button, property); IIFORMAT_HAS_DEVMETHOD (mswindows, button, instantiate); @@ -2414,6 +2578,10 @@ image_instantiator_format_create_glyphs_mswindows (void) INITIALIZE_DEVICE_IIFORMAT (mswindows, scrollbar); IIFORMAT_HAS_DEVMETHOD (mswindows, scrollbar, instantiate); + INITIALIZE_DEVICE_IIFORMAT (mswindows, progress); + IIFORMAT_HAS_DEVMETHOD (mswindows, progress, set_property); + IIFORMAT_HAS_DEVMETHOD (mswindows, progress, instantiate); + INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (bmp, "bmp"); IIFORMAT_HAS_METHOD (bmp, validate); @@ -2454,6 +2622,7 @@ This is used by the `make-image-instance' function. Fprovide (Qcombo); Fprovide (Qscrollbar); Fprovide (Qlabel); + Fprovide (Qprogress); } void diff --git a/src/glyphs-widget.c b/src/glyphs-widget.c index 4bb451f..3e2162b 100644 --- a/src/glyphs-widget.c +++ b/src/glyphs-widget.c @@ -20,6 +20,8 @@ Boston, MA 02111-1307, USA. */ /* Synched up with: Not in FSF. */ +/* written by Andy Piper */ + #include #include "lisp.h" #include "lstream.h" @@ -28,7 +30,7 @@ Boston, MA 02111-1307, USA. */ #include "faces.h" #include "glyphs.h" #include "objects.h" - +#include "bytecode.h" #include "window.h" #include "buffer.h" #include "frame.h" @@ -49,8 +51,11 @@ Lisp_Object Qgroup; #endif DEFINE_IMAGE_INSTANTIATOR_FORMAT (label); Lisp_Object Qlabel; +DEFINE_IMAGE_INSTANTIATOR_FORMAT (progress); +Lisp_Object Qprogress; Lisp_Object Q_descriptor, Q_height, Q_width, Q_properties, Q_items; +Lisp_Object Q_image, Q_text, Q_percent; #define WIDGET_BORDER_HEIGHT 2 #define WIDGET_BORDER_WIDTH 4 @@ -58,7 +63,6 @@ Lisp_Object Q_descriptor, Q_height, Q_width, Q_properties, Q_items; /* TODO: - more complex controls. - tooltips for controls. - - images in controls. */ /* In windows normal windows work in pixels, dialog boxes work in @@ -99,16 +103,47 @@ widget_possible_dest_types (void) return IMAGE_WIDGET_MASK; } -#if 0 /* currently unused */ static void -check_valid_glyph (Lisp_Object data) +check_valid_glyph_or_image (Lisp_Object data) { + Lisp_Object glyph = data; if (SYMBOLP (data)) - CHECK_BUFFER_GLYPH (XSYMBOL (data)->value); - else - CHECK_BUFFER_GLYPH (data); + glyph = XSYMBOL (data)->value; + + if (IMAGE_INSTANCEP (glyph)) + CHECK_IMAGE_INSTANCE (glyph); + else if (!CONSP (glyph)) + CHECK_BUFFER_GLYPH (glyph); +} + +static void +check_valid_anything (Lisp_Object data) +{ +} + +static void +check_valid_callback (Lisp_Object data) +{ + if (!SYMBOLP (data) + && !COMPILED_FUNCTIONP (data) + && !CONSP (data)) + { + signal_simple_error (":callback must be a function or expression", data); + } +} + +static void +check_valid_symbol (Lisp_Object data) +{ + CHECK_SYMBOL (data); +} + +static void +check_valid_string_or_vector (Lisp_Object data) +{ + if (!STRINGP (data) && !VECTORP (data)) + signal_simple_error (":descriptor must be a string or a vector", data); } -#endif /* currently unused */ static void check_valid_item_list (Lisp_Object data) @@ -204,7 +239,8 @@ widget_validate (Lisp_Object instantiator) if (NILP (desc)) signal_simple_error ("Must supply :descriptor", instantiator); - gui_parse_item_keywords (desc, &gui); + if (VECTORP (desc)) + gui_parse_item_keywords (desc, &gui); if (!NILP (find_keyword_in_vector (instantiator, Q_width)) && !NILP (find_keyword_in_vector (instantiator, Q_pixel_width))) @@ -223,6 +259,40 @@ combo_validate (Lisp_Object instantiator) signal_simple_error ("Must supply item list", instantiator); } +/* we need to convert things like glyphs to images, eval expressions + etc.*/ +static Lisp_Object +widget_normalize (Lisp_Object inst, Lisp_Object console_type) +{ + /* This function can call lisp */ + Lisp_Object glyph = find_keyword_in_vector (inst, Q_image); + + /* we need to eval glyph if its an expression, we do this for the + same reasons we normalize file to data. */ + if (!NILP (glyph)) + { + int i; + struct gcpro gcpro1; + if (SYMBOLP (glyph)) + glyph = XSYMBOL (glyph)->value; + GCPRO1 (glyph); + + if (CONSP (glyph)) + glyph = Feval (glyph); + /* substitute the new glyph */ + for (i = 0; i < XVECTOR_LENGTH (inst); i++) + { + if (EQ (Q_image, XVECTOR_DATA (inst)[i])) + { + XVECTOR_DATA (inst)[i+1] = glyph; + break; + } + } + UNGCPRO; + } + return inst; +} + static void initialize_widget_image_instance (struct Lisp_Image_Instance *ii, Lisp_Object type) { @@ -253,6 +323,7 @@ widget_instantiate_1 (Lisp_Object image_instance, Lisp_Object instantiator, Lisp_Object pixwidth = find_keyword_in_vector (instantiator, Q_pixel_width); Lisp_Object pixheight = find_keyword_in_vector (instantiator, Q_pixel_height); Lisp_Object desc = find_keyword_in_vector (instantiator, Q_descriptor); + Lisp_Object glyph = find_keyword_in_vector (instantiator, Q_image); int pw=0, ph=0, tw=0, th=0; /* this just does pixel type sizing */ @@ -272,12 +343,17 @@ widget_instantiate_1 (Lisp_Object image_instance, Lisp_Object instantiator, IMAGE_INSTANCE_WIDGET_PROPS (ii) = find_keyword_in_vector (instantiator, Q_properties); - /* retrieve the gui item information */ + /* retrieve the gui item information. This is easy if we have been + provided with a vector, more difficult if we have just been given + keywords */ if (STRINGP (desc) || NILP (desc)) - IMAGE_INSTANCE_WIDGET_TEXT (ii) = desc; + { + /* big cheat - we rely on the fact that a gui item looks like an instantiator */ + gui_parse_item_keywords_no_errors (instantiator, pgui); + IMAGE_INSTANCE_WIDGET_TEXT (ii) = desc; + } else - gui_parse_item_keywords (find_keyword_in_vector (instantiator, Q_descriptor), - pgui); + gui_parse_item_keywords_no_errors (desc, pgui); /* normalize size information */ if (!NILP (width)) @@ -289,6 +365,18 @@ widget_instantiate_1 (Lisp_Object image_instance, Lisp_Object instantiator, if (!NILP (pixheight)) ph = XINT (pixheight); + /* for a widget with an image pick up the dimensions from that */ + if (!NILP (glyph)) + { + if (!pw && !tw) + pw = glyph_width (glyph, Qnil, DEFAULT_INDEX, domain) + + 2 * WIDGET_BORDER_WIDTH; + if (!ph && !th) + ph = glyph_height (glyph, Qnil, DEFAULT_INDEX, domain) + + 2 * WIDGET_BORDER_HEIGHT; + } + + /* if we still don' t have sizes, guess from text size */ if (!tw && !pw && !NILP (IMAGE_INSTANCE_WIDGET_TEXT (ii))) tw = XSTRING_LENGTH (IMAGE_INSTANCE_WIDGET_TEXT (ii)); if (!th && !ph) @@ -300,7 +388,7 @@ widget_instantiate_1 (Lisp_Object image_instance, Lisp_Object instantiator, else ph = default_pixheight; } - + if (tw !=0 || th !=0) widget_text_to_pixel_conversion (domain, IMAGE_INSTANCE_WIDGET_FACE (ii), @@ -355,11 +443,36 @@ syms_of_glyphs_widget (void) defkeyword (&Q_width, ":width"); defkeyword (&Q_properties, ":properties"); defkeyword (&Q_items, ":items"); + defkeyword (&Q_image, ":image"); + defkeyword (&Q_percent, ":percent"); + defkeyword (&Q_text, "text"); } void image_instantiator_format_create_glyphs_widget (void) { +#define VALID_GUI_KEYWORDS(type) \ + IIFORMAT_VALID_KEYWORD (type, Q_active, check_valid_anything); \ + IIFORMAT_VALID_KEYWORD (type, Q_suffix, check_valid_anything); \ + IIFORMAT_VALID_KEYWORD (type, Q_keys, check_valid_string); \ + IIFORMAT_VALID_KEYWORD (type, Q_style, check_valid_symbol); \ + IIFORMAT_VALID_KEYWORD (type, Q_selected, check_valid_anything); \ + IIFORMAT_VALID_KEYWORD (type, Q_filter, check_valid_anything); \ + IIFORMAT_VALID_KEYWORD (type, Q_config, check_valid_symbol); \ + IIFORMAT_VALID_KEYWORD (type, Q_included, check_valid_anything); \ + IIFORMAT_VALID_KEYWORD (type, Q_key_sequence, check_valid_string); \ + IIFORMAT_VALID_KEYWORD (type, Q_accelerator, check_valid_string); \ + IIFORMAT_VALID_KEYWORD (type, Q_label, check_valid_anything); \ + IIFORMAT_VALID_KEYWORD (type, Q_callback, check_valid_callback); \ + IIFORMAT_VALID_KEYWORD (type, Q_descriptor, check_valid_string_or_vector) + +#define VALID_WIDGET_KEYWORDS(type) \ + IIFORMAT_VALID_KEYWORD (type, Q_width, check_valid_int); \ + IIFORMAT_VALID_KEYWORD (type, Q_height, check_valid_int); \ + IIFORMAT_VALID_KEYWORD (type, Q_pixel_width, check_valid_int); \ + IIFORMAT_VALID_KEYWORD (type, Q_pixel_height, check_valid_int); \ + IIFORMAT_VALID_KEYWORD (type, Q_face, check_valid_face) + /* we only do this for properties */ INITIALIZE_IMAGE_INSTANTIATOR_FORMAT_NO_SYM (widget, "widget"); IIFORMAT_HAS_METHOD (widget, property); @@ -370,58 +483,58 @@ image_instantiator_format_create_glyphs_widget (void) IIFORMAT_HAS_SHARED_METHOD (button, validate, widget); IIFORMAT_HAS_SHARED_METHOD (button, possible_dest_types, widget); IIFORMAT_HAS_SHARED_METHOD (button, instantiate, widget); + IIFORMAT_HAS_SHARED_METHOD (button, normalize, widget); + IIFORMAT_VALID_KEYWORD (button, Q_image, check_valid_glyph_or_image); + VALID_WIDGET_KEYWORDS (button); + VALID_GUI_KEYWORDS (button); - IIFORMAT_VALID_KEYWORD (button, Q_width, check_valid_int); - IIFORMAT_VALID_KEYWORD (button, Q_height, check_valid_int); - IIFORMAT_VALID_KEYWORD (button, Q_pixel_width, check_valid_int); - IIFORMAT_VALID_KEYWORD (button, Q_pixel_height, check_valid_int); - IIFORMAT_VALID_KEYWORD (button, Q_face, check_valid_face); - IIFORMAT_VALID_KEYWORD (button, Q_descriptor, check_valid_vector); /* edit fields */ INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (edit, "edit"); IIFORMAT_HAS_SHARED_METHOD (edit, validate, widget); IIFORMAT_HAS_SHARED_METHOD (edit, possible_dest_types, widget); IIFORMAT_HAS_SHARED_METHOD (edit, instantiate, widget); + VALID_WIDGET_KEYWORDS (edit); + VALID_GUI_KEYWORDS (edit); - IIFORMAT_VALID_KEYWORD (edit, Q_width, check_valid_int); - IIFORMAT_VALID_KEYWORD (edit, Q_height, check_valid_int); - IIFORMAT_VALID_KEYWORD (edit, Q_pixel_width, check_valid_int); - IIFORMAT_VALID_KEYWORD (edit, Q_pixel_height, check_valid_int); - IIFORMAT_VALID_KEYWORD (edit, Q_face, check_valid_face); - IIFORMAT_VALID_KEYWORD (edit, Q_descriptor, check_valid_vector); /* combo box */ INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (combo, "combo"); IIFORMAT_HAS_METHOD (combo, validate); IIFORMAT_HAS_SHARED_METHOD (combo, possible_dest_types, widget); IIFORMAT_HAS_METHOD (combo, instantiate); + VALID_GUI_KEYWORDS (combo); IIFORMAT_VALID_KEYWORD (combo, Q_width, check_valid_int); IIFORMAT_VALID_KEYWORD (combo, Q_height, check_valid_int); IIFORMAT_VALID_KEYWORD (combo, Q_pixel_width, check_valid_int); IIFORMAT_VALID_KEYWORD (combo, Q_face, check_valid_face); - IIFORMAT_VALID_KEYWORD (combo, Q_descriptor, check_valid_vector); IIFORMAT_VALID_KEYWORD (combo, Q_properties, check_valid_item_list); + /* scrollbar */ INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (scrollbar, "scrollbar"); IIFORMAT_HAS_SHARED_METHOD (scrollbar, validate, widget); IIFORMAT_HAS_SHARED_METHOD (scrollbar, possible_dest_types, widget); IIFORMAT_HAS_SHARED_METHOD (scrollbar, instantiate, widget); + VALID_GUI_KEYWORDS (scrollbar); IIFORMAT_VALID_KEYWORD (scrollbar, Q_pixel_width, check_valid_int); IIFORMAT_VALID_KEYWORD (scrollbar, Q_pixel_height, check_valid_int); IIFORMAT_VALID_KEYWORD (scrollbar, Q_face, check_valid_face); - IIFORMAT_VALID_KEYWORD (scrollbar, Q_descriptor, check_valid_vector); + + /* progress guage */ + INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (progress, "progress"); + IIFORMAT_HAS_SHARED_METHOD (progress, validate, widget); + IIFORMAT_HAS_SHARED_METHOD (progress, possible_dest_types, widget); + IIFORMAT_HAS_SHARED_METHOD (progress, instantiate, widget); + VALID_WIDGET_KEYWORDS (progress); + VALID_GUI_KEYWORDS (progress); + /* labels */ INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (label, "label"); IIFORMAT_HAS_SHARED_METHOD (label, possible_dest_types, widget); IIFORMAT_HAS_SHARED_METHOD (label, instantiate, static); - - IIFORMAT_VALID_KEYWORD (label, Q_pixel_width, check_valid_int); - IIFORMAT_VALID_KEYWORD (label, Q_pixel_height, check_valid_int); - IIFORMAT_VALID_KEYWORD (label, Q_width, check_valid_int); - IIFORMAT_VALID_KEYWORD (label, Q_height, check_valid_int); - IIFORMAT_VALID_KEYWORD (label, Q_face, check_valid_face); + VALID_WIDGET_KEYWORDS (label); IIFORMAT_VALID_KEYWORD (label, Q_descriptor, check_valid_string); + #if 0 /* group */ INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (group, "group"); diff --git a/src/glyphs-x.c b/src/glyphs-x.c index c6015e4..aed51bf 100644 --- a/src/glyphs-x.c +++ b/src/glyphs-x.c @@ -87,8 +87,7 @@ DEFINE_DEVICE_IIFORMAT (x, xpm); DEFINE_DEVICE_IIFORMAT (x, xbm); DEFINE_DEVICE_IIFORMAT (x, subwindow); #ifdef HAVE_XFACE -DEFINE_IMAGE_INSTANTIATOR_FORMAT (xface); -Lisp_Object Qxface; +DEFINE_DEVICE_IIFORMAT (x, xface); #endif DEFINE_IMAGE_INSTANTIATOR_FORMAT (cursor_font); @@ -1487,73 +1486,6 @@ x_xpm_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, /********************************************************************** * X-Face * **********************************************************************/ - -static void -xface_validate (Lisp_Object instantiator) -{ - file_or_data_must_be_present (instantiator); -} - -static Lisp_Object -xface_normalize (Lisp_Object inst, Lisp_Object console_type) -{ - /* This function can call lisp */ - Lisp_Object file = Qnil, mask_file = Qnil; - struct gcpro gcpro1, gcpro2, gcpro3; - Lisp_Object alist = Qnil; - - GCPRO3 (file, mask_file, alist); - - /* Now, convert any file data into inline data for both the regular - data and the mask data. At the end of this, `data' will contain - the inline data (if any) or Qnil, and `file' will contain - the name this data was derived from (if known) or Qnil. - Likewise for `mask_file' and `mask_data'. - - Note that if we cannot generate any regular inline data, we - skip out. */ - - file = potential_pixmap_file_instantiator (inst, Q_file, Q_data, - console_type); - mask_file = potential_pixmap_file_instantiator (inst, Q_mask_file, - Q_mask_data, console_type); - - if (CONSP (file)) /* failure locating filename */ - signal_double_file_error ("Opening bitmap file", - "no such file or directory", - Fcar (file)); - - if (NILP (file) && NILP (mask_file)) /* no conversion necessary */ - RETURN_UNGCPRO (inst); - - alist = tagged_vector_to_alist (inst); - - { - Lisp_Object data = make_string_from_file (file); - alist = remassq_no_quit (Q_file, alist); - /* there can't be a :data at this point. */ - alist = Fcons (Fcons (Q_file, file), - Fcons (Fcons (Q_data, data), alist)); - } - - alist = xbm_mask_file_munging (alist, file, mask_file, console_type); - - { - Lisp_Object result = alist_to_tagged_vector (Qxface, alist); - free_alist (alist); - RETURN_UNGCPRO (result); - } -} - -static int -xface_possible_dest_types (void) -{ - return - IMAGE_MONO_PIXMAP_MASK | - IMAGE_COLOR_PIXMAP_MASK | - IMAGE_POINTER_MASK; -} - #if defined(EXTERN) /* This is about to get redefined! */ #undef EXTERN @@ -1575,9 +1507,9 @@ extern jmp_buf comp_env; #undef SYSV32 static void -xface_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, - Lisp_Object pointer_fg, Lisp_Object pointer_bg, - int dest_mask, Lisp_Object domain) +x_xface_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, + Lisp_Object pointer_fg, Lisp_Object pointer_bg, + int dest_mask, Lisp_Object domain) { Lisp_Object data = find_keyword_in_vector (instantiator, Q_data); int i, stattis; @@ -2200,19 +2132,8 @@ image_instantiator_format_create_glyphs_x (void) IIFORMAT_VALID_KEYWORD (font, Q_background, check_valid_string); #ifdef HAVE_XFACE - INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (xface, "xface"); - - IIFORMAT_HAS_METHOD (xface, validate); - IIFORMAT_HAS_METHOD (xface, normalize); - IIFORMAT_HAS_METHOD (xface, possible_dest_types); - IIFORMAT_HAS_METHOD (xface, instantiate); - - IIFORMAT_VALID_KEYWORD (xface, Q_data, check_valid_string); - IIFORMAT_VALID_KEYWORD (xface, Q_file, check_valid_string); - IIFORMAT_VALID_KEYWORD (xface, Q_hotspot_x, check_valid_int); - IIFORMAT_VALID_KEYWORD (xface, Q_hotspot_y, check_valid_int); - IIFORMAT_VALID_KEYWORD (xface, Q_foreground, check_valid_string); - IIFORMAT_VALID_KEYWORD (xface, Q_background, check_valid_string); + INITIALIZE_DEVICE_IIFORMAT (x, xface); + IIFORMAT_HAS_DEVMETHOD (x, xface, instantiate); #endif INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (autodetect, @@ -2229,10 +2150,6 @@ image_instantiator_format_create_glyphs_x (void) void vars_of_glyphs_x (void) { -#ifdef HAVE_XFACE - Fprovide (Qxface); -#endif - DEFVAR_LISP ("x-bitmap-file-path", &Vx_bitmap_file_path /* A list of the directories in which X bitmap files may be found. If nil, this is initialized from the "*bitmapFilePath" resource. diff --git a/src/glyphs.c b/src/glyphs.c index fff0de9..5acac8d 100644 --- a/src/glyphs.c +++ b/src/glyphs.c @@ -90,6 +90,11 @@ Lisp_Object Q_foreground, Q_background; #endif #endif +#ifdef HAVE_XFACE +DEFINE_IMAGE_INSTANTIATOR_FORMAT (xface); +Lisp_Object Qxface; +#endif + #ifdef HAVE_XPM DEFINE_IMAGE_INSTANTIATOR_FORMAT (xpm); Lisp_Object Qxpm; @@ -2001,6 +2006,80 @@ xbm_possible_dest_types (void) #endif +#ifdef HAVE_XFACE +/********************************************************************** + * X-Face * + **********************************************************************/ + +static void +xface_validate (Lisp_Object instantiator) +{ + file_or_data_must_be_present (instantiator); +} + +static Lisp_Object +xface_normalize (Lisp_Object inst, Lisp_Object console_type) +{ + /* This function can call lisp */ + Lisp_Object file = Qnil, mask_file = Qnil; + struct gcpro gcpro1, gcpro2, gcpro3; + Lisp_Object alist = Qnil; + + GCPRO3 (file, mask_file, alist); + + /* Now, convert any file data into inline data for both the regular + data and the mask data. At the end of this, `data' will contain + the inline data (if any) or Qnil, and `file' will contain + the name this data was derived from (if known) or Qnil. + Likewise for `mask_file' and `mask_data'. + + Note that if we cannot generate any regular inline data, we + skip out. */ + + file = potential_pixmap_file_instantiator (inst, Q_file, Q_data, + console_type); + mask_file = potential_pixmap_file_instantiator (inst, Q_mask_file, + Q_mask_data, console_type); + + if (CONSP (file)) /* failure locating filename */ + signal_double_file_error ("Opening bitmap file", + "no such file or directory", + Fcar (file)); + + if (NILP (file) && NILP (mask_file)) /* no conversion necessary */ + RETURN_UNGCPRO (inst); + + alist = tagged_vector_to_alist (inst); + + { + Lisp_Object data = make_string_from_file (file); + alist = remassq_no_quit (Q_file, alist); + /* there can't be a :data at this point. */ + alist = Fcons (Fcons (Q_file, file), + Fcons (Fcons (Q_data, data), alist)); + } + + alist = xbm_mask_file_munging (alist, file, mask_file, console_type); + + { + Lisp_Object result = alist_to_tagged_vector (Qxface, alist); + free_alist (alist); + RETURN_UNGCPRO (result); + } +} + +static int +xface_possible_dest_types (void) +{ + return + IMAGE_MONO_PIXMAP_MASK | + IMAGE_COLOR_PIXMAP_MASK | + IMAGE_POINTER_MASK; +} + +#endif /* HAVE_XFACE */ + + #ifdef HAVE_XPM /********************************************************************** @@ -3539,9 +3618,26 @@ get_subwindow_cachel_index (struct frame *f, Lisp_Object subwindow) return elt; } +/* redisplay in general assumes that drawing something will erase + what was there before. unfortunately this does not apply to + subwindows that need to be specifically unmapped in order to + disappear. we take a brute force approach - on the basis that its + cheap - and unmap all subwindows in a display line */ void reset_subwindow_cachels (struct frame *f) { + int elt; + for (elt = 0; elt < Dynarr_length (f->subwindow_cachels); elt++) + { + struct subwindow_cachel *cachel = + Dynarr_atp (f->subwindow_cachels, elt); + + if (!NILP (cachel->subwindow) && cachel->being_displayed) + { + struct Lisp_Image_Instance* ii = XIMAGE_INSTANCE (cachel->subwindow); + MAYBE_DEVMETH (XDEVICE (f->device), unmap_subwindow, (ii)); + } + } Dynarr_reset (f->subwindow_cachels); } @@ -4032,6 +4128,21 @@ image_instantiator_format_create (void) IIFORMAT_VALID_KEYWORD (xbm, Q_background, check_valid_string); #endif /* HAVE_WINDOW_SYSTEM */ +#ifdef HAVE_XFACE + INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (xface, "xface"); + + IIFORMAT_HAS_METHOD (xface, validate); + IIFORMAT_HAS_METHOD (xface, normalize); + IIFORMAT_HAS_METHOD (xface, possible_dest_types); + + IIFORMAT_VALID_KEYWORD (xface, Q_data, check_valid_string); + IIFORMAT_VALID_KEYWORD (xface, Q_file, check_valid_string); + IIFORMAT_VALID_KEYWORD (xface, Q_hotspot_x, check_valid_int); + IIFORMAT_VALID_KEYWORD (xface, Q_hotspot_y, check_valid_int); + IIFORMAT_VALID_KEYWORD (xface, Q_foreground, check_valid_string); + IIFORMAT_VALID_KEYWORD (xface, Q_background, check_valid_string); +#endif + #ifdef HAVE_XPM INITIALIZE_IMAGE_INSTANTIATOR_FORMAT (xpm, "xpm"); @@ -4110,6 +4221,9 @@ The default value of this variable defines the logical color names */ ); Vxpm_color_symbols = Qnil; /* initialized in x-faces.el */ #endif /* HAVE_XPM */ +#ifdef HAVE_XFACE + Fprovide (Qxface); +#endif } void diff --git a/src/glyphs.h b/src/glyphs.h index 97d825e..8535ab4 100644 --- a/src/glyphs.h +++ b/src/glyphs.h @@ -620,13 +620,13 @@ DECLARE_LRECORD (glyph, struct Lisp_Glyph); #define XGLYPH_BASELINE(g) GLYPH_BASELINE (XGLYPH (g)) #define XGLYPH_FACE(g) GLYPH_FACE (XGLYPH (g)) -extern Lisp_Object Qxpm; +extern Lisp_Object Qxpm, Qxface; extern Lisp_Object Q_data, Q_file, Q_color_symbols, Qconst_glyph_variable; -extern Lisp_Object Qxbm, Qedit, Qgroup, Qlabel, Qcombo, Qscrollbar; +extern Lisp_Object Qxbm, Qedit, Qgroup, Qlabel, Qcombo, Qscrollbar, Qprogress; extern Lisp_Object Q_mask_file, Q_mask_data, Q_hotspot_x, Q_hotspot_y; extern Lisp_Object Q_foreground, Q_background, Q_face, Q_descriptor, Q_group; -extern Lisp_Object Q_width, Q_height, Q_pixel_width, Q_pixel_height; -extern Lisp_Object Q_items, Q_properties, Qimage_conversion_error; +extern Lisp_Object Q_width, Q_height, Q_pixel_width, Q_pixel_height, Q_text; +extern Lisp_Object Q_items, Q_properties, Q_image, Q_percent, Qimage_conversion_error; extern Lisp_Object Vcontinuation_glyph, Vcontrol_arrow_glyph, Vhscroll_glyph; extern Lisp_Object Vinvisible_text_glyph, Voctal_escape_glyph, Vtruncation_glyph; extern Lisp_Object Vxemacs_logo; diff --git a/src/gui.c b/src/gui.c index bcd5e1b..8c3bf42 100644 --- a/src/gui.c +++ b/src/gui.c @@ -31,7 +31,7 @@ Boston, MA 02111-1307, USA. */ Lisp_Object Q_active, Q_suffix, Q_keys, Q_style, Q_selected; Lisp_Object Q_filter, Q_config, Q_included, Q_key_sequence; -Lisp_Object Q_accelerator, Q_label; +Lisp_Object Q_accelerator, Q_label, Q_callback; Lisp_Object Qtoggle, Qradio; #ifdef HAVE_POPUPS @@ -123,7 +123,8 @@ gui_item_init (struct gui_item *pgui_item) */ void gui_item_add_keyval_pair (struct gui_item *pgui_item, - Lisp_Object key, Lisp_Object val) + Lisp_Object key, Lisp_Object val, + Error_behavior errb) { if (!KEYWORDP (key)) signal_simple_error_2 ("Non-keyword in gui item", key, pgui_item->name); @@ -136,9 +137,10 @@ gui_item_add_keyval_pair (struct gui_item *pgui_item, else if (EQ (key, Q_style)) pgui_item->style = val; else if (EQ (key, Q_selected)) pgui_item->selected = val; else if (EQ (key, Q_keys)) pgui_item->keys = val; + else if (EQ (key, Q_callback)) pgui_item->callback = val; else if (EQ (key, Q_key_sequence)) ; /* ignored for FSF compatability */ else if (EQ (key, Q_label)) ; /* ignored for 21.0 implement in 21.2 */ - else + else if (ERRB_EQ (errb, ERROR_ME)) signal_simple_error_2 ("Unknown keyword in gui item", key, pgui_item->name); } @@ -147,8 +149,9 @@ gui_item_add_keyval_pair (struct gui_item *pgui_item, * function extracts the description of the item into the PGUI_ITEM * structure. */ -void -gui_parse_item_keywords (Lisp_Object item, struct gui_item *pgui_item) +static void +gui_parse_item_keywords_internal (Lisp_Object item, struct gui_item *pgui_item, + Error_behavior errb) { int length, plist_p, start; Lisp_Object *contents; @@ -201,11 +204,23 @@ gui_parse_item_keywords (Lisp_Object item, struct gui_item *pgui_item) { Lisp_Object key = contents [i++]; Lisp_Object val = contents [i++]; - gui_item_add_keyval_pair (pgui_item, key, val); + gui_item_add_keyval_pair (pgui_item, key, val, errb); } } } +void +gui_parse_item_keywords (Lisp_Object item, struct gui_item *pgui_item) +{ + gui_parse_item_keywords_internal (item, pgui_item, ERROR_ME); +} + +void +gui_parse_item_keywords_no_errors (Lisp_Object item, struct gui_item *pgui_item) +{ + gui_parse_item_keywords_internal (item, pgui_item, ERROR_ME_NOT); +} + /* * Decide whether a GUI item is active by evaluating its :active form * if any @@ -403,6 +418,7 @@ syms_of_gui (void) defkeyword (&Q_included, ":included"); defkeyword (&Q_accelerator, ":accelerator"); defkeyword (&Q_label, ":label"); + defkeyword (&Q_callback, ":callback"); defsymbol (&Qtoggle, "toggle"); defsymbol (&Qradio, "radio"); diff --git a/src/gui.h b/src/gui.h index d65f1f8..010b41f 100644 --- a/src/gui.h +++ b/src/gui.h @@ -68,12 +68,14 @@ struct gui_item extern Lisp_Object Q_accelerator, Q_active, Q_config, Q_filter, Q_included; extern Lisp_Object Q_keys, Q_selected, Q_suffix, Qradio, Qtoggle; -extern Lisp_Object Q_key_sequence, Q_label; +extern Lisp_Object Q_key_sequence, Q_label, Q_callback; void gui_item_init (struct gui_item *pgui_item); void gui_item_add_keyval_pair (struct gui_item *pgui_item, - Lisp_Object key, Lisp_Object val); + Lisp_Object key, Lisp_Object val, + Error_behavior errb); void gui_parse_item_keywords (Lisp_Object item, struct gui_item *pgui_item); +void gui_parse_item_keywords_no_errors (Lisp_Object item, struct gui_item *pgui_item); int gui_item_active_p (CONST struct gui_item *pgui_item); int gui_item_selected_p (CONST struct gui_item *pgui_item); int gui_item_included_p (CONST struct gui_item *pgui_item, Lisp_Object into); diff --git a/src/lisp.h b/src/lisp.h index 4313a5b..5a990c3 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -2836,6 +2836,10 @@ EXFUN (Flength, 1); EXFUN (Fleq, MANY); EXFUN (Flist, MANY); EXFUN (Flistp, 1); +#ifdef HAVE_SHLIB +EXFUN (Flist_modules, 0); +EXFUN (Fload_module, 3); +#endif EXFUN (Flss, MANY); EXFUN (Fmake_byte_code, MANY); EXFUN (Fmake_coding_system, 4); @@ -3024,6 +3028,7 @@ extern Lisp_Object Vcharset_ascii, Vcharset_composite, Vcharset_control_1; extern Lisp_Object Vcoding_system_for_read, Vcoding_system_for_write; extern Lisp_Object Vcoding_system_hash_table, Vcommand_history; extern Lisp_Object Vcommand_line_args, Vconfigure_info_directory; +extern Lisp_Object Vconfigure_site_directory, Vconfigure_site_module_directory; extern Lisp_Object Vconsole_list, Vcontrolling_terminal; extern Lisp_Object Vcurrent_compiled_function_annotation, Vcurrent_load_list; extern Lisp_Object Vcurrent_mouse_event, Vcurrent_prefix_arg, Vdata_directory; @@ -3041,11 +3046,12 @@ extern Lisp_Object Vload_path, Vmark_even_if_inactive, Vmenubar_configuration; extern Lisp_Object Vminibuf_preprompt, Vminibuf_prompt, Vminibuffer_zero; extern Lisp_Object Vmirror_ascii_canon_table, Vmirror_ascii_downcase_table; extern Lisp_Object Vmirror_ascii_eqv_table, Vmirror_ascii_upcase_table; -extern Lisp_Object Vmswindows_downcase_file_names; +extern Lisp_Object Vmodule_directory, Vmswindows_downcase_file_names; extern Lisp_Object Vmswindows_get_true_file_attributes, Vobarray; extern Lisp_Object Vprint_length, Vprint_level, Vprocess_environment; extern Lisp_Object Vpure_uninterned_symbol_table, Vquit_flag; extern Lisp_Object Vrecent_keys_ring, Vshell_file_name, Vsite_directory; +extern Lisp_Object Vsite_module_directory; extern Lisp_Object Vstandard_input, Vstandard_output, Vstdio_str; extern Lisp_Object Vsynchronous_sounds, Vsystem_name, Vterminal_coding_system; extern Lisp_Object Vthis_command_keys, Vunread_command_event; diff --git a/src/menubar.c b/src/menubar.c index 819dd0f..bd03ead 100644 --- a/src/menubar.c +++ b/src/menubar.c @@ -130,7 +130,7 @@ menu_parse_submenu_keywords (Lisp_Object desc, struct gui_item* pgui_item) desc = XCDR (desc); if (!NILP (desc)) CHECK_CONS (desc); - gui_item_add_keyval_pair (pgui_item, key, val); + gui_item_add_keyval_pair (pgui_item, key, val, ERROR_ME); } /* Return the rest - supposed to be a list of items */ diff --git a/src/paths.h.in b/src/paths.h.in index d1524e5..579fb58 100644 --- a/src/paths.h.in +++ b/src/paths.h.in @@ -34,10 +34,14 @@ PATH_LOADSEARCH The default value of `load-path'. + PATH_MODULESEARCH The default value of `module-load-path'. + PATH_PACKAGEPATH The default value of `package-path'. PATH_SITE The default location of site-specific Lisp files. + PATH_SITE_MODULES The default location of site-specific modules. + PATH_EXEC The default value of `exec-directory' and `exec-path'. (exec-path also contains the value of whatever is in the PATH environment variable.) @@ -69,6 +73,18 @@ #define PATH_LOADSEARCH "@LISPDIR@" #endif +#ifdef MODULEDIR_USER_DEFINED +#define PATH_MODULESEARCH "@MODULEDIR@" +#endif + +#ifdef SITELISPDIR_USER_DEFINED +#define PATH_SITE "@SITELISPDIR@" +#endif + +#ifdef SITEMODULEDIR_USER_DEFINED +#define PATH_SITE_MODULES "@SITEMODULEDIR@" +#endif + #ifdef PACKAGE_PATH_USER_DEFINED #define PATH_PACKAGEPATH "@PACKAGE_PATH@" #endif diff --git a/src/redisplay-msw.c b/src/redisplay-msw.c index 304900c..00ed917 100644 --- a/src/redisplay-msw.c +++ b/src/redisplay-msw.c @@ -310,7 +310,7 @@ mswindows_output_blank (struct window *w, struct display_line *dl, struct rune * struct face_cachel *cachel = WINDOW_FACE_CACHEL (w, rb->findex); Lisp_Object bg_pmap = WINDOW_FACE_CACHEL_BACKGROUND_PIXMAP (w, rb->findex); - + if (!IMAGE_INSTANCEP (bg_pmap) || !IMAGE_INSTANCE_PIXMAP_TYPE_P (XIMAGE_INSTANCE (bg_pmap))) bg_pmap = Qnil; @@ -502,7 +502,7 @@ mswindows_output_string (struct window *w, struct display_line *dl, xpos -= xoffset; /* sort out the destination rectangle */ - height = dl->ascent + dl->descent - dl->clip; + height = DISPLAY_LINE_HEIGHT (dl); rect.left = clip_start; rect.top = dl->ypos - dl->ascent; rect.right = clip_end; @@ -591,6 +591,7 @@ mswindows_output_dibitmap (struct frame *f, struct Lisp_Image_Instance *p, int need_clipping = (clip_x || clip_y); int yoffset=0; int xoffset=0; + /* do we need to offset the pixmap vertically? this is necessary for background pixmaps. */ if (offset_bitmap) @@ -713,7 +714,7 @@ mswindows_output_pixmap (struct window *w, struct display_line *dl, struct Lisp_Image_Instance *p = XIMAGE_INSTANCE (image_instance); Lisp_Object window; - int lheight = dl->ascent + dl->descent - dl->clip; + int lheight = DISPLAY_LINE_HEIGHT (dl); int pheight = ((int) IMAGE_INSTANCE_PIXMAP_HEIGHT (p) > lheight ? lheight : IMAGE_INSTANCE_PIXMAP_HEIGHT (p)); int clip_x, clip_y, clip_width, clip_height; @@ -1177,7 +1178,7 @@ mswindows_output_display_block (struct window *w, struct display_line *dl, int b else if (rb->object.chr.ch == '\n') { /* Clear in case a cursor was formerly here. */ - int height = dl->ascent + dl->descent - dl->clip; + int height = DISPLAY_LINE_HEIGHT (dl); redisplay_clear_region (window, findex, xpos, dl->ypos - dl->ascent, rb->width, height); diff --git a/src/redisplay-output.c b/src/redisplay-output.c index 49e6dbb..4a6ce5a 100644 --- a/src/redisplay-output.c +++ b/src/redisplay-output.c @@ -41,6 +41,10 @@ static int compare_runes (struct window *w, struct rune *crb, struct rune *drb); static void redraw_cursor_in_window (struct window *w, int run_end_begin_glyphs); +static void redisplay_output_display_block (struct window *w, struct display_line *dl, + int block, int start, int end, int start_pixpos, + int cursor_start, int cursor_width, + int cursor_height); /***************************************************************************** sync_rune_structs @@ -302,8 +306,6 @@ compare_display_blocks (struct window *w, struct display_line *cdl, int cursor_height) { struct frame *f = XFRAME (w->frame); - struct device *d = XDEVICE (f->device); - struct display_block *cdb, *ddb; int start_pos; int stop_pos; @@ -413,10 +415,10 @@ compare_display_blocks (struct window *w, struct display_line *cdl, stop_pos = elt + 1; } - DEVMETH (d, output_display_block, (w, ddl, d_block, start_pos, - stop_pos, start_pixpos, - cursor_start, cursor_width, - cursor_height)); + redisplay_output_display_block (w, ddl, d_block, start_pos, + stop_pos, start_pixpos, + cursor_start, cursor_width, + cursor_height); return 1; } @@ -471,7 +473,6 @@ output_display_line (struct window *w, display_line_dynarr *cdla, { struct frame *f = XFRAME (w->frame); - struct device *d = XDEVICE (f->device); struct buffer *b = XBUFFER (w->buffer); struct buffer *old_b = window_display_buffer (w); struct display_line *cdl, *ddl; @@ -542,8 +543,8 @@ output_display_line (struct window *w, display_line_dynarr *cdla, } else { - DEVMETH (d, output_display_block, (w, ddl, 0, 0, -1, start_pixpos, - 0, 0, 0)); + redisplay_output_display_block (w, ddl, 0, 0, -1, start_pixpos, + 0, 0, 0); must_sync = 1; } @@ -679,13 +680,13 @@ output_display_line (struct window *w, display_line_dynarr *cdla, } must_sync = 1; - DEVMETH (d, output_display_block, (w, ddl, block, first_elt, - last_elt, - start_pixpos, - cursor_start, cursor_width, - cursor_height)); + redisplay_output_display_block (w, ddl, block, first_elt, + last_elt, + start_pixpos, + cursor_start, cursor_width, + cursor_height); } - + start_pixpos = next_start_pixpos; } } @@ -982,6 +983,26 @@ redisplay_redraw_cursor (struct frame *f, int run_end_begin_meths) } /**************************************************************************** + redisplay_output_display_block + + Given a display line, a block number for that start line, output all + runes between start and end in the specified display block. + ****************************************************************************/ +static void +redisplay_output_display_block (struct window *w, struct display_line *dl, int block, + int start, int end, int start_pixpos, int cursor_start, + int cursor_width, int cursor_height) +{ + struct frame *f = XFRAME (w->frame); + struct device *d = XDEVICE (f->device); + + DEVMETH (d, output_display_block, (w, dl, block, start, + end, start_pixpos, + cursor_start, cursor_width, + cursor_height)); +} + +/**************************************************************************** redisplay_unmap_subwindows Remove subwindows from the area in the box defined by the given @@ -1008,6 +1029,20 @@ static void redisplay_unmap_subwindows (struct frame* f, int x, int y, int width } /**************************************************************************** + redisplay_unmap_subwindows_maybe + + Potentially subwindows from the area in the box defined by the given + parameters. + ****************************************************************************/ +void redisplay_unmap_subwindows_maybe (struct frame* f, int x, int y, int width, int height) +{ + if (Dynarr_length (FRAME_SUBWINDOW_CACHE (f))) + { + redisplay_unmap_subwindows (f, x, y, width, height); + } +} + +/**************************************************************************** redisplay_output_subwindow diff --git a/src/redisplay.h b/src/redisplay.h index 8f8db18..aa6f742 100644 --- a/src/redisplay.h +++ b/src/redisplay.h @@ -270,6 +270,11 @@ struct display_line glyph_block_dynarr *right_glyphs; }; +#define DISPLAY_LINE_HEIGHT(dl) \ +(dl->ascent + dl->descent - dl->clip) +#define DISPLAY_LINE_YPOS(dl) \ +(dl->ypos - dl->ascent) + typedef struct { Dynarr_declare (display_line); @@ -559,6 +564,7 @@ void redisplay_output_subwindow (struct window *w, struct display_line *dl, int xoffset, int start_pixpos, int width, face_index findex, int cursor_start, int cursor_width, int cursor_height); +void redisplay_unmap_subwindows_maybe (struct frame* f, int x, int y, int width, int height); void redisplay_clear_region (Lisp_Object window, face_index findex, int x, int y, int width, int height); void redisplay_clear_bottom_of_window (struct window *w, diff --git a/src/s/cygwin32.h b/src/s/cygwin32.h index 3155383..b3a423b 100644 --- a/src/s/cygwin32.h +++ b/src/s/cygwin32.h @@ -28,44 +28,16 @@ Boston, MA 02111-1307, USA. */ * horribly. What does get defined is HAVE_MS_WINDOWS, but this is * done by configure and only applies to the window system. * - * The important thing about building is that it is done on a binary - * mounted filesystem. i.e. something mounted like: mount -b c: - * /binary. If you do not do this then compilation of el files may - * produce garbage. As of b24 there are fixes in xemacs to make - * building on text mounts but I don't generally do this. Make sure - * you have installed cygwin32 b18 + patched dll (which can be found - * at http://www.lexa.ru/sos or on my home page - * http://www.parallax.co.uk/~andyp. Alternatively when b19 comes out - * the patched dll will be unnecessary. Also make sure your HOME path - * is unix style - i.e. without a drive letter. + * When building make sure your HOME path is unix style - i.e. without + * a drive letter. * - * Note that some people have reported problems with the patched - * cygwin.dll on Sergey's home page so you may want to use the one on - * mine which I *know* works. - * - * once you have done this, configure and make. If you want unexec - * support you need to download a.out.h from my web page or use cygwin - * b19. You probably want to build with mule support since this - * addresses crlf issues in a sensible way. + * once you have done this, configure and make. * * windows '95 - I haven't tested this under '95, it will probably * build but I konw there are some limitations with cygwin under 95 so * YMMV. I build with NT4 SP3. * - * What I want to do: - * - * the fileio stuff merely uses the unix system calls this means that - * the mount type of your fs will determine how files are edited. This - * is fine except in the instance that you want to convert one to the - * other. In this instance I would like to bring the buffer_file_type - * code into the picture without all the other windows-nt - * cruft. Apparently the best way to do this is use the mule coding - * stuff. - * - * process support needs fixing although basic support works (a la - * make-docfile) - * - * Andy Piper 8/1/98 + * Andy Piper 8/1/98 * http://www.parallax.co.uk/~andyp */ /* cheesy way to determine cygwin version */ @@ -133,6 +105,8 @@ extern long random(); #endif #endif +#define PBS_SMOOTH 0x01 + #ifdef HAVE_MS_WINDOWS #define HAVE_NTGUI #define HAVE_FACES @@ -270,7 +244,7 @@ cygwin32_posix_to_win32_path_list(src, dst) /* Pseudo-terminal support under SVR4 only loops to deal with errors. */ -#define PTY_ITERATION for (i = 0; i < 1; i++) +#define PTY_ITERATION for (i = 0, c = 0; i < 1; i++) /* This sets the name of the master side of the PTY. */ diff --git a/src/s/sco5-shr.h b/src/s/sco5-shr.h index 2f6a7bb..ac43fef 100644 --- a/src/s/sco5-shr.h +++ b/src/s/sco5-shr.h @@ -7,15 +7,16 @@ #undef C_OPTIMIZE_SWITCH #undef C_DEBUG_SWITCH #undef C_SWITCH_SYSTEM -#define C_SWITCH_SYSTEM "-D_NO_STATIC -D_SCO_ELF" #ifndef __GNUC__ -#define LINKER "cc -dy -Xc" -#define C_OPTIMIZE_SWITCH "-O3 -Xc -dy" -#define C_DEBUG_SWITCH "-g -Xc -dy" +#define LINKER "cc -belf -dy -Xc" +#define C_OPTIMIZE_SWITCH "-O3 -Xc" +#define C_DEBUG_SWITCH "-g -Xc" +#define C_SWITCH_SYSTEM "-belf -D_NO_STATIC -D_SCO_ELF" #else #define LINKER "gcc -melf -Xc" -#define C_OPTIMIZE_SWITCH "-O99 -m486 -fomit-frame-pointer -Xc -melf" -#define C_DEBUG_SWITCH "-g -Xc -melf" +#define C_OPTIMIZE_SWITCH "-O99 -m486 -fomit-frame-pointer -Xc" +#define C_DEBUG_SWITCH "-g -Xc" +#define C_SWITCH_SYSTEM "-melf -D_NO_STATIC -D_SCO_ELF" #endif diff --git a/src/s/sco5.h b/src/s/sco5.h index a404b70..f900f12 100644 --- a/src/s/sco5.h +++ b/src/s/sco5.h @@ -125,14 +125,8 @@ could #define sco and I think everything would work. rjl */ #ifdef _SCO_ELF #undef COFF /* coz we're NOT */ #define UNEXEC "unexelf.o" -#if defined (__GNUC_MINOR__) -#if ((__GNUC__ == 2) && (__GNUC_MINOR__ > 7)) || ((__GNUC__ > 2)) -#define LIB_GCC "-lgcc" -#else -#define LIB_GCC "-lgcc-elf" -#endif -#else /* __GNUC_MINOR__ is undefined */ -#define LIB_GCC "-lgcc-elf" -#endif #endif +/* For GCC 2.7.2.3 we require the "JKJ" version of gcc. + Works fine with egcs and gcc 2.8.x. */ +#define LIB_GCC "`$(LD) $(LDFLAGS) -print-libgcc-file-name`" diff --git a/src/search.c b/src/search.c index cb66c4f..051fded 100644 --- a/src/search.c +++ b/src/search.c @@ -1963,7 +1963,7 @@ and you do not need to specify it.) Charcount subend = -1; c = string_char (XSTRING (newtext), strpos); - if (c == '\\') + if (c == '\\' && strpos < stlen - 1) { c = string_char (XSTRING (newtext), ++strpos); if (c == '&') @@ -2109,7 +2109,7 @@ and you do not need to specify it.) Charcount offset = BUF_PT (buf) - search_regs.start[0]; c = string_char (XSTRING (newtext), strpos); - if (c == '\\') + if (c == '\\' && strpos < stlen - 1) { c = string_char (XSTRING (newtext), ++strpos); if (c == '&') diff --git a/src/symbols.c b/src/symbols.c index 39859a3..8c70d02 100644 --- a/src/symbols.c +++ b/src/symbols.c @@ -3180,6 +3180,45 @@ check_sane_subr (Lisp_Subr *subr, Lisp_Object sym) #define check_sane_subr(subr, sym) /* nothing */ #endif +#ifdef HAVE_SHLIB +/* + * If we are not in a pure undumped Emacs, we need to make a duplicate of + * the subr. This is because the only time this function will be called + * in a running Emacs is when a dynamically loaded module is adding a + * subr, and we need to make sure that the subr is in allocated, Lisp- + * accessible memory. The address assigned to the static subr struct + * in the shared object will be a trampoline address, so we need to create + * a copy here to ensure that a real address is used. + * + * Once we have copied everything across, we re-use the original static + * structure to store a pointer to the newly allocated one. This will be + * used in emodules.c by emodules_doc_subr() to find a pointer to the + * allocated object so that we can set its doc string propperly. + * + * NOTE: We dont actually use the DOC pointer here any more, but we did + * in an earlier implementation of module support. There is no harm in + * setting it here in case we ever need it in future implementations. + * subr->doc will point to the new subr structure that was allocated. + * Code can then get this value from the statis subr structure and use + * it if required. + * + * FIXME: Should newsubr be staticpro()'ed? I dont think so but I need + * a guru to check. + */ +#define check_module_subr() \ +do { \ + if (initialized) { \ + struct Lisp_Subr *newsubr; \ + newsubr = (Lisp_Subr *)xmalloc(sizeof(struct Lisp_Subr)); \ + memcpy (newsubr, subr, sizeof(struct Lisp_Subr)); \ + subr->doc = (CONST char *)newsubr; \ + subr = newsubr; \ + } \ +} while (0) +#else /* ! HAVE_SHLIB */ +#define check_module_subr() +#endif + void defsubr (Lisp_Subr *subr) { @@ -3187,6 +3226,7 @@ defsubr (Lisp_Subr *subr) Lisp_Object fun; check_sane_subr (subr, sym); + check_module_subr (); XSETSUBR (fun, subr); XSYMBOL (sym)->function = fun; @@ -3200,6 +3240,7 @@ defsubr_macro (Lisp_Subr *subr) Lisp_Object fun; check_sane_subr (subr, sym); + check_module_subr(); XSETSUBR (fun, subr); XSYMBOL (sym)->function = Fcons (Qmacro, fun); @@ -3321,10 +3362,19 @@ defvar_magic (CONST char *symbol_name, CONST struct symbol_value_forward *magic) magic = p; } - sym = Fintern (make_pure_pname ((CONST Bufbyte *) symbol_name, - strlen (symbol_name), - 1), - Qnil); +#if defined(HAVE_SHLIB) + /* + * As with defsubr(), this will only be called in a dumped Emacs when + * we are adding variables from a dynamically loaded module. That means + * we can't use purespace. Take that into account. + */ + if (initialized) + sym = Fintern (build_string (symbol_name), Qnil); + else +#endif + sym = Fintern (make_pure_pname ((CONST Bufbyte *) symbol_name, + strlen (symbol_name), 1), Qnil); + XSETOBJ (XSYMBOL (sym)->value, Lisp_Type_Record, magic); } diff --git a/src/symsinit.h b/src/symsinit.h index a210bd8..7e05629 100644 --- a/src/symsinit.h +++ b/src/symsinit.h @@ -68,7 +68,6 @@ void syms_of_dialog_x (void); void syms_of_dialog (void); void syms_of_dired (void); void syms_of_dired_mswindows (void); -void syms_of_dll (void); void syms_of_doc (void); void syms_of_dragdrop (void); void syms_of_editfns (void); @@ -109,6 +108,7 @@ void syms_of_menubar_x (void); void syms_of_menubar (void); void syms_of_menubar_mswindows (void); void syms_of_minibuf (void); +void syms_of_module (void); void syms_of_mule (void); void syms_of_mule_canna (void); void syms_of_mule_ccl (void); @@ -281,6 +281,7 @@ void vars_of_menubar_x (void); void vars_of_menubar (void); void vars_of_menubar_mswindows (void); void vars_of_minibuf (void); +void vars_of_module (void); void vars_of_mule (void); void vars_of_mule_canna (void); void vars_of_mule_charset (void); diff --git a/src/sysdll.c b/src/sysdll.c index f339873..d6e7df9 100644 --- a/src/sysdll.c +++ b/src/sysdll.c @@ -25,18 +25,18 @@ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA #include "sysdll.h" -/* This whole file is conditional upon HAVE_DLL */ +/* This whole file is conditional upon HAVE_SHLIB */ #ifdef HAVE_SHLIB /* Thankfully, most systems follow the ELFish dlopen() method. ** HAVE__DLOPEN is lame, but SCO has their dl* functions as _dl*, and ** unless you include dlfcn.h you don't get the macros to mask them, and -** autoconf fails to find them. +** autoconf fails to find them. No longer true as of 5.0.5. ** ** Anybody who wants to use this on SCO needs to have their configure.in ** look for _dlopen() as well as dlopen() */ -#if defined(HAVE_DLOPEN) || defined(HAVE__DLOPEN) +#if defined(HAVE_DLOPEN) || defined(HAVE__DLOPEN) || defined(HAVE_DLFCN_H) #include #ifndef RTLD_LAZY @@ -80,14 +80,22 @@ dll_function (dll_handle h, CONST char *n) dll_var dll_variable (dll_handle h, CONST char *n) { +#ifdef DLSYM_NEEDS_UNDERSCORE + char *buf = alloca_array (char, strlen (n) + 2); + *buf = '_'; + (void)strcpy(buf + 1, n); + n = buf; +#endif return (dll_var)dlsym ((void *)h, n); } CONST char * dll_error (dll_handle h) { -#ifdef HAVE_DLERROR +#if defined(HAVE_DLERROR) || defined(dlerror) return (CONST char *)dlerror (); +#elif defined(HAVE__DLERROR) + return (const char *)_dlerror(); #else return "Shared library error"; #endif diff --git a/src/unexnt.c b/src/unexnt.c index ac4b78e..d8d613a 100644 --- a/src/unexnt.c +++ b/src/unexnt.c @@ -549,7 +549,7 @@ copy_executable_and_dump_data_section (file_data *p_infile, static void dump_bss_and_heap (file_data *p_infile, file_data *p_outfile) { - unsigned char *heap_data, *bss_data; + unsigned char *heap_data; unsigned long size, index; DUMP_MSG (("Dumping heap onto end of executable...\n")); @@ -565,16 +565,15 @@ dump_bss_and_heap (file_data *p_infile, file_data *p_outfile) memcpy ((PUCHAR) p_outfile->file_base + index, heap_data, size); #ifndef DUMP_SEPARATE_SECTION - printf ("Dumping bss onto end of executable...\n"); + DUMP_MSG (("Dumping bss onto end of executable...\n")); index += size; size = bss_size; - bss_data = bss_start; - DUMP_MSG (("\t0x%08x BSS start in process.\n", bss_data)); + DUMP_MSG (("\t0x%08x BSS start in process.\n", bss_start)); DUMP_MSG (("\t0x%08x BSS offset in executable.\n", index)); DUMP_MSG (("\t0x%08x BSS size in bytes.\n", size)); - memcpy ((char *) p_outfile->file_base + index, bss_data, size); + memcpy ((char *) p_outfile->file_base + index, bss_start, size); #endif } diff --git a/tests/ChangeLog b/tests/ChangeLog new file mode 100644 index 0000000..cfda4f2 --- /dev/null +++ b/tests/ChangeLog @@ -0,0 +1,15 @@ +1999-02-02 XEmacs Build Bot + + * XEmacs 21.2.9 is released + +1999-01-30 Martin Buchholz + + * automated/lisp-tests.el: Add test for buffer-local function + parameter crash + +1998-12-30 Martin Buchholz + + * automated/database-tests.el: Minor tweaks + + * ChangeLog: new file + diff --git a/tests/automated/database-tests.el b/tests/automated/database-tests.el index 7a46c34..01d195a 100644 --- a/tests/automated/database-tests.el +++ b/tests/automated/database-tests.el @@ -29,7 +29,7 @@ ;;; Test database functionality ;;; See test-harness.el -(condition-case err +(condition-case nil (require 'test-harness) (file-error (when (and (boundp 'load-file-name) (stringp load-file-name)) @@ -53,7 +53,7 @@ (let ((filename (expand-file-name "test-harness" (temp-directory)))) (dolist (fn (list filename (concat filename ".db"))) - (condition-case nil (delete-file fn) (file-error nil))) + (ignore-file-errors (delete-file fn))) (dolist (db-type `(dbm berkeley-db)) (when (featurep db-type) diff --git a/tests/automated/lisp-tests.el b/tests/automated/lisp-tests.el index 840afc1..3a45ce1 100644 --- a/tests/automated/lisp-tests.el +++ b/tests/automated/lisp-tests.el @@ -776,3 +776,12 @@ (Assert (equal (bit-vector 0 1 0) #*010)) (Assert (equal (make-bit-vector 3 1) #*111)) (Assert (equal (make-bit-vector 3 0) #*000)) + +;;----------------------------------------------------- +;; Test buffer-local variables used as (ugh!) function parameters +;;----------------------------------------------------- +(make-local-variable 'test-emacs-buffer-local-variable) +(byte-compile + (defun test-emacs-buffer-local-parameter (test-emacs-buffer-local-variable) + (setq test-emacs-buffer-local-variable nil))) +(test-emacs-buffer-local-parameter nil) diff --git a/tests/glyph-test.el b/tests/glyph-test.el index 8a61ceb..d0aaf9a 100644 --- a/tests/glyph-test.el +++ b/tests/glyph-test.el @@ -1,6 +1,6 @@ (set-extent-begin-glyph (make-extent (point) (point)) - (make-glyph [xpm :file "../etc/xemacs-icon.xpm"])) + (setq icon (make-glyph [xpm :file "../etc/xemacs-icon.xpm"]))) (defun foo () (interactive) @@ -20,9 +20,45 @@ ;; normal pushbutton (set-extent-begin-glyph (make-extent (point) (point)) - (setq pbutton (make-glyph [button :width 10 :height 2 - :face modeline-mousable - :descriptor ["ok" foo :selected t]]))) + (setq pbutton (make-glyph + [button :width 10 :height 2 + :face modeline-mousable + :descriptor "ok" :callback foo + :selected t]))) +;; progress gauge +(set-extent-begin-glyph + (make-extent (point) (point)) + (setq pgauge (make-glyph + [progress :width 10 :height 2 + :descriptor "ok"]))) +;; progress the progress ... +(let ((x 0)) + (while (<= x 100) + (set-image-instance-property (glyph-image-instance pgauge) :percent x) + (setq x (+ x 5)) + (sit-for 0.1))) + +;; progress gauge in the modeline +(setq global-mode-string + (cons (make-extent nil nil) + (setq pg (make-glyph + [progress :width 5 :pixel-height 16 + :descriptor "ok"])))) +;; progress the progress ... +(let ((x 0)) + (while (<= x 100) + (set-image-instance-property (glyph-image-instance pg) :percent x) + (setq x (+ x 5)) + (sit-for 0.1))) + +(set-extent-begin-glyph + (make-extent (point) (point)) + (make-glyph + [button :face modeline-mousable + :descriptor "ok" :callback foo + :image (make-glyph + [xpm :file "../etc/xemacs-icon.xpm"])])) + ;; normal pushbutton (set-extent-begin-glyph (make-extent (point) (point)) diff --git a/version.sh b/version.sh index 04b14a6..00a59b0 100644 --- a/version.sh +++ b/version.sh @@ -1,8 +1,8 @@ #!/bin/sh emacs_major_version=21 emacs_minor_version=2 -emacs_beta_version=8 -xemacs_codename="Artemis" +emacs_beta_version=9 +xemacs_codename="Athena" infodock_major_version=4 infodock_minor_version=0 infodock_build_version=1