Index: CHANGES-beta =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/CHANGES-beta,v retrieving revision 1.214 retrieving revision 1.215 diff -u -r1.214 -r1.215 --- CHANGES-beta 1 Jun 2003 05:10:14 -0000 1.214 +++ CHANGES-beta 4 Sep 2003 00:05:04 -0000 1.215 @@ -1,3 +1,83 @@ +to 21.5.15 "celery" + +Build + +-- Autoconf configure updates - James, Turnbull. +-- Makefile updates - James. +-- Minor updates to make-docfile.c - Begel. +-- Wrap assert_failed with EXTERN_C for modules - James. +-- Updates to modules Makefile.common - James. +-- Include emodules.h when building modules in postgresql.c + and ldap.c - James. +-- Updates to xemacs.mak - Aichner. +-- Add some extern "C" declarations for C++ module builds + - James. +-- Add casts for C++ builds in mule-canna.c - James. +-- Add type casts in database.c to satisy C++ compilers. +-- Log result summary of tests when the testsuite is running + noninteractive - Aichner. +-- Add some tests for weak-lists - Crestani, Kaltenbach. + + +Documentation + +-- Update README.(HYPERBOLE|OO-BROWSER) - Turnbull. +-- Update etc/PACKAGES - Turnbull, Koch, Youngs. +-- Update etc/sample.Xresources - Turnbull. +-- Major update and audit of all documents relating to PUI - Youngs. +-- Mention `line-move-ignore-invisible' (display.texi "Invisible Text") + - Kyllingstad. +-- Document that end-glyph is still displayed when invisible + is set (extents.texi "Extent Properties") - Kyllingstad. +-- Document that only begin-glyph is highlighted (extents.texi "Extents + and Events") - Kyllingstad. +-- Various typo and docstring fixes - Turnbull, Sperber. +-- Add missing '@end' defun in lists.texi - Shelton. +-- Document ?\x00 read syntax and range limitations on ?\000 and + ?\x00 read syntaxes (objects.texi "Character Type") - Turnbull. +-- Document `true-list-p' (lists.texi "List-related Predicates") + - Turnbull. + + +Internals + +-- KKCC updates - Crestani, Kyllingstad. +-- Define DECLARE_MODULE_API_LRECORD when not ERROR_CHECK_TYPES + - James. +-- Updates to DSO code - James. +-- Remove unused (X)OPAQUE_MARKFUN definitions - James. +-- GCPRO updates - Sperber. +-- Mouse wheel fixes in event-msw.c - Kyllingstad. +-- Use 'HAVE_DLD_INIT' instead of 'HAVE_INIT_DLD' in sysdll.c - James. +-- Rewrite ephemeron marker code - Sperber. +-- Fix printing of symbol names in .gdbinit - Golubev. +-- Fixes to `update_frame_toolbars_geometry' - Sperber. +-- Fix missing commas in `fonts' initialiser - Golubev. +-- Add `opaque_ptr_description' - Crestani. +-- Add `allocate_big_string_chars' - Turnbull, Buchholz. + + +Lisp API + +-- New alias `apropos-customize' -> `customize-apropos' - Aichner. +-- Remove unecessary arg from `pui-set-local-package-get-directory - Youngs. +-- New key bindings in mwheel.el - Kyllingstad. +-- Make `insert-directory' to be more like FSF version - Sperber. +-- Window configuration fixes in isearch code - Sperber. +-- Implement simple object finalisation in post-gc.el - Sperber. +-- Updates to etags.el - Turnbull. +-- Updates to cl-macs.el - Pakoulin. +-- Fix "do-nothing" bug in `derived-mode-merge-syntax-tables' - Turnbull. +-- Fixes to `restore-saved-window' - James. +-- Handle missing "EMACSPACKAGEPATH" env var in + `package-get-package-index-file-location' - Aichner. +-- Fix substring errors in `package-admin-find-top-directory' - Aichner. +-- Fix `byte-compile-lambda' so it only discards the docstring if it is + not also the value of the lambda - Turnbull. +-- Don't insist in lib-src directory in `path-emacs-root-p' on WinNT - Aichner. +-- Don't include '(' in `font-lock-function-name-face' - Aichner. + + to 21.5.14 "cassava" This release has a few documentation updates thanks to Steve Index: ChangeLog =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/ChangeLog,v retrieving revision 1.371 retrieving revision 1.377 diff -u -r1.371 -r1.377 --- ChangeLog 1 Jun 2003 05:10:14 -0000 1.371 +++ ChangeLog 4 Sep 2003 00:05:04 -0000 1.377 @@ -1,3 +1,31 @@ +2003-09-03 Steve Youngs + + * XEmacs 21.5.15 "celery" is released. + +2003-08-28 Jerry James + + * configure.in: Link modules with -lstdc++ if g++ is used. + +2003-08-28 Steve Youngs + + * README.packages: Update. + +2003-08-18 Jerry James + + * Makefile.in.in (GENERATED_HEADERS): Add xemacs.def. + * Makefile.in.in: Regenerate if xemacs.def.in.in is touched. + * aclocal.m4 (XE_SHLIB_STUFF): Allow modules with Cygwin. + * aclocal.m4 (cygwin_warn): Removed. + * configure.in (XE_COMPUTE_RUNPATH): Process xemacs.def.in.in. + +2003-08-12 Stephen J. Turnbull + + * configure.usage (Window System): `lucid' option often means `Motif'. + +2003-06-13 Stephen J. Turnbull + + * configure.usage (--cflags-warning): Change underscore to hyphen. + 2003-06-01 Steve Youngs * XEmacs 21.5.14 "cassava" is released. Index: Makefile.in.in =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/Makefile.in.in,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- Makefile.in.in 2 May 2003 06:00:41 -0000 1.16 +++ Makefile.in.in 19 Aug 2003 02:11:47 -0000 1.17 @@ -238,7 +238,7 @@ ## instead, we have written out explicit code in the `install' targets. COPYDIR = ${srcdir}/etc ${srcdir}/lisp COPYDESTS = ${etcdir} ${lispdir} -GENERATED_HEADERS = src/paths.h src/Emacs.ad.h src/config.h lwlib/config.h src/sheap-adjust.h +GENERATED_HEADERS = src/paths.h src/Emacs.ad.h src/config.h lwlib/config.h src/sheap-adjust.h src/xemacs.def ## MAKE_SUBDIR will always be of the form lib-src ... src, where ## `...' includes various other directories that may be inserted by @@ -335,6 +335,9 @@ ./config.status && touch $@ lwlib/config.h: ${srcdir}/lwlib/config.h.in + ./config.status && touch $@ + +src/xemacs.def: $(srcdir)/src/xemacs.def.in.in ./config.status && touch $@ ## ==================== Installation ==================== Index: README.packages =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/README.packages,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- README.packages 5 May 2002 11:33:57 -0000 1.14 +++ README.packages 27 Aug 2003 18:06:54 -0000 1.15 @@ -114,37 +114,69 @@ ----------------------------- There are a few different ways to install packages: - 1. Manually, all at once, using the 'Sumo Tarball'. + 1. Automatically, using the package tools from XEmacs. 2. Manually, using individual package tarballs. - 3. Automatically, using the package tools from XEmacs. + 3. Manually, all at once, using the 'Sumo Tarball'. -** Manually, all at once, using the 'Sumo Tarball' --------------------------------------------------- +** Automatically, using the package tools from XEmacs +----------------------------------------------------- -Those with little time, cheap connections and plenty of disk space can -install all the packages at once using the sumo tarballs. -Download the file: +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. - xemacs-sumo.tar.gz +Unfortunately this requires that a few packages are already in place. +You will have to install them by hand as above or use a SUMO tarball. +This requirement will hopefully go away in the future. The packages +you need are: -For an XEmacs compiled with Mule you also need: + efs - To fetch the files from the FTP site or mirrors. + xemacs-base - Needed by efs. - xemacs-mule-sumo.tar.gz +and optionally: -N.B. They are called 'Sumo Tarballs' for good reason. They are -currently about 19MB and 4.5MB (gzipped) respectively. + mailcrypt - For PGP verification of the package-index file. -Install them by: +After installing these by hand, fire up XEmacs and follow these +steps. - cd $prefix/lib/xemacs ; gunzip -c | tar xvf - RET + (1) Choose a download site. + - via menu: Tools -> Packages -> Set Download Site + - via keyb: M-x customize-variable RET package-get-remote RET + (put in the details of remote host and directory) -Or, if you have GNU tar: + If the package tarballs _AND_ the package-index file are in a + local directory, you can: M-x pui-set-local-package-get-directory RET - cd $prefix/lib/xemacs ; tar zxvf /path/to/ RET + (2) Obtain a list of packages and display the list in a buffer named + "*Packages*". + - menu: Tools -> Packages -> List & Install + - keyb: M-x pui-list-packages RET -As the Sumo tarballs are not regenerated as often as the individual -packages, it is recommended that you use the automatic package tools -afterwards to pick up any recent updates. + XEmacs will now connect to the remote site and download the + latest package-index file. + + The resulting buffer, "*Packages*" has brief instructions at the + end of the buffer. + + (3) Choose the packages you wish to install. + - mouse: Click button 2 on the package name. + - keyb: RET on the package name + + (4) Make sure you have everything you need. + - menu: Packages -> Add Required + - keyb: r + + XEmacs will now search for packages that are required by the + ones that you have chosen to install and offer to select + those packages also. + + For novices and gurus alike, this step can save your bacon. + It's easy to forget to install a critical package. + + (5) Download and install the packages. + - menu: Packages -> Install/Remove Selected + - keyb: x ** Manually, using individual package tarballs ---------------------------------------------- @@ -180,77 +212,38 @@ tar zxvf /path/to/mule-base-1.37-pkg.tar.gz RET -** Automatically, using the package tools from XEmacs ------------------------------------------------------ - -XEmacs comes with some tools to make the periodic updating and -installing easier. It will notice if new packages or versions are -available and will fetch them from the FTP site. - -Unfortunately this requires that a few packages are already in place. -You will have to install them by hand as above or use a SUMO tarball. -This requirement will hopefully go away in the future. The packages -you need are: - - efs - To fetch the files from the FTP site or mirrors. - xemacs-base - Needed by efs. - -and optionally: - - mule-base - Needed if you want to use XEmacs with MULE. - -After installing these by hand, fire up XEmacs and follow these -steps. - -Note: The menus in XEmacs 21.2.x and up have changed slightly, so -where I mention "Options -> Manage Packages", substitute "Tools -> -Packages". +** Manually, all at once, using the 'Sumo Tarball' +-------------------------------------------------- - (1) Choose a download site. - - via menu: Options -> Manages Packages -> Add Download Site - - via keyb: M-x customize-variable RET package-get-remote RET - (put in the details of remote host and directory) +Those with little time, cheap connections and plenty of disk space can +install all the packages at once using the sumo tarballs. +Download the file: - If the package tarballs _AND_ the package-index file are in a - local directory, you can: M-x pui-add-install-directory RET + xemacs-sumo.tar.gz - (2) Obtain a list of packages and display the list in a buffer named - "*Packages*". - - menu: Options -> Manage Packages -> List & Install - - keyb: M-x pui-list-packages RET +For an XEmacs compiled with Mule you also need: - XEmacs will now connect to the remote site and download the - latest package-index file. If you see an error about the - package-index entries not being PGP signed, you can safely - ignore this because PGP has not been integrated into the XEmacs - package tools yet. + xemacs-mule-sumo.tar.gz - The resulting buffer, "*Packages*" has brief instructions at the - end of the buffer. +N.B. They are called 'Sumo Tarballs' for good reason. They are +currently about 19MB and 4.5MB (gzipped) respectively. - (3) Choose the packages you wish to install. - - mouse: Click button 2 on the package name. - - keyb: RET on the package name +Install them by: - (4) Make sure you have everything you need. - - menu: Packages -> Add Required - - keyb: r + cd $prefix/lib/xemacs ; gunzip -c | tar xvf - RET - XEmacs will now search for packages that are required by the - ones that you have chosen to install and offer to select - those packages also. +Or, if you have GNU tar: - For novices and gurus alike, this step can save your bacon. - It's easy to forget to install a critical package. + cd $prefix/lib/xemacs ; tar zxvf /path/to/ RET - (5) Download and install the packages. - - menu: Packages -> Install/Remove Selected - - keyb: x +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. * After Installation -------------------- -New packages can only be used by XEmacs after a restart. +Updated packages can only be used by XEmacs after a restart. * Which Packages to install? ---------------------------- @@ -261,7 +254,7 @@ 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 +text-modes, time, mailcrypt If you are using the XEmacs package tools, don't forget to do: @@ -290,9 +283,9 @@ -------------------------- In addition to the system wide packages, each user can have his own -packages installed in "~/.xemacs/xemacs-packages". If you want to -install packages there using the interactive tools, you need to set -'pui-package-install-dest-dir' to "~/.xemacs/xemacs-packages" +packages installed under "~/.xemacs/". If you want to install packages +there using the interactive tools, you need to set +'package-get-install-to-user-init-directory' to 't' * Site lisp/Site start ---------------------- Index: aclocal.m4 =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/aclocal.m4,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- aclocal.m4 10 May 2003 02:57:05 -0000 1.7 +++ aclocal.m4 19 Aug 2003 02:11:47 -0000 1.8 @@ -84,7 +84,6 @@ wl= can_build_shared=yes -cygwin_warn= if test "$XEGCC" = yes; then wl='-Wl,' @@ -104,10 +103,6 @@ ;; *cygwin* | *mingw* ) # PIC is the default - cygwin_warn=yes - # #### Need some trickery involving import libraries that we don't - # currently support. - can_build_shared=no ;; *) dll_cflags='-fPIC' @@ -203,10 +198,6 @@ CFLAGS="$save_CFLAGS" else AC_MSG_RESULT(none) -fi - -if test -n "$cygwin_warn"; then - AC_MSG_WARN([Cannot currently build modules under Cygwin.]) fi dnl Index: configure =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/configure,v retrieving revision 1.201 retrieving revision 1.203 diff -u -r1.201 -r1.203 --- configure 20 May 2003 18:57:50 -0000 1.201 +++ configure 28 Aug 2003 15:45:21 -0000 1.203 @@ -7573,9 +7573,16 @@ test -n "$xemacs_compiler" && XEMACS_CC="$xemacs_compiler" : ${XEMACS_CC:="$CC"} +if test "$xemacs_compiler" = "g++"; then + LIBSTDCPP=-lstdc++ +else + LIBSTDCPP= +fi + + if test "$with_modules" != "no"; then echo "checking for module support" 1>&6 -echo "configure:7579: checking for module support" >&5 +echo "configure:7586: checking for module support" >&5 if test "$with_msw" = "yes"; then have_dl=yes; @@ -7592,15 +7599,15 @@ * ) ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6 -echo "configure:7596: checking for dlfcn.h" >&5 +echo "configure:7603: checking for dlfcn.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7604: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7611: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -7617,16 +7624,16 @@ echo "$ac_t""yes" 1>&6 echo $ac_n "checking for dlopen in -lc""... $ac_c" 1>&6 -echo "configure:7621: checking for dlopen in -lc" >&5 +echo "configure:7628: checking for dlopen in -lc" >&5 cat > conftest.$ac_ext < int main() { dlopen ("", 0); ; return 0; } EOF -if { (eval echo configure:7630: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7637: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* have_dl=yes else @@ -7635,18 +7642,18 @@ rm -rf conftest* echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 -echo "configure:7639: checking for dlopen in -ldl" >&5 +echo "configure:7646: checking for dlopen in -ldl" >&5 ac_save_LIBS="$LIBS" LIBS="-ldl $LIBS" cat > conftest.$ac_ext < int main() { dlopen ("", 0); ; return 0; } EOF -if { (eval echo configure:7650: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7657: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* have_dl=yes else @@ -7675,12 +7682,12 @@ else echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 -echo "configure:7679: checking for shl_load in -ldld" >&5 +echo "configure:7686: 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${ac_exeext}; then +if { (eval echo configure:7702: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7718,12 +7725,12 @@ echo "$ac_t""no" 1>&6 echo $ac_n "checking for dld_init in -ldld""... $ac_c" 1>&6 -echo "configure:7722: checking for dld_init in -ldld" >&5 +echo "configure:7729: 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${ac_exeext}; then +if { (eval echo configure:7745: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7779,7 +7786,7 @@ xealias=$internal_configuration echo "checking how to build dynamic libraries for ${xehost}" 1>&6 -echo "configure:7783: checking how to build dynamic libraries for ${xehost}" >&5 +echo "configure:7790: checking how to build dynamic libraries for ${xehost}" >&5 # Transform *-*-linux* to *-*-linux-gnu*, to support old configure scripts. case "$xehost" in *-*-linux-gnu*) ;; @@ -7807,9 +7814,9 @@ XEGCC=yes else echo $ac_n "checking checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:7811: checking checking whether we are using GNU C" >&5 +echo "configure:7818: checking checking whether we are using GNU C" >&5 cat > conftest.$ac_ext <&6 -echo "configure:7835: checking how to produce PIC code" >&5 +echo "configure:7842: checking how to produce PIC code" >&5 wl= can_build_shared=yes -cygwin_warn= if test "$XEGCC" = yes; then wl='-Wl,' @@ -7855,10 +7861,6 @@ ;; *cygwin* | *mingw* ) # PIC is the default - cygwin_warn=yes - # #### Need some trickery involving import libraries that we don't - # currently support. - can_build_shared=no ;; *) dll_cflags='-fPIC' @@ -7937,18 +7939,18 @@ # Check to make sure the dll_cflags actually works. echo $ac_n "checking if PIC flag ${dll_cflags} really works""... $ac_c" 1>&6 -echo "configure:7941: checking if PIC flag ${dll_cflags} really works" >&5 +echo "configure:7943: 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 +if { (eval echo configure:7954: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* # On HP-UX, the stripped-down bundled CC doesn't accept +Z, but also @@ -7974,16 +7976,12 @@ echo "$ac_t""none" 1>&6 fi -if test -n "$cygwin_warn"; then - echo "configure: warning: Cannot currently build modules under Cygwin." 1>&2 -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:7987: checking if C compiler can produce shared libraries" >&5 +echo "configure:7985: checking if C compiler can produce shared libraries" >&5 if test "$XEGCC" = yes; then xcldf="-shared" xldf="-shared" @@ -8034,14 +8032,14 @@ xe_libs= ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&5' cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8043: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cc_produces_so=yes else @@ -8066,7 +8064,7 @@ if test "$XEGCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 -echo "configure:8070: checking for ld used by GCC" >&5 +echo "configure:8068: checking for ld used by GCC" >&5 ac_prog=`($CC -print-prog-name=ld) 2>&5` case "$ac_prog" in # Accept absolute paths. @@ -8092,7 +8090,7 @@ esac else echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 -echo "configure:8096: checking for GNU ld" >&5 +echo "configure:8094: checking for GNU ld" >&5 fi if test -z "$LTLD"; then @@ -8130,7 +8128,7 @@ # Check to see if it really is or isn't GNU ld. echo $ac_n "checking if the linker is GNU ld""... $ac_c" 1>&6 -echo "configure:8134: checking if the linker is GNU ld" >&5 +echo "configure:8132: 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 @@ -8158,7 +8156,7 @@ # OK - only NOW do we futz about with ld. # See if the linker supports building shared libraries. echo $ac_n "checking whether the linker supports shared libraries""... $ac_c" 1>&6 -echo "configure:8162: checking whether the linker supports shared libraries" >&5 +echo "configure:8160: checking whether the linker supports shared libraries" >&5 dll_ld=$CC dll_ldflags=$LDFLAGS ld_shlibs=yes @@ -8367,10 +8365,10 @@ for ac_func in dlerror _dlerror do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8371: checking for $ac_func" >&5 +echo "configure:8369: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8395: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8457,15 +8455,15 @@ 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:8461: checking for ${dir}tt_c.h" >&5 +echo "configure:8459: 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:8469: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8467: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8501,12 +8499,12 @@ xe_msg_checking="for tt_message_create in -ltt" test -n "$extra_libs" && xe_msg_checking="$xe_msg_checking using extra libs $extra_libs" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:8505: checking "$xe_msg_checking"" >&5 +echo "configure:8503: 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${ac_exeext}; then +if { (eval echo configure:8519: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8571,15 +8569,15 @@ 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:8575: checking for Dt/Dt.h" >&5 +echo "configure:8573: 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:8583: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8581: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8602,12 +8600,12 @@ } test -z "$with_cde" && { echo $ac_n "checking for DtDndDragStart in -lDtSvc""... $ac_c" 1>&6 -echo "configure:8606: checking for DtDndDragStart in -lDtSvc" >&5 +echo "configure:8604: 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${ac_exeext}; then +if { (eval echo configure:8620: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8699,7 +8697,7 @@ if test "$with_dragndrop" != "no" ; then echo $ac_n "checking if drag and drop API is needed""... $ac_c" 1>&6 -echo "configure:8703: checking if drag and drop API is needed" >&5 +echo "configure:8701: checking if drag and drop API is needed" >&5 if test -n "$dragndrop_proto" ; then with_dragndrop=yes echo "$ac_t""yes (${dragndrop_proto} )" 1>&6 @@ -8719,19 +8717,19 @@ fi echo "checking for LDAP" 1>&6 -echo "configure:8723: checking for LDAP" >&5 +echo "configure:8721: checking for LDAP" >&5 ldap_libs= 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:8727: checking for ldap.h" >&5 +echo "configure:8725: 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:8735: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8733: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8754,15 +8752,15 @@ } 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:8758: checking for lber.h" >&5 +echo "configure:8756: 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:8766: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8764: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8786,12 +8784,12 @@ if test "$with_ldap" != "no"; then echo $ac_n "checking for ldap_search in -lldap""... $ac_c" 1>&6 -echo "configure:8790: checking for ldap_search in -lldap" >&5 +echo "configure:8788: checking for ldap_search in -lldap" >&5 ac_lib_var=`echo ldap'_'ldap_search | sed 'y%./+-%__p_%'` xe_check_libs=" -lldap " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8804: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8827,12 +8825,12 @@ xe_msg_checking="for ldap_open in -lldap" test -n "-llber" && xe_msg_checking="$xe_msg_checking using extra libs -llber" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:8831: checking "$xe_msg_checking"" >&5 +echo "configure:8829: 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${ac_exeext}; then +if { (eval echo configure:8845: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8868,12 +8866,12 @@ xe_msg_checking="for ldap_open in -lldap" test -n "-llber -lkrb" && xe_msg_checking="$xe_msg_checking using extra libs -llber -lkrb" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:8872: checking "$xe_msg_checking"" >&5 +echo "configure:8870: checking "$xe_msg_checking"" >&5 ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'` xe_check_libs=" -lldap -llber -lkrb" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8886: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8909,12 +8907,12 @@ xe_msg_checking="for ldap_open in -lldap" test -n "-llber -lkrb -ldes" && xe_msg_checking="$xe_msg_checking using extra libs -llber -lkrb -ldes" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:8913: checking "$xe_msg_checking"" >&5 +echo "configure:8911: checking "$xe_msg_checking"" >&5 ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'` xe_check_libs=" -lldap -llber -lkrb -ldes" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8927: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8974,10 +8972,10 @@ for ac_func in ldap_set_option ldap_get_lderrno ldap_result2error ldap_parse_result do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8978: checking for $ac_func" >&5 +echo "configure:8976: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9002: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -9039,20 +9037,20 @@ postgresql_libs= if test "$with_postgresql" != "no"; then echo "checking for PostgreSQL" 1>&6 -echo "configure:9043: checking for PostgreSQL" >&5 +echo "configure:9041: checking for PostgreSQL" >&5 for header_dir in "" "pgsql/" "postgresql/"; do ac_safe=`echo "${header_dir}libpq-fe.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ${header_dir}libpq-fe.h""... $ac_c" 1>&6 -echo "configure:9048: checking for ${header_dir}libpq-fe.h" >&5 +echo "configure:9046: checking for ${header_dir}libpq-fe.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9056: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9054: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9076,12 +9074,12 @@ test -n "$libpq_fe_h_file" && { echo $ac_n "checking for PQconnectdb in -lpq""... $ac_c" 1>&6 -echo "configure:9080: checking for PQconnectdb in -lpq" >&5 +echo "configure:9078: checking for PQconnectdb in -lpq" >&5 ac_lib_var=`echo pq'_'PQconnectdb | sed 'y%./+-%__p_%'` xe_check_libs=" -lpq " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9094: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9125,12 +9123,12 @@ echo $ac_n "checking for PQconnectStart in -lpq""... $ac_c" 1>&6 -echo "configure:9129: checking for PQconnectStart in -lpq" >&5 +echo "configure:9127: checking for PQconnectStart in -lpq" >&5 ac_lib_var=`echo pq'_'PQconnectStart | sed 'y%./+-%__p_%'` xe_check_libs=" -lpq " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9143: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9192,7 +9190,7 @@ if test "$window_system" != "none"; then echo "checking for graphics libraries" 1>&6 -echo "configure:9196: checking for graphics libraries" >&5 +echo "configure:9194: checking for graphics libraries" >&5 libpath_xpm= incpath_xpm= @@ -9218,10 +9216,10 @@ CFLAGS=""$incpath_xpm" $CFLAGS" && if test "$extra_verbose" = "yes"; then echo " Prepending \""$incpath_xpm"\" to \$CFLAGS"; fi LDFLAGS=""$libpath_xpm" $LDFLAGS" && if test "$extra_verbose" = "yes"; then echo " Prepending \""$libpath_xpm"\" to \$LDFLAGS"; fi echo $ac_n "checking for Xpm - no older than 3.4f""... $ac_c" 1>&6 -echo "configure:9222: checking for Xpm - no older than 3.4f" >&5 +echo "configure:9220: checking for Xpm - no older than 3.4f" >&5 xe_check_libs=-lXpm cat > conftest.$ac_ext < @@ -9230,7 +9228,7 @@ XpmIncludeVersion != XpmLibraryVersion() ? 1 : XpmIncludeVersion < 30406 ? 2 : 0 ;} EOF -if { (eval echo configure:9234: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:9232: \"$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 @@ -9274,17 +9272,17 @@ libs_x="-lXpm $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-lXpm\" to \$libs_x"; fi CFLAGS=""$incpath_xpm" $CFLAGS" && if test "$extra_verbose" = "yes"; then echo " Prepending \""$incpath_xpm"\" to \$CFLAGS"; fi echo $ac_n "checking for \"FOR_MSW\" xpm""... $ac_c" 1>&6 -echo "configure:9278: checking for \"FOR_MSW\" xpm" >&5 +echo "configure:9276: checking for \"FOR_MSW\" xpm" >&5 xe_check_libs=-lXpm cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9286: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* xpm_for_msw=no else @@ -9310,15 +9308,15 @@ 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:9314: checking for compface.h" >&5 +echo "configure:9312: 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:9322: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9320: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9341,12 +9339,12 @@ } test -z "$with_xface" && { echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6 -echo "configure:9345: checking for UnGenFace in -lcompface" >&5 +echo "configure:9343: 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${ac_exeext}; then +if { (eval echo configure:9359: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9406,12 +9404,12 @@ if test "$with_png $with_tiff" != "no no"; then echo $ac_n "checking for inflate in -lc""... $ac_c" 1>&6 -echo "configure:9410: checking for inflate in -lc" >&5 +echo "configure:9408: 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${ac_exeext}; then +if { (eval echo configure:9424: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9441,12 +9439,12 @@ echo "$ac_t""no" 1>&6 echo $ac_n "checking for inflate in -lz""... $ac_c" 1>&6 -echo "configure:9445: checking for inflate in -lz" >&5 +echo "configure:9443: 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${ac_exeext}; then +if { (eval echo configure:9459: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9476,12 +9474,12 @@ echo "$ac_t""no" 1>&6 echo $ac_n "checking for inflate in -lgz""... $ac_c" 1>&6 -echo "configure:9480: checking for inflate in -lgz" >&5 +echo "configure:9478: 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${ac_exeext}; then +if { (eval echo configure:9494: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9522,15 +9520,15 @@ 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:9526: checking for jpeglib.h" >&5 +echo "configure:9524: 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:9534: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9532: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9553,12 +9551,12 @@ } test -z "$with_jpeg" && { echo $ac_n "checking for jpeg_destroy_decompress in -ljpeg""... $ac_c" 1>&6 -echo "configure:9557: checking for jpeg_destroy_decompress in -ljpeg" >&5 +echo "configure:9555: 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${ac_exeext}; then +if { (eval echo configure:9571: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9605,10 +9603,10 @@ png_problem="" test -z "$with_png" && { echo $ac_n "checking for pow""... $ac_c" 1>&6 -echo "configure:9609: checking for pow" >&5 +echo "configure:9607: checking for pow" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9633: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_pow=yes" else @@ -9652,15 +9650,15 @@ } 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:9656: checking for png.h" >&5 +echo "configure:9654: 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:9664: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9662: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9683,12 +9681,12 @@ } test -z "$with_png" && { echo $ac_n "checking for png_read_image in -lpng""... $ac_c" 1>&6 -echo "configure:9687: checking for png_read_image in -lpng" >&5 +echo "configure:9685: 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${ac_exeext}; then +if { (eval echo configure:9701: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9722,10 +9720,10 @@ } if test -z "$with_png"; then echo $ac_n "checking for workable png version information""... $ac_c" 1>&6 -echo "configure:9726: checking for workable png version information" >&5 +echo "configure:9724: checking for workable png version information" >&5 xe_check_libs="-lpng -lz" cat > conftest.$ac_ext < int main(int c, char **v) { @@ -9733,7 +9731,7 @@ if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING) != 0) return 1; return (PNG_LIBPNG_VER < 10002) ? 2 : 0 ;} EOF -if { (eval echo configure:9737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:9735: \"$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 @@ -9776,15 +9774,15 @@ 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:9780: checking for tiffio.h" >&5 +echo "configure:9778: 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:9788: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9786: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9807,12 +9805,12 @@ } test -z "$with_tiff" && { echo $ac_n "checking for TIFFClientOpen in -ltiff""... $ac_c" 1>&6 -echo "configure:9811: checking for TIFFClientOpen in -ltiff" >&5 +echo "configure:9809: 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${ac_exeext}; then +if { (eval echo configure:9825: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9862,15 +9860,15 @@ if test "$with_gtk" = "yes"; then 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:9866: checking for compface.h" >&5 +echo "configure:9864: 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:9874: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9872: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9893,12 +9891,12 @@ } test -z "$with_xface" && { echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6 -echo "configure:9897: checking for UnGenFace in -lcompface" >&5 +echo "configure:9895: 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${ac_exeext}; then +if { (eval echo configure:9911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9948,7 +9946,7 @@ if test "$with_x11" = "yes"; then echo "checking for X11 graphics libraries" 1>&6 -echo "configure:9952: checking for X11 graphics libraries" >&5 +echo "configure:9950: checking for X11 graphics libraries" >&5 fi case "$with_widgets" in @@ -9958,7 +9956,7 @@ if test "$with_x11" = "yes" -a "$detect_athena" = "yes" ; then echo "checking for the Athena widgets" 1>&6 -echo "configure:9962: checking for the Athena widgets" >&5 +echo "configure:9960: checking for the Athena widgets" >&5 case "$with_athena" in "xaw" | "") athena_variant=Xaw athena_3d=no ;; @@ -9972,12 +9970,12 @@ if test "$athena_3d" = "no"; then echo $ac_n "checking for XawScrollbarSetThumb in -l$athena_variant""... $ac_c" 1>&6 -echo "configure:9976: checking for XawScrollbarSetThumb in -l$athena_variant" >&5 +echo "configure:9974: checking for XawScrollbarSetThumb in -l$athena_variant" >&5 ac_lib_var=`echo $athena_variant'_'XawScrollbarSetThumb | sed 'y%./+-%__p_%'` xe_check_libs=" -l$athena_variant " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9990: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10004,12 +10002,12 @@ echo "$ac_t""yes" 1>&6 echo $ac_n "checking for threeDClassRec in -l$athena_variant""... $ac_c" 1>&6 -echo "configure:10008: checking for threeDClassRec in -l$athena_variant" >&5 +echo "configure:10006: checking for threeDClassRec in -l$athena_variant" >&5 ac_lib_var=`echo $athena_variant'_'threeDClassRec | sed 'y%./+-%__p_%'` xe_check_libs=" -l$athena_variant " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10022: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10051,12 +10049,12 @@ else echo $ac_n "checking for threeDClassRec in -l$athena_variant""... $ac_c" 1>&6 -echo "configure:10055: checking for threeDClassRec in -l$athena_variant" >&5 +echo "configure:10053: checking for threeDClassRec in -l$athena_variant" >&5 ac_lib_var=`echo $athena_variant'_'threeDClassRec | sed 'y%./+-%__p_%'` xe_check_libs=" -l$athena_variant " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10069: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10085,12 +10083,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for threeDClassRec in -lXaw""... $ac_c" 1>&6 -echo "configure:10089: checking for threeDClassRec in -lXaw" >&5 +echo "configure:10087: checking for threeDClassRec in -lXaw" >&5 ac_lib_var=`echo Xaw'_'threeDClassRec | sed 'y%./+-%__p_%'` xe_check_libs=" -lXaw " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10103: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10132,15 +10130,15 @@ if test "$athena_3d" = "no"; then ac_safe=`echo "X11/Xaw/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xaw/ThreeD.h""... $ac_c" 1>&6 -echo "configure:10136: checking for X11/Xaw/ThreeD.h" >&5 +echo "configure:10134: checking for X11/Xaw/ThreeD.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10144: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10142: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10160,15 +10158,15 @@ echo "$ac_t""no" 1>&6 ac_safe=`echo "X11/Xaw/XawInit.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xaw/XawInit.h""... $ac_c" 1>&6 -echo "configure:10164: checking for X11/Xaw/XawInit.h" >&5 +echo "configure:10162: checking for X11/Xaw/XawInit.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:10170: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10194,15 +10192,15 @@ else ac_safe=`echo "X11/$athena_variant/XawInit.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/$athena_variant/XawInit.h""... $ac_c" 1>&6 -echo "configure:10198: checking for X11/$athena_variant/XawInit.h" >&5 +echo "configure:10196: checking for X11/$athena_variant/XawInit.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10206: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10204: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10219,15 +10217,15 @@ echo "$ac_t""yes" 1>&6 ac_safe=`echo "X11/$athena_variant/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/$athena_variant/ThreeD.h""... $ac_c" 1>&6 -echo "configure:10223: checking for X11/$athena_variant/ThreeD.h" >&5 +echo "configure:10221: checking for X11/$athena_variant/ThreeD.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10231: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10229: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10255,15 +10253,15 @@ if test -z "$athena_h_path"; then ac_safe=`echo "$athena_variant/XawInit.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $athena_variant/XawInit.h""... $ac_c" 1>&6 -echo "configure:10259: checking for $athena_variant/XawInit.h" >&5 +echo "configure:10257: checking for $athena_variant/XawInit.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10267: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10265: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10280,15 +10278,15 @@ echo "$ac_t""yes" 1>&6 ac_safe=`echo "$athena_variant/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $athena_variant/ThreeD.h""... $ac_c" 1>&6 -echo "configure:10284: checking for $athena_variant/ThreeD.h" >&5 +echo "configure:10282: checking for $athena_variant/ThreeD.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10292: \"$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 | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10317,15 +10315,15 @@ if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then ac_safe=`echo "X11/Xaw3d/XawInit.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xaw3d/XawInit.h""... $ac_c" 1>&6 -echo "configure:10321: checking for X11/Xaw3d/XawInit.h" >&5 +echo "configure:10319: checking for X11/Xaw3d/XawInit.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10329: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10327: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10342,15 +10340,15 @@ echo "$ac_t""yes" 1>&6 ac_safe=`echo "X11/Xaw3d/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xaw3d/ThreeD.h""... $ac_c" 1>&6 -echo "configure:10346: checking for X11/Xaw3d/ThreeD.h" >&5 +echo "configure:10344: checking for X11/Xaw3d/ThreeD.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10354: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10352: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10382,15 +10380,15 @@ if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then ac_safe=`echo "Xaw3d/XawInit.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for Xaw3d/XawInit.h""... $ac_c" 1>&6 -echo "configure:10386: checking for Xaw3d/XawInit.h" >&5 +echo "configure:10384: checking for Xaw3d/XawInit.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10394: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10392: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10407,15 +10405,15 @@ echo "$ac_t""yes" 1>&6 ac_safe=`echo "Xaw3d/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for Xaw3d/ThreeD.h""... $ac_c" 1>&6 -echo "configure:10411: checking for Xaw3d/ThreeD.h" >&5 +echo "configure:10409: checking for Xaw3d/ThreeD.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:10417: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10447,15 +10445,15 @@ if test -z "$athena_h_path"; then ac_safe=`echo "X11/Xaw/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xaw/ThreeD.h""... $ac_c" 1>&6 -echo "configure:10451: checking for X11/Xaw/ThreeD.h" >&5 +echo "configure:10449: checking for X11/Xaw/ThreeD.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10459: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10457: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10494,15 +10492,15 @@ if test "$with_x11" = "yes"; then ac_safe=`echo "Xm/Xm.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for Xm/Xm.h""... $ac_c" 1>&6 -echo "configure:10498: checking for Xm/Xm.h" >&5 +echo "configure:10496: 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:10506: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10504: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10519,12 +10517,12 @@ echo "$ac_t""yes" 1>&6 echo $ac_n "checking for XmStringFree in -lXm""... $ac_c" 1>&6 -echo "configure:10523: checking for XmStringFree in -lXm" >&5 +echo "configure:10521: 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${ac_exeext}; then +if { (eval echo configure:10537: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10564,9 +10562,9 @@ if test "$have_motif" = "yes"; then echo $ac_n "checking for Lesstif""... $ac_c" 1>&6 -echo "configure:10568: checking for Lesstif" >&5 +echo "configure:10566: checking for Lesstif" >&5 cat > conftest.$ac_ext < #ifdef LESSTIF_VERSION @@ -10939,7 +10937,7 @@ if test "$with_mule" = "yes" ; then echo "checking for Mule-related features" 1>&6 -echo "configure:10943: checking for Mule-related features" >&5 +echo "configure:10941: checking for Mule-related features" >&5 { test "$extra_verbose" = "yes" && cat << \EOF Defining MULE EOF @@ -10953,15 +10951,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:10957: checking for $ac_hdr" >&5 +echo "configure:10955: 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:10965: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10963: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10992,12 +10990,12 @@ echo $ac_n "checking for strerror in -lintl""... $ac_c" 1>&6 -echo "configure:10996: checking for strerror in -lintl" >&5 +echo "configure:10994: 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${ac_exeext}; then +if { (eval echo configure:11010: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11041,18 +11039,18 @@ echo "checking for Mule input methods" 1>&6 -echo "configure:11045: checking for Mule input methods" >&5 +echo "configure:11043: checking for Mule input methods" >&5 case "$with_xim" in "" | "yes" ) echo "checking for XIM" 1>&6 -echo "configure:11048: checking for XIM" >&5 +echo "configure:11046: checking for XIM" >&5 echo $ac_n "checking for XOpenIM in -lX11""... $ac_c" 1>&6 -echo "configure:11051: checking for XOpenIM in -lX11" >&5 +echo "configure:11049: checking for XOpenIM in -lX11" >&5 ac_lib_var=`echo X11'_'XOpenIM | sed 'y%./+-%__p_%'` xe_check_libs=" -lX11 " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11065: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11087,12 +11085,12 @@ if test "$have_motif $have_lesstif" = "yes no"; then echo $ac_n "checking for XmImMbLookupString in -lXm""... $ac_c" 1>&6 -echo "configure:11091: checking for XmImMbLookupString in -lXm" >&5 +echo "configure:11089: 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${ac_exeext}; then +if { (eval echo configure:11105: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11168,15 +11166,15 @@ if test "$with_xfs" = "yes" ; then echo "checking for XFontSet" 1>&6 -echo "configure:11172: checking for XFontSet" >&5 +echo "configure:11170: checking for XFontSet" >&5 echo $ac_n "checking for XmbDrawString in -lX11""... $ac_c" 1>&6 -echo "configure:11175: checking for XmbDrawString in -lX11" >&5 +echo "configure:11173: 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${ac_exeext}; then +if { (eval echo configure:11189: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11227,15 +11225,15 @@ 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:11231: checking for wnn/jllib.h" >&5 +echo "configure:11229: 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:11239: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11237: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -11258,15 +11256,15 @@ } test -z "$with_wnn" && { ac_safe=`echo "wnn/commonhd.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for wnn/commonhd.h""... $ac_c" 1>&6 -echo "configure:11262: checking for wnn/commonhd.h" >&5 +echo "configure:11260: checking for wnn/commonhd.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11270: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11268: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -11291,10 +11289,10 @@ for ac_func in crypt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11295: checking for $ac_func" >&5 +echo "configure:11293: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11319: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -11346,12 +11344,12 @@ test "$ac_cv_func_crypt" != "yes" && { echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6 -echo "configure:11350: checking for crypt in -lcrypt" >&5 +echo "configure:11348: 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${ac_exeext}; then +if { (eval echo configure:11364: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11397,12 +11395,12 @@ if test -z "$with_wnn" -o "$with_wnn" = "yes"; then echo $ac_n "checking for jl_dic_list_e in -lwnn""... $ac_c" 1>&6 -echo "configure:11401: checking for jl_dic_list_e in -lwnn" >&5 +echo "configure:11399: 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${ac_exeext}; then +if { (eval echo configure:11415: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11431,12 +11429,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for jl_dic_list_e in -lwnn4""... $ac_c" 1>&6 -echo "configure:11435: checking for jl_dic_list_e in -lwnn4" >&5 +echo "configure:11433: 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${ac_exeext}; then +if { (eval echo configure:11449: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11465,12 +11463,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for jl_dic_list_e in -lwnn6""... $ac_c" 1>&6 -echo "configure:11469: checking for jl_dic_list_e in -lwnn6" >&5 +echo "configure:11467: 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${ac_exeext}; then +if { (eval echo configure:11483: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11499,12 +11497,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for dic_list_e in -lwnn6_fromsrc""... $ac_c" 1>&6 -echo "configure:11503: checking for dic_list_e in -lwnn6_fromsrc" >&5 +echo "configure:11501: 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${ac_exeext}; then +if { (eval echo configure:11517: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11560,12 +11558,12 @@ if test "$with_wnn6" != "no"; then echo $ac_n "checking for jl_fi_dic_list in -l$libwnn""... $ac_c" 1>&6 -echo "configure:11564: checking for jl_fi_dic_list in -l$libwnn" >&5 +echo "configure:11562: 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${ac_exeext}; then +if { (eval echo configure:11578: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11611,15 +11609,15 @@ 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:11615: checking for canna/jrkanji.h" >&5 +echo "configure:11613: 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:11623: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11621: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -11646,15 +11644,15 @@ 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:11650: checking for canna/jrkanji.h" >&5 +echo "configure:11648: 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:11658: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11656: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -11682,15 +11680,15 @@ 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:11686: checking for canna/RK.h" >&5 +echo "configure:11684: 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:11694: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11692: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -11713,12 +11711,12 @@ } test -z "$with_canna" && { echo $ac_n "checking for RkBgnBun in -lRKC""... $ac_c" 1>&6 -echo "configure:11717: checking for RkBgnBun in -lRKC" >&5 +echo "configure:11715: 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${ac_exeext}; then +if { (eval echo configure:11731: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11752,12 +11750,12 @@ } test -z "$with_canna" && { echo $ac_n "checking for jrKanjiControl in -lcanna""... $ac_c" 1>&6 -echo "configure:11756: checking for jrKanjiControl in -lcanna" >&5 +echo "configure:11754: 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${ac_exeext}; then +if { (eval echo configure:11770: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11814,12 +11812,12 @@ libs_x="-lXm $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-lXm\" to \$libs_x"; fi echo $ac_n "checking for layout_object_getvalue in -li18n""... $ac_c" 1>&6 -echo "configure:11818: checking for layout_object_getvalue in -li18n" >&5 +echo "configure:11816: 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${ac_exeext}; then +if { (eval echo configure:11832: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11917,10 +11915,10 @@ for ac_func in cbrt closedir dup2 eaccess fmod fpathconf frexp ftime getaddrinfo gethostname getnameinfo getpagesize gettimeofday getcwd getwd link logb lrand48 matherr mkdir mktime perror poll random readlink rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask snprintf stpcpy strerror strlwr strupr symlink tzset ulimit usleep waitpid vsnprintf fsync ftruncate umask wcslen wcscmp do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11921: checking for $ac_func" >&5 +echo "configure:11919: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11945: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -11984,10 +11982,10 @@ for ac_func in getpt _getpty grantpt unlockpt ptsname killpg tcgetpgrp do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11988: checking for $ac_func" >&5 +echo "configure:11986: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12012: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -12039,10 +12037,10 @@ echo $ac_n "checking for openpty""... $ac_c" 1>&6 -echo "configure:12043: checking for openpty" >&5 +echo "configure:12041: checking for openpty" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12067: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_openpty=yes" else @@ -12084,12 +12082,12 @@ echo $ac_n "checking for openpty in -lutil""... $ac_c" 1>&6 -echo "configure:12088: checking for openpty in -lutil" >&5 +echo "configure:12086: checking for openpty in -lutil" >&5 ac_lib_var=`echo util'_'openpty | sed 'y%./+-%__p_%'` xe_check_libs=" -lutil " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12102: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -12135,15 +12133,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:12139: checking for $ac_hdr" >&5 +echo "configure:12137: 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:12147: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12145: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12180,15 +12178,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:12184: checking for $ac_hdr" >&5 +echo "configure:12182: 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:12192: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12190: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12221,15 +12219,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:12225: checking for $ac_hdr" >&5 +echo "configure:12223: 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:12233: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12231: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12262,15 +12260,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:12266: checking for $ac_hdr" >&5 +echo "configure:12264: 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:12274: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12272: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12306,15 +12304,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:12310: checking for $ac_hdr" >&5 +echo "configure:12308: 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:12318: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12316: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12347,10 +12345,10 @@ for ac_func in isastream do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:12351: checking for $ac_func" >&5 +echo "configure:12349: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12375: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -12404,15 +12402,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:12408: checking for $ac_hdr" >&5 +echo "configure:12406: 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:12416: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12414: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12445,10 +12443,10 @@ for ac_func in getloadavg do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:12449: checking for $ac_func" >&5 +echo "configure:12447: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12473: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -12504,15 +12502,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:12508: checking for $ac_hdr" >&5 +echo "configure:12506: 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:12516: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12514: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12548,12 +12546,12 @@ echo $ac_n "checking for kstat_open in -lkstat""... $ac_c" 1>&6 -echo "configure:12552: checking for kstat_open in -lkstat" >&5 +echo "configure:12550: 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${ac_exeext}; then +if { (eval echo configure:12566: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -12599,15 +12597,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:12603: checking for $ac_hdr" >&5 +echo "configure:12601: 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:12611: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12609: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -12639,12 +12637,12 @@ echo $ac_n "checking for kvm_read in -lkvm""... $ac_c" 1>&6 -echo "configure:12643: checking for kvm_read in -lkvm" >&5 +echo "configure:12641: 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${ac_exeext}; then +if { (eval echo configure:12657: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -12689,16 +12687,16 @@ fi echo $ac_n "checking whether netdb declares h_errno""... $ac_c" 1>&6 -echo "configure:12693: checking whether netdb declares h_errno" >&5 +echo "configure:12691: checking whether netdb declares h_errno" >&5 cat > conftest.$ac_ext < int main() { return h_errno; ; return 0; } EOF -if { (eval echo configure:12702: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12700: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6 { test "$extra_verbose" = "yes" && cat << \EOF @@ -12718,16 +12716,16 @@ rm -f conftest* echo $ac_n "checking for sigsetjmp""... $ac_c" 1>&6 -echo "configure:12722: checking for sigsetjmp" >&5 +echo "configure:12720: checking for sigsetjmp" >&5 cat > conftest.$ac_ext < int main() { sigjmp_buf bar; sigsetjmp (bar, 0); ; return 0; } EOF -if { (eval echo configure:12731: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:12729: \"$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 @@ -12747,11 +12745,11 @@ rm -f conftest* echo $ac_n "checking whether localtime caches TZ""... $ac_c" 1>&6 -echo "configure:12751: checking whether localtime caches TZ" >&5 +echo "configure:12749: checking whether localtime caches TZ" >&5 if test "$ac_cv_func_tzset" = "yes"; then cat > conftest.$ac_ext < #if STDC_HEADERS @@ -12786,7 +12784,7 @@ exit (0); } EOF -if { (eval echo configure:12790: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:12788: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then emacs_cv_localtime_cache=no else @@ -12816,9 +12814,9 @@ if test "$HAVE_TIMEVAL" = "yes"; then echo $ac_n "checking whether gettimeofday accepts one or two arguments""... $ac_c" 1>&6 -echo "configure:12820: checking whether gettimeofday accepts one or two arguments" >&5 +echo "configure:12818: checking whether gettimeofday accepts one or two arguments" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12841: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""two" 1>&6 else @@ -12861,19 +12859,19 @@ echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:12865: checking for inline" >&5 +echo "configure:12863: 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:12875: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -12914,17 +12912,17 @@ # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 -echo "configure:12918: checking for working alloca.h" >&5 +echo "configure:12916: 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:12928: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12926: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_header_alloca_h=yes else @@ -12948,10 +12946,10 @@ fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:12952: checking for alloca" >&5 +echo "configure:12950: checking for alloca" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12981: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_alloca_works=yes else @@ -13018,10 +13016,10 @@ echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:13022: checking whether alloca needs Cray hooks" >&5 +echo "configure:13020: checking whether alloca needs Cray hooks" >&5 cat > conftest.$ac_ext <&6 -echo "configure:13049: checking for $ac_func" >&5 +echo "configure:13047: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13073: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -13101,10 +13099,10 @@ fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:13105: checking stack direction for C alloca" >&5 +echo "configure:13103: 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:13125: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_c_stack_direction=1 else @@ -13152,9 +13150,9 @@ fi echo $ac_n "checking for working alloca in function calls""... $ac_c" 1>&6 -echo "configure:13156: checking for working alloca in function calls" >&5 +echo "configure:13154: checking for working alloca in function calls" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:13209: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then working_alloca_in_function_calls=yes else @@ -13230,10 +13228,10 @@ echo $ac_n "checking for working strcoll""... $ac_c" 1>&6 -echo "configure:13234: checking for working strcoll" >&5 +echo "configure:13232: checking for working strcoll" >&5 cat > conftest.$ac_ext < main () @@ -13243,7 +13241,7 @@ strcoll ("123", "456") >= 0); } EOF -if { (eval echo configure:13247: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:13245: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_strcoll_works=yes else @@ -13271,10 +13269,10 @@ for ac_func in getpgrp do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:13275: checking for $ac_func" >&5 +echo "configure:13273: checking for $ac_func" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13299: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -13325,10 +13323,10 @@ done echo $ac_n "checking whether getpgrp takes no argument""... $ac_c" 1>&6 -echo "configure:13329: checking whether getpgrp takes no argument" >&5 +echo "configure:13327: 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:13385: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_getpgrp_void=yes else @@ -13410,10 +13408,10 @@ echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:13414: checking for working mmap" >&5 +echo "configure:13412: checking for working mmap" >&5 case "$opsys" in ultrix* ) have_mmap=no ;; *) cat > conftest.$ac_ext < #include @@ -13446,7 +13444,7 @@ return 1; } EOF -if { (eval echo configure:13450: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:13448: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then have_mmap=yes else @@ -13475,9 +13473,9 @@ if test "$rel_alloc $have_mmap" = "default yes"; then if test "$doug_lea_malloc" = "yes"; then echo $ac_n "checking for M_MMAP_THRESHOLD""... $ac_c" 1>&6 -echo "configure:13479: checking for M_MMAP_THRESHOLD" >&5 +echo "configure:13477: checking for M_MMAP_THRESHOLD" >&5 cat > conftest.$ac_ext < int main() { @@ -13489,7 +13487,7 @@ ; return 0; } EOF -if { (eval echo configure:13493: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:13491: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* rel_alloc=no; echo "$ac_t""yes" 1>&6; else @@ -13514,15 +13512,15 @@ ac_safe=`echo "termios.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for termios.h""... $ac_c" 1>&6 -echo "configure:13518: checking for termios.h" >&5 +echo "configure:13516: 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:13526: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13524: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -13565,15 +13563,15 @@ 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:13569: checking for termio.h" >&5 +echo "configure:13567: 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:13577: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13575: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -13605,10 +13603,10 @@ echo $ac_n "checking for socket""... $ac_c" 1>&6 -echo "configure:13609: checking for socket" >&5 +echo "configure:13607: checking for socket" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13633: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_socket=yes" else @@ -13646,15 +13644,15 @@ 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:13650: checking for netinet/in.h" >&5 +echo "configure:13648: 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:13658: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13656: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -13671,15 +13669,15 @@ 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:13675: checking for arpa/inet.h" >&5 +echo "configure:13673: 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:13683: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13681: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -13704,9 +13702,9 @@ } echo $ac_n "checking "for sun_len member in struct sockaddr_un"""... $ac_c" 1>&6 -echo "configure:13708: checking "for sun_len member in struct sockaddr_un"" >&5 +echo "configure:13706: checking "for sun_len member in struct sockaddr_un"" >&5 cat > conftest.$ac_ext < @@ -13717,7 +13715,7 @@ static struct sockaddr_un x; x.sun_len = 1; ; return 0; } EOF -if { (eval echo configure:13721: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13719: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6; { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_SOCKADDR_SUN_LEN @@ -13735,9 +13733,9 @@ fi rm -f conftest* echo $ac_n "checking "for ip_mreq struct in netinet/in.h"""... $ac_c" 1>&6 -echo "configure:13739: checking "for ip_mreq struct in netinet/in.h"" >&5 +echo "configure:13737: checking "for ip_mreq struct in netinet/in.h"" >&5 cat > conftest.$ac_ext < @@ -13747,7 +13745,7 @@ static struct ip_mreq x; ; return 0; } EOF -if { (eval echo configure:13751: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13749: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6; { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_MULTICAST @@ -13778,10 +13776,10 @@ echo $ac_n "checking for msgget""... $ac_c" 1>&6 -echo "configure:13782: checking for msgget" >&5 +echo "configure:13780: checking for msgget" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13806: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_msgget=yes" else @@ -13819,15 +13817,15 @@ 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:13823: checking for sys/ipc.h" >&5 +echo "configure:13821: 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:13831: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13829: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -13844,15 +13842,15 @@ 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:13848: checking for sys/msg.h" >&5 +echo "configure:13846: 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:13856: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13854: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -13890,15 +13888,15 @@ ac_safe=`echo "dirent.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for dirent.h""... $ac_c" 1>&6 -echo "configure:13894: checking for dirent.h" >&5 +echo "configure:13892: 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:13902: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13900: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -13925,15 +13923,15 @@ 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:13929: checking for sys/dir.h" >&5 +echo "configure:13927: 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:13937: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13935: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -13966,15 +13964,15 @@ ac_safe=`echo "nlist.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for nlist.h""... $ac_c" 1>&6 -echo "configure:13970: checking for nlist.h" >&5 +echo "configure:13968: 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:13978: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13976: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -14004,22 +14002,22 @@ echo "checking "for sound support"" 1>&6 -echo "configure:14008: checking "for sound support"" >&5 +echo "configure:14006: checking "for sound support"" >&5 test -z "$with_native_sound" -a -n "$native_sound_lib" && with_native_sound=yes if test "$with_native_sound" != "no"; then if test -n "$native_sound_lib"; then ac_safe=`echo "multimedia/audio_device.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for multimedia/audio_device.h""... $ac_c" 1>&6 -echo "configure:14015: checking for multimedia/audio_device.h" >&5 +echo "configure:14013: 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:14023: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:14021: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -14067,12 +14065,12 @@ if test -z "$native_sound_lib"; then echo $ac_n "checking for ALopenport in -laudio""... $ac_c" 1>&6 -echo "configure:14071: checking for ALopenport in -laudio" >&5 +echo "configure:14069: 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${ac_exeext}; then +if { (eval echo configure:14085: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -14114,12 +14112,12 @@ if test -z "$native_sound_lib"; then echo $ac_n "checking for AOpenAudio in -lAlib""... $ac_c" 1>&6 -echo "configure:14118: checking for AOpenAudio in -lAlib" >&5 +echo "configure:14116: 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${ac_exeext}; then +if { (eval echo configure:14132: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -14178,15 +14176,15 @@ 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:14182: checking for ${dir}/soundcard.h" >&5 +echo "configure:14180: 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:14190: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:14188: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -14240,15 +14238,15 @@ if test "$with_nas_sound" != "no"; then ac_safe=`echo "audio/audiolib.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for audio/audiolib.h""... $ac_c" 1>&6 -echo "configure:14244: checking for audio/audiolib.h" >&5 +echo "configure:14242: checking for audio/audiolib.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:14252: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:14250: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -14266,12 +14264,12 @@ echo $ac_n "checking for AuOpenServer in -laudio""... $ac_c" 1>&6 -echo "configure:14270: checking for AuOpenServer in -laudio" >&5 +echo "configure:14268: checking for AuOpenServer in -laudio" >&5 ac_lib_var=`echo audio'_'AuOpenServer | sed 'y%./+-%__p_%'` xe_check_libs=" -laudio " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14284: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -14321,7 +14319,7 @@ fi libs_x="-laudio $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-laudio\" to \$libs_x"; fi cat > conftest.$ac_ext < EOF @@ -14352,7 +14350,7 @@ # Extract the first word of "esd-config", so it can be a program name with args. set dummy esd-config; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:14356: checking for $ac_word" >&5 +echo "configure:14354: checking for $ac_word" >&5 if test -n "$have_esd_config"; then ac_cv_prog_have_esd_config="$have_esd_config" # Let the user override the test. @@ -14381,10 +14379,10 @@ c_switch_site="$c_switch_site `esd-config --cflags`" && if test "$extra_verbose" = "yes"; then echo " Appending \"`esd-config --cflags`\" to \$c_switch_site"; fi LIBS="`esd-config --libs` $LIBS" && if test "$extra_verbose" = "yes"; then echo " Prepending \"`esd-config --libs`\" to \$LIBS"; fi echo $ac_n "checking for esd_play_stream""... $ac_c" 1>&6 -echo "configure:14385: checking for esd_play_stream" >&5 +echo "configure:14383: checking for esd_play_stream" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14409: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_esd_play_stream=yes" else @@ -14458,7 +14456,7 @@ if test "$with_tty" = "yes" ; then echo "checking for TTY-related features" 1>&6 -echo "configure:14462: checking for TTY-related features" >&5 +echo "configure:14460: checking for TTY-related features" >&5 { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_TTY EOF @@ -14471,12 +14469,12 @@ if test -z "$with_ncurses"; then echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6 -echo "configure:14475: checking for tgetent in -lncurses" >&5 +echo "configure:14473: 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${ac_exeext}; then +if { (eval echo configure:14489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -14520,15 +14518,15 @@ ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6 -echo "configure:14524: checking for ncurses/curses.h" >&5 +echo "configure:14522: 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:14532: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:14530: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -14550,15 +14548,15 @@ ac_safe=`echo "ncurses/term.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ncurses/term.h""... $ac_c" 1>&6 -echo "configure:14554: checking for ncurses/term.h" >&5 +echo "configure:14552: 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:14562: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:14560: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -14588,15 +14586,15 @@ 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:14592: checking for ncurses/curses.h" >&5 +echo "configure:14590: 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:14600: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:14598: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -14631,12 +14629,12 @@ for lib in curses termlib termcap; do echo $ac_n "checking for tgetent in -l$lib""... $ac_c" 1>&6 -echo "configure:14635: checking for tgetent in -l$lib" >&5 +echo "configure:14633: 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${ac_exeext}; then +if { (eval echo configure:14649: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -14678,12 +14676,12 @@ else echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6 -echo "configure:14682: checking for tgetent in -lcurses" >&5 +echo "configure:14680: 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${ac_exeext}; then +if { (eval echo configure:14696: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -14712,12 +14710,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6 -echo "configure:14716: checking for tgetent in -ltermcap" >&5 +echo "configure:14714: 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${ac_exeext}; then +if { (eval echo configure:14730: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -14776,15 +14774,15 @@ 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:14780: checking for gpm.h" >&5 +echo "configure:14778: 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:14788: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:14786: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -14807,12 +14805,12 @@ } test -z "$with_gpm" && { echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6 -echo "configure:14811: checking for Gpm_Open in -lgpm" >&5 +echo "configure:14809: 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${ac_exeext}; then +if { (eval echo configure:14825: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -14866,20 +14864,20 @@ test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \ != "no no no" && echo "checking for database support" 1>&6 -echo "configure:14870: checking for database support" >&5 +echo "configure:14868: checking for database support" >&5 if test "$with_database_gdbm $with_database_dbm" != "no no"; then ac_safe=`echo "ndbm.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ndbm.h""... $ac_c" 1>&6 -echo "configure:14875: checking for ndbm.h" >&5 +echo "configure:14873: 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:14883: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:14881: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -14909,12 +14907,12 @@ if test "$with_database_gdbm" != "no"; then echo $ac_n "checking for dbm_open in -lgdbm""... $ac_c" 1>&6 -echo "configure:14913: checking for dbm_open in -lgdbm" >&5 +echo "configure:14911: 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${ac_exeext}; then +if { (eval echo configure:14927: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -14953,10 +14951,10 @@ if test "$with_database_dbm" != "no"; then echo $ac_n "checking for dbm_open""... $ac_c" 1>&6 -echo "configure:14957: checking for dbm_open" >&5 +echo "configure:14955: checking for dbm_open" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14981: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_dbm_open=yes" else @@ -14998,12 +14996,12 @@ echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6 -echo "configure:15002: checking for dbm_open in -ldbm" >&5 +echo "configure:15000: 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${ac_exeext}; then +if { (eval echo configure:15016: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -15055,10 +15053,10 @@ if test "$with_database_berkdb" != "no"; then echo $ac_n "checking for Berkeley db.h""... $ac_c" 1>&6 -echo "configure:15059: checking for Berkeley db.h" >&5 +echo "configure:15057: checking for Berkeley db.h" >&5 for header in "db/db.h" "db.h"; do cat > conftest.$ac_ext < @@ -15080,7 +15078,7 @@ ; return 0; } EOF -if { (eval echo configure:15084: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:15082: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* db_h_file="$header"; break else @@ -15096,9 +15094,9 @@ if test "$with_database_berkdb" != "no"; then echo $ac_n "checking for Berkeley DB version""... $ac_c" 1>&6 -echo "configure:15100: checking for Berkeley DB version" >&5 +echo "configure:15098: checking for Berkeley DB version" >&5 cat > conftest.$ac_ext < #if DB_VERSION_MAJOR > 1 @@ -15110,7 +15108,7 @@ egrep "yes" >/dev/null 2>&1; then rm -rf conftest* cat > conftest.$ac_ext < #if DB_VERSION_MAJOR > 2 @@ -15122,7 +15120,7 @@ egrep "yes" >/dev/null 2>&1; then rm -rf conftest* cat > conftest.$ac_ext < #if DB_VERSION_MAJOR > 3 @@ -15156,10 +15154,10 @@ rm -f conftest* echo $ac_n "checking for $dbfunc""... $ac_c" 1>&6 -echo "configure:15160: checking for $dbfunc" >&5 +echo "configure:15158: checking for $dbfunc" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15184: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$dbfunc=yes" else @@ -15201,12 +15199,12 @@ echo $ac_n "checking for $dbfunc in -ldb""... $ac_c" 1>&6 -echo "configure:15205: checking for $dbfunc in -ldb" >&5 +echo "configure:15203: 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${ac_exeext}; then +if { (eval echo configure:15219: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -15251,12 +15249,12 @@ echo "configure: warning: "db_create is really $dbfunc"" 1>&2 echo $ac_n "checking for $dbfunc in -ldb""... $ac_c" 1>&6 -echo "configure:15255: checking for $dbfunc in -ldb" >&5 +echo "configure:15253: 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${ac_exeext}; then +if { (eval echo configure:15269: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -15326,12 +15324,12 @@ if test "$with_socks" = "yes"; then echo $ac_n "checking for SOCKSinit in -lsocks""... $ac_c" 1>&6 -echo "configure:15330: checking for SOCKSinit in -lsocks" >&5 +echo "configure:15328: 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${ac_exeext}; then +if { (eval echo configure:15344: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -15396,11 +15394,11 @@ fi cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:15402: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then : else @@ -16235,7 +16233,7 @@ esac ac_output_files="$ac_output_files $file" && if test "$extra_verbose" = "yes"; then echo " Appending \"$file\" to \$ac_output_files"; fi done -ac_output_files="$ac_output_files src/paths.h lib-src/config.values" +ac_output_files="$ac_output_files src/paths.h src/xemacs.def.in lib-src/config.values" test "$with_modules" = "yes" && ac_output_files="$ac_output_files lib-src/ellcc.h" && if test "$extra_verbose" = "yes"; then echo " Appending \"lib-src/ellcc.h\" to \$ac_output_files"; fi trap '' 1 2 15 @@ -16348,6 +16346,7 @@ s%@install_pp@%$install_pp%g s%@libs_xauth@%$libs_xauth%g s%@dnd_objs@%$dnd_objs%g +s%@LIBSTDCPP@%$LIBSTDCPP%g s%@dll_ld@%$dll_ld%g s%@dll_cflags@%$dll_cflags%g s%@dll_ldflags@%$dll_ldflags%g @@ -16696,6 +16695,23 @@ chmod 444 Makefile.new mv -f Makefile.new GNUmakefile + if test -e "xemacs.def.in"; then + cp -f xemacs.def.in junk.c + echo creating $dir/xemacs.def +$CPP -I. -I${top_srcdir}/src junk.c \ + | sed -e 's/^\#.*//' \ + -e 's/^[ ][ ]*$//'\ + -e 's/^ / /' \ + -e '/^[ ]*$/d' \ + -e '/^\"/ { + s/\\\([\"]\)/\1/g + s/^[ ]*\"// + s/\"[ ]*$// +}' > Makefile.new + chmod 444 Makefile.new + mv -f Makefile.new xemacs.def + + fi rm -f junk.c ) done Index: configure.in =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/configure.in,v retrieving revision 1.202 retrieving revision 1.204 diff -u -r1.202 -r1.204 --- configure.in 20 May 2003 18:57:50 -0000 1.202 +++ configure.in 28 Aug 2003 15:45:30 -0000 1.204 @@ -3184,6 +3184,16 @@ test -n "$xemacs_compiler" && XEMACS_CC="$xemacs_compiler" : ${XEMACS_CC:="$CC"} +dnl If g++ is used, we have to explicitly link modules with -lstdc++ on Cygwin +dnl to avoid undefined symbol errors. This will never hurt, so just do it on +dnl all platforms in case others have the same brain damage. +if test "$xemacs_compiler" = "g++"; then + LIBSTDCPP=-lstdc++ +else + LIBSTDCPP= +fi +AC_SUBST(LIBSTDCPP) + dnl Autodetect dll support dnl This must come before the detection code for anything that is in a module if test "$with_modules" != "no"; then @@ -5343,7 +5353,7 @@ esac XE_APPEND($file, ac_output_files) done -ac_output_files="$ac_output_files src/paths.h lib-src/config.values" +ac_output_files="$ac_output_files src/paths.h src/xemacs.def.in lib-src/config.values" test "$with_modules" = "yes" && XE_APPEND(lib-src/ellcc.h, ac_output_files) AC_OUTPUT($ac_output_files, @@ -5395,6 +5405,10 @@ CPP_MAKEFILE(,Makefile) CPP_MAKEFILE(-DUSE_GNU_MAKE,GNUmakefile) + if test -e "xemacs.def.in"; then + cp -f xemacs.def.in junk.c + CPP_MAKEFILE(,xemacs.def) + fi changequote([,])dnl rm -f junk.c ) Index: configure.usage =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/configure.usage,v retrieving revision 1.32 retrieving revision 1.34 diff -u -r1.32 -r1.34 --- configure.usage 7 May 2003 08:34:16 -0000 1.32 +++ configure.usage 12 Aug 2003 06:36:38 -0000 1.34 @@ -39,7 +39,7 @@ --cflags=FLAGS Compiler flags (such as -O); setting this overrides all default compiler flags except those that control warnings. ---cflags_warning=FLAGS Override compiler flags used to control warnings. +--cflags-warning=FLAGS Override compiler flags used to control warnings. Normally, don't set this, as XEmacs already turns on the maximum safe warning level. --cpp=PROG C preprocessor to use (e.g. /usr/ccs/lib/cpp or cc -E) @@ -129,19 +129,20 @@ --with-toolbars=no Don't compile with any toolbar support. --with-wmcommand=no Compile without realized leader window which will keep the WM_COMMAND property. ---with-athena=TYPE Use TYPE Athena widgets - (xaw, 3d, next, 95, or xpm) +--with-athena=TYPE Use TYPE Athena widgets (xaw, 3d, next, 95, or xpm). --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, or no). + Lucid menubars are the default. +--with-scrollbars=TYPE Use TYPE scrollbars (lucid, motif, athena, or no). + Lucid scrollbars are the default. --with-dialogs=TYPE Use TYPE dialog boxes (lucid, motif, athena, or no). - Lucid menubars and scrollbars are the default. - Motif dialog boxes will be used if Motif can be found. ---with-widgets=TYPE Use TYPE widgets (lucid, motif, athena, or no). + There are no true Lucid dialogs; Motif dialogs will be + used if Motif can be found, else Athena is used. +--with-widgets=TYPE Use TYPE native widgets (lucid, motif, athena, or no). Other widget types are currently unsupported. - Motif widgets will be used if Motif can be found. + There are no true Lucid widgets; Motif widgets will be + used if Motif can be found, else Athena is used. --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, Index: version.sh =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/version.sh,v retrieving revision 1.454 retrieving revision 1.550 diff -u -r1.454 -r1.550 --- version.sh 1 Jun 2003 05:10:14 -0000 1.454 +++ version.sh 4 Sep 2003 00:05:04 -0000 1.550 @@ -2,8 +2,8 @@ emacs_is_beta=t emacs_major_version=21 emacs_minor_version=5 -emacs_beta_version=14 -xemacs_codename="cassava" +emacs_beta_version=15 +xemacs_codename="celery" xemacs_extra_name= emacs_kit_version= infodock_major_version=4 Index: etc/ChangeLog =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/etc/ChangeLog,v retrieving revision 1.26 retrieving revision 1.32 diff -u -r1.26 -r1.32 --- etc/ChangeLog 1 Jun 2003 05:10:17 -0000 1.26 +++ etc/ChangeLog 4 Sep 2003 00:05:06 -0000 1.32 @@ -1,3 +1,30 @@ +2003-09-03 Steve Youngs + + * XEmacs 21.5.15 "celery" is released. + +2003-08-28 Steve Youngs + + * PACKAGES: Update. + +2003-08-04 Norbert Koch + Stephen J. Turnbull + + * PACKAGES: Sync with package-tree contents. Style conformance. + +2003-07-03 Stephen J. Turnbull + + * etc/README.HYPERBOLE: + * etc/README.OO-BROWSER: + Update. + +2003-05-23 Stephen J. Turnbull + + * etc/sample.Xresources (menubar and popup fonts): Use X Font Sets. + +2003-06-29 Norbert Koch + + * package-index.LATEST.gpg: Official package release. + 2003-06-01 Steve Youngs * XEmacs 21.5.14 "cassava" is released. Index: etc/PACKAGES =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/etc/PACKAGES,v retrieving revision 1.9 retrieving revision 1.11 diff -u -r1.9 -r1.11 --- etc/PACKAGES 15 May 2001 06:48:56 -0000 1.9 +++ etc/PACKAGES 27 Aug 2003 18:06:56 -0000 1.11 @@ -9,7 +9,7 @@ Description of available packages ================================= -Up-to-date as of May 15, 2001. +Up-to-date as of Jul 31, 2003. ** Normal Packages ================== @@ -28,10 +28,10 @@ Basic TeX/LaTeX support. *** bbdb -The Big Brother Data Base +The Big Brother Data Base: a rolodex-like database program. *** build -Build XEmacs using custom widgets. +Build XEmacs from within (UNIX, Windows). *** c-support Basic single-file add-ons for editing C code. @@ -43,10 +43,17 @@ Calendar and diary support. *** cc-mode -C, C++ and Java language support. +C, C++, Objective-C, Java, CORBA IDL, Pike and AWK language support. + +*** clearcase +New Clearcase Version Control for XEmacs (UNIX, Windows). + +*** clearcase +Support for the Clearcase version control system. *** cookie -Spook and Yow (Zippy quotes). +"Fortune cookie"-style messages. Includes Spook (suspicious phrases) +and Yow (Zippy quotes). *** crisp Crisp/Brief emulation. @@ -54,19 +61,30 @@ *** debug GUD, gdb, dbx debugging support. +*** dictionary +Interface to RFC2229 dictionary servers. + *** dired The DIRectory EDitor is for manipulating, and running commands on files in a directory. +*** docbookide +DocBook editing support. + +*** ecb +Emacs source code browser. + +*** ecrypto +Crypto functionality in Emacs Lisp. + *** edebug -A Lisp debugger. +An Emacs Lisp debugger. *** ediff -Interface over patch. +Interface over GNU patch. *** edit-utils -Single file lisp packages for various XEmacs goodies. Load this and -weed out the junk you don't want. +Miscellaneous editor extensions, you probably need this. *** edt DEC EDIT/EDT emulation. @@ -74,24 +92,23 @@ *** efs Treat files on remote systems the same as local files. -*** eicq -ICQ Client developed and tested on Linux x86; -only supported on that platform - *** eieio -Enhanced Implementation of Emacs Interpreted Objects +Enhanced Implementation of Emacs Interpreted Objects. *** elib Portable Emacs Lisp utilities library. *** emerge -Another interface over patch. +Another interface over GNU patch. *** eshell Command shell implemented entirely in Emacs Lisp. +*** ess +ESS: Emacs Speaks Statistics. + *** eterm -Terminal emulator. +Terminal emulation. *** eudc Emacs Unified Directory Client (LDAP, PH). @@ -100,26 +117,44 @@ Footnoting in mail message editing modes. *** forms -Forms editing support (obsolete, use the built-in Widget instead). +Forms editing support (obsolete, use Widget instead). + +*** fortran-modes +Fortran support. + +*** fortran-modes +Fortran language support. *** frame-icon -Provide a WM icon based on major mode. +Set up mode-specific icons for each frame under XEmacs. *** fsf-compat -FSF Emacs compatibility files. +GNU Emacs compatibility files. *** games Tetris, Sokoban, and Snake. +*** general-docs +General documentation. Presently, empty. + *** gnats XEmacs bug reports. *** gnus The Gnus Newsreader and Mailreader. +*** haskell-mode +Haskell editing support. + *** hm--html-menus HTML editing. +*** hyperbole +Hyperbole: The Everyday Info Manager. + +*** ibuffer +Advanced replacement for buffer-menu. + *** idlwave Editing and Shell mode for the Interactive Data Language. @@ -127,13 +162,16 @@ Enhanced front-end for Grep. *** ilisp -Front-end for Inferior Lisp. +Front-end for interacting with Inferior Lisp (external lisps). *** ispell -Spell-checking with ispell. +Spell-checking with GNU ispell. *** jde -Java language and development support. +Integrated Development Environment for Java. + +*** liece +IRC (Internet Relay Chat) client for Emacs. *** mail-lib Fundamental lisp files for providing email support. @@ -142,20 +180,31 @@ Support for messaging encryption with PGP. *** mew -Messaging in an Emacs World. +Messaging in an Emacs World; a MIME-based email program. *** mh-e Front end support for MH. *** mine -Minehunt. +Elisp implementation of the game 'Minehunt'. *** misc-games Other amusements and diversions. +*** mmm-mode +Support for Multiple Major Modes within a single buffer. + *** net-utils -Miscellaneous Networking Utilities. This is a single-file package and -files may be deleted at will. +Miscellaneous Networking Utilities. + +*** ocaml +Objective Caml editing support. + +*** oo-browser +OO-Browser: The Multi-Language Object-Oriented Code Browser. + +*** ocaml +Objective Caml editing support. *** os-utils Miscellaneous single-file O/S utilities, for printing, archiving, @@ -170,26 +219,46 @@ *** pcomplete Provides programmatic completion. +*** perl-modes +Perl support. + +*** pgg +Emacs interface to various PGP implementations. + *** prog-modes -Miscellaneous single-file lisp files for various programming languages. +Support for various programming languages. -*** ps-print-nomule -Old, but no-Mule safe ps-print. +*** ps-print +Printing functions and utilities. *** psgml Validated HTML/SGML editing. +*** psgml-dtds +A collection of DTDs for psgml. Note that this package is deprecated +and will be removed in the future, most likely Q2/2003. Instead of using +this, you should install needed DTDs yourself. + +*** python-modes +Python language support. + *** reftex Emacs support for LaTeX cross-references, citations. *** rmail An obsolete Emacs mailer. If you do not already use it don't start. +*** ruby-modes +Ruby support. + +*** sasl +Simple Authentication and Security Layer (SASL) library. + *** scheme Front-end support for Inferior Scheme. *** semantic -Semantic bovinator. +Semantic bovinator (Yacc/Lex for XEmacs). Includes Senator. *** sgml SGML/Linuxdoc-SGML editing. @@ -197,9 +266,15 @@ *** sh-script Support for editing shell scripts. +*** sieve +Manage Sieve email filtering scripts. + *** slider User interface tool. +*** sml-mode +SML editing support. + *** sounds-au XEmacs Sun sound files. @@ -213,22 +288,22 @@ Mouse enhancement utility. *** supercite -An Emacs citation tool. Useful with all Emacs Mailers and Newsreaders. +An Emacs citation tool for News & Mail messages. *** texinfo XEmacs TeXinfo support. *** text-modes -Various single file lisp packages for editing text files. +Miscellaneous support for editing text files. *** textools -Single-file TeX support. +Miscellaneous TeX support. *** time Display time & date on the modeline. *** tm -Emacs MIME support. Not needed for Gnus >= 5.8.0 +Emacs MIME support. Not needed for gnus >= 5.8.0. *** tooltalk Support for building with Tooltalk. @@ -236,12 +311,15 @@ *** tpu DEC EDIT/TPU support. +*** tramp +Remote shell-based file editing. This is similar to EFS or Ange-FTP, +but works with rsh/ssh and rcp/scp. + *** vc Version Control for Free systems. *** vc-cc -Version Control for ClearCase. This package will shortly be -replaced with clearcase.el +Version Control for ClearCase (UnFree) systems. *** vhdl Support for VHDL. @@ -252,22 +330,26 @@ *** viper VI emulation support. - *** vm An Emacs mailer. *** w3 A Web browser. +*** x-symbol +Semi WYSIWYG for LaTeX, HTML, etc, using additional fonts. + *** xemacs-base -Fundamental XEmacs support. Install this unless you wish a totally -naked XEmacs. +Fundamental XEmacs support, you almost certainly need this. *** xemacs-devel XEmacs Lisp developer support. This package contains utilities for supporting Lisp development. It is a single-file package so it may be tailored. +*** xslide +XSL editing support. + *** xslt-process A minor mode for (X)Emacs which allows running an XSLT processor on a buffer. @@ -283,24 +365,37 @@ support. *** edict -Lisp Interface to EDICT, Kanji Dictionary. +MULE: Lisp Interface to EDICT, Kanji Dictionary. *** egg-its -Wnn (4.2 and 6) support. SJ3 support. Must be installed prior to -XEmacs build. +MULE: Wnn (4.2 and 6) support. SJ3 support. + +*** latin-unity +MULE: find single ISO 8859 character set to encode a buffer. + +*** latin-unity +Unify character sets in a buffer. When characters belong to disjoint +character sets, this attempts to translate the characters so +that they belong to one character set. If the buffer coding system is +not sufficient, this suggests different coding systems. *** leim -Quail. Used for everything other than English and Japanese. +MULE: Quail. All non-English and non-Japanese language support. *** locale -Used for localized menubars (French and Japanese) and localized splash -screens (Japanese). +MULE: Localized menubars and localized splash screens. *** lookup -Dictionary support +Dictionary support. (This isn't an English dictionary program) *** mule-base -Basic Mule support. Must be installed prior to building with Mule. +MULE: Basic Mule support, required for building with Mule. + +*** mule-ucs +MULE: Extended coding systems (including Unicode) for XEmacs. + +*** mule-ucs +Extended coding systems (including Unicode) for XEmacs. *** skk Another Japanese Language Input Method. Can be used without a Index: etc/README.HYPERBOLE =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/etc/README.HYPERBOLE,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- etc/README.HYPERBOLE 12 Apr 2001 18:20:48 -0000 1.2 +++ etc/README.HYPERBOLE 3 Jul 2003 14:05:26 -0000 1.3 @@ -1,6 +1,12 @@ Hyperbole is a suite of tools for enhancing productivity. -The latest working version of this package with major enhancements -is available together with professional support exclusively from their -developer, BeOpen Inc. See http://www.beopen.com for product -and service details. +Hyperbole has been packaged as of 2003-07-01, and is available in an +XEmacs package archive mirror near you. If this file has not been +updated recently, please ask about status on xemacs-beta@xemacs.org, +and remind us to update this file. + +The most recent upstream version of this package is available from +SourceForge, http://projects.sourceforge.net/hyperbole/. There +apparently is no longer any commercial support, but you might query +the owner of the SourceForge project (at the time of this writing, Bob +Weiner ). Index: etc/README.OO-BROWSER =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/etc/README.OO-BROWSER,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- etc/README.OO-BROWSER 12 Apr 2001 18:20:48 -0000 1.2 +++ etc/README.OO-BROWSER 3 Jul 2003 14:05:26 -0000 1.3 @@ -1,6 +1,12 @@ The OO-Browser is a tool for examining object oriented code. -The latest working version of this package with major enhancements -is available together with professional support exclusively from their -developer, BeOpen Inc. See http://www.beopen.com for product -and service details. +The OO-Browser is a candidate for XEmacs packaging as of 2003-07-01, +and may be available in an XEmacs package archive mirror near you. If +this file has not been updated recently, please ask about status on +xemacs-beta@xemacs.org, and remind us to update this file. + +The most recent upstream version of this package is available from +SourceForge, http://projects.sourceforge.net/oo-browser/. There +apparently is no longer any commercial support, but you might query +the owner of the SourceForge project (at the time of this writing, Bob +Weiner ). Index: etc/package-index.LATEST.gpg =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/etc/package-index.LATEST.gpg,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- etc/package-index.LATEST.gpg 28 May 2003 05:23:23 -0000 1.9 +++ etc/package-index.LATEST.gpg 29 Jun 2003 13:11:16 -0000 1.10 @@ -6,20 +6,20 @@ (package-get-update-base-entry (quote (ecb (standards-version 1.1 - version "1.06" - author-version "1.93" - date "2002-12-06" - build-date "2002-12-06" + version "1.08" + author-version "1.94" + date "2003-06-27" + build-date "2003-06-27" maintainer "Klaus Berndl " distribution xemacs priority low category "standard" dump nil description "Emacs source code browser." - filename "ecb-1.06-pkg.tar.gz" - md5sum "dcb59b7b57b89bfc151bd03c7839f2b6" - size 438192 - provides (ecb-buffertab ecb-compilation ecb-cycle ecb ecb-eshell ecb-face ecb-help ecb-layout ecb-mode-line ecb-navigate ecb-speedbar ecb-upgrade ecb-util tree-buffer) + filename "ecb-1.08-pkg.tar.gz" + md5sum "840dabab1055bd61a3c2ecd5d1b5a7a0" + size 463303 + provides (ecb-buffertab ecb-compilation ecb-create-layout ecb-cycle ecb ecb-eshell ecb-examples ecb-face ecb-help ecb-layout ecb-layout-defs ecb-mode-line ecb-navigate ecb-speedbar ecb-tod ecb-autogen ecb-jde ecb-upgrade ecb-util silentcomp tree-buffer) requires (xemacs-base semantic eieio fsf-compat edit-utils jde mail-lib eshell ediff xemacs-devel speedbar) type regular )) @@ -182,19 +182,19 @@ (package-get-update-base-entry (quote (ecrypto (standards-version 1.1 - version "0.12" + version "0.13" author-version "2.0" - date "2002-09-25" - build-date "2002-09-25" + date "2003-06-22" + build-date "2003-06-22" maintainer "Simon Josefsson " distribution xemacs priority low category "standard" dump nil description "Crypto functionality in Emacs Lisp." - filename "ecrypto-0.12-pkg.tar.gz" - md5sum "89d677c85349ff2d16f8a9ecb41eca61" - size 69163 + filename "ecrypto-0.13-pkg.tar.gz" + md5sum "b05bf91a006f1778c6199ce263548e7e" + size 68668 provides (ascii-armor blowfish des hex-util md4 md5-dl md5-el md5 paranoid rander rc16 rijndael sha1-dl sha1-el sha1) requires () type regular @@ -226,19 +226,19 @@ (package-get-update-base-entry (quote (sasl (standards-version 1.1 - version "1.12" + version "1.13" author-version "1.14.4" - date "2003-03-30" - build-date "2003-05-18" + date "2003-05-28" + build-date "2003-05-28" maintainer "Simon Josefsson " distribution xemacs priority low category "standard" dump nil description "Simple Authentication and Security Layer (SASL) library." - filename "sasl-1.12-pkg.tar.gz" - md5sum "b583cc11a62f56ec79490274e3deb3ec" - size 26974 + filename "sasl-1.13-pkg.tar.gz" + md5sum "d6121fb31ab47213f97862dc0d0ec7a1" + size 27008 provides (hmac-def hmac-md5 hmac-sha1 ntlm sasl sasl-cram sasl-digest sasl-ntlm sasl-plain sasl-login sasl-anonymous) requires (ecrypto) type regular @@ -270,19 +270,19 @@ (package-get-update-base-entry (quote (ess (standards-version 1.1 - version "1.03" + version "1.04" author-version "5.1.21" - date "2003-01-03" - build-date "2003-01-03" + date "2003-06-11" + build-date "2003-06-11" maintainer "A.J. Rossini " distribution xemacs priority medium category "standard" dump nil description "ESS: Emacs Speaks Statistics." - filename "ess-1.03-pkg.tar.gz" - md5sum "933ffd4650b5f2815c8683f9bb2d5a27" - size 470257 + filename "ess-1.04-pkg.tar.gz" + md5sum "ea46dcb7f35e56d9426c1749ee6c3fb5" + size 446476 provides (ess-batch ess-comp ess-cust ess-dump ess-emcs ess-font-lock ess-help ess-inf ess-iw32 ess-latex-mode ess-menu ess-mode ess-mous ess-noweb ess-site ess-sysdp ess-utils ess-vars ess essa-r essa-sas essd-arc essd-els essd-r essd-omg essd-r essd-s3 essd-s4 essd-sas essd-sp3 essd-sp4 essd-sp5 essd-sp6 essd-sta essd-vst essd-xls essddr essdsp6w essl-bug essl-lsp essl-omg essl-py essl-s essl-sas essl-sta make-regexp mouseme msdos noweb-font-lock-mode noweb-mode) requires (xemacs-base mail-lib fsf-compat edit-utils speedbar sh-script eterm) type regular @@ -314,19 +314,19 @@ (package-get-update-base-entry (quote (xslide (standards-version 1.1 - version "1.06" - author-version "0.2" - date "2003-01-13" - build-date "2003-01-13" + version "1.07" + author-version "0.2.1" + date "2003-06-28" + build-date "2003-06-28" maintainer "XEmacs Development Team " distribution xemacs priority medium category "standard" dump nil description "XSL editing support." - filename "xslide-1.06-pkg.tar.gz" - md5sum "138dedbfed8cd72785c7c1cd9aa5e7f3" - size 36027 + filename "xslide-1.07-pkg.tar.gz" + md5sum "1e07a704f0aba2774feb20ee36065c36" + size 37872 provides (xslide-abbrev xslide-data xslide-font xslide-process xslide) requires (ispell mail-lib xemacs-base) type regular @@ -424,19 +424,19 @@ (package-get-update-base-entry (quote (xemacs-base (standards-version 1.1 - version "1.77" + version "1.78" author-version "21.4" - date "2003-04-29" - build-date "2003-04-29" + date "2003-06-11" + build-date "2003-06-11" maintainer "XEmacs Development Team " distribution xemacs priority high category "standard" dump nil description "Fundamental XEmacs support, you almost certainly need this." - filename "xemacs-base-1.77-pkg.tar.gz" - md5sum "b25c2c30ba719d7152ab24210fa27045" - size 469663 + filename "xemacs-base-1.78-pkg.tar.gz" + md5sum "2f49dd65c93ced29f2a9d97bf3c4c9b3" + size 469861 provides (add-log advice-preload 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 passwd pp regexp-opt regi ring shell skeleton sort thing time-stamp timezone tq xbm-button xpm-button) requires () type regular @@ -446,20 +446,21 @@ (package-get-update-base-entry (quote (tramp (standards-version 1.1 - version "1.12" - author-version "2.0.22" - date "2003-01-03" - build-date "2003-01-03" - maintainer "Kai Großjohann " + version "1.15" + author-version "2.0.35" + date "2003-06-20" + build-date "2003-06-20" + maintainer "Kai Großjohann " distribution xemacs priority low category "standard" dump nil description "Remote shell-based file editing." - filename "tramp-1.12-pkg.tar.gz" - md5sum "35f6508e3c4598bc9f8901ab530f3af0" - size 214545 - provides (tramp tramp-util tramp-vc trampcache) + filename "tramp-1.15-pkg.tar.gz" + md5sum "239ea97dafee64640e7c10082dd131d9" + size 247697 + provides (tramp tramp-efs tramp-ftp tramp-smb tramp-util tramp-uu + tramp-vc trampcache) requires (tramp xemacs-base vc fsf-compat efs dired mail-lib gnus ediff) type regular )) @@ -468,19 +469,19 @@ (package-get-update-base-entry (quote (text-modes (standards-version 1.1 - version "1.60" + version "1.61" author-version "21.4" - date "2003-01-26" - build-date "2003-01-26" + date "2003-06-08" + build-date "2003-06-08" maintainer "XEmacs Development Team " distribution xemacs priority high category "standard" dump nil description "Miscellaneous support for editing text files." - filename "text-modes-1.60-pkg.tar.gz" - md5sum "f8043ec7562d5c68bc252c76ed10b63d" - size 358675 + filename "text-modes-1.61-pkg.tar.gz" + md5sum "d558a6d3137209ac2dac8dfb9259129a" + size 359003 provides (ansi-color autoinsert crontab-edit filladapt flyspell folding fold-isearch hexl htmlize image-mode iso-acc iso-ascii iso-cvt iso-insert iso-swed rtf-support swedish tabify whitespace-mode winmgr-mode xpm-mode xrdb-mode apache-mode po-mode po-compat css-mode) requires (ispell fsf-compat xemacs-base) type regular @@ -578,19 +579,19 @@ (package-get-update-base-entry (quote (edit-utils (standards-version 1.1 - version "2.00" + version "2.02" author-version "21.4" - date "2003-01-13" - build-date "2003-01-13" + date "2003-06-20" + build-date "2003-06-20" maintainer "XEmacs Development Team " distribution xemacs priority high category "standard" dump nil description "Miscellaneous editor extensions, you probably need this." - filename "edit-utils-2.00-pkg.tar.gz" - md5sum "c0f7848cb86f2b391b8049f1bb87ed7e" - size 719489 + filename "edit-utils-2.02-pkg.tar.gz" + md5sum "9155b838e5c09dd07dcefc926f5433e4" + size 720244 provides (abbrevlist after-save-commands 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 makesum man mic-paren paren mode-motion+ outl-mouse outln-18 page-ext blink-paren paren permanent-buffers popper power-macros recent-files redo reportmail resume rsz-minibuf saveconf savehist saveplace scroll-in-place setnu shell-font tempo toolbar-utils tree-menu uniquify vertical-mode where-was-i-db winring) requires (xemacs-base xemacs-devel fsf-compat dired mail-lib) type single @@ -710,19 +711,19 @@ (package-get-update-base-entry (quote (dictionary (standards-version 1.1 - version "1.11" + version "1.12" author-version "1.8" - date "2002-05-20" - build-date "2002-05-20" + date "2003-06-22" + build-date "2003-06-22" maintainer "Torsten Hilbrich " distribution xemacs priority low category "standard" dump nil description "Interface to RFC2229 dictionary servers." - filename "dictionary-1.11-pkg.tar.gz" - md5sum "6bead861baac049fb1807dd2e03a1475" - size 39886 + filename "dictionary-1.12-pkg.tar.gz" + md5sum "717517bbad4e241f18941fd6c289b868" + size 39658 provides (dictionary connection link) requires (xemacs-base) type regular @@ -1084,19 +1085,19 @@ (package-get-update-base-entry (quote (hm--html-menus (standards-version 1.1 - version "1.20" + version "1.21" author-version "5.9" - date "2002-03-25" - build-date "2002-03-25" + date "2003-06-28" + build-date "2003-06-28" maintainer "XEmacs Development Team " distribution xemacs priority low category "standard" dump nil description "HTML editing." - filename "hm--html-menus-1.20-pkg.tar.gz" - md5sum "68e8c2a1a7011e184a42c971be52cbec" - size 179485 + filename "hm--html-menus-1.21-pkg.tar.gz" + md5sum "77d84c92c6ce3109dbec828ac24bb25d" + size 179706 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 internal-drag-and-drop tmpl-minor-mode) requires (dired xemacs-base) type regular @@ -1282,19 +1283,19 @@ (package-get-update-base-entry (quote (os-utils (standards-version 1.1 - version "1.30" + version "1.31" author-version "21.4" - date "2003-01-13" - build-date "2003-01-13" + date "2003-06-01" + build-date "2003-06-01" maintainer "XEmacs Development Team " distribution xemacs priority medium category "standard" dump nil description "Miscellaneous O/S utilities." - filename "os-utils-1.30-pkg.tar.gz" - md5sum "f75e440032bdc0f4e09a52dce7296657" - size 201293 + filename "os-utils-1.31-pkg.tar.gz" + md5sum "ea1a8bcaa8dde3ab5e617197d7f6d587" + size 201059 provides (archive-mode background crypt++ crypt ftelnet inf-lisp jka-compr mchat rlogin ssh tar-mode telnet terminal uncompress) requires (xemacs-base) type single @@ -1546,19 +1547,19 @@ (package-get-update-base-entry (quote (vhdl (standards-version 1.1 - version "1.16" + version "1.17" author-version "3.31.20" - date "2003-01-03" - build-date "2003-01-03" + date "2003-06-08" + build-date "2003-06-08" maintainer "XEmacs Development Team " distribution xemacs priority low category "standard" dump nil description "Support for VHDL." - filename "vhdl-1.16-pkg.tar.gz" - md5sum "7fa9eff33c544529130a3c897faaf5e9" - size 272817 + filename "vhdl-1.17-pkg.tar.gz" + md5sum "d228542a1db6f0f9552f3c239ea6723b" + size 273038 provides (vhdl-mode) requires (xemacs-base edit-utils c-support speedbar ps-print os-utils) type regular @@ -1568,19 +1569,19 @@ (package-get-update-base-entry (quote (x-symbol (standards-version 1.1 - version "1.04" - author-version "4.5" - date "2003-04-22" - build-date "2003-04-22" + version "1.05" + author-version "4.5.1" + date "2003-06-01" + build-date "2003-06-01" maintainer "Steve Youngs " distribution xemacs priority high category "standard" dump nil description "Semi WYSIWYG for LaTeX, HTML, etc, using additional fonts." - filename "x-symbol-1.04-pkg.tar.gz" - md5sum "eafad9c20b1327b05e0d5987be665e85" - size 687520 + filename "x-symbol-1.05-pkg.tar.gz" + md5sum "cac33616d6c1b40258d7e49cf161c5f6" + size 682785 provides (x-symbol-bib x-symbol-hooks x-symbol-image x-symbol-macs x-symbol-mule x-symbol-nomule x-symbol-sgml x-symbol-tex x-symbol-texi x-symbol-vars x-symbol-xmacs x-symbol) requires (x-symbol xemacs-base auctex mail-lib) type regular @@ -1678,19 +1679,19 @@ (package-get-update-base-entry (quote (prog-modes (standards-version 1.1 - version "1.73" + version "1.79" author-version "21.4" - date "2003-04-26" - build-date "2003-04-26" + date "2003-06-20" + build-date "2003-06-20" maintainer "XEmacs Development Team " distribution xemacs priority medium category "standard" dump nil description "Support for various programming languages." - filename "prog-modes-1.73-pkg.tar.gz" - md5sum "12a9d668f797d1bcf2acbded8ad5d95d" - size 655974 + filename "prog-modes-1.79-pkg.tar.gz" + md5sum "6f066a6b89b7f0bbdab99a8bade933bf" + size 657717 provides (autoconf-mode awk-mode c-mode cvs diff-mode eiffel-mode icon javascript-mode ksh-mode m4-mode makefile mode-compile mode-compile-kill modula2 p4 php-mode postscript rexx-mode rpm-spec-mode simula-mode sql tcl teco verilog-mode) requires (mail-lib xemacs-devel xemacs-base cc-mode fsf-compat edit-utils ediff emerge efs vc speedbar dired ilisp sh-script) type regular @@ -1920,19 +1921,19 @@ (package-get-update-base-entry (quote (games (standards-version 1.1 - version "1.13" + version "1.14" author-version "1.04" - date "2000-03-23" - build-date "2001-01-15" + date "2003-06-15" + build-date "2003-06-15" maintainer "Glynn Clements " distribution xemacs priority low - category "games" + category "standard" dump nil description "Tetris, Sokoban, and Snake." - filename "games-1.13-pkg.tar.gz" - md5sum "4138cc59fd6a9316adbb14e7468af593" - size 32438 + filename "games-1.14-pkg.tar.gz" + md5sum "5c00d86c1f959d32bf12da6f78fd1fcf" + size 37132 provides (gamegrid snake tetris sokoban) requires (xemacs-base) type regular @@ -2404,19 +2405,19 @@ (package-get-update-base-entry (quote (edebug (standards-version 1.1 - version "1.17" + version "1.18" author-version "21.4" - date "2003-01-03" - build-date "2003-01-03" + date "2003-06-01" + build-date "2003-06-01" maintainer "XEmacs Development Team " distribution xemacs priority low category "standard" dump nil description "An Emacs Lisp debugger." - filename "edebug-1.17-pkg.tar.gz" - md5sum "3d97bf5db0f345a4cc838bd22fa23935" - size 113981 + filename "edebug-1.18-pkg.tar.gz" + md5sum "ea33ebf474676aff1a782fa9abc0b958" + size 114099 provides (edebug cl-read cust-print eval-reg cl-specs) requires (xemacs-base) type regular @@ -2514,9 +2515,8 @@ ;; Package Index file ends here -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (FreeBSD) -Comment: The XEmacs Development Team -iD8DBQE+yF5fgu3ywdHdhM0RArZ1AKCVsFgWDjkYse/jn3DHseo6E+1uZgCeIwSb -RKeoQNFGQ4zB69j042VVNig= -=oQus +iD8DBQE+/T5cgu3ywdHdhM0RAlzOAKDgkuTftsq9JQCKx246F7uuuh5F3wCdGsNg +ihMPSBRYKHFq+Ad+M4TPkqo= +=ruNY -----END PGP SIGNATURE----- Index: etc/sample.Xresources =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/etc/sample.Xresources,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- etc/sample.Xresources 14 May 2003 10:34:46 -0000 1.1 +++ etc/sample.Xresources 30 Jun 2003 09:12:28 -0000 1.2 @@ -204,8 +204,27 @@ ! Note that the menubar resources do not use the `face' syntax, since they ! are X toolkit widgets and thus outside the domain of XEmacs proper. ! -Emacs*menubar*Font: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-* -Emacs*popup*Font: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-* +! When X Font Sets are enabled with ./configure --with-xfs (eg, for +! multilingual menubars and XIM), some .font resources (those specific to +! the Lucid widget set) are ignored in favor of .fontSet resources. +! Note that you need to use fontSet (or FontSet) in that case even if you +! want to specify one font: +! +! *menubar*FontSet: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-* +! +! There is no harm in having both resources set, except for the confusion +! you suffer. Sorry; that's the price of backward compatibility. +! +*menubar*Font: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-* +*popup*Font: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-* +*menubar*FontSet: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*, \ + -*-*-*-*-*-*-*-120-*-iso10646-1, \ + -*-*-*-*-*-*-*-120-*-jisx0208.1983-0, \ + -*-*-*-*-*-*-*-120-*-jisx0201.1976-0 +*popup*FontSet: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*, \ + -*-*-*-*-*-*-*-120-*-iso10646-1, \ + -*-*-*-*-*-*-*-120-*-jisx0208.1983-0, \ + -*-*-*-*-*-*-*-120-*-jisx0201.1976-0 ! Font in the Motif dialog boxes. ! (Motif uses `fontList' while most other things use `font' - if you don't Index: lib-src/ChangeLog =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/lib-src/ChangeLog,v retrieving revision 1.161 retrieving revision 1.164 diff -u -r1.161 -r1.164 --- lib-src/ChangeLog 1 Jun 2003 05:10:18 -0000 1.161 +++ lib-src/ChangeLog 4 Sep 2003 00:05:07 -0000 1.164 @@ -1,3 +1,16 @@ +2003-09-03 Steve Youngs + + * XEmacs 21.5.15 "celery" is released. + +2003-08-29 Nickolay Pakoulin + + * make-dump-id.c (main): Set "C" linking rule for dump_id + +2003-06-30 Andrew Begel + + * make-docfile.c (write_c_args): Escape newlines that arise in the + C argument list, and comment on synch with Emacs. + 2003-06-01 Steve Youngs * XEmacs 21.5.14 "cassava" is released. Index: lib-src/make-docfile.c =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/lib-src/make-docfile.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- lib-src/make-docfile.c 18 Nov 2002 06:52:24 -0000 1.13 +++ lib-src/make-docfile.c 12 Aug 2003 14:47:07 -0000 1.14 @@ -22,7 +22,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* Synched up with: FSF 21.2. */ +/* Synched up with: FSF 21.3. */ /* The arguments given to this program are all the C and Lisp source files of XEmacs. .elc and .el and .c files are allowed. @@ -563,8 +563,9 @@ as spaces. Collapse adjacent spaces into one. */ if (c == '_') c = '-'; - else if (c == ',' || c == '\n') + else if (c == ',' /* || c == '\n' */) c = ' '; + /* XEmacs change: handle \n below for readability */ #if 0 /* In C code, `default' is a reserved word, so we spell it @@ -588,6 +589,18 @@ { in_ident = 0; just_spaced = 0; + } + /* XEmacs change: if the character is carriage return or linefeed, + escape it for the compiler */ + else if (c == '\n') + { + putc('\\', out); + putc('\n', out); + } + else if (c == '\r') + { + putc('\\', out); + putc('\r', out); } else if (c != ' ' || !just_spaced) { Index: lib-src/make-dump-id.c =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/lib-src/make-dump-id.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- lib-src/make-dump-id.c 12 Apr 2001 18:21:02 -0000 1.2 +++ lib-src/make-dump-id.c 3 Sep 2003 20:43:46 -0000 1.3 @@ -64,6 +64,10 @@ return EXIT_FAILURE; } + /* dump_id is declared as extern "C" in lrecord.h */ + fprintf (f, "#if defined (__cplusplus)\n"); + fprintf (f, "extern \"C\"\n"); + fprintf (f, "#endif /* __cplusplus */\n"); fprintf (f, "unsigned int dump_id = %uU;\n", generate_dump_id ()); if ((fclose (f)) != 0) Index: lisp/ChangeLog =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/ChangeLog,v retrieving revision 1.509 retrieving revision 1.525 diff -u -r1.509 -r1.525 --- lisp/ChangeLog 1 Jun 2003 05:10:19 -0000 1.509 +++ lisp/ChangeLog 4 Sep 2003 00:05:08 -0000 1.525 @@ -1,3 +1,109 @@ +2003-09-03 Steve Youngs + + * XEmacs 21.5.15 "celery" is released. + +2003-08-30 Adrian Aichner + + * cus-edit.el (apropos-customize): New autoloaded alias making it + easier to find customize-apropos. + +2003-08-28 Steve Youngs + + * package-ui.el (pui-set-local-package-get-directory): Remove + arg. + +2003-07-31 René Kyllingstad + + * mwheel.el (mwheel-scroll-amount): + * mwheel.el (mwheel-scroll): + * mwheel.el (mwheel-install): + bind C-mouse-{4,5} to scroll page by page. + +2003-08-03 Mike Sperber + + * files.el (insert-directory): Massage somewhat to be slightly + closer to FSF version. Support "--dired" as argument for GNU ls, + and, if given, create extents with 'dired-file-name property set + to t, similar to what the FSF version does. + +2003-07-31 Mike Sperber + + * isearch-mode.el (isearch-mode-help): + (isearch-update): + (isearch-done): + (isearch-edit-string): Change the way window configurations are + handled: Formerly, the code would do `set-window-configuration' + off `pre-command-hook' which isn't really allowed. (The old + window-configuration code would quietly ignore this restriction.) + Instead, save the window configuration only when someone asks for + help, and restore afterwards, and otherwise leave it alone. + +2003-07-24 Mike Sperber + + * post-gc.el (simple-finalizer-ephemerons): + (add-finalizer): + (cleanup-simple-finalizers): Implement simple object finalization. + +2003-07-19 Stephen Turnbull + + * etags.el: Change `\\s ' in comments to `\\s-'. + (tags-explicit-name-pattern, tags-DEFUN-pattern, tags-def-pattern): + Comment the use of groups. + + * etags.el: Fix bad parsing for completion of good TAGS files. + (tags-explicit-name-pattern): New constant. + (tags-DEFUN-pattern, tags-def-pattern): Use it. + (tags-schemish-pattern): New constant. + (add-to-tag-completion-table): Intern explicit names when found. + +2003-06-18 Nickolay Pakoulin + + * cl-macs.el (cl-transform-lambda): Place doc on Common Lisp + lambda list after the original doc. Care about + #'(lambda () "SingleString") + (cl-upcase-arg): + (cl-function-arglist): + Care about &cl-defs and &cl-quote in lambda list, dotted lists and + circular data structures in lambda list specification + +2003-07-18 Stephen J. Turnbull + + * derived.el (derived-mode-merge-syntax-tables): Reverse map + logic. Fixes "do-nothing" bug. + +2003-07-16 Jerry James + + * window-xemacs.el (restore-saved-window): Follow first-hchild and + first-vchild links even when next-child is nil. + +2003-07-06 Adrian Aichner + + * package-get.el (package-get-package-index-file-location): Handle + missing "EMACSPACKAGEPATH" environment variable. + +2003-07-05 Adrian Aichner + + * package-admin.el (package-admin-find-top-directory): Simplify + directory comparisions and fix substring errors on short path + components. + * package-get.el (package-get-package-index-file-location): + Default to first component of "EMACSPACKAGEPATH", if set. + +2003-06-17 Stephen J. Turnbull + + * bytecomp.el (byte-compile-lambda): Discard docstring only if it + is not also the value of the lambda. + +2003-06-13 Adrian Aichner + + * setup-paths.el (paths-emacs-root-p): Don't insist in lib-src + directory on 'windows-nt, which currently does not have it. + +2003-06-11 Adrian Aichner + + * font-lock.el (lisp-font-lock-keywords-1): Only NAME, not NAME( + to appear in font-lock-function-name-face. + 2003-06-01 Steve Youngs * XEmacs 21.5.14 "cassava" is released. Index: lisp/bytecomp.el =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/bytecomp.el,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- lisp/bytecomp.el 20 Feb 2003 08:19:29 -0000 1.16 +++ lisp/bytecomp.el 30 Jun 2003 09:24:47 -0000 1.17 @@ -2453,7 +2453,10 @@ (body (cdr (cdr fun))) (doc (if (stringp (car body)) (prog1 (car body) - (setq body (cdr body))))) + ;; Discard the doc string + ;; only if it is not the only element of the body. + (if (cdr body) + (setq body (cdr body)))))) (int (assq 'interactive body))) (dolist (arg arglist) (cond ((not (symbolp arg)) Index: lisp/cl-macs.el =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/cl-macs.el,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- lisp/cl-macs.el 9 Mar 2003 02:27:32 -0000 1.14 +++ lisp/cl-macs.el 18 Jul 2003 20:39:45 -0000 1.15 @@ -210,26 +210,47 @@ (defvar cl-macro-environment nil) (defvar bind-block) (defvar bind-defs) (defvar bind-enquote) (defvar bind-inits) (defvar bind-lets) (defvar bind-forms) +(defvar arglist-visited) ;; npak@ispras.ru (defun cl-upcase-arg (arg) - ;; Changes all non-keyword sysmbols in `arg' to symbols + ;; Changes all non-keyword symbols in `ARG' to symbols ;; with name in upper case. - ;; arg is either symbol or list of symbols or lists + ;; ARG is either symbol or list of symbols or lists (cond ((symbolp arg) - (if (memq arg lambda-list-keywords) - ;; Do not upcase &optional, &key etc. - arg - (intern (upcase (symbol-name arg))))) - ((listp arg) - (mapcar 'cl-upcase-arg arg)))) + ;; Do not upcase &optional, &key etc. + (if (memq arg lambda-list-keywords) arg + (intern (upcase (symbol-name arg))))) + ((listp arg) + (if (memq arg arglist-visited) (error 'circular-list '(arg))) + (cl-push arg arglist-visited) + (let ((arg (copy-list arg)) junk) + ;; Clean the list + (let ((p (last arg))) (if (cdr p) (setcdr p (list '&rest (cdr p))))) + (if (setq junk (cadr (memq '&cl-defs arg))) + (setq arg (delq '&cl-defs (delq junk arg)))) + (if (memq '&cl-quote arg) + (setq arg (delq '&cl-quote arg))) + (mapcar 'cl-upcase-arg arg))) + (t arg))) ; Maybe we are in initializer ;; npak@ispras.ru -(defun cl-function-arglist (function agrlist) +(defun cl-function-arglist (name arglist) "Returns string with printed representation of arguments list. Supports Common Lisp lambda lists." - (prin1-to-string - (cons function (cl-upcase-arg agrlist)))) + (if (not (or (listp arglist) (symbolp arglist))) + "Not available" + (setq arglist-visited nil) + (condition-case nil + (prin1-to-string + (cons (if (eq name 'cl-none) 'lambda name) + (cond ((null arglist) nil) + ((listp arglist) (cl-upcase-arg arglist)) + ((symbolp arglist) + (cl-upcase-arg (list '&rest arglist))) + (t (wrong-type-argument 'listp arglist))))) + (t "Not available")))) + (defun cl-transform-lambda (form bind-block) (let* ((args (car form)) (body (cdr form)) @@ -238,12 +259,13 @@ (header nil) (simple-args nil) (doc "")) ;; Add CL lambda list to documentation. npak@ispras.ru - (if (stringp (car body)) + (if (and (stringp (car body)) + (cdr body)) (setq doc (cl-pop body))) - (cl-push (concat "\nCommon Lisp lambda list:\n" + (cl-push (concat doc + "\nCommon Lisp lambda list:\n" " " (cl-function-arglist bind-block args) - "\n\n" - doc) + "\n\n") header) (while (or (stringp (car body)) (eq (car-safe (car body)) 'interactive)) Index: lisp/cus-edit.el =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/cus-edit.el,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- lisp/cus-edit.el 17 May 2002 18:28:45 -0000 1.19 +++ lisp/cus-edit.el 31 Aug 2003 01:28:03 -0000 1.20 @@ -940,6 +940,9 @@ "*Customize Saved*")))) ;;;###autoload +(defalias 'apropos-customize 'customize-apropos) + +;;;###autoload (defun customize-apropos (regexp &optional all) "Customize all user options matching REGEXP. If ALL is `options', include only options. Index: lisp/derived.el =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/derived.el,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- lisp/derived.el 8 Jul 2002 08:21:52 -0000 1.6 +++ lisp/derived.el 18 Jul 2003 07:42:48 -0000 1.7 @@ -342,12 +342,20 @@ ;; check for inheritance. (map-char-table #'(lambda (key value) - (if (eq ?@ (char-syntax-from-code value)) - (map-char-table #'(lambda (key1 value1) - (put-char-table key1 value1 new)) - old - key))) - new) + (let ((newval (get-range-char-table key new 'multi))) + (cond ((eq newval 'multi) ; OK, dive into the class hierarchy + (map-char-table + #'(lambda (key1 value1) + (when (eq ?@ (char-syntax-from-code + (get-range-char-table key new ?@))) + (put-char-table key1 value new)) + nil) + new + key)) + ((eq ?@ (char-syntax-from-code newval)) ;; class at once + (put-char-table key value new)))) + nil) + old) ;; pre-20.0 (let ((idx 0) (end (min (length new) (length old)))) Index: lisp/etags.el =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/etags.el,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- lisp/etags.el 29 Mar 2002 04:46:27 -0000 1.14 +++ lisp/etags.el 21 Jul 2003 06:42:32 -0000 1.15 @@ -1,6 +1,6 @@ ;;; etags.el --- etags facility for Emacs -;; Copyright 1985, 1986, 1988, 1990, 1997 Free Software Foundation, Inc. +;; Copyright 1985, 1986, 1988, 1990, 1997, 2003 Free Software Foundation, Inc. ;; Author: Their Name is Legion (see list below) ;; Maintainer: XEmacs Development Team @@ -482,15 +482,29 @@ (or (memq tag-table-symbol tag-symbol-tables) (set tag-symbol (cons tag-table-symbol tag-symbol-tables))))) -;; Can't use "\\s " in these patterns because that will include newline +;; Can't use "\\s-" in these patterns because that will include newline +;; \2 matches an explicit name. +(defconst tags-explicit-name-pattern "\177\\(\\([^\n\001]+\\)\001\\)?") +;; \1 matches Lisp-name, \2 matches C-name, \5 (from +;; tags-explicit-name-pattern) matches explicit name. (defconst tags-DEFUN-pattern - "DEFUN[ \t]*(\"\\([^\"]+\\)\",[ \t]*\\(\\(\\sw\\|\\s_\\)+\\),\C-?") + (concat "DEFUN[ \t]*(\"\\([^\"]+\\)\",[ \t]*\\(\\(\\sw\\|\\s_\\)+\\)," + tags-explicit-name-pattern)) +;; \1 matches an array name. Explicit names unused? (defconst tags-array-pattern ".*[ \t]+\\([^ \[]+\\)\\[") +;; \2 matches a Lispish name, \5 (from tags-explicit-name-pattern) matches +;; explicit name. (defconst tags-def-pattern - "\\(.*[ \t]+\\)?\\**\\(\\(\\sw\\|\\s_\\)+\\)[ ();,\t]*\C-?" -;; "\\(.*[ \t]+\\)?\\(\\(\\sw\\|\\s_\\)+\\)[ ()]*\C-?" -;; "\\(\\sw\\|\\s_\\)+[ ()]*\C-?" + (concat "\\(.*[ \t]+\\)?\\**\\(\\(\\sw\\|\\s_\\)+\\)[ ();,\t]*" +;; "\\(.*[ \t]+\\)?\\(\\(\\sw\\|\\s_\\)+\\)[ ()]*" +;; "\\(\\sw\\|\\s_\\)+[ ()]*" + tags-explicit-name-pattern) ) +;; \1 matches Schemish name, \4 (from tags-explicit-name-pattern) matches +;; explicit name +(defconst tags-schemish-pattern + (concat "\\s-*(\\s-*def\\sw*\\s-*(?\\s-*\\(\\(\\sw\\|\\s_\\|:\\)+\\))?\\s-*" + tags-explicit-name-pattern)) (defconst tags-file-pattern "^\f\n\\(.+\\),[0-9]+\n") ;; #### Should make it work with the `include' directive! @@ -500,7 +514,7 @@ (goto-char (point-min)) (let ((tag-table-symbol (intern buffer-file-name tag-completion-table)) ;; tag-table-symbol is used by intern-tag-symbol - filename file-type name name2 tag-symbol + filename file-type name name2 name3 tag-symbol tag-symbol-tables (case-fold-search nil)) ;; Loop over the files mentioned in the TAGS file for each file, @@ -529,7 +543,7 @@ lisp-mode-syntax-table) (t (standard-syntax-table)))) ;; Clear loop variables. - (setq name nil name2 nil) + (setq name nil name2 nil name3 nil) (lmessage 'progress "%s..." filename) ;; Loop over the individual tag lines. (while (not (or (eobp) (eq (char-after) ?\f))) @@ -539,8 +553,9 @@ (or (looking-at tags-DEFUN-pattern) (error "DEFUN doesn't fit pattern")) (setq name (match-string 1) - name2 (match-string 2))) - ;;((looking-at "\\s ") + name2 (match-string 2) + name3 (match-string 5))) + ;;((looking-at "\\s-") ;; skip probably bogus entry: ;;) ((and (eq file-type 'c-mode) @@ -552,15 +567,18 @@ (t (setq name (match-string 1))))) ((and (eq file-type 'scheme-mode) - (looking-at "\\s-*(\\s-*def\\sw*\\s-*(?\\s-*\\(\\(\\sw\\|\\s_\\|:\\)+\\))?\\s-*\C-?")) + (looking-at tags-schemish-pattern)) ;; Something Schemish (is this really necessary??) - (setq name (match-string 1))) + (setq name (match-string 1) + name2 (match-string 4))) ((looking-at tags-def-pattern) ;; ??? - (setq name (match-string 2)))) + (setq name (match-string 2) + name2 (match-string 5)))) ;; add the tags we found to the completion table (and name (intern-tag-symbol name)) (and name2 (intern-tag-symbol name2)) + (and name3 (intern-tag-symbol name3)) (forward-line 1))) (or (eobp) (error "Bad TAGS file"))) (message "Adding %s to tags completion table...done" buffer-file-name)) Index: lisp/files.el =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/files.el,v retrieving revision 1.64 retrieving revision 1.65 diff -u -r1.64 -r1.65 --- lisp/files.el 9 Mar 2003 02:27:33 -0000 1.64 +++ lisp/files.el 6 Aug 2003 09:11:40 -0000 1.65 @@ -4072,6 +4072,9 @@ ;; dired-insert-headerline ;; dired-after-subdir-garbage (defines what a "total" line is) ;; - variable dired-subdir-regexp +;; - may be passed "--dired" as argument in SWITCHES. +;; Filename handlers might have to remove this switch if their +;; "ls" command does not support it. ;; END SYNC WITH FSF 21.2. @@ -4089,70 +4092,109 @@ ;; We need the directory in order to find the right handler. (let ((handler (find-file-name-handler (expand-file-name file) 'insert-directory))) - (if handler - (funcall handler 'insert-directory file switches - wildcard full-directory-p) - (cond - ;; [mswindows-insert-directory should be called - ;; nt-insert-directory - kkm]. not true any more according to - ;; my new naming scheme. --ben - ((and (fboundp 'mswindows-insert-directory) - (eq system-type 'windows-nt)) - (declare-fboundp (mswindows-insert-directory - file switches wildcard full-directory-p))) - (t - (if wildcard - ;; Run ls in the directory of the file pattern we asked for. - (let ((default-directory - (if (file-name-absolute-p file) - (file-name-directory file) - (file-name-directory (expand-file-name file)))) - (pattern (file-name-nondirectory file)) - (start 0)) - ;; Quote some characters that have special meanings in shells; - ;; but don't quote the wildcards--we want them to be special. - ;; We also currently don't quote the quoting characters - ;; in case people want to use them explicitly to quote - ;; wildcard characters. - ;;#### Unix-specific - (while (string-match "[ \t\n;<>&|()#$]" pattern start) - (setq pattern - (concat (substring pattern 0 (match-beginning 0)) - "\\" - (substring pattern (match-beginning 0))) - start (1+ (match-end 0)))) - (call-process shell-file-name nil t nil - "-c" (concat "\\" ;; Disregard shell aliases! - insert-directory-program - " -d " - (if (stringp switches) - switches - (mapconcat 'identity switches " ")) - " " - pattern))) - ;; SunOS 4.1.3, SVr4 and others need the "." to list the - ;; directory if FILE is a symbolic link. - (apply 'call-process - insert-directory-program nil t nil - (let (list) - (if (listp switches) - (setq list switches) - (if (not (equal switches "")) - (progn - ;; Split the switches at any spaces - ;; so we can pass separate options as separate args. - (while (string-match " " switches) - (setq list (cons (substring switches 0 (match-beginning 0)) - list) - switches (substring switches (match-end 0)))) - (setq list (cons switches list))))) - (append list - (list - (if full-directory-p - (concat (file-name-as-directory file) - ;;#### Unix-specific - ".") - file))))))))))) + (cond + (handler + (funcall handler 'insert-directory file switches + wildcard full-directory-p)) + ;; [mswindows-insert-directory should be called + ;; nt-insert-directory - kkm]. not true any more according to + ;; my new naming scheme. --ben + ((and (fboundp 'mswindows-insert-directory) + (eq system-type 'windows-nt)) + (declare-fboundp (mswindows-insert-directory + file switches wildcard full-directory-p))) + (t + (let* ((beg (point)) + (result + (if wildcard + ;; Run ls in the directory of the file pattern we asked for. + (let ((default-directory + (if (file-name-absolute-p file) + (file-name-directory file) + (file-name-directory (expand-file-name file)))) + (pattern (file-name-nondirectory file)) + (start 0)) + ;; Quote some characters that have special meanings in shells; + ;; but don't quote the wildcards--we want them to be special. + ;; We also currently don't quote the quoting characters + ;; in case people want to use them explicitly to quote + ;; wildcard characters. + ;;#### Unix-specific + (while (string-match "[ \t\n;<>&|()#$]" pattern start) + (setq pattern + (concat (substring pattern 0 (match-beginning 0)) + "\\" + (substring pattern (match-beginning 0))) + start (1+ (match-end 0)))) + (call-process shell-file-name nil t nil + "-c" (concat "\\" ;; Disregard shell aliases! + insert-directory-program + " -d " + (if (stringp switches) + switches + (mapconcat 'identity switches " ")) + " " + pattern))) + ;; SunOS 4.1.3, SVr4 and others need the "." to list the + ;; directory if FILE is a symbolic link. + (apply 'call-process + insert-directory-program nil t nil + (let (list) + (if (listp switches) + (setq list switches) + (if (not (equal switches "")) + (let ((switches switches)) + ;; Split the switches at any spaces + ;; so we can pass separate options as separate args. + (while (string-match " " switches) + (setq list (cons (substring switches 0 (match-beginning 0)) + list) + switches (substring switches (match-end 0)))) + (setq list (cons switches list))))) + (append list + (list + (if full-directory-p + (concat (file-name-as-directory file) + ;;#### Unix-specific + ".") + file)))))))) + ;; If `insert-directory-program' failed, signal an error. + (if (/= result 0) + ;; On non-Posix systems, we cannot open a directory, so + ;; don't even try, because that will always result in + ;; the ubiquitous "Access denied". Instead, show the + ;; command line so the user can try to guess what went wrong. + (error "Listing directory failed.")) + + (when (or (and (listp switches) + (member "--dired" switches)) + (string-match "--dired\\>" switches)) + (forward-line -2) + (when (looking-at "//SUBDIRED//") + (delete-region (point) (progn (forward-line 1) (point))) + (forward-line -1)) + (let ((end (line-end-position))) + (forward-word 1) + (forward-char 3) + (while (< (point) end) + (let ((start (+ beg (read (current-buffer)))) + (end (+ beg (read (current-buffer))))) + (if (= (char-after end) ?\n) + (let ((filename-extent (make-extent start end))) + (set-extent-property filename-extent 'dired-file-name t) + (set-extent-property filename-extent 'start-open t) + (set-extent-property filename-extent 'end-open t)) + ;; It seems that we can't trust ls's output as to + ;; byte positions of filenames. + (map-extents + #'(lambda (extent maparg) + (delete-extent extent) + nil) + nil beg (point) nil nil 'dired-file-name) + (end-of-line)))) + (goto-char end) + (beginning-of-line) + (delete-region (point) (progn (forward-line 2) (point)))))))))) ;; BEGIN SYNC WITH FSF 21.2. Index: lisp/font-lock.el =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/font-lock.el,v retrieving revision 1.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- lisp/font-lock.el 24 Apr 2003 05:29:12 -0000 1.26 +++ lisp/font-lock.el 13 Jun 2003 00:08:41 -0000 1.27 @@ -1987,7 +1987,7 @@ "\\)\\>" ;; Any whitespace following and declared object. "[ \t'\(]*" - "\\([^ \t\n\)]+\\)?") + "\\([^ \t\n\(\)]+\\)?") ;; Note about numbering: #1 is the grouping around the whole ;; keyword. #2 - #4 are in lisp-function-and-type-regexp. ;; #5 is for variables. (Must be set if neither #3 nor #4 are.) Index: lisp/isearch-mode.el =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/isearch-mode.el,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- lisp/isearch-mode.el 15 Mar 2002 07:43:20 -0000 1.11 +++ lisp/isearch-mode.el 2 Aug 2003 08:42:11 -0000 1.12 @@ -490,10 +490,12 @@ ;; it, though. -hniksic (defun isearch-mode-help () (interactive "_") - (let ((w (selected-window))) - (describe-function 'isearch-forward) - (select-window w)) - (isearch-update)) + (let ((config (current-window-configuration))) + (let ((w (selected-window))) + (describe-function 'isearch-forward) + (select-window w)) + (isearch-update) + (setq isearch-window-configuration config))) ;;;================================================================== @@ -539,7 +541,6 @@ search-ring-yank-pointer nil regexp-search-ring-yank-pointer nil isearch-unhidden-extents nil - isearch-window-configuration (current-window-configuration) ;; #### What we really need is a buffer-local ;; overriding-local-map. See isearch-pre-command-hook for @@ -584,6 +585,10 @@ (defun isearch-update () ;; Called after each command to update the display. + (if isearch-window-configuration + (progn + (set-window-configuration isearch-window-configuration) + (setq isearch-window-configuration nil))) (if (null unread-command-events) (progn (if (not (input-pending-p)) @@ -622,6 +627,7 @@ (defun isearch-done (&optional nopush edit) ;; Called by all commands that terminate isearch-mode. + (setq isearch-window-configuration nil) (let ((inhibit-quit t)) ; danger danger! (if (and isearch-buffer (buffer-live-p isearch-buffer)) ;; Some loser process filter might have switched the window's @@ -648,8 +654,6 @@ (let ((found-start (window-start (selected-window))) (found-point (point))) (cond ((eq (selected-frame) isearch-selected-frame) - (set-window-configuration isearch-window-configuration) - (if isearch-small-window (goto-char found-point) ;; Exiting the save-window-excursion clobbers @@ -768,7 +772,6 @@ (isearch-slow-terminal-mode isearch-slow-terminal-mode) (isearch-small-window isearch-small-window) (isearch-recursive-edit isearch-recursive-edit) - (isearch-window-configuration (current-window-configuration)) (isearch-selected-frame (selected-frame)) ) ;; Actually terminate isearching until editing is done. Index: lisp/mwheel.el =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/mwheel.el,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- lisp/mwheel.el 4 May 2001 22:42:12 -0000 1.5 +++ lisp/mwheel.el 13 Aug 2003 11:22:43 -0000 1.6 @@ -49,22 +49,25 @@ '(event-basic-type posn-window event-start mwheel-event-window mwheel-event-button)) -(defcustom mwheel-scroll-amount '(5 . 1) +(defcustom mwheel-scroll-amount '(5 1 nil) "Amount to scroll windows by when spinning the mouse wheel. -This is actually a cons cell, where the first item is the amount to scroll -on a normal wheel event, and the second is the amount to scroll when the -wheel is moved with the shift key depressed. +A list with 3 elements specifying the amount to scroll on: a normal wheel +event, a wheel event with the shift key pressed, and a wheel event with the +control key pressed, in that order. Each item should be the number of lines to scroll, or `nil' for near full screen. A near full screen is `next-screen-context-lines' less than a full screen." :group 'mouse - :type '(cons + :type '(list (choice :tag "Normal" (const :tag "Full screen" :value nil) (integer :tag "Specific # of lines")) (choice :tag "Shifted" (const :tag "Full screen" :value nil) + (integer :tag "Specific # of lines")) + (choice :tag "Controlled" + (const :tag "Full screen" :value nil) (integer :tag "Specific # of lines")))) (defcustom mwheel-follow-mouse nil @@ -93,8 +96,10 @@ (selected-window) (select-window (mwheel-event-window event))))) (amt (if (memq 'shift (event-modifiers event)) - (cdr mwheel-scroll-amount) - (car mwheel-scroll-amount)))) + (cadr mwheel-scroll-amount) + (if (memq 'control (event-modifiers event)) + (caddr mwheel-scroll-amount) + (car mwheel-scroll-amount))))) (unwind-protect (case (mwheel-event-button event) (4 (scroll-down amt)) @@ -107,7 +112,9 @@ (defun mwheel-install () "Enable mouse wheel support." (interactive) - (let ((keys '([(mouse-4)] [(shift mouse-4)] [(mouse-5)] [(shift mouse-5)]))) + (let ((keys '([(mouse-4)] [(shift mouse-4)] [(control mouse-4)] + [(mouse-5)] [(shift mouse-5)] [(control mouse-5)]))) + ;; This condition-case is here because Emacs 19 will throw an error ;; if you try to define a key that it does not know about. I for one ;; prefer to just unconditionally do a mwheel-install in my .emacs, so Index: lisp/package-admin.el =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/package-admin.el,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- lisp/package-admin.el 2 May 2003 22:51:04 -0000 1.23 +++ lisp/package-admin.el 5 Jul 2003 08:40:37 -0000 1.24 @@ -173,14 +173,16 @@ (let ((path-list (paths-decode-directory-path env-value 'drop-empties))) (cond ((eq type 'std) (while path-list - (if (equal (substring (car path-list) -16) - (concat "xemacs-packages" (char-to-string directory-sep-char))) + (if (equal (file-name-nondirectory + (directory-file-name (car path-list))) + "xemacs-packages") (setq top-dir (car path-list))) (setq path-list (cdr path-list)))) ((eq type 'mule) (while path-list - (if (equal (substring (car path-list) -14) - (concat "mule-packages" (char-to-string directory-sep-char))) + (if (equal (file-name-nondirectory + (directory-file-name (car path-list))) + "mule-packages") (setq top-dir (car path-list))) (setq path-list (cdr path-list))))))) ;; Wasn't in the environment, try `user-init-directory' if Index: lisp/package-get.el =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/package-get.el,v retrieving revision 1.63 retrieving revision 1.65 diff -u -r1.63 -r1.65 --- lisp/package-get.el 14 May 2003 23:57:35 -0000 1.63 +++ lisp/package-get.el 6 Jul 2003 18:12:33 -0000 1.65 @@ -171,8 +171,7 @@ ;;;###autoload (defcustom package-get-package-index-file-location - (or (getenv "EMACSPACKAGEPATH") - user-init-directory) + (car (split-path (or (getenv "EMACSPACKAGEPATH") user-init-directory))) "*The directory where the package-index file can be found." :type 'directory :group 'package-get) Index: lisp/package-ui.el =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/package-ui.el,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- lisp/package-ui.el 14 Apr 2003 03:40:27 -0000 1.19 +++ lisp/package-ui.el 27 Aug 2003 17:18:26 -0000 1.20 @@ -196,7 +196,7 @@ package-get-site-release-download-sites)) ;;;###autoload -(defun pui-set-local-package-get-directory (dir) +(defun pui-set-local-package-get-directory () "Set a new package binary directory in `package-get-remote'. Note that no provision is made for saving any changes made by this function. It exists mainly as a convenience for one-time package installations from Index: lisp/post-gc.el =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/post-gc.el,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- lisp/post-gc.el 28 Jun 2002 14:20:42 -0000 1.1 +++ lisp/post-gc.el 26 Jul 2003 14:01:23 -0000 1.2 @@ -45,5 +45,26 @@ (add-hook 'post-gc-hook 'run-finalizers) +(defvar simple-finalizer-ephemerons '() + "List of ephemerons for objects that have a finalizer attached..") - +(defun add-finalizer (object func) + "Add FUNC as a finalizer for object OBJECT." + (setq simple-finalizer-ephemerons + (cons (make-ephemeron object object func) + simple-finalizer-ephemerons))) + +(defun cleanup-simple-finalizers (alist) + "Clean up `simple-finalizer-ephemerons'." + ;; We have to do this by hand because DELETE-IF isn't defined yet. + (let ((current simple-finalizer-ephemerons) + (prev nil)) + (while (not (null current)) + (if (not (ephemeron-ref (car current))) + (if (null prev) + (setq simple-finalizer-ephemerons (cdr current)) + (setcdr prev (cdr current))) + (setq prev current)) + (setq current (cdr current))))) + +(add-hook 'post-gc-hook 'cleanup-simple-finalizers) Index: lisp/setup-paths.el =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/setup-paths.el,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- lisp/setup-paths.el 1 Mar 2003 07:25:27 -0000 1.19 +++ lisp/setup-paths.el 13 Jun 2003 00:11:16 -0000 1.20 @@ -123,7 +123,7 @@ ;; don't exist. instead, xemacs.mak points configure-lisp-directory and ;; configure-data-directory at the right places. (and - (or configure-exec-directory (paths-file-readable-directory-p (paths-construct-path (list directory "lib-src")))) + (or configure-exec-directory (paths-file-readable-directory-p (paths-construct-path (list directory "lib-src"))) (eq system-type 'windows-nt)) (or configure-lisp-directory (paths-file-readable-directory-p (paths-construct-path (list directory "lisp")))) (or configure-data-directory (paths-file-readable-directory-p (paths-construct-path (list directory "etc"))))))) Index: lisp/window-xemacs.el =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/window-xemacs.el,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- lisp/window-xemacs.el 26 Mar 2003 15:09:51 -0000 1.17 +++ lisp/window-xemacs.el 17 Jul 2003 14:41:24 -0000 1.18 @@ -345,29 +345,28 @@ (defun restore-saved-window (configuration window saved-window direction) "Within CONFIGURATION, restore WINDOW to the state of SAVED-WINDOW." - (if (saved-window-next-child saved-window) - (progn - (if (not (saved-window-minibufferp (saved-window-next-child saved-window))) - (progn - (cond ((eq direction 'vertical) - (split-window window nil nil)) - ((eq direction 'horizontal) - (split-window window nil t))) - (restore-saved-window configuration - (window-next-child window) - (saved-window-next-child saved-window) - direction))) + (and (saved-window-next-child saved-window) + (not (saved-window-minibufferp (saved-window-next-child saved-window))) + (progn + (cond ((eq direction 'vertical) + (split-window window nil nil)) + ((eq direction 'horizontal) + (split-window window nil t))) + (restore-saved-window configuration + (window-next-child window) + (saved-window-next-child saved-window) + direction))) - (if (saved-window-first-hchild saved-window) - (restore-saved-window configuration - window - (saved-window-first-hchild saved-window) - 'horizontal)) - (if (saved-window-first-vchild saved-window) - (restore-saved-window configuration - window - (saved-window-first-vchild saved-window) - 'vertical)))) + (if (saved-window-first-hchild saved-window) + (restore-saved-window configuration + window + (saved-window-first-hchild saved-window) + 'horizontal)) + (if (saved-window-first-vchild saved-window) + (restore-saved-window configuration + window + (saved-window-first-vchild saved-window) + 'vertical)) (if (not (saved-window-minibufferp saved-window)) (restore-saved-window-parameters configuration window saved-window))) Index: lwlib/ChangeLog =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/lwlib/ChangeLog,v retrieving revision 1.54 retrieving revision 1.56 diff -u -r1.54 -r1.56 --- lwlib/ChangeLog 1 Jun 2003 05:10:22 -0000 1.54 +++ lwlib/ChangeLog 4 Sep 2003 00:05:09 -0000 1.56 @@ -1,3 +1,11 @@ +2003-09-03 Steve Youngs + + * XEmacs 21.5.15 "celery" is released. + +2003-08-28 Jerry James + + * lwlib-internal.h: Wrap assert_failed with EXTERN_C for modules. + 2003-06-01 Steve Youngs * XEmacs 21.5.14 "cassava" is released. Index: lwlib/lwlib-internal.h =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/lwlib/lwlib-internal.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- lwlib/lwlib-internal.h 13 Mar 2002 08:52:22 -0000 1.3 +++ lwlib/lwlib-internal.h 28 Aug 2003 15:44:05 -0000 1.4 @@ -6,7 +6,7 @@ #ifdef USE_ASSERTIONS /* Highly dubious kludge */ /* (thanks, Jamie, I feel better now -- ben) */ -void assert_failed (const char *, int, const char *); +EXTERN_C void assert_failed (const char *, int, const char *); # define abort() (assert_failed (__FILE__, __LINE__, "abort()")) # define assert(x) ((x) ? 1 : (assert_failed (__FILE__, __LINE__, #x), 0)) #else Index: man/ChangeLog =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/man/ChangeLog,v retrieving revision 1.223 retrieving revision 1.230 diff -u -r1.223 -r1.230 --- man/ChangeLog 1 Jun 2003 05:10:23 -0000 1.223 +++ man/ChangeLog 4 Sep 2003 00:05:10 -0000 1.230 @@ -1,3 +1,123 @@ +2003-09-03 Steve Youngs + + * XEmacs 21.5.15 "celery" is released. + +2003-08-28 Steve Youngs + + * xemacs-faq.texi (Q2.0.2): Rewrite, mentioning the correct way to + remove a package. + (Q3.8.2): big-menubar is in the edit-utils package. + (Q4.3.2): Add a comment about not needing TM for things like Gnus, + MH-E and VM. + (Q5.3.3): State correct location of ps-print.el. + + * xemacs/packages.texi (Packages): Remove "Creating Packages" menu + entry. + (Package Terminology): Whitespace clean up. + (Installing Packages): Whitespace clean up and add some @code + formatters. + Re-organise the menu so that installation via PUI is first and + Sumo is last. + (Automatically): mule-base is no longer a requirement for using + PUI. + Mention optionally requiring mailcrypt. + (Note): Removed. + (Manually): Move to below the PUI installation method. + (Sumo): Move to below the manual installation method. + (Which Packages): Add mailcrypt. + (Building Packages): Remove duplicated stuff that is in + lispref/packaging.texi, xref to it instead. + (Local.rules File): xref to the appropriate node in + lispref/packaging.texi. + (Available Packages): Update to current reality. + (all): Removed. + (srckit): Removed. + (binkit): Removed. + + * xemacs/reading.texi (Reading Mail): Mention Gnus and MEW. + + * new-users-guide/custom2.texi (Init File): big-menubar.el is in + the edit-utils package. + + * lispref/packaging.texi (Packaging): + (The User View): + (The Library Maintainer View): + (Infrastructure): + (Control Files): + (Obtaining): + (The Package Release Engineer View): + (Package Terminology): + (Building Packages): + (Makefile Targets): + (packages): New. + (Local.rules File): + (XEMACS_PACKAGES): Removed. + (XEMACS_INSTALLED_PACKAGES_ROOT): New. + (NONMULE_PACKAGES): New. + (EXCLUDES): New. + (Creating Packages): + (BATCH): New. + (VERSION): Removed. + (AUTHOR_VERSION): Removed. + (MAINTAINER): Removed. + (PACKAGE): Removed. + (PKG_TYPE): Removed. + (REQUIRES): Removed. + (CATEGORY): Removed. + (ELS): Removed. + (ELCS): Removed. + (all): Removed. + (srckit): Removed. + (binkit): Removed. + (are): New. + (STANDARD_DOCS): New. + (ELCS_1_DEST): New. + (example): New. + (PACKAGE_SUPPRESS): New. + (EXPLICIT_DOCS): New. + (DATA_DEST): New. + (Documenting Packages): + + Not quite a total rewrite, but a fairly thorough audit + nonetheless. + +2003-07-31 René Kyllingstad + + * lispref/display.texi (Invisible Text): + mention line-move-ignore-invisible. + * lispref/extents.texi (Extent Properties): + end-glyph will still be displayed when invisible is set. + * lispref/extents.texi (Extents and Events): + only begin-glyph is highlighted. + +2003-08-12 Stephen J. Turnbull + + * xemacs-faq.texi (Q1.3.8): Fix typo, note errorneous recognition. + +2003-08-05 Stephen J. Turnbull + + * lispref/packaging.texi (Creating Packages): + * xemacs/packages.texi (Creating Packages): + Style guideline for package-info.in description. + +2003-06-30 Vin Shelton + + * lispref/lists.texi (List-related Predicates): Add @end defun. + +2003-06-30 Stephen J. Turnbull + + * xemacs-faq.texi (Q3.2.2): Fix typo. + +2003-06-20 Stephen J. Turnbull + + * lispref/objects.texi (Character Type): Document ?\x00 read + syntax and range limitations on ?\000 and ?\x00 read syntaxes. + +2003-06-16 Stephen J. Turnbull + + * lispref/lists.texi (List-related Predicates): Document + `true-list-p', and reference it from `listp'. + 2003-06-01 Steve Youngs * XEmacs 21.5.14 "cassava" is released. Index: man/xemacs-faq.texi =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/man/xemacs-faq.texi,v retrieving revision 1.71 retrieving revision 1.74 diff -u -r1.71 -r1.74 --- man/xemacs-faq.texi 22 May 2003 07:41:21 -0000 1.71 +++ man/xemacs-faq.texi 27 Aug 2003 18:06:58 -0000 1.74 @@ -7,7 +7,7 @@ @finalout @titlepage @title XEmacs FAQ -@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2003/05/22 07:41:21 $ +@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2003/08/27 18:06:58 $ @sp 1 @author Tony Rossini @author Ben Wing @@ -1176,12 +1176,18 @@ To get Unicode support, you need a Mule-enabled XEmacs. Install Mule-UCS from packages in the usual way. Put +@example (require 'un-define) (set-coding-priority-list '(utf-8)) -(set-coding-category-system 'utf-8 utf-8) +(set-coding-category-system 'utf-8 'utf-8) +@end example + +in your init file to enable the UTF-8 coding system. You may wish to +view the documentation of @code{set-coding-priority-list} if you find +that files that are not UTF-8 are being mis-recognized as UTF-8. Install standard national fonts (not Unicode fonts) for all -character sets you use. +character sets you use. See @ref{Q1.3.9}. Mule-UCS also supports 16-bit forms of Unicode (UTF-16). It does not support 31-bit forms of Unicode (UTF-32 or UCS-4). @@ -1424,24 +1430,18 @@ that you do not use}. You must be sure you do not use it though, so be conservative at first. -Possible candidates for deletion include w3, games, hyperbole, mh-e, -hm-html-menus, vm, viper, oobr, gnus, etc. Ask yourself, @emph{Do I -ever want to use this package?} If the answer is no, then it is a -candidate for removal. +Any package with the possible exceptions of xemacs-base, and EFS are +candidates for removal. Ask yourself, @emph{Do I ever want to use this +package?} If the answer is no, then it is a candidate for removal. First, gzip all the .el files. Then go about package by package and start gzipping the .elc files. Then run XEmacs and do whatever it is -you normally do. If nothing bad happens, then delete the directory. Be -conservative about deleting directories, and it would be handy to have a -backup around in case you get too zealous. - -@file{prim}, @file{modes}, @file{packages}, and @file{utils} are four -directories you definitely do @strong{not} want to delete, although -certain packages can be removed from them if you do not use them. - -Online texinfo sources in the @file{info} can either be compressed them -or remove them. In either case, @kbd{C-h i} (info mode) will no longer -work. +you normally do. If nothing bad happens, then remove the package. You +can remove a package via the PUI interface +(@code{M-x pui-list-packages}, then press @kbd{d} to mark the packages +you wish to delete, and then @kbd{x} to delete them. + +Another method is to do @code{M-x package-get-delete-package}. @node Q2.0.3, Q2.0.4, Q2.0.2, Installation @unnumberedsubsec Q2.0.3: Compiling XEmacs with Netaudio. @@ -3013,7 +3013,7 @@ This is confusing because @samp{default} and @samp{modeline} are face names, and can be found listed with all faces in the current mode by using @kbd{M-x set-face-font (enter) ?}. They use the face-specific -resource @samp{attributeFont} +resource @samp{attributeFont}. On the other hand, @samp{menubar} is a normal X thing that uses the resource @samp{font}. With Motif it @emph{may be} necessary to use @@ -3756,9 +3756,8 @@ @end lisp If you'd like to write your own, this file provides as good a set of -examples as any to start from. The file is located in -@file{lisp/packages/big-menubar.el} in the XEmacs installation -directory. +examples as any to start from. The file is located in edit-utils +package. @node Q3.8.3, Q3.8.4, Q3.8.2, Customization @unnumberedsubsec Q3.8.3: How do I control how many buffers are listed in the menu @code{Buffers List}? @@ -4540,6 +4539,14 @@ this package out---it's much simpler than it looks, and once installed, trivial to use. +@email{youngs@@xemacs.org, Steve Youngs} writes: + +@quotation +All the major Emacs Lisp based MUAs (Gnus, MH-E, and VM) all do their +own thing when it comes to MIME so you won't need TM to get MIME support +in these packages. +@end quotation + @node Q4.3.3, Q4.3.4, Q4.3.2, Subsystems @unnumberedsubsec Q4.3.3: Why isn't this @code{movemail} program working? @@ -5897,7 +5904,9 @@ The package @code{ps-print}, which is now included with XEmacs, provides the ability to do this. The source code contains complete instructions -on its use, in @file{/lisp/packages/ps-print.el}. +on its use, in +@file{$prefix/lib/xemacs/xemacs-packages/lisp/ps-print/ps-print.el}, +being the default location of an installed ps-print package. @node Q5.3.4, Q5.3.5, Q5.3.3, Miscellaneous @unnumberedsubsec Q5.3.4: Getting @kbd{M-x lpr} to work with postscript printer. Index: man/lispref/display.texi =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/man/lispref/display.texi,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- man/lispref/display.texi 12 Apr 2001 18:22:12 -0000 1.6 +++ man/lispref/display.texi 13 Aug 2003 11:07:40 -0000 1.7 @@ -518,7 +518,9 @@ Ordinarily, commands that operate on text or move point do not care whether the text is invisible. However, the user-level line motion -commands explicitly ignore invisible newlines. +commands explicitly ignore invisible newlines. Since this causes a +slow-down of these commands it is turned off by default, controlled by +the variable @code{line-move-ignore-invisible}. @node Selective Display @section Selective Display Index: man/lispref/extents.texi =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/man/lispref/extents.texi,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- man/lispref/extents.texi 12 Apr 2001 18:22:13 -0000 1.9 +++ man/lispref/extents.texi 13 Aug 2003 11:07:40 -0000 1.10 @@ -574,7 +574,8 @@ @item invisible (Boolean) If @code{t}, text under this extent will not be displayed -- -it will look as if the text is not there at all. +it will look as if the text and the begin-glyph is not there at all. +The end-glyph will still be displayed. @item keymap (keymap or @code{nil}) This keymap is consulted for mouse clicks on this @@ -894,8 +895,9 @@ @section Interaction of Extents with Keyboard and Mouse Events If an extent has the @code{mouse-face} property set, it will be -highlighted when the mouse passes over it. Highlighting is accomplished -by merging the extent's face with the face or faces specified by the +highlighted when the mouse passes over it. This includes the +begin-glyph, but not the end-glyph. Highlighting is accomplished by +merging the extent's face with the face or faces specified by the @code{mouse-face} property. The effect is as if a pseudo-extent with the @code{mouse-face} face were inserted after the extent in the display order (@pxref{Extent Endpoints}, display order). Index: man/lispref/lispref.texi =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/man/lispref/lispref.texi,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- man/lispref/lispref.texi 3 Mar 2002 09:09:51 -0000 1.16 +++ man/lispref/lispref.texi 27 Aug 2003 18:07:02 -0000 1.17 @@ -275,9 +275,8 @@ Creating Packages -* package-compile.el:: -* package-info.in Fields:: -* Makefile Variables:: +* package-info.in:: package-info.in +* Makefile:: @file{Makefile} * Makefile Targets:: Lisp Data Types Index: man/lispref/lists.texi =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/man/lispref/lists.texi,v retrieving revision 1.2 retrieving revision 1.4 diff -u -r1.2 -r1.4 --- man/lispref/lists.texi 12 Apr 2001 18:22:16 -0000 1.2 +++ man/lispref/lists.texi 1 Jul 2003 04:33:46 -0000 1.4 @@ -170,7 +170,8 @@ @defun listp object This function returns @code{t} if @var{object} is a cons cell or -@code{nil}. Otherwise, it returns @code{nil}. +@code{nil}. Otherwise, it returns @code{nil}. @code{true-list-p} is +slower, but in some circumstances it is more appropriate. @example @group @@ -191,6 +192,12 @@ @example (listp @var{object}) @equiv{} (not (nlistp @var{object})) @end example +@end defun + +@defun true-list-p object +This function returns @code{t} if @var{object} is an acyclic, +@code{nil}-terminated (ie, not dotted), list. Otherwise it returns +@code{nil}. @code{listp} is faster. @end defun @defun null object Index: man/lispref/objects.texi =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/man/lispref/objects.texi,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- man/lispref/objects.texi 14 Dec 2001 07:50:10 -0000 1.6 +++ man/lispref/objects.texi 30 Jun 2003 09:31:01 -0000 1.7 @@ -613,24 +613,48 @@ @cindex @samp{\} in character constant @cindex backslash in character constant @cindex octal character code - Finally, the most general read syntax consists of a question mark +@cindex hexadecimal character code + Finally, there are two read syntaxes involving character codes. +It is not possible to represent multibyte or wide characters in this +way; the permissible range of codes is from 0 to 255 (@emph{i.e.}, +@samp{0377} octal or @samp{0xFF} hexadecimal). If you wish to convert +code points to other characters, you must use the @samp{make-char} or +@samp{unicode-to-char} primitives in Mule. (Non-Mule XEmacsen cannot +represent codes out of that range at all, although you can set the font +to a registry other than ISO 8859/1 to get the appearance of a greater +range of characters.) Although these syntaxes can represent any +@sc{ascii} or Latin-1 character, they are preferred only when the +precise integral value is more important than the @sc{ascii} +representation. + + The first consists of a question mark followed by a backslash and the character code in octal (up to three octal digits); thus, @samp{?\101} for the character @kbd{A}, @samp{?\001} for the character @kbd{C-a}, and @code{?\002} for the -character @kbd{C-b}. Although this syntax can represent any @sc{ascii} -character, it is preferred only when the precise octal value is more -important than the @sc{ascii} representation. +character @kbd{C-b}. + + The second consists of a question mark followed by a backslash, the +character @samp{x}, and the character code in hexadecimal (up to two +hexadecimal digits); thus, @samp{?\x41} for the character @kbd{A}, +@samp{?\x1} for the character @kbd{C-a}, and @code{?\x2} for the +character @kbd{C-b}. + +In both cases, the reader will finalize the character when a non-digit +is encountered or the maximum length of a character code is reached. It +then starts reading the next token. @example @group ;; @r{Under XEmacs 20:} ?\012 @result{} ?\n ?\n @result{} ?\n ?\C-j @result{} ?\n -?\101 @result{} ?A ?A @result{} ?A +?\101 @result{} ?A ?A @result{} ?A ?\x0A @result{} ?\n +?\x41 @result{} ?A '(?\xAZ) @result{} '(?\n Z) '(?\0123) @result{} (?\n 3) @end group @group ;; @r{Under XEmacs 19:} ?\012 @result{} 10 ?\n @result{} 10 ?\C-j @result{} 10 ?\101 @result{} 65 ?A @result{} 65 +;; ?\x41 @r{is a syntax error.} @end group @end example Index: man/lispref/packaging.texi =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/man/lispref/packaging.texi,v retrieving revision 1.8 retrieving revision 1.10 diff -u -r1.8 -r1.10 --- man/lispref/packaging.texi 5 Jul 2002 20:35:52 -0000 1.8 +++ man/lispref/packaging.texi 27 Aug 2003 18:07:02 -0000 1.10 @@ -44,14 +44,15 @@ @menu Introduction: -* Package Overview:: Lisp Libraries and Packages. +* Package Overview:: Lisp Libraries and Packages. Packaging Lisp Libraries: -* Package Terminology:: Basic stuff. -* Building Packages:: Turn packaged source into a tarball. -* Local.rules File:: Tell the @xpms{} about your host. -* Creating Packages:: Tell the @xpms{} about your package. -* Documenting Packages:: Explain your package to users and hackers. +* Package Terminology:: Basic stuff. +* Building Packages:: Turn packaged source into a tarball. +* Makefile Targets:: Package @file{Makefile} targets +* Local.rules File:: Tell the @xpms{} about your host. +* Creating Packages:: Tell the @xpms{} about your package. +* Documenting Packages:: Explain your package to users and hackers. @c * History:: History of the @xpms{} @c * Installation:: Installing the @xpms{} with your (X)Emacs. @c * Configuration:: Configuring the @xpms{} for use. @@ -157,11 +158,10 @@ @file{/usr/local/lib/xemacs-21.4.6/}. Users who do not have sufficient privilege to install packages in the -system hierarchies may install package hierarchies under -@file{~/.xemacs}. At present only the @file{xemacs-packages} and -@file{mule-packages} hierarchies are supported, but it might make sense -to extend this to support @file{infodock-packages} and -@file{site-packages} hierarchies in the future. +system hierarchies may install package hierarchies under @file{~/.xemacs}. +At present only the @file{xemacs-packages}, @file{mule-packages}, and +@file{site-packages} hierarchies are supported, but it might make sense to +extend this to support @file{infodock-packages} hierarchies in the future. The package hierarchies are not searched directly for libraries to be loaded; this would be very costly. Instead, the hierarchies are ordered @@ -267,9 +267,9 @@ package's source tree and provide administrative information. @menu -* Infrastructure:: Global Makefiles and common rules. -* Control Files:: Package-specific Makefiles and administrative files. -* Obtaining:: Obtaining the @xpms{} and required utilities. +* Infrastructure:: Global Makefiles and common rules. +* Control Files:: Package-specific Makefiles and administrative files. +* Obtaining:: Obtaining the @xpms{} and required utilities. @end menu @node Infrastructure, Control Files, , The Library Maintainer View @@ -325,6 +325,11 @@ @item iterate.rules controls recursive builds of multiple packages +@item meta-iterate.rules +This is used by higher-level subdirectories that do not directly +contain packages. Subdirectories directly containing packages should +use iterate.rules instead. + @item XEmacs.rules provides the rules for building and packaging. Included by all package @file{Makefile}s. @@ -341,10 +346,14 @@ consistency checking for @file{Local.rules}, included by both the top-level @file{Makefile} and by @file{XEmacs.rules}. +@item Local.rules.inc +a file to @code{include} in package @file{Makefile}s to be able to get +at variables in @file{Local.rules} @emph{before} including +@file{XEmacs.rules}. + @c #### Add to "issues" @item package-compile.el -compile environment (@emph{e.g.}, load-path) setup. It is very bogus -that this is here, an alternative mechanism is likely to be provided. +compile environment (@emph{e.g.}, load-path) setup. @end table Of these, only @file{Local.rules} and @file{package-compile.el} need to @@ -387,16 +396,13 @@ Not strictly required, but normally a ChangeLog will be added by the XEmacs package maintainer if different from the upstream maintainer. -@item package-compile.el -compile environment (@emph{e.g.}, load-path) setup. It is very bogus -that this is here, an alternative mechanism is likely to be provided. - @item _pkg.el Generated. Simply does a @code{package-provide} for the package. -@item _auto-autoloads.el +@item auto-autoloads.el Generated. Read when XEmacs is initialized, and provides autoloads for -all defuns and other specially-marked forms in the sources. +defuns and other forms in the sources that are marked with an +@dfn{autoload cookie} (@samp{;;;###autoload}. @item custom-loads.el Generated. Read when XEmacs is initialized, and informs the Customize @@ -413,8 +419,8 @@ @uref{http://www.xemacs.org/Develop/cvsaccess.html} for more intformation. -The @xpms{} currently requires GNU @file{make}, and probably XEmacs, to -build packages. +The @xpms{} currently requires GNU @file{make}, and XEmacs, to build +packages. @node The Package Release Engineer View, , The Library Maintainer View, Package Overview @@ -434,8 +440,6 @@ @c #### To be completed. -@c #### The following section is lifted verbatim from the XEmacs User's -@c Manual, file packages.texi. @node Package Terminology, Building Packages, Package Overview, Packaging @comment node-name, next, previous, up @heading Package Terminology: @@ -484,8 +488,8 @@ for distribution or installation. This is all of the package author's source code plus all of the files necessary to build distribution tarballs (Unix Tar format files, gzipped for space savings). -@c #### This next is an Evile Practice and should be discontinued. -(Occasionally sources that are not relevant to XEmacs are removed.) +(Occasionally sources that are not relevant to XEmacs are usually +renamed to @file{file.upstream}.) Currently, source packages are only available via CVS. See @url{http://www.xemacs.org/Develop/cvsaccess.html} for details. @@ -502,9 +506,7 @@ specially, and even those only if they contain multibyte characters. -@c #### The following section is lifted verbatim from the XEmacs User's -@c Manual, file packages.texi. -@node Building Packages, Local.rules File, Package Terminology, Packaging +@node Building Packages, Makefile Targets, Package Terminology, Packaging @comment node-name, next, previous, up @cindex building packages @cindex package building @@ -520,9 +522,9 @@ @item GNU install (or a BSD compatible install program). @item GNU make -(3.75 or later preferred). +(3.79 or later preferred). @item makeinfo -(1.68 from texinfo-3.11 or later required, 1.69 from Texinfo 4 preferred). +(4.2 from texinfo-4.2) @item GNU tar (or equivalent). @item GNU gzip @@ -533,63 +535,85 @@ And of course, XEmacs, 21.0 or higher. -@subsection What You Can Do With Source Packages +@section What You Can Do With Source Packages The packages CVS sources are most useful for creating XEmacs package tarballs for installation into your own XEmacs installations or for distributing to others. -The supported @file{make} targets are: +It should be noted that most of the package @file{Makefile}s do +@emph{not} need to contain @emph{any} target rules. Everything is +handled from the @file{XEmacs.rules} file, located in the toplevel +directory of the packages source tree. -@table @code -@item all -Bytecompile all files, build and bytecompile byproduct files like -@file{auto-autoloads.el} and @file{custom-load.el}. Create info version -of TeXinfo documentation if present. -@c #### Why do we need this _and_ the binkit target? +@node Makefile Targets, Local.rules File, Building Packages, Packaging +@cindex package makefile targets +@chapter @file{Makefile} targets +The following targets can be used when running @code{make} to build the +packages: + +@table @samp +@item mostlyclean +Removes any documentation files that have been processed by @TeX{}. + +@item clean +Does a @code{mostlyclean}, plus removes generated postscript and dvi +files. Also removes any generated .elc files, along with the normal +.elc files in the package and HTML and .info files. + +@item distclean +Use this when preparing a distribution. It kills anything that can be +rebuilt. + +@item extraclean +Does a @code{distclean} and also removes any backup files (@file{*~}) +and @file{core} files. + +@item package-info +Creates the @file{package-info} file from the @file{package-info.in} and +writes an entry in the @file{package-index} file. + @item bindist -Does a @code{make all} as well as create a binary package tarball in the -staging directory. +Builds the package, including any Texinfo documentation (info format), +writes an entry into the @file{package-index} file and builds a tarball +of the package. Also writes an entry into @file{setup-packages.ini} +which is later used in the creation of netinstaller's @file{setup.ini}. @item install -Bytecompile all files, build and bytecompile byproduct files like -@file{auto-autoloads.el} and @file{custom-load.el}. Create info version -of TeXinfo documentation if present. And install everything into the -staging directory. - -@item srckit -Usually simply depends on @code{srckit-std}, with no actions. This does -a @code{make distclean} and creates a package source tarball in the -staging directory. This is generally only of use for package -maintainers. +Builds and installs a package + +@item install-only +Doesn't build anything, just installs it. + +@item autoloads +Generate the package's @file{auto-autoloads.el} file. @item binkit -May depend on @code{binkit-sourceonly}, @code{binkit-sourceinfo}, -@code{binkit-sourcedata}, or @code{binkit-sourcedatainfo}, with no -actions. @code{sourceonly} indicates there is nothing to install in a -data directory or info directory. @code{sourceinfo} indicates that -source and info files are to be installed. @code{sourcedata} indicates -that source and etc (data) files are to be installed. -@code{sourcedatainfo} indicates source, etc (data), and info files are -to be installed. A few packages have needs beyond the basic templates -so this is not yet complete. - -@item dist -Runs the rules @code{srckit} followed by @code{binkit}. This is -primarily of use by XEmacs maintainers producing files for distribution. +Creates the directories needed for installation and copies the files +there. Basically this is an alias for @code{install-only}. -@item clean -Remove all built files except @file{auto-autoloads.el} and -@file{custom-load.el}. +@item html +Builds the HTML versions of the documentation. -@item distclean -Remove all created files. +@item compile +Does most of the work. Builds the elcs, infos at a minimum. @end table -@c #### The following section is lifted verbatim from the XEmacs User's -@c Manual, file packages.texi. -@node Local.rules File, Creating Packages, Building Packages, Packaging +@subsection The targets that most people would be interested in would be: + +@itemize @bullet +@item @code{all} +@item @code{bindist} +@item @code{html} +@item @code{install} +@item @code{install-only} +@item @code{clean} +@item @code{distclean} +@end itemize + + +@node Local.rules File, Creating Packages, Makefile Targets, Packaging @comment node-name, next, previous, up @cindex local.rules @heading The Local.rules File: @@ -598,393 +622,318 @@ simply copy @file{Local.rules.template} from that directory to @file{Local.rules} and edit it to suit your needs. -These are the variables in @file{Local.rules} that you will need to -provide values for. The following variables control which packages will -be built: - -@table @var -@item XEMACS_PACKAGES -The default is @samp{xemacs-packages}, which results in the set in -the @file{xemacs-packages/Makefile} @code{PACKAGES} variable. +These are the variables in @file{Local.rules} that you may need to +provide values for: -Otherwise, it should be a list of package source directories prefixed by -@samp{xemacs-packages}: +@table @samp +@item XEMACS +The name (and path if needed) of the XEmacs binary to use for building +the packages. The default is @code{xemacs}. -@example -XEMACS_PACKAGES = xemacs-packages/xemacs-base xemacs-packages/bbdb -@end example +@item XEMACS_21_5 +This will enable some, as yet, unimplemented features in XEmacs 21.5 and +above. For now leave this blank (the default) regardless of the XEmacs +version you are using. @item BUILD_WITHOUT_MULE -The default is the empty value. +Set this to @samp{t} if you are using a non-Mule XEmacs. The default is +that this variable is not set (blank) which means to build @emph{with} +Mule. + +@item XEMACS_NATIVE_NT +Set this to @samp{t} if you are using a native Microsoft Windows build +of XEmacs (not a Cygwin build) to build the packages. +@strong{N.B.} To Windows users, you still need the Cygwin environment to +actually build the packages. + +@item XEMACS_INSTALLED_PACKAGES_ROOT +Set this to the root of where you want the packages to be installed. +Under this directory will hang @file{xemacs-packages} and +@file{mule-packages}. See @var{NONMULE_INSTALLED_PACKAGES_ROOT} and +@var{MULE_INSTALLED_PACKAGES_ROOT}. The default for this is +@file{/usr/local/lib/xemacs}. Which may not be what you want if you are +developing XEmacs. To quote the comments in +@file{Local.rules.template}: + +@quotation +If you are developing XEmacs, you probably don't want to install the +packages under /usr/local, which is where the stable, released version +of XEmacs goes. Instead, we suggest a layout as described in the base +README file of recent versions of XEmacs. In a nutshell, we suggest +you put your source under /src/xemacs, and under this put the package +sources in package-src/, and the installed packages in xemacs-packages/ +and mule-packages/. If you do everything this way, you might want to +set things as follows: + +XEMACS_INSTALLED_PACKAGES_ROOT = $@{XEMACS_PACKAGES_BASE@}/.. + +which puts the xemacs-packages/ and mule-packages/ directories as sisters +of the package-src/ directory, and you have to tell configure the location +of the installed packages using `--package-path', something like -Building from CVS defaults to building the Mule -packages. Set this to 't' if you don't want/have Mule. +configure --package-path=/src/xemacs/xemacs-packages;/src/xemacs/mule-packages +@end quotation -@item MULE_PACKAGES -The default is @samp{mule-packages}, which results in the set in -the @file{mule-packages/Makefile} @code{PACKAGES} variable. +@item symlink +The default is unset (blank). If you set this to @samp{t} then +@code{make install} will create a @dfn{symlink farm} of the installed +packages under @var{XEMACS_INSTALLED_PACKAGES_ROOT}. Obviously, for +this to work, your system has to support symbolic links. This is as +close as you can get to @dfn{running in place} for the packages. + +@item NONMULE_INSTALLED_PACKAGES_ROOT +This is where the non-Mule packages get installed to. The default is +@file{$@{XEMACS_INSTALLED_PACKAGES_ROOT@}/xemacs-packages}. + +@item MULE_INSTALLED_PACKAGES_ROOT +This is where the Mule packages get installed to. The default is +@file{$@{XEMACS_INSTALLED_PACKAGES_ROOT@}/mule-packages}. -Otherwise, it should be a list of package source directories prefixed by -@samp{mule-packages}: +@item NONMULE_PACKAGES +A whitespace separated list of non-Mule packages to build/install. @example -MULE_PACKAGES = mule-packages/mule-base mule-packages/skk +NONMULE_PACKAGES = bbdb gnus xemacs-base prog-modes @end example -@item PACKAGE_INDEX -The default is @file{package-index}. - -If you want the package index file to have a different name, change -this. This is probably a bad idea unless you are a packages release -engineer, as it will confuse the package administration tools. -@end table - -The following variables determine where files are installed and how they -are installed. Several of the defaults use the variable -@var{XEMACS_PACKAGES_BASE}. Never set this variable in -@file{Local.rules}; it is automatically set in @file{XEmacs.rules}. - -@table @asis -@item @var{XEMACS_STAGING} -The default is @file{$@{XEMACS_PACKAGES_BASE@}/../xemacs-packages}. - -Generic packages will be installed here. This can be the final -destination for files or symlinks (if the packages are being installed -locally), or a clean staging area for building tarballs. +The value for this variable can also be the symbol +@samp{xemacs-packages}, which means to build/install @emph{all} of the +non-Mule packages. The default is @samp{xemacs-packages}. -@strong{N.B.} @samp{make bindist} ignores this variable. It should be -handled by the administration utilities, but currently isn't. +@item MULE_PACKAGES +A whitespace separated list of Mule packages to build/install. -@item @var{MULE_STAGING} +@example +MULE_PACKAGES = mule-base leim locale +@end example -The default is @file{$@{XEMACS_PACKAGES_BASE@}/../mule-packages}. +The value for this variable can also be the symbol +@samp{mule-packages}, which means to build/install @emph{all} of the +Mule packages. The default is @samp{mule-packages}. -Packages requiring Mule to load correctly will be installed here. This -can be the final destination for files or symlinks (if the packages are -being installed locally), or a clean staging area for building tarballs. +@item PACKAGE_INDEX +The name of the package-index file. The default is @file{package-index} +and you probably don't need to worry about changing it. -@strong{N.B.} @samp{make bindist} ignores this variable. It should be -handled by the administration utilities, but currently isn't. +@item INSTALL +The path to a BSD compatible install program. The default is +@code{install -c}. -@item symlink -The default is the empty value. +@item TAR +The path to GNU/tar. The default is @code{tar}. -Set this to 't' if you want to simulate ``running in place.'' It is -currently not possible to ask XEmacs to use any package source tree as -an automatically configured member of @code{load-path}, and it is -unlikely that complex trees such as that of the Gnus package will ever -be able to ``run in place.'' This variable, when set to `t', causes the -build process to create a symlink farm otherwise identical to an -installed tree of binary packages. Thus it is purely a space -optimization. +@item BZIP2 +The path to the bzip2 compression program. The default is unset +(blank). If this is set @file{.tar.bz2} archives will be built +@emph{in addition to} the @file{.tar.gz} archives. + +@item EXCLUDES +For things that you @emph{don't} want to go into the package tarballs. +It takes the same format as GNU/tar's @code{--exclude} option. The +default is: -Setting this is incompatible with @samp{make bindist}. -@end table +@example +EXCLUDES = \ + --exclude 'CVS' \ + --exclude 'RCS' \ + --exclude 'SCCS' \ + --exclude '*~' \ + --exclude '*.orig' \ + --exclude '*.rej' \ + --exclude '.\#*' +@end example -The following variables determine how packages are made. +@item VANILLA +Set to the XEmacs command line option that forces running in +@dfn{vanilla} mode. The default is @samp{-vanilla}. You wouldn't ever +need to alter this. + +@item BATCH +How to put XEmacs into @dfn{batch} mode. It also sets a couple of other +things and in the normal course of events you wouldn't need to alter +this from the default which is: -@table @var -@item XEMACS -The default is @samp{xemacs}. +@example +BATCH = $(VANILLA) -batch -eval \ + '(setq stack-trace-on-error t \ + load-always-display-messages t \ + load-ignore-out-of-date-elc-files t \ + load-show-full-path-in-messages t)' +@end example -The path to the XEmacs executable you wish to use to compile the -packages and execute Lisp build scripts. +@item MAKEINFO +The path to @code{makeinfo}. The default is @samp{makeinfo} -@item XEMACS_NATIVE_NT -The default is the empty value. +@item INSTALL_HTML +Set this to @samp{t} if you want to install HTML versions of the Texinfo +documentation. The default is unset (blank). -Set this to 't' if you are building on WinNT. It controls hairy shell -quoting in the @file{Makefile}s. +@item TEXI2HTML +The path to the program that can convert Texinfo source to HTML. The +default is @code{texi2html}. -@item INSTALL -The default is @samp{install -c}. +@item TEXI2DVI +The path to the program that can convert Texinfo source to DVI. The +default is @code{texi2dvi} -The path to your BSD compatible install program. +@item DVIPS +The path to the program that can convert DVI to Postscript. The default +is @code{dvips} -@item TAR -The default is @samp{tar}. +@item TEXI2PDF +The path to the program that can convert Texinfo source to PDF format. +The default is @code{texi2pdf}. -The path to your tar program. +@item TEX +The path to @TeX{}. The default is @code{tex} -@item BZIP2 -The default is the empty value. - -If unset, bzipped tarballs will not be built. If this is set to -something that resolves to a @samp{bzip2} executable, bzip2 tarballs -will be built @emph{in addition to} @samp{gzip} tarballs. +@item MSGFMT +The path to msgfmt. The default is @code{msgfmt} -@item MAKEINFO -The default is @samp{makeinfo}. +@item RCOPY +The path to your copy command (GNU cp). The default is dependent on +whether or not @var{symlink} is set (@samp{t}). -The path to your @file{makeinfo} program +If @var{symlink} is unset (blank), @var{RCOPY}'s default is +@code{cp -af}. If @var{symlink} is set (@samp{t}), @var{RCOPY}'s +default is @code{cp --force --recursive --symbolic-link}. @end table +It should be noted that in most cases the defaults should be fine. Most +people will probably only need to alter: + +@itemize @bullet +@item @var{XEMACS_INSTALLED_PACKAGES_ROOT} +@item @var{NONMULE_INSTALLED_PACKAGES_ROOT} +@item @var{MULE_INSTALLED_PACKAGES_ROOT} +@item @var{NONMULE_PACKAGES} +@item @var{MULE_PACKAGES} +@end itemize -@c #### The following section is lifted verbatim from the XEmacs User's -@c Manual, file packages.texi. @node Creating Packages, Documenting Packages, Local.rules File, Packaging @comment node-name, next, previous, up @cindex creating packages -@heading Creating Packages: +@chapter Creating Packages: Creating a package from an existing Lisp library is not very difficult. In addition to the Lisp libraries themselves, you need a -@file{package-info.in} file and a simple @file{Makefile}. The rest is +@ref{package-info.in} file and a simple @ref{Makefile}. The rest is done by @file{XEmacs.rules}, part of the packaging system infrastructure. -@file{package-info.in} contains a single Lisp form like this: +@menu +* package-info.in:: package-info.in +* Makefile:: @file{Makefile} +@end menu + +@node package-info.in, Makefile,,Creating Packages +@chapter package-info.in +@cindex package-info.in +@cindex package-info +@file{package-info.in} contains information that gets injected into the +@file{package-index} file when @code{make bindist} is run. Here is a +real world example from the xemacs-base package (a description of each +field follows the example): @example -(NAME ; your package's name +(xemacs-base (standards-version 1.1 - version VERSION ; Makefile - author-version AUTHOR_VERSION ; Makefile - date DATE ; Makefile - build-date BUILD_DATE ; generated - maintainer MAINTAINER ; Makefile - distribution DISTRIBUTION ; "mule" if MULE is needed, - ; else "xemacs" + version VERSION + author-version AUTHOR_VERSION + date DATE + build-date BUILD_DATE + maintainer MAINTAINER + distribution xemacs priority high - category CATEGORY ; Makefile + category CATEGORY dump nil - description "description" ; a one-line description string - filename FILENAME ; obsolete - md5sum MD5SUM ; generated - size SIZE ; generated - provides (FEATURE ...) ; one for every `provides' form - requires (REQUIRES) ; Makefile - ; NOT run-time dependencies! These - ; are files that provide macros or - ; defsubsts that must be inlined. + description "Fundamental XEmacs support, you almost certainly need this." + filename FILENAME + md5sum MD5SUM + size SIZE + provides (add-log advice-preload 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 passwd pp regexp-opt regi ring shell skeleton sort thing time-stamp timezone tq xbm-button xpm-button) + requires (REQUIRES) type regular )) @end example -You should replace NAME, DISTRIBUTION, DESCRIPTION, and FEATURE ... with -appropriate values, according to the comments. Fields marked as -@samp{obsolete} can be ignored. Fields marked as @samp{generated} are -generated by the package construction process, and will be filled in -automatically. Fields marked as @samp{Makefile} should be set as -variables in the @file{Makefile}. - -The @samp{provides} can be done automatically, but currently aren't. It -would probably be a good idea to set them in the @file{Makefile} (they -do change, fairly often, but at present they aren't. - -@c #### This organization sucks. Should break up by component, with -@c theory of operations, example, and reference subsections. -The @file{Makefile} is quite stylized. The idea is similar to an -@file{Imakefile} or an @code{automake} file: the complexity is hidden in -generic rules files, in this case the @file{XEmacs.rules} include file -in the top directory of the packages hierarchy. - -It is important to note that the XEmacs used to compile packages is the -bare minimum: it is called with the @samp{-no-user-file -no-site-file --no-autoloads}. This means that anything not dumped into XEmacs by -default needs to be specified in the @samp{REQUIRES} variable (for -packaged Lisp) or in some cases the @samp{PRELOADS} (autoloads used in -libraries mentioned in @samp{PRELOADS}). - -An @xpms{} @file{Makefile} has three components. First, there is a -variable definition section. The standard @xpms{} @file{make} variables -must be defined here for use by the @file{XEmacs.rules} include file. -Second, the file @file{../../XEmacs.rules} is included. Finally, the -@file{make} rules are defined, possibly including additional variable -definitions for use by the @file{Makefile}. These always include rules -for the targets @samp{all}, @samp{binkit}, and @file{srckit}. - -Although a number of facilities are available for complex libraries, -most simple packages' @file{Makefile}s contain a copyright notice, the -variable definitions mentioned above, and some boilerplate. - -@example -# Makefile for apackage's lisp code - -# 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. - -VERSION = 0.00 -AUTHOR_VERSION = 0.00 -MAINTAINER = A. M. Aintainer -PACKAGE = apackage -PKG_TYPE = regular -REQUIRES = xemacs-base -CATEGORY = standard - -# All .els should be compiled and packaged. -ELS = $(wildcard *.el) -ELCS = $(ELS:.el=.elc) - -include ../../XEmacs.rules - -all:: $(ELCS) auto-autoloads.elc custom-load.elc - -srckit: srckit-std - -binkit: binkit-common -@end example - -@menu -* package-compile.el:: -* package-info.in Fields:: -* Makefile Variables:: -* Makefile Targets:: -@end menu - - -@node package-compile.el, package-info.in Fields, , Creating Packages - -The @xpms{} does not automatically become aware of your package simply -because there is a new subtree. If any package, including your own, -requires any of your files, it must be explicitly added to the compile -environment or loads/requires that search load-path will fail. The -changes that need to be made are - -@table @strong -@item an entry in @code{package-directory-map} -This tells the @xpms{} which distribution (currently -@samp{xemacs-packages} or @samp{mule-packages}) your package is found -in. It then looks in the distribution subdirectory whose name is the -same as the package's. - -@item an entry in the @code{cond} in @code{package-name-to-directory} -This is optional; it is necessary only if you keep your Lisp code -somewhere other than the top-level directory of the package's source -tree, eg, in @file{packages/xemacs-packages/@var{PACKAGE}/lisp}. -@end table - -This only needs to be done once, when the package is first added to the -@xpms{}. (Well, when you randomly change the subdirectory layout, too.) -Your changes to @file{package-compile.el} must be cleared and checked in -by the XEmacs Package Release Engineer before your package will build -correctly from a fresh checkout. - -This is unfortunate; it works pretty well once set up, but can cause -confusion when first building a package in the @xpms{} context. In -particular, if the @code{package-directory-map} entry for a required -package -@c #### including the package itself? -is not found, the necessary requires will not be executed by -@file{package-compile.el}. If required functions are executed (under -@code{eval-when-compile}), they won't be found and the compile will -fail. If required function is actually a macro, the byte compiler will -not recognize that, compile a function call to the macro. This will -cause a run-time error because the byte-code interpreter does not know -how to execute macros. (Macros can always be expanded at compile-time, -and this is more efficient.) +@subheading Description of the Fields in @file{package-info.in}: +@table @samp +@item NAME +The name of the package. In the case of the example it is +@samp{xemacs-base}. -If your package keeps some or all Lisp code somewhere other than the top -directory, then an entry in @code{package-name-to-directory} is also -necessary, or requires will fail, leading to the problems just described. +@item standards-version +Part of the internal package infrastructure, its value should always be +@samp{1.1}. Do not change this. +@item version +This is the XEmacs package version number of the package. It is set +from the @file{Makefile} variable @var{VERSION}. This is something that +the XEmacs Package Release Engineer deals with so there is no need for a +package maintainer to touch it. In @file{package-info.in} just put the +place-marker, @samp{VERSION} here. + +@item author-version +This is the package's internal, or @samp{upstream} version number if it +has one. It is set from the @file{Makefile} variable +@var{AUTHOR_VERSION}. + +@item date +This is the date of the last change made to the package. It is +auto-generated at build time, taken from the package's toplevel +@file{ChangeLog}. -@node package-info.in Fields, Makefile Variables, package-compile.el, Creating Packages +@item build-date +The date the package was built. It is auto-generated. -The @file{package-info.in} structure is simply Lisp data, to be read by -a Lisp script, have values substituted for variables, and then written -out (appropriately quoted) into a loadable Lisp file, to be consed into -the @file{package-index.el} list at the FTP archives. That list is -structured as an alist with package names as keys. The package data is -a plist. Do not rely on this, as it may change. If you have a good -reason for relying on it, let the maintainers know and we may -incorporate it in a future revision of the @xpms{} standard. - -There are several kinds of fields, distinguished by how they get their -values. There are literals written into @file{package-info.in} by the -package maintainer. There are variables substituted in by the build -process, some computed, and others written as values of @file{make} -variables in the @file{Makefile} by the package maintainer. There are a -few implementation constants, some of which are simply the default value -for obsolete fields. - -The @file{package-info.in} literals provided by the maintainer generally -should not change over the life of the package. (The exception is the -@samp{provides} field, which should be generated, but isn't yet.) -Values described as ``literal'' below are unquoted literal text. These -are normally interpreted as symbols by the package build process. The -maintainer literals are - -@table @asis -@item @var{package_name} -A literal. The only unnamed ``field,'' the name of the package. +@item maintainer +This is the name and email address of the package's maintainer. It is +taken from the @file{Makefile} variable @var{MAINTAINER}. @item distribution -A literal, either @samp{xemacs} (for generic packages) or @samp{mule} -(for packages requiring Mule). @xref{Package Terminology}. - -@item description -A Lisp string containing a one-line text description for use in package -listings. - -@item provides -A (Lisp) list of features provided by the libraries in the package. All -of the features provided by libraries in your package should be elements -of this list. - -@item type -A literal, either @samp{regular} or @samp{single-file}. For practical -purposes, @samp{regular} should be considered an implementation constant. -@end table +An unused field, leave as @samp{xemacs} -@c #### The following should be rewritten to @xref the make variables -@c node, and simply associate the field names to the make variables with -@c one line of description. -Values which are expected to change regularly as the package is enhanced -are implemented as @file{make} variables. You should not change them in -the @file{package-info.in} file; they are automatically filled in by the -build process. +@item priority +An unused field, can be any of @samp{high}, @samp{medium}, or +@samp{low}. -The corresponding field name is given in parentheses. These include +@item category +The @samp{category} of the package. It is taken from the +@file{Makefile} variable @var{CATEGORY} and can be either +@samp{standard} for non-Mule packages, or @samp{mule} for Mule +packages. The is also provision for @samp{unsupported} in this field +which would be for packages that XEmacs.org do not distribute. -@table @code -@item VERSION -(version) -The version of the XEmacs package, a numeric literal (a decimal -fixed-point number with two-places of precision). +@strong{N.B.} As yet, the @xpms{} does @emph{not} support this type of +package. It will in the future. -@item AUTHOR_VERSION -(author-version) -The upstream author's version, an unintepreted literal. +@item dump +Unused. Always @samp{nil} -@item DATE -(date) -Date of release of the upstream version. +@item description +A free form short description of the package. -@item MAINTAINER -(maintainer) -A literal containing the XEmacs package's maintainer and his/her email -address. +@item filename +The file name of the package's binary tarball. It is generated at build +time by @code{make bindist}. -@item CATEGORY -(category) -A literal, either @samp{standard} or @samp{mule}. Probably redundant. +@item md5sum +The MD5 message digest of the package's binary tarball. Generated at +build time by @code{make bindist}. -@item REQUIRES -(requires) -A list of packages required to correctly build this package. +@item size +The size in bytes of the package's binary tarball. Generated at build +time. -Note that the usual form in @file{package-info.in} already has the -parentheses, so the @file{make} variable should be set to a -space-separated list of package names @emph{not} enclosed in -parentheses. +@item provides +A whitespace separated list of @emph{all} the features the package +provides. Surround the list with parens. -The list is of @emph{packages}, not @emph{libraries}, as would -ordinarily be provided to the Lisp @code{require} function. +@item requires +Taken from the @file{Makefile} variable @var{REQUIRES}. It is a list of +all the package's dependencies, including any macros and defstructs that +need to be inlined. @samp{REQUIRES} cannot be correctly computed from the calls to @code{require} in the package's library sources. @samp{REQUIRES} is @@ -996,55 +945,101 @@ in an error at run-time! Thus, packages providing libraries that would be loaded because of autoload definitions must also be included. -On the other hand, if a package provides no macros to this package, it -is preferable @emph{not} to include it in @samp{REQUIRES}, because it is -not uncommon that if the developer doesn't normally use the required -package, he will never use the functionality in the package being built, -either. In that case it would be preferable to not require the -developer to have source for the dependencies. That said, of course it -is safe to put too many packages in @samp{REQUIRES}. +@item type +Can either be @samp{regular} for a regular package, or +@samp{single-file} for a single file package. + +@strong{N.B.} This doesn't refer to the number of lisp files in a +package. A single-file package can have multiple lisp files in it. +@xref{Package Terminology}. @end table -Values for the following fields are automatically generated by the build -process. +The fields in @file{package-info.in} that need to be changed directly +are: -@table @asis -@item build-date -The date the package tarball was generated. +@itemize @bullet +@item NAME +@item description +@item provides +@item type +@end itemize -@item md5sum -An MD5 checksum for the package tarball, as gzipped. +Everything else is either set from the appropriate @file{Makefile} +variable, is auto-generated at build time, or is static. -@item size -The size of the package tarball, as gzipped. -@end table +@node Makefile,,package-info.in,Creating Packages +@chapter @file{Makefile} +@cindex Makefile, package +@cindex package Makefile +The @file{Makefile} is quite stylized. The idea is similar to an +@file{Imakefile} or an @code{automake} file: the complexity is hidden in +generic rules files, in this case the @file{XEmacs.rules} include file +in the top directory of the packages hierarchy. -It is not clear that either md5sum or size works correctly if the -@samp{BZIP2} variable in @file{Local.rules} is set. +It is important to note that the XEmacs used to compile packages is +the bare minimum: it is called with the @samp{-no-autoloads}. This +means that anything not dumped into XEmacs by default needs to be +specified in the @samp{REQUIRES} variable (for packaged Lisp) or in +some cases the @samp{PRELOADS} (autoloads used in libraries mentioned +in @samp{PRELOADS}). + +There isn't much to an @xpms{} @file{Makefile}, basically it just +contains a few @file{Makefile} variables and that's it. See the +example. -The implementation constants are +Here is a real world example, from the @samp{build} package: -@table @asis -@item standards-version -Currently 1.1. Defines the format of the @file{package-info.in} file -and the @file{Makefile}. A true implementation constant. +@example +# Makefile for build lisp code -@item priority -An unimplemented and underspecified feature. Suggestions for -specification and implementation welcome. +# This file is part of XEmacs. -@item dump -An obsolete feature, superseded by the @file{site-load.el} mechanism. -The value should always be nil. +# 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. -@item filename -An obsolete feature, completely ignored. Don't even think about doing -anything useful with it. -@end table +# 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. -@node Makefile Variables, Makefile Targets, package-info.in Fields, Creating Packages +# For the time being, remove MULE_ELCS from the all dependencies if +# building without Mule. +VERSION = 1.10 +AUTHOR_VERSION = 2.02 +MAINTAINER = Adrian Aichner +PACKAGE = build +PKG_TYPE = regular +REQUIRES = xemacs-base pcl-cvs dired w3 prog-modes +CATEGORY = standard + +ELCS = build.elc build-report.elc + +STANDARD_DOCS = t + +include ../../XEmacs.rules +@end example + +Most packages don't need any more than what you see above. It is +usually @emph{not} necessary to specify any special @file{Makefile} +rules. Everything is handled from the @file{*.rules} files in the +toplevel of the package source hierarchy. + +Of course, with that said, there are always exceptions to the rule. If +you think that your package will need some special @file{Makefile} +hackery contact the @email{xemacs-beta@@xemacs.org, XEmacs developers}. +We distribute over 100 packages so the chances are good that you won't +be the first to need such hackery and it is probably already catered +for. + +@subheading @file{Makefile} Variables Explained: A number of @file{make} variables are defined by the @xpms{}. Some are required, others are optional. Of course your @file{Makefile} may define other variables for private use, but you should be careful not to @@ -1058,28 +1053,40 @@ @c This is the canonical place for this information. If there is @c unnecessary duplication with package-info.in documentation, shorten @c that and leave this full-length. -@table @code +@table @samp @item VERSION (version) The version of the XEmacs package, a numeric literal (a decimal -fixed-point number with two-places of precision). +fixed-point number with two-places of precision). The only person who +ever needs to touch this is the XEmacs Packages Release Engineer. @item AUTHOR_VERSION (author-version) -The upstream author's version, an unintepreted literal. - -@item DATE -(date) -Date of release of the upstream version. +The upstream author's version, an uninterpreted literal. @item MAINTAINER (maintainer) A literal containing the XEmacs package's maintainer and his/her email address. +@item PACKAGE +The name of the package, a literal + +@item PKG_TYPE +The type of package, a literal containing either @samp{regular} for +regular packages, or @samp{single-file} for single-file packages. This +should feed the @samp{type} field in @file{package-info.in}, but +currently it doesn't. + +@strong{N.B.} @samp{single-file} here does @emph{not} refer to the +number of lisp files in a package. @xref{Package Terminology}. + @item CATEGORY (category) -A literal, either @samp{standard} or @samp{mule}. Probably redundant. +A literal, either @samp{standard} or @samp{mule}. The non-Mule packages +are @samp{standard} and the Mule packages are, you guessed it, +@samp{mule}. This field is used at package installation time as part of +the process of determining where a package should be installed to. @item REQUIRES (requires) @@ -1103,14 +1110,6 @@ in an error at run-time! Thus, packages providing libraries that would be loaded because of autoload definitions must also be included. -On the other hand, if a package provides no macros to this package, it -is preferable @emph{not} to include it in @samp{REQUIRES}, because it is -not uncommon that if the developer doesn't normally use the required -package, he will never use the functionality in the package being built, -either. In that case it would be preferable to not require the -developer to have source for the dependencies. That said, of course it -is safe to put too many packages in @samp{REQUIRES}. - @item ELCS The list of the byte-compiled Lisp files used by the package. These files and their @file{.el} versions will be included in the binary @@ -1128,28 +1127,42 @@ do sanity checking to @email{xemacs-patches@@xemacs.org}. @end table -Optional, but very commonly used variables are explained below. +Optional, but commonly used variables are explained below. -@table @code -item EXTRA_SOURCES -Other files (such as extra Lisp sources or an upstream @file{Makefile}) -that are normally placed in the installed Lisp directory, but not -byte-compiled. These files are @emph{preserved} by the @samp{clean} -targets. +@table @samp +@item ELCS_1 +A list of extra byte-compiled Lisp files used by the package to be +installed in a subdirectory of the package's lisp directory. The same +care should be taken with this as with @var{ELCS} in regard to +@code{make clean}. + +@item ELCS_1_DEST +The name of the subdirectory for the @var{ELCS_1} files to be installed +to. Be sure to include @samp{$(PACKAGE)/} as part of the name. -@item EXTRA_OBJS -Other files (such as compiled autoload or concatenated @file{.elc} -libraries) which are normally placed in the installed Lisp directory, -but do @emph{not} have corresponding source files and @emph{should} be -deleted by the @samp{clean} targets. Some of these (such as -package-specific autoload setups) can and probably should be replaced by -@xpms{} solutions such as @file{auto-autoloads.el}, but many cannot. - -@item PRELOADS -A specification for loading libraries containing macros before compiling -the Lisp in the package. This is spliced directly into the invocation -of XEmacs for byte-compilation, so it must contain the @samp{-l} flag -for XEmacs: +@example +ELCS_1_DEST = $(PACKAGE)/extra +@end example + +Would put the @var{ELCS_1} files for the package, @samp{foo} into +@file{xemacs-packages/lisp/foo/extra/}. + +@item EARLY_GENERATED_LISP +For additional @file{.el} files that will be generated before any +byte-compiling happens. Use this for @samp{autoload-type} files. You +must write @file{Makefile} rules to build these files. + +@item GENERATED_LISP +For additional @file{.el} files that will be generated at +byte-compilation time. You must write @file{Makefile} rules to build +these files. + +@item PRELOADS +This is used if you need to pass extra command line arguments to +XEmacs to build the package. For instance, a specification for +loading libraries containing macros before compiling the Lisp in the +package. This is spliced directly into the invocation of XEmacs for +byte-compilation, so it must contain the @samp{-l} flag for XEmacs: @example PRELOADS=-l ./apackage-macros.el -l ../bpackage/lisp/bpackage-macros.el @@ -1160,123 +1173,154 @@ full path to packaged Lisp. The base @var{load-path} does include the core Lisp directory, so core libraries are found. -@item INFO_FILES -Any Info file(s) generated by the package. These must be paths relative -to the root of the package's source tree. - -@item TEXI_FILES -The Texinfo source file(s). These must be paths relative -to the root of the package's source tree. +@item AUTOLOAD_PATH +The subdirectory in the package's source tree where the @file{.el} files +reside. This is where the @file{auto-autoloads.el} file will be placed. + +@strong{N.B.} There is no need to use this variable if the @file{.el} +files are in the package's toplevel directory. @var{AUTOLOAD_PATH} +defaults to @samp{.}. + +@item PACKAGE_SUPPRESS +Place calls to @code{package-suppress} here to indicate Lisp libraries +that should only be available to particular versions of XEmacs. For +example: + +@example +PACKAGE_SUPPRESS = \ + (package-suppress 'xemacs-base \"regexp-opt\" '(emacs-version>= 21 5 11)) \ + (package-suppress 'xemacs-base \"easy-mmode\" '(emacs-version>= 21 5 11)) +@end example + +@c Change this when Ben has committed the WS that implements +@c `package-suppress' --SY. +@strong{N.B.} This feature has not yet been implemented in XEmacs yet. +It will appear in an upcoming version of XEmacs 21.5. + +@item STANDARD_DOCS +Set this to @samp{t} if your package's Texinfo source file is located in +the package's toplevel directory @emph{and} is named +@file{$(PACKAGE).texi}. + +@item EXPLICIT_DOCS +Use this to explicitly list Texinfo sources that @emph{aren't} in the +package's toplevel directory. For example: + +@example +EXPLICIT_DOCS = texi/$(PACKAGE).texi +@end example + +See @var{DOCS_TXI_EXTENSION} and @var{DOCS_TEXINFO_EXTENSION} if you +don't use the @file{.texi} file extension on your Texinfo sources. + +@item EXTRA_TEXI_FILES +List here extra Texinfo source files needed to build your +documentation. Whatever is listed here is passed on to @code{makeinfo} +as a dependency. + +@item EXTRA_HTML_FILES +Use this to specify extra @file{.html} files to output. + +@item DOCS_TEXINFO_EXTENSION +Set this to @samp{t} if your Texinfo source files have a @samp{.texinfo} +extension. + +@item DOCS_TXI_EXTENSION +Set this to @samp{t} if your Texinfo source files have a @samp{.txi} +extension. + +@item EXTRA_DOC_FILES +Files listed here will be installed to @file{.../man/$(PACKAGE)/}. For +example, you might want to list @TeX{} files or @file{.eps} files here. + +@item EXTRA_SOURCES +Other files (such as extra Lisp sources or an upstream @file{Makefile}) +that are normally placed in the installed Lisp directory, but not +byte-compiled. These files are @emph{preserved} by the @samp{clean} +targets. -@item MANUAL -The name to be used for Info files and man pages. +@item LIBSRC_FILES +For files that need to be installed to @file{lib-src/$(PACKAGE)/}. If +the files listed here need to be built you will have to write +@file{Makefile} rules to do so. @item DATA_FILES Any data files, such as pixmaps, READMEs, and ChangeLogs. These must be paths relative to the root of the package's source tree. These files will be copied to @samp{$(DATA_DEST)} for installation. Any directory component of the path for a file will be stripped, so that the -file ends up in @samp{$(DATA_DEST)}, not in a subdiredtory. If there are -several destination directories, the forms @samp{$(DATA_FILES_@var{n})} -and @samp{$(DATA_DEST_@var{n})} (@var{n} may take values in 1-40) must -be used. The @xpms{} doesn't make provision for copying trees at this -time. +file ends up in @samp{$(DATA_DEST)}, not in a subdiredtory. @item DATA_DEST -The installation location for data files, relative to the @file{etc/} -directory of the package hierarchy. The default is currently empty, but -the normal value is simply $(PACKAGE). Leaving it empty (@emph{i.e.}, -put it directly under @file{etc/}) will probably work, but is subject to -name conflicts with other packages. If there are several destination -directories, the form @samp{$(DATA_DEST_@var{n})} must be used. The -@xpms{} doesn't make provision for copying trees at this time. -@end table - -The following variables are defaulted by @file{Local.rules} or -@file{XEmacs.rules}. These variables often should be added to using -@samp{+=} rather than set by @samp{=} or @samp{:=}. +The directory where the files in @var{DATA_FILES} are installed to. It +is a subdirectory of the installed @file{etc/} directory. Be sure to +prefix this value with @samp{$(PACKAGE)}, for example: -@table @code -@item GENERATED -@c #### Is this correct? -A list of @file{.elc} files compiled from @file{.el} files generated by -the package build process. These files and the corresponding @file{.el} -files are copied to the installed @file{lisp} directory. Defaults to -@samp{$@{AUTOLOAD_PATH@}/auto-autoloads.elc}. Typical usage is @example -GENERATED += $@{AUTOLOAD_PATH@}/custom-load.elc +DATA_DEST = $(PACKAGE)/foo @end example -@end table -Rarely used variables. +Would put files into @file{.../etc/$(PACKAGE)/foo/}. -@c @table @code -@c @item -@c @end table - -@node Makefile Targets, , Makefile Variables, Creating Packages - -The standard targets that need to be defined in your @file{Makefile} -follow. These normally should @emph{not} have an action. All of the -work should be done by dependent targets, usually having standard -definitions in the @xpms{}. - -@table @samp -@item all -A list of generated files, usually byte-compiled Lisp libraries, to be -bundled in the package. The typical dependencies are - -@example -$(ELCS) auto-autoloads.elc custom-load.elc -@end example - -Other targets (such as Info files) may need to be added as dependencies -for the @code{all} target. - -@item srckit -The target for generating a source package. Not implemented. If it -were, the normal dependency would be @samp{srckit-std}. - -@item binkit -The target for creating a ``master'' installation. Binary packages are -actually generated by the @samp{bindist} target. @xref{Building Packages}. +@item DATA_1_FILES ... DATA_35_FILES +For data files that need to go into a different directory from +@var{DATA_DEST}. + +@item DATA_1_DEST ... DATA_35_DEST +The name of the subdirectory for files specified in @var{DATA_n_FILES}. +And like @var{DATA_DEST}, be sure to prefix @samp{$(PACKAGE)} to the +value of these variables. + +@item EXTRA_DEPENDENCIES +For additional files to build that aren't appropriate to place in any +other @file{Makefile} variable. You will need to write @file{Makefile} +rules to build these files. @end table -Standard dependencies for @code{srckit} and @code{binkit} are defined in -@file{XEmacs.rules}. The most useful of these values are given in the -following table. +@section @file{package-compile.el} +@cindex package-compile.el +@cindex compiling packages +The @xpms{} does not automatically become aware of your package simply +because there is a new subtree. If any package, including your own, +requires any of your files, it must be explicitly added to the compile +environment or loads/requires that search load-path will fail. The +changes that need to be made are -@table @samp -@item srckit-std -Build a standard source kit. Not fully implemented. +@table @strong +@item an entry in @code{package-directory-map} +This tells the @xpms{} which distribution (currently +@samp{xemacs-packages} or @samp{mule-packages}) your package is found +in. It then looks in the distribution subdirectory whose name is the +same as the package's. -@item binkit-sourceonly -The @samp{binkit} target need only install source and compiled Lisp in -the staging area. There is nothing to install in a data directory or -info directory. - -@item binkit-sourceinfo -Both source and info files are to be installed in the staging area. - -@item binkit-sourcedata -Both source and etc (data) files are to be installed in the staging -area. - -@item binkit-sourcedatainfo -Source, etc (data), and info files all are present and need to be -installed in the staging area. - -@item binkit-common -A dependency for all the above. (In fact in the current implementation -@samp{binkit-common} does all the work for all of the @samp{binkit} -targets.) +@item an entry in the @code{cond} in @code{package-name-to-directory} +This is optional; it is necessary only if you keep your Lisp code +somewhere other than the top-level directory of the package's source +tree, eg, in @file{packages/xemacs-packages/@var{PACKAGE}/lisp}. @end table -Data files include things like pixmaps for a package-specific toolbar, -and are normally installed in @file{etc/@var{PACKAGE_NAME}}. A few -packages have needs beyond the basic templates. See @file{XEmacs.rules} -or a future revision of this manual for details. +This only needs to be done once, when the package is first added to the +@xpms{}. (Well, when you randomly change the subdirectory layout, too.) +Your changes to @file{package-compile.el} must be cleared and checked in +by the XEmacs Package Release Engineer before your package will build +correctly from a fresh checkout. + +This is unfortunate; it works pretty well once set up, but can cause +confusion when first building a package in the @xpms{} context. In +particular, if the @code{package-directory-map} entry for a required +package, including the package itself, is not found, the necessary +requires will not be executed by @file{package-compile.el}. If +required functions are executed (under @code{eval-when-compile}), +they won't be found and the compile will fail. If required function +is actually a macro, the byte compiler will not recognize that, +compile a function call to the macro. This will cause a run-time +error because the byte-code interpreter does not know how to execute +macros. (Macros can always be expanded at compile-time, and this is +more efficient.) +If your package keeps some or all Lisp code somewhere other than the top +directory, then an entry in @code{package-name-to-directory} is also +necessary, or requires will fail, leading to the problems just described. @node Documenting Packages, Issues, Creating Packages, Packaging @comment node-name, next, previous, up Index: man/new-users-guide/custom2.texi =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/man/new-users-guide/custom2.texi,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- man/new-users-guide/custom2.texi 12 Apr 2001 18:22:24 -0000 1.4 +++ man/new-users-guide/custom2.texi 27 Aug 2003 18:07:08 -0000 1.5 @@ -419,7 +419,7 @@ @noindent If you want to write your own menus, you can look at some of the examples in -@file{/usr/local/lib/xemacs-VERSION/lisp/packages/big-menubar.el} file. +@file{/usr/local/lib/xemacs/xemacs-packages/lisp/edit-utils/big-menubar.el} file. @end itemize Index: man/xemacs/packages.texi =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/man/xemacs/packages.texi,v retrieving revision 1.21 retrieving revision 1.23 diff -u -r1.21 -r1.23 --- man/xemacs/packages.texi 20 Mar 2003 13:21:30 -0000 1.21 +++ man/xemacs/packages.texi 27 Aug 2003 18:07:10 -0000 1.23 @@ -20,7 +20,6 @@ * Installing Packages:: How to install packages. * Building Packages:: Building packages from CVS sources. * Local.rules File:: This is an important file that you must create. -* Creating Packages:: The basics. * Available Packages:: A brief directory of packaged LISP. @end menu @@ -70,6 +69,7 @@ Currently, source packages are only available via CVS. See @url{http://cvs.xemacs.org/} for details. + @node Installing Packages, Building Packages, Package Terminology, Packages @comment node-name, next, previous, up @cindex installing packages @@ -107,13 +107,13 @@ access it via the menus: @example - Tools -> Packages -> List and Install +Tools -> Packages -> List and Install @end example Or, you can get to it via the keyboard: @example -M-x pui-list-packages +@code{M-x pui-list-packages} @end example Hint to system administrators of multi-user systems: it might be a good @@ -125,10 +125,10 @@ that you need @code{thingatpt}, type: @example -M-x package-get-package-provider RET thingatpt +@code{M-x package-get-package-provider RET thingatpt} @end example -which will return something like (fsf-compat "1.08"). You can the use +which will return something like @samp{(fsf-compat "1.08")}. You can the use one of the methods above for installing the package you want. @subsection XEmacs and Installing Packages @@ -136,80 +136,18 @@ There are three main ways to install packages: @menu -* Sumo:: All at once, using the 'Sumo Tarball'. -* Manually:: Using individual package tarballs. * Automatically:: Using the package tools from XEmacs. +* Manually:: Using individual package tarballs. +* Sumo:: All at once, using the 'Sumo Tarball'. * Which Packages:: Which packages to install. * Removing Packages:: Removing packages. @end menu But regardless of the method you use to install packages, they can only -be used by XEmacs after a restart. - -@node Sumo, Manually, ,Installing Packages -@comment node-name, next, previous, up -@cindex sumo package install -@heading Installing the Sumo Packages: -Those with little time, cheap connections and plenty of disk space can -install all the packages at once using the sumo tarballs. -Download the file: @file{xemacs-sumo.tar.gz} - -For an XEmacs compiled with Mule you also need: @file{xemacs-mule-sumo.tar.gz} - -N.B. They are called 'Sumo Tarballs' for good reason. They are -currently about 19MB and 4.5MB (gzipped) respectively. - -Install them by: - -@code{cd $prefix/lib/xemacs ; gunzip -c | tar xvf - RET} - -Or, if you have GNU tar: - -@code{cd $prefix/lib/xemacs ; tar zxvf /path/to/ RET} - -As the Sumo tarballs are not regenerated as often as the individual -packages, it is recommended that you use the automatic package tools -afterwards to pick up any recent updates. - -@node Manually, Automatically, Sumo, Installing Packages -@comment node-name, next, previous, up -@cindex manual package install -@heading Manual Package Installation: -Fetch the packages from the FTP site, CD-ROM whatever. The filenames -have the form @file{name--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. - -Note: If you are upgrading packages already installed, it's best to -remove the old package first @ref{Removing Packages}. - -For example if we are installing the @file{xemacs-base} -package (version 1.48): +be used by XEmacs after a restart unless the package in question has not +been previously installed. -@example - mkdir $prefix/lib/xemacs/xemacs-packages RET # if it does not exist yet - cd $prefix/lib/xemacs/xemacs-packages RET - gunzip -c /path/to/xemacs-base-1.48-pkg.tar.gz | tar xvf - RET - -Or if you have GNU tar, the last step can be: - - tar zxvf /path/to/xemacs-base-1.48-pkg.tar.gz RET -@end example - -For MULE related packages, it is best to untar into the mule-packages -hierarchy, i.e. for the @file{mule-base} package, version 1.37: - -@example - mkdir $prefix/lib/xemacs/mule-packages RET # if it does not exist yet - cd $prefix/lib/xemacs/mule-packages RET - gunzip -c /path/to/mule-base-1.37-pkg.tar.gz | tar xvf - RET - -Or if you have GNU tar, the last step can be: - - tar zxvf /path/to/mule-base-1.37-pkg.tar.gz RET -@end example - -@node Automatically, Which Packages ,Manually, Installing Packages +@node Automatically, Manually, ,Installing Packages @comment node-name, next, previous, up @cindex automatic package install @cindex package tools @@ -229,7 +167,8 @@ and optionally: - mule-base - Needed if you want to use XEmacs with MULE. + mailcrypt - To do PGP verification of the @file{package-index} + file. @end example After installing these by hand, fire up XEmacs and follow these @@ -238,7 +177,7 @@ @enumerate 1 @item Choose a download site. -via menu: Tools -> Packages -> Add Download Site +via menu: Tools -> Packages -> Set Download Site via keyb: @code{M-x customize-variable RET package-get-remote RET} (put in the details of remote host and directory) @@ -348,12 +287,75 @@ from the menubar: @example -Tools -> Packages -> Add Download Site +Tools -> Packages -> Set Download Site Tools -> Packages -> Update Installed Packages @end example -@node Which Packages, Removing Packages, Automatically, Installing Packages +@node Manually, Sumo, Automatically, Installing Packages +@comment node-name, next, previous, up +@cindex manual package install +@heading Manual Package Installation: +Fetch the packages from the FTP site, CD-ROM whatever. The filenames +have the form @file{name--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. + +Note: If you are upgrading packages already installed, it's best to +remove the old package first @ref{Removing Packages}. + +For example if we are installing the @file{xemacs-base} +package (version 1.48): + +@example + mkdir $prefix/lib/xemacs/xemacs-packages RET # if it does not exist yet + cd $prefix/lib/xemacs/xemacs-packages RET + gunzip -c /path/to/xemacs-base-1.48-pkg.tar.gz | tar xvf - RET + +Or if you have GNU tar, the last step can be: + + tar zxvf /path/to/xemacs-base-1.48-pkg.tar.gz RET +@end example + +For MULE related packages, it is best to untar into the mule-packages +hierarchy, i.e. for the @file{mule-base} package, version 1.37: + +@example + mkdir $prefix/lib/xemacs/mule-packages RET # if it does not exist yet + cd $prefix/lib/xemacs/mule-packages RET + gunzip -c /path/to/mule-base-1.37-pkg.tar.gz | tar xvf - RET + +Or if you have GNU tar, the last step can be: + + tar zxvf /path/to/mule-base-1.37-pkg.tar.gz RET +@end example + +@node Sumo, Which Packages, Manually, Installing Packages +@comment node-name, next, previous, up +@cindex sumo package install +@heading Installing the Sumo Packages: +Those with little time, cheap connections and plenty of disk space can +install all the packages at once using the sumo tarballs. +Download the file: @file{xemacs-sumo.tar.gz} + +For an XEmacs compiled with Mule you also need: @file{xemacs-mule-sumo.tar.gz} + +N.B. They are called 'Sumo Tarballs' for good reason. They are +currently about 19MB and 4.5MB (gzipped) respectively. + +Install them by: + +@code{cd $prefix/lib/xemacs ; gunzip -c | tar xvf - RET} + +Or, if you have GNU tar: + +@code{cd $prefix/lib/xemacs ; tar zxvf /path/to/ RET} + +As the Sumo tarballs are not regenerated as often as the individual +packages, it is recommended that you use the automatic package tools +afterwards to pick up any recent updates. + +@node Which Packages, Removing Packages, Sumo, Installing Packages @comment node-name, next, previous, up @cindex which packages @cindex choosing packages @@ -364,7 +366,7 @@ 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 +text-modes, time, mailcrypt If you are using the XEmacs package tools, don't forget to do: @@ -428,52 +430,10 @@ tarballs for installation into your own XEmacs installations or for distributing to others. -Supported operations from @file{make} are: - -@table @code -@item all -Bytecompile all files, build and bytecompile byproduct files like -@file{auto-autoloads.el} and @file{custom-load.el}. Create info version -of TeXinfo documentation if present. - -@item bindist -Does a @code{make all} as well as create a binary package tarball in the -staging directory. - -@item install -Bytecompile all files, build and bytecompile byproduct files like -@file{auto-autoloads.el} and @file{custom-load.el}. Create info version -of TeXinfo documentation if present. And install everything into the -staging directory. - -@item srckit -Usually aliased to @code{srckit-std}. This does a @code{make -distclean} and creates a package source tarball in the staging -directory. This is generally only of use for package maintainers. - -@item binkit -May be aliased to @code{binkit-sourceonly}, @code{binkit-sourceinfo}, -@code{binkit-sourcedata}, or -@code{binkit-sourcedatainfo}. @code{sourceonly} indicates there is -nothing to install in a data directory or info directory. -@code{sourceinfo} indicates that source and info files are to be -installed. @code{sourcedata} indicates that source and etc (data) files -are to be installed. @code{sourcedatainfo} indicates source, etc -(data), and info files are to be installed. A few packages have needs -beyond the basic templates so this is not yet complete. - -@item dist -Runs the rules @code{srckit} followed by @code{binkit}. This is -primarily of use by XEmacs maintainers producing files for distribution. - -@item clean -Remove all built files except @file{auto-autoloads.el} and @file{custom-load.el}. - -@item distclean -Remove all created files. -@end table +For a list and description of the different @file{Makefile} targets, +@xref{Makefile Targets,,,lispref}. -@node Local.rules File, Creating Packages, Building Packages, Packages +@node Local.rules File, Available Packages, Building Packages, Packages @comment node-name, next, previous, up @cindex local.rules @heading The Local.rules File: @@ -482,199 +442,10 @@ file, @file{Local.rules.template}. Simply copy that to @file{Local.rules} and edit it to suit your needs. -These are the variables in 'Local.rules' that you will need to -address. Items that have default settings have those defaults shown. - -@table @var -@item XEMACS = xemacs -If your XEmacs isn't in your path, change this. Native MS Windows users -should double quote this if the path has embedded spaces. - -@item BUILD_WITHOUT_MULE = -Building from CVS defaults to building the Mule -packages. Set this to 't' if you don't want/have Mule - -@item XEMACS_NATIVE_NT = -Set this to 't' if you are building on WinNT. NT users should note that -you still need the Cygwin environment to build the packages. - -@item XEMACS_INSTALLED_PACKAGES_ROOT = /usr/local/lib/xemacs -This is the directory tree under which the installed packages go. Under -this directory there would normally be @file{xemacs-packages/} for -standard (non-Mule) packages, @file{mule-packages/} for Mule packages -(if you built XEmacs with Mule), and possibly @file{site-packages/} for -3rd party packages that aren't distributed by XEmacs.org. - -@item symlink = -Set this to 't' if you want to do a "run in place". -Setting this doesn't work well with 'make bindist' - -@item NONMULE_INSTALLED_PACKAGES_ROOT = $@{XEMACS_INSTALLED_PACKAGES_ROOT@}/xemacs-packages -This is where the non-Mule packages are installed to. You probably -don't want to change this. - -@item MULE_INSTALLED_PACKAGES_ROOT = $@{XEMACS_INSTALLED_PACKAGES_ROOT@}/mule-packages -This is where the Mule packages are installed to. You probably don't -want to change this. Please note that @code{make bindist} does -@emph{not} use this variable. When doing a @code{make bindist} -@emph{everything} goes into @var{NONMULE_INSTALLED_PACKAGES_ROOT}. - -@item NONMULE_PACKAGES = xemacs-packages -This is where you set the non-Mule packages that you want to install. eg: -@example - XEMACS_PACKAGES = xemacs-packages/xemacs-base xemacs-packages/bbdb -@end example - -@item MULE_PACKAGES = mule-packages -Same as for 'XEMACS_PACKAGES' except you list the Mule -packages you want to install here. eg: -@example - MULE_PACKAGES = mule-packages/mule-base mule-packages/skk -@end example - -@item PACKAGE_INDEX = package-index -If you want the package-index file to have a different -name, change this. +For a complete discussion of the @file{Local.rules} file, +@xref{Local.rules File,,,lispref}. -@item INSTALL = install -c -The path to your BSD compatible install program. - -@item TAR = tar -The path to your tar program - -@item BZIP2 = -If you want bzip2 tarballs, set this. - -@item MAKEINFO = makeinfo -The path to your makeinfo program -@end table - - -@node Creating Packages, Available Packages, Local.rules File, Packages -@comment node-name, next, previous, up -@cindex creating packages -@heading Creating Packages: -Creating a package from an existing Lisp library is not very difficult. - -In addition to the Lisp libraries themselves, you need a -@file{package-info.in} file and a simple @file{Makefile}. The rest is -done by @file{XEmacs.rules}, part of the packaging system -infrastructure. - -@file{package-info.in} contains a single Lisp form like this: - -@example -(name ; your package's name - (standards-version 1.1 - version VERSION - author-version AUTHOR_VERSION - date DATE - build-date BUILD_DATE - maintainer MAINTAINER - distribution xemacs ; change to "mule" if MULE is needed - priority high - category CATEGORY - dump nil - description "description" ; a one-line description string - filename FILENAME - md5sum MD5SUM - size SIZE - provides (feature1 feature2) ; one for every `provides' form - requires (REQUIRES) - type regular -)) -@end example - -You must fill in the four commented lines. The value of @code{name} is -the name of your package as an unquoted symbol. Normally it is the name -of the main Lisp file or principal feature provided. The allowed values -for distribution are @code{xemacs} and @code{mule}. Write them as -unquoted symbols. The @code{description} is a quoted Lisp string; use -the usual conventions. The value for @code{provides} is a list of -feature symbols (written unquoted). All of the features provided by -libraries in your package should be elements of this list. Implementing -an automatic method for generating the @file{provides} line is -desirable, but as yet undone. - -The variables in upper-case are references to variables set in the -@file{Makefile} or automatically generated. Do not change them; they -are automatically filled in by the build process. - -The remaining lines refer to implementation constants -(@code{standards-version}), or features that are unimplemented or have -been removed (@code{priority} and @code{dump}). The @code{type} line is -not normally relevant to external maintainers; the alternate value is -@code{single-file}, which refers to packages consed up out of a number -of single-file libraries that are more or less thematically related. An -example is @code{prog-modes}. Single-file packages are basically for -administrative convenience, and new packages should generally be created -as regular packages. - -The @file{Makefile} is quite stylized. The idea is similar to an -@file{Imakefile} or an @code{automake} file: the complexity is hidden in -generic rules files, in this case the @file{XEmacs.rules} include file -in the top directory of the packages hierarchy. Although a number of -facilities are available for complex libraries, most simple packages' -@file{Makefile}s contain a copyright notice, a few variable definitions, -an include for @file{XEmacs.rules}, and a couple of standard targets. - -The first few @code{make} variables defined are @code{VERSION}, -@code{AUTHOR_VERSION}, @code{MAINTAINER}, @code{PACKAGE}, -@code{PKG_TYPE}, @code{REQUIRES}, and @code{CATEGORY}. All but one were -described in the description of @file{package-info.in}. The last is an -administrative grouping. Current categories include @code{standard}, -and @code{mule}. - -Next, define the variable @code{ELCS}. This contains the list of the -byte-compiled Lisp files used by the package. These files and their -@file{.el} versions will be included in the binary package. If there -are other files (such as extra Lisp sources or an upstream -@file{Makefile}) that are normally placed in the installed Lisp -directory, but not byte-compiled, they can be listed as the value of -@code{EXTRA_SOURCES}. - -The include is simply -@example -include ../../XEmacs.rules -@end example - -The standard targets follow. These are - -@example -all:: $(ELCS) auto-autoloads.elc - -srckit: srckit-alias - -binkit: binkit-alias -@end example - -Other targets (such as Texinfo sources) may need to be added as -dependencies for the @code{all} target. Dependencies for @code{srckit} -and @code{binkit} (that is, values for @var{srckit-alias} and -@var{binkit-alias}) are defined in @file{XEmacs.rules}. The most useful -of these values are given in the following table. - -@table @var -@item srckit-alias -Usually set to @code{srckit-std}. - -@item binkit-alias -May be set to @code{binkit-sourceonly}, @code{binkit-sourceinfo}, -@code{binkit-sourcedata}, or -@code{binkit-sourcedatainfo}. @code{sourceonly} indicates there is -nothing to install in a data directory or info directory. -@code{sourceinfo} indicates that source and info files are to be -installed. @code{sourcedata} indicates that source and etc (data) files -are to be installed. @code{sourcedatainfo} indicates source, etc -(data), and info files are to be installed. -@end table - -Data files include things like pixmaps for a package-specific toolbar, -and are normally installed in @file{etc/@var{PACKAGE_NAME}}. A few -packages have needs beyond the basic templates. See @file{XEmacs.rules} -or a future revision of this manual for details. - -@node Available Packages, , Creating Packages, Packages +@node Available Packages, , Local.rules File, Packages @comment node-name, next, previous, up @cindex available packages @cindex packages @@ -684,7 +455,7 @@ looking for isn't here, please send a message to the @email{xemacs-beta@@xemacs.org, XEmacs Beta list}. -This data is up to date as of October 4, 2002. +This data is up to date as of June 27, 2003. @subsection Normal Packages A very broad selection of elisp packages. @@ -801,6 +572,9 @@ @item games Tetris, Sokoban, and Snake. +@item general-docs +General documentation. Presently, empty. + @item gnats XEmacs bug reports. @@ -859,13 +633,13 @@ Miscellaneous Networking Utilities. This is a single-file package and files may be deleted at will. +@item ocaml +Objective Caml editing support. + @item os-utils Miscellaneous single-file O/S utilities, for printing, archiving, compression, remote shells, etc. -@item ocaml -Objective Caml language support. - @item pc PC style interface emulation. @@ -878,6 +652,9 @@ @item perl-modes Perl language support. +@item pgg +Emacs interface to various PGP implementations. + @item prog-modes Miscellaneous single-file lisp files for various programming languages. @@ -989,6 +766,9 @@ @item w3 A Web browser. + +@item x-symbol +Semi WYSIWYG for LaTeX, HTML, etc, using additional fonts. @item xemacs-base Fundamental XEmacs support. Install this unless you wish a totally Index: man/xemacs/reading.texi =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/man/xemacs/reading.texi,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- man/xemacs/reading.texi 18 Dec 1996 22:43:51 -0000 1.1.1.1 +++ man/xemacs/reading.texi 27 Aug 2003 18:07:10 -0000 1.2 @@ -4,29 +4,35 @@ @cindex mail @cindex message -XEmacs provides three separate mail-reading packages. Each one comes with -its own manual, which is included standard with the XEmacs distribution. +XEmacs provides several mail-reading packages. Each one comes with +its own manual, which is included in each package. The recommended mail-reading package for new users is VM. VM works with standard Unix-mail-format folders and was designed as a replacement for the older Rmail. XEmacs also provides a sophisticated and comfortable front-end to the -MH mail-processing system, called @samp{mh-e}. Unlike in other +MH mail-processing system, called @samp{MH-E}. Unlike in other mail programs, folders in MH are stored as file-system directories, with each message occupying one (numbered) file. This facilitates working with mail using shell commands, and many other features of MH are also designed to integrate well with the shell and with -shell scripts. Keep in mind, however, that in order to use mh-e +shell scripts. Keep in mind, however, that in order to use MH-E you must have the MH mail-processing system installed on your computer. -Finally, XEmacs provides the Rmail package. Rmail is (currently) the -only mail reading package distributed with FSF GNU Emacs, and is -powerful in its own right. However, it stores mail folders in a special -format called @samp{Babyl}, that is incompatible with all other -frequently-used mail programs. A utility program is provided for -converting Babyl folders to standard Unix-mail format; however, unless -you already have mail in Babyl-format folders, you should consider -using VM or mh-e instead. (If at times you have to use FSF Emacs, it -is not hard to obtain and install VM for that editor.) +The @dfn{Everything including the kitchen sink} package @samp{Gnus} is +also available as an XEmacs package. Gnus also handles Usenet articles +as well as mail. + +@samp{MEW} (Messaging in the Emacs World) is another mail-reading +package available for XEmacs. + +Finally, XEmacs provides the Rmail package. Rmail is (currently) +the only mail reading package distributed with FSF GNU Emacs, and is +powerful in its own right. However, it stores mail folders in a +special format called @samp{Babyl}, that is incompatible with all +other frequently-used mail programs. A utility program is provided +for converting Babyl folders to standard Unix-mail format; however, +unless you already have mail in Babyl-format folders, you should +consider using Gnus, VM, or MH-E instead. Index: man/xemacs/xemacs.texi =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/man/xemacs/xemacs.texi,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- man/xemacs/xemacs.texi 3 Jan 2003 12:15:03 -0000 1.15 +++ man/xemacs/xemacs.texi 27 Aug 2003 18:07:10 -0000 1.16 @@ -241,7 +241,6 @@ * Installing Packages:: How to install packages. * Building Packages:: Building packages from sources. * Local.rules File:: An important part of building packages. -* Creating Packages:: The basics. * Available Packages:: A brief directory of packaged LISP. Basic Editing Commands Index: modules/ChangeLog =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/modules/ChangeLog,v retrieving revision 1.21 retrieving revision 1.26 diff -u -r1.21 -r1.26 --- modules/ChangeLog 1 Jun 2003 05:10:24 -0000 1.21 +++ modules/ChangeLog 4 Sep 2003 00:05:11 -0000 1.26 @@ -1,3 +1,30 @@ +2003-09-03 Steve Youngs + + * XEmacs 21.5.15 "celery" is released. + +2003-08-28 Jerry James + + * common/Makefile.common (LIBSTDCPP): New. + * common/Makefile.common (.c.o): Use it to avoid undefined symbol + errors when compiling modules with g++. + +2003-08-18 Jerry James + + * postgresql/postgresql.c: Include emodules.h when building a module. + * ldap/eldap.c: Ditto. + * common/Makefile.common: Make module makefiles processable by cpp. + * common/Makefile.common (IMPORT_LIB): New. + * common/Makefile.common: Use it. + +2003-06-11 Jerry James + + * common/Makefile.common: The last change re-broke FreeBSD module + building. Expand srcdir in SRC_SRCS with configure to fix it. + +2003-06-10 Jerry James + + * common/Makefile.common: Change GNUish := to =. + 2003-06-01 Steve Youngs * XEmacs 21.5.14 "cassava" is released. Index: modules/common/Makefile.common =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/modules/common/Makefile.common,v retrieving revision 1.5 retrieving revision 1.9 diff -u -r1.5 -r1.9 --- modules/common/Makefile.common 20 May 2003 15:00:24 -0000 1.5 +++ modules/common/Makefile.common 28 Aug 2003 15:44:19 -0000 1.9 @@ -27,6 +27,9 @@ ## Note: This will be appended to the individual module Makefiles by configure. +#define NOT_C_CODE +#include "../../src/config.h" + SHELL=/bin/sh RM=rm -f PROGNAME=@PROGNAME@ @@ -44,7 +47,7 @@ srcdir=@srcdir@ VPATH=@srcdir@ -SRC_SRCS:=$(SRCS:%=$(srcdir)/%) +SRC_SRCS=$(SRCS:%=@srcdir@/%) OBJS=$(SRCS:.c=.o) MODCC=@MOD_CC@ @@ -54,6 +57,10 @@ INSTALLPATH=@INSTALLPATH@ INSTALL_PROGRAM=@MOD_INSTALL_PROGRAM@ OBJECT_TO_BUILD=@OBJECT_TO_BUILD@ +LIBSTDCPP=@LIBSTDCPP@ +#ifdef HAVE_MS_WINDOWS +IMPORT_LIB=../../src/xemacs-import.a +#endif .PHONY: clean distclean install all: $(OBJECT_TO_BUILD) @@ -61,9 +68,9 @@ .c.o: $(MODCC) $(MODCFLAGS) -c $< -$(MODNAME).ell: $(OBJS) $(MODNAME)_i.o +$(MODNAME).ell: $(OBJS) $(MODNAME)_i.o $(IMPORT_LIB) $(MODCC) --mode=link --mode=verbose --mod-output=$@ \ - $(OBJS) $(MODNAME)_i.o $(LDFLAGS) + $(OBJS) $(MODNAME)_i.o $(IMPORT_LIB) $(LDFLAGS) $(LIBSTDCPP) $(MODNAME)_i.c: $(SRCS) ELLMAKEDOC=$(MAKE_DOCFILE) $(MODCC) --mode=init --mod-output=$@ \ Index: modules/ldap/eldap.c =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/modules/ldap/eldap.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- modules/ldap/eldap.c 7 Feb 2003 20:46:02 -0000 1.5 +++ modules/ldap/eldap.c 19 Aug 2003 02:07:09 -0000 1.6 @@ -36,6 +36,9 @@ #include "sysdep.h" #include "buffer.h" #include "process.h" /* for report_process_error */ +#ifdef HAVE_SHLIB +# include "emodules.h" +#endif #include Index: modules/postgresql/postgresql.c =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/modules/postgresql/postgresql.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- modules/postgresql/postgresql.c 12 Jan 2003 11:08:02 -0000 1.3 +++ modules/postgresql/postgresql.c 19 Aug 2003 02:07:12 -0000 1.4 @@ -102,6 +102,9 @@ #include "buffer.h" #include "postgresql.h" #include "process.h" +#ifdef HAVE_SHLIB +# include "emodules.h" +#endif #ifdef RUNNING_XEMACS_21_1 /* handle interface changes */ #define PG_OS_CODING FORMAT_FILENAME Index: netinstall/ChangeLog =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/netinstall/ChangeLog,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- netinstall/ChangeLog 1 Jun 2003 05:10:25 -0000 1.27 +++ netinstall/ChangeLog 4 Sep 2003 00:05:12 -0000 1.28 @@ -1,3 +1,7 @@ +2003-09-03 Steve Youngs + + * XEmacs 21.5.15 "celery" is released. + 2003-06-01 Steve Youngs * XEmacs 21.5.14 "cassava" is released. @@ -483,6 +487,6 @@ * all: port from cygwin setup. -%%% $Id: ChangeLog,v 1.27 2003/06/01 05:10:25 youngs Exp $ -$Revision: 1.27 $ +%%% $Id: ChangeLog,v 1.28 2003/09/04 00:05:12 youngs Exp $ +$Revision: 1.28 $ Index: nt/ChangeLog =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/nt/ChangeLog,v retrieving revision 1.162 retrieving revision 1.165 diff -u -r1.162 -r1.165 --- nt/ChangeLog 1 Jun 2003 05:10:26 -0000 1.162 +++ nt/ChangeLog 4 Sep 2003 00:05:13 -0000 1.165 @@ -1,3 +1,19 @@ +2003-09-03 Steve Youngs + + * XEmacs 21.5.15 "celery" is released. + +2003-08-31 Adrian Aichner + + * xemacs.mak (makeinfo-test): Moved after variable initialization + to make test actually work. + * xemacs.mak (TEMACS_BATCH_PACKAGES): New. + * xemacs.mak (check-temacs): Use TEMACS_BATCH_PACKAGES to enable + regression tests requiring packages. + +2003-06-15 Adrian Aichner + + * minitar.c (main): Handle 0 size files correctly. + 2003-06-01 Steve Youngs * XEmacs 21.5.14 "cassava" is released. Index: nt/minitar.c =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/nt/minitar.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- nt/minitar.c 13 Apr 2002 20:31:28 -0000 1.6 +++ nt/minitar.c 15 Jun 2003 13:25:46 -0000 1.7 @@ -139,6 +139,7 @@ { fprintf (stderr, "Error: incorrect magic number in tar header. Exiting\n"); + exit (-2); } strncpy (name, block, 100); @@ -158,6 +159,7 @@ break; default: fprintf (stderr, "Error: unknown type flag %c. Exiting.\n", type); + exit (-2); break; } @@ -218,6 +220,8 @@ fprintf (stderr, "Error: invalid size in tar header. Exiting.\n"); exit (-2); } + if (size==0) /* file of size 0 is done */ + in_block = 0; } } else { /* write or continue writing file contents */ nbytes = size>512? 512:size; @@ -227,6 +231,7 @@ { fprintf (stderr, "Error: only wrote %d bytes to file %s. Exiting.\n", nwritten, fullname); + exit (-2); } size -= nbytes; if (size==0) Index: nt/xemacs.mak =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/nt/xemacs.mak,v retrieving revision 1.104 retrieving revision 1.105 diff -u -r1.104 -r1.105 --- nt/xemacs.mak 30 Mar 2003 21:43:01 -0000 1.104 +++ nt/xemacs.mak 31 Aug 2003 17:52:59 -0000 1.105 @@ -1102,21 +1102,6 @@ info: makeinfo-test $(INFO_FILES) -makeinfo-test: - @< + + * XEmacs 21.5.15 "celery" is released. + 2003-06-01 Steve Youngs * XEmacs 21.5.14 "cassava" is released. Index: src/.gdbinit =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/.gdbinit,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- src/.gdbinit 12 Apr 2001 18:23:17 -0000 1.2 +++ src/.gdbinit 18 Jul 2003 20:07:05 -0000 1.3 @@ -257,7 +257,7 @@ else if $lrecord_type == lrecord_type_symbol ptype Lisp_Symbol - printf "Symbol name: %s\n", $type_ptr->name->data + printf "Symbol name: %s\n", ((Lisp_String *)$type_ptr->name)->data_ else if $lrecord_type == lrecord_type_vector ptype Lisp_Vector Index: src/ChangeLog =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/ChangeLog,v retrieving revision 1.597 retrieving revision 1.618 diff -u -r1.597 -r1.618 --- src/ChangeLog 1 Jun 2003 05:10:28 -0000 1.597 +++ src/ChangeLog 4 Sep 2003 00:05:15 -0000 1.618 @@ -1,3 +1,202 @@ +2003-09-03 Steve Youngs + + * XEmacs 21.5.15 "celery" is released. + +2003-08-30 Mike Sperber + + * bytecode.c (execute_optimized_program): Remove broken + special-case code in Bvarset for buffer-local variables, reverting + previous patch to bytecode.c from 2003-08-18 by Jerry James + . + +2003-08-28 Jerry James + + * emodules.h: Add extern "C" declarations for C++ module builds. + * lisp.h: Ditto. + * lrecord.h: Ditto. + * opaque.h: Ditto. + * process.h: Ditto. + * symeval.h: Ditto. + * text.h: Ditto. + * mule-canna.c: Make key_buffer char instead of unsigned char. + * mule-canna.c (storeResults): 1st arg is char *, not unsigned + char *. + * mule-canna.c (Fcanna_initialize): Add casts for C++ builds. + * mule-canna.c (Fcanna_finalize): Ditto. + * mule-canna.c (Fcanna_touroku_string): Ditto. + * mule-canna.c (Fcanna_store_yomi): Ditto. + * mule-canna.c (Fcanna_parse): Ditto. + * mule-canna.c (Fcanna_query_mode): Ditto, and change buf to + unsigned char[] to reduce number of casts. + * mule-canna.c (Fcanna_henkan_begin): Ditto. + * mule-canna.c (Fcanna_henkan_next): Ditto. + * mule-canna.c (mule_make_string): Ditto. + * mule-wnnfns.c (Fwnn_open): Ditto. + +2003-08-26 Nickolay Pakoulin + + * database.c (berkdb_get): + (berkdb_map): Add type casts to satisfy C++ compilers. + +2003-08-25 Marcus Crestani + + * alloc.c (kkcc_gc_stack_init): + (kkcc_gc_stack_free): + (kkcc_gc_stack_realloc): + (kkcc_gc_stack_full): + (kkcc_gc_stack_empty): + (kkcc_gc_stack_push): + (kkcc_gc_stack_pop): Remove kkcc_gc_stack_count. + (mark_object_maybe_checking_free): Push on stack instead of marking. + (garbage_collect_1): Invoke kkcc_marking after finish_marking_*. + +2003-08-21 Jerry James + + * lrecord.h (DECLARE_MODULE_API_LRECORD): Also define when not + ERROR_CHECK_TYPES. + +2003-08-19 René Kyllingstad + + * alloc.c (kkcc_gc_stack_init): + (kkcc_gc_stack_realloc): Missing casts for the return value of + malloc and realloc. + +2003-08-18 Jerry James + + * Makefile.in.in (export_lib): New. + * Makefile.in.in (xemacs-export.o): New. + * Makefile.in.in (otherobjs): Use them. + * emodules.c: Remove the EMODULES_DO_NOT_REDEFINE hack. + * emodules.c (Fload_module): Document the ".dylib" extension. + * emodules.c (emodules_doc_subr): Don't try to find the function + associated with an autoload cookie. + * emodules.h: Add MODULE_API markers. Other part of + EMODULES_DO_NOT_REDEFINE hack removal. Define unstaticpro to + unstaticpro_nodump for modules. + * general-slots.h: Document and use SYMBOL_MODULE_API. + * general.c (SYMBOL_MODULE_API): New. + * lisp.h: Ditto. Also define MODULE_API appropriately, and define + SYMBOL_MODULE_API. + * sysdll.c: Allow Cygin module building. + * sysdll.c (dll_open): Use Unicode module names correctly. + * sysdll.c (dll_error): Return an informative error message. + * lisp-union.h: Add MODULE_API markers. + * lrecord.h: Ditto. + * mem-limits.h (get_lim_data): Ditto. + * opaque.h: Ditto. + * process.h: Ditto. + * symeval.h: Ditto. + * text.h: Ditto. + +2003-08-18 Jerry James + + * bytecode.c (execute_optimized_program): Setting a buffer-local + variable with no default binding sets the default. + +2003-08-18 Jerry James + + * opaque.h: Remove unused (X)OPAQUE_MARKFUN definitions. + +2003-08-12 Mike Sperber + + * bytecode.c (GCPRO_STACK): Added. + (execute_optimized_program): Use GCPRO_STACK, fixing a space leak: + Formerly, the byte-code engine would always hold on to the entire + stack memory area, including the stuff above the top. Now, we + adjust the GCPRO record via GCPRO_STACK just before a GC may + occur. + +2003-07-31 René Kyllingstad + + * event-msw.c (mswindows_enqueue_mouse_button_event): + * event-msw.c (mswindows_wnd_proc): + enqueue button{4,5}up events for scrollwheel event when + mswindows_handle_mousewheel_event doesn't handle it. + +2003-07-29 Marcus Crestani + Markus Kaltenbach + + * README.kkcc: Aligned to the changes. + * alloc.c: Implemented the kkcc_gc_stack. + (kkcc_gc_stack_init): + (kkcc_gc_stack_free): + (kkcc_gc_stack_realloc): + (kkcc_gc_stack_full): + (kkcc_gc_stack_empty): + (kkcc_gc_stack_push): + (kkcc_gc_stack_pop): + (kkcc_gc_stack_push_lisp_object): + (mark_object_maybe_checking_free): Push objects on kkcc stack instead + of marking. + (mark_struct_contents): Push objects on kkcc stack instead of marking. + (kkcc_marking): KKCC mark algorithm using the kkcc_gc_stack. + (mark_object): Removed KKCC ifdefs. + (garbage_collect_1): Push objects on kkcc stack instead of marking. + * data.c: Added XD_FLAG_NO_KKCC to ephemeron_description and to + weak_list_description. + * data.c (finish_marking_weak_lists): Push objects on kkcc stack + instead of marking. + (continue_marking_ephemerons): Push objects on kkcc stack instead + of marking. + (finish_marking_ephemerons): Push objects on kkcc stack instead + of marking. + * elhash.c (finish_marking_weak_hash_tables): Push objects on kkcc + stack instead of marking. + * eval.c: Added XD_FLAG_NO_KKCC to subr_description. + * lisp.h: Added prototype for kkcc_gc_stack_push_lisp_object. + * profile.c (mark_profiling_info_maphash): Push keys on kkcc stack + instead of marking. + +2003-07-30 Jerry James + + * sysdll.c: configure sets HAVE_DLD_INIT, not HAVE_INIT_DLD. + +2003-07-24 Mike Sperber + + * lisp.h: + * data.c: + (init_marking_ephemerons): + (continue_marking_ephemerons): + (finish_marking_ephemerons): + (prune_ephemerons): + * alloc.c (garbage_collect_1): Rewrite the ephemeron marker once + again to allow ephemerons to be used for implementing simple + object finalization. + * data.c (Fmake_ephemeron): Fix comments + +2003-06-14 Ilya N. Golubev + + * .gdbinit (pobj): Fix printing of symbol names. + +2003-07-02 Mike Sperber + + * toolbar.c (update_frame_toolbars_geometry): Update the frame + size when correct information to compute it is actually available. + Moreover, do it right via the frame method if it's available. + +2003-06-30 Ilya N. Golubev + + * faces.c (complex_vars_of_faces): Fix missing commas in `fonts' + initializer. + +2003-06-16 Stephen J. Turnbull + + * data.c (eq_with_ebola_notice): Fix typo in comment. + (Ftrue_list_p): Improve docstring. + +2003-06-11 Marcus Crestani + + * opaque.c: added opaque_ptr_description + +2003-05-22 Stephen J. Turnbull + + * alloc.c (allocate_big_string_chars): New. + (make_uninit_string): Use it. + (resize_string): Use it. Bump cons counter on realloc, too. + + Based on analysis and patch by Martin Buchholz : + <15409.4809.288773.686482@gargle.gargle.HOWL>. + 2003-06-01 Steve Youngs * XEmacs 21.5.14 "cassava" is released. Index: src/Makefile.in.in =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/Makefile.in.in,v retrieving revision 1.103 retrieving revision 1.104 diff -u -r1.103 -r1.104 --- src/Makefile.in.in 10 Apr 2003 08:46:24 -0000 1.103 +++ src/Makefile.in.in 19 Aug 2003 02:07:15 -0000 1.104 @@ -224,6 +224,11 @@ #ifdef HAVE_SHLIB shlib_objs=sysdll.o emodules.o +# ifdef HAVE_MS_WINDOWS +export_lib=xemacs-export.o +xemacs-export.o: xemacs.def + dlltool -D xemacs-${version}.exe -d $< -l xemacs-import.a -e $@ +# endif #endif #ifdef SUNPRO @@ -342,7 +347,7 @@ ## define otherobjs as list of object files that make-docfile ## should not be told about. -otherobjs = lastfile.o $(mallocobjs) $(rallocobjs) $(X11_objs) +otherobjs = lastfile.o $(mallocobjs) $(rallocobjs) $(X11_objs) $(export_lib) otherrtls = $(otherobjs:.o=.c.rtl) othersrcs = $(otherobjs:.o=.c) Index: src/README.kkcc =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/README.kkcc,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- src/README.kkcc 12 Jan 2003 11:08:07 -0000 1.2 +++ src/README.kkcc 31 Jul 2003 13:32:25 -0000 1.3 @@ -2,6 +2,8 @@ Markus Kaltenbach Mike Sperber + updated 2003-07-29 + New KKCC-GC mark algorithm: configure flag : --use-kkcc @@ -9,9 +11,9 @@ up to now: Every Lisp_Object has its own mark method, which calls mark_object with the stuff to be marked. - Also, many Lisp_Objects have pdump descriptions, which are used by - the portable dumper. The dumper gets all the information it needs - about the Lisp_Object from the descriptions. + Also, many Lisp_Objects have pdump descriptions memory_descriptions, + which are used by the portable dumper. The dumper gets all the + information it needs about the Lisp_Object from the descriptions. Also the garbage collector can use the information in the pdump descriptions, so we can get rid of the mark methods. @@ -28,41 +30,44 @@ the Object, if it is set to 0, the dumper does not care about it. + KKCC MARKING + ------------ + All Lisp_Objects have memory_descriptions now, so we could get + rid of the mark_object calls. + The KKCC algorithm manages its own stack. Instead of calling + mark_object, all the alive Lisp_Objects are pushed on the + kkcc_gc_stack. Then these elements on the stack are processed + according to their descriptions. + + TODO ---- - After all Lisp_Objects have pdump descriptions (THEY DO NOW!!), - (mark_with_description) can get rid of the mark_object calls. + - For weakness use weak datatypes instead of XD_FLAG_NO_KKCC. + XD_FLAG_NO_KKCC occurs in: + * elhash.c: htentry + * extents.c: lispobject_gap_array, extent_list, extent_info + * marker.c: marker + Not everything has to be rewritten. See Ben's comment in lrecord.h. + - Clean up special case marking (weak_hash_tables, weak_lists, + ephemerons). + - Stack optimization (have one stack during runtime instead of + malloc/free it for every garbage collect) - There are a few Lisp_Objects, where there occured differences and inexactness between the mark-method and the pdump description. All these Lisp_Objects get dumped (except image instances), so their descriptions have been written, before we started our work: - - * alloc.c: lcrecord_list - description: - mark: performs extra gc_checking_assert() for various checks. - - * alloc.c: cons - description: car and cdr - mark: cdr is marked, only if its != Qnil - * alloc.c: string - description: ??? - mark: ??? - - * buffer.c: buffer - description: XD_LISP_OBJECT indirect_children - mark: indirect_children not marked if Qnull_pointer - - * eval.c: subr - description: XD_DOC_STRING doc - mark: empty, nothing is marked - - * file-coding.c: coding_system - description: ??? - mark: ??? + description: size_, data_, and plist is described + mark: only plist is marked, but flush_cached_extent_info is called. + flush_cached_extent_info -> + free_soe -> + free_extent_list -> + free_gap_array -> + gap_array_delete_all_markers -> + Add gap_array to the gap_array_marker_freelist * glyphs.c: image_instance - description: + description: device is not set to nil mark: mark method sets device to nil if dead + See comment above the description. Index: src/alloc.c =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/alloc.c,v retrieving revision 1.88 retrieving revision 1.93 diff -u -r1.88 -r1.93 --- src/alloc.c 9 Mar 2003 02:27:39 -0000 1.88 +++ src/alloc.c 25 Aug 2003 20:53:59 -0000 1.93 @@ -2090,6 +2090,14 @@ current_string_chars_block = first_string_chars_block; } +static Ibyte * +allocate_big_string_chars (Bytecount length) +{ + Ibyte *p = xnew_array (Ibyte, length); + INCREMENT_CONS_COUNTER (length, "string chars"); + return p; +} + static struct string_chars * allocate_string_chars_struct (Lisp_Object string_it_goes_with, Bytecount fullsize) @@ -2164,7 +2172,7 @@ set_lheader_implementation (&s->u.lheader, &lrecord_string); set_lispstringp_data (s, BIG_STRING_FULLSIZE_P (fullsize) - ? xnew_array (Ibyte, length + 1) + ? allocate_big_string_chars (length + 1) : allocate_string_chars_struct (wrap_string (s), fullsize)->chars); @@ -2240,6 +2248,9 @@ if (delta > 0 && pos >= 0) memmove (XSTRING_DATA (s) + pos + delta, XSTRING_DATA (s) + pos, len); + /* Bump the cons counter. + Conservative; Martin let the increment be delta. */ + INCREMENT_CONS_COUNTER (newfullsize, "string chars"); } else /* String has been demoted from BIG_STRING. */ { @@ -2280,7 +2291,7 @@ Ibyte *old_data = XSTRING_DATA (s); Ibyte *new_data = BIG_STRING_FULLSIZE_P (newfullsize) - ? xnew_array (Ibyte, XSTRING_LENGTH (s) + delta + 1) + ? allocate_big_string_chars (XSTRING_LENGTH (s) + delta + 1) : allocate_string_chars_struct (s, newfullsize)->chars; if (pos >= 0) @@ -2940,6 +2951,113 @@ #if defined (USE_KKCC) || defined (PDUMP) +/* the initial stack size in kkcc_gc_stack_entries */ +#define KKCC_INIT_GC_STACK_SIZE 16384 + +typedef struct +{ + void *data; + const struct memory_description *desc; +} kkcc_gc_stack_entry; + +static kkcc_gc_stack_entry *kkcc_gc_stack_ptr; +static kkcc_gc_stack_entry *kkcc_gc_stack_top; +static kkcc_gc_stack_entry *kkcc_gc_stack_last_entry; +static int kkcc_gc_stack_size; + +static void +kkcc_gc_stack_init (void) +{ + kkcc_gc_stack_size = KKCC_INIT_GC_STACK_SIZE; + kkcc_gc_stack_ptr = (kkcc_gc_stack_entry *) + malloc (kkcc_gc_stack_size * sizeof (kkcc_gc_stack_entry)); + if (!kkcc_gc_stack_ptr) + { + stderr_out ("stack init failed for size %d\n", kkcc_gc_stack_size); + exit(23); + } + kkcc_gc_stack_top = kkcc_gc_stack_ptr - 1; + kkcc_gc_stack_last_entry = kkcc_gc_stack_ptr + kkcc_gc_stack_size - 1; +} + +static void +kkcc_gc_stack_free (void) +{ + free (kkcc_gc_stack_ptr); + kkcc_gc_stack_ptr = 0; + kkcc_gc_stack_top = 0; + kkcc_gc_stack_size = 0; +} + +static void +kkcc_gc_stack_realloc (void) +{ + int current_offset = (int)(kkcc_gc_stack_top - kkcc_gc_stack_ptr); + kkcc_gc_stack_size *= 2; + kkcc_gc_stack_ptr = (kkcc_gc_stack_entry *) + realloc (kkcc_gc_stack_ptr, + kkcc_gc_stack_size * sizeof (kkcc_gc_stack_entry)); + if (!kkcc_gc_stack_ptr) + { + stderr_out ("stack realloc failed for size %d\n", kkcc_gc_stack_size); + exit(23); + } + kkcc_gc_stack_top = kkcc_gc_stack_ptr + current_offset; + kkcc_gc_stack_last_entry = kkcc_gc_stack_ptr + kkcc_gc_stack_size - 1; +} + +static int +kkcc_gc_stack_full (void) +{ + if (kkcc_gc_stack_top >= kkcc_gc_stack_last_entry) + return 1; + return 0; +} + +static int +kkcc_gc_stack_empty (void) +{ + if (kkcc_gc_stack_top < kkcc_gc_stack_ptr) + return 1; + return 0; +} + +static void +kkcc_gc_stack_push (void *data, const struct memory_description *desc) +{ + if (kkcc_gc_stack_full ()) + kkcc_gc_stack_realloc(); + kkcc_gc_stack_top++; + kkcc_gc_stack_top->data = data; + kkcc_gc_stack_top->desc = desc; +} + +static kkcc_gc_stack_entry * +kkcc_gc_stack_pop (void) //void *data, const struct memory_description *desc) +{ + if (kkcc_gc_stack_empty ()) + return 0; + kkcc_gc_stack_top--; + return kkcc_gc_stack_top + 1; +} + +void +kkcc_gc_stack_push_lisp_object (Lisp_Object obj) +{ + if (XTYPE (obj) == Lisp_Type_Record) + { + struct lrecord_header *lheader = XRECORD_LHEADER (obj); + const struct memory_description *desc; + GC_CHECK_LHEADER_INVARIANTS (lheader); + desc = LHEADER_IMPLEMENTATION (lheader)->description; + if (! MARKED_RECORD_HEADER_P (lheader)) + { + MARK_RECORD_HEADER (lheader); + kkcc_gc_stack_push((void*) lheader, desc); + } + } +} + /* This function extracts the value of a count variable described somewhere else in the description. It is converted corresponding to the type */ EMACS_INT @@ -3182,10 +3300,6 @@ They mark objects according to their descriptions. They are modeled on the corresponding pdumper procedures. */ -static void mark_struct_contents (const void *data, - const struct sized_memory_description *sdesc, - int count); - #ifdef ERROR_CHECK_GC #define KKCC_DO_CHECK_FREE(obj, allow_free) \ do \ @@ -3201,202 +3315,152 @@ #endif #ifdef ERROR_CHECK_GC -void +static void mark_object_maybe_checking_free (Lisp_Object obj, int allow_free) { KKCC_DO_CHECK_FREE (obj, allow_free); +#ifdef USE_KKCC + kkcc_gc_stack_push_lisp_object (obj); +#else /* NOT USE_KKCC */ mark_object (obj); +#endif /* NOT USE_KKCC */ } #else -#define mark_object_maybe_checking_free(obj, allow_free) mark_object (obj) +#define mark_object_maybe_checking_free(obj, allow_free) \ + kkcc_gc_stack_push_lisp_object (obj) #endif /* ERROR_CHECK_GC */ -/* This function is called to mark the elements of an object. It processes - the description of the object and calls mark object with every described - object. */ + +/* This function loops all elements of a struct pointer and calls + mark_with_description with each element. */ static void -mark_with_description (const void *data, - const struct memory_description *desc) +mark_struct_contents (const void *data, + const struct sized_memory_description *sdesc, + int count) { - int pos; - static const Lisp_Object *last_occurred_object = (Lisp_Object *) 0; - static int mark_last_occurred_object = 0; -#ifdef ERROR_CHECK_GC - static int last_occurred_flags; -#endif + int i; + Bytecount elsize; + elsize = lispdesc_structure_size (data, sdesc); - tail_recurse: + for (i = 0; i < count; i++) + { + kkcc_gc_stack_push (((char *) data) + elsize * i, sdesc->description); + } +} - for (pos = 0; desc[pos].type != XD_END; pos++) + +/* This function implements the KKCC mark algorithm. + Instead of calling mark_object, all the alive Lisp_Objects are pushed + on the kkcc_gc_stack. This function processes all elements on the stack + according to their descriptions. */ +static void +kkcc_marking (void) +{ + kkcc_gc_stack_entry *stack_entry = 0; + void *data = 0; + const struct memory_description *desc = 0; + int pos; + + while ((stack_entry = kkcc_gc_stack_pop ()) != 0) { - const struct memory_description *desc1 = &desc[pos]; - const void *rdata = - (const char *) data + lispdesc_indirect_count (desc1->offset, - desc, data); - union_switcheroo: - - /* If the flag says don't mark, then don't mark. */ - if ((desc1->flags) & XD_FLAG_NO_KKCC) - continue; + data = stack_entry->data; + desc = stack_entry->desc; - switch (desc1->type) + for (pos = 0; desc[pos].type != XD_END; pos++) { - case XD_BYTECOUNT: - case XD_ELEMCOUNT: - case XD_HASHCODE: - case XD_INT: - case XD_LONG: - case XD_INT_RESET: - case XD_LO_LINK: - case XD_OPAQUE_PTR: - case XD_OPAQUE_DATA_PTR: - case XD_C_STRING: - case XD_DOC_STRING: - break; - case XD_LISP_OBJECT: - { - const Lisp_Object *stored_obj = (const Lisp_Object *) rdata; + const struct memory_description *desc1 = &desc[pos]; + const void *rdata = + (const char *) data + lispdesc_indirect_count (desc1->offset, + desc, data); + union_switcheroo: + + /* If the flag says don't mark, then don't mark. */ + if ((desc1->flags) & XD_FLAG_NO_KKCC) + continue; - /* Because of the way that tagged objects work (pointers and - Lisp_Objects have the same representation), XD_LISP_OBJECT - can be used for untagged pointers. They might be NULL, - though. */ - if (EQ (*stored_obj, Qnull_pointer)) + switch (desc1->type) + { + case XD_BYTECOUNT: + case XD_ELEMCOUNT: + case XD_HASHCODE: + case XD_INT: + case XD_LONG: + case XD_INT_RESET: + case XD_LO_LINK: + case XD_OPAQUE_PTR: + case XD_OPAQUE_DATA_PTR: + case XD_C_STRING: + case XD_DOC_STRING: break; - - if (desc[pos+1].type == XD_END) - { - mark_last_occurred_object = 1; - last_occurred_object = stored_obj; -#ifdef ERROR_CHECK_GC - last_occurred_flags = desc1->flags; -#endif - break; - } - else - mark_object_maybe_checking_free - (*stored_obj, (desc1->flags) & XD_FLAG_FREE_LISP_OBJECT); - - break; - } - case XD_LISP_OBJECT_ARRAY: - { - int i; - EMACS_INT count = - lispdesc_indirect_count (desc1->data1, desc, data); - - for (i = 0; i < count; i++) + case XD_LISP_OBJECT: { - const Lisp_Object *stored_obj = - (const Lisp_Object *) rdata + i; + const Lisp_Object *stored_obj = (const Lisp_Object *) rdata; + /* Because of the way that tagged objects work (pointers and + Lisp_Objects have the same representation), XD_LISP_OBJECT + can be used for untagged pointers. They might be NULL, + though. */ if (EQ (*stored_obj, Qnull_pointer)) break; - mark_object_maybe_checking_free (*stored_obj, (desc1->flags) & XD_FLAG_FREE_LISP_OBJECT); + + break; } - break; - } - case XD_STRUCT_PTR: - { - EMACS_INT count = lispdesc_indirect_count (desc1->data1, desc, - data); - const struct sized_memory_description *sdesc = - lispdesc_indirect_description (data, desc1->data2); - const char *dobj = * (const char **) rdata; - if (dobj) - mark_struct_contents (dobj, sdesc, count); - break; - } - case XD_STRUCT_ARRAY: - { - EMACS_INT count = lispdesc_indirect_count (desc1->data1, desc, - data); - const struct sized_memory_description *sdesc = - lispdesc_indirect_description (data, desc1->data2); - - mark_struct_contents (rdata, sdesc, count); - break; - } - case XD_UNION: - case XD_UNION_DYNAMIC_SIZE: - desc1 = lispdesc_process_xd_union (desc1, desc, data); - if (desc1) - goto union_switcheroo; - break; - - default: - stderr_out ("Unsupported description type : %d\n", desc1->type); - abort (); - } - } - - if (mark_last_occurred_object) - { - Lisp_Object obj = *last_occurred_object; - - old_tail_recurse: - /* NOTE: The second parameter isn't even evaluated - non-ERROR_CHECK_GC, so it's OK for the variable not to exist. - */ - KKCC_DO_CHECK_FREE - (obj, (last_occurred_flags & XD_FLAG_FREE_LISP_OBJECT) != 0); - - if (XTYPE (obj) == Lisp_Type_Record) - { - struct lrecord_header *lheader = XRECORD_LHEADER (obj); - - GC_CHECK_LHEADER_INVARIANTS (lheader); - - /* All c_readonly objects have their mark bit set, - so that we only need to check the mark bit here. */ - if (! MARKED_RECORD_HEADER_P (lheader)) - { - MARK_RECORD_HEADER (lheader); - + case XD_LISP_OBJECT_ARRAY: { - desc = LHEADER_IMPLEMENTATION (lheader)->description; - if (desc) /* && !CONSP(obj))*/ /* KKCC cons special case */ - { - data = lheader; - mark_last_occurred_object = 0; - goto tail_recurse; - } - else + int i; + EMACS_INT count = + lispdesc_indirect_count (desc1->data1, desc, data); + + for (i = 0; i < count; i++) { - if (RECORD_MARKER (lheader)) - { - obj = RECORD_MARKER (lheader) (obj); - if (!NILP (obj)) goto old_tail_recurse; - } + const Lisp_Object *stored_obj = + (const Lisp_Object *) rdata + i; + + if (EQ (*stored_obj, Qnull_pointer)) + break; + + mark_object_maybe_checking_free + (*stored_obj, (desc1->flags) & XD_FLAG_FREE_LISP_OBJECT); } + break; + } + case XD_STRUCT_PTR: + { + EMACS_INT count = lispdesc_indirect_count (desc1->data1, desc, + data); + const struct sized_memory_description *sdesc = + lispdesc_indirect_description (data, desc1->data2); + const char *dobj = * (const char **) rdata; + if (dobj) + mark_struct_contents (dobj, sdesc, count); + break; + } + case XD_STRUCT_ARRAY: + { + EMACS_INT count = lispdesc_indirect_count (desc1->data1, desc, + data); + const struct sized_memory_description *sdesc = + lispdesc_indirect_description (data, desc1->data2); + + mark_struct_contents (rdata, sdesc, count); + break; } + case XD_UNION: + case XD_UNION_DYNAMIC_SIZE: + desc1 = lispdesc_process_xd_union (desc1, desc, data); + if (desc1) + goto union_switcheroo; + break; + + default: + stderr_out ("Unsupported description type : %d\n", desc1->type); + abort (); } } - - mark_last_occurred_object = 0; - } -} - -/* This function loops all elements of a struct pointer and calls - mark_with_description with each element. */ -static void -mark_struct_contents (const void *data, - const struct sized_memory_description *sdesc, - int count) -{ - int i; - Bytecount elsize; - elsize = lispdesc_structure_size (data, sdesc); - - for (i = 0; i < count; i++) - { - mark_with_description (((char *) data) + elsize * i, - sdesc->description); } } - #endif /* USE_KKCC */ /* Mark reference to a Lisp_Object. If the object referred to has not been @@ -3405,6 +3469,13 @@ void mark_object (Lisp_Object obj) { +#ifdef USE_KKCC + /* this code should never be reached when configured for KKCC */ + stderr_out ("KKCC: Invalid mark_object call.\n"); + stderr_out ("Replace mark_object with kkcc_gc_stack_push_lisp_object.\n"); + abort (); +#endif /* USE_KKCC */ + tail_recurse: /* Checks we used to perform */ @@ -3418,10 +3489,8 @@ GC_CHECK_LHEADER_INVARIANTS (lheader); -#ifndef USE_KKCC /* We handle this separately, above, so we can mark free objects */ GC_CHECK_NOT_FREE (lheader); -#endif /* not USE_KKCC */ /* All c_readonly objects have their mark bit set, so that we only need to check the mark bit here. */ @@ -3429,28 +3498,15 @@ { MARK_RECORD_HEADER (lheader); - { -#ifdef USE_KKCC - const struct memory_description *desc; - desc = LHEADER_IMPLEMENTATION (lheader)->description; - if (desc) /* && !CONSP(obj))*/ /* KKCC cons special case */ - mark_with_description (lheader, desc); - else -#endif /* USE_KKCC */ - { - if (RECORD_MARKER (lheader)) - { - obj = RECORD_MARKER (lheader) (obj); - if (!NILP (obj)) goto tail_recurse; - } - } - } + if (RECORD_MARKER (lheader)) + { + obj = RECORD_MARKER (lheader) (obj); + if (!NILP (obj)) goto tail_recurse; + } } } } - -/* Find all structures not marked, and free them. */ static int gc_count_num_short_string_in_use; static Bytecount gc_count_string_total_size; @@ -4531,18 +4587,31 @@ /* Mark all the special slots that serve as the roots of accessibility. */ +#ifdef USE_KKCC + /* initialize kkcc stack */ + kkcc_gc_stack_init(); +#endif /* USE_KKCC */ + { /* staticpro() */ Lisp_Object **p = Dynarr_begin (staticpros); Elemcount count; for (count = Dynarr_length (staticpros); count; count--) +#ifdef USE_KKCC + kkcc_gc_stack_push_lisp_object (**p++); +#else /* NOT USE_KKCC */ mark_object (**p++); +#endif /* NOT USE_KKCC */ } { /* staticpro_nodump() */ Lisp_Object **p = Dynarr_begin (staticpros_nodump); Elemcount count; for (count = Dynarr_length (staticpros_nodump); count; count--) +#ifdef USE_KKCC + kkcc_gc_stack_push_lisp_object (**p++); +#else /* NOT USE_KKCC */ mark_object (**p++); +#endif /* NOT USE_KKCC */ } { /* GCPRO() */ @@ -4550,15 +4619,24 @@ int i; for (tail = gcprolist; tail; tail = tail->next) for (i = 0; i < tail->nvars; i++) +#ifdef USE_KKCC + kkcc_gc_stack_push_lisp_object (tail->var[i]); +#else /* NOT USE_KKCC */ mark_object (tail->var[i]); +#endif /* NOT USE_KKCC */ } { /* specbind() */ struct specbinding *bind; for (bind = specpdl; bind != specpdl_ptr; bind++) { +#ifdef USE_KKCC + kkcc_gc_stack_push_lisp_object (bind->symbol); + kkcc_gc_stack_push_lisp_object (bind->old_value); +#else /* NOT USE_KKCC */ mark_object (bind->symbol); mark_object (bind->old_value); +#endif /* NOT USE_KKCC */ } } @@ -4566,9 +4644,15 @@ struct catchtag *catch; for (catch = catchlist; catch; catch = catch->next) { +#ifdef USE_KKCC + kkcc_gc_stack_push_lisp_object (catch->tag); + kkcc_gc_stack_push_lisp_object (catch->val); + kkcc_gc_stack_push_lisp_object (catch->actual_tag); +#else /* NOT USE_KKCC */ mark_object (catch->tag); mark_object (catch->val); mark_object (catch->actual_tag); +#endif /* NOT USE_KKCC */ } } @@ -4579,6 +4663,16 @@ int nargs = backlist->nargs; int i; +#ifdef USE_KKCC + kkcc_gc_stack_push_lisp_object (*backlist->function); + if (nargs < 0 /* nargs == UNEVALLED || nargs == MANY */ + /* might be fake (internal profiling entry) */ + && backlist->args) + kkcc_gc_stack_push_lisp_object (backlist->args[0]); + else + for (i = 0; i < nargs; i++) + kkcc_gc_stack_push_lisp_object (backlist->args[i]); +#else /* NOT USE_KKCC */ mark_object (*backlist->function); if (nargs < 0 /* nargs == UNEVALLED || nargs == MANY */ /* might be fake (internal profiling entry) */ @@ -4587,6 +4681,7 @@ else for (i = 0; i < nargs; i++) mark_object (backlist->args[i]); +#endif /* NOT USE_KKCC */ } } @@ -4598,11 +4693,31 @@ a weak hash table might be unmarked, but after processing a later weak hash table, the former one might get marked. So we have to iterate until nothing more gets marked. */ - +#ifdef USE_KKCC + kkcc_marking (); +#endif /* USE_KKCC */ + init_marking_ephemerons (); while (finish_marking_weak_hash_tables () > 0 || finish_marking_weak_lists () > 0 || - finish_marking_ephemerons () > 0) + continue_marking_ephemerons () > 0) + ; + +#ifdef USE_KKCC + kkcc_marking (); +#endif /* USE_KKCC */ + + /* At this point, we know which objects need to be finalized: we + still need to resurrect them */ + + while (finish_marking_ephemerons () > 0 || + finish_marking_weak_lists () > 0 || + finish_marking_weak_hash_tables () > 0) ; + +#ifdef USE_KKCC + kkcc_marking (); + kkcc_gc_stack_free (); +#endif /* USE_KKCC */ /* And prune (this needs to be called after everything else has been marked and before we do any sweeping). */ Index: src/bytecode.c =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/bytecode.c,v retrieving revision 1.32 retrieving revision 1.35 diff -u -r1.32 -r1.35 --- src/bytecode.c 12 Jan 2003 11:08:08 -0000 1.32 +++ src/bytecode.c 2 Sep 2003 13:18:17 -0000 1.35 @@ -447,6 +447,8 @@ but don't pop it. */ #define TOP (*stack_ptr) +#define GCPRO_STACK (gcpro1.nvars = stack_ptr - stack_beg) + /* The actual interpreter for byte code. This function has been seriously optimized for performance. Don't change the constructs unless you are willing to do @@ -460,8 +462,8 @@ { /* This function can GC */ REGISTER const Opbyte *program_ptr = (Opbyte *) program; - REGISTER Lisp_Object *stack_ptr - = alloca_array (Lisp_Object, stack_depth + 1); + Lisp_Object *stack_beg = alloca_array (Lisp_Object, stack_depth + 1); + REGISTER Lisp_Object *stack_ptr = stack_beg; int speccount = specpdl_depth (); struct gcpro gcpro1; @@ -471,23 +473,11 @@ #endif #ifdef ERROR_CHECK_BYTE_CODE - Lisp_Object *stack_beg = stack_ptr; Lisp_Object *stack_end = stack_beg + stack_depth; #endif - /* Initialize all the objects on the stack to Qnil, - so we can GCPRO the whole stack. - The first element of the stack is actually a dummy. */ - { - int i; - Lisp_Object *p; - for (i = stack_depth, p = stack_ptr; i--;) - *++p = Qnil; - } - GCPRO1 (stack_ptr[1]); - gcpro1.nvars = stack_depth; - + while (1) { REGISTER Opcode opcode = (Opcode) READ_UINT_1; @@ -512,7 +502,10 @@ if (opcode >= Bconstant) PUSH (constants_data[opcode - Bconstant]); else - stack_ptr = execute_rare_opcode (stack_ptr, program_ptr, opcode); + { + GCPRO_STACK; + stack_ptr = execute_rare_opcode (stack_ptr, program_ptr, opcode); + } break; case Bvarref: @@ -597,6 +590,7 @@ case Bcall+7: n = (opcode < Bcall+6 ? opcode - Bcall : opcode == Bcall+6 ? READ_UINT_1 : READ_UINT_2); + GCPRO_STACK; DISCARD (n); #ifdef BYTE_CODE_METER if (byte_metering_on && SYMBOLP (TOP)) Index: src/data.c =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/data.c,v retrieving revision 1.46 retrieving revision 1.49 diff -u -r1.46 -r1.49 --- src/data.c 1 Mar 2003 07:25:35 -0000 1.46 +++ src/data.c 31 Jul 2003 13:32:26 -0000 1.49 @@ -78,7 +78,7 @@ && ((CHARP (obj1) && INTP (obj2)) || (CHARP (obj2) && INTP (obj1)))) { /* #### It would be really nice if this were a proper warning - instead of brain-dead print ro Qexternal_debugging_output. */ + instead of brain-dead print to Qexternal_debugging_output. */ write_c_string (Qexternal_debugging_output, "Comparison between integer and character is constant nil ("); @@ -247,7 +247,7 @@ } DEFUN ("true-list-p", Ftrue_list_p, 1, 1, 0, /* -Return t if OBJECT is a non-dotted, i.e. nil-terminated, list. +Return t if OBJECT is an acyclic, nil-terminated (ie, not dotted), list. */ (object)) { @@ -1613,8 +1613,10 @@ } static const struct memory_description weak_list_description[] = { - { XD_LISP_OBJECT, offsetof (struct weak_list, list) }, - { XD_LO_LINK, offsetof (struct weak_list, next_weak) }, + { XD_LISP_OBJECT, offsetof (struct weak_list, list), + 0, 0, XD_FLAG_NO_KKCC }, + { XD_LO_LINK, offsetof (struct weak_list, next_weak), + 0, 0, XD_FLAG_NO_KKCC }, { XD_END } }; @@ -1761,7 +1763,11 @@ if (need_to_mark_elem && ! marked_p (elem)) { +#ifdef USE_KKCC + kkcc_gc_stack_push_lisp_object (elem); +#else /* NOT USE_KKCC */ mark_object (elem); +#endif /* NOT USE_KKCC */ did_mark = 1; } @@ -1785,7 +1791,11 @@ because we're not removing it */ if (!NILP (rest2) && ! marked_p (rest2)) { +#ifdef USE_KKCC + kkcc_gc_stack_push_lisp_object (rest2); +#else /* NOT USE_KKCC */ mark_object (rest2); +#endif /* NOT USE_KKCC */ did_mark = 1; } } @@ -2132,72 +2142,116 @@ */ static Lisp_Object Vall_ephemerons; /* Gemarke es niemals ever!!! */ +static Lisp_Object Vnew_all_ephemerons; static Lisp_Object Vfinalize_list; +void +init_marking_ephemerons(void) +{ + Vnew_all_ephemerons = Qnil; +} + +/* Move all live ephemerons with live keys over to + * Vnew_all_ephemerons, marking the values and finalizers along the + * way. */ + int -finish_marking_ephemerons(void) +continue_marking_ephemerons(void) { - Lisp_Object rest; + Lisp_Object rest = Vall_ephemerons, next, prev = Qnil; int did_mark = 0; - for (rest = Vall_ephemerons; - !NILP (rest); - rest = XEPHEMERON_NEXT (rest)) + while (!NILP (rest)) { - if (marked_p (rest) && ! marked_p (XEPHEMERON (rest)->cons_chain)) + next = XEPHEMERON_NEXT (rest); + + if (marked_p (rest)) { MARK_CONS (XCONS (XEPHEMERON (rest)->cons_chain)); - mark_object (XCAR (XEPHEMERON (rest)->cons_chain)); - did_mark = 1; + if (marked_p (XEPHEMERON (rest)->key)) + { +#ifdef USE_KKCC + kkcc_gc_stack_push_lisp_object + (XCAR (XEPHEMERON (rest)->cons_chain)); +#else /* NOT USE_KKCC */ + mark_object (XCAR (XEPHEMERON (rest)->cons_chain)); +#endif /* NOT USE_KKCC */ + did_mark = 1; + XSET_EPHEMERON_NEXT (rest, Vnew_all_ephemerons); + Vnew_all_ephemerons = rest; + if (NILP (prev)) + Vall_ephemerons = next; + else + XSET_EPHEMERON_NEXT (prev, next); + } + else + prev = rest; } + else + prev = rest; + + rest = next; } + return did_mark; } -void -prune_ephemerons(void) +/* At this point, everything that's in Vall_ephemerons is dead. + * Well, almost: we still need to run the finalizers, so we need to + * resurrect them. + */ + +int +finish_marking_ephemerons(void) { - int removep = 0; Lisp_Object rest = Vall_ephemerons, next, prev = Qnil; + int did_mark = 0; while (! NILP (rest)) { next = XEPHEMERON_NEXT (rest); if (marked_p (rest)) - /* The ephemeron itself is live ... */ + /* The ephemeron itself is live, but its key is garbage */ { - if (! marked_p(XEPHEMERON (rest)->key)) - /* ... but its key is garbage */ + /* tombstone */ + XSET_EPHEMERON_VALUE (rest, Qnil); + + if (! NILP (XEPHEMERON_FINALIZER (rest))) { - removep = 1; - XSET_EPHEMERON_VALUE (rest, Qnil); - if (! NILP (XEPHEMERON_FINALIZER (rest))) - /* Register the finalizer */ - { - XSET_EPHEMERON_NEXT (rest, Vfinalize_list); - Vfinalize_list = XEPHEMERON (rest)->cons_chain; - } + MARK_CONS (XCONS (XEPHEMERON (rest)->cons_chain)); +#ifdef USE_KKCC + kkcc_gc_stack_push_lisp_object + (XCAR (XEPHEMERON (rest)->cons_chain)); +#else /* NOT USE_KKCC */ + mark_object (XCAR (XEPHEMERON (rest)->cons_chain)); +#endif /* NOT USE_KKCC */ + + /* Register the finalizer */ + XSET_EPHEMERON_NEXT (rest, Vfinalize_list); + Vfinalize_list = XEPHEMERON (rest)->cons_chain; + did_mark = 1; } - } - else - /* The ephemeron itself is dead. */ - removep = 1; - if (removep) - { /* Remove it from the list. */ if (NILP (prev)) Vall_ephemerons = next; else XSET_EPHEMERON_NEXT (prev, next); - removep = 0; } else prev = rest; rest = next; } + + return did_mark; +} + +void +prune_ephemerons(void) +{ + Vall_ephemerons = Vnew_all_ephemerons; } Lisp_Object @@ -2264,6 +2318,8 @@ return result; } +/* Ephemerons are special cases in the KKCC mark algorithm, so nothing + is marked here. */ static const struct memory_description ephemeron_description[] = { { XD_LISP_OBJECT, offsetof(struct ephemeron, key), 0, 0, XD_FLAG_NO_KKCC }, @@ -2282,13 +2338,13 @@ struct ephemeron); DEFUN ("make-ephemeron", Fmake_ephemeron, 2, 3, 0, /* -Return a new ephemeron with key KEY, value CONTENTS, and finalizer FINALIZER. -The ephemeron is a reference to CONTENTS which may be extracted with -`ephemeron-ref'. CONTENTS is only reachable through the ephemeron as +Return a new ephemeron with key KEY, value VALUE, and finalizer FINALIZER. +The ephemeron is a reference to VALUE which may be extracted with +`ephemeron-ref'. VALUE is only reachable through the ephemeron as long as KEY is reachable; the ephemeron does not contribute to the reachability of KEY. When KEY becomes unreachable while the ephemeron -itself is still reachable, CONTENTS is queued for finalization: FINALIZER -will possibly be called on CONTENTS some time in the future. Moreover, +itself is still reachable, VALUE is queued for finalization: FINALIZER +will possibly be called on VALUE some time in the future. Moreover, future calls to `ephemeron-ref' will return NIL. */ (key, value, finalizer)) Index: src/database.c =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/database.c,v retrieving revision 1.28 retrieving revision 1.29 diff -u -r1.28 -r1.29 --- src/database.c 6 May 2003 04:54:21 -0000 1.28 +++ src/database.c 26 Aug 2003 14:04:00 -0000 1.29 @@ -418,7 +418,7 @@ #endif /* DB_VERSION_MAJOR */ if (!status) - return make_ext_string (valdatum.data, valdatum.size, + return make_ext_string ((const Extbyte *) valdatum.data, valdatum.size, db->coding_system); #if DB_VERSION_MAJOR == 1 @@ -528,9 +528,9 @@ status == 0; status = dbcp->c_get (dbcp, &keydatum, &valdatum, DB_NEXT)) { - key = make_ext_string (keydatum.data, keydatum.size, + key = make_ext_string ((const Extbyte *) keydatum.data, keydatum.size, db->coding_system); - val = make_ext_string (valdatum.data, valdatum.size, + val = make_ext_string ((const Extbyte *) valdatum.data, valdatum.size, db->coding_system); call2 (func, key, val); } Index: src/depend =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/depend,v retrieving revision 1.40 retrieving revision 1.41 diff -u -r1.40 -r1.41 --- src/depend 9 Mar 2003 02:27:41 -0000 1.40 +++ src/depend 1 Sep 2003 02:50:45 -0000 1.41 @@ -226,7 +226,7 @@ symbols.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h conslots.h console-impl.h console.h elhash.h syntax.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h extents.h syntax.h sysdep.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h conslots.h console-impl.h console-stream-impl.h console-stream.h console-tty-impl.h console-tty.h console.h device-impl.h device.h devslots.h events.h frame.h intl-auto-encap-win32.h ndir.h process.h redisplay.h scrollbar.h sysdep.h sysdir.h sysfile.h sysproc.h syspwd.h syssignal.h systime.h systty.h syswait.h syswindows.h window.h -sysdll.o: $(LISP_H) sysdll.h +sysdll.o: $(LISP_H) intl-auto-encap-win32.h sysdll.h sysfile.h syswindows.h termcap.o: $(LISP_H) console.h device.h terminfo.o: $(CONFIG_H) tests.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h elhash.h lstream.h opaque.h Index: src/elhash.c =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/elhash.c,v retrieving revision 1.32 retrieving revision 1.33 diff -u -r1.32 -r1.33 --- src/elhash.c 13 Feb 2003 09:57:06 -0000 1.32 +++ src/elhash.c 31 Jul 2003 13:32:26 -0000 1.33 @@ -1429,6 +1429,18 @@ /************************************************************************/ /* garbage collecting weak hash tables */ /************************************************************************/ +#ifdef USE_KKCC +#define MARK_OBJ(obj) do { \ + Lisp_Object mo_obj = (obj); \ + if (!marked_p (mo_obj)) \ + { \ + kkcc_gc_stack_push_lisp_object (mo_obj); \ + did_mark = 1; \ + } \ +} while (0) + +#else /* NO USE_KKCC */ + #define MARK_OBJ(obj) do { \ Lisp_Object mo_obj = (obj); \ if (!marked_p (mo_obj)) \ @@ -1437,6 +1449,7 @@ did_mark = 1; \ } \ } while (0) +#endif /*NO USE_KKCC */ /* Complete the marking for semi-weak hash tables. */ Index: src/emodules.c =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/emodules.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- src/emodules.c 25 Mar 2003 23:09:56 -0000 1.15 +++ src/emodules.c 19 Aug 2003 02:07:15 -0000 1.16 @@ -18,10 +18,6 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* This gross hack is so that we can make DEFVAR_foo register with the - portable dumper in core, but not do so in modules. Since the hackery to do - that is in emodules.h, we have to turn it off for this file. */ -#define EMODULES_DO_NOT_REDEFINE #include "emodules.h" #include "sysdll.h" @@ -78,7 +74,7 @@ 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'. +extensions are `.so', `.dll', `.ell', or `.dylib'. All symbols in the shared module must be completely resolved in order for this function to be successful. Any modules which the specified @@ -528,9 +524,10 @@ Lisp_Object sym = oblookup (Vobarray, (const Ibyte *)symname, len); Lisp_Subr *subr; - if (SYMBOLP(sym)) + /* Skip autoload cookies */ + if (SYMBOLP (sym) && SUBRP (XSYMBOL (sym)->function)) { - subr = XSUBR( XSYMBOL(sym)->function); + subr = XSUBR (XSYMBOL (sym)->function); subr->doc = xstrdup (doc); } /* Index: src/emodules.h =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/emodules.h,v retrieving revision 1.7 retrieving revision 1.9 diff -u -r1.7 -r1.9 --- src/emodules.h 17 Jan 2003 16:59:21 -0000 1.7 +++ src/emodules.h 28 Aug 2003 15:44:28 -0000 1.9 @@ -73,15 +73,17 @@ * 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); +EXTERN_C MODULE_API void emodules_doc_subr (const char *objname, + const char *docstr); +EXTERN_C MODULE_API 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 */ /* We should not expose module entities to the portable dumper. */ -#if defined(PDUMP) && !defined(EMODULES_DO_NOT_REDEFINE) +#if defined(PDUMP) && defined(EMACS_MODULE) #undef dump_add_root_struct_ptr #define dump_add_root_struct_ptr(varaddr,descaddr) DO_NOTHING #undef dump_add_opaque @@ -98,6 +100,8 @@ #define dump_add_weak_object_chain(varaddr) DO_NOTHING #undef staticpro #define staticpro(DSF_location) staticpro_nodump(DSF_location) +#undef unstaticpro +#define unstaticpro(DSF_location) unstaticpro_nodump(DFS_location) #undef DEFSYMBOL #define DEFSYMBOL(name) DEFSYMBOL_NO_DUMP (name) @@ -106,6 +110,7 @@ DEFSYMBOL_MULTIWORD_PREDICATE_NO_DUMP (name) #undef defsymbol #define defsymbol(location,name) defsymbol_nodump (location, name) -#endif + +#endif /* defined(PDUMP) && defined(EMACS_MODULE) */ #endif /* EMODULES_HDR */ Index: src/eval.c =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/eval.c,v retrieving revision 1.71 retrieving revision 1.72 diff -u -r1.71 -r1.72 --- src/eval.c 2 Mar 2003 09:38:53 -0000 1.71 +++ src/eval.c 31 Jul 2003 13:32:26 -0000 1.72 @@ -428,7 +428,7 @@ } static const struct memory_description subr_description[] = { - { XD_DOC_STRING, offsetof (Lisp_Subr, doc) }, + { XD_DOC_STRING, offsetof (Lisp_Subr, doc), 0, 0, XD_FLAG_NO_KKCC }, { XD_END } }; Index: src/event-msw.c =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/event-msw.c,v retrieving revision 1.94 retrieving revision 1.95 diff -u -r1.94 -r1.95 --- src/event-msw.c 9 Mar 2003 02:27:42 -0000 1.94 +++ src/event-msw.c 13 Aug 2003 11:27:48 -0000 1.95 @@ -978,6 +978,9 @@ int downp = (msg == WM_LBUTTONDOWN || msg == WM_MBUTTONDOWN || msg == WM_RBUTTONDOWN); + /* Wheel rotation amount: positive is away from user, negative towards user */ + int delta = (short) HIWORD (mods); + /* We always use last message time, because mouse button events may get delayed, and XEmacs double click recognition will fail */ @@ -998,8 +1001,10 @@ XSET_EVENT_CHANNEL (emacs_event, mswindows_find_frame (hwnd)); XSET_EVENT_TIMESTAMP (emacs_event, when); XSET_EVENT_BUTTON_BUTTON (emacs_event, - (msg==WM_LBUTTONDOWN || msg==WM_LBUTTONUP) ? 1 : - ((msg==WM_RBUTTONDOWN || msg==WM_RBUTTONUP) ? 3 : 2)); + (msg==WM_LBUTTONDOWN || msg==WM_LBUTTONUP) ? 1 : + (msg==WM_MBUTTONDOWN || msg==WM_MBUTTONUP) ? 2 : + (msg==WM_RBUTTONDOWN || msg==WM_RBUTTONUP) ? 3 : + (msg==WM_MOUSEWHEEL && delta>0) ? 4 : 5); XSET_EVENT_BUTTON_X (emacs_event, where.x); XSET_EVENT_BUTTON_Y (emacs_event, where.y); XSET_EVENT_BUTTON_MODIFIERS (emacs_event, @@ -3538,13 +3543,18 @@ int keys = LOWORD (wParam); /* Modifier key flags */ int delta = (short) HIWORD (wParam); /* Wheel rotation amount */ - if (mswindows_handle_mousewheel_event (mswindows_find_frame (hwnd), + /* enqueue button4/5 events if mswindows_handle_mousewheel_event + doesn't handle the event, such as when the scrollbars are not + displayed */ + if (!mswindows_handle_mousewheel_event (mswindows_find_frame (hwnd), keys, delta, MAKEPOINTS (lParam))) - /* We are not in a modal loop so no pumping is necessary. */ - break; - else - goto defproc; + mswindows_enqueue_mouse_button_event (hwnd, message_, + MAKEPOINTS (lParam), + wParam, + GetMessageTime()); + /* We are not in a modal loop so no pumping is necessary. */ + break; } #endif Index: src/faces.c =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/faces.c,v retrieving revision 1.40 retrieving revision 1.41 diff -u -r1.40 -r1.41 --- src/faces.c 12 Jan 2003 11:08:14 -0000 1.40 +++ src/faces.c 30 Jun 2003 10:05:44 -0000 1.41 @@ -1979,9 +1979,9 @@ /************** ISO-8859 fonts *************/ "-*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-*", - "-*-fixed-medium-r-*-*-*-120-*-*-*-*-iso8859-*" + "-*-fixed-medium-r-*-*-*-120-*-*-*-*-iso8859-*", "-*-courier-*-r-*-*-*-120-*-*-*-*-iso8859-*", - "-*-fixed-*-r-*-*-*-120-*-*-*-*-iso8859-*" + "-*-fixed-*-r-*-*-*-120-*-*-*-*-iso8859-*", /* Next try for any "medium" charcell or monospaced iso8859 font. */ "-*-*-medium-r-*-*-*-120-*-*-m-*-iso8859-*", "-*-*-medium-r-*-*-*-120-*-*-c-*-iso8859-*", @@ -1991,9 +1991,9 @@ /* Repeat, any size */ "-*-courier-medium-r-*-*-*-*-*-*-*-*-iso8859-*", - "-*-fixed-medium-r-*-*-*-*-*-*-*-*-iso8859-*" + "-*-fixed-medium-r-*-*-*-*-*-*-*-*-iso8859-*", "-*-courier-*-r-*-*-*-*-*-*-*-*-iso8859-*", - "-*-fixed-*-r-*-*-*-*-*-*-*-*-iso8859-*" + "-*-fixed-*-r-*-*-*-*-*-*-*-*-iso8859-*", /* Next try for any "medium" charcell or monospaced iso8859 font. */ "-*-*-medium-r-*-*-*-*-*-*-m-*-iso8859-*", "-*-*-medium-r-*-*-*-*-*-*-c-*-iso8859-*", @@ -2064,9 +2064,9 @@ */ "-*-courier-medium-r-*-*-*-120-*-*-*-*-iso10646-1", - "-*-fixed-medium-r-*-*-*-120-*-*-*-*-iso10646-1" + "-*-fixed-medium-r-*-*-*-120-*-*-*-*-iso10646-1", "-*-courier-*-r-*-*-*-120-*-*-*-*-iso10646-1", - "-*-fixed-*-r-*-*-*-120-*-*-*-*-iso10646-1" + "-*-fixed-*-r-*-*-*-120-*-*-*-*-iso10646-1", /* Next try for any "medium" charcell or monospaced iso8859 font. */ "-*-*-medium-r-*-*-*-120-*-*-m-*-iso10646-1", "-*-*-medium-r-*-*-*-120-*-*-c-*-iso10646-1", @@ -2076,9 +2076,9 @@ /* Repeat, any size */ "-*-courier-medium-r-*-*-*-*-*-*-*-*-iso10646-1", - "-*-fixed-medium-r-*-*-*-*-*-*-*-*-iso10646-1" + "-*-fixed-medium-r-*-*-*-*-*-*-*-*-iso10646-1", "-*-courier-*-r-*-*-*-*-*-*-*-*-iso10646-1", - "-*-fixed-*-r-*-*-*-*-*-*-*-*-iso10646-1" + "-*-fixed-*-r-*-*-*-*-*-*-*-*-iso10646-1", /* Next try for any "medium" charcell or monospaced iso8859 font. */ "-*-*-medium-r-*-*-*-*-*-*-m-*-iso10646-1", "-*-*-medium-r-*-*-*-*-*-*-c-*-iso10646-1", Index: src/general-slots.h =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/general-slots.h,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- src/general-slots.h 2 Mar 2003 09:38:53 -0000 1.12 +++ src/general-slots.h 19 Aug 2003 02:07:16 -0000 1.13 @@ -25,9 +25,10 @@ that don't have any obvious connection to any particular module and might be used in many different contexts. - Three types of declarations are allowed here: + Four types of declarations are allowed here: SYMBOL (Qfoo); declares a symbol "foo" + SYMBOL_MODULE_API (Qfoo); declares a symbol "foo" that is visible to modules SYMBOL_KEYWORD (Q_foo); declares a keyword symbol ":foo" SYMBOL_GENERAL (Qfoo, "bar"); declares a symbol named "bar" but stored in the variable Qfoo @@ -124,7 +125,7 @@ SYMBOL (Qfaces); SYMBOL (Qfallback); SYMBOL (Qfile); -SYMBOL (Qfile_name); +SYMBOL_MODULE_API (Qfile_name); SYMBOL_KEYWORD (Q_filter); SYMBOL (Qfont); SYMBOL (Qframe); @@ -194,13 +195,13 @@ SYMBOL (Qmsprinter); SYMBOL (Qmswindows); SYMBOL (Qname); -SYMBOL (Qnative); +SYMBOL_MODULE_API (Qnative); SYMBOL (Qnatnum); SYMBOL (Qno); SYMBOL (Qnone); SYMBOL (Qnot); SYMBOL (Qnothing); -SYMBOL (Qnotice); +SYMBOL_MODULE_API (Qnotice); SYMBOL (Qobject); SYMBOL (Qok); SYMBOL (Qold_assoc); Index: src/general.c =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/general.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- src/general.c 12 Apr 2001 18:23:49 -0000 1.15 +++ src/general.c 19 Aug 2003 02:07:16 -0000 1.16 @@ -28,12 +28,14 @@ #include "lisp.h" #define SYMBOL(fou) Lisp_Object fou +#define SYMBOL_MODULE_API(fou) Lisp_Object fou #define SYMBOL_KEYWORD(la_cle_est_fou) Lisp_Object la_cle_est_fou #define SYMBOL_GENERAL(tout_le_monde, est_fou) Lisp_Object tout_le_monde #include "general-slots.h" #undef SYMBOL +#undef SYMBOL_MODULE_API #undef SYMBOL_KEYWORD #undef SYMBOL_GENERAL @@ -41,6 +43,7 @@ syms_of_general (void) { #define SYMBOL(loco) DEFSYMBOL (loco) +#define SYMBOL_MODULE_API(loco) DEFSYMBOL (loco) #define SYMBOL_KEYWORD(meshugeneh) DEFKEYWORD (meshugeneh) #define SYMBOL_GENERAL(vachement, fou) defsymbol (&vachement, fou) Index: src/lisp-union.h =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/lisp-union.h,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- src/lisp-union.h 18 Nov 2002 06:52:40 -0000 1.18 +++ src/lisp-union.h 19 Aug 2003 02:07:16 -0000 1.19 @@ -132,7 +132,7 @@ return obj; } -extern Lisp_Object Qnull_pointer, Qzero; +extern MODULE_API Lisp_Object Qnull_pointer, Qzero; #define INTP(x) ((x).s.bits) #define INT_PLUS(x,y) make_int (XINT (x) + XINT (y)) Index: src/lisp.h =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/lisp.h,v retrieving revision 1.102 retrieving revision 1.106 diff -u -r1.102 -r1.106 --- src/lisp.h 9 May 2003 09:50:41 -0000 1.102 +++ src/lisp.h 28 Aug 2003 15:44:28 -0000 1.106 @@ -928,6 +928,16 @@ /*#define REGISTER register*/ /*#endif*/ +#if defined(HAVE_MS_WINDOWS) && defined(HAVE_SHLIB) +# ifdef EMACS_MODULE +# define MODULE_API __declspec(dllimport) +# else +# define MODULE_API __declspec(dllexport) +# endif +#else +# define MODULE_API +#endif + /* ------------------------ alignment definitions ------------------- */ /* No type has a greater alignment requirement than max_align_t. @@ -995,6 +1005,10 @@ data of TYPE. */ #define ALIGN_PTR(ptr, type) ((void *) ALIGN_FOR_TYPE ((size_t) (ptr), type)) +#ifdef __cplusplus +extern "C" { +#endif + /* ------------------------ assertions ------------------- */ /* We define assert iff USE_ASSERTIONS or DEBUG_XEMACS is defined. @@ -1012,7 +1026,7 @@ #ifdef USE_ASSERTIONS /* Highly dubious kludge */ /* (thanks, Jamie, I feel better now -- ben) */ -void assert_failed (const char *, int, const char *); +MODULE_API void assert_failed (const char *, int, const char *); # define abort() (assert_failed (__FILE__, __LINE__, "abort()")) # define assert(x) ((x) ? (void) 0 : assert_failed (__FILE__, __LINE__, #x)) # define assert_with_message(x, msg) \ @@ -1073,10 +1087,10 @@ /* Memory allocation */ void malloc_warning (const char *); -void *xmalloc (Bytecount size); -void *xmalloc_and_zero (Bytecount size); -void *xrealloc (void *, Bytecount size); -char *xstrdup (const char *); +MODULE_API void *xmalloc (Bytecount size); +MODULE_API void *xmalloc_and_zero (Bytecount size); +MODULE_API void *xrealloc (void *, Bytecount size); +MODULE_API char *xstrdup (const char *); /* generally useful */ #define countof(x) ((int) (sizeof(x)/sizeof((x)[0]))) #define xnew(type) ((type *) xmalloc (sizeof (type))) @@ -1088,9 +1102,9 @@ #define alloca_new(type) ((type *) ALLOCA (sizeof (type))) #define alloca_array(type, len) ((type *) ALLOCA ((len) * sizeof (type))) -void *xemacs_c_alloca (unsigned int size); +MODULE_API void *xemacs_c_alloca (unsigned int size); -int record_unwind_protect_freeing (void *ptr); +MODULE_API int record_unwind_protect_freeing (void *ptr); DECLARE_INLINE_HEADER ( void * @@ -1144,11 +1158,11 @@ #define MAX_FUNCALLS_BETWEEN_ALLOCA_CLEANUP 10 -extern Bytecount __temp_alloca_size__; +extern MODULE_API Bytecount __temp_alloca_size__; extern Bytecount funcall_alloca_count; #ifdef ERROR_CHECK_MALLOC -extern int regex_malloc_disallowed; +extern MODULE_API int regex_malloc_disallowed; #define REGEX_MALLOC_CHECK() assert (!regex_malloc_disallowed) #else #define REGEX_MALLOC_CHECK() ((void) 0) @@ -1210,7 +1224,7 @@ } while (0) #ifdef ERROR_CHECK_MALLOC -void xfree_1 (void *); +MODULE_API void xfree_1 (void *); #define xfree(lvalue) do \ { \ void **xfree_ptr = (void **) &(lvalue); \ @@ -1218,7 +1232,7 @@ *xfree_ptr = (void *) 0xDEADBEEF; \ } while (0) #else -void xfree (void *); +MODULE_API void xfree (void *); #endif /* ERROR_CHECK_MALLOC */ /* ------------------------ dynamic arrays ------------------- */ @@ -1245,11 +1259,11 @@ Dynarr_declare (void); } Dynarr; -void *Dynarr_newf (int elsize); -void Dynarr_resize (void *dy, int size); -void Dynarr_insert_many (void *d, const void *el, int len, int start); -void Dynarr_delete_many (void *d, int start, int len); -void Dynarr_free (void *d); +MODULE_API void *Dynarr_newf (int elsize); +MODULE_API void Dynarr_resize (void *dy, int size); +MODULE_API void Dynarr_insert_many (void *d, const void *el, int len, int start); +MODULE_API void Dynarr_delete_many (void *d, int start, int len); +MODULE_API void Dynarr_free (void *d); #define Dynarr_new(type) ((type##_dynarr *) Dynarr_newf (sizeof (type))) #define Dynarr_new2(dynarr_type, type) \ @@ -1651,8 +1665,8 @@ && XCHAR_OR_INT (obj1) == XCHAR_OR_INT (obj2))) #ifdef DEBUG_XEMACS -extern int debug_issue_ebola_notices; -int eq_with_ebola_notice (Lisp_Object, Lisp_Object); +extern MODULE_API int debug_issue_ebola_notices; +MODULE_API int eq_with_ebola_notice (Lisp_Object, Lisp_Object); #define EQ_WITH_EBOLA_NOTICE(obj1, obj2) \ (debug_issue_ebola_notices ? eq_with_ebola_notice (obj1, obj2) \ : EQ (obj1, obj2)) @@ -1662,12 +1676,20 @@ /* OK, you can open them again */ +#ifdef __cplusplus +} +#endif + /************************************************************************/ /** Definitions of basic Lisp objects **/ /************************************************************************/ #include "lrecord.h" +#ifdef __cplusplus +extern "C" { +#endif + /*------------------------------ unbound -------------------------------*/ /* Qunbound is a special Lisp_Object (actually of type @@ -1708,7 +1730,7 @@ }; #endif -DECLARE_LRECORD (cons, Lisp_Cons); +DECLARE_MODULE_API_LRECORD (cons, Lisp_Cons); #define XCONS(x) XRECORD (x, cons, Lisp_Cons) #define wrap_cons(p) wrap_record (p, cons) #define CONSP(x) RECORDP (x, cons) @@ -1718,7 +1740,7 @@ #define CONS_MARKED_P(c) MARKED_RECORD_HEADER_P(&((c)->lheader)) #define MARK_CONS(c) MARK_RECORD_HEADER (&((c)->lheader)) -extern Lisp_Object Qnil; +extern MODULE_API Lisp_Object Qnil; #define NILP(x) EQ (x, Qnil) #define cons_car(a) ((a)->car_) @@ -2264,7 +2286,7 @@ #define MAX_STRING_ASCII_BEGIN ((1 << 21) - 1) -DECLARE_LRECORD (string, Lisp_String); +DECLARE_MODULE_API_LRECORD (string, Lisp_String); #define XSTRING(x) XRECORD (x, string, Lisp_String) #define wrap_string(p) wrap_record (p, string) #define STRINGP(x) RECORDP (x, string) @@ -2430,7 +2452,7 @@ XSTRING_LENGTH (symbol_name (XSYMBOL (sym)))))) #define KEYWORDP(obj) (SYMBOLP (obj) && SYMBOL_IS_KEYWORD (obj)) -DECLARE_LRECORD (symbol, Lisp_Symbol); +DECLARE_MODULE_API_LRECORD (symbol, Lisp_Symbol); #define XSYMBOL(x) XRECORD (x, symbol, Lisp_Symbol) #define wrap_symbol(p) wrap_record (p, symbol) #define SYMBOLP(x) RECORDP (x, symbol) @@ -2494,7 +2516,7 @@ char insertion_type; }; -DECLARE_LRECORD (marker, Lisp_Marker); +DECLARE_MODULE_API_LRECORD (marker, Lisp_Marker); #define XMARKER(x) XRECORD (x, marker, Lisp_Marker) #define wrap_marker(p) wrap_record (p, marker) #define MARKERP(x) RECORDP (x, marker) @@ -2756,6 +2778,8 @@ void prune_ephemerons (void); Lisp_Object ephemeron_value(Lisp_Object ephi); +void init_marking_ephemerons(void); +int continue_marking_ephemerons(void); int finish_marking_ephemerons(void); Lisp_Object zap_finalize_list(void); Lisp_Object make_ephemeron(Lisp_Object key, Lisp_Object value, Lisp_Object finalizer); @@ -2815,6 +2839,9 @@ int finish_marking_weak_lists (void); void prune_weak_lists (void); +#ifdef __cplusplus +} +#endif /************************************************************************/ /* Definitions related to the format of text and of characters */ @@ -2942,6 +2969,10 @@ #include "symeval.h" +#ifdef __cplusplus +extern "C" { +#endif + /* `specpdl' is the special binding/unwind-protect stack. Knuth says (see the Jargon File): @@ -2951,7 +2982,7 @@ specpdl_depth is the current depth of `specpdl'. Save this for use later as arg to `unbind_to_1'. */ -extern int specpdl_depth_counter; +extern MODULE_API int specpdl_depth_counter; #define specpdl_depth() specpdl_depth_counter @@ -2983,15 +3014,15 @@ within the QUIT macro. At this point, we are guaranteed to not be in any sensitive code. */ -extern volatile int something_happened; -extern int dont_check_for_quit; -void check_what_happened (void); +extern MODULE_API volatile int something_happened; +extern MODULE_API int dont_check_for_quit; +MODULE_API void check_what_happened (void); -extern volatile int quit_check_signal_happened; +extern MODULE_API volatile int quit_check_signal_happened; extern volatile int quit_check_signal_tick_count; -void check_quit (void); +MODULE_API void check_quit (void); -void signal_quit (void); +MODULE_API void signal_quit (void); int begin_dont_check_for_quit (void); int begin_do_check_for_quit (void); @@ -3124,7 +3155,11 @@ Every function that can call Feval must protect in this fashion all Lisp_Object variables whose contents will be used again. */ -extern struct gcpro *gcprolist; +extern MODULE_API struct gcpro *gcprolist; + +#ifdef __cplusplus +} +#endif /* #### Catching insufficient gcpro: @@ -3192,20 +3227,26 @@ and so some "This function can GC" comments may be inaccurate. */ +#ifdef __cplusplus +extern "C" { +#endif + #ifdef DEBUG_GCPRO -void debug_gcpro1 (char *, int, struct gcpro *, Lisp_Object *); -void debug_gcpro2 (char *, int, struct gcpro *, struct gcpro *, - Lisp_Object *, Lisp_Object *); -void debug_gcpro3 (char *, int, struct gcpro *, struct gcpro *, struct gcpro *, - Lisp_Object *, Lisp_Object *, Lisp_Object *); -void debug_gcpro4 (char *, int, struct gcpro *, struct gcpro *, struct gcpro *, - struct gcpro *, Lisp_Object *, Lisp_Object *, Lisp_Object *, - Lisp_Object *); -void debug_gcpro5 (char *, int, struct gcpro *, struct gcpro *, struct gcpro *, - struct gcpro *, struct gcpro *, Lisp_Object *, Lisp_Object *, - Lisp_Object *, Lisp_Object *, Lisp_Object *); -void debug_ungcpro(char *, int, struct gcpro *); +MODULE_API void debug_gcpro1 (char *, int, struct gcpro *, Lisp_Object *); +MODULE_API void debug_gcpro2 (char *, int, struct gcpro *, struct gcpro *, + Lisp_Object *, Lisp_Object *); +MODULE_API void debug_gcpro3 (char *, int, struct gcpro *, struct gcpro *, + struct gcpro *, Lisp_Object *, Lisp_Object *, + Lisp_Object *); +MODULE_API void debug_gcpro4 (char *, int, struct gcpro *, struct gcpro *, + struct gcpro *, struct gcpro *, Lisp_Object *, + Lisp_Object *, Lisp_Object *, Lisp_Object *); +MODULE_API void debug_gcpro5 (char *, int, struct gcpro *, struct gcpro *, + struct gcpro *, struct gcpro *, struct gcpro *, + Lisp_Object *, Lisp_Object *, Lisp_Object *, + Lisp_Object *, Lisp_Object *); +MODULE_API void debug_ungcpro(char *, int, struct gcpro *); #define GCPRO1(v) \ debug_gcpro1 (__FILE__, __LINE__,&gcpro1,&v) @@ -3455,28 +3496,28 @@ /* Help debug crashes gc-marking a staticpro'ed object. */ -void staticpro_1 (Lisp_Object *, char *); -void staticpro_nodump_1 (Lisp_Object *, char *); +MODULE_API void staticpro_1 (Lisp_Object *, char *); +MODULE_API void staticpro_nodump_1 (Lisp_Object *, char *); #define staticpro(ptr) staticpro_1 (ptr, #ptr) #define staticpro_nodump(ptr) staticpro_nodump_1 (ptr, #ptr) #ifdef HAVE_SHLIB -void unstaticpro_nodump_1 (Lisp_Object *, char *); +MODULE_API void unstaticpro_nodump_1 (Lisp_Object *, char *); #define unstaticpro_nodump(ptr) unstaticpro_nodump_1 (ptr, #ptr) #endif #else /* Call staticpro (&var) to protect static variable `var'. */ -void staticpro (Lisp_Object *); +MODULE_API void staticpro (Lisp_Object *); /* Call staticpro_nodump (&var) to protect static variable `var'. */ /* var will not be saved at dump time */ -void staticpro_nodump (Lisp_Object *); +MODULE_API void staticpro_nodump (Lisp_Object *); #ifdef HAVE_SHLIB /* Call unstaticpro_nodump (&var) to stop protecting static variable `var'. */ -void unstaticpro_nodump (Lisp_Object *); +MODULE_API void unstaticpro_nodump (Lisp_Object *); #endif #endif @@ -3485,6 +3526,10 @@ int begin_gc_forbidden (void); void end_gc_forbidden (int count); +#ifdef __cplusplus +} +#endif + /************************************************************************/ /* Misc definitions */ @@ -3509,56 +3554,61 @@ /* Prototypes for all init/syms_of/vars_of initialization functions. */ #include "symsinit.h" +#ifdef __cplusplus +extern "C" { +#endif + /* Defined in abbrev.c */ -EXFUN (Fexpand_abbrev, 0); +MODULE_API EXFUN (Fexpand_abbrev, 0); /* Defined in alloc.c */ -EXFUN (Fcons, 2); -EXFUN (Flist, MANY); +MODULE_API EXFUN (Fcons, 2); +MODULE_API EXFUN (Flist, MANY); EXFUN (Fmake_byte_code, MANY); -EXFUN (Fmake_list, 2); -EXFUN (Fmake_string, 2); -EXFUN (Fmake_symbol, 1); -EXFUN (Fmake_vector, 2); -EXFUN (Fvector, MANY); +MODULE_API EXFUN (Fmake_list, 2); +MODULE_API EXFUN (Fmake_string, 2); +MODULE_API EXFUN (Fmake_symbol, 1); +MODULE_API EXFUN (Fmake_vector, 2); +MODULE_API EXFUN (Fvector, MANY); void release_breathing_space (void); Lisp_Object noseeum_cons (Lisp_Object, Lisp_Object); -Lisp_Object make_vector (Elemcount, Lisp_Object); -Lisp_Object vector1 (Lisp_Object); -Lisp_Object vector2 (Lisp_Object, Lisp_Object); -Lisp_Object vector3 (Lisp_Object, Lisp_Object, Lisp_Object); +MODULE_API Lisp_Object make_vector (Elemcount, Lisp_Object); +MODULE_API Lisp_Object vector1 (Lisp_Object); +MODULE_API Lisp_Object vector2 (Lisp_Object, Lisp_Object); +MODULE_API Lisp_Object vector3 (Lisp_Object, Lisp_Object, Lisp_Object); Lisp_Object make_bit_vector (Elemcount, Lisp_Object); Lisp_Object make_bit_vector_from_byte_vector (unsigned char *, Elemcount); Lisp_Object noseeum_make_marker (void); void garbage_collect_1 (void); -Lisp_Object acons (Lisp_Object, Lisp_Object, Lisp_Object); -Lisp_Object cons3 (Lisp_Object, Lisp_Object, Lisp_Object); -Lisp_Object list1 (Lisp_Object); -Lisp_Object list2 (Lisp_Object, Lisp_Object); -Lisp_Object list3 (Lisp_Object, Lisp_Object, Lisp_Object); -Lisp_Object list4 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object); -Lisp_Object list5 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, - Lisp_Object); -Lisp_Object list6 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, - Lisp_Object, Lisp_Object); +MODULE_API Lisp_Object acons (Lisp_Object, Lisp_Object, Lisp_Object); +MODULE_API Lisp_Object cons3 (Lisp_Object, Lisp_Object, Lisp_Object); +MODULE_API Lisp_Object list1 (Lisp_Object); +MODULE_API Lisp_Object list2 (Lisp_Object, Lisp_Object); +MODULE_API Lisp_Object list3 (Lisp_Object, Lisp_Object, Lisp_Object); +MODULE_API Lisp_Object list4 (Lisp_Object, Lisp_Object, Lisp_Object, + Lisp_Object); +MODULE_API Lisp_Object list5 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, + Lisp_Object); +MODULE_API Lisp_Object list6 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, + Lisp_Object, Lisp_Object); DECLARE_DOESNT_RETURN (memory_full (void)); void disksave_object_finalization (void); extern int purify_flag; extern EMACS_INT gc_generation_number[1]; int c_readonly (Lisp_Object); int lisp_readonly (Lisp_Object); -void copy_lisp_object (Lisp_Object dst, Lisp_Object src); -Lisp_Object build_intstring (const Ibyte *); -Lisp_Object build_string (const CIbyte *); -Lisp_Object build_ext_string (const Extbyte *, Lisp_Object); -Lisp_Object build_msg_intstring (const Ibyte *); -Lisp_Object build_msg_string (const CIbyte *); -Lisp_Object make_string (const Ibyte *, Bytecount); -Lisp_Object make_ext_string (const Extbyte *, EMACS_INT, Lisp_Object); +MODULE_API void copy_lisp_object (Lisp_Object dst, Lisp_Object src); +MODULE_API Lisp_Object build_intstring (const Ibyte *); +MODULE_API Lisp_Object build_string (const CIbyte *); +MODULE_API Lisp_Object build_ext_string (const Extbyte *, Lisp_Object); +MODULE_API Lisp_Object build_msg_intstring (const Ibyte *); +MODULE_API Lisp_Object build_msg_string (const CIbyte *); +MODULE_API Lisp_Object make_string (const Ibyte *, Bytecount); +MODULE_API Lisp_Object make_ext_string (const Extbyte *, EMACS_INT, Lisp_Object); void init_string_ascii_begin (Lisp_Object string); Lisp_Object make_uninit_string (Bytecount); -Lisp_Object make_float (double); +MODULE_API Lisp_Object make_float (double); Lisp_Object make_string_nocopy (const Ibyte *, Bytecount); void free_cons (Lisp_Object); void free_list (Lisp_Object); @@ -3566,10 +3616,13 @@ void free_marker (Lisp_Object); int object_dead_p (Lisp_Object); void mark_object (Lisp_Object obj); +#ifdef USE_KKCC +void kkcc_gc_stack_push_lisp_object (Lisp_Object obj); +#endif /* USE_KKCC */ int marked_p (Lisp_Object obj); extern int funcall_allocation_flag; extern int need_to_garbage_collect; -extern int need_to_check_c_alloca; +extern MODULE_API int need_to_check_c_alloca; extern int need_to_signal_post_gc; extern Lisp_Object Qpost_gc_hook, Qgarbage_collecting; void recompute_funcall_allocation_flag (void); @@ -3623,17 +3676,17 @@ extern void init_initial_directory (void); /* initialize initial_directory */ EXFUN (Fbuffer_disable_undo, 1); -EXFUN (Fbuffer_modified_p, 1); -EXFUN (Fbuffer_name, 1); -EXFUN (Fcurrent_buffer, 0); +MODULE_API EXFUN (Fbuffer_modified_p, 1); +MODULE_API EXFUN (Fbuffer_name, 1); +MODULE_API EXFUN (Fcurrent_buffer, 0); EXFUN (Ferase_buffer, 1); EXFUN (Fget_buffer, 1); EXFUN (Fget_buffer_create, 1); EXFUN (Fget_file_buffer, 1); -EXFUN (Fkill_buffer, 1); +MODULE_API EXFUN (Fkill_buffer, 1); EXFUN (Fother_buffer, 3); EXFUN (Frecord_buffer, 1); -EXFUN (Fset_buffer, 1); +MODULE_API EXFUN (Fset_buffer, 1); EXFUN (Fset_buffer_modified_p, 2); extern Lisp_Object QSscratch, Qafter_change_function, Qafter_change_functions; @@ -3706,7 +3759,8 @@ DECLARE_DOESNT_RETURN (args_out_of_range (Lisp_Object, Lisp_Object)); DECLARE_DOESNT_RETURN (args_out_of_range_3 (Lisp_Object, Lisp_Object, Lisp_Object)); -Lisp_Object wrong_type_argument (Lisp_Object, Lisp_Object); +MODULE_API Lisp_Object wrong_type_argument (Lisp_Object, Lisp_Object); +MODULE_API DECLARE_DOESNT_RETURN (dead_wrong_type_argument (Lisp_Object, Lisp_Object)); void check_int_range (EMACS_INT, EMACS_INT, EMACS_INT); @@ -3862,15 +3916,15 @@ EXFUN (Ffunction_max_args, 1); EXFUN (Ffunction_min_args, 1); -DECLARE_DOESNT_RETURN (signal_error_1 (Lisp_Object, Lisp_Object)); +MODULE_API DECLARE_DOESNT_RETURN (signal_error_1 (Lisp_Object, Lisp_Object)); void maybe_signal_error_1 (Lisp_Object, Lisp_Object, Lisp_Object, Error_Behavior); Lisp_Object maybe_signal_continuable_error_1 (Lisp_Object, Lisp_Object, Lisp_Object, Error_Behavior); -DECLARE_DOESNT_RETURN_GCC_ATTRIBUTE_SYNTAX_SUCKS (signal_ferror - (Lisp_Object, - const CIbyte *, - ...), 2, 3); +MODULE_API DECLARE_DOESNT_RETURN_GCC_ATTRIBUTE_SYNTAX_SUCKS (signal_ferror + (Lisp_Object, + const CIbyte *, + ...), 2, 3); void maybe_signal_ferror (Lisp_Object, Lisp_Object, Error_Behavior, const CIbyte *, ...) PRINTF_ARGS (4, 5); Lisp_Object signal_continuable_ferror (Lisp_Object, const CIbyte *, ...) @@ -3935,20 +3989,20 @@ Lisp_Object frob2)); void maybe_sferror (const CIbyte *, Lisp_Object, Lisp_Object, Error_Behavior); -DECLARE_DOESNT_RETURN (invalid_argument (const CIbyte *reason, - Lisp_Object frob)); -DECLARE_DOESNT_RETURN (invalid_argument_2 (const CIbyte *reason, - Lisp_Object frob1, - Lisp_Object frob2)); +MODULE_API DECLARE_DOESNT_RETURN (invalid_argument (const CIbyte *reason, + Lisp_Object frob)); +MODULE_API DECLARE_DOESNT_RETURN (invalid_argument_2 (const CIbyte *reason, + Lisp_Object frob1, + Lisp_Object frob2)); void maybe_invalid_argument (const CIbyte *, Lisp_Object, Lisp_Object, Error_Behavior); -DECLARE_DOESNT_RETURN (invalid_operation (const CIbyte *reason, - Lisp_Object frob)); -DECLARE_DOESNT_RETURN (invalid_operation_2 (const CIbyte *reason, - Lisp_Object frob1, - Lisp_Object frob2)); -void maybe_invalid_operation (const CIbyte *, Lisp_Object, Lisp_Object, - Error_Behavior); +MODULE_API DECLARE_DOESNT_RETURN (invalid_operation (const CIbyte *reason, + Lisp_Object frob)); +MODULE_API DECLARE_DOESNT_RETURN (invalid_operation_2 (const CIbyte *reason, + Lisp_Object frob1, + Lisp_Object frob2)); +MODULE_API void maybe_invalid_operation (const CIbyte *, Lisp_Object, + Lisp_Object, Error_Behavior); DECLARE_DOESNT_RETURN (invalid_state (const CIbyte *reason, Lisp_Object frob)); DECLARE_DOESNT_RETURN (invalid_state_2 (const CIbyte *reason, @@ -3963,18 +4017,19 @@ Lisp_Object frob2)); void maybe_invalid_change (const CIbyte *, Lisp_Object, Lisp_Object, Error_Behavior); -DECLARE_DOESNT_RETURN (invalid_constant (const CIbyte *reason, - Lisp_Object frob)); +MODULE_API DECLARE_DOESNT_RETURN (invalid_constant (const CIbyte *reason, + Lisp_Object frob)); DECLARE_DOESNT_RETURN (invalid_constant_2 (const CIbyte *reason, Lisp_Object frob1, Lisp_Object frob2)); void maybe_invalid_constant (const CIbyte *, Lisp_Object, Lisp_Object, Error_Behavior); DECLARE_DOESNT_RETURN (wtaerror (const CIbyte *reason, Lisp_Object frob)); -DECLARE_DOESNT_RETURN (out_of_memory (const CIbyte *reason, - Lisp_Object frob)); +MODULE_API DECLARE_DOESNT_RETURN (out_of_memory (const CIbyte *reason, + Lisp_Object frob)); DECLARE_DOESNT_RETURN (stack_overflow (const CIbyte *reason, Lisp_Object frob)); +MODULE_API DECLARE_DOESNT_RETURN_GCC_ATTRIBUTE_SYNTAX_SUCKS (printing_unreadable_object (const CIbyte *, ...), 1, 2); @@ -4134,11 +4189,11 @@ Lisp_Object (*) (Lisp_Object, Lisp_Object), Lisp_Object); Lisp_Object condition_case_3 (Lisp_Object, Lisp_Object, Lisp_Object); -Lisp_Object unbind_to_1 (int, Lisp_Object); +MODULE_API Lisp_Object unbind_to_1 (int, Lisp_Object); #define unbind_to(obj) unbind_to_1 (obj, Qnil) void specbind (Lisp_Object, Lisp_Object); -int record_unwind_protect (Lisp_Object (*) (Lisp_Object), Lisp_Object); -int record_unwind_protect_freeing (void *ptr); +MODULE_API int record_unwind_protect (Lisp_Object (*) (Lisp_Object), + Lisp_Object); int record_unwind_protect_freeing_dynarr (void *ptr); int record_unwind_protect_restoring_int (int *addr, int val); int internal_bind_int (int *addr, int newval); @@ -4146,8 +4201,8 @@ void do_autoload (Lisp_Object, Lisp_Object); /* GCPROs both arguments */ Lisp_Object un_autoload (Lisp_Object); void warn_when_safe_lispobj (Lisp_Object, Lisp_Object, Lisp_Object); -void warn_when_safe (Lisp_Object, Lisp_Object, const CIbyte *, - ...) PRINTF_ARGS (3, 4); +MODULE_API void warn_when_safe (Lisp_Object, Lisp_Object, const CIbyte *, + ...) PRINTF_ARGS (3, 4); extern int backtrace_with_internal_sections; extern Lisp_Object Vstack_trace_on_error; @@ -4234,7 +4289,8 @@ extern Lisp_Object Qcanonicalize_after_coding; int coding_system_is_for_text_file (Lisp_Object coding_system); Lisp_Object find_coding_system_for_text_file (Lisp_Object name, int eol_wrap); -Lisp_Object get_coding_system_for_text_file (Lisp_Object name, int eol_wrap); +MODULE_API Lisp_Object get_coding_system_for_text_file (Lisp_Object name, + int eol_wrap); int coding_system_is_binary (Lisp_Object coding_system); @@ -4288,7 +4344,7 @@ double extract_float (Lisp_Object); /* Defined in fns.c */ -EXFUN (Fappend, MANY); +MODULE_API EXFUN (Fappend, MANY); EXFUN (Fassoc, 2); EXFUN (Fassq, 2); EXFUN (Fcanonicalize_lax_plist, 2); @@ -4303,17 +4359,17 @@ EXFUN (Fdelq, 2); EXFUN (Fdestructive_alist_to_plist, 1); EXFUN (Felt, 2); -EXFUN (Fequal, 2); -EXFUN (Fget, 3); +MODULE_API EXFUN (Fequal, 2); +MODULE_API EXFUN (Fget, 3); EXFUN (Flast, 2); EXFUN (Flax_plist_get, 3); EXFUN (Flax_plist_remprop, 2); -EXFUN (Flength, 1); +MODULE_API EXFUN (Flength, 1); EXFUN (Fmapcar, 2); EXFUN (Fmember, 2); EXFUN (Fmemq, 2); EXFUN (Fnconc, MANY); -EXFUN (Fnreverse, 1); +MODULE_API EXFUN (Fnreverse, 1); EXFUN (Fnthcdr, 2); EXFUN (Fold_assq, 2); EXFUN (Fold_equal, 2); @@ -4322,11 +4378,12 @@ EXFUN (Fplist_get, 3); EXFUN (Fplist_member, 2); EXFUN (Fplist_put, 3); -EXFUN (Fprovide, 1); -EXFUN (Fput, 3); +MODULE_API EXFUN (Fprovide, 1); +MODULE_API EXFUN (Fput, 3); EXFUN (Frassq, 2); EXFUN (Fremassq, 2); EXFUN (Freplace_list, 2); +MODULE_API EXFUN (Freverse, 1); EXFUN (Fsafe_length, 1); EXFUN (Fsort, 2); EXFUN (Fstring_equal, 2); @@ -4496,7 +4553,7 @@ void message_internal (const Ibyte *, Lisp_Object, Bytecount, Bytecount); void message_append_internal (const Ibyte *, Lisp_Object, Bytecount, Bytecount); -void message (const char *, ...) PRINTF_ARGS (1, 2); +MODULE_API void message (const char *, ...) PRINTF_ARGS (1, 2); void message_append (const char *, ...) PRINTF_ARGS (1, 2); void message_no_translate (const char *, ...) PRINTF_ARGS (1, 2); void clear_message (void); @@ -4525,17 +4582,17 @@ /* NOTE: Do not call this with the data of a Lisp_String. Use princ. * Note: stream should be defaulted before calling * (eg Qnil means stdout, not Vstandard_output, etc) */ -void write_c_string (Lisp_Object stream, const CIbyte *str); +MODULE_API void write_c_string (Lisp_Object stream, const CIbyte *str); /* Same goes for this function. */ -void write_string (Lisp_Object stream, const Ibyte *str); +MODULE_API void write_string (Lisp_Object stream, const Ibyte *str); /* Same goes for this function. */ void write_string_1 (Lisp_Object stream, const Ibyte *str, Bytecount size); void write_eistring (Lisp_Object stream, const Eistring *ei); /* Higher-level (printf-style) ways to output data: */ -void write_fmt_string (Lisp_Object stream, const CIbyte *fmt, ...); -void write_fmt_string_lisp (Lisp_Object stream, const CIbyte *fmt, - int nargs, ...); +MODULE_API void write_fmt_string (Lisp_Object stream, const CIbyte *fmt, ...); +MODULE_API void write_fmt_string_lisp (Lisp_Object stream, const CIbyte *fmt, + int nargs, ...); void stderr_out (const CIbyte *, ...) PRINTF_ARGS (1, 2); void stderr_out_lisp (const CIbyte *, int nargs, ...); void stdout_out (const CIbyte *, ...) PRINTF_ARGS (1, 2); @@ -4565,7 +4622,7 @@ (((2410824 * sizeof (integral_type)) / 1000000) + 3) void long_to_string (char *, long); extern int print_escape_newlines; -extern int print_readably; +extern MODULE_API int print_readably; Lisp_Object internal_with_output_to_temp_buffer (Lisp_Object, Lisp_Object (*) (Lisp_Object), Lisp_Object, Lisp_Object); @@ -4654,7 +4711,7 @@ unsigned int hash_string (const Ibyte *, Bytecount); Lisp_Object intern_int (const Ibyte *str); -Lisp_Object intern (const CIbyte *str); +MODULE_API Lisp_Object intern (const CIbyte *str); Lisp_Object intern_converting_underscores_to_dashes (const CIbyte *str); Lisp_Object oblookup (Lisp_Object, const Ibyte *, Bytecount); void map_obarray (Lisp_Object, int (*) (Lisp_Object, void *), void *); @@ -5156,8 +5213,8 @@ extern Lisp_Object Qforeground, Qformat, Qframe_live_p, Qgraphic; extern Lisp_Object Qgui_error, Qicon_glyph_p, Qidentity, Qinhibit_quit; extern Lisp_Object Qinhibit_read_only, Qinteger_char_or_marker_p; -extern Lisp_Object Qinteger_or_char_p, Qinteger_or_marker_p, Qintegerp; -extern Lisp_Object Qinteractive, Qinternal_error, Qinvalid_argument; +extern Lisp_Object Qinteger_or_char_p, Qinteger_or_marker_p; +extern Lisp_Object Qinteractive, Qinternal_error; extern Lisp_Object Qinvalid_byte_code, Qinvalid_change, Qinvalid_constant; extern Lisp_Object Qinvalid_function, Qinvalid_operation; extern Lisp_Object Qinvalid_read_syntax, Qinvalid_state, Qio_error, Qlambda; @@ -5171,7 +5228,7 @@ extern Lisp_Object Qoverflow_error, Qpoint, Qpointer_glyph_p; extern Lisp_Object Qpointer_image_instance_p, Qprint_length; extern Lisp_Object Qprint_string_length, Qprinting_unreadable_object; -extern Lisp_Object Qprocess_error, Qprogn, Qquit, Qquote, Qrange_error; +extern Lisp_Object Qprogn, Qquit, Qquote, Qrange_error; extern Lisp_Object Qread_char, Qread_from_minibuffer; extern Lisp_Object Qreally_early_error_handler, Qregion_beginning; extern Lisp_Object Qregion_end, Qregistry, Qreverse_direction_charset; @@ -5181,15 +5238,19 @@ extern Lisp_Object Qsound_error, Qstack_overflow, Qstandard_input; extern Lisp_Object Qstandard_output, Qstart_open, Qstring_lessp; extern Lisp_Object Qstructure_formation_error, Qsubwindow; -extern Lisp_Object Qsubwindow_image_instance_p, Qsyntax_error, Qt; +extern Lisp_Object Qsubwindow_image_instance_p; extern Lisp_Object Qtext_conversion_error, Qtext_image_instance_p, Qtop_level; -extern Lisp_Object Qtrue_list_p, Qunbound, Qunderflow_error, Qunderline; +extern Lisp_Object Qtrue_list_p, Qunderflow_error, Qunderline; extern Lisp_Object Quser_files_and_directories, Qvalues; extern Lisp_Object Qvariable_documentation, Qvariable_domain, Qvoid_function; extern Lisp_Object Qvoid_variable, Qwindow_live_p, Qwrong_number_of_arguments; extern Lisp_Object Qwrong_type_argument, Qyes_or_no_p; +extern MODULE_API Lisp_Object Qintegerp, Qinvalid_argument, Qprocess_error; +extern MODULE_API Lisp_Object Qsyntax_error, Qt, Qunbound; + #define SYMBOL(fou) extern Lisp_Object fou +#define SYMBOL_MODULE_API(fou) extern MODULE_API Lisp_Object fou #define SYMBOL_KEYWORD(la_cle_est_fou) extern Lisp_Object la_cle_est_fou #define SYMBOL_GENERAL(tout_le_monde, est_fou) \ extern Lisp_Object tout_le_monde @@ -5197,6 +5258,7 @@ #include "general-slots.h" #undef SYMBOL +#undef SYMBOL_MODULE_API #undef SYMBOL_KEYWORD #undef SYMBOL_GENERAL @@ -5235,5 +5297,9 @@ extern Lisp_Object Vsynchronous_sounds, Vsystem_name; extern Lisp_Object Vthis_command_keys, Vunread_command_event; extern Lisp_Object Vx_initial_argv_list; + +#ifdef __cplusplus +} +#endif #endif /* INCLUDED_lisp_h_ */ Index: src/lrecord.h =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/lrecord.h,v retrieving revision 1.26 retrieving revision 1.29 diff -u -r1.26 -r1.29 --- src/lrecord.h 24 Apr 2003 05:33:44 -0000 1.26 +++ src/lrecord.h 28 Aug 2003 15:44:29 -0000 1.29 @@ -58,6 +58,10 @@ the opaque type. --ben */ +#ifdef __cplusplus +extern "C" { +#endif + struct lrecord_header { /* Index into lrecord_implementations_table[]. Objects that have been @@ -218,7 +222,7 @@ lrecord_type_last_built_in_type /* must be last */ }; -extern int lrecord_type_count; +extern MODULE_API int lrecord_type_count; struct lrecord_implementation { @@ -301,7 +305,8 @@ room in `lrecord_implementations_table' for such new lisp object types. */ #define MODULE_DEFINABLE_TYPE_COUNT 32 -extern const struct lrecord_implementation *lrecord_implementations_table[lrecord_type_last_built_in_type + MODULE_DEFINABLE_TYPE_COUNT]; +extern MODULE_API const struct lrecord_implementation * +lrecord_implementations_table[lrecord_type_last_built_in_type + MODULE_DEFINABLE_TYPE_COUNT]; #define XRECORD_LHEADER_IMPLEMENTATION(obj) \ LHEADER_IMPLEMENTATION (XRECORD_LHEADER (obj)) @@ -919,7 +924,7 @@ getprop, putprop, remprop, plist, size, sizer, \ lrecord_type_last_built_in_type, basic_p } -extern Lisp_Object (*lrecord_markers[]) (Lisp_Object); +extern MODULE_API Lisp_Object (*lrecord_markers[]) (Lisp_Object); #define INIT_LRECORD_IMPLEMENTATION(type) do { \ lrecord_implementations_table[lrecord_type_##type] = &lrecord_##type; \ @@ -1134,6 +1139,18 @@ } \ extern Lisp_Object Q##c_name##p +# define DECLARE_MODULE_API_LRECORD(c_name, structtype) \ +extern MODULE_API const struct lrecord_implementation lrecord_##c_name; \ +DECLARE_INLINE_HEADER ( \ +structtype * \ +error_check_##c_name (Lisp_Object obj, const char *file, int line) \ +) \ +{ \ + assert_at_line (RECORD_TYPEP (obj, lrecord_type_##c_name), file, line); \ + return (structtype *) XPNTR (obj); \ +} \ +extern MODULE_API Lisp_Object Q##c_name##p + # define DECLARE_EXTERNAL_LRECORD(c_name, structtype) \ extern int lrecord_type_##c_name; \ extern struct lrecord_implementation lrecord_##c_name; \ @@ -1183,6 +1200,9 @@ # define DECLARE_LRECORD(c_name, structtype) \ extern Lisp_Object Q##c_name##p; \ extern const struct lrecord_implementation lrecord_##c_name +# define DECLARE_MODULE_API_LRECORD(c_name, structtype) \ +extern MODULE_API Lisp_Object Q##c_name##p; \ +extern MODULE_API const struct lrecord_implementation lrecord_##c_name # define DECLARE_EXTERNAL_LRECORD(c_name, structtype) \ extern Lisp_Object Q##c_name##p; \ extern int lrecord_type_##c_name; \ @@ -1347,8 +1367,9 @@ void free_managed_lcrecord (Lisp_Object lcrecord_list, Lisp_Object lcrecord); /* AUTO-MANAGED MODEL: */ -void *alloc_automanaged_lcrecord (Bytecount size, - const struct lrecord_implementation *); +MODULE_API void * +alloc_automanaged_lcrecord (Bytecount size, + const struct lrecord_implementation *); #define alloc_lcrecord_type(type, lrecord_implementation) \ ((type *) alloc_automanaged_lcrecord (sizeof (type), lrecord_implementation)) void free_lcrecord (Lisp_Object rec); @@ -1464,7 +1485,7 @@ /* Nonzero means Emacs has already been initialized. Used during startup to detect startup of dumped Emacs. */ -extern int initialized; +extern MODULE_API int initialized; #ifdef PDUMP @@ -1557,5 +1578,9 @@ } #endif /* defined (USE_KKCC) || defined (PDUMP) */ + +#ifdef __cplusplus +} +#endif #endif /* INCLUDED_lrecord_h_ */ Index: src/mem-limits.h =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/mem-limits.h,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- src/mem-limits.h 12 Jan 2003 11:08:18 -0000 1.11 +++ src/mem-limits.h 19 Aug 2003 02:07:16 -0000 1.12 @@ -112,7 +112,7 @@ #if defined (HEAP_IN_DATA) && !defined(PDUMP) extern unsigned long static_heap_size; -extern int initialized; +extern MODULE_API int initialized; static void get_lim_data (void) { Index: src/mule-canna.c =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/mule-canna.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- src/mule-canna.c 11 Nov 2002 15:34:13 -0000 1.17 +++ src/mule-canna.c 28 Aug 2003 15:44:29 -0000 1.18 @@ -169,7 +169,7 @@ /* #### is this global really necessary? */ #define KEYTOSTRSIZE 2048 -static unsigned char key_buffer[KEYTOSTRSIZE]; +static char key_buffer[KEYTOSTRSIZE]; static char **warning; static int canna_empty_info, canna_through_info; @@ -191,7 +191,7 @@ static int IRCP_context; -static Lisp_Object storeResults (unsigned char *, int, jrKanjiStatus *); +static Lisp_Object storeResults (char *, int, jrKanjiStatus *); static Lisp_Object kanjiYomiList (int, int); static Lisp_Object CANNA_mode_keys (void); @@ -222,7 +222,7 @@ } static Lisp_Object -storeResults (unsigned char *buf, int len, jrKanjiStatus *ks) +storeResults (char *buf, int len, jrKanjiStatus *ks) { Lisp_Object val = Qnil; @@ -233,27 +233,28 @@ else { /* ³ÎÄꤷ¤¿Ê¸»úÎó (the confirmed string) */ - Vcanna_kakutei_string = make_string (buf, len); + Vcanna_kakutei_string = make_string ((unsigned char *) buf, len); val = make_int (len); /* ³ÎÄꤷ¤¿Ê¸»úÎó¤ÎÆɤߤξðÊó... (info about the reading of the confirmed string) */ Vcanna_kakutei_yomi = Vcanna_kakutei_romaji = Qnil; if (ks->info & KanjiYomiInfo) { - unsigned char *p = buf + len + 1; + char *p = buf + len + 1; int yomilen = strlen (p); if (len + yomilen + 1 < KEYTOSTRSIZE) { int yomilen2; - Vcanna_kakutei_yomi = make_string (p, yomilen); /* ÆÉ¤ß - (reading) */ + Vcanna_kakutei_yomi = + make_string ((unsigned char *) p, yomilen); /* ÆÉ¤ß (reading) */ p += yomilen + 1; yomilen2 = strlen (p); if (len + yomilen + yomilen2 + 2 < KEYTOSTRSIZE) { - Vcanna_kakutei_romaji = make_string (p, yomilen2); + Vcanna_kakutei_romaji = + make_string ((unsigned char *) p, yomilen2); /* ¥í¡¼¥Þ»ú (romanization) */ } } @@ -309,7 +310,8 @@ Vcanna_mode_string = Qnil; if (ks->info & KanjiModeInfo) { - Vcanna_mode_string = make_string (ks->mode, strlen (ks->mode)); + Vcanna_mode_string = + make_string (ks->mode, strlen ((const char *) ks->mode)); } /* ¤½¤Î¾¤Î¾ðÊó (other information) */ @@ -382,7 +384,8 @@ char servername[256]; CHECK_STRING (server); - strncpy (servername, XSTRING_DATA (server), XSTRING_LENGTH (server)); + strncpy (servername, (const char *) XSTRING_DATA (server), + XSTRING_LENGTH (server)); servername[XSTRING_LENGTH (server)] = '\0'; jrKanjiControl (0, KC_SETSERVERNAME, servername); } @@ -396,7 +399,8 @@ char rcname[256]; CHECK_STRING (rcfile); - strncpy (rcname, XSTRING_DATA (rcfile), XSTRING_LENGTH (rcfile)); + strncpy (rcname, (const char *) XSTRING_DATA (rcfile), + XSTRING_LENGTH (rcfile)); rcname[XSTRING_LENGTH (rcfile)] = '\0'; jrKanjiControl (0, KC_SETINITFILENAME, rcname); } @@ -417,14 +421,14 @@ while (p < q) { q--; - val = Fcons (make_string (*q, strlen (*q)), val); + val = Fcons (make_string (*q, strlen ((const char *) *q)), val); } } val = Fcons (val, Qnil); if (res == -1) { - val = Fcons (make_string ((unsigned char*) jrKanjiError, + val = Fcons (make_string ((unsigned char *) jrKanjiError, strlen (jrKanjiError)), val); /* ¥¤¥Ë¥·¥ã¥é¥¤¥º¤Ç¼ºÇÔ¤·¤¿¾ì¹ç¡£ (on initialization failure) */ return Fcons (Qnil, val); @@ -477,7 +481,7 @@ { for (p = (unsigned char**) warning ; *p ; p++) { - val = Fcons (make_string (*p, strlen (*p)), val); + val = Fcons (make_string (*p, strlen ((const char *) *p)), val); } } val = Fcons (val, Qnil); @@ -506,7 +510,7 @@ #else /* CANNA_MULE */ m2c (XSTRING_DATA (str), XSTRING_LENGTH (str), cbuf); ks.echoStr = cbuf; - ks.length = strlen (cbuf); + ks.length = strlen ((const char *) cbuf); #endif /* CANNA_MULE */ ksv.ks = &ks; len = jrKanjiControl (0, KC_DEFINEKANJI, (char *)&ksv); @@ -576,7 +580,8 @@ ks.length = XSTRING_LENGTH (yomi); key_buffer[ks.length] = '\0'; #else /* CANNA_MULE */ - m2c (XSTRING_DATA (yomi), XSTRING_LENGTH (yomi), key_buffer); + m2c (XSTRING_DATA (yomi), XSTRING_LENGTH (yomi), + (unsigned char *) key_buffer); ks.length = strlen (key_buffer); #endif /* CANNA_MULE */ @@ -595,7 +600,8 @@ ks.mode = (unsigned char *)(key_buffer + XSTRING_LENGTH (yomi) + 1); #else /* CANNA_MULE */ ks.mode = (unsigned char *)(key_buffer + ks.length + 1); - m2c (XSTRING_DATA (roma), XSTRING_LENGTH (roma), ks.mode); + m2c (XSTRING_DATA (roma), XSTRING_LENGTH (roma), + (unsigned char *) ks.mode); #endif /* CANNA_MULE */ } @@ -652,7 +658,7 @@ strncpy (key_buffer, XSTRING_DATA (str), XSTRING_LENGTH (str)); key_buffer[XSTRING_LENGTH (str)] = '\0'; #else /* CANNA_MULE */ - m2c (XSTRING_DATA (str), XSTRING_LENGTH (str), key_buffer); + m2c (XSTRING_DATA (str), XSTRING_LENGTH (str), (unsigned char *) key_buffer); #endif /* CANNA_MULE */ p = (unsigned char**) key_buffer; n = jrKanjiControl (0, KC_PARSE, (char *) &p); @@ -660,7 +666,7 @@ while (n > 0) { n--; - val = Fcons (make_string (p[n], strlen (p[n])), val); + val = Fcons (make_string (p[n], strlen ((const char *) p[n])), val); } return val; } @@ -670,10 +676,10 @@ */ ()) { - unsigned char buf[256]; + char buf[256]; jrKanjiControl (0, KC_QUERYMODE, buf); - return make_string (buf, strlen (buf)); + return make_string ((unsigned char *) buf, strlen (buf)); } /* @@ -743,7 +749,8 @@ (RK_XFER << RK_XFERBITS) | RK_KFER); #else /* CANNA_MULE */ m2c (XSTRING_DATA (yomi), XSTRING_LENGTH (yomi), yomibuf); - nbun = RkBgnBun (IRCP_context, (char *) yomibuf, strlen (yomibuf), + nbun = RkBgnBun (IRCP_context, (char *) yomibuf, + strlen ((const char *) yomibuf), (RK_XFER << RK_XFERBITS) | RK_KFER); #endif /* CANNA_MULE */ @@ -798,7 +805,7 @@ p = RkBuf; for (i = 0 ; i < len ; i++) { - slen = strlen (p); + slen = strlen ((const char *) p); if (NILP(res)) { endp = res = Fcons (make_string (p, slen), Qnil); @@ -1851,7 +1858,7 @@ unsigned char cbuf[4096]; c2mu (p,l,cbuf); - return (make_string (cbuf,strlen (cbuf))); + return (make_string (cbuf, strlen ((const char *) cbuf))); } /* return the MULE internal string length of EUC string */ Index: src/mule-wnnfns.c =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/mule-wnnfns.c,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- src/mule-wnnfns.c 5 Jun 2002 09:56:35 -0000 1.24 +++ src/mule-wnnfns.c 28 Aug 2003 15:44:29 -0000 1.25 @@ -361,7 +361,7 @@ return Qnil; } size = XSTRING_LENGTH (lname) > 1024 ? 1026 : XSTRING_LENGTH (lname) + 2; - envname = ALLOCA (size); + envname = (char *) ALLOCA (size); strncpy (envname, (char *) XSTRING_DATA (lname), size-2); envname[size-2] = '\0'; if (NILP (hname)) hostname = ""; @@ -370,7 +370,7 @@ CHECK_STRING (hname); size = XSTRING_LENGTH(hname) > 1024 ? 1025 : XSTRING_LENGTH(hname) + 1; - hostname = ALLOCA (size); + hostname = (char *) ALLOCA (size); strncpy (hostname, (char *) XSTRING_DATA (hname), size-1); hostname[size-1] = '\0'; } Index: src/opaque.c =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/opaque.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- src/opaque.c 12 Jan 2003 11:08:19 -0000 1.16 +++ src/opaque.c 17 Jul 2003 13:10:49 -0000 1.17 @@ -145,11 +145,15 @@ return (unsigned long) XOPAQUE_PTR (obj)->ptr; } +static const struct memory_description opaque_ptr_description[] = { + { XD_END } +}; + DEFINE_LRECORD_IMPLEMENTATION ("opaque-ptr", opaque_ptr, 0, /*dumpable-flag*/ 0, print_opaque_ptr, 0, equal_opaque_ptr, hash_opaque_ptr, - 0, Lisp_Opaque_Ptr); + opaque_ptr_description, Lisp_Opaque_Ptr); Lisp_Object make_opaque_ptr (void *val) Index: src/opaque.h =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/opaque.h,v retrieving revision 1.6 retrieving revision 1.9 diff -u -r1.6 -r1.9 --- src/opaque.h 29 Mar 2002 04:48:17 -0000 1.6 +++ src/opaque.h 28 Aug 2003 15:44:30 -0000 1.9 @@ -47,10 +47,8 @@ #define OPAQUE_SIZE(op) ((op)->size) #define OPAQUE_DATA(op) ((void *) ((op)->data)) -#define OPAQUE_MARKFUN(op) ((op)->markfun) #define XOPAQUE_SIZE(op) OPAQUE_SIZE (XOPAQUE (op)) #define XOPAQUE_DATA(op) OPAQUE_DATA (XOPAQUE (op)) -#define XOPAQUE_MARKFUN(op) OPAQUE_MARKFUN (XOPAQUE (op)) Lisp_Object make_opaque (const void *data, Bytecount size); @@ -65,8 +63,8 @@ #define wrap_opaque_ptr(p) wrap_record (p, opaque_ptr) #define OPAQUE_PTRP(x) RECORDP (x, opaque_ptr) -Lisp_Object make_opaque_ptr (void *val); -void free_opaque_ptr (Lisp_Object ptr); +EXTERN_C MODULE_API Lisp_Object make_opaque_ptr (void *val); +EXTERN_C MODULE_API void free_opaque_ptr (Lisp_Object ptr); #define get_opaque_ptr(op) (XOPAQUE_PTR (op)->ptr) #define set_opaque_ptr(op, ptr_) (XOPAQUE_PTR (op)->ptr = (ptr_)) Index: src/process.h =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/process.h,v retrieving revision 1.20 retrieving revision 1.22 diff -u -r1.20 -r1.22 --- src/process.h 12 Jan 2003 11:08:20 -0000 1.20 +++ src/process.h 28 Aug 2003 15:44:30 -0000 1.22 @@ -36,6 +36,10 @@ #else /* not NO_SUBPROCESSES */ +#ifdef __cplusplus +extern "C" { +#endif + /* struct Lisp_Process is defined in procimpl.h; only process-*.c need to know about the guts of it. */ @@ -66,12 +70,13 @@ EXFUN (Fprocess_kill_without_query, 2); EXFUN (Fprocess_id, 1); +MODULE_API DECLARE_DOESNT_RETURN (report_process_error (const char *, Lisp_Object)); DECLARE_DOESNT_RETURN (report_network_error (const char *, Lisp_Object)); extern Lisp_Object Vlisp_EXEC_SUFFIXES; -Ibyte *egetenv (const CIbyte *var); -void eputenv (const CIbyte *var, const CIbyte *value); +MODULE_API Ibyte *egetenv (const CIbyte *var); +MODULE_API void eputenv (const CIbyte *var, const CIbyte *value); extern int env_initted; extern Lisp_Object Qprocess_live_p; @@ -116,6 +121,10 @@ int process_has_separate_stderr (Lisp_Object proc); const char *signal_name (int signum); Lisp_Object canonicalize_host_name (Lisp_Object host); + +#ifdef __cplusplus +} +#endif #endif /* not NO_SUBPROCESSES */ Index: src/profile.c =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/profile.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- src/profile.c 9 Mar 2003 02:27:45 -0000 1.18 +++ src/profile.c 31 Jul 2003 13:32:26 -0000 1.19 @@ -672,7 +672,11 @@ void *void_val, void *void_closure) { +#ifdef USE_KKCC + kkcc_gc_stack_push_lisp_object (VOID_TO_LISP (void_key)); +#else /* NOT USE_KKCC */ mark_object (VOID_TO_LISP (void_key)); +#endif /* NOT USE_KKCC */ return 0; } Index: src/symeval.h =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/symeval.h,v retrieving revision 1.9 retrieving revision 1.11 diff -u -r1.9 -r1.11 --- src/symeval.h 18 Nov 2002 06:52:41 -0000 1.9 +++ src/symeval.h 28 Aug 2003 15:44:30 -0000 1.11 @@ -27,6 +27,10 @@ #ifndef INCLUDED_symeval_h_ #define INCLUDED_symeval_h_ +#ifdef __cplusplus +extern "C" { +#endif + enum symbol_value_type { /* The following tags use the 'symbol_value_forward' structure @@ -275,24 +279,27 @@ DEFUN ("name, Fname, ...); // at top level in foo.c DEFSUBR (Fname); // in syms_of_foo(); */ -void defsubr (Lisp_Subr *); +MODULE_API void defsubr (Lisp_Subr *); #define DEFSUBR(Fname) defsubr (&S##Fname) /* To define a Lisp primitive macro using a C function `Fname', do this: DEFUN ("name, Fname, ...); // at top level in foo.c DEFSUBR_MACRO (Fname); // in syms_of_foo(); */ -void defsubr_macro (Lisp_Subr *); +MODULE_API void defsubr_macro (Lisp_Subr *); #define DEFSUBR_MACRO(Fname) defsubr_macro (&S##Fname) -void defsymbol_massage_name (Lisp_Object *location, const char *name); -void defsymbol_massage_name_nodump (Lisp_Object *location, const char *name); -void defsymbol_massage_multiword_predicate (Lisp_Object *location, - const char *name); -void defsymbol_massage_multiword_predicate_nodump (Lisp_Object *location, - const char *name); -void defsymbol (Lisp_Object *location, const char *name); -void defsymbol_nodump (Lisp_Object *location, const char *name); +MODULE_API void defsymbol_massage_name (Lisp_Object *location, + const char *name); +MODULE_API void defsymbol_massage_name_nodump (Lisp_Object *location, + const char *name); +MODULE_API void defsymbol_massage_multiword_predicate (Lisp_Object *location, + const char *name); +MODULE_API void +defsymbol_massage_multiword_predicate_nodump (Lisp_Object *location, + const char *name); +MODULE_API void defsymbol (Lisp_Object *location, const char *name); +MODULE_API void defsymbol_nodump (Lisp_Object *location, const char *name); /* Defining symbols: @@ -327,16 +334,19 @@ #define DEFSYMBOL_MULTIWORD_PREDICATE_NO_DUMP(name) \ defsymbol_massage_multiword_predicate_nodump (&name, #name) -void defkeyword (Lisp_Object *location, const char *name); -void defkeyword_massage_name (Lisp_Object *location, const char *name); +MODULE_API void defkeyword (Lisp_Object *location, const char *name); +MODULE_API void defkeyword_massage_name (Lisp_Object *location, + const char *name); #define DEFKEYWORD(name) defkeyword_massage_name (&name, #name) -void deferror (Lisp_Object *symbol, const char *name, - const char *message, Lisp_Object inherits_from); -void deferror_massage_name (Lisp_Object *symbol, const char *name, - const char *message, Lisp_Object inherits_from); -void deferror_massage_name_and_message (Lisp_Object *symbol, const char *name, - Lisp_Object inherits_from); +MODULE_API void deferror (Lisp_Object *symbol, const char *name, + const char *message, Lisp_Object inherits_from); +MODULE_API void deferror_massage_name (Lisp_Object *symbol, const char *name, + const char *message, + Lisp_Object inherits_from); +MODULE_API void deferror_massage_name_and_message (Lisp_Object *symbol, + const char *name, + Lisp_Object inherits_from); #define DEFERROR(name, message, inherits_from) \ deferror_massage_name (&name, #name, message, inherits_from) /* In this case, the error message is the same as the name, modulo some @@ -347,8 +357,8 @@ /* Macros we use to define forwarded Lisp variables. These are used in the syms_of_FILENAME functions. */ -void defvar_magic (const char *symbol_name, - const struct symbol_value_forward *magic); +MODULE_API void defvar_magic (const char *symbol_name, + const struct symbol_value_forward *magic); #define DEFVAR_SYMVAL_FWD(lname, c_location, forward_type, magicfun) \ do \ @@ -423,5 +433,9 @@ DEFVAR_SYMVAL_FWD_INT (lname, c_location, SYMVAL_BOOLEAN_FORWARD, magicfun) void flush_all_buffer_local_cache (void); + +#ifdef __cplusplus +} +#endif #endif /* INCLUDED_symeval_h_ */ Index: src/sysdll.c =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/sysdll.c,v retrieving revision 1.12 retrieving revision 1.14 diff -u -r1.12 -r1.14 --- src/sysdll.c 16 Apr 2003 20:24:07 -0000 1.12 +++ src/sysdll.c 19 Aug 2003 02:07:16 -0000 1.14 @@ -160,7 +160,7 @@ return "Generic shared library error"; } -#elif defined(HAVE_INIT_DLD) +#elif defined(HAVE_DLD_INIT) #include int dll_init (const char *arg) @@ -210,11 +210,10 @@ { return dld_get_symbol (n); } -#elif defined (WIN32_NATIVE) +#elif defined (WIN32_NATIVE) || defined (CYGWIN) -#define WIN32_LEAN_AND_MEAN -#include -#undef WIN32_LEAN_AND_MEAN +#include "syswindows.h" +#include "sysfile.h" int dll_init (const char *arg) @@ -225,7 +224,10 @@ dll_handle dll_open (const char *fname) { - return (dll_handle) LoadLibrary (fname); + Ibyte *winfname, *unifname; + LOCAL_TO_WIN32_FILE_FORMAT ((char *) fname, winfname); + C_STRING_TO_TSTR (winfname, unifname); + return (dll_handle) qxeLoadLibrary (unifname); } int @@ -249,7 +251,10 @@ const char * dll_error (dll_handle h) { - return "Windows DLL Error"; + /* Since nobody frees the returned string, I have to make this ugly hack. */ + static char err[32] = "Windows DLL Error "; + snprintf (&err[18], 14, "%lu", GetLastError ()); + return err; } #elif defined(HAVE_DYLD) /* This section supports MacOSX dynamic libraries. Dynamically Index: src/text.h =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/text.h,v retrieving revision 1.17 retrieving revision 1.19 diff -u -r1.17 -r1.19 --- src/text.h 3 May 2003 01:55:35 -0000 1.17 +++ src/text.h 28 Aug 2003 15:44:30 -0000 1.19 @@ -45,6 +45,10 @@ char *strupr (char *); #endif +#ifdef __cplusplus +extern "C" { +#endif + /* ---------------------------------------------------------------------- */ /* Super-basic character properties */ /* ---------------------------------------------------------------------- */ @@ -125,7 +129,7 @@ This value can be derived in other ways -- e.g. something like XCHARSET_REP_BYTES (charset_by_leading_byte (first_byte)) but it's faster this way. */ -extern const Bytecount rep_bytes_by_first_byte[0xA0]; +extern MODULE_API const Bytecount rep_bytes_by_first_byte[0xA0]; /* Number of bytes in the string representation of a character. */ @@ -336,7 +340,7 @@ #endif /* MULE */ -int dfc_coding_system_is_unicode (Lisp_Object codesys); +MODULE_API int dfc_coding_system_is_unicode (Lisp_Object codesys); DECLARE_INLINE_HEADER ( Bytecount dfc_external_data_len (const void *ptr, Lisp_Object codesys) @@ -606,8 +610,10 @@ #ifdef MULE -Charcount bytecount_to_charcount_fun (const Ibyte *ptr, Bytecount len); -Bytecount charcount_to_bytecount_fun (const Ibyte *ptr, Charcount len); +MODULE_API Charcount +bytecount_to_charcount_fun (const Ibyte *ptr, Bytecount len); +MODULE_API Bytecount +charcount_to_bytecount_fun (const Ibyte *ptr, Charcount len); /* Given a pointer to a text string and a length in bytes, return the equivalent length in characters. */ @@ -799,9 +805,9 @@ #ifdef MULE -Ichar non_ascii_itext_ichar (const Ibyte *ptr); -Bytecount non_ascii_set_itext_ichar (Ibyte *ptr, Ichar c); -Bytecount non_ascii_itext_copy_ichar (const Ibyte *src, Ibyte *dst); +MODULE_API Ichar non_ascii_itext_ichar (const Ibyte *ptr); +MODULE_API Bytecount non_ascii_set_itext_ichar (Ibyte *ptr, Ichar c); +MODULE_API Bytecount non_ascii_itext_copy_ichar (const Ibyte *src, Ibyte *dst); /* Retrieve the character pointed to by PTR as an Ichar. */ @@ -994,7 +1000,7 @@ #ifdef MULE -int non_ascii_valid_ichar_p (Ichar ch); +MODULE_API int non_ascii_valid_ichar_p (Ichar ch); /* Return whether the given Ichar is valid. */ @@ -2449,6 +2455,10 @@ #define eilwr(ei) EI_CASECHANGE (ei, 1) #define eiupr(ei) EI_CASECHANGE (ei, 0) +#ifdef __cplusplus +} +#endif + /************************************************************************/ /* */ @@ -2688,16 +2698,20 @@ }; typedef enum dfc_conversion_type dfc_conversion_type; +#ifdef __cplusplus +extern "C" { +#endif + /* WARNING: These use a static buffer. This can lead to disaster if these functions are not used *very* carefully. Another reason to only use TO_EXTERNAL_FORMAT() and TO_INTERNAL_FORMAT(). */ -void +MODULE_API void dfc_convert_to_external_format (dfc_conversion_type source_type, dfc_conversion_data *source, Lisp_Object codesys, dfc_conversion_type sink_type, dfc_conversion_data *sink); -void +MODULE_API void dfc_convert_to_internal_format (dfc_conversion_type source_type, dfc_conversion_data *source, Lisp_Object codesys, @@ -2886,12 +2900,18 @@ DFC_LISP_STRING }; -void *new_dfc_convert_malloc (const void *src, Bytecount src_size, - enum new_dfc_src_type type, Lisp_Object codesys); -void *new_dfc_convert_alloca (const char *srctext, void *alloca_data); -Bytecount new_dfc_convert_size (const char *srctext, const void *src, - Bytecount src_size, enum new_dfc_src_type type, - Lisp_Object codesys); +MODULE_API void *new_dfc_convert_malloc (const void *src, Bytecount src_size, + enum new_dfc_src_type type, + Lisp_Object codesys); +MODULE_API void *new_dfc_convert_alloca (const char *srctext, void *alloca_data); +MODULE_API Bytecount new_dfc_convert_size (const char *srctext, const void *src, + Bytecount src_size, + enum new_dfc_src_type type, + Lisp_Object codesys); + +#ifdef __cplusplus +} +#endif /* Version of EXTERNAL_TO_C_STRING that *RETURNS* the translated string, still in alloca() space. Requires some trickiness to do this, but gets Index: src/toolbar.c =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/src/toolbar.c,v retrieving revision 1.30 retrieving revision 1.31 diff -u -r1.30 -r1.31 --- src/toolbar.c 21 Feb 2003 06:57:00 -0000 1.30 +++ src/toolbar.c 4 Jul 2003 07:16:26 -0000 1.31 @@ -750,7 +750,7 @@ || f->frame_changed || f->clear)) { - int pos; + int pos, frame_size_changed = 0; /* We're not officially "in redisplay", so we still have a chance to re-layout toolbars and windows. This is done here, @@ -763,14 +763,7 @@ for (pos = 0; pos < 4; pos++) if (FRAME_REAL_TOOLBAR_SIZE (f, pos) != FRAME_CURRENT_TOOLBAR_SIZE (f, pos)) - { - int width, height; - pixel_to_char_size (f, FRAME_PIXWIDTH (f), FRAME_PIXHEIGHT (f), - &width, &height); - change_frame_size (f, height, width, 0); - MARK_FRAME_LAYOUT_CHANGED (f); - break; - } + frame_size_changed = 1; for (pos = 0; pos < 4; pos++) { f->current_toolbar_size[pos] = FRAME_REAL_TOOLBAR_SIZE (f, pos); @@ -781,11 +774,24 @@ FRAME_LAST_NONMINIBUF_WINDOW instead of FRAME_SELECTED_WINDOW throughout the toolbar code. */ compute_frame_toolbars_data (f); + + if (frame_size_changed) + { + int width, height; + pixel_to_char_size (f, FRAME_PIXWIDTH (f), FRAME_PIXHEIGHT (f), + &width, &height); + if (!HAS_FRAMEMETH_P (f, set_frame_size)) + change_frame_size (f, height, width, 0); + else + FRAMEMETH (f, set_frame_size, (f, width, height)); + MARK_FRAME_LAYOUT_CHANGED (f); + } /* Clear the previous toolbar locations. If we do it later (after redisplay) we end up clearing what we have just displayed. */ MAYBE_DEVMETH (d, clear_frame_toolbars, (f)); + } } Index: src/xemacs.def.in.in =================================================================== RCS file: src/xemacs.def.in.in diff -N src/xemacs.def.in.in --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/xemacs.def.in.in 19 Aug 2003 02:07:16 -0000 1.1 @@ -0,0 +1,205 @@ +/* Put the usual header here */ +/* The symbol to import/export is on the left. If the symbol is not + meant to be used directly, but a macro or inline function in the + API expands to a form containing the symbol, then the macro or + inline function is named in a comment to the right. */ +#define NOT_C_CODE +#include +NAME xemacs.exe +EXPORTS +/* Exported functions */ +acons +alloc_automanaged_lcrecord /* alloc_lcrecord_type */ +#ifdef USE_ASSERTIONS +assert_failed /* abort(), assert(), etc. */ +#endif +build_ext_string +build_intstring +build_msg_intstring +build_msg_string +build_string +#ifdef MULE +bytecount_to_charcount_fun /* bytecount_to_charcount */ +charcount_to_bytecount_fun /* charcount_to_bytecount */ +#endif +check_quit /* QUITP */ +check_what_happened /* QUIT */ +cons3 +copy_lisp_object +dead_wrong_type_argument /* CHECK_xxx */ +#ifdef DEBUG_GCPRO +debug_gcpro1 /* GCPRO1 */ +debug_gcpro2 /* GCPRO2 */ +debug_gcpro3 /* GCPRO3 */ +debug_gcpro4 /* GCPRO4 */ +debug_gcpro5 /* GCPRO5 */ +debug_ungcpro /* UNGCPRO */ +#endif +deferror +deferror_massage_name /* DEFERROR */ +deferror_massage_name_and_message /* DEFERROR_STANDARD */ +defkeyword +defkeyword_massage_name /* DEFKEYWORD */ +defsubr /* DEFSUBR */ +defsubr_macro /* DEFSUBR_MACRO */ +defsymbol +defsymbol_nodump /* == defsymbol in modules */ +defsymbol_massage_multiword_predicate /* DEFSYMBOL_MULTIWORD_PREDICATE */ +defsymbol_massage_multiword_predicate_nodump /* DEFSYMBOL_MULTIWORD_PREDICATE_NO_DUMP */ +defsymbol_massage_name /* DEFSYMBOL */ +defsymbol_massage_name_nodump /* DEFSYMBOL_NO_DUMP == DEFSYMBOL in modules */ +defvar_magic /* DEFVAR_LISP, DEFVAR_INT, ... */ +dfc_coding_system_is_unicode /* TO_INTERNAL_FORMAT */ +dfc_convert_to_external_format /* TO_EXTERNAL_FORMAT */ +dfc_convert_to_internal_format /* TO_INTERNAL_FORMAT */ +egetenv +#ifndef EMODULES_GATHER_VERSION +emodules_doc_subr /* CDOCSUBR */ +emodules_doc_sym /* CDOCSYM */ +#endif +eputenv +#ifdef DEBUG_XEMACS +eq_with_ebola_notice /* EQ_WITH_EBOLA_NOTICE */ +#endif +free_opaque_ptr +get_coding_system_for_text_file +intern +invalid_argument +invalid_argument_2 +invalid_constant +invalid_operation +invalid_operation_2 +list1 +list2 +list3 +list4 +list5 +list6 +make_ext_string +make_float +make_opaque_ptr +make_string +make_vector +maybe_invalid_operation +message +new_dfc_convert_alloca /* C_STRING_TO_EXTERNAL, ... */ +new_dfc_convert_malloc /* C_STRING_TO_EXTERNAL_MALLOC, ... */ +new_dfc_convert_size /* C_STRING_TO_EXTERNAL, ... */ +#ifdef MULE +non_ascii_itext_copy_ichar /* itext_copy_ichar */ +non_ascii_itext_ichar /* itext_ichar */ +non_ascii_set_itext_ichar /* set_itext_ichar */ +non_ascii_valid_ichar_p /* valid_ichar_p */ +#endif +out_of_memory /* The postgresql module uses this */ +printing_unreadable_object +record_unwind_protect +record_unwind_protect_freeing +report_process_error +signal_error +signal_ferror +signal_quit /* QUIT */ +#ifndef DEBUG_XEMACS +staticpro +staticpro_nodump +#else +staticpro_1 +staticpro_nodump_1 +#endif +unbind_to_1 /* unbind_to */ +#ifndef DEBUG_XEMACS +unstaticpro_nodump +#else +unstaticpro_nodump_1 +#endif +vector1 +vector2 +vector3 +warn_when_safe +write_c_string +write_fmt_string +write_fmt_string_lisp +write_string +wrong_type_argument /* CONCHECK_xxx */ +xemacs_c_alloca /* ALLOCA */ +#ifdef ERROR_CHECK_MALLOC +xfree_1 /* xfree */ +#else +xfree +#endif +xmalloc +xmalloc_and_zero +xrealloc +xstrdup +Dynarr_delete_many /* Dynarr_delete, Dynarr_delete_object, ... */ +Dynarr_free +Dynarr_insert_many /* Dynarr_add_{literal,lisp}_string */ +Dynarr_newf /* Dynarr_new, Dynarr_new2 */ +Dynarr_resize /* Dynarr_add */ +Fappend +Fbuffer_modified_p +Fbuffer_name +Fcons +Fcurrent_buffer +Fequal +Fexpand_abbrev +Fget +Fkill_buffer +Flength +Flist +Fmake_list +Fmake_string +Fmake_symbol +Fmake_vector +Fnreverse +Fprovide +Fput +Freverse +Fset_buffer +Fvector + +/* Exported variables */ +__temp_alloca_size__ /* ALLOCA */ +#ifdef DEBUG_XEMACS +debug_issue_ebola_notices /* EQ_WITH_EBOLA_NOTICE */ +#endif +dont_check_for_quit /* QUITP, QUIT */ +gcprolist /* GCPRO1, GCPRO2, ... */ +initialized /* LOADHIST_ATTACH */ +lrecord_cons /* CONSP */ +lrecord_implementations_table /* RECORD_DUMPABLE */ +lrecord_marker /* MARKERP */ +lrecord_markers /* INIT_LRECORD_IMPLEMENTATION */ +lrecord_string /* STRINGP */ +lrecord_symbol /* SYMBOLP */ +lrecord_type_count /* INIT_EXTERNAL_LRECORD_IMPLEMENTATION */ +need_to_check_c_alloca /* ALLOCA */ +print_readably +quit_check_signal_happened /* QUITP */ +#ifdef ERROR_CHECK_MALLOC +regex_malloc_disallowed /* REGEX_MALLOC_CHECK */ +#endif +#ifdef MULE +rep_bytes_by_first_byte /* itext_ichar_len, INC_IBYTEPTR, ... */ +#endif +something_happened /* QUIT */ +specpdl_depth_counter /* specpdl_depth */ +Qconsp /* CHECK_CONS */ +Qfile_name /* Qdll_filename_encoding */ +Qintegerp /* CHECK_INT, CONCHECK_INT */ +Qinvalid_argument +Qnative +Qnil +Qnotice +#ifdef USE_UNION_TYPE +Qnull_pointer /* DEFVAR_xxx */ +#endif +Qprocess_error +Qstringp /* CHECK_STRING */ +Qsymbolp /* CHECK_SYMBOL */ +Qsyntax_error +Qt +Qunbound +#ifdef USE_UNION_TYPE +Qzero /* ZEROP */ +#endif Index: tests/ChangeLog =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/tests/ChangeLog,v retrieving revision 1.36 retrieving revision 1.40 diff -u -r1.36 -r1.40 --- tests/ChangeLog 1 Jun 2003 05:10:30 -0000 1.36 +++ tests/ChangeLog 4 Sep 2003 00:05:17 -0000 1.40 @@ -1,3 +1,24 @@ +2003-09-03 Steve Youngs + + * XEmacs 21.5.15 "celery" is released. + +2003-08-31 Adrian Aichner + + * automated/test-harness.el (test-harness-from-buffer): Log + results when running noninteractive. + * automated/test-harness.el (batch-test-emacs): Remove misplaced + debugging code. + +2003-08-19 Marcus Crestani + Markus Kaltenbach + + * automated/weak-tests.el: Added tests for weak-lists. + +2003-08-10 Stephen J. Turnbull + + * automated/regexp-tests.el: Update copyright notice and + maintainer name. Improve comment on stale match tests. + 2003-06-01 Steve Youngs * XEmacs 21.5.14 "cassava" is released. Index: tests/automated/regexp-tests.el =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/tests/automated/regexp-tests.el,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- tests/automated/regexp-tests.el 10 May 2003 07:44:24 -0000 1.10 +++ tests/automated/regexp-tests.el 11 Aug 2003 10:03:36 -0000 1.11 @@ -1,9 +1,9 @@ ;;; -*- coding: iso-8859-1 -*- -;; Copyright (C) 2000 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2002, 2003 Free Software Foundation, Inc. ;; Author: Yoshiki Hayashi -;; Maintainer: Yoshiki Hayashi +;; Maintainer: Stephen J. Turnbull ;; Created: 2000 ;; Keywords: tests @@ -284,9 +284,8 @@ ;; Thanks to . ;; These tests used to fail because we cleared match data only on success. ;; Fixed 2003-04-17. -;; Have to revert 2003-05-09; too much code depends on failed matches -;; preserving match-data. -;; string match and regexp match are equivalent +;; Must change sense of failing tests 2003-05-09. Too much code depends on +;; failed matches preserving match-data. (let ((a "a")) (Assert (string= (progn (string-match "a" a) (string-match "b" a) Index: tests/automated/test-harness.el =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/tests/automated/test-harness.el,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- tests/automated/test-harness.el 23 Apr 2003 15:42:52 -0000 1.11 +++ tests/automated/test-harness.el 31 Aug 2003 17:30:19 -0000 1.12 @@ -353,7 +353,9 @@ (fmakunbound 'Check-Error-Message) (fmakunbound 'Ignore-Ebola) (fmakunbound 'Int-to-Marker) - ))) + (and noninteractive + (message "%s" (buffer-substring-no-properties + nil nil "*Test-Log*")))))) (defvar test-harness-results-point-max nil) (defmacro displaying-emacs-test-results (&rest body) @@ -432,7 +434,6 @@ (setq error t)))) (or (batch-test-emacs-1 file) (setq error t)))) - ;;(message "%s" (buffer-string nil nil "*Test-Log*")) (message "Done") (kill-emacs (if error 1 0)))) Index: tests/automated/weak-tests.el =================================================================== RCS file: /pack/xemacscvs/XEmacs/xemacs/tests/automated/weak-tests.el,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- tests/automated/weak-tests.el 28 Jun 2002 14:24:45 -0000 1.1 +++ tests/automated/weak-tests.el 20 Aug 2003 11:53:44 -0000 1.2 @@ -26,7 +26,7 @@ ;;; Commentary: -;;; Test implementation of weak boxes and ephemerons +;;; Test implementation of weak boxes, ephemerons, and weak lists ;;; See test-harness.el (condition-case err @@ -37,6 +37,8 @@ (require 'test-harness)))) (garbage-collect) + +;; tests for weak-boxes (let ((w (make-weak-box (cons 2 3)))) (Assert (equal (cons 2 3) (weak-box-ref w))) (garbage-collect) @@ -44,6 +46,7 @@ (garbage-collect) +;; tests for ephemerons (let* ((p (cons 3 4)) (finalized-p nil) (eph1 (make-ephemeron (cons 1 2) p @@ -63,3 +66,154 @@ (Assert (eq p (ephemeron-ref eph2)))) +(garbage-collect) + +;; tests for simple weak-lists +(let* ((a (cons 23 42)) + (b (cons 42 65)) + (testlist (list a b)) + (weaklist1 (make-weak-list 'simple)) + (weaklist2 (make-weak-list 'simple)) + (weaklist3 (make-weak-list 'simple)) + (weaklist4 (make-weak-list 'simple))) + (set-weak-list-list weaklist1 testlist) + (set-weak-list-list weaklist2 (list (cons 1 2) a b)) + (set-weak-list-list weaklist3 (list a (cons 1 2) b)) + (set-weak-list-list weaklist4 (list a b (cons 1 2))) + (Assert (weak-list-p weaklist1)) + (Assert (eq (weak-list-type weaklist1) 'simple)) + (Assert (weak-list-p weaklist2)) + (Assert (eq (weak-list-type weaklist2) 'simple)) + (Assert (weak-list-p weaklist3)) + (Assert (eq (weak-list-type weaklist3) 'simple)) + (Assert (weak-list-p weaklist4)) + (Assert (eq (weak-list-type weaklist4) 'simple)) + + (garbage-collect) + + (Assert (eq (weak-list-list weaklist1) testlist)) + (Assert (equal (weak-list-list weaklist2) testlist)) + (Assert (equal (weak-list-list weaklist3) testlist)) + (Assert (equal (weak-list-list weaklist4) testlist))) + +(garbage-collect) + +;; tests for assoc weak-lists +(let* ((a (cons 23 42)) + (b (cons a a)) + (testlist (list b b)) + (weaklist1 (make-weak-list 'assoc)) + (weaklist2 (make-weak-list 'assoc)) + (weaklist3 (make-weak-list 'assoc)) + (weaklist4 (make-weak-list 'assoc))) + (set-weak-list-list weaklist1 testlist) + (set-weak-list-list weaklist2 (list b (cons (cons 1 2) a) b)) + (set-weak-list-list weaklist3 (list b (cons a (cons 1 2)) b)) + (set-weak-list-list weaklist4 (list b (cons (cons 1 2) (cons 3 4)) b)) + (Assert (weak-list-p weaklist1)) + (Assert (eq (weak-list-type weaklist1) 'assoc)) + (Assert (weak-list-p weaklist2)) + (Assert (eq (weak-list-type weaklist2) 'assoc)) + (Assert (weak-list-p weaklist3)) + (Assert (eq (weak-list-type weaklist3) 'assoc)) + (Assert (weak-list-p weaklist4)) + (Assert (eq (weak-list-type weaklist4) 'assoc)) + + (garbage-collect) + + (Assert (eq (weak-list-list weaklist1) testlist)) + (Assert (equal (weak-list-list weaklist2) testlist)) + (Assert (equal (weak-list-list weaklist3) testlist)) + (Assert (equal (weak-list-list weaklist4) testlist))) + +(garbage-collect) + +;; tests for key-assoc weak-lists +(let* ((a (cons 23 42)) + (b (cons a a)) + (testlist (list b b)) + (weaklist1 (make-weak-list 'key-assoc)) + (weaklist2 (make-weak-list 'key-assoc)) + (weaklist3 (make-weak-list 'key-assoc)) + (weaklist4 (make-weak-list 'key-assoc))) + (set-weak-list-list weaklist1 testlist) + (set-weak-list-list weaklist2 (list b (cons (cons 1 2) a) b)) + (set-weak-list-list weaklist3 (list b (cons a (cons 1 2)) b)) + (set-weak-list-list weaklist4 (list b (cons (cons 1 2) (cons 3 4)) b)) + (Assert (weak-list-p weaklist1)) + (Assert (eq (weak-list-type weaklist1) 'key-assoc)) + (Assert (weak-list-p weaklist2)) + (Assert (eq (weak-list-type weaklist2) 'key-assoc)) + (Assert (weak-list-p weaklist3)) + (Assert (eq (weak-list-type weaklist3) 'key-assoc)) + (Assert (weak-list-p weaklist4)) + (Assert (eq (weak-list-type weaklist4) 'key-assoc)) + + (garbage-collect) + + (Assert (eq (weak-list-list weaklist1) testlist)) + (Assert (equal (weak-list-list weaklist2) testlist)) + (Assert (equal (weak-list-list weaklist3) (list b (cons a (cons 1 2)) b))) + (Assert (equal (weak-list-list weaklist4) testlist))) + +(garbage-collect) + +;; tests for value-assoc weak-lists +(let* ((a (cons 23 42)) + (b (cons a a)) + (testlist (list b b)) + (weaklist1 (make-weak-list 'value-assoc)) + (weaklist2 (make-weak-list 'value-assoc)) + (weaklist3 (make-weak-list 'value-assoc)) + (weaklist4 (make-weak-list 'value-assoc))) + (set-weak-list-list weaklist1 testlist) + (set-weak-list-list weaklist2 (list b (cons (cons 1 2) a) b)) + (set-weak-list-list weaklist3 (list b (cons a (cons 1 2)) b)) + (set-weak-list-list weaklist4 (list b (cons (cons 1 2) (cons 3 4)) b)) + (Assert (weak-list-p weaklist1)) + (Assert (eq (weak-list-type weaklist1) 'value-assoc)) + (Assert (weak-list-p weaklist2)) + (Assert (eq (weak-list-type weaklist2) 'value-assoc)) + (Assert (weak-list-p weaklist3)) + (Assert (eq (weak-list-type weaklist3) 'value-assoc)) + (Assert (weak-list-p weaklist4)) + (Assert (eq (weak-list-type weaklist4) 'value-assoc)) + + (garbage-collect) + + (Assert (eq (weak-list-list weaklist1) testlist)) + (Assert (equal (weak-list-list weaklist2) (list b (cons (cons 1 2) a) b))) + (Assert (equal (weak-list-list weaklist3) testlist)) + (Assert (equal (weak-list-list weaklist4) testlist))) + +(garbage-collect) + +;; tests for full-assoc weak-lists +(let* ((a (cons 23 42)) + (b (cons a a)) + (testlist (list b b)) + (weaklist1 (make-weak-list 'full-assoc)) + (weaklist2 (make-weak-list 'full-assoc)) + (weaklist3 (make-weak-list 'full-assoc)) + (weaklist4 (make-weak-list 'full-assoc))) + (set-weak-list-list weaklist1 testlist) + (set-weak-list-list weaklist2 (list b (cons (cons 1 2) a) b)) + (set-weak-list-list weaklist3 (list b (cons a (cons 1 2)) b)) + (set-weak-list-list weaklist4 (list b (cons (cons 1 2) (cons 3 4)) b)) + (Assert (weak-list-p weaklist1)) + (Assert (eq (weak-list-type weaklist1) 'full-assoc)) + (Assert (weak-list-p weaklist2)) + (Assert (eq (weak-list-type weaklist2) 'full-assoc)) + (Assert (weak-list-p weaklist3)) + (Assert (eq (weak-list-type weaklist3) 'full-assoc)) + (Assert (weak-list-p weaklist4)) + (Assert (eq (weak-list-type weaklist4) 'full-assoc)) + + (garbage-collect) + + (Assert (eq (weak-list-list weaklist1) testlist)) + (Assert (equal (weak-list-list weaklist2) (list b (cons (cons 1 2) a) b))) + (Assert (equal (weak-list-list weaklist3) (list b (cons a (cons 1 2)) b))) + (Assert (equal (weak-list-list weaklist4) testlist))) + +(garbage-collect)