From 15a1545f4a8c666416f9ce60adf6c03c2b1d779f Mon Sep 17 00:00:00 2001 From: tomo Date: Sat, 24 Jul 2004 10:39:28 +0000 Subject: [PATCH] Sync up with r21-4-15-chise-0_21-30. --- ChangeLog | 76 ++ PROBLEMS | 9 +- aclocal.m4 | 4 +- configure | 1784 ++++++++++++++----------- configure.in | 205 ++- configure.usage | 2 +- etc/OXYMORONS | 17 +- etc/PACKAGES | 11 +- etc/package-index.LATEST.pgp | 2512 ----------------------------------- lib-src/ChangeLog | 4 + lib-src/Makefile.in.in | 4 +- lisp/ChangeLog | 216 +++ lisp/about.el | 26 +- lisp/auto-autoloads.el | 108 +- lisp/bytecomp.el | 4 +- lisp/dumped-lisp.el | 8 + lisp/files.el | 2 +- lisp/help.el | 4 +- lisp/info.el | 2 +- lisp/itimer.el | 8 + lisp/menubar-items.el | 122 +- lisp/mule/mule-charset.el | 20 +- lisp/obsolete.el | 5 + lisp/package-admin.el | 387 +++--- lisp/package-get.el | 786 +++++++---- lisp/package-info.el | 3 +- lisp/package-net.el | 3 +- lisp/package-ui.el | 293 ++-- lisp/packages.el | 47 +- lisp/specifier.el | 187 +-- lisp/update-elc.el | 37 +- lisp/utf-2000/README.en | 6 +- lisp/win32-native.el | 4 +- lisp/window-xemacs.el | 21 +- lwlib/ChangeLog | 4 + man/ChangeLog | 141 ++ man/custom.texi | 2 +- man/internals/internals.texi | 111 +- man/lispref/backups.texi | 2 +- man/lispref/display.texi | 2 +- man/lispref/ldap.texi | 8 +- man/lispref/lispref.texi | 13 +- man/lispref/markers.texi | 20 +- man/lispref/menus.texi | 14 +- man/lispref/numbers.texi | 2 +- man/lispref/packaging.texi | 1191 +++++++++-------- man/lispref/postgresql.texi | 57 +- man/lispref/specifiers.texi | 529 +++++++- man/lispref/tips.texi | 9 +- man/new-users-guide/custom2.texi | 12 +- man/new-users-guide/files.texi | 4 +- man/new-users-guide/search.texi | 2 +- man/xemacs-faq.texi | 49 +- man/xemacs/custom.texi | 2 +- man/xemacs/packages.texi | 458 ++----- man/xemacs/reading.texi | 32 +- man/xemacs/xemacs.texi | 1 - netinstall/ChangeLog | 4 + nt/ChangeLog | 18 + nt/minitar.c | 282 ++-- nt/xemacs.mak | 25 +- src/ChangeLog | 87 ++ src/buffer.c | 4 +- src/data.c | 4 +- src/device-x.c | 4 + src/elhash.c | 2 +- src/event-msw.c | 12 +- src/frame-x.c | 20 +- src/opaque.h | 2 - src/regex.c | 15 +- src/s/sol2.h | 14 +- src/search.c | 3 +- src/symbols.c | 27 +- src/window.c | 6 +- tests/ChangeLog | 24 + tests/automated/hash-table-tests.el | 2 - tests/automated/regexp-tests.el | 83 ++ tests/automated/test-harness.el | 217 ++- version.sh | 4 +- 79 files changed, 5001 insertions(+), 5450 deletions(-) delete mode 100644 etc/package-index.LATEST.pgp diff --git a/ChangeLog b/ChangeLog index c0b7b52..efffe4c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -76,6 +76,82 @@ * configure.in: Add new option `--with-utf-2000'; define `UTF2000' if it is specified. +2004-02-02 Vin Shelton + + * XEmacs 21.4.15 is released + +2004-01-30 Vin Shelton + + * etc/OXYMORONS: Inserted "Corporate Culture" for 21.4.15. + +2004-01-25 Steve Youngs + + * etc/package-index.LATEST.gpg: New, replaces + `package-index.LATEST.pgp'. + + * etc/package-index.LATEST.pgp: Removed, replaced with + `package-index.LATEST.gpg'. + +2004-01-20 Jerry James + + * configure.in: The icc compiler pretends to be gcc. It isn't. + +2003-11-28 Norbert Koch + + * etc/PACKAGES (ERC): new. + +2003-11-19 Vin Shelton + + * configure.usage (--with-widgets): widgets now defaults to + --with-widgets=no. Patch inspired by Jim Schumacher. + +2003-10-25 Norbert Koch + + * etc/PACKAGES (riece): New package. + * etc/PACKAGES (liece): Mark as deprecated. + +2003-10-26 Vin Shelton + + * configure.in: Add Intel C++ compiler detection to compiler + version reporting. + +2003-10-16 Valdis Kletnieks + * configure.in: record additional info about compiler and libc + versions, to assist in debugging. + +2003-08-28 Stephen J. Turnbull + + * configure.in (line 3573): + (Mule input methods): + Deprecate Motif for Linux. + (Installation): Report when LessTif is used. + +2003-10-11 Jerry James + + * configure.in: installexe.sh is under srcdir, not blddir. + +2003-10-16 Jerry James + * aclocal.m4: Add icc (Intel compiler) support. + * configure.in: Ditto. + +2003-09-13 Martin Buchholz + + * configure.in (OS_RELEASE): Add support for SunOS 5.10. + On current OSes produced by Sun, `uname -r' prints "5.9". + It seems likely that on future OSes, `uname -r' will print "5.10". + We need to accept multi-digit release numbers. + +2003-09-12 Rodney Sparapani + + * PROBLEMS: Propose bash as an alternative to buggy Solaris + /bin/sh. + +2003-09-10 Martin Buchholz + + * configure.in: XEmacs failed to build on Solaris9. + Solaris9 comes with /usr/demo/SOUND, but no headers or libraries + therein. + 2003-09-03 Vin Shelton * XEmacs 21.4.14 is released diff --git a/PROBLEMS b/PROBLEMS index 7dca91c..93f8825 100644 --- a/PROBLEMS +++ b/PROBLEMS @@ -445,7 +445,14 @@ for just those modules. (Or use gcc). This only occurs if you have LANG != C. This is a known bug with /bin/sh fixed by installing Patch-ID# 101613-01. Or, you can use -bash, as a workaround. +bash by setting the environment variable CONFIG_SHELL to /bin/bash + +*** Solaris 2.x configure fails: ./config.status: test: argument expected + +This is a known bug with /bin/sh and /bin/test, i.e. they do not +support the XPG4 standard. You can use bash as a workaround or an +XPG4-compliant Bourne shell such as the Sun-supplied /usr/xpg4/bin/sh +by setting the environment variable CONFIG_SHELL to /usr/xpg4/bin/sh *** On SunOS, you get linker errors ld: Undefined symbol diff --git a/aclocal.m4 b/aclocal.m4 index 08c81c1..0dcfd2e 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -84,7 +84,7 @@ AC_MSG_CHECKING(how to produce PIC code) wl= can_build_shared=yes -if test "$XEGCC" = yes; then +if test "$XEGCC" = yes -o "$__ICC" = yes; then wl='-Wl,' case "$xehost_os" in @@ -243,7 +243,7 @@ cc_produces_so=no xldf= xcldf= AC_MSG_CHECKING(if C compiler can produce shared libraries) -if test "$XEGCC" = yes; then +if test "$XEGCC" = yes -o "$__ICC" = yes; then xcldf="-shared" xldf="-shared" else # Not using GCC diff --git a/configure b/configure index 2af3f36..5398d7d 100755 --- a/configure +++ b/configure @@ -1426,9 +1426,14 @@ case "$canonical" in esac case "$canonical" in - *-solaris* ) + *-solaris* ) opsys=sol2 - os_release=`uname -r | sed -e 's/^\([0-9]\)\.\([0-9]\).*/\1\2/'` + os_release_major=`uname -r | sed -e 's/^\([0-9]\{1,\}\)\.\([0-9]\{1,\}\).*/\1/'` + os_release_minor=`uname -r | sed -e 's/^\([0-9]\{1,\}\)\.\([0-9]\{1,\}\).*/\2/'` + case "$os_release_minor" in [0-9]) + os_release_minor="0${os_release_minor}";; + esac + os_release="${os_release_major}${os_release_minor}" { test "$extra_verbose" = "yes" && cat << EOF Defining OS_RELEASE = $os_release EOF @@ -1652,7 +1657,7 @@ xe_save_CFLAGS="$CFLAGS" # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1656: checking for $ac_word" >&5 +echo "configure:1661: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1679,7 +1684,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1683: checking for $ac_word" >&5 +echo "configure:1688: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1727,7 +1732,7 @@ fi # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1731: checking for $ac_word" >&5 +echo "configure:1736: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1756,7 +1761,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1760: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:1765: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS' @@ -1769,12 +1774,12 @@ cross_compiling=no cat > conftest.$ac_ext << EOF -#line 1773 "configure" +#line 1778 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:1778: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1783: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -1802,19 +1807,19 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:1806: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1811: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:1811: checking whether we are using GNU C" >&5 +echo "configure:1816: checking whether we are using GNU C" >&5 cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1823: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -1832,7 +1837,7 @@ ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:1836: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1841: checking whether ${CC-cc} accepts -g" >&5 echo 'void f(){}' > conftest.c if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then @@ -1865,7 +1870,7 @@ if test "$with_gcc" = "no" -a "$GCC" = "yes"; then # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1869: checking for $ac_word" >&5 +echo "configure:1874: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1892,7 +1897,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1896: checking for $ac_word" >&5 +echo "configure:1901: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1940,7 +1945,7 @@ fi # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1944: checking for $ac_word" >&5 +echo "configure:1949: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1969,7 +1974,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1973: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:1978: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS' @@ -1982,12 +1987,12 @@ cross_compiling=no cat > conftest.$ac_ext << EOF -#line 1986 "configure" +#line 1991 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:1991: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1996: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -2015,19 +2020,19 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:2019: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:2024: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:2024: checking whether we are using GNU C" >&5 +echo "configure:2029: checking whether we are using GNU C" >&5 cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2036: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -2045,7 +2050,7 @@ ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:2049: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:2054: checking whether ${CC-cc} accepts -g" >&5 echo 'void f(){}' > conftest.c if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then @@ -2078,7 +2083,7 @@ elif test "$with_gcc" = "yes" -a "$GCC" != "yes" ; then # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2082: checking for $ac_word" >&5 +echo "configure:2087: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2105,7 +2110,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2109: checking for $ac_word" >&5 +echo "configure:2114: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2153,7 +2158,7 @@ fi # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2157: checking for $ac_word" >&5 +echo "configure:2162: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2182,7 +2187,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:2186: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:2191: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS' @@ -2195,12 +2200,12 @@ cross_compiling=no cat > conftest.$ac_ext << EOF -#line 2199 "configure" +#line 2204 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:2204: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2209: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -2228,19 +2233,19 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:2232: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:2237: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:2237: checking whether we are using GNU C" >&5 +echo "configure:2242: checking whether we are using GNU C" >&5 cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2249: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -2258,7 +2263,7 @@ ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:2262: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:2267: checking whether ${CC-cc} accepts -g" >&5 echo 'void f(){}' > conftest.c if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then @@ -2295,7 +2300,7 @@ test -n "$CPP" -a -d "$CPP" && CPP= test -n "$NON_GNU_CPP" -a "$GCC" != "yes" -a -z "$CPP" && CPP="$NON_GNU_CPP" echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:2299: checking how to run the C preprocessor" >&5 +echo "configure:2304: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -2308,13 +2313,13 @@ if test -z "$CPP"; then # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2318: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2323: \"$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 : @@ -2325,13 +2330,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2335: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2340: \"$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 : @@ -2342,13 +2347,13 @@ else rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2352: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2357: \"$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 : @@ -2374,9 +2379,9 @@ echo "$ac_t""$CPP" 1>&6 echo $ac_n "checking for AIX""... $ac_c" 1>&6 -echo "configure:2378: checking for AIX" >&5 +echo "configure:2383: checking for AIX" >&5 cat > conftest.$ac_ext <&6 -echo "configure:2407: checking for GNU libc" >&5 +echo "configure:2412: checking for GNU libc" >&5 cat > conftest.$ac_ext < int main() { @@ -2417,7 +2422,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:2421: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2426: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_glibc=yes else @@ -2447,7 +2452,7 @@ cat >> confdefs.h <<\EOF EOF } - if test "$os_release" -ge 55; then + if test "$os_release" -ge 505; then { test "$extra_verbose" = "yes" && cat << \EOF Defining _XOPEN_SOURCE = 500 EOF @@ -2494,7 +2499,7 @@ EOF esac cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:2519: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then : else @@ -2517,9 +2524,11 @@ else cat conftest.$ac_ext >&5 rm -fr conftest* case "$conftest_rc" in - 11) echo "You appear to be using the SunPro C compiler."; __SUNPRO_C=yes ;; - 12) echo "You appear to be using the DEC C compiler." ; __DECC=yes ;; - 13) echo "You appear to be using the SCO C compiler." ; __USLC__=yes ;; + 11) echo "You appear to be using the SunPro C compiler." ; __SUNPRO_C=yes ;; + 12) echo "You appear to be using the DEC C compiler." ; __DECC=yes ;; + 13) echo "You appear to be using the SCO C compiler." ; __USLC__=yes ;; + 14) echo "You appear to be using the Intel C++ compiler."; __ICC=yes + GCC=no ;; esac fi rm -fr conftest* @@ -2742,17 +2751,17 @@ test "$__DECC" = "yes" && c_switch_site="$c_switch_site -std1" && if test "$ext if test "$__USLC__" = yes; then echo $ac_n "checking for whether the -Kalloca compiler flag is needed""... $ac_c" 1>&6 -echo "configure:2746: checking for whether the -Kalloca compiler flag is needed" >&5 +echo "configure:2755: checking for whether the -Kalloca compiler flag is needed" >&5 need_kalloca=no cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2765: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* : else @@ -2763,14 +2772,14 @@ else xe_save_c_switch_system="$c_switch_system" c_switch_system="$c_switch_system -Kalloca" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2783: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* need_kalloca=yes else @@ -2805,13 +2814,15 @@ if test "$cflags_specified" = "no"; then CFLAGS="-O3" elif test "$CC" = "xlc"; then CFLAGS="-g -O3 -qstrict -qnoansialias -qlibansi -qinfo -qro -qmaxmem=20000" + elif test "$__ICC" = "yes"; then + CFLAGS="-g -O3 -Ob2 -Wall -W1" else CFLAGS="-O" ; fi fi if test "$GCC" = "yes"; then echo $ac_n "checking for buggy gcc versions""... $ac_c" 1>&6 -echo "configure:2815: checking for buggy gcc versions" >&5 +echo "configure:2826: checking for buggy gcc versions" >&5 GCC_VERSION=`$CC --version` case `uname -s`:`uname -m`:$GCC_VERSION in *:sun4*:2.8.1|*:sun4*:egcs-2.90.*) @@ -2869,7 +2880,7 @@ fi if test "$pdump" != "yes"; then echo $ac_n "checking for \"-z nocombreloc\" linker flag""... $ac_c" 1>&6 -echo "configure:2873: checking for \"-z nocombreloc\" linker flag" >&5 +echo "configure:2884: checking for \"-z nocombreloc\" linker flag" >&5 case "`ld --help 2>&1`" in *-z\ nocombreloc* ) echo "$ac_t""yes" 1>&6 ld_switch_site="-z nocombreloc $ld_switch_site" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-z nocombreloc\" to \$ld_switch_site"; fi ;; @@ -2958,7 +2969,7 @@ test "$pdump" = "yes" && extra_objs="$extra_objs dumper.o" && if test "$extra_v fi echo $ac_n "checking for dynodump""... $ac_c" 1>&6 -echo "configure:2962: checking for dynodump" >&5 +echo "configure:2973: checking for dynodump" >&5 if test "$unexec" != "unexsol2.o"; then echo "$ac_t""no" 1>&6 else @@ -2996,12 +3007,12 @@ if test "$unexec" = "unexaix.o"; then done echo $ac_n "checking for terminateAndUnload in -lC""... $ac_c" 1>&6 -echo "configure:3000: checking for terminateAndUnload in -lC" >&5 +echo "configure:3011: checking for terminateAndUnload in -lC" >&5 ac_lib_var=`echo C'_'terminateAndUnload | sed 'y%./+-%__p_%'` xe_check_libs=" -lC " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3027: \"$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 @@ -3120,7 +3131,7 @@ fi if test "$add_runtime_path" = "yes"; then echo $ac_n "checking "for runtime libraries flag"""... $ac_c" 1>&6 -echo "configure:3124: checking "for runtime libraries flag"" >&5 +echo "configure:3135: checking "for runtime libraries flag"" >&5 case "$opsys" in sol2 ) dash_r="-R" ;; decosf* | linux* | irix*) dash_r="-rpath " ;; @@ -3142,14 +3153,14 @@ if test "$GCC" = "yes"; then done fi cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3164: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* dash_r="$try_dash_r" else @@ -3216,7 +3227,7 @@ xe_runpath_dir=`echo '' "$arg" | sed -e 's:^ ::' -e 's/^-L//'` eval "$xe_add_unique_runpath_dir" };; esac done - if test "$opsys $need_motif" = "sol2 yes"; then + if test "$opsys $need_motif" = "sol2 yes"; then xe_runpath_dir="/opt/SUNWdt/lib"; eval "$xe_add_unique_runpath_dir"; fi @@ -3250,10 +3261,10 @@ else fi after_morecore_hook_exists=yes echo $ac_n "checking for malloc_set_state""... $ac_c" 1>&6 -echo "configure:3254: checking for malloc_set_state" >&5 +echo "configure:3265: checking for malloc_set_state" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3291: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_malloc_set_state=yes" else @@ -3296,16 +3307,16 @@ doug_lea_malloc=no fi echo $ac_n "checking whether __after_morecore_hook exists""... $ac_c" 1>&6 -echo "configure:3300: checking whether __after_morecore_hook exists" >&5 +echo "configure:3311: checking whether __after_morecore_hook exists" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3320: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -3361,7 +3372,7 @@ fi # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3365: checking for $ac_word" >&5 +echo "configure:3376: checking for $ac_word" >&5 if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. @@ -3416,7 +3427,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:3420: checking for a BSD compatible install" >&5 +echo "configure:3431: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" @@ -3470,7 +3481,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3474: checking for $ac_word" >&5 +echo "configure:3485: checking for $ac_word" >&5 if test -n "$YACC"; then ac_cv_prog_YACC="$YACC" # Let the user override the test. @@ -3502,15 +3513,15 @@ for ac_hdr in a.out.h elf.h cygwin/version.h fcntl.h inttypes.h libg do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:3506: checking for $ac_hdr" >&5 +echo "configure:3517: 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:3514: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3525: \"$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* @@ -3540,10 +3551,10 @@ fi done echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 -echo "configure:3544: checking for sys/wait.h that is POSIX.1 compatible" >&5 +echo "configure:3555: checking for sys/wait.h that is POSIX.1 compatible" >&5 cat > conftest.$ac_ext < #include @@ -3559,7 +3570,7 @@ wait (&s); s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF -if { (eval echo configure:3563: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3574: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else @@ -3583,10 +3594,10 @@ EOF fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:3587: checking for ANSI C header files" >&5 +echo "configure:3598: checking for ANSI C header files" >&5 cat > conftest.$ac_ext < #include @@ -3594,7 +3605,7 @@ cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3598: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3609: \"$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* @@ -3611,7 +3622,7 @@ rm -f conftest* if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -3629,7 +3640,7 @@ fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -3647,7 +3658,7 @@ fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -3658,7 +3669,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF -if { (eval echo configure:3662: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:3673: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then : else @@ -3684,10 +3695,10 @@ EOF fi echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 -echo "configure:3688: checking whether time.h and sys/time.h may both be included" >&5 +echo "configure:3699: checking whether time.h and sys/time.h may both be included" >&5 cat > conftest.$ac_ext < #include @@ -3696,7 +3707,7 @@ int main() { struct tm *tp; ; return 0; } EOF -if { (eval echo configure:3700: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3711: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else @@ -3720,10 +3731,10 @@ EOF fi echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6 -echo "configure:3724: checking for sys_siglist declaration in signal.h or unistd.h" >&5 +echo "configure:3735: checking for sys_siglist declaration in signal.h or unistd.h" >&5 cat > conftest.$ac_ext < #include @@ -3735,7 +3746,7 @@ int main() { char *msg = *(sys_siglist + 1); ; return 0; } EOF -if { (eval echo configure:3739: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3750: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_decl_sys_siglist=yes else @@ -3761,9 +3772,9 @@ fi echo $ac_n "checking for utime""... $ac_c" 1>&6 -echo "configure:3765: checking for utime" >&5 +echo "configure:3776: checking for utime" >&5 cat > conftest.$ac_ext < #include @@ -3771,7 +3782,7 @@ int main() { struct utimbuf x; x.actime = x.modtime = 0; utime ("/", &x); ; return 0; } EOF -if { (eval echo configure:3775: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3786: \"$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 @@ -3790,10 +3801,10 @@ else for ac_func in utimes do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3794: checking for $ac_func" >&5 +echo "configure:3805: 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:3831: \"$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 @@ -3848,10 +3859,10 @@ rm -f conftest* echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:3852: checking return type of signal handlers" >&5 +echo "configure:3863: checking return type of signal handlers" >&5 cat > conftest.$ac_ext < #include @@ -3868,7 +3879,7 @@ int main() { int i; ; return 0; } EOF -if { (eval echo configure:3872: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3883: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else @@ -3890,10 +3901,10 @@ EOF echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:3894: checking for size_t" >&5 +echo "configure:3905: checking for size_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3924,10 +3935,10 @@ EOF fi echo $ac_n "checking for pid_t""... $ac_c" 1>&6 -echo "configure:3928: checking for pid_t" >&5 +echo "configure:3939: checking for pid_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3958,10 +3969,10 @@ EOF fi echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 -echo "configure:3962: checking for uid_t in sys/types.h" >&5 +echo "configure:3973: checking for uid_t in sys/types.h" >&5 cat > conftest.$ac_ext < EOF @@ -3997,10 +4008,10 @@ EOF fi echo $ac_n "checking for mode_t""... $ac_c" 1>&6 -echo "configure:4001: checking for mode_t" >&5 +echo "configure:4012: checking for mode_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -4031,10 +4042,10 @@ EOF fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:4035: checking for off_t" >&5 +echo "configure:4046: checking for off_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -4065,10 +4076,10 @@ EOF fi echo $ac_n "checking for ssize_t""... $ac_c" 1>&6 -echo "configure:4069: checking for ssize_t" >&5 +echo "configure:4080: checking for ssize_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -4100,9 +4111,9 @@ fi echo $ac_n "checking for socklen_t""... $ac_c" 1>&6 -echo "configure:4104: checking for socklen_t" >&5 +echo "configure:4115: checking for socklen_t" >&5 cat > conftest.$ac_ext < #include @@ -4112,7 +4123,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:4116: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4127: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -4121,7 +4132,7 @@ else rm -rf conftest* cat > conftest.$ac_ext < #include @@ -4131,7 +4142,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:4135: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4146: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""size_t" 1>&6 @@ -4163,9 +4174,9 @@ fi rm -f conftest* echo $ac_n "checking for struct timeval""... $ac_c" 1>&6 -echo "configure:4167: checking for struct timeval" >&5 +echo "configure:4178: checking for struct timeval" >&5 cat > conftest.$ac_ext < @@ -4181,7 +4192,7 @@ int main() { static struct timeval x; x.tv_sec = x.tv_usec; ; return 0; } EOF -if { (eval echo configure:4185: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4196: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 HAVE_TIMEVAL=yes @@ -4203,10 +4214,10 @@ fi rm -f conftest* echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6 -echo "configure:4207: checking whether struct tm is in sys/time.h or time.h" >&5 +echo "configure:4218: checking whether struct tm is in sys/time.h or time.h" >&5 cat > conftest.$ac_ext < #include @@ -4214,7 +4225,7 @@ int main() { struct tm *tp; tp->tm_sec; ; return 0; } EOF -if { (eval echo configure:4218: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4229: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm=time.h else @@ -4238,10 +4249,10 @@ EOF fi echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6 -echo "configure:4242: checking for tm_zone in struct tm" >&5 +echo "configure:4253: checking for tm_zone in struct tm" >&5 cat > conftest.$ac_ext < #include <$ac_cv_struct_tm> @@ -4249,7 +4260,7 @@ int main() { struct tm tm; tm.tm_zone; ; return 0; } EOF -if { (eval echo configure:4253: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4264: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm_zone=yes else @@ -4272,10 +4283,10 @@ EOF else echo $ac_n "checking for tzname""... $ac_c" 1>&6 -echo "configure:4276: checking for tzname" >&5 +echo "configure:4287: checking for tzname" >&5 cat > conftest.$ac_ext < #ifndef tzname /* For SGI. */ @@ -4285,7 +4296,7 @@ int main() { atoi(*tzname); ; return 0; } EOF -if { (eval echo configure:4289: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4300: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_var_tzname=yes else @@ -4311,10 +4322,10 @@ fi echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:4315: checking for working const" >&5 +echo "configure:4326: checking for working const" >&5 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4378: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -4388,7 +4399,7 @@ fi echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:4392: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:4403: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` cat > conftestmake <<\EOF @@ -4413,12 +4424,12 @@ fi echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6 -echo "configure:4417: checking whether byte ordering is bigendian" >&5 +echo "configure:4428: checking whether byte ordering is bigendian" >&5 ac_cv_c_bigendian=unknown # See if sys/param.h defines the BYTE_ORDER macro. cat > conftest.$ac_ext < #include @@ -4429,11 +4440,11 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:4433: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4444: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* # It does; now see whether it defined to BIG_ENDIAN or not. cat > conftest.$ac_ext < #include @@ -4444,7 +4455,7 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:4448: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4459: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_bigendian=yes else @@ -4461,7 +4472,7 @@ fi rm -f conftest* if test $ac_cv_c_bigendian = unknown; then cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_c_bigendian=no else @@ -4501,10 +4512,10 @@ fi echo $ac_n "checking size of short""... $ac_c" 1>&6 -echo "configure:4505: checking size of short" >&5 +echo "configure:4516: checking size of short" >&5 cat > conftest.$ac_ext < main() @@ -4515,7 +4526,7 @@ main() exit(0); } EOF -if { (eval echo configure:4519: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4530: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_sizeof_short=`cat conftestval` else @@ -4543,10 +4554,10 @@ if test "$ac_cv_sizeof_short" = 0; then exit 1 fi echo $ac_n "checking size of int""... $ac_c" 1>&6 -echo "configure:4547: checking size of int" >&5 +echo "configure:4558: checking size of int" >&5 cat > conftest.$ac_ext < main() @@ -4557,7 +4568,7 @@ main() exit(0); } EOF -if { (eval echo configure:4561: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4572: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_sizeof_int=`cat conftestval` else @@ -4579,10 +4590,10 @@ EOF echo $ac_n "checking size of long""... $ac_c" 1>&6 -echo "configure:4583: checking size of long" >&5 +echo "configure:4594: checking size of long" >&5 cat > conftest.$ac_ext < main() @@ -4593,7 +4604,7 @@ main() exit(0); } EOF -if { (eval echo configure:4597: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4608: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_sizeof_long=`cat conftestval` else @@ -4615,10 +4626,10 @@ EOF echo $ac_n "checking size of long long""... $ac_c" 1>&6 -echo "configure:4619: checking size of long long" >&5 +echo "configure:4630: checking size of long long" >&5 cat > conftest.$ac_ext < main() @@ -4629,7 +4640,7 @@ main() exit(0); } EOF -if { (eval echo configure:4633: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4644: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_sizeof_long_long=`cat conftestval` else @@ -4651,10 +4662,10 @@ EOF echo $ac_n "checking size of void *""... $ac_c" 1>&6 -echo "configure:4655: checking size of void *" >&5 +echo "configure:4666: checking size of void *" >&5 cat > conftest.$ac_ext < main() @@ -4665,7 +4676,7 @@ main() exit(0); } EOF -if { (eval echo configure:4669: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4680: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_sizeof_void_p=`cat conftestval` else @@ -4689,7 +4700,7 @@ EOF case $opsys in cygwin* ) cat > conftest.$ac_ext < EOF @@ -4714,7 +4725,7 @@ rm -f conftest* esac echo $ac_n "checking for long file names""... $ac_c" 1>&6 -echo "configure:4718: checking for long file names" >&5 +echo "configure:4729: checking for long file names" >&5 ac_cv_sys_long_file_names=yes # Test for long file names in all the places we know might matter: @@ -4760,10 +4771,10 @@ fi echo $ac_n "checking for sin""... $ac_c" 1>&6 -echo "configure:4764: checking for sin" >&5 +echo "configure:4775: checking for sin" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4801: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_sin=yes" else @@ -4804,12 +4815,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6 -echo "configure:4808: checking for sin in -lm" >&5 +echo "configure:4819: checking for sin in -lm" >&5 ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'` xe_check_libs=" -lm " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4835: \"$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 @@ -4864,14 +4875,14 @@ EOF cat > conftest.$ac_ext < int main() { return atanh(1.0) + asinh(1.0) + acosh(1.0); ; return 0; } EOF -if { (eval echo configure:4875: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4886: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_INVERSE_HYPERBOLIC @@ -4888,14 +4899,14 @@ fi rm -f conftest* echo "checking type of mail spool file locking" 1>&6 -echo "configure:4892: checking type of mail spool file locking" >&5 +echo "configure:4903: checking type of mail spool file locking" >&5 for ac_func in lockf flock do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4896: checking for $ac_func" >&5 +echo "configure:4907: 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:4933: \"$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 @@ -5000,12 +5011,12 @@ test "$mail_locking" = "locking" -a "$ac_cv_func_locking" != "yes" && \ case "$opsys" in decosf*) echo $ac_n "checking for cma_open in -lpthreads""... $ac_c" 1>&6 -echo "configure:5004: checking for cma_open in -lpthreads" >&5 +echo "configure:5015: checking for cma_open in -lpthreads" >&5 ac_lib_var=`echo pthreads'_'cma_open | sed 'y%./+-%__p_%'` xe_check_libs=" -lpthreads " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5031: \"$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 @@ -5053,7 +5064,7 @@ esac echo $ac_n "checking whether the -xildoff compiler flag is required""... $ac_c" 1>&6 -echo "configure:5057: checking whether the -xildoff compiler flag is required" >&5 +echo "configure:5068: checking whether the -xildoff compiler flag is required" >&5 if ${CC-cc} '-###' -xildon no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ; then if ${CC-cc} '-###' -xildoff no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ; then echo "$ac_t""no" 1>&6; @@ -5063,9 +5074,9 @@ if ${CC-cc} '-###' -xildon no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/nu fi if test "$opsys" = "sol2"; then - if test "$os_release" -ge 56; then + if test "$os_release" -ge 506; then echo $ac_n "checking for \"-z ignore\" linker flag""... $ac_c" 1>&6 -echo "configure:5069: checking for \"-z ignore\" linker flag" >&5 +echo "configure:5080: checking for \"-z ignore\" linker flag" >&5 case "`ld -h 2>&1`" in *-z\ ignore\|record* ) echo "$ac_t""yes" 1>&6 ld_switch_site="-z ignore $ld_switch_site" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-z ignore\" to \$ld_switch_site"; fi ;; @@ -5076,7 +5087,7 @@ fi echo "checking "for specified window system"" 1>&6 -echo "configure:5080: checking "for specified window system"" >&5 +echo "configure:5091: checking "for specified window system"" >&5 GNOME_CONFIG=no @@ -5084,7 +5095,7 @@ GTK_CONFIG=no if test "$with_gnome" != "no"; then echo $ac_n "checking for GNOME configuration script""... $ac_c" 1>&6 -echo "configure:5088: checking for GNOME configuration script" >&5 +echo "configure:5099: checking for GNOME configuration script" >&5 for possible in gnome-config do possible_version=`${possible} --version 2> /dev/null` @@ -5115,7 +5126,7 @@ fi if test "$with_gtk" != "no";then echo $ac_n "checking for GTK configuration script""... $ac_c" 1>&6 -echo "configure:5119: checking for GTK configuration script" >&5 +echo "configure:5130: checking for GTK configuration script" >&5 for possible in gtk12-config gtk14-config gtk-config do possible_version=`${possible} --version 2> /dev/null` @@ -5137,18 +5148,18 @@ fi if test "${GTK_CONFIG}" != "no"; then echo $ac_n "checking gtk version""... $ac_c" 1>&6 -echo "configure:5141: checking gtk version" >&5 +echo "configure:5152: checking gtk version" >&5 GTK_VERSION=`${GTK_CONFIG} --version` echo "$ac_t""${GTK_VERSION}" 1>&6 echo $ac_n "checking gtk libs""... $ac_c" 1>&6 -echo "configure:5146: checking gtk libs" >&5 +echo "configure:5157: checking gtk libs" >&5 GTK_LIBS=`${GTK_CONFIG} --libs` libs_gtk="$libs_gtk ${GTK_LIBS}" && if test "$extra_verbose" = "yes"; then echo " Appending \"${GTK_LIBS}\" to \$libs_gtk"; fi echo "$ac_t""${GTK_LIBS}" 1>&6 echo $ac_n "checking gtk cflags""... $ac_c" 1>&6 -echo "configure:5152: checking gtk cflags" >&5 +echo "configure:5163: checking gtk cflags" >&5 GTK_CFLAGS=`${GTK_CONFIG} --cflags` if test "$GCC" = "yes"; then GTK_CFLAGS="${GTK_CFLAGS} -Wno-shadow" @@ -5158,19 +5169,19 @@ echo "configure:5152: checking gtk cflags" >&5 echo $ac_n "checking for main in -lgdk_imlib""... $ac_c" 1>&6 -echo "configure:5162: checking for main in -lgdk_imlib" >&5 +echo "configure:5173: checking for main in -lgdk_imlib" >&5 ac_lib_var=`echo gdk_imlib'_'main | sed 'y%./+-%__p_%'` xe_check_libs=" -lgdk_imlib " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5185: \"$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 @@ -5192,12 +5203,12 @@ fi echo $ac_n "checking for Imlib_init in -lImlib""... $ac_c" 1>&6 -echo "configure:5196: checking for Imlib_init in -lImlib" >&5 +echo "configure:5207: checking for Imlib_init in -lImlib" >&5 ac_lib_var=`echo Imlib'_'Imlib_init | sed 'y%./+-%__p_%'` xe_check_libs=" -lImlib " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5223: \"$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 @@ -5231,10 +5242,10 @@ fi for ac_func in gdk_imlib_init do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5235: checking for $ac_func" >&5 +echo "configure:5246: 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:5272: \"$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 @@ -5336,15 +5347,15 @@ EOF do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5340: checking for $ac_hdr" >&5 +echo "configure:5351: 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:5348: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5359: \"$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* @@ -5375,19 +5386,19 @@ done echo $ac_n "checking for main in -lxml""... $ac_c" 1>&6 -echo "configure:5379: checking for main in -lxml" >&5 +echo "configure:5390: checking for main in -lxml" >&5 ac_lib_var=`echo xml'_'main | sed 'y%./+-%__p_%'` xe_check_libs=" -lxml " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5402: \"$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 @@ -5409,19 +5420,19 @@ fi echo $ac_n "checking for main in -lglade""... $ac_c" 1>&6 -echo "configure:5413: checking for main in -lglade" >&5 +echo "configure:5424: checking for main in -lglade" >&5 ac_lib_var=`echo glade'_'main | sed 'y%./+-%__p_%'` xe_check_libs=" -lglade " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5436: \"$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 @@ -5443,19 +5454,19 @@ fi echo $ac_n "checking for main in -lglade-gnome""... $ac_c" 1>&6 -echo "configure:5447: checking for main in -lglade-gnome" >&5 +echo "configure:5458: checking for main in -lglade-gnome" >&5 ac_lib_var=`echo glade-gnome'_'main | sed 'y%./+-%__p_%'` xe_check_libs=" -lglade-gnome " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5470: \"$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 @@ -5476,7 +5487,7 @@ fi cat > conftest.$ac_ext < EOF @@ -5535,7 +5546,7 @@ if test "$with_x11" != "no"; then # Uses ac_ vars as temps to allow command line to override cache and checks. # --without-x overrides everything else, but does not touch the cache. echo $ac_n "checking for X""... $ac_c" 1>&6 -echo "configure:5539: checking for X" >&5 +echo "configure:5550: checking for X" >&5 # Check whether --with-x or --without-x was given. if test "${with_x+set}" = set; then @@ -5595,12 +5606,12 @@ if test "$ac_x_includes" = NO; then # First, try using that file with no special directory specified. cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5604: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5615: \"$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* @@ -5669,14 +5680,14 @@ if test "$ac_x_libraries" = NO; then ac_save_LIBS="$LIBS" LIBS="-l$x_direct_test_library $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5691: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* LIBS="$ac_save_LIBS" # We can link X programs with no special library path. @@ -5785,17 +5796,17 @@ else case "`(uname -sr) 2>/dev/null`" in "SunOS 5"*) echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6 -echo "configure:5789: checking whether -R must be followed by a space" >&5 +echo "configure:5800: checking whether -R must be followed by a space" >&5 ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5810: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_nospace=yes else @@ -5811,14 +5822,14 @@ rm -f conftest* else LIBS="$ac_xsave_LIBS -R $x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5833: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_space=yes else @@ -5854,12 +5865,12 @@ ac_cv_lib_dnet_dnet_ntoa=no else echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 -echo "configure:5858: checking for dnet_ntoa in -ldnet" >&5 +echo "configure:5869: checking for dnet_ntoa in -ldnet" >&5 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'` xe_check_libs=" -ldnet " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5885: \"$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 @@ -5894,12 +5905,12 @@ fi if test $ac_cv_lib_dnet_dnet_ntoa = no; then echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6 -echo "configure:5898: checking for dnet_ntoa in -ldnet_stub" >&5 +echo "configure:5909: checking for dnet_ntoa in -ldnet_stub" >&5 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'` xe_check_libs=" -ldnet_stub " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5925: \"$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 @@ -5939,10 +5950,10 @@ fi # The nsl library prevents programs from opening the X display # on Irix 5.2, according to dickey@clark.net. echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6 -echo "configure:5943: checking for gethostbyname" >&5 +echo "configure:5954: checking for gethostbyname" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5980: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_gethostbyname=yes" else @@ -5986,12 +5997,12 @@ fi if test $ac_cv_func_gethostbyname = no; then echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 -echo "configure:5990: checking for gethostbyname in -lnsl" >&5 +echo "configure:6001: checking for gethostbyname in -lnsl" >&5 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` xe_check_libs=" -lnsl " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6017: \"$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 @@ -6032,10 +6043,10 @@ fi # -lsocket must be given before -lnsl if both are needed. # We assume that if connect needs -lnsl, so does gethostbyname. echo $ac_n "checking for connect""... $ac_c" 1>&6 -echo "configure:6036: checking for connect" >&5 +echo "configure:6047: checking for connect" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6073: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_connect=yes" else @@ -6081,12 +6092,12 @@ fi xe_msg_checking="for connect in -lsocket" test -n "$X_EXTRA_LIBS" && xe_msg_checking="$xe_msg_checking using extra libs $X_EXTRA_LIBS" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:6085: checking "$xe_msg_checking"" >&5 +echo "configure:6096: checking "$xe_msg_checking"" >&5 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'` xe_check_libs=" -lsocket $X_EXTRA_LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6112: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6121,10 +6132,10 @@ fi # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX. echo $ac_n "checking for remove""... $ac_c" 1>&6 -echo "configure:6125: checking for remove" >&5 +echo "configure:6136: checking for remove" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6162: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_remove=yes" else @@ -6168,12 +6179,12 @@ fi if test $ac_cv_func_remove = no; then echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 -echo "configure:6172: checking for remove in -lposix" >&5 +echo "configure:6183: checking for remove in -lposix" >&5 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'` xe_check_libs=" -lposix " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6199: \"$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 @@ -6208,10 +6219,10 @@ fi # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. echo $ac_n "checking for shmat""... $ac_c" 1>&6 -echo "configure:6212: checking for shmat" >&5 +echo "configure:6223: checking for shmat" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6249: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_shmat=yes" else @@ -6255,12 +6266,12 @@ fi if test $ac_cv_func_shmat = no; then echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 -echo "configure:6259: checking for shmat in -lipc" >&5 +echo "configure:6270: checking for shmat in -lipc" >&5 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'` xe_check_libs=" -lipc " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6286: \"$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 @@ -6307,12 +6318,12 @@ fi xe_msg_checking="for IceConnectionNumber in -lICE" test -n "$X_EXTRA_LIBS" && xe_msg_checking="$xe_msg_checking using extra libs $X_EXTRA_LIBS" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:6311: checking "$xe_msg_checking"" >&5 +echo "configure:6322: checking "$xe_msg_checking"" >&5 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'` xe_check_libs=" -lICE $X_EXTRA_LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6338: \"$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 @@ -6369,15 +6380,15 @@ EOF ac_safe=`echo "Xm/Xm.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for Xm/Xm.h""... $ac_c" 1>&6 -echo "configure:6373: checking for Xm/Xm.h" >&5 +echo "configure:6384: 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:6381: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6392: \"$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* @@ -6394,12 +6405,12 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for XmStringFree in -lXm""... $ac_c" 1>&6 -echo "configure:6398: checking for XmStringFree in -lXm" >&5 +echo "configure:6409: 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:6425: \"$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 @@ -6509,7 +6520,7 @@ xe_runpath_dir=`echo '' "$arg" | sed -e 's:^ ::' -e 's/^-L//'` eval "$xe_add_unique_runpath_dir" };; esac done - if test "$opsys $need_motif" = "sol2 yes"; then + if test "$opsys $need_motif" = "sol2 yes"; then xe_runpath_dir="/opt/SUNWdt/lib"; eval "$xe_add_unique_runpath_dir"; fi @@ -6562,7 +6573,7 @@ EOF echo "checking for X defines extracted by xmkmf" 1>&6 -echo "configure:6566: checking for X defines extracted by xmkmf" >&5 +echo "configure:6577: checking for X defines extracted by xmkmf" >&5 rm -fr conftestdir if mkdir conftestdir; then cd conftestdir @@ -6611,15 +6622,15 @@ EOF ac_safe=`echo "X11/Intrinsic.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Intrinsic.h""... $ac_c" 1>&6 -echo "configure:6615: checking for X11/Intrinsic.h" >&5 +echo "configure:6626: checking for X11/Intrinsic.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6623: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6634: \"$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* @@ -6643,12 +6654,12 @@ fi echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6 -echo "configure:6647: checking for XOpenDisplay in -lX11" >&5 +echo "configure:6658: checking for XOpenDisplay in -lX11" >&5 ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'` xe_check_libs=" -lX11 " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6674: \"$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 @@ -6684,12 +6695,12 @@ fi xe_msg_checking="for XGetFontProperty in -lX11" test -n "-b i486-linuxaout" && xe_msg_checking="$xe_msg_checking using extra libs -b i486-linuxaout" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:6688: checking "$xe_msg_checking"" >&5 +echo "configure:6699: checking "$xe_msg_checking"" >&5 ac_lib_var=`echo X11'_'XGetFontProperty | sed 'y%./+-%__p_%'` xe_check_libs=" -lX11 -b i486-linuxaout" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6715: \"$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 @@ -6727,12 +6738,12 @@ fi echo $ac_n "checking for XShapeSelectInput in -lXext""... $ac_c" 1>&6 -echo "configure:6731: checking for XShapeSelectInput in -lXext" >&5 +echo "configure:6742: checking for XShapeSelectInput in -lXext" >&5 ac_lib_var=`echo Xext'_'XShapeSelectInput | sed 'y%./+-%__p_%'` xe_check_libs=" -lXext " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6758: \"$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 @@ -6766,12 +6777,12 @@ fi echo $ac_n "checking for XtOpenDisplay in -lXt""... $ac_c" 1>&6 -echo "configure:6770: checking for XtOpenDisplay in -lXt" >&5 +echo "configure:6781: checking for XtOpenDisplay in -lXt" >&5 ac_lib_var=`echo Xt'_'XtOpenDisplay | sed 'y%./+-%__p_%'` xe_check_libs=" -lXt " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6797: \"$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 @@ -6805,14 +6816,14 @@ fi echo $ac_n "checking the version of X11 being used""... $ac_c" 1>&6 -echo "configure:6809: checking the version of X11 being used" >&5 +echo "configure:6820: checking the version of X11 being used" >&5 cat > conftest.$ac_ext < int main(int c, char *v[]) { return c>1 ? XlibSpecificationRelease : 0; } EOF -if { (eval echo configure:6816: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:6827: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ./conftest foobar; x11_release=$? else @@ -6843,10 +6854,10 @@ EOF for ac_func in XConvertCase do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6847: checking for $ac_func" >&5 +echo "configure:6858: 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:6884: \"$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 @@ -6901,15 +6912,15 @@ done do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:6905: checking for $ac_hdr" >&5 +echo "configure:6916: 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:6913: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6924: \"$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* @@ -6942,10 +6953,10 @@ done for ac_func in XRegisterIMInstantiateCallback do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6946: checking for $ac_func" >&5 +echo "configure:6957: 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:6983: \"$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 @@ -6996,9 +7007,9 @@ fi done echo $ac_n "checking for standard XRegisterIMInstantiateCallback prototype""... $ac_c" 1>&6 -echo "configure:7000: checking for standard XRegisterIMInstantiateCallback prototype" >&5 +echo "configure:7011: checking for standard XRegisterIMInstantiateCallback prototype" >&5 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:7025: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -7031,12 +7042,12 @@ rm -f conftest* test -z "$with_xmu" && { echo $ac_n "checking for XmuReadBitmapDataFromFile in -lXmu""... $ac_c" 1>&6 -echo "configure:7035: checking for XmuReadBitmapDataFromFile in -lXmu" >&5 +echo "configure:7046: checking for XmuReadBitmapDataFromFile in -lXmu" >&5 ac_lib_var=`echo Xmu'_'XmuReadBitmapDataFromFile | sed 'y%./+-%__p_%'` xe_check_libs=" -lXmu " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7062: \"$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 @@ -7086,19 +7097,19 @@ EOF echo $ac_n "checking for main in -lXbsd""... $ac_c" 1>&6 -echo "configure:7090: checking for main in -lXbsd" >&5 +echo "configure:7101: checking for main in -lXbsd" >&5 ac_lib_var=`echo Xbsd'_'main | sed 'y%./+-%__p_%'` xe_check_libs=" -lXbsd " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7113: \"$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 @@ -7122,7 +7133,7 @@ fi if test "$unexec" = "unexaix.o" -a "$x11_release" = "6"; then if test "$GCC" = "yes"; then echo $ac_n "checking for name of AIX gcc threads option""... $ac_c" 1>&6 -echo "configure:7126: checking for name of AIX gcc threads option" >&5 +echo "configure:7137: checking for name of AIX gcc threads option" >&5 case `$CC -v --help 2>&1` in *-mthreads*) aix_threads=-mthreads ;; *) aix_threads=-pthread ;; @@ -7136,10 +7147,10 @@ echo "configure:7126: checking for name of AIX gcc threads option" >&5 xe_save_CC="$CC" CC="${CC}_r" echo $ac_n "checking size of short""... $ac_c" 1>&6 -echo "configure:7140: checking size of short" >&5 +echo "configure:7151: checking size of short" >&5 cat > conftest.$ac_ext < main() @@ -7150,7 +7161,7 @@ main() exit(0); } EOF -if { (eval echo configure:7154: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:7165: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_sizeof_short=`cat conftestval` else @@ -7179,22 +7190,22 @@ EOF fi if test "$with_msw" != "no"; then echo "checking for MS-Windows" 1>&6 -echo "configure:7183: checking for MS-Windows" >&5 +echo "configure:7194: checking for MS-Windows" >&5 echo $ac_n "checking for main in -lgdi32""... $ac_c" 1>&6 -echo "configure:7186: checking for main in -lgdi32" >&5 +echo "configure:7197: checking for main in -lgdi32" >&5 ac_lib_var=`echo gdi32'_'main | sed 'y%./+-%__p_%'` xe_check_libs=" -lgdi32 " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7209: \"$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 @@ -7230,7 +7241,7 @@ EOF INSTALL_ARCH_DEP_SUBDIR="$INSTALL_ARCH_DEP_SUBDIR netinstall" && if test "$extra_verbose" = "yes"; then echo " Appending \"netinstall\" to \$INSTALL_ARCH_DEP_SUBDIR"; fi fi - install_pp="$blddir/lib-src/installexe.sh" + install_pp="$srcdir/lib-src/installexe.sh" libs_system="$libs_system -lshell32 -lgdi32 -luser32 -lcomdlg32 -lcomctl32 -lkernel32 -lwinspool" && if test "$extra_verbose" = "yes"; then echo " Appending \"-lshell32 -lgdi32 -luser32 -lcomdlg32 -lcomctl32 -lkernel32 -lwinspool\" to \$libs_system"; fi test "$with_dragndrop" != no && dragndrop_proto="$dragndrop_proto msw" && if test "$extra_verbose" = "yes"; then echo " Appending \"msw\" to \$dragndrop_proto"; fi if test "$window_system" != x11; then @@ -7267,12 +7278,12 @@ EOF fi fi cat > conftest.$ac_ext < int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; } EOF -if { (eval echo configure:7276: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:7287: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then need_event_unixoid=yes; { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_MSG_SELECT @@ -7336,15 +7347,15 @@ fi if test "$with_x11" = "yes"; then ac_safe=`echo "X11/extensions/shape.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/extensions/shape.h""... $ac_c" 1>&6 -echo "configure:7340: checking for X11/extensions/shape.h" >&5 +echo "configure:7351: checking for X11/extensions/shape.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7348: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7359: \"$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* @@ -7396,7 +7407,7 @@ case "$x_libraries" in *X11R4* ) esac echo "checking for WM_COMMAND option" 1>&6 -echo "configure:7400: checking for WM_COMMAND option" >&5; +echo "configure:7411: checking for WM_COMMAND option" >&5; if test "$with_wmcommand" != "no"; then { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_WMCOMMAND @@ -7411,15 +7422,15 @@ fi test -z "$with_xauth" && test "$window_system" = "none" && with_xauth=no test -z "$with_xauth" && { ac_safe=`echo "X11/Xauth.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xauth.h""... $ac_c" 1>&6 -echo "configure:7415: checking for X11/Xauth.h" >&5 +echo "configure:7426: checking for X11/Xauth.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7423: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7434: \"$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* @@ -7442,12 +7453,12 @@ fi } test -z "$with_xauth" && { echo $ac_n "checking for XauGetAuthByAddr in -lXau""... $ac_c" 1>&6 -echo "configure:7446: checking for XauGetAuthByAddr in -lXau" >&5 +echo "configure:7457: checking for XauGetAuthByAddr in -lXau" >&5 ac_lib_var=`echo Xau'_'XauGetAuthByAddr | sed 'y%./+-%__p_%'` xe_check_libs=" -lXau " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7473: \"$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 @@ -7503,15 +7514,15 @@ if test "$with_tooltalk" != "no" ; then for dir in "" "Tt/" "desktop/" ; do ac_safe=`echo "${dir}tt_c.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ${dir}tt_c.h""... $ac_c" 1>&6 -echo "configure:7507: checking for ${dir}tt_c.h" >&5 +echo "configure:7518: 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:7515: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7526: \"$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* @@ -7547,12 +7558,12 @@ if test "$with_tooltalk" != "no" ; then xe_msg_checking="for tt_message_create in -ltt" test -n "$extra_libs" && xe_msg_checking="$xe_msg_checking using extra libs $extra_libs" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:7551: checking "$xe_msg_checking"" >&5 +echo "configure:7562: 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:7578: \"$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 @@ -7620,15 +7631,15 @@ fi test -z "$with_cde" && { ac_safe=`echo "Dt/Dt.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for Dt/Dt.h""... $ac_c" 1>&6 -echo "configure:7624: checking for Dt/Dt.h" >&5 +echo "configure:7635: 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:7632: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7643: \"$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* @@ -7651,12 +7662,12 @@ fi } test -z "$with_cde" && { echo $ac_n "checking for DtDndDragStart in -lDtSvc""... $ac_c" 1>&6 -echo "configure:7655: checking for DtDndDragStart in -lDtSvc" >&5 +echo "configure:7666: 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:7682: \"$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 @@ -7740,7 +7751,7 @@ fi if test "$with_dragndrop" != "no" ; then echo $ac_n "checking if drag and drop API is needed""... $ac_c" 1>&6 -echo "configure:7744: checking if drag and drop API is needed" >&5 +echo "configure:7755: 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 @@ -7760,18 +7771,18 @@ EOF fi echo "checking for LDAP" 1>&6 -echo "configure:7764: checking for LDAP" >&5 +echo "configure:7775: checking for LDAP" >&5 test -z "$with_ldap" && { ac_safe=`echo "ldap.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ldap.h""... $ac_c" 1>&6 -echo "configure:7767: checking for ldap.h" >&5 +echo "configure:7778: 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:7775: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7786: \"$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* @@ -7794,15 +7805,15 @@ fi } test -z "$with_ldap" && { ac_safe=`echo "lber.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for lber.h""... $ac_c" 1>&6 -echo "configure:7798: checking for lber.h" >&5 +echo "configure:7809: 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:7806: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7817: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -7826,12 +7837,12 @@ fi if test "$with_ldap" != "no"; then echo $ac_n "checking for ldap_search in -lldap""... $ac_c" 1>&6 -echo "configure:7830: checking for ldap_search in -lldap" >&5 +echo "configure:7841: 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:7857: \"$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 @@ -7867,12 +7878,12 @@ fi xe_msg_checking="for ldap_open in -lldap" test -n "-llber" && xe_msg_checking="$xe_msg_checking using extra libs -llber" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:7871: checking "$xe_msg_checking"" >&5 +echo "configure:7882: 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:7898: \"$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 @@ -7908,12 +7919,12 @@ fi xe_msg_checking="for ldap_open in -lldap" test -n "-llber -lkrb" && xe_msg_checking="$xe_msg_checking using extra libs -llber -lkrb" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:7912: checking "$xe_msg_checking"" >&5 +echo "configure:7923: 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:7939: \"$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 @@ -7949,12 +7960,12 @@ fi xe_msg_checking="for ldap_open in -lldap" test -n "-llber -lkrb -ldes" && xe_msg_checking="$xe_msg_checking using extra libs -llber -lkrb -ldes" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:7953: checking "$xe_msg_checking"" >&5 +echo "configure:7964: 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:7980: \"$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 @@ -8016,10 +8027,10 @@ EOF for ac_func in ldap_set_option ldap_get_lderrno ldap_result2error ldap_parse_result do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8020: checking for $ac_func" >&5 +echo "configure:8031: 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:8057: \"$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 @@ -8073,20 +8084,20 @@ fi if test "$with_postgresql" != "no"; then echo "checking for PostgreSQL" 1>&6 -echo "configure:8077: checking for PostgreSQL" >&5 +echo "configure:8088: 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:8082: checking for ${header_dir}libpq-fe.h" >&5 +echo "configure:8093: 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:8090: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8101: \"$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* @@ -8110,12 +8121,12 @@ fi test -n "$libpq_fe_h_file" && { echo $ac_n "checking for PQconnectdb in -lpq""... $ac_c" 1>&6 -echo "configure:8114: checking for PQconnectdb in -lpq" >&5 +echo "configure:8125: 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:8141: \"$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 @@ -8159,12 +8170,12 @@ EOF echo $ac_n "checking for PQconnectStart in -lpq""... $ac_c" 1>&6 -echo "configure:8163: checking for PQconnectStart in -lpq" >&5 +echo "configure:8174: 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:8190: \"$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 @@ -8223,7 +8234,7 @@ fi if test "$window_system" != "none"; then echo "checking for graphics libraries" 1>&6 -echo "configure:8227: checking for graphics libraries" >&5 +echo "configure:8238: checking for graphics libraries" >&5 libpath_xpm= incpath_xpm= @@ -8249,10 +8260,10 @@ echo "configure:8227: checking for graphics libraries" >&5 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:8253: checking for Xpm - no older than 3.4f" >&5 +echo "configure:8264: checking for Xpm - no older than 3.4f" >&5 xe_check_libs=-lXpm cat > conftest.$ac_ext < @@ -8261,7 +8272,7 @@ echo "configure:8253: checking for Xpm - no older than 3.4f" >&5 XpmIncludeVersion != XpmLibraryVersion() ? 1 : XpmIncludeVersion < 30406 ? 2 : 0 ;} EOF -if { (eval echo configure:8265: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:8276: \"$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 @@ -8305,17 +8316,17 @@ EOF 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:8309: checking for \"FOR_MSW\" xpm" >&5 +echo "configure:8320: 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:8330: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* xpm_for_msw=no else @@ -8341,15 +8352,15 @@ EOF test -z "$with_xface" && { ac_safe=`echo "compface.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for compface.h""... $ac_c" 1>&6 -echo "configure:8345: checking for compface.h" >&5 +echo "configure:8356: 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:8353: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8364: \"$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* @@ -8372,12 +8383,12 @@ fi } test -z "$with_xface" && { echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6 -echo "configure:8376: checking for UnGenFace in -lcompface" >&5 +echo "configure:8387: 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:8403: \"$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 @@ -8440,12 +8451,12 @@ EOF if test "$with_png $with_tiff" != "no no"; then echo $ac_n "checking for inflate in -lc""... $ac_c" 1>&6 -echo "configure:8444: checking for inflate in -lc" >&5 +echo "configure:8455: 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:8471: \"$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 @@ -8475,12 +8486,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for inflate in -lz""... $ac_c" 1>&6 -echo "configure:8479: checking for inflate in -lz" >&5 +echo "configure:8490: 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:8506: \"$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 @@ -8510,12 +8521,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for inflate in -lgz""... $ac_c" 1>&6 -echo "configure:8514: checking for inflate in -lgz" >&5 +echo "configure:8525: 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:8541: \"$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 @@ -8556,15 +8567,15 @@ fi test -z "$with_jpeg" && { ac_safe=`echo "jpeglib.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for jpeglib.h""... $ac_c" 1>&6 -echo "configure:8560: checking for jpeglib.h" >&5 +echo "configure:8571: 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:8568: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8579: \"$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* @@ -8587,12 +8598,12 @@ fi } test -z "$with_jpeg" && { echo $ac_n "checking for jpeg_destroy_decompress in -ljpeg""... $ac_c" 1>&6 -echo "configure:8591: checking for jpeg_destroy_decompress in -ljpeg" >&5 +echo "configure:8602: 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:8618: \"$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 @@ -8639,10 +8650,10 @@ EOF png_problem="" test -z "$with_png" && { echo $ac_n "checking for pow""... $ac_c" 1>&6 -echo "configure:8643: checking for pow" >&5 +echo "configure:8654: checking for pow" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8680: \"$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 @@ -8686,15 +8697,15 @@ fi } test -z "$with_png" && { ac_safe=`echo "png.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for png.h""... $ac_c" 1>&6 -echo "configure:8690: checking for png.h" >&5 +echo "configure:8701: 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:8698: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8709: \"$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* @@ -8717,12 +8728,12 @@ fi } test -z "$with_png" && { echo $ac_n "checking for png_read_image in -lpng""... $ac_c" 1>&6 -echo "configure:8721: checking for png_read_image in -lpng" >&5 +echo "configure:8732: 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:8748: \"$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 @@ -8756,10 +8767,10 @@ fi } if test -z "$with_png"; then echo $ac_n "checking for workable png version information""... $ac_c" 1>&6 -echo "configure:8760: checking for workable png version information" >&5 +echo "configure:8771: checking for workable png version information" >&5 xe_check_libs="-lpng -lz" cat > conftest.$ac_ext < int main(int c, char **v) { @@ -8767,7 +8778,7 @@ echo "configure:8760: checking for workable png version information" >&5 if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING) != 0) return 1; return (PNG_LIBPNG_VER < 10002) ? 2 : 0 ;} EOF -if { (eval echo configure:8771: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:8782: \"$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 @@ -8810,15 +8821,15 @@ EOF test -z "$with_tiff" && { ac_safe=`echo "tiffio.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for tiffio.h""... $ac_c" 1>&6 -echo "configure:8814: checking for tiffio.h" >&5 +echo "configure:8825: 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:8822: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8833: \"$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* @@ -8841,12 +8852,12 @@ fi } test -z "$with_tiff" && { echo $ac_n "checking for TIFFClientOpen in -ltiff""... $ac_c" 1>&6 -echo "configure:8845: checking for TIFFClientOpen in -ltiff" >&5 +echo "configure:8856: 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:8872: \"$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 @@ -8896,15 +8907,15 @@ fi 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:8900: checking for compface.h" >&5 +echo "configure:8911: 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:8908: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8919: \"$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* @@ -8927,12 +8938,12 @@ fi } test -z "$with_xface" && { echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6 -echo "configure:8931: checking for UnGenFace in -lcompface" >&5 +echo "configure:8942: 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:8958: \"$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 @@ -8982,12 +8993,12 @@ fi if test "$with_x11" = "yes"; then echo "checking for X11 graphics libraries" 1>&6 -echo "configure:8986: checking for X11 graphics libraries" >&5 +echo "configure:8997: checking for X11 graphics libraries" >&5 fi if test "$with_x11" = "yes"; then echo "checking for the Athena widgets" 1>&6 -echo "configure:8991: checking for the Athena widgets" >&5 +echo "configure:9002: checking for the Athena widgets" >&5 case "$with_athena" in "xaw" | "") athena_variant=Xaw athena_3d=no ;; @@ -9003,12 +9014,12 @@ echo "configure:8991: checking for the Athena widgets" >&5 if test "$athena_3d" = "no"; then echo $ac_n "checking for XawScrollbarSetThumb in -l$athena_variant""... $ac_c" 1>&6 -echo "configure:9007: checking for XawScrollbarSetThumb in -l$athena_variant" >&5 +echo "configure:9018: 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:9034: \"$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 @@ -9035,12 +9046,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for $athena_3d_function in -l$athena_variant""... $ac_c" 1>&6 -echo "configure:9039: checking for $athena_3d_function in -l$athena_variant" >&5 +echo "configure:9050: checking for $athena_3d_function in -l$athena_variant" >&5 ac_lib_var=`echo $athena_variant'_'$athena_3d_function | 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:9066: \"$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 @@ -9082,12 +9093,12 @@ fi else echo $ac_n "checking for $athena_3d_function in -l$athena_variant""... $ac_c" 1>&6 -echo "configure:9086: checking for $athena_3d_function in -l$athena_variant" >&5 +echo "configure:9097: checking for $athena_3d_function in -l$athena_variant" >&5 ac_lib_var=`echo $athena_variant'_'$athena_3d_function | 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:9113: \"$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 @@ -9116,12 +9127,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for $athena_3d_function in -lXaw""... $ac_c" 1>&6 -echo "configure:9120: checking for $athena_3d_function in -lXaw" >&5 +echo "configure:9131: checking for $athena_3d_function in -lXaw" >&5 ac_lib_var=`echo Xaw'_'$athena_3d_function | 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:9147: \"$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 @@ -9163,15 +9174,15 @@ fi if test "$athena_3d" = "no"; then ac_safe=`echo "X11/Xaw/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xaw/ThreeD.h""... $ac_c" 1>&6 -echo "configure:9167: checking for X11/Xaw/ThreeD.h" >&5 +echo "configure:9178: 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:9175: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9186: \"$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* @@ -9191,15 +9202,15 @@ else echo "$ac_t""no" 1>&6 ac_safe=`echo "X11/Xaw/XawInit.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xaw/XawInit.h""... $ac_c" 1>&6 -echo "configure:9195: checking for X11/Xaw/XawInit.h" >&5 +echo "configure:9206: 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:9203: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9214: \"$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* @@ -9225,15 +9236,15 @@ fi else ac_safe=`echo "X11/$athena_variant/XawInit.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/$athena_variant/XawInit.h""... $ac_c" 1>&6 -echo "configure:9229: checking for X11/$athena_variant/XawInit.h" >&5 +echo "configure:9240: 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:9237: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9248: \"$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* @@ -9250,15 +9261,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_safe=`echo "X11/$athena_variant/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/$athena_variant/ThreeD.h""... $ac_c" 1>&6 -echo "configure:9254: checking for X11/$athena_variant/ThreeD.h" >&5 +echo "configure:9265: 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:9262: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9273: \"$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* @@ -9286,15 +9297,15 @@ fi if test -z "$athena_h_path"; then ac_safe=`echo "$athena_variant/XawInit.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $athena_variant/XawInit.h""... $ac_c" 1>&6 -echo "configure:9290: checking for $athena_variant/XawInit.h" >&5 +echo "configure:9301: 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:9298: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9309: \"$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* @@ -9311,15 +9322,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_safe=`echo "$athena_variant/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $athena_variant/ThreeD.h""... $ac_c" 1>&6 -echo "configure:9315: checking for $athena_variant/ThreeD.h" >&5 +echo "configure:9326: 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:9323: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9334: \"$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* @@ -9348,15 +9359,15 @@ fi if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then ac_safe=`echo "X11/Xaw3d/XawInit.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xaw3d/XawInit.h""... $ac_c" 1>&6 -echo "configure:9352: checking for X11/Xaw3d/XawInit.h" >&5 +echo "configure:9363: 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:9360: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9371: \"$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* @@ -9373,15 +9384,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_safe=`echo "X11/Xaw3d/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xaw3d/ThreeD.h""... $ac_c" 1>&6 -echo "configure:9377: checking for X11/Xaw3d/ThreeD.h" >&5 +echo "configure:9388: 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:9385: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9396: \"$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* @@ -9413,15 +9424,15 @@ fi if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then ac_safe=`echo "Xaw3d/XawInit.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for Xaw3d/XawInit.h""... $ac_c" 1>&6 -echo "configure:9417: checking for Xaw3d/XawInit.h" >&5 +echo "configure:9428: 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:9425: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9436: \"$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* @@ -9438,15 +9449,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_safe=`echo "Xaw3d/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for Xaw3d/ThreeD.h""... $ac_c" 1>&6 -echo "configure:9442: checking for Xaw3d/ThreeD.h" >&5 +echo "configure:9453: 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:9450: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9461: \"$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* @@ -9478,15 +9489,15 @@ fi if test -z "$athena_h_path"; then ac_safe=`echo "X11/Xaw/ThreeD.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Xaw/ThreeD.h""... $ac_c" 1>&6 -echo "configure:9482: checking for X11/Xaw/ThreeD.h" >&5 +echo "configure:9493: 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:9490: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9501: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9525,15 +9536,15 @@ fi 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:9529: checking for Xm/Xm.h" >&5 +echo "configure:9540: 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:9537: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9548: \"$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* @@ -9550,12 +9561,12 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for XmStringFree in -lXm""... $ac_c" 1>&6 -echo "configure:9554: checking for XmStringFree in -lXm" >&5 +echo "configure:9565: 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:9581: \"$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 @@ -9595,9 +9606,9 @@ fi if test "$have_motif" = "yes"; then echo $ac_n "checking for Lesstif""... $ac_c" 1>&6 -echo "configure:9599: checking for Lesstif" >&5 +echo "configure:9610: checking for Lesstif" >&5 cat > conftest.$ac_ext < #ifdef LESSTIF_VERSION @@ -9620,13 +9631,25 @@ rm -f conftest* fi +case "$opsys" in + *linux* ) lucid_prefers_motif = "no" ;; + * ) lucid_prefers_motif = "yes" ;; +esac + case "$with_menubars" in "" | "yes" | "athena" ) with_menubars="lucid" ;; esac case "$with_dialogs" in "" | "yes" | "lucid" ) - if test "$have_motif" = "yes"; then with_dialogs="motif" - elif test "$have_xaw" = "yes"; then with_dialogs="athena" - else with_dialogs=no + if test "$lucid_prefers_motif" = "yes"; then + if test "$have_motif" = "yes"; then with_dialogs="motif" + elif test "$have_xaw" = "yes"; then with_dialogs="athena" + else with_dialogs=no + fi + else + if test "$have_xaw" = "yes"; then with_dialogs="athena" + elif test "$have_motif" = "yes"; then with_dialogs="motif" + else with_dialogs=no + fi fi ;; esac case "$with_scrollbars" in "" | "yes" ) @@ -9634,9 +9657,16 @@ case "$with_scrollbars" in "" | "yes" ) esac case "$with_widgets" in "yes" | "lucid") - if test "$have_motif" = "yes"; then with_widgets="motif" - elif test "$have_xaw" = "yes"; then with_widgets="athena" - else with_widgets=no + if test "$lucid_prefers_motif" = "yes"; then + if test "$have_motif" = "yes"; then with_widgets="motif" + elif test "$have_xaw" = "yes"; then with_widgets="athena" + else with_widgets=no + fi + else + if test "$have_xaw" = "yes"; then with_widgets="athena" + elif test "$have_motif" = "yes"; then with_widgets="motif" + else with_widgets=no + fi fi ;; "" ) with_widgets=no ;; @@ -10031,7 +10061,7 @@ fi if test "$with_mule" = "yes" ; then echo "checking for Mule-related features" 1>&6 -echo "configure:10035: checking for Mule-related features" >&5 +echo "configure:10065: checking for Mule-related features" >&5 { test "$extra_verbose" = "yes" && cat << \EOF Defining MULE EOF @@ -10045,15 +10075,15 @@ EOF if test "$with_chise" != "no"; then ac_safe=`echo "chise.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for chise.h""... $ac_c" 1>&6 -echo "configure:10049: checking for chise.h" >&5 +echo "configure:10079: checking for chise.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10057: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10087: \"$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* @@ -10081,15 +10111,15 @@ fi c_switch_site="$c_switch_site -I/usr/local/chise/include" ac_safe=`echo "chise.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for chise.h""... $ac_c" 1>&6 -echo "configure:10085: checking for chise.h" >&5 +echo "configure:10115: checking for chise.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10093: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10123: \"$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* @@ -10168,15 +10198,15 @@ EOF do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:10172: checking for $ac_hdr" >&5 +echo "configure:10202: 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:10180: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10210: \"$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* @@ -10207,12 +10237,12 @@ done echo $ac_n "checking for strerror in -lintl""... $ac_c" 1>&6 -echo "configure:10211: checking for strerror in -lintl" >&5 +echo "configure:10241: 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:10257: \"$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 @@ -10277,18 +10307,18 @@ EOF fi echo "checking for Mule input methods" 1>&6 -echo "configure:10281: checking for Mule input methods" >&5 +echo "configure:10311: checking for Mule input methods" >&5 case "$with_xim" in "" | "yes" ) echo "checking for XIM" 1>&6 -echo "configure:10284: checking for XIM" >&5 +echo "configure:10314: checking for XIM" >&5 echo $ac_n "checking for XOpenIM in -lX11""... $ac_c" 1>&6 -echo "configure:10287: checking for XOpenIM in -lX11" >&5 +echo "configure:10317: 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:10333: \"$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 @@ -10320,15 +10350,54 @@ with_xim=no fi - if test "$have_motif $have_lesstif" = "yes no"; then + if test "$need_motif $have_lesstif" = "yes no"; then + +echo $ac_n "checking for XmImMbLookupString in -lXm""... $ac_c" 1>&6 +echo "configure:10357: 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 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +xe_check_libs="" + +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then + echo "$ac_t""yes" 1>&6 + with_xim=motif +else + echo "$ac_t""no" 1>&6 +fi + + + elif test "$have_motif $have_lesstif $with_xim" = "yes no no"; then echo $ac_n "checking for XmImMbLookupString in -lXm""... $ac_c" 1>&6 -echo "configure:10327: checking for XmImMbLookupString in -lXm" >&5 +echo "configure:10396: 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:10412: \"$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 @@ -10404,15 +10473,15 @@ EOF if test "$with_xfs" = "yes" ; then echo "checking for XFontSet" 1>&6 -echo "configure:10408: checking for XFontSet" >&5 +echo "configure:10477: checking for XFontSet" >&5 echo $ac_n "checking for XmbDrawString in -lX11""... $ac_c" 1>&6 -echo "configure:10411: checking for XmbDrawString in -lX11" >&5 +echo "configure:10480: 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:10496: \"$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 @@ -10463,15 +10532,15 @@ EOF test "$with_wnn6" = "yes" && with_wnn=yes # wnn6 implies wnn support test -z "$with_wnn" && { ac_safe=`echo "wnn/jllib.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for wnn/jllib.h""... $ac_c" 1>&6 -echo "configure:10467: checking for wnn/jllib.h" >&5 +echo "configure:10536: 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:10475: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10544: \"$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 +10563,15 @@ fi } test -z "$with_wnn" && { ac_safe=`echo "wnn/commonhd.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for wnn/commonhd.h""... $ac_c" 1>&6 -echo "configure:10498: checking for wnn/commonhd.h" >&5 +echo "configure:10567: 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:10506: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10575: \"$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* @@ -10527,10 +10596,10 @@ fi for ac_func in crypt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:10531: checking for $ac_func" >&5 +echo "configure:10600: 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:10626: \"$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 @@ -10582,12 +10651,12 @@ done test "$ac_cv_func_crypt" != "yes" && { echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6 -echo "configure:10586: checking for crypt in -lcrypt" >&5 +echo "configure:10655: 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:10671: \"$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 @@ -10633,12 +10702,12 @@ fi if test -z "$with_wnn" -o "$with_wnn" = "yes"; then echo $ac_n "checking for jl_dic_list_e in -lwnn""... $ac_c" 1>&6 -echo "configure:10637: checking for jl_dic_list_e in -lwnn" >&5 +echo "configure:10706: 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:10722: \"$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 @@ -10667,12 +10736,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for jl_dic_list_e in -lwnn4""... $ac_c" 1>&6 -echo "configure:10671: checking for jl_dic_list_e in -lwnn4" >&5 +echo "configure:10740: 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:10756: \"$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 @@ -10701,12 +10770,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for jl_dic_list_e in -lwnn6""... $ac_c" 1>&6 -echo "configure:10705: checking for jl_dic_list_e in -lwnn6" >&5 +echo "configure:10774: 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:10790: \"$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 @@ -10735,12 +10804,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for dic_list_e in -lwnn6_fromsrc""... $ac_c" 1>&6 -echo "configure:10739: checking for dic_list_e in -lwnn6_fromsrc" >&5 +echo "configure:10808: 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:10824: \"$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 @@ -10799,12 +10868,12 @@ EOF if test "$with_wnn6" != "no"; then echo $ac_n "checking for jl_fi_dic_list in -l$libwnn""... $ac_c" 1>&6 -echo "configure:10803: checking for jl_fi_dic_list in -l$libwnn" >&5 +echo "configure:10872: 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:10888: \"$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 @@ -10850,15 +10919,15 @@ EOF if test "$with_canna" != "no"; then ac_safe=`echo "canna/jrkanji.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for canna/jrkanji.h""... $ac_c" 1>&6 -echo "configure:10854: checking for canna/jrkanji.h" >&5 +echo "configure:10923: 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:10862: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10931: \"$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* @@ -10885,15 +10954,15 @@ fi c_switch_site="$c_switch_site -I/usr/local/canna/include" ac_safe=`echo "canna/jrkanji.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for canna/jrkanji.h""... $ac_c" 1>&6 -echo "configure:10889: checking for canna/jrkanji.h" >&5 +echo "configure:10958: 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:10897: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10966: \"$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* @@ -10921,15 +10990,15 @@ fi test -z "$with_canna" && { ac_safe=`echo "canna/RK.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for canna/RK.h""... $ac_c" 1>&6 -echo "configure:10925: checking for canna/RK.h" >&5 +echo "configure:10994: 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:10933: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11002: \"$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* @@ -10952,12 +11021,12 @@ fi } test -z "$with_canna" && { echo $ac_n "checking for RkBgnBun in -lRKC""... $ac_c" 1>&6 -echo "configure:10956: checking for RkBgnBun in -lRKC" >&5 +echo "configure:11025: 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:11041: \"$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 @@ -10991,12 +11060,12 @@ fi } test -z "$with_canna" && { echo $ac_n "checking for jrKanjiControl in -lcanna""... $ac_c" 1>&6 -echo "configure:10995: checking for jrKanjiControl in -lcanna" >&5 +echo "configure:11064: 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:11080: \"$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 @@ -11056,12 +11125,12 @@ if test "$need_motif" = "yes" ; then libs_x="-lXm $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-lXm\" to \$libs_x"; fi echo $ac_n "checking for layout_object_getvalue in -li18n""... $ac_c" 1>&6 -echo "configure:11060: checking for layout_object_getvalue in -li18n" >&5 +echo "configure:11129: 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:11145: \"$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 @@ -11129,7 +11198,7 @@ xe_runpath_dir=`echo '' "$arg" | sed -e 's:^ ::' -e 's/^-L//'` eval "$xe_add_unique_runpath_dir" };; esac done - if test "$opsys $need_motif" = "sol2 yes"; then + if test "$opsys $need_motif" = "sol2 yes"; then xe_runpath_dir="/opt/SUNWdt/lib"; eval "$xe_add_unique_runpath_dir"; fi @@ -11159,10 +11228,10 @@ fi for ac_func in cbrt closedir dup2 eaccess fmod fpathconf frexp ftime getaddrinfo gethostname getnameinfo getpagesize gettimeofday getcwd getwd logb lrand48 matherr mkdir mktime perror poll random rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask snprintf stpcpy strerror tzset ulimit usleep waitpid vsnprintf fsync ftruncate umask do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11163: checking for $ac_func" >&5 +echo "configure:11232: 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:11258: \"$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 @@ -11226,10 +11295,10 @@ fi 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:11230: checking for $ac_func" >&5 +echo "configure:11299: 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:11325: \"$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 @@ -11281,10 +11350,10 @@ done echo $ac_n "checking for openpty""... $ac_c" 1>&6 -echo "configure:11285: checking for openpty" >&5 +echo "configure:11354: checking for openpty" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11380: \"$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 @@ -11326,12 +11395,12 @@ else echo $ac_n "checking for openpty in -lutil""... $ac_c" 1>&6 -echo "configure:11330: checking for openpty in -lutil" >&5 +echo "configure:11399: 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: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 @@ -11377,15 +11446,15 @@ EOF do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11381: checking for $ac_hdr" >&5 +echo "configure:11450: checking for $ac_hdr" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11389: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11458: \"$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* @@ -11421,15 +11490,15 @@ for ac_hdr in stropts.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11425: checking for $ac_hdr" >&5 +echo "configure:11494: 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:11433: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11502: \"$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* @@ -11462,10 +11531,10 @@ if test "$ac_cv_header_stropts_h" = "yes"; then for ac_func in isastream do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11466: checking for $ac_func" >&5 +echo "configure:11535: 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:11561: \"$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 @@ -11519,15 +11588,15 @@ done do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11523: checking for $ac_hdr" >&5 +echo "configure:11592: 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:11531: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11600: \"$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* @@ -11564,10 +11633,10 @@ extra_objs="$extra_objs realpath.o" && if test "$extra_verbose" = "yes"; then for ac_func in getloadavg do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11568: checking for $ac_func" >&5 +echo "configure:11637: 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:11663: \"$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 @@ -11623,15 +11692,15 @@ if test "$ac_cv_func_getloadavg" = "yes"; then do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11627: checking for $ac_hdr" >&5 +echo "configure:11696: 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:11635: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11704: \"$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* @@ -11667,12 +11736,12 @@ else echo $ac_n "checking for kstat_open in -lkstat""... $ac_c" 1>&6 -echo "configure:11671: checking for kstat_open in -lkstat" >&5 +echo "configure:11740: 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:11756: \"$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 @@ -11718,15 +11787,15 @@ fi do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11722: checking for $ac_hdr" >&5 +echo "configure:11791: 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:11730: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11799: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -11758,12 +11827,12 @@ done echo $ac_n "checking for kvm_read in -lkvm""... $ac_c" 1>&6 -echo "configure:11762: checking for kvm_read in -lkvm" >&5 +echo "configure:11831: 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:11847: \"$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 @@ -11808,16 +11877,16 @@ fi fi echo $ac_n "checking whether netdb declares h_errno""... $ac_c" 1>&6 -echo "configure:11812: checking whether netdb declares h_errno" >&5 +echo "configure:11881: checking whether netdb declares h_errno" >&5 cat > conftest.$ac_ext < int main() { return h_errno; ; return 0; } EOF -if { (eval echo configure:11821: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11890: \"$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 @@ -11837,16 +11906,16 @@ fi rm -f conftest* echo $ac_n "checking for sigsetjmp""... $ac_c" 1>&6 -echo "configure:11841: checking for sigsetjmp" >&5 +echo "configure:11910: checking for sigsetjmp" >&5 cat > conftest.$ac_ext < int main() { sigjmp_buf bar; sigsetjmp (bar, 0); ; return 0; } EOF -if { (eval echo configure:11850: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11919: \"$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 @@ -11866,11 +11935,11 @@ fi rm -f conftest* echo $ac_n "checking whether localtime caches TZ""... $ac_c" 1>&6 -echo "configure:11870: checking whether localtime caches TZ" >&5 +echo "configure:11939: checking whether localtime caches TZ" >&5 if test "$ac_cv_func_tzset" = "yes"; then cat > conftest.$ac_ext < #if STDC_HEADERS @@ -11905,7 +11974,7 @@ main() exit (0); } EOF -if { (eval echo configure:11909: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:11978: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then emacs_cv_localtime_cache=no else @@ -11935,9 +12004,9 @@ fi if test "$HAVE_TIMEVAL" = "yes"; then echo $ac_n "checking whether gettimeofday accepts one or two arguments""... $ac_c" 1>&6 -echo "configure:11939: checking whether gettimeofday accepts one or two arguments" >&5 +echo "configure:12008: 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:12031: \"$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 @@ -11980,19 +12049,19 @@ fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:11984: checking for inline" >&5 +echo "configure:12053: 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:12065: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -12033,17 +12102,17 @@ if test "$__DECC" != "yes"; then # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 -echo "configure:12037: checking for working alloca.h" >&5 +echo "configure:12106: 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:12047: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12116: \"$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 @@ -12067,10 +12136,10 @@ EOF fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:12071: checking for alloca" >&5 +echo "configure:12140: checking for alloca" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12171: \"$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 @@ -12137,10 +12206,10 @@ EOF echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:12141: checking whether alloca needs Cray hooks" >&5 +echo "configure:12210: checking whether alloca needs Cray hooks" >&5 cat > conftest.$ac_ext <&6 if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:12168: checking for $ac_func" >&5 +echo "configure:12237: 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:12263: \"$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 @@ -12220,10 +12289,10 @@ done fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:12224: checking stack direction for C alloca" >&5 +echo "configure:12293: 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:12315: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_c_stack_direction=1 else @@ -12272,15 +12341,15 @@ fi ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for vfork.h""... $ac_c" 1>&6 -echo "configure:12276: checking for vfork.h" >&5 +echo "configure:12345: checking for vfork.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:12284: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12353: \"$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* @@ -12308,10 +12377,10 @@ else fi echo $ac_n "checking for working vfork""... $ac_c" 1>&6 -echo "configure:12312: checking for working vfork" >&5 +echo "configure:12381: checking for working vfork" >&5 cat > conftest.$ac_ext < @@ -12406,7 +12475,7 @@ main() { } } EOF -if { (eval echo configure:12410: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:12479: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_vfork_works=yes else @@ -12432,10 +12501,10 @@ fi echo $ac_n "checking for working strcoll""... $ac_c" 1>&6 -echo "configure:12436: checking for working strcoll" >&5 +echo "configure:12505: checking for working strcoll" >&5 cat > conftest.$ac_ext < main () @@ -12445,7 +12514,7 @@ main () strcoll ("123", "456") >= 0); } EOF -if { (eval echo configure:12449: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:12518: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_strcoll_works=yes else @@ -12473,10 +12542,10 @@ fi for ac_func in getpgrp do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:12477: checking for $ac_func" >&5 +echo "configure:12546: 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:12572: \"$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 @@ -12527,10 +12596,10 @@ fi done echo $ac_n "checking whether getpgrp takes no argument""... $ac_c" 1>&6 -echo "configure:12531: checking whether getpgrp takes no argument" >&5 +echo "configure:12600: 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:12658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_getpgrp_void=yes else @@ -12612,10 +12681,10 @@ fi echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:12616: checking for working mmap" >&5 +echo "configure:12685: checking for working mmap" >&5 case "$opsys" in ultrix* ) have_mmap=no ;; *) cat > conftest.$ac_ext < #include @@ -12648,7 +12717,7 @@ int main (int argc, char *argv[]) return 1; } EOF -if { (eval echo configure:12652: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:12721: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then have_mmap=yes else @@ -12677,9 +12746,9 @@ test "$GNU_MALLOC" != "yes" -a "$have_mmap" != "yes" && rel_alloc=no if test "$rel_alloc $have_mmap" = "default yes"; then if test "$doug_lea_malloc" = "yes"; then echo $ac_n "checking for M_MMAP_THRESHOLD""... $ac_c" 1>&6 -echo "configure:12681: checking for M_MMAP_THRESHOLD" >&5 +echo "configure:12750: checking for M_MMAP_THRESHOLD" >&5 cat > conftest.$ac_ext < int main() { @@ -12691,7 +12760,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:12695: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:12764: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* rel_alloc=no; echo "$ac_t""yes" 1>&6; else @@ -12716,15 +12785,15 @@ EOF ac_safe=`echo "termios.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for termios.h""... $ac_c" 1>&6 -echo "configure:12720: checking for termios.h" >&5 +echo "configure:12789: 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:12728: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12797: \"$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* @@ -12767,15 +12836,15 @@ else echo "$ac_t""no" 1>&6 ac_safe=`echo "termio.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for termio.h""... $ac_c" 1>&6 -echo "configure:12771: checking for termio.h" >&5 +echo "configure:12840: 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:12779: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12848: \"$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* @@ -12807,10 +12876,10 @@ fi echo $ac_n "checking for socket""... $ac_c" 1>&6 -echo "configure:12811: checking for socket" >&5 +echo "configure:12880: checking for socket" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12906: \"$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 @@ -12848,15 +12917,15 @@ if eval "test \"`echo '$ac_cv_func_'socket`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_safe=`echo "netinet/in.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for netinet/in.h""... $ac_c" 1>&6 -echo "configure:12852: checking for netinet/in.h" >&5 +echo "configure:12921: 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:12860: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12929: \"$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* @@ -12873,15 +12942,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_safe=`echo "arpa/inet.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for arpa/inet.h""... $ac_c" 1>&6 -echo "configure:12877: checking for arpa/inet.h" >&5 +echo "configure:12946: 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:12885: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12954: \"$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* @@ -12906,9 +12975,9 @@ EOF } echo $ac_n "checking "for sun_len member in struct sockaddr_un"""... $ac_c" 1>&6 -echo "configure:12910: checking "for sun_len member in struct sockaddr_un"" >&5 +echo "configure:12979: checking "for sun_len member in struct sockaddr_un"" >&5 cat > conftest.$ac_ext < @@ -12919,7 +12988,7 @@ int main() { static struct sockaddr_un x; x.sun_len = 1; ; return 0; } EOF -if { (eval echo configure:12923: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12992: \"$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 @@ -12937,9 +13006,9 @@ else fi rm -f conftest* echo $ac_n "checking "for ip_mreq struct in netinet/in.h"""... $ac_c" 1>&6 -echo "configure:12941: checking "for ip_mreq struct in netinet/in.h"" >&5 +echo "configure:13010: checking "for ip_mreq struct in netinet/in.h"" >&5 cat > conftest.$ac_ext < @@ -12949,7 +13018,7 @@ int main() { static struct ip_mreq x; ; return 0; } EOF -if { (eval echo configure:12953: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13022: \"$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 @@ -12980,10 +13049,10 @@ fi echo $ac_n "checking for msgget""... $ac_c" 1>&6 -echo "configure:12984: checking for msgget" >&5 +echo "configure:13053: checking for msgget" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13079: \"$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 @@ -13021,15 +13090,15 @@ if eval "test \"`echo '$ac_cv_func_'msgget`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_safe=`echo "sys/ipc.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for sys/ipc.h""... $ac_c" 1>&6 -echo "configure:13025: checking for sys/ipc.h" >&5 +echo "configure:13094: 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:13033: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13102: \"$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* @@ -13046,15 +13115,15 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_safe=`echo "sys/msg.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for sys/msg.h""... $ac_c" 1>&6 -echo "configure:13050: checking for sys/msg.h" >&5 +echo "configure:13119: 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:13058: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13127: \"$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* @@ -13092,15 +13161,15 @@ fi ac_safe=`echo "dirent.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for dirent.h""... $ac_c" 1>&6 -echo "configure:13096: checking for dirent.h" >&5 +echo "configure:13165: 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:13104: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13173: \"$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* @@ -13127,15 +13196,15 @@ else echo "$ac_t""no" 1>&6 ac_safe=`echo "sys/dir.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for sys/dir.h""... $ac_c" 1>&6 -echo "configure:13131: checking for sys/dir.h" >&5 +echo "configure:13200: 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:13139: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13208: \"$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* @@ -13168,15 +13237,15 @@ fi ac_safe=`echo "nlist.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for nlist.h""... $ac_c" 1>&6 -echo "configure:13172: checking for nlist.h" >&5 +echo "configure:13241: 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:13180: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13249: \"$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* @@ -13206,22 +13275,22 @@ fi echo "checking "for sound support"" 1>&6 -echo "configure:13210: checking "for sound support"" >&5 +echo "configure:13279: 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:13217: checking for multimedia/audio_device.h" >&5 +echo "configure:13286: 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:13225: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13294: \"$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* @@ -13247,19 +13316,27 @@ fi fi if test -z "$sound_found" -a -d "/usr/demo/SOUND"; then - sound_found=yes - extra_objs="$extra_objs sunplay.o" && if test "$extra_verbose" = "yes"; then + if test -d "/usr/demo/SOUND/include/multimedia"; then + sun_sound_cflags="-I/usr/demo/SOUND/include" + elif test -d "/usr/demo/SOUND/multimedia"; then + sun_sound_cflags="-I/usr/demo/SOUND" + fi + + if test -n "$native_sound_lib"; then + sun_sound_lib="$native_sound_lib" + elif test -r "/usr/demo/SOUND/lib/libaudio.a"; then + sun_sound_lib="/usr/demo/SOUND/lib/libaudio.a" + elif test -r "/usr/demo/SOUND/libaudio.a"; then + sun_sound_lib="/usr/demo/SOUND/libaudio.a" + fi + + if test -n "$sun_sound_cflags" -a -n "$sun_sound_lib"; then + native_sound_lib="$sun_sound_lib" + sound_cflags="$sun_sound_cflags" + sound_found=yes + extra_objs="$extra_objs sunplay.o" && if test "$extra_verbose" = "yes"; then echo " xemacs will be linked with \"sunplay.o\"" fi - if test -d "/usr/demo/SOUND/include" - then sound_cflags="-I/usr/demo/SOUND/include" - else sound_cflags="-I/usr/demo/SOUND" - fi - if test -z "$native_sound_lib" ; then - if test -r "/usr/demo/SOUND/lib/libaudio.a" - then native_sound_lib="/usr/demo/SOUND/lib/libaudio.a" - else native_sound_lib="/usr/demo/SOUND/libaudio.a" - fi fi fi @@ -13269,12 +13346,12 @@ fi if test -z "$native_sound_lib"; then echo $ac_n "checking for ALopenport in -laudio""... $ac_c" 1>&6 -echo "configure:13273: checking for ALopenport in -laudio" >&5 +echo "configure:13350: 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:13366: \"$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 @@ -13316,12 +13393,12 @@ fi if test -z "$native_sound_lib"; then echo $ac_n "checking for AOpenAudio in -lAlib""... $ac_c" 1>&6 -echo "configure:13320: checking for AOpenAudio in -lAlib" >&5 +echo "configure:13397: 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:13413: \"$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 @@ -13377,15 +13454,15 @@ fi for dir in "machine" "sys" "linux"; do ac_safe=`echo "${dir}/soundcard.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ${dir}/soundcard.h""... $ac_c" 1>&6 -echo "configure:13381: checking for ${dir}/soundcard.h" >&5 +echo "configure:13458: 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:13389: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13466: \"$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* @@ -13439,15 +13516,15 @@ fi 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:13443: checking for audio/audiolib.h" >&5 +echo "configure:13520: 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:13451: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13528: \"$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* @@ -13465,12 +13542,12 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo $ac_n "checking for AuOpenServer in -laudio""... $ac_c" 1>&6 -echo "configure:13469: checking for AuOpenServer in -laudio" >&5 +echo "configure:13546: 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:13562: \"$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 @@ -13520,7 +13597,7 @@ EOF fi libs_x="-laudio $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-laudio\" to \$libs_x"; fi cat > conftest.$ac_ext < EOF @@ -13551,7 +13628,7 @@ if test "$with_esd_sound" != "no"; then # Extract the first word of "esd-config", so it can be a program name with args. set dummy esd-config; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:13555: checking for $ac_word" >&5 +echo "configure:13632: 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. @@ -13580,10 +13657,10 @@ fi 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:13584: checking for esd_play_stream" >&5 +echo "configure:13661: 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:13687: \"$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 @@ -13657,7 +13734,7 @@ test -z "$with_tty" && with_tty=yes if test "$with_tty" = "yes" ; then echo "checking for TTY-related features" 1>&6 -echo "configure:13661: checking for TTY-related features" >&5 +echo "configure:13738: checking for TTY-related features" >&5 { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_TTY EOF @@ -13673,12 +13750,12 @@ EOF if test -z "$with_ncurses"; then echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6 -echo "configure:13677: checking for tgetent in -lncurses" >&5 +echo "configure:13754: 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:13770: \"$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 @@ -13722,15 +13799,15 @@ EOF ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6 -echo "configure:13726: checking for ncurses/curses.h" >&5 +echo "configure:13803: 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:13734: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13811: \"$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* @@ -13752,15 +13829,15 @@ fi ac_safe=`echo "ncurses/term.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ncurses/term.h""... $ac_c" 1>&6 -echo "configure:13756: checking for ncurses/term.h" >&5 +echo "configure:13833: 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:13764: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13841: \"$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* @@ -13790,15 +13867,15 @@ fi c_switch_site="$c_switch_site -I/usr/include/ncurses" ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6 -echo "configure:13794: checking for ncurses/curses.h" >&5 +echo "configure:13871: 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:13802: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13879: \"$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* @@ -13833,12 +13910,12 @@ fi for lib in curses termlib termcap; do echo $ac_n "checking for tgetent in -l$lib""... $ac_c" 1>&6 -echo "configure:13837: checking for tgetent in -l$lib" >&5 +echo "configure:13914: 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:13930: \"$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 @@ -13874,12 +13951,12 @@ fi else if test -n "$libs_termcap" -a "$opsys" = "openbsd"; then echo $ac_n "checking for tgoto in -ltermcap""... $ac_c" 1>&6 -echo "configure:13878: checking for tgoto in -ltermcap" >&5 +echo "configure:13955: checking for tgoto in -ltermcap" >&5 ac_lib_var=`echo termcap'_'tgoto | 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:13971: \"$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 @@ -13935,12 +14012,12 @@ fi else echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6 -echo "configure:13939: checking for tgetent in -lcurses" >&5 +echo "configure:14016: 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:14032: \"$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 @@ -13969,12 +14046,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6 -echo "configure:13973: checking for tgetent in -ltermcap" >&5 +echo "configure:14050: 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:14066: \"$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 @@ -14033,15 +14110,15 @@ EOF test -z "$with_gpm" && { ac_safe=`echo "gpm.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for gpm.h""... $ac_c" 1>&6 -echo "configure:14037: checking for gpm.h" >&5 +echo "configure:14114: 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:14045: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:14122: \"$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* @@ -14064,12 +14141,12 @@ fi } test -z "$with_gpm" && { echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6 -echo "configure:14068: checking for Gpm_Open in -lgpm" >&5 +echo "configure:14145: 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:14161: \"$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 @@ -14130,20 +14207,20 @@ test "$with_x11" = "yes" -o "$with_tty" = "yes" -o "$need_event_unixoid" = "yes" test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \ != "no no no" && echo "checking for database support" 1>&6 -echo "configure:14134: checking for database support" >&5 +echo "configure:14211: 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:14139: checking for ndbm.h" >&5 +echo "configure:14216: 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:14147: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:14224: \"$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* @@ -14173,12 +14250,12 @@ fi if test "$with_database_gdbm" != "no"; then echo $ac_n "checking for dbm_open in -lgdbm""... $ac_c" 1>&6 -echo "configure:14177: checking for dbm_open in -lgdbm" >&5 +echo "configure:14254: 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:14270: \"$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 @@ -14217,10 +14294,10 @@ fi if test "$with_database_dbm" != "no"; then echo $ac_n "checking for dbm_open""... $ac_c" 1>&6 -echo "configure:14221: checking for dbm_open" >&5 +echo "configure:14298: 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:14324: \"$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 @@ -14262,12 +14339,12 @@ else echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6 -echo "configure:14266: checking for dbm_open in -ldbm" >&5 +echo "configure:14343: 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:14359: \"$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 @@ -14319,12 +14396,12 @@ EOF if test "$with_database_berkdb" != "no"; then echo $ac_n "checking for Berkeley db.h""... $ac_c" 1>&6 -echo "configure:14323: checking for Berkeley db.h" >&5 +echo "configure:14400: checking for Berkeley db.h" >&5 for header in "db/db.h" "db.h"; do case "$opsys" in *freebsd*) cat > conftest.$ac_ext < @@ -14340,7 +14417,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:14344: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14421: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* db_h_file="$header"; break else @@ -14351,7 +14428,7 @@ rm -f conftest* ;; *) cat > conftest.$ac_ext < @@ -14373,7 +14450,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:14377: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14454: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* db_h_file="$header"; break else @@ -14391,9 +14468,9 @@ rm -f conftest* if test "$with_database_berkdb" != "no"; then echo $ac_n "checking for Berkeley DB version""... $ac_c" 1>&6 -echo "configure:14395: checking for Berkeley DB version" >&5 +echo "configure:14472: checking for Berkeley DB version" >&5 cat > conftest.$ac_ext < #if DB_VERSION_MAJOR > 1 @@ -14405,7 +14482,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | egrep "yes" >/dev/null 2>&1; then rm -rf conftest* cat > conftest.$ac_ext < #if DB_VERSION_MAJOR > 2 @@ -14432,10 +14509,10 @@ fi rm -f conftest* echo $ac_n "checking for $dbfunc""... $ac_c" 1>&6 -echo "configure:14436: checking for $dbfunc" >&5 +echo "configure:14513: checking for $dbfunc" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14539: \"$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 @@ -14477,12 +14554,12 @@ else echo $ac_n "checking for $dbfunc in -ldb""... $ac_c" 1>&6 -echo "configure:14481: checking for $dbfunc in -ldb" >&5 +echo "configure:14558: 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:14574: \"$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 @@ -14567,12 +14644,12 @@ fi if test "$with_socks" = "yes"; then echo $ac_n "checking for SOCKSinit in -lsocks""... $ac_c" 1>&6 -echo "configure:14571: checking for SOCKSinit in -lsocks" >&5 +echo "configure:14648: 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:14664: \"$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 @@ -14638,7 +14715,7 @@ fi if test "$with_modules" != "no"; then echo "checking for module support" 1>&6 -echo "configure:14642: checking for module support" >&5 +echo "configure:14719: checking for module support" >&5 if test "$with_msw" = "yes"; then have_dl=yes; @@ -14654,15 +14731,15 @@ EOF ;; *) ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6 -echo "configure:14658: checking for dlfcn.h" >&5 +echo "configure:14735: 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:14666: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:14743: \"$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* @@ -14679,16 +14756,16 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for dlopen in -lc""... $ac_c" 1>&6 -echo "configure:14683: checking for dlopen in -lc" >&5 +echo "configure:14760: checking for dlopen in -lc" >&5 cat > conftest.$ac_ext < int main() { dlopen ("", 0); ; return 0; } EOF -if { (eval echo configure:14692: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14769: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* have_dl=yes else @@ -14697,18 +14774,18 @@ else rm -rf conftest* echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 -echo "configure:14701: checking for dlopen in -ldl" >&5 +echo "configure:14778: 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:14712: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14789: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* have_dl=yes else @@ -14737,12 +14814,12 @@ EOF else echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 -echo "configure:14741: checking for shl_load in -ldld" >&5 +echo "configure:14818: 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:14834: \"$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 @@ -14780,12 +14857,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for dld_init in -ldld""... $ac_c" 1>&6 -echo "configure:14784: checking for dld_init in -ldld" >&5 +echo "configure:14861: 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:14877: \"$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 @@ -14843,7 +14920,7 @@ xehost=$canonical xealias=$internal_configuration echo "checking how to build dynamic libraries for ${xehost}" 1>&6 -echo "configure:14847: checking how to build dynamic libraries for ${xehost}" >&5 +echo "configure:14924: checking how to build dynamic libraries for ${xehost}" >&5 # Transform *-*-linux* to *-*-linux-gnu*, to support old configure scripts. case "$xehost" in *-*-linux-gnu*) ;; @@ -14871,9 +14948,9 @@ if test "$GCC" = "yes"; then XEGCC=yes else echo $ac_n "checking checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:14875: checking checking whether we are using GNU C" >&5 +echo "configure:14952: checking checking whether we are using GNU C" >&5 cat > conftest.$ac_ext <&6 -echo "configure:14899: checking how to produce PIC code" >&5 +echo "configure:14976: checking how to produce PIC code" >&5 wl= can_build_shared=yes -if test "$XEGCC" = yes; then +if test "$XEGCC" = yes -o "$__ICC" = yes; then wl='-Wl,' case "$xehost_os" in @@ -14996,18 +15073,18 @@ if test -n "$dll_cflags"; then # Check to make sure the dll_cflags actually works. echo $ac_n "checking if PIC flag ${dll_cflags} really works""... $ac_c" 1>&6 -echo "configure:15000: checking if PIC flag ${dll_cflags} really works" >&5 +echo "configure:15077: 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:15088: \"$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 @@ -15038,8 +15115,8 @@ cc_produces_so=no xldf= xcldf= echo $ac_n "checking if C compiler can produce shared libraries""... $ac_c" 1>&6 -echo "configure:15042: checking if C compiler can produce shared libraries" >&5 -if test "$XEGCC" = yes; then +echo "configure:15119: checking if C compiler can produce shared libraries" >&5 +if test "$XEGCC" = yes -o "$__ICC" = yes; then xcldf="-shared" xldf="-shared" else # Not using GCC @@ -15089,14 +15166,14 @@ if test -n "$xcldf"; then xe_libs= ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&5' cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15177: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cc_produces_so=yes else @@ -15121,7 +15198,7 @@ if test -z "$LTLD"; then if test "$XEGCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 -echo "configure:15125: checking for ld used by GCC" >&5 +echo "configure:15202: checking for ld used by GCC" >&5 ac_prog=`($CC -print-prog-name=ld) 2>&5` case "$ac_prog" in # Accept absolute paths. @@ -15147,7 +15224,7 @@ echo "configure:15125: checking for ld used by GCC" >&5 esac else echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 -echo "configure:15151: checking for GNU ld" >&5 +echo "configure:15228: checking for GNU ld" >&5 fi if test -z "$LTLD"; then @@ -15185,7 +15262,7 @@ ld_dynamic_link_flags= # Check to see if it really is or isn't GNU ld. echo $ac_n "checking if the linker is GNU ld""... $ac_c" 1>&6 -echo "configure:15189: checking if the linker is GNU ld" >&5 +echo "configure:15266: 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 @@ -15213,7 +15290,7 @@ else # OK - only NOW do we futz about with ld. # See if the linker supports building shared libraries. echo $ac_n "checking whether the linker supports shared libraries""... $ac_c" 1>&6 -echo "configure:15217: checking whether the linker supports shared libraries" >&5 +echo "configure:15294: checking whether the linker supports shared libraries" >&5 dll_ld=$CC dll_ldflags=$LDFLAGS ld_shlibs=yes @@ -15424,10 +15501,10 @@ EOF for ac_func in dlerror _dlerror do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:15428: checking for $ac_func" >&5 +echo "configure:15505: 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:15531: \"$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 @@ -15489,11 +15566,11 @@ done fi cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:15574: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then : else @@ -16133,6 +16210,66 @@ else echo " Not using any machine description file" fi echo " Compiler: $CC $CFLAGS" +case "$CC" in + gcc*) echo " Compiler version: `$CC --version | head -1`" + echo " Compiler specs file: `$CC -v 2>&1 | sed 's/.* \([^ ]\)/\1/' | head -1`" + ;; + *) case "$canonical" in + *-*-aix* ) + realcc=`which $CC` + if test -L $realcc ; then + ccdir=`dirname $realcc` + ccprog=`/bin/ls -l $realcc | sed 's/.* \([^ ]\)/\1/'` + case $ccprog in + */*) realcc=$ccprog;; + *) realcc=$ccdir/$ccprog;; + esac + fi + lpp=`lslpp -wqc $realcc | cut -f2 -d:` + if test ! -z "$lpp" ; then + lppstr=`lslpp -Lqc $lpp` + lpplev=`echo "$lppstr" | cut -f3 -d:` + lppdesc=`echo "$lppstr" | cut -f8 -d:` + fi + if test ! -z "$lpplev" ; then + echo " Compiler version: $lpp $lpplev - $lppdesc" + else + echo " Compiler version: (unknown version)" + fi + ;; + + *-*-solaris*) + ccvers=`$CC -V 2>&1 | head -1` + if test ! -z "$ccvers" ; then + echo " Compiler version: $ccvers" + fi + ;; + + alpha*-dec-osf*) + ccvers=`$CC -V | tr '\n' ' '` + if test ! -z "$ccvers" ; then + echo " Compiler version: $ccvers" + fi + ;; + + mips-sgi-irix*) + ccvers=`$CC -version` + if test ! -z "$ccvers" ; then + echo " Compiler version: $ccvers" + fi + ;; + + i[3-9]86-pc-linux) + ccvers=`$CC -V 2>&1 | sed -n 's@^Intel.*Version @@'p` + if test ! -z "$ccvers" ; then + echo " Compiler version: $ccvers" + fi + ;; + + *) echo " Compiler version: $CC on $canonical";; + esac +esac + echo " Relocating allocator for buffers: $rel_alloc" echo " GNU version of malloc: ${GNU_MALLOC}${GNU_MALLOC_reason}" case "$ld_switch_site" in @@ -16140,6 +16277,42 @@ case "$ld_switch_site" in - Consider configuring with --pdump." ;; esac +case "$canonical" in + *-*-linux*) + if test -f /etc/redhat-release ; then + echo " libc: `rpm -q glibc`"; + else + echo "Need to guess glibc1/2/etc here"; + fi + ;; + + *-*-aix*) + echo " libc: bos.rte.libc `lslpp -Lqc bos.rte.libc | cut -f3 -d:`" + ;; + + *-*-solaris*) + libc=`pkginfo -l SUNWcsl | grep VERSION: | awk '{print $2}'` + echo " libc: SUNWcsl $libc" + + ;; + + mips-sgi-irix*) + echo " IRIX version: `uname -sRm`'" + ;; + + + alpha*-dec-osf*) + (cd /usr/.smdb.; + libc=` grep -h libc.so *.inv | awk '$9 == "f" {print $12}' | tr '\n' ','` + echo " libc: $libc" + + ) + ;; + + *) echo " libc: system-provided libc on $canonical" ;; +esac + + echo " Window System:" if test "$with_msw" = "yes"; then @@ -16161,6 +16334,9 @@ if test "$with_x11" = "yes"; then fi if test "$need_motif" = "yes" ; then echo " Compiling in support for Motif." + if test "$have_lesstif" = "yes"; then + echo " - Using LessTif implementation." + fi echo " *WARNING* Many versions of Motif are buggy, requiring workarounds." echo " You are likely to experience slow redisplay." echo " You may need to install vendor patches to Motif." diff --git a/configure.in b/configure.in index d27f8ab..2d1847b 100644 --- a/configure.in +++ b/configure.in @@ -348,6 +348,7 @@ with_site_lisp='no' with_site_modules='yes' with_menubars='' with_scrollbars='' +dnl can't turn off widgets here because of systems where they are demanded with_widgets='' with_dialogs='' with_file_coding='' @@ -1454,9 +1455,14 @@ case "$canonical" in esac case "$canonical" in - *-solaris* ) + *-solaris* ) opsys=sol2 - os_release=`uname -r | sed -e 's/^\([[0-9]]\)\.\([[0-9]]\).*/\1\2/'` + os_release_major=`uname -r | sed -e 's/^\([[0-9]]\{1,\}\)\.\([[0-9]]\{1,\}\).*/\1/'` + os_release_minor=`uname -r | sed -e 's/^\([[0-9]]\{1,\}\)\.\([[0-9]]\{1,\}\).*/\2/'` + case "$os_release_minor" in [[0-9]]) + os_release_minor="0${os_release_minor}";; + esac + os_release="${os_release_major}${os_release_minor}" AC_DEFINE_UNQUOTED(OS_RELEASE, $os_release) ;; dnl The last Sun386 ran 4.0. @@ -1706,7 +1712,7 @@ case "$opsys" in sol2) AC_DEFINE(__EXTENSIONS__) dnl Solaris 2 before 2.5 had some bugs with feature test macro interaction. - if test "$os_release" -ge 55; then + if test "$os_release" -ge 505; then AC_DEFINE(_XOPEN_SOURCE,500) AC_DEFINE(_XOPEN_SOURCE_EXTENDED) fi ;; @@ -1727,14 +1733,19 @@ return 11; return 12; #elif defined __USLC__ && defined __SCO_VERSION__ return 13; +#elif defined __INTEL_COMPILER +return 14; #else return 0; #endif }], [], [case "$conftest_rc" in - 11) echo "You appear to be using the SunPro C compiler."; __SUNPRO_C=yes ;; - 12) echo "You appear to be using the DEC C compiler." ; __DECC=yes ;; - 13) echo "You appear to be using the SCO C compiler." ; __USLC__=yes ;; + 11) echo "You appear to be using the SunPro C compiler." ; __SUNPRO_C=yes ;; + 12) echo "You appear to be using the DEC C compiler." ; __DECC=yes ;; + 13) echo "You appear to be using the SCO C compiler." ; __USLC__=yes ;; + 14) echo "You appear to be using the Intel C++ compiler."; __ICC=yes + dnl Newer versions of icc claim to be GCC + GCC=no ;; esac]) @@ -1953,6 +1964,8 @@ if test "$cflags_specified" = "no"; then CFLAGS="-O3" elif test "$CC" = "xlc"; then CFLAGS="-g -O3 -qstrict -qnoansialias -qlibansi -qinfo -qro -qmaxmem=20000" + elif test "$__ICC" = "yes"; then + CFLAGS="-g -O3 -Ob2 -Wall -W1" dnl ### Add optimal CFLAGS support for other compilers HERE! else CFLAGS="-O" ;dnl The only POSIX-approved flag @@ -2304,6 +2317,7 @@ if test "$add_runtime_path" = "yes" -a -n "$dash_r"; then case "$arg" in -L*) XE_ADD_RUNPATH_DIR(`echo '' "$arg" | sed -e 's:^ ::' -e 's/^-L//'`);; esac done dnl Sometimes /opt/SUNWdt/lib is the only installed Motif available + dnl #### this test always fails here as need_motif is null if test "$opsys $need_motif" = "sol2 yes"; then xe_runpath_dir="/opt/SUNWdt/lib"; eval "$xe_add_unique_runpath_dir"; @@ -2566,7 +2580,7 @@ fi dnl Link with "-z ignore" on Solaris if supported if test "$opsys" = "sol2"; then - if test "$os_release" -ge 56; then + if test "$os_release" -ge 506; then AC_MSG_CHECKING(for \"-z ignore\" linker flag) case "`ld -h 2>&1`" in *-z\ ignore\|record* ) AC_MSG_RESULT(yes) @@ -2971,7 +2985,7 @@ if test "$with_msw" != "no"; then XE_APPEND(netinstall, INSTALL_ARCH_DEP_SUBDIR) fi - install_pp="$blddir/lib-src/installexe.sh" + install_pp="$srcdir/lib-src/installexe.sh" XE_APPEND(-lshell32 -lgdi32 -luser32 -lcomdlg32 -lcomctl32 -lkernel32 -lwinspool, libs_system) test "$with_dragndrop" != no && XE_APPEND(msw, dragndrop_proto) if test "$window_system" != x11; then @@ -3573,15 +3587,27 @@ fi dnl "$with_x11" = "yes" dnl Finish ensuring that we have values for the various toolkit items. dnl Not all toolkits support all widgets -dnl if Motif is available we use it for the dialog boxes. + +dnl Avoid using Motif :-( +case "$opsys" in + *linux* ) lucid_prefers_motif = "no" ;; + * ) lucid_prefers_motif = "yes" ;; +esac case "$with_menubars" in "" | "yes" | "athena" ) with_menubars="lucid" ;; esac case "$with_dialogs" in "" | "yes" | "lucid" ) - if test "$have_motif" = "yes"; then with_dialogs="motif" - elif test "$have_xaw" = "yes"; then with_dialogs="athena" - else with_dialogs=no + if test "$lucid_prefers_motif" = "yes"; then + if test "$have_motif" = "yes"; then with_dialogs="motif" + elif test "$have_xaw" = "yes"; then with_dialogs="athena" + else with_dialogs=no + fi + else + if test "$have_xaw" = "yes"; then with_dialogs="athena" + elif test "$have_motif" = "yes"; then with_dialogs="motif" + else with_dialogs=no + fi fi ;; esac case "$with_scrollbars" in "" | "yes" ) @@ -3589,9 +3615,16 @@ case "$with_scrollbars" in "" | "yes" ) esac case "$with_widgets" in "yes" | "lucid") - if test "$have_motif" = "yes"; then with_widgets="motif" - elif test "$have_xaw" = "yes"; then with_widgets="athena" - else with_widgets=no + if test "$lucid_prefers_motif" = "yes"; then + if test "$have_motif" = "yes"; then with_widgets="motif" + elif test "$have_xaw" = "yes"; then with_widgets="athena" + else with_widgets=no + fi + else + if test "$have_xaw" = "yes"; then with_widgets="athena" + elif test "$have_motif" = "yes"; then with_widgets="motif" + else with_widgets=no + fi fi ;; "" ) with_widgets=no ;; @@ -3785,7 +3818,10 @@ if test "$with_mule" = "yes" ; then AC_CHECKING(for XIM) AC_CHECK_LIB(X11, XOpenIM, with_xim=xlib, with_xim=no) dnl XIM + Lesstif is not (yet?) usable - if test "$have_motif $have_lesstif" = "yes no"; then + dnl Only use Motif if linking Motif anyway, or don't have xlib XIM + if test "$need_motif $have_lesstif" = "yes no"; then + AC_CHECK_LIB(Xm, XmImMbLookupString, with_xim=motif) + elif test "$have_motif $have_lesstif $with_xim" = "yes no no"; then AC_CHECK_LIB(Xm, XmImMbLookupString, with_xim=motif) fi ;; esac @@ -4196,17 +4232,25 @@ if test "$with_native_sound" != "no"; then dnl Autodetect Sun native sound from SUNWaudmo package if test -z "$sound_found" -a -d "/usr/demo/SOUND"; then - sound_found=yes - XE_ADD_OBJS(sunplay.o) - if test -d "/usr/demo/SOUND/include" - then sound_cflags="-I/usr/demo/SOUND/include" - else sound_cflags="-I/usr/demo/SOUND" + if test -d "/usr/demo/SOUND/include/multimedia"; then + sun_sound_cflags="-I/usr/demo/SOUND/include" + elif test -d "/usr/demo/SOUND/multimedia"; then + sun_sound_cflags="-I/usr/demo/SOUND" fi - if test -z "$native_sound_lib" ; then - if test -r "/usr/demo/SOUND/lib/libaudio.a" - then native_sound_lib="/usr/demo/SOUND/lib/libaudio.a" - else native_sound_lib="/usr/demo/SOUND/libaudio.a" - fi + + if test -n "$native_sound_lib"; then + sun_sound_lib="$native_sound_lib" + elif test -r "/usr/demo/SOUND/lib/libaudio.a"; then + sun_sound_lib="/usr/demo/SOUND/lib/libaudio.a" + elif test -r "/usr/demo/SOUND/libaudio.a"; then + sun_sound_lib="/usr/demo/SOUND/libaudio.a" + fi + + if test -n "$sun_sound_cflags" -a -n "$sun_sound_lib"; then + native_sound_lib="$sun_sound_lib" + sound_cflags="$sun_sound_cflags" + sound_found=yes + XE_ADD_OBJS(sunplay.o) fi fi @@ -5019,6 +5063,73 @@ else echo " Not using any machine description file" fi echo " Compiler: $CC $CFLAGS" +dnl Let's save some helpful-for-debugging info like compiler and libc versions.. +dnl First, see if it's gcc - the same check works everyplace... +case "$CC" in + gcc*) echo " Compiler version: `$CC --version | head -1`" + echo " Compiler specs file: `$CC -v 2>&1 | sed 's/.* \([[^ ]]\)/\1/' | head -1`" + ;; +dnl non-gcc machine-specific magic - contributions welcome + *) case "$canonical" in + *-*-aix* ) + dnl Yes, it's this ugly for AIX... + realcc=`which $CC` + dnl Might be a symlink created by replaceCset command + if test -L $realcc ; then + ccdir=`dirname $realcc` + ccprog=`/bin/ls -l $realcc | sed 's/.* \([[^ ]]\)/\1/'` + dnl This doesn't handle ../../xlc type stuff, but I've not seen one... + case $ccprog in + */*) realcc=$ccprog;; + *) realcc=$ccdir/$ccprog;; + esac + fi + lpp=`lslpp -wqc $realcc | cut -f2 -d:` + if test ! -z "$lpp" ; then + lppstr=`lslpp -Lqc $lpp` + lpplev=`echo "$lppstr" | cut -f3 -d:` + lppdesc=`echo "$lppstr" | cut -f8 -d:` + fi + if test ! -z "$lpplev" ; then + echo " Compiler version: $lpp $lpplev - $lppdesc" + else + echo " Compiler version: (unknown version)" + fi + ;; + + *-*-solaris*) + ccvers=`$CC -V 2>&1 | head -1` + if test ! -z "$ccvers" ; then + echo " Compiler version: $ccvers" + fi + ;; + + alpha*-dec-osf*) + ccvers=`$CC -V | tr '\n' ' '` + if test ! -z "$ccvers" ; then + echo " Compiler version: $ccvers" + fi + ;; + + mips-sgi-irix*) + ccvers=`$CC -version` + if test ! -z "$ccvers" ; then + echo " Compiler version: $ccvers" + fi + ;; + + dnl Intel C++ Compiler on Linux + i[[3-9]]86-pc-linux) + ccvers=`$CC -V 2>&1 | sed -n 's@^Intel.*Version @@'p` + if test ! -z "$ccvers" ; then + echo " Compiler version: $ccvers" + fi + ;; + + *) echo " Compiler version: $CC on $canonical";; + esac +esac + echo " Relocating allocator for buffers: $rel_alloc" echo " GNU version of malloc: ${GNU_MALLOC}${GNU_MALLOC_reason}" case "$ld_switch_site" in @@ -5026,6 +5137,45 @@ case "$ld_switch_site" in - Consider configuring with --pdump." ;; esac +dnl Now get the libc version - contributions welcome +case "$canonical" in + *-*-linux*) + if test -f /etc/redhat-release ; then + echo " libc: `rpm -q glibc`"; +dnl need a Debian and Suse check here... + else + echo "Need to guess glibc1/2/etc here"; + fi + ;; + + *-*-aix*) + echo " libc: bos.rte.libc `lslpp -Lqc bos.rte.libc | cut -f3 -d:`" + ;; + + *-*-solaris*) + libc=`pkginfo -l SUNWcsl | grep VERSION: | awk '{print $2}'` + echo " libc: SUNWcsl $libc" + + ;; + + mips-sgi-irix*) + echo " IRIX version: `uname -sRm`'" + ;; + + + alpha*-dec-osf*) + dnl Another ugly case + (cd /usr/.smdb.; + libc=` grep -h libc.so *.inv | awk '$9 == "f" {print $12}' | tr '\n' ','` + echo " libc: $libc" + + ) + ;; + + *) echo " libc: system-provided libc on $canonical" ;; +esac + + echo " Window System:" if test "$with_msw" = "yes"; then @@ -5047,6 +5197,9 @@ if test "$with_x11" = "yes"; then fi if test "$need_motif" = "yes" ; then echo " Compiling in support for Motif." + if test "$have_lesstif" = "yes"; then + echo " - Using LessTif implementation." + fi echo " *WARNING* Many versions of Motif are buggy, requiring workarounds." echo " You are likely to experience slow redisplay." echo " You may need to install vendor patches to Motif." diff --git a/configure.usage b/configure.usage index 0983d73..2647128 100644 --- a/configure.usage +++ b/configure.usage @@ -139,7 +139,7 @@ explicitly specify which library to link against. *WARNING* The Motif menubar is currently broken. --with-scrollbars=TYPE (Enum) Types: `lucid'(*), `motif', `athena', or `no'. --with-dialogs=TYPE (Enum) Types: `lucid'(*), `motif', `athena', or `no'. ---with-widgets=TYPE (Enum) Types: `lucid'(*), `motif', `athena', or `no'. +--with-widgets=TYPE (Enum) Types: `lucid', `motif', `athena', or `no'(*). --with-athena=TYPE (Enum) Link with the TYPE Athena library. Types: `xaw' [flat], `3d', `next', `95', or `xpm'. --with-dragndrop (*) Support generic drag and drop API. (EXPERIMENTAL) diff --git a/etc/OXYMORONS b/etc/OXYMORONS index b54c142..6eaad69 100644 --- a/etc/OXYMORONS +++ b/etc/OXYMORONS @@ -36,14 +36,15 @@ theme for the releases following the promotion of 21.4 from "gamma" to 21.4.13: Rational FORTRAN 21.4.14: Reasonable Discussion 21.4.15: Security Through Obscurity -21.4.16: Social Property -21.4.17: Stable Release Maintainer -21.4.18: Standard C -21.4.19: Successful IPO -21.4.20: Sufficiently Smart Compiler -21.4.21: The Gift Economy -21.4.22: Too Much Mozart -21.4.23: UTF-8 BOM +21.4.16: Corporate Culture +21.4.17: Social Property +21.4.18: Stable Release Maintainer +21.4.19: Standard C +21.4.20: Successful IPO +21.4.21: Sufficiently Smart Compiler +21.4.22: The Gift Economy +21.4.23: Too Much Mozart +21.4.24: UTF-8 BOM N.B. Only incredibly redeeming suggestions can be accepted now. diff --git a/etc/PACKAGES b/etc/PACKAGES index fddf29b..5d30487 100644 --- a/etc/PACKAGES +++ b/etc/PACKAGES @@ -97,6 +97,9 @@ Portable Emacs Lisp utilities library. *** emerge Another interface over GNU patch. +*** erc +ERC is an Emacs InternetRelayChat client. + *** eshell Command shell implemented entirely in Emacs Lisp. @@ -161,7 +164,8 @@ Spell-checking with GNU ispell. Integrated Development Environment for Java. *** liece -IRC (Internet Relay Chat) client for Emacs. +IRC (Internet Relay Chat) client for Emacs. Note, this package is +deprecated and will be removed, use riece instead. *** mail-lib Fundamental lisp files for providing email support. @@ -173,7 +177,7 @@ Support for messaging encryption with PGP. Messaging in an Emacs World. *** mh-e -Front end support for MH. +The XEmacs Interface to the MH Mail System. *** mine Minehunt Game. @@ -230,6 +234,9 @@ Python support. *** reftex Emacs support for LaTeX cross-references, citations. +*** riece +IRC (Internet Relay Chat) client for Emacs. + *** rmail An obsolete Emacs mailer. If you do not already use it don't start. diff --git a/etc/package-index.LATEST.pgp b/etc/package-index.LATEST.pgp deleted file mode 100644 index 2fafcc9..0000000 --- a/etc/package-index.LATEST.pgp +++ /dev/null @@ -1,2512 +0,0 @@ -;; Package Index file -- Do not edit manually. -;;;@@@ -(package-get-update-base-entry (quote -(ecb - (standards-version 1.1 - 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.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 -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(pgg - (standards-version 1.1 - version "1.03" - author-version "0.1" - date "2003-05-14" - build-date "2003-05-14" - maintainer "Simon Josefsson " - distribution xemacs - priority low - category "standard" - dump nil - description "Emacs interface to various PGP implementations." - filename "pgg-1.03-pkg.tar.gz" - md5sum "d5f112441b77a17e23fabd6bf4f17f49" - size 31526 - provides (pgg pgg-def pgg-parse pgg-gpg pgg-pgp pgg-pgp5) - requires (xemacs-base fsf-compat edebug) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(perl-modes - (standards-version 1.1 - version "1.04" - author-version "21.4" - date "2003-01-18" - build-date "2003-01-18" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "Perl support." - filename "perl-modes-1.04-pkg.tar.gz" - md5sum "13cd4e312af571aefbf5415cfefc4fad" - size 161021 - provides (cperl-mode perl-mode) - requires (xemacs-base ispell ps-print edit-utils fsf-compat) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(python-modes - (standards-version 1.1 - version "1.02" - author-version "21.4" - date "2003-01-13" - build-date "2003-01-13" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "Python support." - filename "python-modes-1.02-pkg.tar.gz" - md5sum "738bbb00e9bd21d3091ae41aedaac2f9" - size 81943 - provides (pydoc python-mode) - requires (xemacs-base mail-lib) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(ruby-modes - (standards-version 1.1 - version "1.01" - author-version "1.6.8" - date "2003-01-13" - build-date "2003-01-13" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "Ruby support." - filename "ruby-modes-1.01-pkg.tar.gz" - md5sum "923181c6dd43210e7c85c971c754f38a" - size 21775 - provides (inf-ruby ruby-mode rubydb) - requires (xemacs-base debug) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(fortran-modes - (standards-version 1.1 - version "1.02" - author-version "21.4" - date "2003-01-13" - build-date "2003-01-13" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "Fortran support." - filename "fortran-modes-1.02-pkg.tar.gz" - md5sum "ae3d346c19382f07227dd8756da53134" - size 66600 - provides (f90 fortran) - requires (xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(psgml-dtds - (standards-version 1.1 - version "1.02" - author-version "21.4" - date "2002-08-29" - build-date "2002-08-29" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "Deprecated collection of DTDs for psgml." - filename "psgml-dtds-1.02-pkg.tar.gz" - md5sum "90100411b64045dae38166116d1f8e3f" - size 367102 - provides () - requires (xemacs-base psgml edit-utils mail-lib fsf-compat eterm sh-script) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(docbookide - (standards-version 1.1 - version "0.06" - author-version "0.1" - date "2003-01-13" - build-date "2003-01-13" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "DocBook editing support." - filename "docbookide-0.06-pkg.tar.gz" - md5sum "625c9ef5bb10c655b6f6dcba1b42ba2a" - size 31968 - provides (dbide-abbrev dbide-data dbide-font dbide-process docbookide) - requires (xemacs-base ispell mail-lib) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(ecrypto - (standards-version 1.1 - version "0.13" - author-version "2.0" - 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.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 -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(ocaml - (standards-version 1.1 - version "0.04" - author-version "3.06" - date "2003-01-13" - build-date "2003-01-13" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "Objective Caml editing support." - filename "ocaml-0.04-pkg.tar.gz" - md5sum "3b2bc2c431e334050074aebcf260d06e" - size 64814 - provides (caml-compat camldebug caml caml-font caml-help inf-caml) - requires (xemacs-base fsf-compat) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(sasl - (standards-version 1.1 - version "1.13" - author-version "1.14.4" - 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.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 -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(sml-mode - (standards-version 1.1 - version "0.09" - author-version "3.9.5" - date "2003-01-18" - build-date "2003-01-18" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "SML editing support." - filename "sml-mode-0.09-pkg.tar.gz" - md5sum "2022d71197f600716f0b41da3794c19b" - size 81547 - provides (sml-compat sml-defs sml-mode sml-move sml-proc sml-util) - requires (xemacs-base edebug fsf-compat) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(ess - (standards-version 1.1 - version "1.04" - author-version "5.1.21" - 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.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 -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(haskell-mode - (standards-version 1.1 - version "1.05" - author-version "1.44" - date "2003-01-13" - build-date "2003-01-13" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "Haskell editing support." - filename "haskell-mode-1.05-pkg.tar.gz" - md5sum "198a9d68d1b4115c9faf45e14c264f54" - size 94162 - provides (haskell-decl-scan haskell-doc haskell-font-lock haskell-indent haskell-mode haskell-simple-indent) - requires (dired mail-lib xemacs-base edit-utils) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(xslide - (standards-version 1.1 - 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.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 -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(liece - (standards-version 1.1 - version "1.12" - author-version "1.4.9" - date "2003-04-22" - build-date "2003-04-22" - maintainer "Daiki Ueno " - distribution xemacs - priority high - category "standard" - dump nil - description "IRC (Internet Relay Chat) client for Emacs." - filename "liece-1.12-pkg.tar.gz" - md5sum "c7f2aab45f8ada9398d4b0807e80433a" - size 199275 - provides (liece-xemacs gettext liece-clfns liece-handler liece-compat liece-version liece-vars liece-globals liece-inlines liece-filter liece-coding liece-dcc liece-menu liece-000 liece-200 liece-300 liece-400 liece-500 liece-nick liece-channel liece-commands liece-ctcp liece-q-el liece-message liece-handle liece-hilit liece-intl liece-mail liece-minibuf liece-misc liece-tcp liece-url liece-x-face liece-window liece) - requires (apel mail-lib fsf-compat xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(latin-unity - (standards-version 1.1 - version "1.07" - author-version "1.07" - date "2002-11-01" - build-date "2002-11-01" - maintainer "Stephen J. Turnbull " - distribution mule - priority high - category "mule" - dump nil - description "MULE: find single ISO 8859 character set to encode a buffer." - filename "latin-unity-1.07-pkg.tar.gz" - md5sum "7d4f163e1d98af367fab9f4ea5d01d8d" - size 116377 - provides (latin-unity latin-unity-tables latin-unity-utils) - requires (mule-base mule-ucs leim fsf-compat dired) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(mmm-mode - (standards-version 1.1 - version "1.00" - author-version "0.4.7" - date "2002-02-24" - build-date "2002-02-28" - maintainer "XEmacs Development Team " - distribution xemacs - priority medium - category "standard" - dump nil - description "Multiple major modes in a single buffer" - filename "mmm-mode-1.00-pkg.tar.gz" - md5sum "c07c752ffd029d9a430c2fb118127e88" - size 176080 - provides (mmm-auto mmm-class mmm-cmds mmm-compat mmm-mason mmm-mode mmm-region mmm-rpm mmm-sample mmm-univ mmm-utils mmm-vars) - requires (xemacs-base fsf-compat ) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(ibuffer - (standards-version 1.1 - version "1.08" - author-version "21.5b6" - date "2002-07-14" - build-date "2002-07-14" - maintainer "John Paul Wallington " - distribution xemacs - priority medium - category "standard" - dump nil - description "Advanced replacement for buffer-menu" - filename "ibuffer-1.08-pkg.tar.gz" - md5sum "e7203eeeca98a89c2bfe051d81c729de" - size 87113 - provides (ibuf-ext ibuf-macs ibuffer) - requires (ibuffer xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(xemacs-base - (standards-version 1.1 - version "1.78" - author-version "21.4" - 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.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 -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(tramp - (standards-version 1.1 - 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.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 -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(text-modes - (standards-version 1.1 - version "1.61" - author-version "21.4" - 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.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 -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(pcl-cvs - (standards-version 1.1 - version "1.64" - author-version "R-2_9_9" - date "2002-07-30" - build-date "2002-07-30" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "CVS frontend." - filename "pcl-cvs-1.64-pkg.tar.gz" - md5sum "3d8f9aac5c5edefec62a33cb9695db9f" - size 161512 - provides (cvs-compat cvs-edit cvs-log cvs-status easy-mmode pcl-cvs-defs pcl-cvs-info pcl-cvs-parse pcl-cvs-util pcl-cvs) - requires (xemacs-base elib vc dired edebug ediff edit-utils mail-lib prog-modes) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(mail-lib - (standards-version 1.1 - version "1.59" - author-version "21.5b13" - date "2003-05-14" - build-date "2003-05-14" - maintainer "Simon Josefsson " - distribution xemacs - priority medium - category "standard" - dump nil - description "Fundamental lisp files for providing email support." - filename "mail-lib-1.59-pkg.tar.gz" - md5sum "576bfafe24b1b08cfdf184fe021066c9" - size 198415 - provides (base64 browse-url-xemacs browse-url highlight-headers mail-abbrevs mail-extr mail-utils mailheader netrc pop3 reporter rfc2104 rfc822 rmail rmail-mini rmailout sendmail smtpmail starttls tls) - requires (eterm xemacs-base fsf-compat sh-script ecrypto) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(jde - (standards-version 1.1 - version "1.45" - author-version "2.3.2" - date "2003-01-26" - build-date "2003-01-26" - maintainer "Andy Piper " - distribution xemacs - priority medium - category "standard" - dump nil - description "Integrated Development Environment for Java." - filename "jde-1.45-pkg.tar.gz" - md5sum "64c39644d4e12e053aa0eb982d473405" - size 2403338 - provides (beanshell efc jde-ant jde-bug jde-checkstyle jde-compat jde-compile jde-complete jde-db jde-dbo jde-dbs jde-ejb jde-gen jde-help jde-imenu jde-import jde-java-font-lock jde-java-grammar jde-javadoc-gen jde-javadoc jde-jdb jde-make jde-open-source jde-package jde-parse-class jde-parse jde-run jde-setnu jde-stat jde-util jde-which-method jde-widgets jde-wiz jde-xref jde tree-widget) - requires (jde cc-mode semantic debug speedbar edit-utils eterm mail-lib xemacs-base xemacs-devel eieio elib sh-script fsf-compat) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(fsf-compat - (standards-version 1.1 - version "1.12" - author-version "21.4" - date "2003-01-13" - build-date "2003-01-13" - maintainer "XEmacs Development Team " - distribution xemacs - priority high - category "standard" - dump nil - description "FSF Emacs compatibility files." - filename "fsf-compat-1.12-pkg.tar.gz" - md5sum "43183434592aed9a96e38ab48585b5fd" - size 21442 - provides (overlay thingatpt timer x-popup-menu goto-addr) - requires (xemacs-base) - type single -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(edit-utils - (standards-version 1.1 - version "2.02" - author-version "21.4" - 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.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 -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(skk - (standards-version 1.1 - version "1.23" - author-version "10.62a" - date "2002-09-25" - build-date "2002-09-25" - maintainer "XEmacs Development Team " - distribution mule - priority medium - category "mule" - dump nil - description "MULE: Japanese Language Input Method." - filename "skk-1.23-pkg.tar.gz" - md5sum "dc35f20896a56c8cf2e7ba16b15e453b" - size 1506691 - provides (skk-auto skk-comp skk-cursor skk-develop skk-foreword skk-gadget skk-isearch skk-kakasi skk-kcode skk-leim skk-look skk-num skk-obsolete skk-server skk-tut skk-vars skk-viper skk vip) - requires (viper mule-base elib xemacs-base apel) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(ps-print - (standards-version 1.1 - version "1.08" - author-version "6.5.6" - date "2002-08-29" - build-date "2002-08-29" - maintainer "XEmacs Development Team " - distribution xemacs - priority medium - category "standard" - dump nil - description "Printing functions and utilities" - filename "ps-print-1.08-pkg.tar.gz" - md5sum "bbfb58fe514cf4bd6fbec2f62c43c823" - size 153729 - provides (lpr ps-bdf ps-mule ps-print) - requires (text-modes) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(sieve - (standards-version 1.1 - version "1.13" - author-version "21.4" - date "2003-01-13" - build-date "2003-01-13" - maintainer "Simon Josefsson " - distribution xemacs - priority low - category "standard" - dump nil - description "Manage Sieve email filtering scripts." - filename "sieve-1.13-pkg.tar.gz" - md5sum "a8816344f83e92821989f9298c415038" - size 25479 - provides (sieve sieve-mode sieve-manage) - requires (xemacs-base mail-lib cc-mode sasl) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(mule-ucs - (standards-version 1.1 - version "1.04" - author-version "0.84" - date "2002-03-25" - build-date "2002-03-25" - maintainer "Stephen J. Turnbull " - distribution mule - priority high - category "mule" - dump nil - description "MULE: Extended coding systems (including Unicode) for XEmacs." - filename "mule-ucs-1.04-pkg.tar.gz" - md5sum "08df8359e7999c60f62f6ec92cccc197" - size 1313726 - provides (mccl-font mucs-ccl mucs-error mucs-type mucs mule-uni tae tbl-mg trans-util txt-tbl un-data un-define un-supple un-tools un-trbase unicode unidata utf u-cns-1 u-cns-2 u-cns-3 u-cns-4 u-cns-5 u-cns-6 u-cns-7 uascii ubig5 uetiopic ugb2312 uipa uiscii uiso8859-1 uiso8859-14 uiso8859-15 uiso8859-2 uiso8859-3 uiso8859-4 uiso8859-5 uiso8859-6 uiso8859-7 uiso8859-8 uiso8859-9 ujisx0201 ujisx0208 ujisx0212 uksc5601 usisheng usupple utibetan utis620 uviscii) - requires (mule-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(clearcase - (standards-version 1.0 - version "1.06" - author-version "21.5b6" - date "2002-06-27" - build-date "2002-06-27" - maintainer "Michael Diers " - distribution xemacs - priority low - category "standard" - dump nil - description "New Clearcase Version Control for XEmacs (UNIX, Windows)." - filename "clearcase-1.06-pkg.tar.gz" - md5sum "8f9a2485be7371b78b01b68039d91e09" - size 89634 - provides (clearcase) - requires (dired fsf-compat mail-lib xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(dictionary - (standards-version 1.1 - version "1.12" - author-version "1.8" - 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.12-pkg.tar.gz" - md5sum "717517bbad4e241f18941fd6c289b868" - size 39658 - provides (dictionary connection link) - requires (xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(build - (standards-version 1.0 - version "1.10" - author-version "2.02" - date "2003-01-13" - build-date "2003-01-13" - maintainer "Adrian Aichner " - distribution stable - priority low - category "standard" - dump nil - description "Build XEmacs from within (UNIX, Windows)." - filename "build-1.10-pkg.tar.gz" - md5sum "442bf6d4729f40545d1ee1ad8eca5a93" - size 49207 - provides (build) - requires (xemacs-base pcl-cvs dired w3 prog-modes) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(xslt-process - (standards-version 1.0 - version "1.11" - author-version "1.2.1" - date "2002-10-08" - build-date "2002-10-08" - maintainer "Ovidiu Predescu " - distribution xemacs - priority medium - category "standard" - dump nil - description "XSLT processing support." - filename "xslt-process-1.11-pkg.tar.gz" - md5sum "30273cbe2e90ae703ea410879412e68b" - size 199873 - provides (xslt-process) - requires (jde cc-mode semantic debug speedbar edit-utils eterm mail-lib xemacs-base elib eieio sh-script fsf-compat xemacs-devel) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(eieio - (standards-version 1.1 - version "1.04" - author-version "0.17" - date "2002-12-06" - build-date "2002-12-06" - maintainer "Eric Ludlam " - distribution xemacs - priority low - category "standard" - dump nil - description "Enhanced Implementation of Emacs Interpreted Objects" - filename "eieio-1.04-pkg.tar.gz" - md5sum "6504c1a9225576fd0140cba9962e191b" - size 165595 - provides (call-tree chart compare-strings eieio-base eieio-comp eieio-custom eieio-doc eieio-opt eieio-speedbar eieio-tests eieio linemark tree) - requires (speedbar xemacs-base edebug) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(egg-its - (standards-version 1.1 - version "1.26" - author-version "21.5b1" - date "2001-05-07" - build-date "2001-05-10" - maintainer "XEmacs Development Team " - distribution mule - priority high - category "mule" - dump nil - description "MULE: Wnn (4.2 and 6) support. SJ3 support." - filename "egg-its-1.26-pkg.tar.gz" - md5sum "a69b09fedc9aee8422ed7ed35b6649eb" - size 260749 - provides (egg-cnpinyin egg-cnzhuyin egg-cwnn-leim egg-jisx0201 egg-jsymbol egg-kwnn-leim egg-leim egg-sj3-client egg-sj3-leim egg-sj3 egg-wnn egg) - requires (leim mule-base fsf-compat xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(edict - (standards-version 1.1 - version "1.13" - author-version "0.9.9" - date "2002-01-30" - build-date "2002-02-13" - maintainer "Stephen J. Turnbull " - distribution mule - priority high - category "mule" - dump nil - description "MULE: Lisp Interface to EDICT, Kanji Dictionary" - filename "edict-1.13-pkg.tar.gz" - md5sum "ceef82c336de553e504aa3d216fbd366" - size 95541 - provides (dui-registry dui edict-edit edict-english edict-japanese edict-morphology edict-test edict ts-mode) - requires (mule-base xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(lookup - (standards-version 1.1 - version "1.13" - author-version "1.0" - date "2002-09-25" - build-date "2002-09-25" - maintainer "XEmacs Development Team " - distribution mule - priority high - category "mule" - dump nil - description "MULE: Dictionary support" - filename "lookup-1.13-pkg.tar.gz" - md5sum "cd658e3024349bf67743f6a0cce96be5" - size 214806 - provides (evi-mule evi lookup-content lookup-defs lookup-entry lookup-select lookup-package lookup-select lookup-types lookup-utils lookup-vars lookup-vse lookup ndcookie ndeb ndic ndict ndkks ndmisc ndnmz ndspell ndsrd ndtp sdicf stem) - requires (mule-base cookie lookup) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(leim - (standards-version 1.1 - version "1.20" - author-version "21.4" - date "2003-01-03" - build-date "2003-01-03" - maintainer "XEmacs Development Team " - distribution mule - priority medium - category "mule" - dump nil - description "MULE: Quail. All non-English and non-Japanese language support." - filename "leim-1.20-pkg.tar.gz" - md5sum "33e2983108fb7c55f748b855a40e2a04" - size 1708682 - provides () - requires (leim mule-base fsf-compat xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(locale - (standards-version 1.1 - version "1.20" - author-version "21.4" - date "2002-11-01" - build-date "2002-11-01" - maintainer "XEmacs Development Team " - distribution mule - priority high - category "mule" - dump nil - description "MULE: Localized menubars and localized splash screens." - filename "locale-1.20-pkg.tar.gz" - md5sum "f91249a741613f91f89369eb26458a2d" - size 36563 - provides () - requires (mule-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(mule-base - (standards-version 1.1 - version "1.43" - author-version "21.5b13" - date "2003-05-11" - build-date "2003-05-11" - maintainer "XEmacs Development Team " - distribution mule - priority high - category "mule" - dump nil - description "MULE: Basic Mule support, required for building with Mule." - filename "mule-base-1.43-pkg.tar.gz" - md5sum "5caadede1749519085b30a016c99a7af" - size 444550 - provides (canna-leim canna char-table china-util cyril-util isearch-ext japan-util ccl can-n-egg mule-help) - requires (fsf-compat xemacs-base apel) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(strokes - (standards-version 1.1 - version "1.08" - author-version "21.1" - date "2000-10-05" - build-date "2001-01-15" - maintainer "XEmacs Development Team " - distribution xemacs - priority medium - category "oa" - dump nil - description "Mouse enhancement utility." - filename "strokes-1.08-pkg.tar.gz" - md5sum "c5ab0860ceb23b40798b11a1fa4c0240" - size 43486 - provides (strokes) - requires (text-modes edit-utils mail-lib xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(time - (standards-version 1.1 - version "1.13" - author-version "1.17" - date "2003-05-11" - build-date "2003-05-11" - maintainer "XEmacs Development Team " - distribution xemacs - priority medium - category "standard" - dump nil - description "Display time & date on the modeline." - filename "time-1.13-pkg.tar.gz" - md5sum "6fff6a2cf70c65710a905de3bbbc2e5d" - size 20550 - provides (time) - requires (xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(slider - (standards-version 1.1 - version "1.13" - author-version "0.3x1" - date "2000-10-05" - build-date "2001-01-15" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "oa" - dump nil - description "User interface tool." - filename "slider-1.13-pkg.tar.gz" - md5sum "3fbc16b2caeef30e87969e19efa40f32" - size 12021 - provides (slider color-selector) - requires () - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(sgml - (standards-version 1.1 - version "1.08" - author-version "21.1" - date "2000-10-05" - build-date "2001-01-15" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "oa" - dump nil - description "SGML/Linuxdoc-SGML editing." - filename "sgml-1.08-pkg.tar.gz" - md5sum "bdadf462489fa1540cc56d1c561aaa54" - size 26964 - provides (sgml linuxdoc-sgml) - requires (xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(psgml - (standards-version 1.1 - version "1.40" - author-version "1.3.1" - date "2003-01-19" - build-date "2003-01-19" - maintainer "XEmacs Development Team " - distribution xemacs - priority medium - category "standard" - dump nil - description "Validated HTML/SGML editing." - filename "psgml-1.40-pkg.tar.gz" - md5sum "794e98e745f17aaa5fc3d731a59b9d0d" - size 301036 - provides (iso-sgml psgml-api psgml-charent psgml-debug psgml-dtd psgml-edit psgml-fs psgml-html psgml-info psgml-parse psgml-sysdep psgml-xemacs psgml sgml-mode) - requires (xemacs-base edit-utils edebug xemacs-devel mail-lib fsf-compat eterm sh-script ps-print) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(pc - (standards-version 1.1 - version "1.25" - author-version "21.5b6" - date "2002-06-04" - build-date "2002-06-04" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "PC style interface emulation." - filename "pc-1.25-pkg.tar.gz" - md5sum "03b7fcc55e1ce79a6017cdfa7fd49f3d" - size 17429 - provides (delbs fusion pc-select pending-del s-region) - requires (xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(ispell - (standards-version 1.1 - version "1.24" - author-version "3.2" - date "2002-01-07" - build-date "2002-01-14" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "Spell-checking with GNU ispell." - filename "ispell-1.24-pkg.tar.gz" - md5sum "409bfa4ca95d91bc03d8dcfe7c8f7810" - size 72543 - provides (ispell) - requires () - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(hm--html-menus - (standards-version 1.1 - version "1.21" - author-version "5.9" - 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.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 -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(frame-icon - (standards-version 1.1 - version "1.09" - author-version "21.1" - date "1998-07-14" - build-date "2001-01-15" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "oa" - dump nil - description "Set up mode-specific icons for each frame under XEmacs" - filename "frame-icon-1.09-pkg.tar.gz" - md5sum "91922e43447422f175065428367fb00b" - size 33436 - provides (forms forms-mode) - requires () - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(forms - (standards-version 1.1 - version "1.14" - author-version "2.37" - date "2002-01-07" - build-date "2002-01-14" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "Forms editing support (obsolete, use Widget instead)." - filename "forms-1.14-pkg.tar.gz" - md5sum "c6530292a349a0c567311502c2038270" - size 48263 - provides (forms forms-mode) - requires () - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(calendar - (standards-version 1.1 - version "1.19" - author-version "21.4" - date "2002-09-26" - build-date "2002-09-26" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "Calendar and diary support." - filename "calendar-1.19-pkg.tar.gz" - md5sum "f41fe8405fc58fefe03fef27428223fe" - size 252793 - provides (appt cal-china cal-coptic cal-dst cal-french cal-hebrew cal-islam cal-iso cal-japanese cal-julian cal-mayan cal-move cal-persia cal-tex cal-x cal-xemacs calendar diary-lib holidays lunar solar) - requires (xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(calc - (standards-version 1.1 - version "1.23" - author-version "2.02fX3" - date "2002-05-09" - build-date "2002-05-10" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "Emacs calculator" - filename "calc-1.23-pkg.tar.gz" - md5sum "e66651dacc67325f6e6d033f80f2e989" - size 1615158 - provides (calc-ext calc-macs calc) - requires (xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(speedbar - (standards-version 1.1 - version "1.26" - author-version "0.14beta4" - date "2003-01-03" - build-date "2003-01-03" - maintainer "Eric M. Ludlam " - distribution xemacs - priority low - category "standard" - dump nil - description "Provides a separate frame with convenient references." - filename "speedbar-1.26-pkg.tar.gz" - md5sum "1bcc0c31772870347b33fed82da4dc91" - size 163116 - provides (bigclock dframe rpm sb-ant sb-gud sb-html sb-image sb-info sb-rmail sb-texinfo sb-w3 speedbar) - requires (xemacs-base edebug) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(pcomplete - (standards-version 1.1 - version "1.02" - author-version "1.1.6" - date "2002-10-14" - build-date "2002-10-14" - maintainer "John Wiegley " - distribution xemacs - priority medium - category "standard" - dump nil - description "Provides programmatic completion." - filename "pcomplete-1.02-pkg.tar.gz" - md5sum "badc7fe7baa939025c954e37168a8157" - size 37301 - provides (pcomplete) - requires (sh-script xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(eshell - (standards-version 1.1 - version "1.05" - author-version "2.4.1" - date "2002-12-06" - build-date "2002-12-06" - maintainer "John Wiegley " - distribution xemacs - priority medium - category "standard" - dump nil - description "Command shell implemented entirely in Emacs Lisp" - filename "eshell-1.05-pkg.tar.gz" - md5sum "657a26052b757a3caeb3a8f5256bfa64" - size 231854 - provides (em-alias em-banner em-basic em-cmpl em-dirs em-glob em-hist em-ls em-pred em-prompt em-rebind em-script em-smart em-term em-unix em-xtra esh-arg esh-cmd esh-ext esh-io esh-maint esh-mode esh-module esh-opt esh-proc esh-test esh-toggle esh-util esh-var eshell) - requires (xemacs-base eterm) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(view-process - (standards-version 1.1 - version "1.12" - author-version "2.4" - date "2002-08-26" - build-date "2002-08-26" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "A Unix process browsing tool." - filename "view-process-1.12-pkg.tar.gz" - md5sum "5259a3dbaa145eba1795d9b481589833" - size 60436 - provides (view-process-mode) - requires (xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(os-utils - (standards-version 1.1 - version "1.31" - author-version "21.4" - 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.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 -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(ilisp - (standards-version 1.1 - version "1.32" - author-version "5.12.0" - date "2003-05-02" - build-date "2003-05-02" - maintainer "ilisp Maintainers " - distribution xemacs - priority low - category "standard" - dump nil - description "Front-end for Inferior Lisp." - filename "ilisp-1.32-pkg.tar.gz" - md5sum "b862aeb9131e1c51272b3fddfc79f323" - size 345070 - provides (bridge comint-ipc completer ilcompat compat-fsf18 compat-fsf-19 compat-fsf-20 ilisp-chs ilisp-cl-easy-menu ilisp-ext ilisp-lw ilisp-key ilisp-menu ilisp-mnb ilisp-scheme-easy-menu ilisp il-luc19 il-luc19) - requires (xemacs-base mail-lib fsf-compat eterm sh-script) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(igrep - (standards-version 1.1 - version "1.10" - author-version "2.95" - date "2002-10-29" - build-date "2002-10-29" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "Enhanced front-end for Grep." - filename "igrep-1.10-pkg.tar.gz" - md5sum "ab371bae5cee68fb53afd5fd737cd462" - size 16903 - provides (igrep) - requires (dired xemacs-base efs) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(eterm - (standards-version 1.1 - version "1.13" - author-version "21.1" - date "2000-10-05" - build-date "2001-01-15" - maintainer "XEmacs Development Team " - distribution xemacs - priority medium - category "os" - dump nil - description "Terminal emulation." - filename "eterm-1.13-pkg.tar.gz" - md5sum "ebd64834d12a2a3fc04bbb6f4dd836fa" - size 109184 - provides (eterm) - requires (xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(viper - (standards-version 1.1 - version "1.36" - author-version "3.09" - date "2003-05-19" - build-date "2003-05-19" - maintainer "Michael Kifer " - distribution xemacs - priority low - category "standard" - dump nil - description "VI emulation support." - filename "viper-1.36-pkg.tar.gz" - md5sum "26b328fcd02c52acbf61bdc502daa489" - size 329897 - provides (viper-cmd viper-ex viper-init viper-keym viper-macs viper-mous viper-util viper) - requires (xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(tpu - (standards-version 1.1 - version "1.12" - author-version "4.2X" - date "2000-10-05" - build-date "2001-01-15" - maintainer "Kevin Oberman " - distribution xemacs - priority medium - category "wp" - dump nil - description "DEC EDIT/TPU support." - filename "tpu-1.12-pkg.tar.gz" - md5sum "8ee6ca98afc9c18a1df013065c430f5e" - size 58850 - provides (tpu) - requires () - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(textools - (standards-version 1.1 - version "1.14" - author-version "21.4" - date "2003-01-13" - build-date "2003-01-13" - maintainer "XEmacs Development Team " - distribution xemacs - priority medium - category "standard" - dump nil - description "Miscellaneous TeX support." - filename "textools-1.14-pkg.tar.gz" - md5sum "baaa68caca74c6cc21f99798c0e8e0e5" - size 79510 - provides (bib-mode bibtex refer-to-bibtex) - requires (xemacs-base) - type single -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(texinfo - (standards-version 1.1 - version "1.24" - author-version "21.4" - date "2003-04-26" - build-date "2003-04-26" - maintainer "XEmacs Development Team " - distribution xemacs - priority high - category "standard" - dump nil - description "XEmacs TeXinfo support." - filename "texinfo-1.24-pkg.tar.gz" - md5sum "76c161778c926f90312f1596e75a9d76" - size 133715 - provides (makeinfo tex-mode texinfmt texinfo texnfo-tex texnfo-upd) - requires (xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(reftex - (standards-version 1.1 - version "1.28" - author-version "4.19" - date "2002-08-29" - build-date "2002-08-29" - maintainer "Carsten Dominik " - distribution xemacs - priority medium - category "wp" - dump nil - description "Emacs support for LaTeX cross-references, citations.." - filename "reftex-1.28-pkg.tar.gz" - md5sum "8bf789e67715eb6eb77bec7cc25e37ed" - size 340634 - provides (reftex-auc reftex-cite reftex-dcr reftex-vcr reftex-global reftex-index reftex-parse reftex-ref reftex-sel reftex-toc reftex-vars reftex) - requires (fsf-compat xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(edt - (standards-version 1.1 - version "1.12" - author-version "21.5b1" - date "2001-07-14" - build-date "2001-07-15" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "DEC EDIT/EDT emulation." - filename "edt-1.12-pkg.tar.gz" - md5sum "0d7649d0f65d9de732918d756f5cf48b" - size 62441 - provides (edt) - requires (xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(crisp - (standards-version 1.1 - version "1.12" - author-version "1.34" - date "1998-08-18" - build-date "2001-01-15" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "wp" - dump nil - description "Crisp/Brief emulation." - filename "crisp-1.12-pkg.tar.gz" - md5sum "30308c6e5fb14f621d53046894c8c180" - size 10075 - provides (crisp scroll-lock) - requires () - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(auctex - (standards-version 1.1 - version "1.35" - author-version "11.13" - date "2003-01-03" - build-date "2003-01-03" - maintainer "XEmacs Development Team " - distribution xemacs - priority medium - category "standard" - dump nil - description "Basic TeX/LaTeX support." - filename "auctex-1.35-pkg.tar.gz" - md5sum "168e82155e152dab8c7c913bc9a4788b" - size 406466 - provides (auc-old auc-tex bib-cite font-latex latex multi-prompt tex-buf tex-info tex-jp tex-mik tex-site tex texmathp) - requires (xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(vhdl - (standards-version 1.1 - version "1.17" - author-version "3.31.20" - 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.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 -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(x-symbol - (standards-version 1.1 - 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.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 -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(vc - (standards-version 1.1 - version "1.37" - author-version "21.4" - date "2003-01-18" - build-date "2003-01-18" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "Version Control for Free systems." - filename "vc-1.37-pkg.tar.gz" - md5sum "a80fd60632202fd0fe566215e8c89451" - size 93512 - provides (vc vc-hooks) - requires (dired xemacs-base vc mail-lib ediff) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(vc-cc - (standards-version 1.1 - version "1.21" - author-version "21.5b6" - date "2002-06-04" - build-date "2002-06-04" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "Version Control for ClearCase (UnFree) systems." - filename "vc-cc-1.21-pkg.tar.gz" - md5sum "eb7ad3f9407b32509fa95fa272476b7d" - size 94556 - provides (vc-cc vc-cc-hooks) - requires (dired xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(sh-script - (standards-version 1.1 - version "1.17" - author-version "2.0e" - date "2003-01-13" - build-date "2003-01-13" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "Support for editing shell scripts." - filename "sh-script-1.17-pkg.tar.gz" - md5sum "919e1c273b0eb05b17795f5f3382ef1c" - size 36945 - provides (sh-script executable) - requires (xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(scheme - (standards-version 1.1 - version "1.13" - author-version "21.4" - date "2003-01-13" - build-date "2003-01-13" - maintainer "Karl M. Hegbloom " - distribution xemacs - priority low - category "standard" - dump nil - description "Front-end support for Inferior Scheme." - filename "scheme-1.13-pkg.tar.gz" - md5sum "570e81d6079fb548b0b52d0e1f68aae2" - size 37048 - provides (scheme xscheme cmuscheme cmuscheme48) - requires (xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(prog-modes - (standards-version 1.1 - version "1.79" - author-version "21.4" - 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.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 -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(idlwave - (standards-version 1.1 - version "1.28" - author-version "4.15" - date "2003-01-13" - build-date "2003-01-13" - maintainer "Carsten Dominik " - distribution xemacs - priority medium - category "standard" - dump nil - description "Editing and Shell mode for the Interactive Data Language" - filename "idlwave-1.28-pkg.tar.gz" - md5sum "1e970d93e177fbdd3dff8d941bcc2dd0" - size 404471 - provides (idlw-rinfo idlwave-rinfo idlw-shell idlwave-shell idlw-toolbar idlwave-toolbar idlwave) - requires (fsf-compat xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(emerge - (standards-version 1.1 - version "1.09" - author-version "21.1" - date "2000-10-05" - build-date "2001-01-15" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "prog" - dump nil - description "Another interface over GNU patch." - filename "emerge-1.09-pkg.tar.gz" - md5sum "231c8120d60da2c9ddd856510da2491c" - size 61043 - provides (emerge) - requires () - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(ediff - (standards-version 1.1 - version "1.47" - author-version "2.75" - date "2003-05-19" - build-date "2003-05-19" - maintainer "Michael Kifer " - distribution xemacs - priority medium - category "standard" - dump nil - description "Interface over GNU patch." - filename "ediff-1.47-pkg.tar.gz" - md5sum "32276e3b47bb3bf1e461c7271091bbab" - size 305650 - provides (ediff-diff ediff-help ediff-hook ediff-init ediff-merg ediff-mult ediff-ptch ediff-tbar ediff-util ediff-vers ediff-wind ediff) - requires (pcl-cvs elib dired xemacs-base edebug prog-modes) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(debug - (standards-version 1.1 - version "1.16" - author-version "21.4" - date "2002-09-25" - build-date "2002-09-25" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "GUD, gdb, dbx debugging support." - filename "debug-1.16-pkg.tar.gz" - md5sum "1450bf0762934d079c1287d8baa5859c" - size 107641 - provides (dbx debug-toolbar gdb-highlight gdb gdbsrc gud history) - requires (xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(c-support - (standards-version 1.1 - version "1.16" - author-version "21.1" - date "2000-10-05" - build-date "2001-01-15" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "prog" - dump nil - description "Basic single-file add-ons for editing C code." - filename "c-support-1.16-pkg.tar.gz" - md5sum "047accf51457a041bf920c9563de1bf6" - size 70393 - provides (c-comment-edit cmacexp ctypes hideif hideshow) - requires (cc-mode xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(ada - (standards-version 1.1 - version "1.13" - author-version "2.27" - date "2003-01-13" - build-date "2003-01-13" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "Ada language support." - filename "ada-1.13-pkg.tar.gz" - md5sum "2bed65b1357b24d371f27e4cca3fe352" - size 55694 - provides (ada-mode ada-stmt) - requires (xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(cc-mode - (standards-version 1.1 - version "1.33" - author-version "5.28" - date "2003-01-13" - build-date "2003-01-13" - maintainer "Martin Stjernholm " - distribution xemacs - priority medium - category "standard" - dump nil - description "C, C++ and Java language support." - filename "cc-mode-1.33-pkg.tar.gz" - md5sum "c711a14526fe18470934455f65c689d2" - size 261483 - provides (cc-bytecomp cc-align cc-cmds cc-compat cc-defs cc-engine cc-guess cc-langs cc-lobotomy cc-menus cc-mode-19 cc-mode cc-styles cc-vars) - requires (xemacs-base mail-lib) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(semantic - (standards-version 1.1 - version "1.17" - author-version "1.4.2" - date "2003-01-13" - build-date "2003-01-13" - maintainer "Eric M. Ludlam " - distribution xemacs - priority low - category "standard" - dump nil - description "Semantic bovinator (Yacc/Lex for XEmacs). Includes Senator." - filename "semantic-1.17-pkg.tar.gz" - md5sum "6c374b18834351d2939683c5c62b44a6" - size 443557 - provides (document-vars document semantic-analyze semantic-bnf semantic-c semantic-cb semantic-chart semantic-ctxt semantic-el semantic-example semantic-ia-sb semantic-ia semantic-imenu semantic-java semantic-load semantic-make semantic-sb semantic-scm semantic-skel semantic-texi semantic-util-modes semantic-util semantic semanticdb senator sformat working) - requires (eieio xemacs-base xemacs-devel edit-utils speedbar texinfo fsf-compat cc-mode edebug) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(misc-games - (standards-version 1.1 - version "1.16" - author-version "21.4" - date "2002-12-06" - build-date "2002-12-06" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "Other amusements and diversions." - filename "misc-games-1.16-pkg.tar.gz" - md5sum "2aaccb449220bcd0388165e07592764e" - size 166197 - provides (decipher gomoku hanoi life morse rot13) - requires (xemacs-base) - type single -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(mine - (standards-version 1.1 - version "1.14" - author-version "1.9" - date "2000-10-05" - build-date "2001-01-15" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "games" - dump nil - description "Minehunt Game." - filename "mine-1.14-pkg.tar.gz" - md5sum "ebe471b68642906786db139d402002c7" - size 66727 - provides (xmine) - requires (xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(games - (standards-version 1.1 - version "1.14" - author-version "1.04" - date "2003-06-15" - build-date "2003-06-15" - maintainer "Glynn Clements " - distribution xemacs - priority low - category "standard" - dump nil - description "Tetris, Sokoban, and Snake." - filename "games-1.14-pkg.tar.gz" - md5sum "5c00d86c1f959d32bf12da6f78fd1fcf" - size 37132 - provides (gamegrid snake tetris sokoban) - requires (xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(cookie - (standards-version 1.1 - version "1.14" - author-version "21.5b5" - date "2002-03-25" - build-date "2002-03-25" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "Spook and Yow (Zippy quotes)." - filename "cookie-1.14-pkg.tar.gz" - md5sum "50581960785fb3949faabaae49896c32" - size 34543 - provides (cookie1 yow) - requires (xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(bbdb - (standards-version 1.1 - version "1.23" - author-version "2.34" - date "2003-05-18" - build-date "2003-05-18" - maintainer "Ronan Waide " - distribution xemacs - priority medium - category "standard" - dump nil - description "The Big Brother Data Base" - filename "bbdb-1.23-pkg.tar.gz" - md5sum "6cced769e1bd48d5a571b654958cd35d" - size 374355 - provides (bbdb-com bbdb-ftp bbdb-gnus bbdb-gui bbdb-hooks bbdb-merge bbdb-mhe bbdb-migrate bbdb-print bbdb-reportmail bbdb-rmail bbdb-sc bbdb-snarf bbdb-srv bbdb-vm bbdb-w3 bbdb-whois bbdb-xemacs bbdb) - requires (bbdb edit-utils gnus mh-e rmail supercite vm tm apel mail-lib xemacs-base w3 fsf-compat eterm sh-script net-utils os-utils) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(zenirc - (standards-version 1.1 - version "1.13" - author-version "2.112" - date "2002-01-07" - build-date "2002-01-14" - maintainer "XEmacs Development Team " - distribution xemacs - priority medium - category "standard" - dump nil - description "ZENIRC IRC Client." - filename "zenirc-1.13-pkg.tar.gz" - md5sum "38200c80672a32056426ed32c09473cf" - size 276760 - provides (zenirc-18 zenirc-8ball zenirc-away zenirc-bork zenirc-color zenirc-command-queue zenirc-complete zenirc-ctcp-flood zenirc-dcc zenirc-doto zenirc-fill zenirc-finnish zenirc-format zenirc-fortran zenirc-french zenirc-history zenirc-ignore zenirc-iwantop zenirc-klingon zenirc-latin zenirc-meditate zenirc-netsplit zenirc-notify zenirc-oink zenirc-ojnk zenirc-pjg zenirc-popup zenirc-random-away zenirc-random-nick zenirc-signal zenirc-stamp zenirc-swedish zenirc-trigger zenirc-yow-filter zenirc-yow zenirc) - requires (zenirc) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(mew - (standards-version 1.1 - version "1.17" - author-version "1.94.2" - date "2002-03-25" - build-date "2002-03-25" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "Messaging in an Emacs World." - filename "mew-1.17-pkg.tar.gz" - md5sum "03fa0583b534322d0375901796d22ec5" - size 654737 - provides (mew-addrbook mew-attach mew-bq mew-cache mew-complete mew-decode mew-demo mew-draft mew-encode mew-env mew-ext mew-fib mew-func mew-header mew-highlight mew-lang-jp mew-mark mew-message mew-mime mew-minibuf mew-mule mew-mule0 mew-mule2 mew-mule3 mew-os2 mew-pgp mew-pick mew-refile mew-scan mew-sort mew-summary mew-syntax mew-temacs mew-unix mew-vars mew-virtual mew-win32 mew-xemacs mew) - requires (mew w3 efs mail-lib xemacs-base fsf-compat) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(tm - (standards-version 1.1 - version "1.36" - author-version "21.5b13" - date "2003-05-14" - build-date "2003-05-14" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "Emacs MIME support. Not needed for gnus >= 5.8.0" - filename "tm-1.36-pkg.tar.gz" - md5sum "03830180796f04f085bcec5a62e2d17a" - size 334020 - provides (char-util cless gnus-art-mime gnus-charset gnus-mime gnus-sum-mime latex-math-symbol mel-b mel-g mel-q mel-u mel message-mime mime-setup mu-bbdb mu-cite range sc-setup signature texi-util tl-atype tl-list tl-misc tl-num tl-seq tl-str tm-bbdb tm-def tm-edit-mc tm-edit tm-ew-d tm-ew-e tm-file tm-ftp tm-html tm-image tm-latex tm-mail tm-mh-e tm-parse tm-partial tm-pgp tm-play tm-rmail tm-setup tm-tar tm-text tm-view tm-vm tmh-comp) - requires (gnus mh-e rmail vm mailcrypt mail-lib apel xemacs-base fsf-compat sh-script net-utils) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(gnus - (standards-version 1.1 - version "1.71" - author-version "5.10.2" - date "2003-05-18" - build-date "2003-05-18" - maintainer "Steve Youngs " - distribution xemacs - priority medium - category "standard" - dump nil - description "The Gnus Newsreader and Mailreader." - filename "gnus-1.71-pkg.tar.gz" - md5sum "87a26e70ef2632dc11831964c5b9267b" - size 3282718 - provides (binhex canlock compface deuglify earcon flow-fill format-spec gnus-agent gnus-art gnus-async gnus-audio gnus-bcklg gnus-cache gnus-cite gnus-cus gnus-delay gnus-demon gnus-diary gnus-dired gnus-draft gnus-dup gnus-eform gnus-ems gnus-fun gnus-gl gnus-group gnus-int gnus-kill gnus-logic gnus-mh gnus-ml gnus-mlspl gnus-move gnus-msg gnus-nocem gnus-picon gnus-range gnus-registry gnus-salt gnus-score gnus-setup gnus-sieve gnus-soup gnus-spec gnus-srvr gnus-start gnus-sum gnus-topic gnus-undo gnus-util gnus-uu gnus-vm gnus-win gnus-xmas gnus ietf-drums imap mail-parse mail-prsvr mail-source mailcap message messagexmas messcompat mm-bodies mm-decode mm-encode mm-extern mm-partial mm-url mm-util mm-uu mm-view mml-sec mml-smime mml mml1991 mml2015 nnagent nnbabyl nndb nndiary nndir nndoc nndraft nneething nnfolder nngateway nnheader nnheaderxm nnimap nnkiboze nnlistserv nnmail nnmaildir nnmbox nnmh nnml nnnil nnoo nnrss nnslashdot nnsoup nnspool nntp nnultimate nnvirtual nnwarchive nnweb nnwfm parse-time qp rfc1843 rfc2045 rfc2047 rfc2231 score-mode smiley smime spam-report spam-stat spam time-date utf7 uudecode webmail yenc gnus-idna gpg-ring gpg hashcash vcard) - requires (gnus w3 mh-e mailcrypt rmail eterm mail-lib xemacs-base fsf-compat ecrypto tm apel pgg net-utils sh-script os-utils dired sieve sasl) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(rmail - (standards-version 1.1 - version "1.13" - author-version "21.5b4" - date "2002-01-13" - build-date "2002-01-14" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "An obsolete Emacs mailer." - filename "rmail-1.13-pkg.tar.gz" - md5sum "4da12b01ea3735412f95edeb2a2bd0bd" - size 96265 - provides (rmail-kill rmail-xemacs rmail rmailsort) - requires (tm apel mail-lib xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(mailcrypt - (standards-version 1.1 - version "2.12" - author-version "3.5.8" - date "2002-10-07" - build-date "2002-10-07" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "Support for messaging encryption with PGP." - filename "mailcrypt-2.12-pkg.tar.gz" - md5sum "a82276fc399b6a72d8769d6e3bcc7e41" - size 153873 - provides (expect mailcrypt) - requires (mail-lib fsf-compat xemacs-base cookie gnus mh-e rmail vm) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(supercite - (standards-version 1.1 - version "1.19" - author-version "3.55x3" - date "2002-01-07" - build-date "2002-01-14" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "An Emacs citation tool for News & Mail messages." - filename "supercite-1.19-pkg.tar.gz" - md5sum "8f6767ea4e03306d1e5553501ed7cd2e" - size 100881 - provides (supercite) - requires (mail-lib xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(mh-e - (standards-version 1.1 - version "1.23" - author-version "7.3" - date "2003-05-19" - build-date "2003-05-19" - maintainer "Steve Youngs " - distribution xemacs - priority low - category "standard" - dump nil - description "Front end support for MH." - filename "mh-e-1.23-pkg.tar.gz" - md5sum "d7d99f142797bbe3fba206d6932a1e75" - size 551037 - provides (mh-alias mh-comp mh-customize mh-e mh-funcs mh-identity mh-inc mh-index mh-junk mh-loaddefs mh-mime mh-pick mh-seq mh-speed mh-unit mh-utils mh-xemacs-compat mh-xemacs-icons) - requires (gnus mail-lib xemacs-base speedbar rmail tm apel sh-script fsf-compat xemacs-devel net-utils eterm os-utils) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(gnats - (standards-version 1.1 - version "1.15" - author-version "3.101" - date "2002-06-27" - build-date "2002-06-27" - maintainer "XEmacs Development Team " - distribution xemacs - priority high - category "standard" - dump nil - description "XEmacs bug reports." - filename "gnats-1.15-pkg.tar.gz" - md5sum "9503a79e2e396eb13151aec7eadf561b" - size 189524 - provides (gnats gnats-admin send-pr) - requires (mail-lib xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(footnote - (standards-version 1.1 - version "1.15" - author-version "0.18x" - date "2002-04-24" - build-date "2002-04-24" - maintainer "SL Baur " - distribution xemacs - priority low - category "standard" - dump nil - description "Footnoting in mail message editing modes." - filename "footnote-1.15-pkg.tar.gz" - md5sum "1cbe1e587881611006d9a8fc82be3be1" - size 21917 - provides (footnote-cyrillic footnote-greek footnote-han footnote-hebrew footnote-kana footnote) - requires (mail-lib xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(eudc - (standards-version 1.1 - version "1.38" - author-version "1.32" - date "2003-05-18" - build-date "2003-05-18" - maintainer "Oscar Figueiredo " - distribution xemacs - priority low - category "standard" - dump nil - description "Emacs Unified Directory Client (LDAP, PH)." - filename "eudc-1.38-pkg.tar.gz" - md5sum "44f701aa6b6460eb766e994a6f0f3072" - size 79327 - provides (eudc eudc-vars eudc-hotlist eudc-export eudc-bob eudcb-ldap eudcb-ph eudcb-bbdb) - requires (fsf-compat xemacs-base bbdb mail-lib gnus rmail tm apel eterm sh-script net-utils) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(net-utils - (standards-version 1.1 - version "1.32" - author-version "21.4" - date "2003-05-02" - build-date "2003-05-02" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "standard" - dump nil - description "Miscellaneous Networking Utilities." - filename "net-utils-1.32-pkg.tar.gz" - md5sum "0c756dbe87fac94fda8c175283fc7f2c" - size 137374 - provides (ilisp-browse-cltl2 xemacsbug feedmail metamail net-utils rcompile shadowfile webjump webster-www dig dns xml) - requires (bbdb w3 efs mail-lib xemacs-base fsf-compat eterm sh-script gnus rmail tm apel) - type single -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(w3 - (standards-version 1.1 - version "1.28" - author-version "4.0pre47" - date "2003-01-13" - build-date "2003-01-13" - maintainer "XEmacs Development Team " - distribution xemacs - priority high - category "standard" - dump nil - description "A Web browser." - filename "w3-1.28-pkg.tar.gz" - md5sum "67c77722bdb50d6ab6287d3994f91b09" - size 695206 - provides (css devices w3-auto dsssl-flow dsssl font images mm mule-sysdp socks ssl urlauth url-cache url-cookie url-file url-gopher url-gw url-http url-ldap url-mail url-misc url-news url-ns url-parse url-vars url w3-about w3-auto w3-cfg w3-cus w3-display w3-emacs19 w3-e19 w3-e20 w3-elisp w3-emulate w3-forms w3-hot w3-hotindex w3-imap w3-java w3-jscript w3-keyword w3-latex w3-menu w3-mouse w3-parse w3-print w3-props w3-script w3-structure w3-speak w3-style w3-sysdp w3-toolbar w3-vars w3-widget w3-xemacs w3-xemac w3) - requires (w3 mail-lib xemacs-base ecrypto) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(vm - (standards-version 1.1 - version "7.14" - author-version "7.14" - date "2002-06-08" - build-date "2002-06-08" - maintainer "Kyle Jones " - distribution xemacs - priority medium - category "standard" - dump nil - description "An Emacs mailer." - filename "vm-7.14-pkg.tar.gz" - md5sum "18c68c9165f4877a00f0fea395dc4aa3" - size 793198 - provides (tapestry vm-byteopts vm-delete vm-digest vm-easymenu vm-edit vm-folder vm-imap vm-license vm-macro vm-mark vm-menu vm-message vm-mime vm-minibuf vm-misc vm-motion vm-mouse vm-page vm-pop vm-reply vm-save vm-search vm-sort vm-startup vm-summary vm-thread vm-toolbar vm-undo vm-user vm-vars vm vm-version vm-virtual vm-window) - requires (mail-lib xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(sounds-wav - (standards-version 1.1 - version "1.10" - author-version "21.1" - date "2000-05-23" - build-date "2001-01-15" - maintainer "XEmacs Development Team " - distribution xemacs - priority high - category "libs" - dump nil - description "XEmacs Microsoft sound files." - filename "sounds-wav-1.10-pkg.tar.gz" - md5sum "89dff9f3b8e1aaaa19f000035e3aa199" - size 149162 - provides () - requires () - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(sounds-au - (standards-version 1.1 - version "1.10" - author-version "21.1" - date "2000-05-23" - build-date "2001-01-15" - maintainer "XEmacs Development Team " - distribution xemacs - priority high - category "libs" - dump nil - description "XEmacs Sun sound files." - filename "sounds-au-1.10-pkg.tar.gz" - md5sum "256e09c0570a19ae545350681bacaf3e" - size 126306 - provides () - requires () - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(xemacs-devel - (standards-version 1.1 - version "1.55" - author-version "21.4" - date "2003-05-18" - build-date "2003-05-18" - maintainer "XEmacs Development Team " - distribution xemacs - priority medium - category "standard" - dump nil - description "Emacs Lisp developer support." - filename "xemacs-devel-1.55-pkg.tar.gz" - md5sum "6fe0e1b869502c94adaa9e5d6623d5f3" - size 233111 - provides (checkdoc docref eldoc elp eval-expr find-func hide-copyleft ielm patcher pp trace patch-keywords) - requires (xemacs-base ispell mail-lib gnus rmail tm apel sh-script net-utils eterm) - type single -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(tooltalk - (standards-version 1.1 - version "1.13" - author-version "21.1" - date "2000-10-05" - build-date "2001-01-15" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "libs" - dump nil - description "Support for building with Tooltalk." - filename "tooltalk-1.13-pkg.tar.gz" - md5sum "3f01dab216a3bc318d11f362d22ea89c" - size 9301 - provides () - requires () - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(elib - (standards-version 1.1 - version "1.10" - author-version "1.0" - date "2002-01-07" - build-date "2002-01-14" - maintainer "XEmacs Development Team " - distribution xemacs - priority high - category "standard" - dump nil - description "Portable Emacs Lisp utilities library." - filename "elib-1.10-pkg.tar.gz" - md5sum "01deb690554da8c3f7c97e0ae170ae69" - size 73309 - provides (avltree bintree cookie dll elib-node queue-f queue-m read stack-f stack-m string) - requires () - type single -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(edebug - (standards-version 1.1 - version "1.18" - author-version "21.4" - 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.18-pkg.tar.gz" - md5sum "ea33ebf474676aff1a782fa9abc0b958" - size 114099 - provides (edebug cl-read cust-print eval-reg cl-specs) - requires (xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(Sun - (standards-version 1.1 - version "1.13" - author-version "21.1" - date "1998-07-25" - build-date "2001-01-15" - maintainer "XEmacs Development Team " - distribution xemacs - priority low - category "libs" - dump nil - description "Support for Sparcworks." - filename "Sun-1.13-pkg.tar.gz" - md5sum "455b7e1c3564563687e36ab53352ba76" - size 63836 - provides (sccs eos-browser eos-common eos-debugger eos-debugger eos-editor eos-init eos-load eos-menubar eos-toolbar sunpro) - requires (cc-mode xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(apel - (standards-version 1.1 - version "1.26" - author-version "10.2" - date "2003-01-03" - build-date "2003-01-03" - maintainer "XEmacs Development Team " - distribution xemacs - priority high - category "standard" - dump nil - description "A Portable Emacs Library. Used by XEmacs MIME support." - filename "apel-1.26-pkg.tar.gz" - md5sum "f8981e7b041e5f493d30fbd82b15f831" - size 108340 - provides (atype emu-20 emu-e19 emu-x20 emu-xemacs emu file-detect filename install mule-caesar path-util richtext std11-parse std11 tinyrich) - requires (fsf-compat xemacs-base) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(efs - (standards-version 1.0 - version "1.29" - author-version "1.20" - date "2002-04-24" - build-date "2002-04-24" - maintainer "Mike Sperber " - distribution stable - priority medium - category "standard" - dump nil - description "Treat files on remote systems the same as local files." - filename "efs-1.29-pkg.tar.gz" - md5sum "8c2c6c00cfbdc5f8d64ad54ddfb731df" - size 371905 - provides (efs) - requires (xemacs-base dired) - type regular -)) -)) -;;;@@@ -(package-get-update-base-entry (quote -(dired - (standards-version 1.0 - version "1.13" - author-version "7.10" - date "2003-01-03" - build-date "2003-01-03" - maintainer "Mike Sperber " - distribution stable - priority medium - category "standard" - dump nil - description "Manage file systems." - filename "dired-1.13-pkg.tar.gz" - md5sum "bedcfcb1c8c9829663f0d66d6612154e" - size 196323 - provides (diff dired) - requires (xemacs-base prog-modes) - type regular -)) -)) -;;;@@@ -;; Package Index file ends here diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 2a80629..d5ffb05 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,3 +1,7 @@ +2004-02-02 Vin Shelton + + * XEmacs 21.4.15 is released + 2003-09-03 Vin Shelton * XEmacs 21.4.14 is released diff --git a/lib-src/Makefile.in.in b/lib-src/Makefile.in.in index a90d682..30fbb7b 100644 --- a/lib-src/Makefile.in.in +++ b/lib-src/Makefile.in.in @@ -387,11 +387,11 @@ gnuserv: ${srcdir}/gnuserv.c gnuslib.o ${srcdir}/gnuserv.h ## mmencode binary is used by tm - but is really part of the metamail package ## mmencode.c was merged copy of mmencode.c and codes.c of metamail mmencode : ${srcdir}/mmencode.c - $(CC) $(cflags) ${srcdir}/mmencode.c -o $@ + $(CC) $(cflags) ${srcdir}/mmencode.c $(ldflags) -o $@ ## The timer utility (timer.c, getdate.y) is not used in XEmacs ## because XEmacs provides built-in timer facilities. make-path: ${srcdir}/make-path.c ../src/config.h - $(CC) -Demacs $(cflags) ${srcdir}/make-path.c -o $@ + $(CC) -Demacs $(cflags) ${srcdir}/make-path.c $(ldflags) -o $@ diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b9a715d..30e35ef 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1165,6 +1165,222 @@ * files.el (insert-file-contents-literally): Treat file as binary; call file-name-handlers. [sync with Emacs 20.3.10] +2004-02-02 Vin Shelton + + * XEmacs 21.4.15 is released + +2003-12-12 Katsumi Yamaoka + + * itimer.el (activate-itimer): Modify the itimer timeout value as + if it were begun at the last time when the itimer driver was woken + up. + +2004-01-27 Stephen J. Turnbull + + * specifier.el (Copyright): + Update. + (make-specifier-and-init): + (map-specifier): + (canonicalize-inst-pair): + (canonicalize-spec-list): + (set-specifier): + Synch docstrings to 21.5 where appropriate. + +2004-01-25 Steve Youngs + + * package-get.el (package-get-list-packages-where): New. A + function that allows searching for groups of packages. For + example, find all packages that require the fsf-compat package. + +2004-01-25 Steve Youngs + + The Great PUI Sync. + + * auto-autoloads.el: Regenerated. + + * custom-load.el: Regenerated. + + * dumped-lisp.el (packages-hardcoded-lisp): New. + + * menubar-items.el (menu-max-items): New. + (menu-submenu-max-items): New. + (menu-submenu-name-format): New. + (menu-split-long-menu): New. + (menu-sort-menu): New. + (default-menubar): Sync to 21.5 in regard to the PUI menus. + + * obsolete.el (pui-add-install-directory): Renamed to the more + logical `pui-set-local-package-get-directory'. + (package-get-download-menu): Moved to `package-ui.el' and renamed + to `package-ui-add-download-menu'. + + * package-admin.el (package-admin-install-function-mswindows): + Whitespace clean up. + (package-admin-add-single-file-package): Removed. + (package-admin-default-install-function): Whitespace clean up. + (package-admin-find-top-directory): New. + (package-admin-get-install-dir): Use it. + (package-admin-get-manifest-file): + (package-admin-check-manifest): + (package-admin-add-binary-package): + (package-admin-get-lispdir): + (package-admin-delete-binary-package): + (package-admin): + + * package-get.el (package-get-package-index-file-location): New. + (package-get-install-to-user-init-directory): New. + (package-get-remote): + (package-get-download-sites): + (package-get-pre-release-download-sites): New. + (package-get-site-release-download-sites): New. + (package-get-base-filename): + (package-get-always-update): + (package-get-user-index-filename): Removed. + (package-get-pgp-available-p): New. + (package-get-require-signed-base-updates): + (package-get-was-current): + (package-entries-are-signed): New. + (package-get-continue-update-base): New. + (package-get-download-menu): Removed. + (package-get-require-base): + (package-get-update-base-entry): + (package-get-locate-file): + (package-get-locate-index-file): + (package-get-maybe-save-index): + (package-get-update-base): + (package-get-update-base-from-buffer): + (package-get-update-base-entries): + (package-get-interactive-package-query): + (package-get-update-all): + (package-get-all): + (package-get-dependencies): + (package-get-init-package): + (package-get-info): New. + (package-get): + (package-get-staging-dir): + (package-get-set-version-prop): Removed. + (package-get-installedp): + (package-get-ever-installed-p): + (packages): Removed. + (package-get-custom-groups): Removed. + (package-get-custom): Removed. + (package-get-custom-add-entry): Removed. + + * package-info.el (batch-update-package-info): + + * package-net.el (package-net-batch-generate-bin-ini): + (package-net-update-installed-db): + + * package-ui.el (pui-info-buffer): + (pui-directory-exists): Removed. + (pui-package-dir-list): Removed. + (pui-add-install-directory): Removed. + (package-ui-download-menu): New. + (package-ui-pre-release-download-menu): New. + (package-ui-site-release-download-menu): New. + (pui-set-local-package-get-directory): New. + (pui-package-symbol-char): + (pui-update-package-display): + (pui-toggle-package): + (pui-toggle-package-key): + (pui-toggle-package-delete): + (pui-toggle-package-delete-key): + (pui-toggle-package-event): + (pui-toggle-verbosity-redisplay): + (pui-install-selected-packages): + (pui-add-required-packages): + (pui-help-echo): + (pui-display-info): + (list-packages-mode): + (pui-list-packages): + + * packages.el (packages-compute-package-locations): + (package-require): + (package-delete-name): + (packages-hardcoded-lisp): Removed. + (packages-useful-lisp): Removed. + (packages-unbytecompiled-lisp): Removed. + (packages-find-package-directories): + + Summary: + + Major code clean up of all things PUI. + + Much improved code to determine where packages should be + installed. PUI no longer depends on any packages being + pre-installed to compute where packages are to be installed to. + + The user can specify the location of their package-index file. It + isn't necessary to set this because it has sane defaults. People + who "run-in-place" won't accidently overwrite the CVS + package-index file. See + `package-get-package-index-file-location'. + + PUI will now properly clean up after itself in the event of an + unsuccessful package install. This drastically reduces the number + of "wrong md5sum" FAQs. + + non-Mule XEmacsen can no longer install Mule packages. + + Package management via the custom interface has been removed. + + The PUI related menubar items have been reorganised. + + The PGP verification code has been fixed and the default for + whether or not it is used is automatically computed. + + * update-elc.el ((preloaded-file-list site-load-packages + need-to-dump dumped-exe)): + Just a couple of small changes to allow for + `packages-(hardcoded|useful|unbytecompiled)-lisp' not really + existing anymore. + +2003-12-10 Hrvoje Niksic + + * bytecomp.el (byte-compile-warn-about-unused-variables): Don't + apply `format' to the first argument of byte-compile-warn, it + already calls format. + +2003-12-03 Adrian Aichner + + * files.el (delete-old-versions): Avoid going interactive during + make install when environment variable VERSION_CONTROL is set. + +2003-12-04 Vin Shelton + + * menubar-items.el (menu-item-search): Only bring up search dialog + box if the feature is available and desired. + +2003-11-04 Stephen J. Turnbull + + * about.el (about-personal-info): Fix typo in Tony Rossini's entry. + +2003-11-05 Vin Shelton + + * help.el (Help-prin1-face): + (Help-princ-face): + princ and prin1 are functions and need to be called as such. The + idea for this patch was submitted by Eric Eide . + +2003-10-22 Stephen J. Turnbull + + * about.el (about-xemacs): Give full version and build date. + +2003-09-19 Stephen J. Turnbull + + * win32-native.el (grep-null-device): This XEmacs has null-device. + +2003-09-06 Mike Sperber + + * bytecomp.el (byte-compile-defvar-or-defconst): Actually + implement the specified semantics for `defvar.' + +2003-09-07 Adrian Aichner + + * window-xemacs.el (display-buffer): Fix for `shrink-to-fit' by + Klaus Berndl, calling `shrink-window-if-larger-than-buffer' when + displaying buffer in question. + 2003-09-03 Vin Shelton * XEmacs 21.4.14 is released diff --git a/lisp/about.el b/lisp/about.el index b55845f..3d1d5af 100644 --- a/lisp/about.el +++ b/lisp/about.el @@ -358,11 +358,27 @@ :format "%t" :tag-glyph xemacs-logo) (widget-insert "\n") - (let* ((emacs-short-version (format "%d.%d" + (let* ((emacs-short-version (format "%d.%d.%d" emacs-major-version - emacs-minor-version)) - (emacs-about-version (format "version %s; April 2001" - emacs-short-version))) + emacs-minor-version + emacs-patch-level)) + (emacs-about-version (format "version %s; %s %s" + emacs-short-version + (cdr (assoc (substring emacs-build-time + 4 7) + '(("Jan" . "January") + ("Feb" . "February") + ("Mar" . "March") + ("Apr" . "April") + ("May" . "May") + ("Jun" . "June") + ("Jul" . "July") + ("Aug" . "August") + ("Sep" . "September") + ("Oct" . "October") + ("Nov" . "November") + ("Dec" . "December")))) + (substring emacs-build-time -4)))) (widget-insert (about-center emacs-about-version)) (widget-create 'link :help-echo "What's new in XEmacs" :action 'about-news @@ -1288,7 +1304,7 @@ Assistant Professor of Biostatistics at the University of Washington and the Fred Hutchinson Cancer Research Center. See ") - (about-url-link 'rossini nil "Visit Anothony's home page") + (about-url-link 'rossini nil "Visit Anthony's home page") (widget-insert ".\n")) (slb (widget-insert "\ diff --git a/lisp/auto-autoloads.el b/lisp/auto-autoloads.el index 35096b5..4dc16b8 100644 --- a/lisp/auto-autoloads.el +++ b/lisp/auto-autoloads.el @@ -1446,21 +1446,14 @@ Enable mouse wheel support." t nil) ;;;*** -;;;### (autoloads (package-admin-add-binary-package package-admin-add-single-file-package) "package-admin" "lisp/package-admin.el") - -(autoload 'package-admin-add-single-file-package "package-admin" "\ -Install a single file Lisp package into XEmacs package hierarchy. -`file' should be the full path to the lisp file to install. -`destdir' should be a simple directory name. -The optional `pkg-dir' can be used to override the default package hierarchy -\(car (last late-packages))." t nil) +;;;### (autoloads (package-admin-add-binary-package) "package-admin" "lisp/package-admin.el") (autoload 'package-admin-add-binary-package "package-admin" "\ Install a pre-bytecompiled XEmacs package into package hierarchy." t nil) ;;;*** -;;;### (autoloads (package-get-custom package-get-package-provider package-get package-get-dependencies package-get-all package-get-update-all package-get-delete-package package-get-save-base package-get-update-base-from-buffer package-get-update-base package-get-update-base-entry package-get-require-base package-get-download-menu) "package-get" "lisp/package-get.el") +;;;### (autoloads (package-get-package-provider package-get package-get-list-packages-where package-get-info package-get-dependencies package-get-all package-get-update-all package-get-delete-package package-get-save-base package-get-update-base-from-buffer package-get-update-base package-get-update-base-entry package-get-require-base) "package-get" "lisp/package-get.el") (defvar package-get-base nil "\ List of packages that are installed at this site. @@ -1508,10 +1501,15 @@ recent to least recent -- in other words, the version names don't have to be lexically ordered. It is debatable if it makes sense to have more than one version of a package available.") -(defcustom package-get-download-sites '(("Pre-Releases" "ftp.xemacs.org" "pub/xemacs/beta/experimental/packages") ("xemacs.org" "ftp.xemacs.org" "pub/xemacs/packages") ("ca.xemacs.org (Canada)" "ftp.ca.xemacs.org" "pub/Mirror/xemacs/packages") ("crc.ca (Canada)" "ftp.crc.ca" "pub/packages/editors/xemacs/packages") ("us.xemacs.org (United States)" "ftp.us.xemacs.org" "pub/xemacs/packages") ("ibiblio.org (United States)" "ibiblio.org" "pub/packages/editors/xemacs/packages") ("stealth.net (United States)" "ftp.stealth.net" "pub/mirrors/ftp.xemacs.org/pub/xemacs/packages") ("br.xemacs.org (Brazil)" "ftp.br.xemacs.org" "pub/xemacs/packages") ("at.xemacs.org (Austria)" "ftp.at.xemacs.org" "editors/xemacs/packages") ("be.xemacs.org (Belgium)" "ftp.be.xemacs.org" "xemacs/packages") ("cz.xemacs.org (Czech Republic)" "ftp.cz.xemacs.org" "MIRRORS/ftp.xemacs.org/pub/xemacs/packages") ("dk.xemacs.org (Denmark)" "ftp.dk.xemacs.org" "pub/emacs/xemacs/packages") ("fi.xemacs.org (Finland)" "ftp.fi.xemacs.org" "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/packages") ("fr.xemacs.org (France)" "ftp.fr.xemacs.org" "pub/xemacs/packages") ("pasteur.fr (France)" "ftp.pasteur.fr" "pub/computing/xemacs/packages") ("de.xemacs.org (Germany)" "ftp.de.xemacs.org" "pub/ftp.xemacs.org/tux/xemacs/packages") ("tu-darmstadt.de (Germany)" "ftp.tu-darmstadt.de" "pub/editors/xemacs/packages") ("ie.xemacs.org (Ireland)" "ftp.ie.xemacs.org" "mirrors/ftp.xemacs.org/pub/xemacs/packages") ("it.xemacs.org (Italy)" "ftp.it.xemacs.org" "unix/packages/XEMACS/packages") ("no.xemacs.org (Norway)" "ftp.no.xemacs.org" "pub/xemacs/packages") ("pl.xemacs.org (Poland)" "ftp.pl.xemacs.org" "pub/unix/editors/xemacs/packages") ("ru.xemacs.org (Russia)" "ftp.ru.xemacs.org" "pub/xemacs/packages") ("sk.xemacs.org (Slovakia)" "ftp.sk.xemacs.org" "pub/mirrors/xemacs/packages") ("se.xemacs.org (Sweden)" "ftp.se.xemacs.org" "pub/gnu/xemacs/packages") ("ch.xemacs.org (Switzerland)" "ftp.ch.xemacs.org" "mirror/xemacs/packages") ("uk.xemacs.org (United Kingdom)" "ftp.uk.xemacs.org" "sites/ftp.xemacs.org/pub/xemacs/packages") ("jp.xemacs.org (Japan)" "ftp.jp.xemacs.org" "pub/GNU/xemacs/packages") ("aist.go.jp (Japan)" "ring.aist.go.jp" "pub/text/xemacs/packages") ("asahi-net.or.jp (Japan)" "ring.asahi-net.or.jp" "pub/text/xemacs/packages") ("dti.ad.jp (Japan)" "ftp.dti.ad.jp" "pub/unix/editor/xemacs/packages") ("jaist.ac.jp (Japan)" "ftp.jaist.ac.jp" "pub/GNU/xemacs/packages") ("nucba.ac.jp (Japan)" "mirror.nucba.ac.jp" "mirror/xemacs/packages") ("sut.ac.jp (Japan)" "sunsite.sut.ac.jp" "pub/archives/packages/xemacs/packages") ("kr.xemacs.org (Korea)" "ftp.kr.xemacs.org" "pub/tools/emacs/xemacs/packages") ("za.xemacs.org (South Africa)" "ftp.za.xemacs.org" "mirrorsites/ftp.xemacs.org/packages") ("sa.xemacs.org (Saudi Arabia)" "ftp.sa.xemacs.org" "pub/mirrors/ftp.xemacs.org/xemacs/packages") ("au.xemacs.org (Australia)" "ftp.au.xemacs.org" "pub/xemacs/packages") ("aarnet.edu.au (Australia)" "mirror.aarnet.edu.au" "pub/xemacs/packages") ("nz.xemacs.org (New Zealand)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages")) "*List of remote sites available for downloading packages.\nList format is '(site-description site-name directory-on-site).\nSITE-DESCRIPTION is a textual description of the site. SITE-NAME\nis the internet address of the download site. DIRECTORY-ON-SITE\nis the directory on the site in which packages may be found.\nThis variable is used to initialize `package-get-remote', the\nvariable actually used to specify package download sites." :tag "Package download sites" :type '(repeat (list (string :tag "Name") host-name directory)) :group 'package-get) +(defcustom package-get-package-index-file-location (or (getenv "EMACSPACKAGEPATH") user-init-directory) "*The directory where the package-index file can be found." :type 'directory :group 'package-get) -(autoload 'package-get-download-menu "package-get" "\ -Build the `Add Download Site' menu." nil nil) +(defcustom package-get-install-to-user-init-directory nil "*If non-nil install packages under `user-init-directory'." :type 'boolean :group 'package-get) + +(defcustom package-get-download-sites '(("US (Main XEmacs Site)" "ftp.xemacs.org" "pub/xemacs/packages") ("Australia (aarnet.edu.au)" "mirror.aarnet.edu.au" "pub/xemacs/packages") ("Australia (au.xemacs.org)" "ftp.au.xemacs.org" "pub/xemacs/packages") ("Austria (at.xemacs.org)" "ftp.at.xemacs.org" "editors/xemacs/packages") ("Belgium (be.xemacs.org)" "ftp.be.xemacs.org" "xemacs/packages") ("Brazil (br.xemacs.org)" "ftp.br.xemacs.org" "pub/xemacs/packages") ("Canada (ca.xemacs.org)" "ftp.ca.xemacs.org" "pub/Mirror/xemacs/packages") ("Canada (crc.ca)" "ftp.crc.ca" "pub/packages/editors/xemacs/packages") ("Canada (ualberta.ca)" "sunsite.ualberta.ca" "pub/Mirror/xemacs/packages") ("Czech Republic (cz.xemacs.org)" "ftp.cz.xemacs.org" "MIRRORS/ftp.xemacs.org/pub/xemacs/packages") ("Denmark (dk.xemacs.org)" "ftp.dk.xemacs.org" "pub/emacs/xemacs/packages") ("Finland (fi.xemacs.org)" "ftp.fi.xemacs.org" "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/packages") ("France (fr.xemacs.org)" "ftp.fr.xemacs.org" "pub/xemacs/packages") ("France (mirror.cict.fr)" "mirror.cict.fr" "xemacs/packages") ("France (pasteur.fr)" "ftp.pasteur.fr" "pub/computing/xemacs/packages") ("Germany (de.xemacs.org)" "ftp.de.xemacs.org" "pub/ftp.xemacs.org/tux/xemacs/packages") ("Germany (tu-darmstadt.de)" "ftp.tu-darmstadt.de" "pub/editors/xemacs/packages") ("Ireland (ie.xemacs.org)" "ftp.ie.xemacs.org" "mirrors/ftp.xemacs.org/pub/xemacs/packages") ("Italy (it.xemacs.org)" "ftp.it.xemacs.org" "unix/packages/XEMACS/packages") ("Japan (aist.go.jp)" "ring.aist.go.jp" "pub/text/xemacs/packages") ("Japan (asahi-net.or.jp)" "ring.asahi-net.or.jp" "pub/text/xemacs/packages") ("Japan (dti.ad.jp)" "ftp.dti.ad.jp" "pub/unix/editor/xemacs/packages") ("Japan (jaist.ac.jp)" "ftp.jaist.ac.jp" "pub/GNU/xemacs/packages") ("Japan (jp.xemacs.org)" "ftp.jp.xemacs.org" "pub/GNU/xemacs/packages") ("Japan (nucba.ac.jp)" "mirror.nucba.ac.jp" "mirror/xemacs/packages") ("Japan (sut.ac.jp)" "sunsite.sut.ac.jp" "pub/archives/packages/xemacs/packages") ("Korea (kr.xemacs.org)" "ftp.kr.xemacs.org" "pub/tools/emacs/xemacs/packages") ("New Zealand (nz.xemacs.org)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages") ("Norway (no.xemacs.org)" "ftp.no.xemacs.org" "pub/xemacs/packages") ("Poland (pl.xemacs.org)" "ftp.pl.xemacs.org" "pub/unix/editors/xemacs/packages") ("Russia (ru.xemacs.org)" "ftp.ru.xemacs.org" "pub/xemacs/packages") ("Slovakia (sk.xemacs.org)" "ftp.sk.xemacs.org" "pub/mirrors/xemacs/packages") ("South Africa (za.xemacs.org)" "ftp.za.xemacs.org" "mirrorsites/ftp.xemacs.org/packages") ("Sweden (se.xemacs.org)" "ftp.se.xemacs.org" "pub/gnu/xemacs/packages") ("Switzerland (ch.xemacs.org)" "ftp.ch.xemacs.org" "mirror/xemacs/packages") ("UK (uk.xemacs.org)" "ftp.uk.xemacs.org" "sites/ftp.xemacs.org/pub/xemacs/packages") ("US (ibiblio.org)" "ibiblio.org" "pub/packages/editors/xemacs/packages") ("US (stealth.net)" "ftp.stealth.net" "pub/mirrors/ftp.xemacs.org/pub/xemacs/packages") ("US (unc.edu)" "metalab.unc.edu" "pub/packages/editors/xemacs/packages") ("US (us.xemacs.org)" "ftp.us.xemacs.org" "pub/xemacs/packages") ("US (utk.edu)" "ftp.sunsite.utk.edu" "pub/xemacs/packages")) "*List of remote sites available for downloading packages.\nList format is '(site-description site-name directory-on-site).\nSITE-DESCRIPTION is a textual description of the site. SITE-NAME\nis the internet address of the download site. DIRECTORY-ON-SITE\nis the directory on the site in which packages may be found.\nThis variable is used to initialize `package-get-remote', the\nvariable actually used to specify package download sites." :tag "Package download sites" :type '(repeat (list (string :tag "Name") host-name directory)) :group 'package-get) + +(defcustom package-get-pre-release-download-sites '(("Pre-Releases (Main XEmacs Site)" "ftp.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Australia Pre-Releases (aarnet.edu.au)" "mirror.aarnet.edu.au" "pub/xemacs/beta/experimental/packages") ("Australia Pre-Releases (au.xemacs.org)" "ftp.au.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Austria Pre-Releases (at.xemacs.org)" "ftp.at.xemacs.org" "editors/xemacs/beta/experimentsl/packages") ("Brazil Pre-Releases (br.xemacs.org)" "ftp.br.xemacs.org" "pub/xemacs/xemacs-21.5/experimental/packages") ("Canada Pre-Releases (ca.xemacs.org)" "ftp.ca.xemacs.org" "pub/Mirror/xemacs/beta/experimental/packages") ("Canada Pre-Releases (crc.ca)" "ftp.crc.ca" "pub/packages/editors/xemacs/beta/experimental/packages") ("Canada Pre-Releases (ualberta.ca)" "sunsite.ualberta.ca" "pub/Mirror/xemacs/beta/experimental/packages") ("Czech Republic Pre-Releases (cz.xemacs.org)" "ftp.cz.xemacs.org" "MIRRORS/ftp.xemacs.org/pub/xemacs/xemacs-21.5/experimental/packages") ("Denmark Pre-Releases (dk.xemacs.org)" "ftp.dk.xemacs.org" "pub/emacs/xemacs/beta/experimental/packages") ("Finland Pre-Releases (fi.xemacs.org)" "ftp.fi.xemacs.org" "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/beta/experimental/packages") ("France Pre-Releases (fr.xemacs.org)" "ftp.fr.xemacs.org" "pub/xemacs/beta/experimental/packages") ("France Pre-Releases (mirror.cict.fr)" "mirror.cict.fr" "xemacs/beta/experimental/packages") ("France Pre-Releases (pasteur.fr)" "ftp.pasteur.fr" "pub/computing/xemacs/beta/experimental/packages") ("Germany Pre-Releases (de.xemacs.org)" "ftp.de.xemacs.org" "pub/ftp.xemacs.org/tux/xemacs/beta/experimental/packages") ("Germany Pre-Releases (tu-darmstadt.de)" "ftp.tu-darmstadt.de" "pub/editors/xemacs/beta/experimental/packages") ("Ireland Pre-Releases (ie.xemacs.org)" "ftp.ie.xemacs.org" "mirrors/ftp.xemacs.org/pub/xemacs/beta/experimental/packages") ("Italy Pre-Releases (it.xemacs.org)" "ftp.it.xemacs.org" "unix/packages/XEMACS/beta/experimental/packages") ("Japan Pre-Releases (aist.go.jp)" "ring.aist.go.jp" "pub/text/xemacs/beta/experimental/packages") ("Japan Pre-Releases (asahi-net.or.jp)" "ring.asahi-net.or.jp" "pub/text/xemacs/beta/experimental/packages") ("Japan Pre-Releases (dti.ad.jp)" "ftp.dti.ad.jp" "pub/unix/editor/xemacs/beta/experimental/packages") ("Japan Pre-Releases (jaist.ac.jp)" "ftp.jaist.ac.jp" "pub/GNU/xemacs/beta/experimental/packages") ("Japan Pre-Releases (jp.xemacs.org)" "ftp.jp.xemacs.org" "pub/GNU/xemacs/beta/experimental/packages") ("Japan Pre-Releases (sut.ac.jp)" "sunsite.sut.ac.jp" "pub/archives/packages/xemacs/xemacs-21.5/experimental/packages") ("New Zealand Pre-Releases (nz.xemacs.org)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages") ("Norway Pre-Releases (no.xemacs.org)" "ftp.no.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Poland Pre-Releases (pl.xemacs.org)" "ftp.pl.xemacs.org" "pub/unix/editors/xemacs/beta/experimental/packages") ("Russia Pre-Releases (ru.xemacs.org)" "ftp.ru.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Saudi Arabia Pre-Releases (sa.xemacs.org)" "ftp.sa.xemacs.org" "pub/mirrors/ftp.xemacs.org/xemacs/xemacs-21.5/experimental/packages") ("Slovakia Pre-Releases (sk.xemacs.org)" "ftp.sk.xemacs.org" "pub/mirrors/xemacs/beta/experimental/packages") ("South Africa Pre-Releases (za.xemacs.org)" "ftp.za.xemacs.org" "mirrorsites/ftp.xemacs.org/beta/experimental/packages") ("Sweden Pre-Releases (se.xemacs.org)" "ftp.se.xemacs.org" "pub/gnu/xemacs/beta/experimental/packages") ("Switzerland Pre-Releases (ch.xemacs.org)" "ftp.ch.xemacs.org" "mirror/xemacs/beta/experimental/packages") ("UK Pre-Releases (uk.xemacs.org)" "ftp.uk.xemacs.org" "sites/ftp.xemacs.org/pub/xemacs/beta/experimental/packages") ("US Pre-Releases (ibiblio.org)" "ibiblio.org" "pub/packages/editors/xemacs/beta/experimental/packages") ("US Pre-Releases (stealth.net)" "ftp.stealth.net" "pub/mirrors/ftp.xemacs.org/pub/xemacs/beta/experimental/packages") ("US Pre-Releases (unc.edu)" "metalab.unc.edu" "pub/packages/editors/xemacs/beta/experimental/packages") ("US Pre-Releases (us.xemacs.org)" "ftp.us.xemacs.org" "pub/xemacs/beta/experimental/packages") ("US Pre-Releases (utk.edu)" "ftp.sunsite.utk.edu" "pub/xemacs/beta/experimental/packages")) "*List of remote sites available for downloading \"Pre-Release\" packages.\nList format is '(site-description site-name directory-on-site).\nSITE-DESCRIPTION is a textual description of the site. SITE-NAME\nis the internet address of the download site. DIRECTORY-ON-SITE\nis the directory on the site in which packages may be found.\nThis variable is used to initialize `package-get-remote', the\nvariable actually used to specify package download sites." :tag "Pre-Release Package download sites" :type '(repeat (list (string :tag "Name") host-name directory)) :group 'package-get) + +(defcustom package-get-site-release-download-sites nil "*List of remote sites available for downloading \"Site Release\" packages.\nList format is '(site-description site-name directory-on-site).\nSITE-DESCRIPTION is a textual description of the site. SITE-NAME\nis the internet address of the download site. DIRECTORY-ON-SITE\nis the directory on the site in which packages may be found.\nThis variable is used to initialize `package-get-remote', the\nvariable actually used to specify package download sites." :tag "Site Release Package download sites" :type '(repeat (list (string :tag "Name") host-name directory)) :group 'package-get) (autoload 'package-get-require-base "package-get" "\ Require that a package-get database has been loaded. @@ -1565,6 +1563,71 @@ Uses `package-get-base' to determine just what is required and what package provides that functionality. Returns the list of packages required by PACKAGES." nil nil) +(autoload 'package-get-info "package-get" "\ +Get information about a package. + +Quite similar to `package-get-info-prop', but can retrieve a lot more +information. + +Argument PACKAGE is the name of an XEmacs package (a symbol). It must +be a valid package, ie, a member of `package-get-base'. + +Argument INFORMATION is a symbol that can be any one of: + + standards-version Package system version (not used). + version Version of the XEmacs package. + author-version The upstream version of the package. + date The date the package was last modified. + build-date The date the package was last built. + maintainer The maintainer of the package. + distribution Will always be \"xemacs\" (not used). + priority \"low\", \"medium\", or \"high\" (not used). + category Either \"standard\", \"mule\", or \"unsupported\".. + dump Is the package dumped (not used). + description A description of the package. + filename The filename of the binary tarball of the package. + md5sum The md5sum of filename. + size The size in bytes of filename. + provides A list of symbols that this package provides. + requires A list of packages that this package requires. + type Can be either \"regular\" or \"single-file\". + +If optional argument ARG is non-nil insert INFORMATION into current +buffer at point. This is very useful for doing things like inserting +a maintainer's email address into a mail buffer. + +If optional argument REMOTE is non-nil use a package list from a +remote site. For this to work `package-get-remote' must be non-nil. + +If this function is called interactively it will display INFORMATION +in the minibuffer." t nil) + +(autoload 'package-get-list-packages-where "package-get" "\ +Return a list of packages that fulfill certain criteria. + +Argument ITEM, a symbol, is what you want to check for. ITEM must be a +symbol even when it doesn't make sense to be a symbol (think, searching +maintainers, descriptions, etc). The function will convert the symbol +to a string if a string is what is needed. The downside to this is that +ITEM can only ever be a single word. + +Argument FIELD, a symbol, is the field to check in. You can specify +any one of: + + Field Sane or Allowable Content + description any single word + category `standard' or `mule' + maintainer any single word + build-date yyyy-mm-dd + date yyyy-mm-dd + type `regular' or `single' + requires any package name + provides any symbol + priority `low', `medium', or `high' + +Optional Argument ARG, a prefix arg, insert output at point in the +current buffer." t nil) + (autoload 'package-get "package-get" "\ Fetch PACKAGE from remote site. Optional arguments VERSION indicates which version to retrieve, nil @@ -1577,8 +1640,7 @@ fetched packages should be installed. The value of `package-get-base' is used to determine what files should be retrieved. The value of `package-get-remote' is used to determine -where a package should be retrieved from. The sites are tried in -order so one is better off listing easily reached sites first. +where a package should be retrieved from. Once the package is retrieved, its md5 checksum is computed. If that sum does not match that stored in `package-get-base' for this version @@ -1597,9 +1659,6 @@ Search for a package that provides SYM and return the name and If FORCE-CURRENT is non-nil make sure the database is up to date. This might lead to Emacs accessing remote sites." t nil) -(autoload 'package-get-custom "package-get" "\ -Fetch and install the latest versions of all customized packages." t nil) - ;;;*** ;;;### (autoloads (package-net-update-installed-db package-net-setup-directory) "package-net" "lisp/package-net.el") @@ -1613,13 +1672,22 @@ DESTDIR defaults to the value of `package-net-setup-directory'." nil nil) ;;;*** -;;;### (autoloads (pui-list-packages pui-add-install-directory package-ui-add-site) "package-ui" "lisp/package-ui.el") +;;;### (autoloads (pui-list-packages pui-set-local-package-get-directory package-ui-site-release-download-menu package-ui-pre-release-download-menu package-ui-download-menu package-ui-add-site) "package-ui" "lisp/package-ui.el") (autoload 'package-ui-add-site "package-ui" "\ Add site to package-get-remote and possibly offer to update package list." nil nil) -(autoload 'pui-add-install-directory "package-ui" "\ -Add a new package binary directory to the head of `package-get-remote'. +(autoload 'package-ui-download-menu "package-ui" "\ +Build the `Add Download Site' menu." nil nil) + +(autoload 'package-ui-pre-release-download-menu "package-ui" "\ +Build the 'Pre-Release Download Sites' menu." nil nil) + +(autoload 'package-ui-site-release-download-menu "package-ui" "\ +Build the 'Site Release Download Sites' menu." nil nil) + +(autoload 'pui-set-local-package-get-directory "package-ui" "\ +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 disk." t nil) diff --git a/lisp/bytecomp.el b/lisp/bytecomp.el index cf62f7c..f5be73d 100644 --- a/lisp/bytecomp.el +++ b/lisp/bytecomp.el @@ -1284,7 +1284,7 @@ otherwise pop it") (setq unreferenced (nreverse unreferenced)) (while unreferenced (byte-compile-warn - (format "variable %s bound but not referenced" (car unreferenced))) + "variable %s bound but not referenced" (car unreferenced)) (setq unreferenced (cdr unreferenced))))) @@ -3921,7 +3921,7 @@ If FORM is a lambda or a macro, byte-compile it as a function." ;; `defconst' sets `var' unconditionally. `(setq ,var ,value) ;; `defvar' sets `var' only when unbound. - `(if (not (boundp ',var)) (setq ,var ,value)))) + `(if (not (default-boundp ',var)) (set-default ',var ,value)))) `',var)))) (defun byte-compile-autoload (form) diff --git a/lisp/dumped-lisp.el b/lisp/dumped-lisp.el index 62719a3..c216a48 100644 --- a/lisp/dumped-lisp.el +++ b/lisp/dumped-lisp.el @@ -1,3 +1,11 @@ +(defvar packages-hardcoded-lisp + '( + ;; Nothing at this time + ) + "Lisp packages that are always dumped with XEmacs. +This includes every package that is loaded directly by a package listed +in dumped-lisp.el and is not itself listed.") + (setq preloaded-file-list (assemble-list "backquote" ; needed for defsubst etc. diff --git a/lisp/files.el b/lisp/files.el index 1c2aa6f..18ce0ae 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -198,7 +198,7 @@ nil means make them for files that have some already. ;(defvar dired-kept-versions 2 ; "*When cleaning directory, number of versions to keep.") -(defcustom delete-old-versions nil +(defcustom delete-old-versions (when noninteractive 'leave) "*If t, delete excess backup versions silently. If nil, ask confirmation. Any other value prevents any trimming." :type '(choice (const :tag "Delete" t) diff --git a/lisp/help.el b/lisp/help.el index 1835b7d..3bde4cd 100644 --- a/lisp/help.el +++ b/lisp/help.el @@ -1095,7 +1095,7 @@ part of the documentation of internal subroutines." (princ object) (put-nonduplicable-text-property pos (marker-position standard-output) 'face face buf))) - (t princ object))) + (t (princ object)))) ;; replacement for `prin1' that puts the text in the specified face, ;; if possible @@ -1111,7 +1111,7 @@ part of the documentation of internal subroutines." (prin1 object) (put-nonduplicable-text-property pos (marker-position standard-output) 'face face buf))) - (t prin1 object))) + (t (prin1 object)))) (defvar help-symbol-regexp (let ((sym-char "[+a-zA-Z0-9_:*]") diff --git a/lisp/info.el b/lisp/info.el index 8296b9c..41cfc46 100644 --- a/lisp/info.el +++ b/lisp/info.el @@ -1510,7 +1510,7 @@ versions of NAME. Only the suffixes are tried." (format (cdr (car suff)) file) (concat (cdr (car suff)) " < " file)))) (message "%s..." command) - (call-process shell-file-name nil t nil "-c" command) + (call-process shell-file-name nil t nil shell-command-switch command) (message "") (when visit (setq buffer-file-name file) diff --git a/lisp/itimer.el b/lisp/itimer.el index 705df24..6c2d793 100644 --- a/lisp/itimer.el +++ b/lisp/itimer.el @@ -406,6 +406,14 @@ its FUNCTION will be called when it expires, and so on." (error "itimer named \"%s\" already existing and activated" (itimer-name itimer)))) (let ((inhibit-quit t)) + (if itimer-timer + ;; Modify the itimer timeout value as if it were begun + ;; at the last time when the itimer driver was woken up. + (set-itimer-value + itimer + (+ (itimer-value itimer) + (itimer-time-difference (current-time) + itimer-timer-last-wakeup)))) ;; add the itimer to the global list (setq itimer-list (cons itimer itimer-list)) ;; If the itimer process is scheduled to wake up too late for diff --git a/lisp/menubar-items.el b/lisp/menubar-items.el index 1c410a3..58473b9 100644 --- a/lisp/menubar-items.el +++ b/lisp/menubar-items.el @@ -128,6 +128,95 @@ which will not be used as accelerators." ""))) (t ""))) +(defcustom menu-max-items 25 + "*Maximum number of items in generated menus. +If number of entries in such a menu is larger than this value, split menu +into submenus of nearly equal length (see `menu-submenu-max-items'). If +nil, never split menu into submenus." + :group 'menu + :type '(choice (const :tag "no submenus" nil) + (integer))) + +(defcustom menu-submenu-max-items 20 + "*Maximum number of items in submenus when splitting menus. +We split large menus into submenus of this many items, and then balance +them out as much as possible (otherwise the last submenu may have very few +items)." + :group 'menu + :type 'integer) + +(defcustom menu-submenu-name-format "%-12.12s ... %.12s" + "*Format specification of the submenu name when splitting menus. +Used by `menu-split-long-menu' if the number of entries in a menu is +larger than `menu-menu-max-items'. +This string should contain one %s for the name of the first entry and +one %s for the name of the last entry in the submenu. +If the value is a function, it should return the submenu name. The +function is be called with two arguments, the names of the first and +the last entry in the menu." + :group 'menu + :type '(choice (string :tag "Format string") + (function))) + +(defun menu-split-long-menu (menu) + "Split MENU according to `menu-max-items' and add accelerator specs. + +You should normally use the idiom + +\(menu-split-long-menu (menu-sort-menu menu)) + +See also `menu-sort-menu'." + (let ((len (length menu))) + (if (or (null menu-max-items) + (<= len menu-max-items)) + (submenu-generate-accelerator-spec menu) + (let* ((outer (/ (+ len (1- menu-submenu-max-items)) + menu-submenu-max-items)) + (inner (/ (+ len (1- outer)) outer)) + (result nil)) + (while menu + (let ((sub nil) + (from (car menu))) + (dotimes (foo (min inner len)) + (setq sub (cons (car menu) sub) + menu (cdr menu))) + (setq len (- len inner)) + (let ((to (car sub))) + (setq sub (nreverse sub)) + (setq result + (cons (cons (if (stringp menu-submenu-name-format) + (format menu-submenu-name-format + (menu-item-strip-accelerator-spec + (aref from 0)) + (menu-item-strip-accelerator-spec + (aref to 0))) + (funcall menu-submenu-name-format + (menu-item-strip-accelerator-spec + (aref from 0)) + (menu-item-strip-accelerator-spec + (aref to 0)))) + (submenu-generate-accelerator-spec sub)) + result))))) + (submenu-generate-accelerator-spec (nreverse result)))))) + +(defun menu-sort-menu (menu) + "Sort MENU alphabetically. + +You should normally use the idiom + +\(menu-split-long-menu (menu-sort-menu menu)) + +See also `menu-split-long-menu'." + (sort menu + #'(lambda (a b) (string-lessp (aref a 0) (aref b 0))))) + +(defun menu-item-search () + "Bring up a search dialog if possible and desired, else do interactive search" + (interactive) + (if (should-use-dialog-box-p) + (make-search-dialog) + (isearch-forward))) + (defconst default-menubar ; (purecopy-menubar ;purespace is dead ;; note backquote. @@ -201,7 +290,7 @@ which will not be used as accelerators." ["Select %_All" mark-whole-buffer] ["Select Pa%_ge" mark-page] "----" - ["%_Find..." make-search-dialog] + ["%_Find..." menu-item-search] ["R%_eplace..." query-replace] ["Replace (Rege%_xp)..." query-replace-regexp] ["%_List Matching Lines..." list-matching-lines] @@ -404,23 +493,26 @@ which will not be used as accelerators." ("%_Tools" ("%_Packages" - ("%_Add Download Site" - :filter (lambda (&rest junk) - (submenu-generate-accelerator-spec - (package-get-download-menu)))) + ("%_Set Download Site" + ("%_Official Releases" + :filter (lambda (&rest junk) + (menu-split-long-menu + (submenu-generate-accelerator-spec + (package-ui-download-menu))))) + ("%_Pre-Releases" + :filter (lambda (&rest junk) + (menu-split-long-menu + (submenu-generate-accelerator-spec + (package-ui-pre-release-download-menu))))) + ("%_Site Releases" + :filter (lambda (&rest junk) + (menu-split-long-menu + (submenu-generate-accelerator-spec + (package-ui-site-release-download-menu)))))) + "--:shadowEtchedIn" ["%_Update Package Index" package-get-update-base] ["%_List and Install" pui-list-packages] ["U%_pdate Installed Packages" package-get-update-all] - ;; hack-o-matic, we can't force a load of package-base here - ;; since it triggers dialog box interactions which we can't - ;; deal with while using a menu - ("Using %_Custom" - :filter (lambda (&rest junk) - (if package-get-base - (submenu-generate-accelerator-spec - (cdr (custom-menu-create 'packages))) - '("Please load Package Index")))) - ["%_Help" (Info-goto-node "(xemacs)Packages")]) ("%_Internet" ["Read Mail %_1 (VM)..." vm diff --git a/lisp/mule/mule-charset.el b/lisp/mule/mule-charset.el index 9581696..45bea13 100644 --- a/lisp/mule/mule-charset.el +++ b/lisp/mule/mule-charset.el @@ -289,12 +289,11 @@ DESCRIPTION (string) is the description string of the charset." =gt-pj-11 =gt-pj-k1 =gt-pj-k2 - =big5-cdp japanese-jisx0208 =jis-x0208-1990 + chinese-gb2312 japanese-jisx0212 japanese-jisx0208-1978 - chinese-gb2312 korean-ksc5601 chinese-cns11643-1 chinese-cns11643-2 @@ -305,6 +304,7 @@ DESCRIPTION (string) is the description string of the charset." chinese-cns11643-7 =jis-x0213-1-2000 =jis-x0213-2-2000 + =big5-cdp ;; chinese-gb12345 chinese-isoir165 katakana-jisx0201 @@ -320,18 +320,10 @@ DESCRIPTION (string) is the description string of the charset." arabic-1-column arabic-2-column =gt-pj-1 - chinese-big5-eten-a - chinese-big5-eten-b - chinese-big5 =ucs-radicals - =ucs-radicals@unicode =ucs-bmp-cjk - =ucs-bmp-cjk@unicode =ucs-sip-ext-b - =ucs-sip-ext-b@iso =ruimoku-v6 - ideograph-daikanwa-2 - ideograph-daikanwa =hanziku-1 =hanziku-2 =hanziku-3 @@ -344,6 +336,14 @@ DESCRIPTION (string) is the description string of the charset." =hanziku-10 =hanziku-11 =hanziku-12 + =ucs-radicals@unicode + =ucs-sip-ext-b@iso + chinese-big5-eten-a + chinese-big5-eten-b + chinese-big5 + =ucs-bmp-cjk@unicode + ideograph-daikanwa-2 + ideograph-daikanwa =cbeta ucs-bmp =jef-china3 diff --git a/lisp/obsolete.el b/lisp/obsolete.el index 94f201f..f0d54f5 100644 --- a/lisp/obsolete.el +++ b/lisp/obsolete.el @@ -177,6 +177,8 @@ set Info-directory-list.") "This used to be the name of the user whose init file was read at startup.") (make-obsolete-variable 'init-file-user 'load-user-init-file-p) +(define-obsolete-function-alias 'pui-add-install-directory + 'pui-set-local-package-get-directory) ; misleading name ;;;;;;;;;;;;;;;;;;;;;;;;;;;; hooks (make-compatible-variable 'lisp-indent-hook 'lisp-indent-function) @@ -227,6 +229,9 @@ set Info-directory-list.") ;; Can't make this obsolete. easymenu depends on it. (make-compatible 'add-menu 'add-submenu) +(define-obsolete-function-alias 'package-get-download-menu + 'package-ui-download-menu) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;; minibuffer (define-compatible-function-alias 'read-minibuffer diff --git a/lisp/package-admin.el b/lisp/package-admin.el index 925f6de..efa527a 100644 --- a/lisp/package-admin.el +++ b/lisp/package-admin.el @@ -1,6 +1,7 @@ ;;; package-admin.el --- Installation and Maintenance of XEmacs packages ;; Copyright (C) 1997 by Free Software Foundation, Inc. +;; Copyright (C) 2003, Steve Youngs. ;; Author: SL Baur ;; Keywords: internal @@ -114,25 +115,6 @@ the install directory.") hook is called *before* the package is deleted. The hook function is passed two arguments: the package name, and the install directory.") -;;;###autoload -(defun package-admin-add-single-file-package (file destdir &optional pkg-dir) - "Install a single file Lisp package into XEmacs package hierarchy. -`file' should be the full path to the lisp file to install. -`destdir' should be a simple directory name. -The optional `pkg-dir' can be used to override the default package hierarchy -\(car \(last late-packages))." - (interactive "fLisp File: \nsDestination: ") - (when (null pkg-dir) - (setq pkg-dir (car (last late-packages)))) - (let ((destination (concat pkg-dir "/lisp/" destdir)) - (buf (get-buffer-create package-admin-temp-buffer))) - (call-process "add-little-package.sh" - nil - buf - t - ;; rest of command line follows - package-admin-xemacs file destination))) - (defun package-admin-install-function-mswindows (file pkg-dir buffer) "Install function for mswindows." (let ((default-directory (file-name-as-directory pkg-dir))) @@ -152,80 +134,193 @@ to BUFFER." ;; Don't assume GNU tar. (if (shell-command (concat "gunzip -c " filename " | tar xvf -") buffer) 0 - 1) - )) - -; (call-process "add-big-package.sh" -; nil -; buffer -; t -; ;; rest of command line follows -; package-admin-xemacs file pkg-dir)) - -(defun package-admin-get-install-dir (package pkg-dir &optional mule-related) - "If PKG-DIR is non-nil return that, -else return the current location of the package if it is already installed -or return a location appropriate for the package otherwise." - (if pkg-dir + 1))) + +;; A few things needed by the following 2 functions. +(eval-when-compile + (require 'packages) + (autoload 'package-get-info "package-get") + (autoload 'paths-decode-directory-path "find-paths") + (defvar package-get-install-to-user-init-directory)) + +(defun package-admin-find-top-directory (type &optional user-dir) + "Return the top level directory for a package. + +Argument TYPE is a symbol that determines the type of package we're +trying to find a directory for. + +Optional Argument USER-DIR if non-nil use directories off +`user-init-directory'. This overrides everything except +\"EMACSPACKAGEPATH\". + +This function honours the environment variable \"EMACSPACKAGEPATH\" +and returns directories found there as a priority. If that variable +doesn't exist and USER-DIR is nil, check in the normal places. + +If we still can't find a suitable directory, return nil. + +Possible values for TYPE are: + + std == For \"standard\" packages that go in '/xemacs-packages/' + mule == For \"mule\" packages that go in '/mule-packages/' + site == For \"unsupported\" packages that go in '/site-packages/' + +Note: Type \"site\" is not yet fully supported." + (let* ((env-value (getenv "EMACSPACKAGEPATH")) + top-dir) + ;; First, check the environment var. + (if env-value + (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))) + (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))) + (setq top-dir (car path-list))) + (setq path-list (cdr path-list))))))) + ;; Wasn't in the environment, try `user-init-directory' if + ;; USER-DIR is non-nil. + (if (and user-dir + (not top-dir)) + (cond ((eq type 'std) + (setq top-dir (file-name-as-directory + (expand-file-name "xemacs-packages" user-init-directory)))) + ((eq type 'mule) + (setq top-dir (file-name-as-directory + (expand-file-name "mule-packages" user-init-directory)))))) + ;; Finally check the normal places + (if (not top-dir) + (let ((path-list (nth 1 (packages-find-packages + emacs-roots + (packages-compute-package-locations user-init-directory))))) + (cond ((eq type 'std) + (while path-list + (if (equal (substring (car path-list) -16) + (concat "xemacs-packages" (char-to-string directory-sep-char))) + (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))) + (setq top-dir (car path-list))) + (setq path-list (cdr path-list))))))) + ;; Now return either the directory or nil. + top-dir)) + +(defun package-admin-get-install-dir (package &optional pkg-dir) + "Find a suitable installation directory for a package. + +Argument PACKAGE is the package to find a installation directory for. +Optional Argument PKG-DIR, if non-nil is a directory to use for +installation. + +If PKG-DIR is non-nil and writable, return that. Otherwise check to +see if the PACKAGE is already installed and return that location, if +it is writable. Finally, fall back to the `user-init-directory' if +all else fails. As a side effect of installing packages under +`user-init-directory' these packages become part of `early-packages'." + ;; If pkg-dir specified, return that if writable. + (if (and pkg-dir + (file-writable-p (directory-file-name pkg-dir))) pkg-dir - (let ((package-feature (intern-soft (concat - (symbol-name package) "-autoloads"))) - autoload-dir) - (when (and (not (eq package 'unknown)) - (featurep package-feature) - (setq autoload-dir (feature-file package-feature)) - (setq autoload-dir (file-name-directory autoload-dir)) - (member autoload-dir (append early-package-load-path late-package-load-path))) - ;; Find the corresponding entry in late-package - (setq pkg-dir - (car-safe (member-if (lambda (h) - (string-match (concat "^" (regexp-quote h)) - autoload-dir)) - (append (cdr early-packages) late-packages))))) - (if pkg-dir - pkg-dir - ;; Ok we need to guess - (if mule-related - (package-admin-get-install-dir 'mule-base nil nil) - (if (eq package 'xemacs-base) - (car (last late-packages)) - (package-admin-get-install-dir 'xemacs-base nil nil))))))) - - + ;; If the user want her packages under ~/.xemacs/, do so. + (let ((type (package-get-info package 'category))) + (if package-get-install-to-user-init-directory + (progn + (cond ((equal type "standard") + (setq pkg-dir (package-admin-find-top-directory 'std 'user-dir))) + ((equal type "mule") + (setq pkg-dir (package-admin-find-top-directory 'mule 'user-dir)))) + pkg-dir) + ;; Maybe the package has been installed before, if so, return + ;; that directory. + (let ((package-feature (intern-soft (concat + (symbol-name package) "-autoloads"))) + autoload-dir) + (when (and (not (eq package 'unknown)) + (featurep package-feature) + (setq autoload-dir (feature-file package-feature)) + (setq autoload-dir (file-name-directory autoload-dir)) + (member autoload-dir (append early-package-load-path late-package-load-path))) + ;; Find the corresponding entry in late-package + (setq pkg-dir + (car-safe (member-if (lambda (h) + (string-match (concat "^" (regexp-quote h)) + autoload-dir)) + (append (cdr early-packages) late-packages))))) + (if (and pkg-dir + (file-writable-p (directory-file-name pkg-dir))) + pkg-dir + ;; OK, the package hasn't been previously installed so we need + ;; to guess where it should go. + (cond ((equal type "standard") + (setq pkg-dir (package-admin-find-top-directory 'std))) + ((equal type "mule") + (setq pkg-dir (package-admin-find-top-directory 'mule))) + (t + (error 'invalid-operation + "Invalid package type"))) + (if (and pkg-dir + (file-writable-p (directory-file-name pkg-dir))) + pkg-dir + ;; Oh no! Either we still haven't found a suitable + ;; directory, or we can't write to the one we did find. + ;; Drop back to the `user-init-directory'. + (if (y-or-n-p (format "Directory isn't writable, use %s instead? " + user-init-directory)) + (progn + (cond ((equal type "standard") + (setq pkg-dir (package-admin-find-top-directory 'std 'user-dir))) + ((equal type "mule") + (setq pkg-dir (package-admin-find-top-directory 'mule 'user-dir))) + (t + (error 'invalid-operation + "Invalid package type"))) + ;; Turn on `package-get-install-to-user-init-directory' + ;; so we don't get asked for each package we try to + ;; install in this session. + (setq package-get-install-to-user-init-directory t) + pkg-dir) + ;; If we get to here XEmacs can't make up its mind and + ;; neither can the user, nothing left to do except barf. :-( + (error 'search-failed + (format + "Can't find suitable installation directory for package: %s" + package)))))))))) (defun package-admin-get-manifest-file (pkg-topdir package) "Return the name of the MANIFEST file for package PACKAGE. Note that PACKAGE is a symbol, and not a string." - (let (dir) - (setq dir (expand-file-name "pkginfo" pkg-topdir)) - (expand-file-name (concat "MANIFEST." (symbol-name package)) dir) - )) + (let ((dir (file-name-as-directory + (expand-file-name "pkginfo" pkg-topdir)))) + (expand-file-name (concat "MANIFEST." (symbol-name package)) dir))) (defun package-admin-check-manifest (pkg-outbuf pkg-topdir) "Check for a MANIFEST. file in the package distribution. If it doesn't exist, create and write one. PKG-OUTBUF is the buffer that holds the output from `tar', and PKG-TOPDIR is the top-level directory under which the package was installed." - (let ( (manifest-buf " *pkg-manifest*") - old-case-fold-search regexp package-name pathname regexps) - ;; Save and restore the case-fold-search status. - ;; We do this in case we have to screw with it (as it the case of - ;; case-insensitive filesystems such as MS Windows). - (setq old-case-fold-search case-fold-search) + (let ((manifest-buf " *pkg-manifest*") + (old-case-fold-search case-fold-search) + regexp package-name pathname regexps) (unwind-protect (save-excursion ;; Probably redundant. - (set-buffer (get-buffer pkg-outbuf)) ;; Probably already the - ;; current buffer. + (set-buffer (get-buffer pkg-outbuf)) ;; Probably already the current buffer. (goto-char (point-min)) ;; Make filenames case-insensitive, if necessary (if (eq system-type 'windows-nt) (setq case-fold-search t)) - ;; We really should compute the regexp. - ;; However, directory-sep-char is currently broken, but we need - ;; functional code *NOW*. - (setq regexp "\\bpkginfo[\\/]MANIFEST\\...*") + (setq regexp (concat "\\bpkginfo" + (char-to-string directory-sep-char) + "MANIFEST\\...*")) ;; Look for the manifest. (if (not (re-search-forward regexp nil t)) @@ -234,22 +329,18 @@ is the top-level directory under which the package was installed." ;; Yuk. We weren't passed the package name, and so we have ;; to dig for it. Look for it as the subdirectory name below - ;; "lisp", "man", "info", or "etc". + ;; "lisp", or "man". ;; Here, we don't use a single regexp because we want to search ;; the directories for a package name in a particular order. - ;; The problem is that packages could have directories like - ;; "etc/sounds/" or "etc/photos/" and we don't want to get - ;; these confused with the actual package name (although, in - ;; the case of "etc/sounds/", it's probably correct). (if (catch 'done - (let ( (dirs '("lisp" "info" "man" "etc")) rexp) + (let ((dirs '("lisp" "man")) + rexp) (while dirs (setq rexp (concat "\\b" (car dirs) "[\\/]\\([^\\/]+\\)[\//]")) (if (re-search-forward rexp nil t) (throw 'done t)) - (setq dirs (cdr dirs)) - ))) + (setq dirs (cdr dirs))))) (progn (setq package-name (buffer-substring (match-beginning 1) (match-end 1))) @@ -277,22 +368,16 @@ is the top-level directory under which the package was installed." (buffer-substring (match-beginning 1) (match-end 1))) - (throw 'found-path t) - )) - (setq regexps (cdr regexps)) - ) - ) + (throw 'found-path t))) + (setq regexps (cdr regexps)))) (progn ;; found a pathname -- add it to the manifest ;; buffer (save-excursion (set-buffer manifest-buf) (goto-char (point-max)) - (insert pathname "\n") - ) - )) - (forward-line 1) - ) + (insert pathname "\n")))) + (forward-line 1)) ;; Processed all lines. ;; Now, create the file, pkginfo/MANIFEST. @@ -310,24 +395,18 @@ is the top-level directory under which the package was installed." (save-excursion (set-buffer manifest-buf) ;; Put the files in sorted order - (sort-lines nil (point-min) (point-max)) + (if (fboundp 'sort-lines) + (sort-lines nil (point-min) (point-max)) + (warn "`xemacs-base' not installed, MANIFEST.%s not sorted" + package-name)) ;; Write the file. ;; Note that using `write-region' *BYPASSES* any check ;; to see if XEmacs is currently editing/visiting the ;; file. - (write-region (point-min) (point-max) pathname) - ) - (kill-buffer manifest-buf) - ) - (progn - ;; We can't determine the package name from an extracted - ;; file in the tar output buffer. - )) - )) - ) + (write-region (point-min) (point-max) pathname)) + (kill-buffer manifest-buf)))))) ;; Restore old case-fold-search status - (setq case-fold-search old-case-fold-search)) - )) + (setq case-fold-search old-case-fold-search)))) ;;;###autoload (defun package-admin-add-binary-package (file &optional pkg-dir) @@ -335,8 +414,7 @@ is the top-level directory under which the package was installed." (interactive "fPackage tarball: ") (let ((buf (get-buffer-create package-admin-temp-buffer)) (status 1) - start err-list - ) + start err-list) (setq pkg-dir (package-admin-get-install-dir 'unknown pkg-dir)) ;; Ensure that the current directory doesn't change (save-excursion @@ -358,17 +436,11 @@ is the top-level directory under which the package was installed." (if (re-search-forward (car err-list) nil t) (progn (setq status 1) - (throw 'done nil) - )) - (setq err-list (cdr err-list)) - ) - ) + (throw 'done nil))) + (setq err-list (cdr err-list)))) ;; Make sure that the MANIFEST file exists - (package-admin-check-manifest buf pkg-dir) - )) - ) - status - )) + (package-admin-check-manifest buf pkg-dir)))) + status)) (defun package-admin-rmtree (directory) "Delete a directory and all of its contents, recursively. @@ -403,13 +475,12 @@ This is a feeble attempt at making a portable rmdir." (setq package-lispdir (expand-file-name (symbol-name package) package-lispdir)) (file-accessible-directory-p package-lispdir)) - package-lispdir) - )) + package-lispdir))) (defun package-admin-delete-binary-package (package pkg-topdir) "Delete a binary installation of PACKAGE below directory PKG-TOPDIR. PACKAGE is a symbol, not a string." - (let ( (tmpbuf " *pkg-manifest*") manifest-file package-lispdir dirs file) + (let (manifest-file package-lispdir dirs file) (setq pkg-topdir (package-admin-get-install-dir package pkg-topdir)) (setq manifest-file (package-admin-get-manifest-file pkg-topdir package)) (run-hook-with-args 'package-delete-hook package pkg-topdir) @@ -418,8 +489,7 @@ PACKAGE is a symbol, not a string." ;; The manifest file exists! Use it to delete the old distribution. (message "Removing old files for package \"%s\" ..." package) (sit-for 0) - (setq tmpbuf (get-buffer-create tmpbuf)) - (with-current-buffer tmpbuf + (with-temp-buffer (buffer-disable-undo) (erase-buffer) (insert-file-contents manifest-file) @@ -451,66 +521,31 @@ PACKAGE is a symbol, not a string." ;; Delete empty directories. (if dirs - (let ( (orig-default-directory default-directory) - ;; directory files file - ) - ;; Make sure we preserve the existing `default-directory'. - ;; JV, why does this change the default directory? Does it indeed? - (unwind-protect - (progn - ;; Warning: destructive sort! - (setq dirs (nreverse (sort dirs 'string<))) -; ;; For each directory ... -; (while dirs -; (setq directory (file-name-as-directory (car dirs))) -; (setq files (directory-files directory)) -; ;; Delete the directory if it's empty. -; (if (catch 'done -; (while files -; (setq file (car files)) -; (if (and (not (string= file ".")) -; (not (string= file ".."))) -; (throw 'done nil)) -; (setq files (cdr files)) -; ) -; t) -; ( -; (delete-directory directory)) -; (setq dirs (cdr dirs)) -; ) - ;; JV, On all OS's that I know of delete-directory fails on - ;; on non-empty dirs anyway - (mapc - (lambda (dir) - (condition-case () - (delete-directory dir))) - dirs)) - (setq default-directory orig-default-directory) - ))) - ) - (kill-buffer tmpbuf) + (progn + (mapc + (lambda (dir) + (condition-case () + (delete-directory dir))) + dirs))) ;; Delete the MANIFEST file ;; (set-file-modes manifest-file 438) ;; 438 -> #o666 ;; Note. Packages can have MANIFEST in MANIFEST. (condition-case () (delete-file manifest-file) (error nil)) ;; Do warning? - (message "Removing old files for package \"%s\" ... done" package)) - ;; The manifest file doesn't exist. Fallback to just deleting the - ;; package-specific lisp directory, if it exists. - ;; - ;; Delete old lisp directory, if any - ;; Gads, this is ugly. However, we're not supposed to use `concat' - ;; in the name of portability. - (when (setq package-lispdir (package-admin-get-lispdir pkg-topdir - package)) - (message "Removing old lisp directory \"%s\" ..." - package-lispdir) - (sit-for 0) - (package-admin-rmtree package-lispdir) - (message "Removing old lisp directory \"%s\" ... done" - package-lispdir) - )) + (message "Removing old files for package \"%s\" ... done" package))) + ;; The manifest file doesn't exist. Fallback to just deleting the + ;; package-specific lisp directory, if it exists. + ;; + ;; Delete old lisp directory, if any + ;; Gads, this is ugly. However, we're not supposed to use `concat' + ;; in the name of portability. + (setq package-lispdir (package-admin-get-lispdir pkg-topdir package)) + (when package-lispdir + (message "Removing old lisp directory \"%s\" ..." package-lispdir) + (sit-for 0) + (package-admin-rmtree package-lispdir) + (message "Removing old lisp directory \"%s\" ... done" package-lispdir))) ;; Delete the package from the database of installed packages. (package-delete-name package))) diff --git a/lisp/package-get.el b/lisp/package-get.el index 5ae5de3..4222b78 100644 --- a/lisp/package-get.el +++ b/lisp/package-get.el @@ -1,10 +1,13 @@ ;;; package-get.el --- Retrieve XEmacs package ;; Copyright (C) 1998 by Pete Ware +;; Copyright (C) 2002 Ben Wing. +;; Copyright (C) 2003, Steve Youngs ;; Author: Pete Ware ;; Heavy-Modifications: Greg Klanderman ;; Jan Vroonhof +;; Steve Youngs ;; Keywords: internal ;; This file is part of XEmacs. @@ -166,80 +169,82 @@ one version of a package available.") :type 'directory :group 'package-get) +;;;###autoload +(defcustom package-get-package-index-file-location + (or (getenv "EMACSPACKAGEPATH") + user-init-directory) + "*The directory where the package-index file can be found." + :type 'directory + :group 'package-get) + +;;;###autoload +(defcustom package-get-install-to-user-init-directory nil + "*If non-nil install packages under `user-init-directory'." + :type 'boolean + :group 'package-get) + (define-widget 'host-name 'string "A Host name." :tag "Host") (defcustom package-get-remote nil - "*List of remote sites to contact for downloading packages. -List format is '(site-name directory-on-site). Each site is tried in -order until the package is found. As a special case, `site-name' can be -`nil', in which case `directory-on-site' is treated as a local directory." + "*The remote site to contact for downloading packages. +Format is '(site-name directory-on-site). As a special case, `site-name' +can be `nil', in which case `directory-on-site' is treated as a local +directory." :tag "Package repository" - :type '(repeat (choice (list :tag "Local" (const :tag "Local" nil) directory ) - (list :tag "Remote" host-name directory) )) + :type '(set (choice (const :tag "None" nil) + (list :tag "Local" (const :tag "Local" nil) directory) + (list :tag "Remote" host-name directory))) :group 'package-get) ;;;###autoload (defcustom package-get-download-sites '( - ;; North America - ("Pre-Releases" "ftp.xemacs.org" "pub/xemacs/beta/experimental/packages") - ("xemacs.org" "ftp.xemacs.org" "pub/xemacs/packages") - ("ca.xemacs.org (Canada)" "ftp.ca.xemacs.org" "pub/Mirror/xemacs/packages") - ("crc.ca (Canada)" "ftp.crc.ca" "pub/packages/editors/xemacs/packages") - ("us.xemacs.org (United States)" "ftp.us.xemacs.org" "pub/xemacs/packages") - ("ibiblio.org (United States)" "ibiblio.org" "pub/packages/editors/xemacs/packages") - ("stealth.net (United States)" "ftp.stealth.net" "pub/mirrors/ftp.xemacs.org/pub/xemacs/packages") - ;("uiuc.edu (United States)" "uiarchive.uiuc.edu" "pub/packages/xemacs/packages") - - ;; South America - ("br.xemacs.org (Brazil)" "ftp.br.xemacs.org" "pub/xemacs/packages") - - ;; Europe - ("at.xemacs.org (Austria)" "ftp.at.xemacs.org" "editors/xemacs/packages") - ("be.xemacs.org (Belgium)" "ftp.be.xemacs.org" "xemacs/packages") - ("cz.xemacs.org (Czech Republic)" "ftp.cz.xemacs.org" "MIRRORS/ftp.xemacs.org/pub/xemacs/packages") - ("dk.xemacs.org (Denmark)" "ftp.dk.xemacs.org" "pub/emacs/xemacs/packages") - ("fi.xemacs.org (Finland)" "ftp.fi.xemacs.org" "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/packages") - ("fr.xemacs.org (France)" "ftp.fr.xemacs.org" "pub/xemacs/packages") - ("pasteur.fr (France)" "ftp.pasteur.fr" "pub/computing/xemacs/packages") - ("de.xemacs.org (Germany)" "ftp.de.xemacs.org" "pub/ftp.xemacs.org/tux/xemacs/packages") - ("tu-darmstadt.de (Germany)" "ftp.tu-darmstadt.de" "pub/editors/xemacs/packages") - ;("hu.xemacs.org (Hungary)" "ftp.hu.xemacs.org" "pub/packages/xemacs/packages") - ("ie.xemacs.org (Ireland)" "ftp.ie.xemacs.org" "mirrors/ftp.xemacs.org/pub/xemacs/packages") - ("it.xemacs.org (Italy)" "ftp.it.xemacs.org" "unix/packages/XEMACS/packages") - ("no.xemacs.org (Norway)" "ftp.no.xemacs.org" "pub/xemacs/packages") - ("pl.xemacs.org (Poland)" "ftp.pl.xemacs.org" "pub/unix/editors/xemacs/packages") - ("ru.xemacs.org (Russia)" "ftp.ru.xemacs.org" "pub/xemacs/packages") - ("sk.xemacs.org (Slovakia)" "ftp.sk.xemacs.org" "pub/mirrors/xemacs/packages") - ("se.xemacs.org (Sweden)" "ftp.se.xemacs.org" "pub/gnu/xemacs/packages") - ("ch.xemacs.org (Switzerland)" "ftp.ch.xemacs.org" "mirror/xemacs/packages") - ("uk.xemacs.org (United Kingdom)" "ftp.uk.xemacs.org" "sites/ftp.xemacs.org/pub/xemacs/packages") - - ;; Asia - ("jp.xemacs.org (Japan)" "ftp.jp.xemacs.org" "pub/GNU/xemacs/packages") - ("aist.go.jp (Japan)" "ring.aist.go.jp" "pub/text/xemacs/packages") - ("asahi-net.or.jp (Japan)" "ring.asahi-net.or.jp" "pub/text/xemacs/packages") - ("dti.ad.jp (Japan)" "ftp.dti.ad.jp" "pub/unix/editor/xemacs/packages") - ("jaist.ac.jp (Japan)" "ftp.jaist.ac.jp" "pub/GNU/xemacs/packages") - ("nucba.ac.jp (Japan)" "mirror.nucba.ac.jp" "mirror/xemacs/packages") - ("sut.ac.jp (Japan)" "sunsite.sut.ac.jp" "pub/archives/packages/xemacs/packages") - ("kr.xemacs.org (Korea)" "ftp.kr.xemacs.org" "pub/tools/emacs/xemacs/packages") - ;("tw.xemacs.org (Taiwan)" "ftp.tw.xemacs.org" "Editors/xemacs/packages") - - ;; Africa - ("za.xemacs.org (South Africa)" "ftp.za.xemacs.org" "mirrorsites/ftp.xemacs.org/packages") - - ;; Middle East - ("sa.xemacs.org (Saudi Arabia)" "ftp.sa.xemacs.org" "pub/mirrors/ftp.xemacs.org/xemacs/packages") - - ;; Australia - ("au.xemacs.org (Australia)" "ftp.au.xemacs.org" "pub/xemacs/packages") - ("aarnet.edu.au (Australia)" "mirror.aarnet.edu.au" "pub/xemacs/packages") - - ;; Oceania - ("nz.xemacs.org (New Zealand)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages") + ;; Main XEmacs Site (ftp.xemacs.org) + ("US (Main XEmacs Site)" + "ftp.xemacs.org" "pub/xemacs/packages") + ;; In alphabetical order of Country, our mirrors... + ("Australia (aarnet.edu.au)" "mirror.aarnet.edu.au" "pub/xemacs/packages") + ("Australia (au.xemacs.org)" "ftp.au.xemacs.org" "pub/xemacs/packages") + ("Austria (at.xemacs.org)" "ftp.at.xemacs.org" "editors/xemacs/packages") + ("Belgium (be.xemacs.org)" "ftp.be.xemacs.org" "xemacs/packages") + ("Brazil (br.xemacs.org)" "ftp.br.xemacs.org" "pub/xemacs/packages") + ("Canada (ca.xemacs.org)" "ftp.ca.xemacs.org" "pub/Mirror/xemacs/packages") + ("Canada (crc.ca)" "ftp.crc.ca" "pub/packages/editors/xemacs/packages") + ("Canada (ualberta.ca)" "sunsite.ualberta.ca" "pub/Mirror/xemacs/packages") + ("Czech Republic (cz.xemacs.org)" "ftp.cz.xemacs.org" "MIRRORS/ftp.xemacs.org/pub/xemacs/packages") + ("Denmark (dk.xemacs.org)" "ftp.dk.xemacs.org" "pub/emacs/xemacs/packages") + ("Finland (fi.xemacs.org)" "ftp.fi.xemacs.org" "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/packages") + ("France (fr.xemacs.org)" "ftp.fr.xemacs.org" "pub/xemacs/packages") + ("France (mirror.cict.fr)" "mirror.cict.fr" "xemacs/packages") + ("France (pasteur.fr)" "ftp.pasteur.fr" "pub/computing/xemacs/packages") + ("Germany (de.xemacs.org)" "ftp.de.xemacs.org" "pub/ftp.xemacs.org/tux/xemacs/packages") + ("Germany (tu-darmstadt.de)" "ftp.tu-darmstadt.de" "pub/editors/xemacs/packages") + ("Ireland (ie.xemacs.org)" "ftp.ie.xemacs.org" "mirrors/ftp.xemacs.org/pub/xemacs/packages") + ("Italy (it.xemacs.org)" "ftp.it.xemacs.org" "unix/packages/XEMACS/packages") + ("Japan (aist.go.jp)" "ring.aist.go.jp" "pub/text/xemacs/packages") + ("Japan (asahi-net.or.jp)" "ring.asahi-net.or.jp" "pub/text/xemacs/packages") + ("Japan (dti.ad.jp)" "ftp.dti.ad.jp" "pub/unix/editor/xemacs/packages") + ("Japan (jaist.ac.jp)" "ftp.jaist.ac.jp" "pub/GNU/xemacs/packages") + ("Japan (jp.xemacs.org)" "ftp.jp.xemacs.org" "pub/GNU/xemacs/packages") + ("Japan (nucba.ac.jp)" "mirror.nucba.ac.jp" "mirror/xemacs/packages") + ("Japan (sut.ac.jp)" "sunsite.sut.ac.jp" "pub/archives/packages/xemacs/packages") + ("Korea (kr.xemacs.org)" "ftp.kr.xemacs.org" "pub/tools/emacs/xemacs/packages") + ("New Zealand (nz.xemacs.org)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages") + ("Norway (no.xemacs.org)" "ftp.no.xemacs.org" "pub/xemacs/packages") + ("Poland (pl.xemacs.org)" "ftp.pl.xemacs.org" "pub/unix/editors/xemacs/packages") + ("Russia (ru.xemacs.org)" "ftp.ru.xemacs.org" "pub/xemacs/packages") + ("Slovakia (sk.xemacs.org)" "ftp.sk.xemacs.org" "pub/mirrors/xemacs/packages") + ("South Africa (za.xemacs.org)" "ftp.za.xemacs.org" "mirrorsites/ftp.xemacs.org/packages") + ("Sweden (se.xemacs.org)" "ftp.se.xemacs.org" "pub/gnu/xemacs/packages") + ("Switzerland (ch.xemacs.org)" "ftp.ch.xemacs.org" "mirror/xemacs/packages") + ("UK (uk.xemacs.org)" "ftp.uk.xemacs.org" "sites/ftp.xemacs.org/pub/xemacs/packages") + ("US (ibiblio.org)" "ibiblio.org" "pub/packages/editors/xemacs/packages") + ("US (stealth.net)" "ftp.stealth.net" "pub/mirrors/ftp.xemacs.org/pub/xemacs/packages") + ("US (unc.edu)" "metalab.unc.edu" "pub/packages/editors/xemacs/packages") + ("US (us.xemacs.org)" "ftp.us.xemacs.org" "pub/xemacs/packages") + ("US (utk.edu)" "ftp.sunsite.utk.edu" "pub/xemacs/packages") ) "*List of remote sites available for downloading packages. List format is '(site-description site-name directory-on-site). @@ -252,6 +257,113 @@ variable actually used to specify package download sites." :type '(repeat (list (string :tag "Name") host-name directory)) :group 'package-get) +;;;###autoload +(defcustom package-get-pre-release-download-sites + '( + ;; Main XEmacs Site (ftp.xemacs.org) + ("Pre-Releases (Main XEmacs Site)" "ftp.xemacs.org" + "pub/xemacs/beta/experimental/packages") + ;; In alphabetical order of Country, our mirrors... + ("Australia Pre-Releases (aarnet.edu.au)" "mirror.aarnet.edu.au" + "pub/xemacs/beta/experimental/packages") + ("Australia Pre-Releases (au.xemacs.org)" "ftp.au.xemacs.org" + "pub/xemacs/beta/experimental/packages") + ("Austria Pre-Releases (at.xemacs.org)" "ftp.at.xemacs.org" + "editors/xemacs/beta/experimentsl/packages") + ("Brazil Pre-Releases (br.xemacs.org)" "ftp.br.xemacs.org" + "pub/xemacs/xemacs-21.5/experimental/packages") + ("Canada Pre-Releases (ca.xemacs.org)" "ftp.ca.xemacs.org" + "pub/Mirror/xemacs/beta/experimental/packages") + ("Canada Pre-Releases (crc.ca)" "ftp.crc.ca" + "pub/packages/editors/xemacs/beta/experimental/packages") + ("Canada Pre-Releases (ualberta.ca)" "sunsite.ualberta.ca" + "pub/Mirror/xemacs/beta/experimental/packages") + ("Czech Republic Pre-Releases (cz.xemacs.org)" "ftp.cz.xemacs.org" + "MIRRORS/ftp.xemacs.org/pub/xemacs/xemacs-21.5/experimental/packages") + ("Denmark Pre-Releases (dk.xemacs.org)" "ftp.dk.xemacs.org" + "pub/emacs/xemacs/beta/experimental/packages") + ("Finland Pre-Releases (fi.xemacs.org)" "ftp.fi.xemacs.org" + "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/beta/experimental/packages") + ("France Pre-Releases (fr.xemacs.org)" "ftp.fr.xemacs.org" + "pub/xemacs/beta/experimental/packages") + ("France Pre-Releases (mirror.cict.fr)" "mirror.cict.fr" + "xemacs/beta/experimental/packages") + ("France Pre-Releases (pasteur.fr)" "ftp.pasteur.fr" + "pub/computing/xemacs/beta/experimental/packages") + ("Germany Pre-Releases (de.xemacs.org)" "ftp.de.xemacs.org" + "pub/ftp.xemacs.org/tux/xemacs/beta/experimental/packages") + ("Germany Pre-Releases (tu-darmstadt.de)" "ftp.tu-darmstadt.de" + "pub/editors/xemacs/beta/experimental/packages") + ("Ireland Pre-Releases (ie.xemacs.org)" "ftp.ie.xemacs.org" + "mirrors/ftp.xemacs.org/pub/xemacs/beta/experimental/packages") + ("Italy Pre-Releases (it.xemacs.org)" "ftp.it.xemacs.org" + "unix/packages/XEMACS/beta/experimental/packages") + ("Japan Pre-Releases (aist.go.jp)" "ring.aist.go.jp" + "pub/text/xemacs/beta/experimental/packages") + ("Japan Pre-Releases (asahi-net.or.jp)" "ring.asahi-net.or.jp" + "pub/text/xemacs/beta/experimental/packages") + ("Japan Pre-Releases (dti.ad.jp)" "ftp.dti.ad.jp" + "pub/unix/editor/xemacs/beta/experimental/packages") + ("Japan Pre-Releases (jaist.ac.jp)" "ftp.jaist.ac.jp" + "pub/GNU/xemacs/beta/experimental/packages") + ("Japan Pre-Releases (jp.xemacs.org)" "ftp.jp.xemacs.org" + "pub/GNU/xemacs/beta/experimental/packages") + ("Japan Pre-Releases (sut.ac.jp)" "sunsite.sut.ac.jp" + "pub/archives/packages/xemacs/xemacs-21.5/experimental/packages") + ("New Zealand Pre-Releases (nz.xemacs.org)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages") + ("Norway Pre-Releases (no.xemacs.org)" "ftp.no.xemacs.org" + "pub/xemacs/beta/experimental/packages") + ("Poland Pre-Releases (pl.xemacs.org)" "ftp.pl.xemacs.org" + "pub/unix/editors/xemacs/beta/experimental/packages") + ("Russia Pre-Releases (ru.xemacs.org)" "ftp.ru.xemacs.org" + "pub/xemacs/beta/experimental/packages") + ("Saudi Arabia Pre-Releases (sa.xemacs.org)" "ftp.sa.xemacs.org" + "pub/mirrors/ftp.xemacs.org/xemacs/xemacs-21.5/experimental/packages") + ("Slovakia Pre-Releases (sk.xemacs.org)" "ftp.sk.xemacs.org" + "pub/mirrors/xemacs/beta/experimental/packages") + ("South Africa Pre-Releases (za.xemacs.org)" "ftp.za.xemacs.org" + "mirrorsites/ftp.xemacs.org/beta/experimental/packages") + ("Sweden Pre-Releases (se.xemacs.org)" "ftp.se.xemacs.org" + "pub/gnu/xemacs/beta/experimental/packages") + ("Switzerland Pre-Releases (ch.xemacs.org)" "ftp.ch.xemacs.org" + "mirror/xemacs/beta/experimental/packages") + ("UK Pre-Releases (uk.xemacs.org)" "ftp.uk.xemacs.org" + "sites/ftp.xemacs.org/pub/xemacs/beta/experimental/packages") + ("US Pre-Releases (ibiblio.org)" "ibiblio.org" + "pub/packages/editors/xemacs/beta/experimental/packages") + ("US Pre-Releases (stealth.net)" "ftp.stealth.net" + "pub/mirrors/ftp.xemacs.org/pub/xemacs/beta/experimental/packages") + ("US Pre-Releases (unc.edu)" "metalab.unc.edu" + "pub/packages/editors/xemacs/beta/experimental/packages") + ("US Pre-Releases (us.xemacs.org)" "ftp.us.xemacs.org" + "pub/xemacs/beta/experimental/packages") + ("US Pre-Releases (utk.edu)" "ftp.sunsite.utk.edu" + "pub/xemacs/beta/experimental/packages")) + "*List of remote sites available for downloading \"Pre-Release\" packages. +List format is '(site-description site-name directory-on-site). +SITE-DESCRIPTION is a textual description of the site. SITE-NAME +is the internet address of the download site. DIRECTORY-ON-SITE +is the directory on the site in which packages may be found. +This variable is used to initialize `package-get-remote', the +variable actually used to specify package download sites." + :tag "Pre-Release Package download sites" + :type '(repeat (list (string :tag "Name") host-name directory)) + :group 'package-get) + +;;;###autoload +(defcustom package-get-site-release-download-sites + nil + "*List of remote sites available for downloading \"Site Release\" packages. +List format is '(site-description site-name directory-on-site). +SITE-DESCRIPTION is a textual description of the site. SITE-NAME +is the internet address of the download site. DIRECTORY-ON-SITE +is the directory on the site in which packages may be found. +This variable is used to initialize `package-get-remote', the +variable actually used to specify package download sites." + :tag "Site Release Package download sites" + :type '(repeat (list (string :tag "Name") host-name directory)) + :group 'package-get) + (defcustom package-get-remove-copy t "*After copying and installing a package, if this is t, then remove the copy. Otherwise, keep it around." @@ -261,50 +373,68 @@ copy. Otherwise, keep it around." ;; #### it may make sense for this to be a list of names. ;; #### also, should we rename "*base*" to "*index*" or "*db*"? ;; "base" is a pretty poor name. -(defcustom package-get-base-filename "package-index.LATEST.pgp" +(defcustom package-get-base-filename "package-index.LATEST.gpg" "*Name of the default package-get database file. This may either be a relative path, in which case it is interpreted with respect to `package-get-remote', or an absolute path." :type 'file :group 'package-get) -(defvar package-get-user-index-filename - (paths-construct-path (list user-init-directory package-get-base-filename)) - "Name for the user-specific location of the package-get database file.") - (defcustom package-get-always-update nil "*If Non-nil always make sure we are using the latest package index (base). Otherwise respect the `force-current' argument of `package-get-require-base'." :type 'boolean :group 'package-get) -(defcustom package-get-require-signed-base-updates nil - "*If set to a non-nil value, require explicit user confirmation for updates -to the package-get database which cannot have their signature verified via PGP. -When nil, updates which are not PGP signed are allowed without confirmation." +(defun package-get-pgp-available-p () + "Checks the availability of Mailcrypt and PGP executable. + +Returns t if both are found, nil otherwise. As a side effect, set +`mc-default-scheme' dependent on the PGP executable found." + (let (result) + (when (featurep 'mailcrypt-autoloads) + (autoload 'mc-setversion "mc-setversion")) + (when (fboundp 'mc-setversion) + (cond ((locate-file "gpg" exec-path + '("" ".btm" ".bat" ".cmd" ".exe" ".com") + 'executable) + (mc-setversion "gpg") + (setq result t)) + ((locate-file "pgpe" exec-path + '("" ".btm" ".bat" ".cmd" ".exe" ".com") + 'executable) + (mc-setversion "5.0") + (setq result t)) + ((locate-file "pgp" exec-path + '("" ".btm" ".bat" ".cmd" ".exe" ".com") + 'executable) + (mc-setversion "2.6") + (setq result t)))) + (if result + result + nil))) + +(defcustom package-get-require-signed-base-updates (package-get-pgp-available-p) + "*If non-nil, try to verify the package index database via PGP. + +If nil, no PGP verification is done. If the package index database +entries are not PGP signed and this variable is non-nil, require user +confirmation to continue with the package-get procedure. + +The default for this variable is the return value of +`package-get-pgp-available-p', non-nil if both the \"Mailcrypt\" +package and a suitable PGP executable are available, nil otherwise." :type 'boolean :group 'package-get) -(defvar package-get-was-current nil - "Non-nil we did our best to fetch a current database.") +(defvar package-entries-are-signed nil + "Non-nil when the package index file has been PGP signed.") +(defvar package-get-continue-update-base nil + "Non-nil update the index even if it hasn't been signed.") -;Shouldn't this be in package-ui? -;;;###autoload -(defun package-get-download-menu () - "Build the `Add Download Site' menu." - (mapcar (lambda (site) - (vector (car site) - `(if (member (quote ,(cdr site)) - package-get-remote) - (setq package-get-remote - (delete (quote ,(cdr site)) - package-get-remote)) - (package-ui-add-site (quote ,(cdr site)))) - :style 'toggle - :selected `(member (quote ,(cdr site)) - package-get-remote))) - package-get-download-sites)) +(defvar package-get-was-current nil + "Non-nil we did our best to fetch a current database.") ;;;###autoload (defun package-get-require-base (&optional force-current) @@ -323,7 +453,8 @@ and remote access is likely in the near future." (package-get-update-base nil force-current)) (if (or (not (boundp 'package-get-base)) (not package-get-base)) - (error "Package-get database not loaded") + (error 'void-variable + "Package-get database not loaded") (setq package-get-was-current force-current))) (defconst package-get-pgp-signed-begin-line "^-----BEGIN PGP SIGNED MESSAGE-----" @@ -339,8 +470,7 @@ and remote access is likely in the near future." (let ((existing (assq (car entry) package-get-base))) (if existing (setcdr existing (cdr entry)) - (setq package-get-base (cons entry package-get-base)) - (package-get-custom-add-entry (car entry) (car (cdr entry)))))) + (setq package-get-base (cons entry package-get-base))))) (defun package-get-locate-file (file &optional nil-if-not-found no-remote) "Locate an existing FILE with respect to `package-get-remote'. @@ -350,27 +480,48 @@ if FILE can not be located. If NO-REMOTE is non-nil never search remote locations." (if (file-name-absolute-p file) file - (let ((entries package-get-remote) + (let ((site package-get-remote) (expanded nil)) - (while entries - (unless (and no-remote (caar entries)) - (let ((expn (package-get-remote-filename (car entries) file))) + (when site + (unless (and no-remote (caar (list site))) + (let ((expn (package-get-remote-filename (car (list site)) file))) (if (and expn (file-exists-p expn)) - (setq entries nil - expanded expn)))) - (setq entries (cdr entries))) + (setq site nil + expanded expn))))) (or expanded (and (not nil-if-not-found) file))))) (defun package-get-locate-index-file (no-remote) - "Locate the package-get index file. Do not return remote paths if NO-REMOTE -is non-nil." + "Locate the package-get index file. + +Do not return remote paths if NO-REMOTE is non-nil. If the index +file doesn't exist in `package-get-package-index-file-location', ask +the user if one should be created using the index file in core as a +template." (or (package-get-locate-file package-get-base-filename t no-remote) - (if (file-exists-p package-get-user-index-filename) - package-get-user-index-filename) - (locate-data-file package-get-base-filename) - (error "Can't locate a package index file."))) + (if (file-exists-p (expand-file-name package-get-base-filename + package-get-package-index-file-location)) + (expand-file-name package-get-base-filename + package-get-package-index-file-location) + (if (y-or-n-p (format "No index file, shall I create one in %s? " + package-get-package-index-file-location)) + (progn + (save-excursion + (set-buffer + (find-file-noselect (expand-file-name + package-get-base-filename + package-get-package-index-file-location))) + (let ((coding-system-for-write 'binary)) + (erase-buffer) + (insert-file-contents-literally + (locate-data-file package-get-base-filename)) + (save-buffer (current-buffer)) + (kill-buffer (current-buffer)))) + (expand-file-name package-get-base-filename + package-get-package-index-file-location)) + (error 'search-failed + "Can't locate a package index file."))))) (defun package-get-maybe-save-index (filename) "Offer to save the current buffer as the local package index file, @@ -382,13 +533,18 @@ if different." (with-temp-buffer (insert-file-contents-literally location) (md5 (current-buffer))))) - (unless (and location (file-writable-p location)) - (setq location package-get-user-index-filename)) + (when (not (file-writable-p location)) + (if (y-or-n-p (format "Sorry, %s is read-only, can I use %s? " + location user-init-directory)) + (setq location (expand-file-name + package-get-base-filename + package-get-package-index-file-location)) + (error 'file-error + (format "%s is read-only" location)))) (when (y-or-n-p (concat "Update package index in " location "? ")) (let ((coding-system-for-write 'binary)) (write-file location))))))) - ;;;###autoload (defun package-get-update-base (&optional db-file force-current) "Update the package-get database file with entries from DB-FILE. @@ -404,9 +560,11 @@ Unless FORCE-CURRENT is non-nil never try to update the database." (package-get-locate-index-file (not force-current))))) (if (not (file-exists-p db-file)) - (error "Package-get database file `%s' does not exist" db-file)) + (error 'file-error + (format "Package-get database file `%s' does not exist" db-file))) (if (not (file-readable-p db-file)) - (error "Package-get database file `%s' not readable" db-file)) + (error 'file-error + (format "Package-get database file `%s' not readable" db-file))) (let ((buf (get-buffer-create "*package database*"))) (unwind-protect (save-excursion @@ -425,49 +583,45 @@ BUFFER defaults to the current buffer. This command can be used interactively, for example from a mail or news buffer." (interactive) (setq buf (or buf (current-buffer))) - (let (content-beg content-end beg end) + (let (content-beg content-end) (save-excursion (set-buffer buf) (goto-char (point-min)) (setq content-beg (point)) (setq content-end (save-excursion (goto-char (point-max)) (point))) (when (re-search-forward package-get-pgp-signed-begin-line nil t) - (setq beg (match-beginning 0)) (setq content-beg (match-end 0))) (when (re-search-forward package-get-pgp-signature-begin-line nil t) - (setq content-end (match-beginning 0))) - (when (re-search-forward package-get-pgp-signature-end-line nil t) - (setq end (point))) - (if (not (and content-beg content-end beg end)) - (or (not package-get-require-signed-base-updates) - (yes-or-no-p "Package-get entries not PGP signed, continue? ") - (error "Package-get database not updated"))) - (if (and content-beg content-end beg end) - (if (not (condition-case nil - (or (fboundp 'mc-pgp-verify-region) - (load-library "mc-pgp") - (fboundp 'mc-pgp-verify-region)) - (error nil))) - (or (not package-get-require-signed-base-updates) - (yes-or-no-p - "No mailcrypt; can't verify package-get DB signature, continue? ") - (error "Package-get database not updated")))) - (if (and beg end - (fboundp 'mc-pgp-verify-region) - (or (not - (condition-case err - (mc-pgp-verify-region beg end) - (file-error - (and (string-match "No such file" (nth 2 err)) - (or (not package-get-require-signed-base-updates) - (yes-or-no-p - (concat "Can't find PGP, continue without " - "package-get DB verification? "))))) - (t nil))))) - (error "Package-get PGP signature failed to verify")) + (setq content-end (match-beginning 0)) + (setq package-entries-are-signed t)) + (re-search-forward package-get-pgp-signature-end-line nil t) + (setq package-get-continue-update-base t) + ;; This is a little overkill because the default value of + ;; `package-get-require-signed-base-updates' is the return of + ;; `package-get-pgp-available-p', but we have to allow for + ;; someone explicitly setting + ;; `package-get-require-signed-base-updates' to t. --SY + (when (and package-get-require-signed-base-updates + (package-get-pgp-available-p)) + (if package-entries-are-signed + (let (good-sig) + (setq package-get-continue-update-base nil) + (autoload 'mc-verify "mc-toplev") + (when (mc-verify) + (setq good-sig t)) + (if good-sig + (setq package-get-continue-update-base t) + (error 'process-error + "GnuPG error. Package database not updated"))) + (if (yes-or-no-p + "Package Index is not PGP signed. Continue anyway? ") + (setq package-get-continue-update-base t) + (setq package-get-continue-update-base nil) + (warn "Package database not updated")))) ;; ToDo: We should call package-get-maybe-save-index on the region - (package-get-update-base-entries content-beg content-end) - (message "Updated package-get database")))) + (when package-get-continue-update-base + (package-get-update-base-entries content-beg content-end) + (message "Updated package database"))))) (defun package-get-update-base-entries (start end) "Update the package-get database with the entries found between @@ -475,7 +629,8 @@ START and END in the current buffer." (save-excursion (goto-char start) (if (not (re-search-forward "^(package-get-update-base-entry" nil t)) - (error "Buffer does not contain package-get database entries")) + (error 'search-failed + "Buffer does not contain package-get database entries")) (beginning-of-line) (let ((count 0)) (while (and (< (point) end) @@ -484,7 +639,8 @@ START and END in the current buffer." (let ((entry (read (current-buffer)))) (if (or (not (consp entry)) (not (eq (car entry) 'package-get-update-base-entry))) - (error "Invalid package-get database entry found")) + (error 'syntax-error + "Invalid package-get database entry found")) (package-get-update-base-entry (car (cdr (car (cdr entry))))) (setq count (1+ count)))) @@ -547,12 +703,10 @@ The return value is suitable for direct passing to `interactive'." 'version)) (while (string= (setq version (read-string "Version: " default-version)) - "") - ) + "")) (if package-symbol (list package-symbol version) - (list package version)) - ) + (list package version))) (if package-symbol (list package-symbol) (list package)))))) @@ -574,8 +728,7 @@ This is just an interactive wrapper for `package-admin-delete-binary-package'." (catch 'exit (mapcar (lambda (pkg) (if (not (package-get (car pkg) nil 'never)) - (throw 'exit nil) ;; Bail out if error detected - )) + (throw 'exit nil))) ;; Bail out if error detected packages-package-list)) (package-net-update-installed-db)) @@ -595,8 +748,7 @@ Returns nil upon error." package)) (this-package (package-get-info-version the-package version)) - (this-requires (package-get-info-prop this-package 'requires)) - ) + (this-requires (package-get-info-prop this-package 'requires))) (catch 'exit (setq version (package-get-info-prop this-package 'version)) (unless (package-get-installedp package version) @@ -619,18 +771,16 @@ Returns nil upon error." (reqd-version (cadr reqd-package)) (reqd-name (car reqd-package))) (if (null reqd-name) - (error "Unable to find a provider for %s" - (car this-requires))) + (error 'search-failed + (format "Unable to find a provider for %s" + (car this-requires)))) (if (not (setq fetched-packages (package-get-all reqd-name reqd-version fetched-packages install-dir))) - (throw 'exit nil))) - ) - (setq this-requires (cdr this-requires))) - ) - fetched-packages - )) + (throw 'exit nil)))) + (setq this-requires (cdr this-requires)))) + fetched-packages)) ;;;###autoload (defun package-get-dependencies (packages) @@ -654,7 +804,8 @@ required by PACKAGES." (let* ((reqd-package (package-get-package-provider reqd)) (reqd-name (car reqd-package))) (if (null reqd-name) - (error "Unable to find a provider for %s" reqd)) + (error 'search-failed + (format "Unable to find a provider for %s" reqd))) reqd-name)) this-requires) dependencies)) @@ -692,20 +843,136 @@ Return `t' upon complete success, `nil' if any errors occurred." (progn ;; Add lispdir to load-path if it doesn't already exist. ;; NOTE: this does not take symlinks, etc., into account. - (if (let ( (dirs load-path) ) + (if (let ((dirs load-path)) (catch 'done (while dirs (if (string-equal (car dirs) lispdir) (throw 'done nil)) - (setq dirs (cdr dirs)) - ) + (setq dirs (cdr dirs))) t)) (setq load-path (cons lispdir load-path))) (if (not (package-get-load-package-file lispdir "auto-autoloads")) (package-get-load-package-file lispdir "_pkg")) t) - nil) - )) + nil))) + +;;;###autoload +(defun package-get-info (package information &optional arg remote) + "Get information about a package. + +Quite similar to `package-get-info-prop', but can retrieve a lot more +information. + +Argument PACKAGE is the name of an XEmacs package (a symbol). It must +be a valid package, ie, a member of `package-get-base'. + +Argument INFORMATION is a symbol that can be any one of: + + standards-version Package system version (not used). + version Version of the XEmacs package. + author-version The upstream version of the package. + date The date the package was last modified. + build-date The date the package was last built. + maintainer The maintainer of the package. + distribution Will always be \"xemacs\" (not used). + priority \"low\", \"medium\", or \"high\" (not used). + category Either \"standard\", \"mule\", or \"unsupported\".. + dump Is the package dumped (not used). + description A description of the package. + filename The filename of the binary tarball of the package. + md5sum The md5sum of filename. + size The size in bytes of filename. + provides A list of symbols that this package provides. + requires A list of packages that this package requires. + type Can be either \"regular\" or \"single-file\". + +If optional argument ARG is non-nil insert INFORMATION into current +buffer at point. This is very useful for doing things like inserting +a maintainer's email address into a mail buffer. + +If optional argument REMOTE is non-nil use a package list from a +remote site. For this to work `package-get-remote' must be non-nil. + +If this function is called interactively it will display INFORMATION +in the minibuffer." + (interactive "SPackage: \nSInfo: \nP") + (if remote + (package-get-require-base t) + (package-get-require-base nil)) + (let ((all-pkgs package-get-base) + info) + (loop until (equal package (caar all-pkgs)) + do (setq all-pkgs (cdr all-pkgs)) + do (if (not all-pkgs) + (error 'invalid-argument + (format "%s is not a valid package" package)))) + (setq info (plist-get (cadar all-pkgs) information)) + (if (interactive-p) + (if arg + (insert (format "%s" info)) + (if (package-get-key package :version) + (message "%s" info) + (message "%s (Package: %s is not installed)" info package))) + (if arg + (insert (format "%s" info)) + info)))) + +;;;###autoload +(defun package-get-list-packages-where (item field &optional arg) + "Return a list of packages that fulfill certain criteria. + +Argument ITEM, a symbol, is what you want to check for. ITEM must be a +symbol even when it doesn't make sense to be a symbol \(think, searching +maintainers, descriptions, etc\). The function will convert the symbol +to a string if a string is what is needed. The downside to this is that +ITEM can only ever be a single word. + +Argument FIELD, a symbol, is the field to check in. You can specify +any one of: + + Field Sane or Allowable Content + description any single word + category `standard' or `mule' + maintainer any single word + build-date yyyy-mm-dd + date yyyy-mm-dd + type `regular' or `single' + requires any package name + provides any symbol + priority `low', `medium', or `high' + +Optional Argument ARG, a prefix arg, insert output at point in the +current buffer." + (interactive "SList packages that have (item): \nSin their (field): \nP") + (package-get-require-base nil) + (let ((pkgs package-get-base) + (strings '(description category maintainer build-date date)) + (symbols '(type requires provides priority)) + results) + (cond ((memq field strings) + (setq item (symbol-name item)) + (while pkgs + (when (string-match item (package-get-info (caar pkgs) field)) + (setq results (push (caar pkgs) results))) + (setq pkgs (cdr pkgs)))) + ((memq field symbols) + (if (or (eq field 'type) + (eq field 'priority)) + (while pkgs + (when (eq item (package-get-info (caar pkgs) field)) + (setq results (push (caar pkgs) results))) + (setq pkgs (cdr pkgs))) + (while pkgs + (when (memq item (package-get-info (caar pkgs) field)) + (setq results (push (caar pkgs) results))) + (setq pkgs (cdr pkgs))))) + (t + (error 'wrong-type-argument field))) + (if (interactive-p) + (if arg + (insert (format "%s" results)) + (message "%s" results))) + results)) ;;;###autoload (defun package-get (package &optional version conflict install-dir) @@ -720,8 +987,7 @@ fetched packages should be installed. The value of `package-get-base' is used to determine what files should be retrieved. The value of `package-get-remote' is used to determine -where a package should be retrieved from. The sites are tried in -order so one is better off listing easily reached sites first. +where a package should be retrieved from. Once the package is retrieved, its md5 checksum is computed. If that sum does not match that stored in `package-get-base' for this version @@ -738,23 +1004,27 @@ successfully installed but errors occurred during initialization, or package) version)) (latest (package-get-info-prop this-package 'version)) (installed (package-get-key package :version)) - (this-requires (package-get-info-prop this-package 'requires)) (found nil) - (search-dirs package-get-remote) + (search-dir package-get-remote) (base-filename (package-get-info-prop this-package 'filename)) (package-status t) filenames full-package-filename) + (if (and (equal (package-get-info package 'category) "mule") + (not (featurep 'mule))) + (error 'invalid-state + "Mule packages can't be installed with a non-Mule XEmacs")) (if (null this-package) (if package-get-remote - (error "Couldn't find package %s with version %s" - package version) - (error "No download sites or local package locations specified."))) + (error 'search-failed + (format "Couldn't find package %s with version %s" + package version)) + (error 'syntax-error + "No download site or local package location specified."))) (if (null base-filename) - (error "No filename associated with package %s, version %s" - package version)) - (setq install-dir - (package-admin-get-install-dir package install-dir - (or (eq package 'mule-base) (memq 'mule-base this-requires)))) + (error 'syntax-error + (format "No filename associated with package %s, version %s" + package version))) + (setq install-dir (package-admin-get-install-dir package install-dir)) ;; If they asked for the latest using version=nil, don't get an older ;; version than we already have. @@ -767,9 +1037,9 @@ successfully installed but errors occurred during initialization, or latest)) (if (not (null version)) (warn "Installing %s package version %s, you had a newer version %s" - package latest installed) + package latest installed) (warn "Skipping %s package, you have a newer version %s" - package installed) + package installed) (throw 'skip-update t)))) ;; Contrive a list of possible package filenames. @@ -787,15 +1057,12 @@ successfully installed but errors occurred during initialization, or ;; and copy it into the staging directory. Then validate ;; the checksum. Finally, install the package. (catch 'done - (let (search-filenames current-dir-entry host dir current-filename - dest-filename) + (let (search-filenames host dir current-filename dest-filename) ;; In each search directory ... - (while search-dirs - (setq current-dir-entry (car search-dirs) - host (car current-dir-entry) - dir (car (cdr current-dir-entry)) - search-filenames filenames - ) + (when search-dir + (setq host (car search-dir) + dir (car (cdr search-dir)) + search-filenames filenames) ;; Look for one of the possible package filenames ... (while search-filenames @@ -803,56 +1070,45 @@ successfully installed but errors occurred during initialization, or dest-filename (package-get-staging-dir current-filename)) (cond ;; No host means look on the current system. - ( (null host) - (setq full-package-filename - (substitute-in-file-name - (expand-file-name current-filename - (file-name-as-directory dir)))) - ) + ((null host) + (setq full-package-filename + (substitute-in-file-name + (expand-file-name current-filename + (file-name-as-directory dir))))) ;; If it's already on the disk locally, and the size is - ;; greater than zero ... - ( (and (file-exists-p dest-filename) - (let (attrs) - ;; file-attributes could return -1 for LARGE files, - ;; but, hopefully, packages won't be that large. - (and (setq attrs (file-attributes dest-filename)) - (> (nth 7 attrs) 0)))) - (setq full-package-filename dest-filename) - ) + ;; correct + ((and (file-exists-p dest-filename) + (eq (nth 7 (file-attributes dest-filename)) + (package-get-info package 'size))) + (setq full-package-filename dest-filename)) ;; If the file exists on the remote system ... - ( (file-exists-p (package-get-remote-filename - current-dir-entry current-filename)) - ;; Get it - (setq full-package-filename dest-filename) - (message "Retrieving package `%s' ..." - current-filename) - (sit-for 0) - (copy-file (package-get-remote-filename current-dir-entry - current-filename) - full-package-filename t) - ) - ) + ((file-exists-p (package-get-remote-filename + search-dir current-filename)) + ;; Get it + (setq full-package-filename dest-filename) + (message "Retrieving package `%s' ..." + current-filename) + (sit-for 0) + (copy-file (package-get-remote-filename search-dir + current-filename) + full-package-filename t))) ;; If we found it, we're done. (if (and full-package-filename (file-exists-p full-package-filename)) (throw 'done nil)) ;; Didn't find it. Try the next possible filename. - (setq search-filenames (cdr search-filenames)) - ) - ;; Try looking in the next possible directory ... - (setq search-dirs (cdr search-dirs)) - ) - )) + (setq search-filenames (cdr search-filenames)))))) (if (or (not full-package-filename) (not (file-exists-p full-package-filename))) (if package-get-remote - (error "Unable to find file %s" base-filename) - (error - "No download sites or local package locations specified."))) + (error 'search-failed + (format "Unable to find file %s" base-filename)) + (error 'syntax-error + "No download sites or local package locations specified."))) ;; Validate the md5 checksum ;; Doing it with XEmacs removes the need for an external md5 program (message "Validating checksum for `%s'..." package) (sit-for 0) @@ -861,7 +1117,11 @@ successfully installed but errors occurred during initialization, or (if (not (string= (md5 (current-buffer)) (package-get-info-prop this-package 'md5sum))) - (error "Package %s does not match md5 checksum" base-filename))) + (progn + (delete-file full-package-filename) + (error 'process-error + (format "Package %s does not match md5 checksum %s has been deleted" + base-filename full-package-filename))))) (package-admin-delete-binary-package package install-dir) @@ -879,30 +1139,25 @@ successfully installed but errors occurred during initialization, or (progn (run-hook-with-args 'package-install-hook package install-dir) (message "Added package `%s'" package) - (sit-for 0) - ) + (sit-for 0)) (progn ;; display message only if there isn't already one. (if (not (current-message)) (progn (message "Added package `%s' (errors occurred)" package) - (sit-for 0) - )) + (sit-for 0))) (if package-status - (setq package-status 'errors)) - )) - ) + (setq package-status 'errors))))) (message "Installation of package %s failed." base-filename) (sit-for 0) (switch-to-buffer package-admin-temp-buffer) - (setq package-status nil) - )) + (delete-file full-package-filename) + (setq package-status nil))) (setq found t)) (if (and found package-get-remove-copy) (delete-file full-package-filename)) - package-status - ))) + package-status))) (defun package-get-info-find-package (which name) "Look in WHICH for the package called NAME and return all the info @@ -953,13 +1208,6 @@ md5sum - computed md5 checksum" (package-get-info-version (package-get-info-find-package package-list package) version) property)) -(defun package-get-set-version-prop (package-list package version - property value) - "A utility to make it easier to add a VALUE for a specific PROPERTY - in this VERSION of a specific PACKAGE kept in the PACKAGE-LIST. -Returns the modified PACKAGE-LIST. Any missing fields are created." - ) - (defun package-get-staging-dir (filename) "Return a good place to stash FILENAME when it is retrieved. Use `package-get-dir' for directory to store stuff. @@ -997,7 +1245,6 @@ If (car search) is nil, (cadr search is interpreted as a local directory). (concat dir "/")) filename)))) - (defun package-get-installedp (package version) "Determine if PACKAGE with VERSION has already been installed. I'm not sure if I want to do this by searching directories or checking @@ -1006,7 +1253,9 @@ some built in variables. For now, use packages-package-list." (equal (plist-get (package-get-info-find-package packages-package-list package) ':version) - (if (floatp version) version (string-to-number version)))) + (if (floatp version) + version + (string-to-number version)))) ;;;###autoload (defun package-get-package-provider (sym &optional force-current) @@ -1044,26 +1293,6 @@ lead to Emacs accessing remote sites." (message "No appropriate package found"))) found)) -;; -;; customize interfaces. -;; The group is in this file so that custom loads includes this file. -;; -(defgroup packages nil - "Configure XEmacs packages." - :group 'emacs) - -;;;###autoload -(defun package-get-custom () - "Fetch and install the latest versions of all customized packages." - (interactive) - (package-get-require-base t) - (mapcar (lambda (pkg) - (if (eval (intern (concat (symbol-name (car pkg)) "-package"))) - (package-get (car pkg) nil)) - t) - package-get-base) - (package-net-update-installed-db)) - (defun package-get-ever-installed-p (pkg &optional notused) (string-match "-package$" (symbol-name pkg)) (custom-initialize-set @@ -1073,26 +1302,5 @@ lead to Emacs accessing remote sites." (intern (substring (symbol-name pkg) 0 (match-beginning 0)))) t))) -(defvar package-get-custom-groups nil - "List of package-get-custom groups") - -(defun package-get-custom-add-entry (package props) - (let* ((category (plist-get props 'category)) - (group (intern (concat category "-packages"))) - (custom-var (intern (concat (symbol-name package) "-package"))) - (description (plist-get props 'description))) - (when (not (memq group package-get-custom-groups)) - (setq package-get-custom-groups (cons group - package-get-custom-groups)) - (eval `(defgroup ,group nil - ,(concat category " package group") - :group 'packages))) - (eval `(defcustom ,custom-var nil - ,description - :group ',group - :initialize 'package-get-ever-installed-p - :type 'boolean)))) - - (provide 'package-get) ;;; package-get.el ends here diff --git a/lisp/package-info.el b/lisp/package-info.el index 6226664..7428f49 100644 --- a/lisp/package-info.el +++ b/lisp/package-info.el @@ -94,7 +94,8 @@ author-version -- The original Author's version #. maintainer -- The package maintainer. category -- The build category." (unless noninteractive - (error "`batch-update-package-info' is to be used only with -batch")) + (error 'invalid-operation + "`batch-update-package-info' is to be used only with -batch")) (let ((version (nth 0 command-line-args-left)) (filename (nth 1 command-line-args-left)) (requires (nth 2 command-line-args-left)) diff --git a/lisp/package-net.el b/lisp/package-net.el index 1fadce1..cef7ace 100644 --- a/lisp/package-net.el +++ b/lisp/package-net.el @@ -136,7 +136,8 @@ (defun package-net-batch-generate-bin-ini () "Convert the package index to ini file format." (unless noninteractive - (error "`package-net-batch-generate-bin-ini' is to be used only with -batch")) + (error 'invalid-operation + "`package-net-batch-generate-bin-ini' is to be used only with -batch")) (package-net-generate-bin-ini package-net-setup-version)) ;;;###autoload diff --git a/lisp/package-ui.el b/lisp/package-ui.el index c0b93ad..60b31d0 100644 --- a/lisp/package-ui.el +++ b/lisp/package-ui.el @@ -80,11 +80,10 @@ Set this to `nil' to use the `default' face." :group 'pui :type 'face) - - - -(defvar pui-info-buffer "*Packages*" - "Buffer to use for displaying package information.") +(defcustom pui-info-buffer "*Packages*" + "*Buffer to use for displaying package information." + :group 'pui + :type 'string) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; End of user-changeable variables. @@ -105,6 +104,7 @@ Set this to `nil' to use the `default' face." (define-key m "q" 'pui-quit) (define-key m "g" 'pui-list-packages) (define-key m "i" 'pui-display-info) + (define-key m "m" 'pui-display-maintainer) (define-key m "?" 'describe-mode) (define-key m "v" 'pui-toggle-verbosity-redisplay) (define-key m "d" 'pui-toggle-package-delete-key) @@ -137,46 +137,11 @@ Set this to `nil' to use the `default' face." ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Configuration routines -(defun pui-directory-exists (dir) - "Check to see if DIR exists in `package-get-remote'." - (let (found) - (mapcar #'(lambda (item) - (if (and (null (car item)) - (string-equal (file-name-as-directory (car (cdr item))) - (file-name-as-directory dir))) - (setq found t))) - package-get-remote) - found - )) - -(defun pui-package-dir-list (buffer) - "In BUFFER, format the list of package binary paths." - (let ( (count 1) paths sys dir) - (set-buffer buffer) - (buffer-disable-undo buffer) - (erase-buffer buffer) - (insert "Existing package binary paths:\n\n") - (setq paths package-get-remote) - (while paths - (setq sys (car (car paths)) - dir (car (cdr (car paths)))) - (insert (format "%2s. " count)) - (if (null sys) - (insert dir) - (insert sys ":" dir)) - (insert "\n") - (setq count (1+ count)) - (setq paths (cdr paths)) - ) - (insert "\nThese are the places that will be searched for package binaries.\n") - (goto-char (point-min)) - )) - ;;;###autoload (defun package-ui-add-site (site) "Add site to package-get-remote and possibly offer to update package list." (let ((had-none (null package-get-remote))) - (push site package-get-remote) + (setq package-get-remote site) (when (and had-none package-get-was-current (y-or-n-p "Update Package list?")) (setq package-get-was-current nil) @@ -185,39 +150,64 @@ Set this to `nil' to use the `default' face." (save-window-excursion (pui-list-packages)))) (set-menubar-dirty-flag))) - ;;;###autoload -(defun pui-add-install-directory (dir) - "Add a new package binary directory to the head of `package-get-remote'. +(defun package-ui-download-menu () + "Build the `Add Download Site' menu." + (mapcar (lambda (site) + (vector (car site) + `(if (equal package-get-remote (quote ,(cdr site))) + (setq package-get-remote nil) + (package-ui-add-site (quote ,(cdr site)))) + ;; I've used radio buttons so that only a single + ;; site can be selected, but they are in fact + ;; toggles. SY. + :style 'radio + :selected `(equal package-get-remote (quote ,(cdr site))))) + package-get-download-sites)) + +;;;###autoload +(defun package-ui-pre-release-download-menu () + "Build the 'Pre-Release Download Sites' menu." + (mapcar (lambda (site) + (vector (car site) + `(if (equal package-get-remote (quote ,(cdr site))) + (setq package-get-remote nil) + (package-ui-add-site (quote ,(cdr site)))) + ;; I've used radio buttons so that only a single + ;; site can be selected, but they are in fact + ;; toggles. SY. + :style 'radio + :selected `(equal package-get-remote (quote ,(cdr site))))) + package-get-pre-release-download-sites)) + +;;;###autoload +(defun package-ui-site-release-download-menu () + "Build the 'Site Release Download Sites' menu." + (mapcar (lambda (site) + (vector (car site) + `(if (equal package-get-remote (quote ,(cdr site))) + (setq package-get-remote nil) + (package-ui-add-site (quote ,(cdr site)))) + ;; I've used radio buttons so that only a single + ;; site can be selected, but they are in fact + ;; toggles. SY. + :style 'radio + :selected `(equal package-get-remote (quote ,(cdr site))))) + package-get-site-release-download-sites)) + +;;;###autoload +(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 disk." - (interactive (let ( (tmpbuf (get-buffer-create - "*Existing Package Binary Paths*")) - dir) - (save-window-excursion - (save-excursion - (unwind-protect - (progn - (pui-package-dir-list tmpbuf) - (display-buffer tmpbuf) - (setq dir (read-directory-name - "New package binary directory to add? " - nil nil t)) - ) - (kill-buffer tmpbuf) - ))) - (list dir) - )) - (progn - (if (not (pui-directory-exists dir)) - (progn - (setq package-get-remote (cons (list nil dir) package-get-remote)) - (message "Package directory \"%s\" added." dir) - ) - (message "Directory \"%s\" already exists in `package-get-remote'." dir)) - )) + (interactive) + (let ((dir (read-directory-name + "New package binary directory to add? " + nil nil t))) + (setq package-get-remote (list nil dir)) + (message "Package directory \"%s\" added." dir))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Package list/installer routines @@ -238,8 +228,7 @@ disk." version)) (list " " pui-up-to-date-package-face) (list "*" pui-outdated-package-face))) - (list "-" pui-uninstalled-package-face)) - )) + (list "-" pui-uninstalled-package-face)))) (defun pui-update-package-display (extent &optional pkg-sym version) "Update the package status for EXTENT. @@ -272,9 +261,7 @@ and whether or not it is up-to-date." (goto-char (extent-start-position extent)) (delete-char 1) (insert sym-char) - (set-buffer-modified-p nil) - ) - )) + (set-buffer-modified-p nil)))) (defun pui-toggle-package (extent) (let (pkg-sym) @@ -286,8 +273,7 @@ and whether or not it is up-to-date." (cons pkg-sym pui-selected-packages)) (setq pui-deleted-packages (delete pkg-sym pui-deleted-packages))) - (pui-update-package-display extent pkg-sym) - )) + (pui-update-package-display extent pkg-sym))) (defun pui-toggle-package-key () "Select/unselect package for installation, using the keyboard." @@ -296,10 +282,9 @@ and whether or not it is up-to-date." (if (setq extent (extent-at (point) (current-buffer) 'pui)) (progn (pui-toggle-package extent) - (forward-line 1) - ) - (error "No package under cursor!")) - )) + (forward-line 1)) + (error 'invalid-operation + "No package under cursor!")))) (defun pui-toggle-package-delete (extent) (let (pkg-sym) @@ -311,8 +296,7 @@ and whether or not it is up-to-date." (cons pkg-sym pui-deleted-packages)) (setq pui-selected-packages (delete pkg-sym pui-selected-packages))) - (pui-update-package-display extent pkg-sym) - )) + (pui-update-package-display extent pkg-sym))) (defun pui-toggle-package-delete-key () @@ -322,10 +306,9 @@ and whether or not it is up-to-date." (if (setq extent (extent-at (point) (current-buffer) 'pui)) (progn (pui-toggle-package-delete extent) - (forward-line 1) - ) - (error "No package under cursor!")) - )) + (forward-line 1)) + (error 'invalid-operation + "No package under cursor!")))) (defun pui-current-package () (let ((extent (extent-at (point) (current-buffer) 'pui))) @@ -335,25 +318,23 @@ and whether or not it is up-to-date." (defun pui-toggle-package-event (event) "Select/unselect package for installation, using the mouse." (interactive "e") - (let* ( (ep (event-point event)) - (buffer (window-buffer (event-window event))) - (extent (extent-at ep buffer 'pui-package)) - ) - (pui-toggle-package extent) - )) + (let* ((ep (event-point event)) + (buffer (window-buffer (event-window event))) + (extent (extent-at ep buffer 'pui-package))) + (pui-toggle-package extent))) (defun pui-toggle-verbosity-redisplay () "Toggle verbose package info." (interactive) (progn (setq pui-list-verbose (not pui-list-verbose)) - (pui-list-packages) - )) + (pui-list-packages))) (defun pui-install-selected-packages () "Install selected packages." (interactive) - (let ( (tmpbuf "*Packages-To-Remove*") do-delete) + (let ((tmpbuf "*Packages-To-Remove*") + do-delete) (when pui-deleted-packages (save-window-excursion (with-output-to-temp-buffer tmpbuf @@ -362,8 +343,7 @@ and whether or not it is up-to-date." #'string<) :activate-callback nil :help-string "Packages selected for removal:\n" - :completion-string t - )) + :completion-string t)) (setq tmpbuf (get-buffer-create tmpbuf)) (display-buffer tmpbuf) (setq do-delete (yes-or-no-p "Remove these packages? ")) @@ -372,11 +352,12 @@ and whether or not it is up-to-date." (message "Deleting selected packages ...") (sit-for 0) (mapcar (lambda (pkg) (package-admin-delete-binary-package - pkg (package-admin-get-install-dir pkg nil))) + pkg (package-admin-get-install-dir pkg))) (nreverse pui-deleted-packages)) (message "Packages deleted")))) - (let ( (tmpbuf "*Packages-To-Install*") do-install) + (let ((tmpbuf "*Packages-To-Install*") + do-install) (if pui-selected-packages (progn ;; Don't change window config when asking the user if he really @@ -390,21 +371,18 @@ and whether or not it is up-to-date." (sort (mapcar #'symbol-name pui-selected-packages) #'string<) :activate-callback nil :help-string "Packages selected for installation:\n" - :completion-string t - )) + :completion-string t)) (setq tmpbuf (get-buffer-create tmpbuf)) (display-buffer tmpbuf) (setq do-install (y-or-n-p "Install these packages? ")) - (kill-buffer tmpbuf) - ) + (kill-buffer tmpbuf)) (if do-install (progn (save-excursion ;; Clear old temp buffer history (set-buffer (get-buffer-create package-admin-temp-buffer)) (buffer-disable-undo package-admin-temp-buffer) - (erase-buffer package-admin-temp-buffer) - ) + (erase-buffer package-admin-temp-buffer)) (message "Installing selected packages ...") (sit-for 0) (if (catch 'done (mapcar (lambda (pkg) @@ -415,18 +393,14 @@ and whether or not it is up-to-date." t) (progn (pui-list-packages) - (message "Packages installed") - )) - ) - (clear-message) - ) - ) + (message "Packages installed")))) + (clear-message))) (if pui-deleted-packages (pui-list-packages) - (error "No packages have been selected!"))) + (error 'invalid-operation + "No packages have been selected!"))) ;; sync with windows type systems - (package-net-update-installed-db) - )) + (package-net-update-installed-db))) (defun pui-add-required-packages () "Select packages required by those already selected for installation." @@ -482,20 +456,21 @@ and whether or not it is up-to-date." nil nil nil nil nil 'pui) (message "added dependencies")) (clear-message))) - (error "No packages have been selected!")))) + (error 'invalid-operation + "No packages have been selected!")))) (defun pui-help-echo (extent &optional force-update) "Display additional package info in the modeline. EXTENT determines the package to display (the package information is attached to the extent as properties)." - (let (pkg-sym info inst-ver auth-ver date maintainer balloon req) + (let (pkg-sym info inst-ver inst-auth-ver auth-ver date maintainer balloon req) (if (or force-update (not (current-message)) - (string-match ".*: .*: " (current-message)) - ) + (string-match ".*: .*: " (current-message))) (progn (setq pkg-sym (extent-property extent 'pui-package) info (extent-property extent 'pui-info) inst-ver (package-get-key pkg-sym :version) + inst-auth-ver (package-get-key pkg-sym :author-version) auth-ver (package-get-info-prop info 'author-version) date (package-get-info-prop info 'date) maintainer (package-get-info-prop info 'maintainer) @@ -507,22 +482,16 @@ attached to the extent as properties)." (setq balloon (format " Package Information: [For package: \"%s\"] ================ -Installed Version : %.2f -Author Version : %s -Maintainer: %s -Released: %s +Installed Upstream Ver: %s Available Upstream Ver: %s +Maintainer : %s +Released : %s Required Packages : %s\n\n" - pkg-sym inst-ver auth-ver maintainer + pkg-sym inst-auth-ver auth-ver maintainer date req)) (set-extent-property extent 'balloon-help balloon))) - (if pui-list-verbose - (format - "Inst V: %.2f Auth V: %s Maint: %s" - inst-ver auth-ver maintainer) - (format "%.2f : %s : %s" - inst-ver auth-ver maintainer)) - )) - )) + (format + "Installed upstream ver: %s Available upstream ver: %s" + inst-auth-ver auth-ver))))) (defun pui-display-info (&optional no-error event) "Display additional package info in the modeline. @@ -535,8 +504,25 @@ Designed to be called interactively (from a keypress)." (message (pui-help-echo extent t)) (if no-error (clear-message nil) - (error "No package under cursor!"))) - ))) + (error 'invalid-operation + "No package under cursor!")))))) + +(defun pui-display-maintainer (&optional no-error event) + "Display a package's maintainer in the minibuffer." + (interactive) + (let (extent pkg-sym info maintainer) + (save-excursion + (beginning-of-line) + (if (setq extent (extent-at (point) (current-buffer) 'pui)) + (progn + (setq pkg-sym (extent-property extent 'pui-package) + info (extent-property extent 'pui-info) + maintainer (package-get-info-prop info 'maintainer)) + (message (format "Maintainer: %s" maintainer))) + (if no-error + (clear-message nil) + (error 'invalid-operation + "No package under cursor!")))))) (defvar pui-menu '("Packages" @@ -580,11 +566,13 @@ Useful keys: `\\[pui-add-required-packages]' to add any packages required by those selected. `\\[pui-install-selected-packages]' to install/delete selected packages. `\\[pui-display-info]' to display additional information about the package in the modeline. + `\\[pui-display-maintainer]' to display the package's maintainer in the minibuffer `\\[pui-list-packages]' to refresh the package list. `\\[pui-toggle-verbosity-redisplay]' to toggle between a verbose and non-verbose display. `\\[pui-quit]' to kill this buffer. " - (error "You cannot enter this mode directly. Use `pui-list-packages'")) + (error 'invalid-operation + "You cannot enter this mode directly. Use `pui-list-packages'")) (put 'list-packages-mode 'mode-class 'special) @@ -597,9 +585,9 @@ which are out-of-date (a newer version is available). The user can then select packages for installation via the keyboard or mouse." (interactive) (package-get-require-base t) - (let ( (outbuf (get-buffer-create pui-info-buffer)) - (sep-string "===============================================================================\n") - start ) + (let ((outbuf (get-buffer-create pui-info-buffer)) + (sep-string "===============================================================================\n") + start) (message "Creating package list ...") (sit-for 0) (set-buffer outbuf) (setq buffer-read-only nil) @@ -643,27 +631,21 @@ Warning: No download sites specified. Package index may be out of date. (progn (setq current-vers (package-get-key pkg-sym :version)) (cond - ( (not current-vers) - (setq current-vers "-----") ) - ( (stringp current-vers) - (setq current-vers - (format "%.2f" - (string-to-number current-vers))) ) - ( (numberp current-vers) - (setq current-vers (format "%.2f" current-vers)) ) - ) + ((not current-vers) + (setq current-vers "-----")) + ((stringp current-vers) + (setq current-vers + (format "%.2f" + (string-to-number current-vers)))) + ((numberp current-vers) + (setq current-vers (format "%.2f" current-vers)))) (insert (format "%s %-15s %-5.2f %-5s %s\n" (car disp) pkg-sym (if (stringp version) (string-to-number version) version) - current-vers desc)) - ;; (insert - ;; (format "\t\t %-12s %s\n" - ;; (package-get-info-prop info 'author-version) - ;; (package-get-info-prop info 'date))) - ) + current-vers desc))) (insert (format "%s %-15s %-5s %s\n" (car disp) pkg-sym version desc))) @@ -681,8 +663,7 @@ Warning: No download sites specified. Package index may be out of date. (set-extent-property extent 'pui-package pkg-sym) (set-extent-property extent 'pui-info info) (set-extent-property extent 'help-echo 'pui-help-echo) - (set-extent-property extent 'keymap pui-package-keymap) - )) + (set-extent-property extent 'keymap pui-package-keymap))) (sort (copy-sequence package-get-base) #'(lambda (a b) (string< (symbol-name (car a)) @@ -700,9 +681,7 @@ Warning: No download sites specified. Package index may be out of date. (set-buffer-menubar current-menubar) (add-submenu '() pui-menu) (setq mode-popup-menu pui-menu)) - (clear-message) - ;; (message (substitute-command-keys "Press `\\[pui-help]' for help.")) - )) + (clear-message))) ;;;###autoload (defalias 'list-packages 'pui-list-packages) diff --git a/lisp/packages.el b/lisp/packages.el index e0b8fdb..86f1782 100644 --- a/lisp/packages.el +++ b/lisp/packages.el @@ -1,6 +1,7 @@ ;;; packages.el --- Low level support for XEmacs packages ;; Copyright (C) 1997 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003 Ben Wing. ;; Author: Steven L Baur ;; Maintainer: Steven L Baur @@ -96,6 +97,10 @@ show up in. The third component is a thunk which, if it returns NIL, causes the directory to be ignored." (list + (list (paths-construct-path (list user-init-directory "site-packages")) + 'early #'(lambda () t)) + (list (paths-construct-path (list user-init-directory "infodock-packages")) + 'early #'(lambda () (featurep 'infodock))) (list (paths-construct-path (list user-init-directory "mule-packages")) 'early #'(lambda () (featurep 'mule))) (list (paths-construct-path (list user-init-directory "xemacs-packages")) @@ -129,11 +134,13 @@ the directory to be ignored." (defun package-require (name version) (let ((pkg (assq name packages-package-list))) (cond ((null pkg) - (error "Package %s has not been loaded into this XEmacsen" - name)) + (error 'invalid-state + (format "Package %s has not been loaded into this XEmacsen" + name))) ((< (package-get-key name :version) version) - (error "Need version %g of package %s, got version %g" - version name (cdr pkg))) + (error 'search-failed + (format "Need version %g of package %s, got version %g" + version name (cdr pkg)))) (t t)))) (defun package-delete-name (name) @@ -144,40 +151,14 @@ the directory to be ignored." ;; one. (while (setq pkg (assq name packages-package-list)) (setq packages-package-list (delete pkg (copy-alist - packages-package-list))) - ) - )) + packages-package-list)))))) ;;; Build time stuff (defvar autoload-file-name "auto-autoloads.el" "Filename that autoloads are expected to be found in.") -(defvar packages-hardcoded-lisp - '( - ;; Nothing at this time - ) - "Lisp packages that are always dumped with XEmacs. -This includes every package that is loaded directly by a package listed -in dumped-lisp.el and is not itself listed.") - -(defvar packages-useful-lisp - '("bytecomp" - "byte-optimize" - "shadow" - "cl-macs") - "Lisp packages that need early byte compilation.") - -(defvar packages-unbytecompiled-lisp - '("paths.el" - "dumped-lisp.el" - "dumped-pkg-lisp.el" - "version.el" - "very-early-lisp.el") - "Lisp packages that should not be byte compiled.") - - -;; Copied from help.el, could possibly move it to here permanently. +;; Moved from help.el. ;; Unlike the FSF version, our `locate-library' uses the `locate-file' ;; primitive, which should make it lightning-fast. @@ -352,7 +333,7 @@ This function is basically a wrapper over `locate-file'." ;; make sure paths-find-version-directory and paths-find-site-directory ;; don't both pick up version-independent directories ... (let ((version-directory (paths-find-version-directory roots base nil nil t)) - (site-directory (paths-find-site-directory roots base nil nil t))) + (site-directory (paths-find-site-directory roots base))) (paths-uniq-append (and version-directory (list version-directory)) (and site-directory (list site-directory))))) diff --git a/lisp/specifier.el b/lisp/specifier.el index fb26c2e..55801b1 100644 --- a/lisp/specifier.el +++ b/lisp/specifier.el @@ -1,7 +1,7 @@ ;;; specifier.el --- Lisp interface to specifiers -;; Copyright (C) 1997 Free Software Foundation, Inc. -;; Copyright (C) 1995, 1996, 2000 Ben Wing. +;; Copyright (C) 1997, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1996, 2000, 2002 Ben Wing. ;; Author: Ben Wing ;; Keywords: internal, dumped @@ -32,16 +32,15 @@ ;;; Code: (defun make-specifier-and-init (type spec-list &optional dont-canonicalize) - "Create and initialize a new specifier. - -This is a front-end onto `make-specifier' that allows you to create a -specifier and add specs to it at the same time. TYPE specifies the -specifier type. SPEC-LIST supplies the specification(s) to be added -to the specifier. Normally, almost any reasonable abbreviation of the -full spec-list form is accepted, and is converted to the full form; -however, if optional argument DONT-CANONICALIZE is non-nil, this -conversion is not performed, and the SPEC-LIST must already be in full -form. See `canonicalize-spec-list'." + "Create and initialize a specifier of type TYPE with spec(s) SPEC-LIST. + +A convenience API combining `make-specifier' and `set-specifier', allowing you +to create a specifier and add specs to it at the same time. +TYPE specifies the specifier type. See `make-specifier' for known types. +SPEC-LIST supplies the specification(s) to be added to the specifier, in any + form acceptable to `canonicalize-spec-list'. +Optional DONT-CANONICALIZE, if non-nil, inhibits the conversion, and the + SPEC-LIST must already be in full form." (let ((sp (make-specifier type))) (if (not dont-canonicalize) (setq spec-list (canonicalize-spec-list spec-list type))) @@ -53,10 +52,12 @@ form. See `canonicalize-spec-list'." (defun map-specifier (ms-specifier ms-func &optional ms-locale ms-maparg) "Apply MS-FUNC to the specification(s) for MS-LOCALE in MS-SPECIFIER. -If MS-LOCALE is a locale, MS-FUNC will be called for that locale. -If MS-LOCALE is a locale type, MS-FUNC will be mapped over all locales -of that type. If MS-LOCALE is 'all or nil, MS-FUNC will be mapped -over all locales in MS-SPECIFIER. +If optional MS-LOCALE is a locale, MS-FUNC will be called for that locale. +If MS-LOCALE is a locale type, MS-FUNC will be mapped over all locales of that +type. If MS-LOCALE is 'all or nil, MS-FUNC will be mapped over all locales in +MS-SPECIFIER. + +Optional MS-MAPARG will be passed to MS-FUNC. MS-FUNC is called with four arguments: the MS-SPECIFIER, the locale being mapped over, the inst-list for that locale, and the @@ -76,7 +77,7 @@ returns nil." (defun canonicalize-inst-pair (inst-pair specifier-type &optional noerror) "Canonicalize the given INST-PAIR. -SPECIFIER-TYPE specifies the type of specifier that this SPEC-LIST +SPECIFIER-TYPE specifies the type of specifier that this INST-PAIR will be used for. Canonicalizing means converting to the full form for an inst-pair, i.e. @@ -169,8 +170,7 @@ otherwise return t." (defun canonicalize-spec (spec specifier-type &optional noerror) "Canonicalize the given SPEC (a specification). -SPECIFIER-TYPE specifies the type of specifier that this SPEC-LIST -will be used for. +SPECIFIER-TYPE is the type of specifier that this SPEC will be used for. Canonicalizing means converting to the full form for a spec, i.e. `(LOCALE (TAG-SET . INSTANTIATOR) ...)'. This function accepts a @@ -222,9 +222,42 @@ a possibly abbreviated specification or a list of such things. (See accepted by `set-specifier' and such into a form suitable for `add-spec-list-to-specifier'. -This function tries extremely hard to resolve any ambiguities, -and the built-in specifier types (font, image, toolbar, etc.) are -designed so that there won't be any ambiguities. +The canonicalization algorithm is as follows: + +1. Attempt to parse SPEC-LIST as a single, possibly abbreviated, specification. +2. If (1) fails, attempt to parse SPEC-LIST as a list of (abbreviated) + specifications. +3. If (2) fails, SPEC-LIST is invalid. + +A possibly abbreviated specification SPEC is parsed by + +1. Attempt to parse SPEC as a possibly abbreviated inst-list. +2. If (1) fails, attempt to parse SPEC as a cons of a locale and an + (abbreviated) inst-list. +3. If (2) fails, SPEC is invalid. + +A possibly abbreviated inst-list INST-LIST is parsed by + +1. Attempt to parse INST-LIST as a possibly abbreviated inst-pair. +2. If (1) fails, attempt to parse INST-LIST as a list of (abbreviated) + inst-pairs. +3. If (2) fails, INST-LIST is invalid. + +A possibly abbreviated inst-pair INST-PAIR is parsed by + +1. Check if INST-PAIR is `valid-instantiator-p'. +2. If not, check if INST-PAIR is a cons of something that is a tag, ie, + `valid-specifier-tag-p', and something that is `valid-instantiator-p'. +3. If not, check if INST-PAIR is a cons of a list of tags and something that + is `valid-instantiator-p'. + +In summary, this function generally prefers more abbreviated forms. + +This function tries extremely hard to resolve any ambiguities, and the +built-in specifier types (font, image, toolbar, etc.) are designed so that +there won't be any ambiguities. (#### Unfortunately there are bugs in the +treatment of toolbar spec-lists and generic spec-lists; avoid depending on +canonicalization for these types.) If NOERROR is nil, signal an error if the spec-list is invalid; otherwise return t." @@ -265,51 +298,47 @@ otherwise return t." (nreverse result))))))) (defun set-specifier (specifier value &optional locale tag-set how-to-add) - "Add a specification or specifications to SPECIFIER. + "Add the specification(s) given by VALUE to SPECIFIER in LOCALE. + +VALUE may be any of the values accepted by `canonicalize-spec-list', including + +-- an instantiator (either a Lisp object which will be returned when the + specifier is instanced, or a Lisp object that can be instantiated to + produce an opaque value: eg, a font name (string) can be used for a font + specifier, but an instance will be a font object) +-- a list of instantiators +-- a cons of a locale and an instantiator, or of a locale and a list of + instantiators +-- a cons of a tag or tag-set and an instantiator (or list of instantiators) +-- a cons of a locale and the previous type of item +-- a list of one or more of any of the previous types of items +-- a canonical spec-list. + +See `canonicalize-spec-list' for details. If you need to know the details, +though, strongly consider using the unambiguous APIs `add-spec-to-specifier' +and `add-spec-list-to-specifier' instead. + +Finally, VALUE can itself be a specifier (of the same type as +SPECIFIER), if you want to copy specifications from one specifier +to another; this is equivalent to calling `copy-specifier', and +LOCALE, TAG-SET, and HOW-TO-ADD have the same semantics as with +that function. + +Note that a VALUE of `nil' is either illegal or will be treated as a value of +`nil'; it does not remove existing specifications. Use `remove-specifier' for +that. N.B. `remove-specifier' defaults to removing all specifications, not +just the 'global one! + +Warning: this function is inherently heuristic, and should not be relied on to +properly resolve ambiguities, when specifier instantiators can be lists +\(currently, for toolbar specifiers and generic specifiers). In those cases +use either `add-spec-to-specifier' or `add-spec-list-to-specifier'. -This function adds a specification of VALUE in locale LOCALE. LOCALE indicates where this specification is active, and should be a buffer, a window, a frame, a device, or the symbol `global' to -indicate that it applies everywhere. LOCALE usually defaults to -`global' if omitted. - -VALUE is usually what is called an \"instantiator\" (which, roughly -speaking, corresponds to the \"value\" of the property governed by -SPECIFIER). The valid instantiators for SPECIFIER depend on the type -of SPECIFIER (which you can determine using `specifier-type'). The -specifier `scrollbar-width', for example, is of type `integer', -meaning its valid instantiators are integers. The specifier governing -the background color of the `default' face (you can retrieve this -specifier using `(face-background 'default)') is of type `color', -meaning its valid instantiators are strings naming colors and -color-instance objects. For some types of specifiers, such as `image' -and `toolbar', the instantiators can be very complex. Generally this -is documented in the appropriate creation function -- -e.g. `make-color-specifier', `make-font-specifier', -`make-image-specifier' -- or in the global variable holding the most -common specifier for that type (`default-toolbar', `default-gutter', -`current-display-table'). - -NOTE: It does *not* work to give a VALUE of nil as a way of -removing the specifications for a locale. Use `remove-specifier' -instead. (And keep in mind that, if you omit the LOCALE argument -to `remove-specifier', it removes *all* specifications! If you -want to remove just the `global' specification, make sure to -specify a LOCALE of `global'.) - -VALUE can also be a list of instantiators. This means basically, -\"try each one in turn until you get one that works\". This allows -you to give funky instantiators that may only work in some cases, -and provide more normal backups for the other cases. (For example, -you might like the color \"darkseagreen2\", but some X servers -don't recognize this color, so you could provide a backup -\"forest green\". Color TTY devices probably won't recognize this -either, so you could provide a second backup \"green\". You'd -do this by specifying this list of instantiators: - -'(\"darkseagreen2\" \"forest green\" \"green\") - -VALUE can also be various more complicated forms; see below. +indicate that it applies everywhere. LOCALE defaults to +`global' if omitted, and is overridden by locales provided by VALUE (in the +cases where value is a full specification or a spec-list). Optional argument TAG-SET is a tag or a list of tags, to be associated with the VALUE. Tags are symbols (usually naming device types, such @@ -329,25 +358,6 @@ the default behavior of `remove-tag-set-prepend' is usually fine. See `copy-specifier' and `add-spec-to-specifier' for a full description of what each of these means. -VALUE can actually be anything acceptable to `canonicalize-spec-list'; -this includes, among other things: - --- a cons of a locale and an instantiator (or list of instantiators) --- a cons of a tag or tag-set and an instantiator (or list of - instantiators) --- a cons of a locale and the previous type of item --- a list of one or more of any of the previous types of items - -However, in these cases, you cannot give a LOCALE or TAG-SET, -because they do not make sense. (You will probably get an error if -you try this.) - -Finally, VALUE can itself be a specifier (of the same type as -SPECIFIER), if you want to copy specifications from one specifier -to another; this is equivalent to calling `copy-specifier', and -LOCALE, TAG-SET, and HOW-TO-ADD have the same semantics as with -that function. - Note that `set-specifier' is exactly complementary to `specifier-specs' except in the case where SPECIFIER has no specs at all in it but nil is a valid instantiator (in that case, `specifier-specs' will return @@ -355,14 +365,7 @@ nil (meaning no specs) and `set-specifier' will interpret the `nil' as meaning \"I'm adding a global instantiator and its value is `nil'\"), or in strange cases where there is an ambiguity between a spec-list and an inst-list, etc. (The built-in specifier types are designed -in such a way as to avoid any such ambiguities.) - -NOTE: If you want to work with spec-lists, you should probably not -use either `set-specifier' or `specifier-specs', but should use the -lower-level functions `add-spec-list-to-specifier' and `specifier-spec-list'. -These functions always work with fully-qualified spec-lists; thus, there -is no possibility for ambiguity and no need to go through the function -`canonicalize-spec-list', which is potentially time-consuming." +in such a way as to avoid any such ambiguities.)" ;; backward compatibility: the old function had HOW-TO-ADD as the ;; third argument and no arguments after that. @@ -406,7 +409,7 @@ is no possibility for ambiguity and no need to go through the function value) (defun modify-specifier-instances (specifier func &optional args force default - locale tag-set) + locale tag-set) "Modify all specifications that match LOCALE and TAG-SET by FUNC. For each specification that exists for SPECIFIER, in locale LOCALE diff --git a/lisp/update-elc.el b/lisp/update-elc.el index 9dcc274..13524f6 100644 --- a/lisp/update-elc.el +++ b/lisp/update-elc.el @@ -111,7 +111,6 @@ preloaded-file-list (if (featurep 'utf-2000) system-char-db-source-file-list) - packages-useful-lisp site-load-packages)) (while preloaded-file-list (let ((arg (car preloaded-file-list))) @@ -136,25 +135,25 @@ dumped-exe)))) (setq need-to-dump t))) - (if (null (member (file-name-nondirectory arg) - packages-unbytecompiled-lisp)) +; (if (null (member (file-name-nondirectory arg) +; packages-unbytecompiled-lisp)) +; (progn + (setq arg (locate-library arg)) + (if (null arg) (progn - (setq arg (locate-library arg)) - (if (null arg) - (progn - (print (format "Error: Library file %s not found" - (car preloaded-file-list))) - ;; Uncomment in case of trouble - ;;(print (format "late-packages: %S" late-packages)) - ;;(print (format "guessed-roots: %S" (paths-find-emacs-roots invocation-directory invocation-name))) - (kill-emacs))) - (if (string-match "\\.elc?\\'" arg) - (setq arg (substring arg 0 (match-beginning 0)))) - (if (and (null (member arg processed)) - (file-exists-p (concat arg ".el")) - (file-newer-than-file-p (concat arg ".el") - (concat arg ".elc"))) - (setq processed (cons (concat arg ".el") processed))))) + (print (format "Error: Library file %s not found" + (car preloaded-file-list))) + ;; Uncomment in case of trouble + ;;(print (format "late-packages: %S" late-packages)) + ;;(print (format "guessed-roots: %S" (paths-find-emacs-roots invocation-directory invocation-name))) + (kill-emacs))) + (if (string-match "\\.elc?\\'" arg) + (setq arg (substring arg 0 (match-beginning 0)))) + (if (and (null (member arg processed)) + (file-exists-p (concat arg ".el")) + (file-newer-than-file-p (concat arg ".el") + (concat arg ".elc"))) + (setq processed (cons (concat arg ".el") processed))) (setq preloaded-file-list (cdr preloaded-file-list)))) (if need-to-dump diff --git a/lisp/utf-2000/README.en b/lisp/utf-2000/README.en index a68a9a5..35fb06b 100644 --- a/lisp/utf-2000/README.en +++ b/lisp/utf-2000/README.en @@ -1,5 +1,5 @@ CHISE character database format (S-expression version) -+ + * Relations between Characters Property-name `->foo' or `<-foo' mean relations between characters. @@ -55,7 +55,7 @@ list describes meaning of keys: kangxi $B9/_f;zE5(B guangyun (kouin) $B9-1$(B daikanwa (morohashi-daikanwa) $BBg4AOB<-E5(B - ruishuu-meigishou $BN`f\L>5A>6(B + ruijumyougishou (ruishuu-meigishou) $BN`f\L>5A>6(B zhengyun (seiin) $B@51$(B zhengzi-tong (seiji-tsuu) $B@5;z$(CwW(B shuowen-tongxun-dingsheng @@ -65,6 +65,8 @@ list describes meaning of keys: (sougen-irai-zokujifu) $BAW850JMhB/;zIh(B yuquan $B6L@t(B chuanpian (senhen) $B@nJS(B + kanjo $B4A=q(B + ronkou $BO@9U(B ** Properties diff --git a/lisp/win32-native.el b/lisp/win32-native.el index a7187e2..23b38d0 100644 --- a/lisp/win32-native.el +++ b/lisp/win32-native.el @@ -56,8 +56,8 @@ (setq path-separator ";") ;; Set the null device (for compile.el). -;; #### There should be such a global thingy as null-device - kkm -(setq grep-null-device "NUL") +;; Backward-compatibility; recent compile.el uses null-device if available. +(setq grep-null-device null-device) ;; Set the grep regexp to match entries with drive letters. (setq grep-regexp-alist diff --git a/lisp/window-xemacs.el b/lisp/window-xemacs.el index 4950427..502c6dc 100644 --- a/lisp/window-xemacs.el +++ b/lisp/window-xemacs.el @@ -385,7 +385,7 @@ Returns the window displaying BUFFER." ;; and does `returns' all over the place and there's no sense ;; in trying to rewrite it to be more Lispy. (catch 'done - (let (window old-frame target-frame explicit-frame) + (let (window old-frame target-frame explicit-frame shrink-it) (setq old-frame (or (last-nonminibuf-frame) (selected-frame))) (setq buffer (get-buffer buffer)) (check-argument-type 'bufferp buffer) @@ -573,9 +573,7 @@ Returns the window displaying BUFFER." (and (window-leftmost-p window) (window-rightmost-p window)))) (setq window (split-window window)) - (let (upper -;; lower - other) + (let (upper other) (setq window (get-lru-window target-frame)) ;; If the LRU window is selected, and big enough, ;; and can be split, split it. @@ -605,11 +603,9 @@ Returns the window displaying BUFFER." ;; even out their heights. (if (window-previous-child window) (setq other (window-previous-child window) -;; lower window upper other)) (if (window-next-child window) (setq other (window-next-child window) -;; lower other upper window)) ;; Check that OTHER and WINDOW are vertically arrayed. (if (and other @@ -622,8 +618,11 @@ Returns the window displaying BUFFER." 2) (window-height upper)) nil upper)) - (if shrink-to-fit - (shrink-window-if-larger-than-buffer window))))) + ;; Klaus Berndl : Only in + ;; this situation we shrink-to-fit but we can do + ;; this first after we have displayed buffer in + ;; window (s.b. (set-window-buffer window buffer)) + (setq shrink-it shrink-to-fit)))) (setq window (get-lru-window target-frame))) @@ -636,6 +635,12 @@ Returns the window displaying BUFFER." (set-window-buffer window buffer) + ;; Now window's previous buffer has been brought to the top + ;; of the MRU chain and window displays buffer - now we can + ;; shrink-to-fit if necessary + (if shrink-it + (shrink-window-if-larger-than-buffer window)) + (display-buffer-1 window))))) (or (equal wconfig (current-window-configuration)) (push-window-configuration wconfig)) diff --git a/lwlib/ChangeLog b/lwlib/ChangeLog index 24b7bc7..52502ed 100644 --- a/lwlib/ChangeLog +++ b/lwlib/ChangeLog @@ -1,3 +1,7 @@ +2004-02-02 Vin Shelton + + * XEmacs 21.4.15 is released + 2003-09-03 Vin Shelton * XEmacs 21.4.14 is released diff --git a/man/ChangeLog b/man/ChangeLog index d332342..21e5cd0 100644 --- a/man/ChangeLog +++ b/man/ChangeLog @@ -1,3 +1,144 @@ +2004-02-02 Vin Shelton + + * XEmacs 21.4.15 is released + +2004-01-27 Stephen J. Turnbull + + * lispref/lispref.texi (Top): Pluralize node name Specifier Examples. + * lispref/specifiers.texi: Synch to 21.5 where appropriate. + +2003-11-04 Stephen J. Turnbull + + * xemacs-faq.texi: Fix Tony Rossini's address. + +2004-01-25 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-08-15 Stephen J. Turnbull + + * internals/internals.texi: Update copyright notice. + (GCPROing): Add missing period. + (Adding Global Lisp Variables): general.c -> general-slots.h. + (A Reader's Guide to XEmacs Coding Conventions): New node. + +2003-10-22 Ilya N. Golubev + + * custom.texi (The Init File): + * xemacs-faq.texi (Q2.1.3): + (Q2.1.5): + * internals/internals.texi (Modules for Internationalization): + * lispref/display.texi (Beeping): + * lispref/ldap.texi (Encoder/Decoder Functions): + * lispref/markers.texi (The Mark): + (The Region): + * lispref/menus.texi (Menu Accelerator Functions): + * lispref/numbers.texi (Math Functions): + * lispref/packaging.texi (package-compile.el): + (Makefile Targets): + (Local.rules File): + * lispref/postgresql.texi (libpq Lisp Symbols and DataTypes): + (libpq Lisp Variables): + (Synchronous Interface Functions): + (Other libpq Functions): + * new-users-guide/custom2.texi (Init File): + (Setting Variables): + * new-users-guide/files.texi (File Names): + (Saving Files): + * new-users-guide/search.texi (Search and Replace): + * xemacs/custom.texi (X Resources): + Fix up erroneous uses of @var instead of @code for the names of + particular variables in programming languages. + +2003-10-20 Ilya N. Golubev + + * lispref/tips.texi (Style Tips): Note disabling undo in temporary + buffers. + +2003-10-16 Ilya N. Golubev + + * lispref/tips.texi (Comment Tips): Typo fix. + +2003-09-22 Adrian Aichner + + * lispref/backups.texi (Reverting): Fix the PRINTED-MANUAL-TITLE + argument for a cross reference to "The XEmacs User's Manual". + 2003-09-03 Vin Shelton * XEmacs 21.4.14 is released diff --git a/man/custom.texi b/man/custom.texi index 66acee1..a3960a8 100644 --- a/man/custom.texi +++ b/man/custom.texi @@ -291,7 +291,7 @@ and older XEmacs) and is @file{custom.el} in the same directory as @file{init.el} (in XEmacs 21.4 and later). If you use another file, you must explicitly load it yourself. -As of XEmacs 21.4.7, when @var{custom-file} is present, it is loaded +As of XEmacs 21.4.7, when @code{custom-file} is present, it is loaded @emph{after} @file{init.el}. This is likely to change in the future, because (1) actions in @file{init.el} often would like to depend on customizations for consistent appearance and (2) Custom is quite brutal diff --git a/man/internals/internals.texi b/man/internals/internals.texi index 548a62f..322f7ef 100644 --- a/man/internals/internals.texi +++ b/man/internals/internals.texi @@ -12,7 +12,7 @@ Copyright @copyright{} 1992 - 1996 Ben Wing. Copyright @copyright{} 1996, 1997 Sun Microsystems. -Copyright @copyright{} 1994 - 1998 Free Software Foundation. +Copyright @copyright{} 1994 - 1998, 2002, 2003 Free Software Foundation. Copyright @copyright{} 1994, 1995 Board of Trustees, University of Illinois. @@ -1938,6 +1938,7 @@ get something that appears to work, but which will crash in odd situations, often in code far away from where the actual breakage is. @menu +* A Reader's Guide to XEmacs Coding Conventions:: * General Coding Rules:: * Writing Lisp Primitives:: * Writing Good Comments:: @@ -1947,6 +1948,99 @@ situations, often in code far away from where the actual breakage is. * Techniques for XEmacs Developers:: @end menu +@node A Reader's Guide to XEmacs Coding Conventions +@section A Reader's Guide to XEmacs Coding Conventions +@cindex coding conventions +@cindex reader's guide +@cindex coding rules, naming + +Of course the low-level implementation language of XEmacs is C, but much +of that uses the Lisp engine to do its work. However, because the code +is ``inside'' of the protective containment shell around the ``reactor +core,'' you'll see lots of complex ``plumbing'' needed to do the work +and ``safety mechanisms,'' whose failure results in a meltdown. This +section provides a quick overview (or review) of the various components +of the implementation of Lisp objects. + + Two typographic conventions help to identify C objects that implement +Lisp objects. The first is that capitalized identifiers, especially +beginning with the letters @samp{Q}, @samp{V}, @samp{F}, and @samp{S}, +for C variables and functions, and C macros with beginning with the +letter @samp{X}, are used to implement Lisp. The second is that where +Lisp uses the hyphen @samp{-} in symbol names, the corresponding C +identifiers use the underscore @samp{_}. Of course, since XEmacs Lisp +contains interfaces to many external libraries, those external names +will follow the coding conventions their authors chose, and may overlap +the ``XEmacs name space.'' However these cases are usually pretty +obvious. + + All Lisp objects are handled indirectly. The @code{Lisp_Object} +type is usually a pointer to a structure, except for a very small number +of types with immediate representations (currently characters and +integers). However, these types cannot be directly operated on in C +code, either, so they can also be considered indirect. Types that do +not have an immediate representation always have a C typedef +@code{Lisp_@var{type}} for a corresponding structure. +@c #### mention l(c)records here? + + In older code, it was common practice to pass around pointers to +@code{Lisp_@var{type}}, but this is now deprecated in favor of using +@code{Lisp_Object} for all function arguments and return values that are +Lisp objects. The @code{X@var{type}} macro is used to extract the +pointer and cast it to @code{(Lisp_@var{type} *)} for the desired type. + + @strong{Convention}: macros whose names begin with @samp{X} operate on +@code{Lisp_Object}s and do no type-checking. Many such macros are type +extractors, but others implement Lisp operations in C (@emph{e.g.}, +@code{XCAR} implements the Lisp @code{car} function). These are unsafe, +and must only be used where types of all data have already been checked. +Such macros are only applied to @code{Lisp_Object}s. In internal +implementations where the pointer has already been converted, the +structure is operated on directly using the C @code{->} member access +operator. + + The @code{@var{type}P}, @code{CHECK_@var{type}}, and +@code{CONCHECK_@var{type}} macros are used to test types. The first +returns a Boolean value, and the latter signal errors. (The +@samp{CONCHECK} variety allows execution to be CONtinued under some +circumstances, thus the name.) Functions which expect to be passed user +data invariably call @samp{CHECK} macros on arguments. + + There are many types of specialized Lisp objects implemented in C, but +the most pervasive type is the @dfn{symbol}. Symbols are used as +identifiers, variables, and functions. + + @strong{Convention}: Global variables whose names begin with @samp{Q} +are constants whose value is a symbol. The name of the variable should +be derived from the name of the symbol using the same rules as for Lisp +primitives. Such variables allow the C code to check whether a +particular @code{Lisp_Object} is equal to a given symbol. Symbols are +Lisp objects, so these variables may be passed to Lisp primitives. (An +alternative to the use of @samp{Q...} variables is to call the +@code{intern} function at initialization in the +@code{vars_of_@var{module}} function, which is hardly less efficient.) + + @strong{Convention}: Global variables whose names begin with @samp{V} +are variables that contain Lisp objects. The convention here is that +all global variables of type @code{Lisp_Object} begin with @samp{V}, and +no others do (not even integer and boolean variables that have Lisp +equivalents). Most of the time, these variables have equivalents in +Lisp, which are defined via the @samp{DEFVAR} family of macros, but some +don't. Since the variable's value is a @code{Lisp_Object}, it can be +passed to Lisp primitives. + + The implementation of Lisp primitives is more complex. +@strong{Convention}: Global variables with names beginning with @samp{S} +contain a structure that allows the Lisp engine to identify and call a C +function. In modern versions of XEmacs, these identifiers are almost +always completely hidden in the @code{DEFUN} and @code{SUBR} macros, but +you will encounter them if you look at very old versions of XEmacs or at +GNU Emacs. @strong{Convention}: Functions with names beginning with +@samp{F} implement Lisp primitives. Of course all their arguments and +their return values must be Lisp_Objects. (This is hidden in the +@code{DEFUN} macro.) + + @node General Coding Rules @section General Coding Rules @cindex coding rules, general @@ -2406,10 +2500,15 @@ XEmacs crash!].) @code{defsymbol()} are no problem, but some linkers will complain about multiply-defined symbols. The most insidious aspect of this is that often the link will succeed anyway, but then the resulting executable -will sometimes crash in obscure ways during certain operations! To -avoid this problem, declare any symbols with common names (such as +will sometimes crash in obscure ways during certain operations! + +To avoid this problem, declare any symbols with common names (such as @code{text}) that are not obviously associated with this particular -module in the module @file{general.c}. +module in the file @file{general-slots.h}. The ``-slots'' suffix +indicates that this is a file that is included multiple times in +@file{general.c}. Redefinition of preprocessor macros allows the +effects to be different in each context, so this is actually more +convenient and less error-prone than doing it in your module. Global variables whose names begin with @samp{V} are variables that contain Lisp objects. The convention here is that all global variables @@ -4986,7 +5085,7 @@ respectively. This is currently in beta. @file{mule-mcpath.c} provides some functions to allow for pathnames containing extended characters. This code is fragmentary, obsolete, and -completely non-working. Instead, @var{pathname-coding-system} is used +completely non-working. Instead, @code{pathname-coding-system} is used to specify conversions of names of files and directories. The standard C I/O functions like @samp{open()} are wrapped so that conversion occurs automatically. @@ -5315,7 +5414,7 @@ different section of code. If you don't understand whether to @code{GCPRO} in a particular instance, ask on the mailing lists. A general hint is that @code{prog1} -is the canonical example +is the canonical example. @cindex garbage collection, conservative @cindex conservative garbage collection diff --git a/man/lispref/backups.texi b/man/lispref/backups.texi index 7ea6cc4..cac8e56 100644 --- a/man/lispref/backups.texi +++ b/man/lispref/backups.texi @@ -579,7 +579,7 @@ name. If you have made extensive changes to a file and then change your mind about them, you can get rid of them by reading in the previous version of the file with the @code{revert-buffer} command. @xref{Reverting, , -Reverting a Buffer, xemacs, The XEmacs Lisp Reference Manual}. +Reverting a Buffer, xemacs, The XEmacs User's Manual}. @deffn Command revert-buffer &optional check-auto-save noconfirm preserve-modes This command replaces the buffer text with the text of the visited diff --git a/man/lispref/display.texi b/man/lispref/display.texi index 3263dbe..e34d3ff 100644 --- a/man/lispref/display.texi +++ b/man/lispref/display.texi @@ -1244,7 +1244,7 @@ This function reads in an audio file and adds it to @code{sound-alist}. The sound file must be in the Sun/NeXT U-LAW format. @var{sound-name} should be a symbol, specifying the name of the sound. If @var{volume} is specified, the sound will be played at that volume; otherwise, the -value of @var{bell-volume} will be used. +value of @code{bell-volume} will be used. @end deffn @defun play-sound sound &optional volume device diff --git a/man/lispref/ldap.texi b/man/lispref/ldap.texi index 827fca0..5099e92 100644 --- a/man/lispref/ldap.texi +++ b/man/lispref/ldap.texi @@ -431,21 +431,21 @@ A function that decodes a LDAP boolean string representation @end defun @defun ldap-decode-string str -Decode a string @var{str} according to @var{ldap-coding-system}. +Decode a string @var{str} according to @code{ldap-coding-system}. @end defun @defun ldap-encode-string str -Encode a string @var{str} according to @var{ldap-coding-system}. +Encode a string @var{str} according to @code{ldap-coding-system}. @end defun @defun ldap-decode-address str -Decode an address @var{str} according to @var{ldap-coding-system} and +Decode an address @var{str} according to @code{ldap-coding-system} and replacing $ signs with newlines as specified by LDAP encoding rules for addresses. @end defun @defun ldap-encode-address str -Encode an address @var{str} according to @var{ldap-coding-system} and +Encode an address @var{str} according to @code{ldap-coding-system} and replacing newlines with $ signs as specified by LDAP encoding rules for addresses. @end defun diff --git a/man/lispref/lispref.texi b/man/lispref/lispref.texi index 538ac59..6cbad13 100644 --- a/man/lispref/lispref.texi +++ b/man/lispref/lispref.texi @@ -263,9 +263,9 @@ Packaging Package Overview -* The User's View:: -* The Library Maintainer's View:: -* The Package Release Engineer's View:: +* The User View:: +* The Library Maintainer View:: +* The Package Release Engineer View:: The Library Maintainer's View @@ -275,9 +275,8 @@ The Library Maintainer's View 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 @@ -947,7 +946,7 @@ Specifiers * Retrieving Specifications:: Querying a specifier's specifications. * Specifier Instancing Functions:: Functions to instance a specifier. -* Specifier Example:: Making all this stuff clearer. +* Specifier Examples:: Making all this stuff clearer. * Creating Specifiers:: Creating specifiers for your own use. * Specifier Validation Functions:: Validating the components of a specifier. diff --git a/man/lispref/markers.texi b/man/lispref/markers.texi index b22c287..18212de 100644 --- a/man/lispref/markers.texi +++ b/man/lispref/markers.texi @@ -508,7 +508,7 @@ However, if @var{force} is non-@code{nil}, then @code{mark} returns the mark position anyway---or @code{nil}, if the mark is not yet set for the buffer. -(Remember that if @var{zmacs-regions} is @code{nil}, the mark is +(Remember that if @code{zmacs-regions} is @code{nil}, the mark is always active as long as it exists, and the @var{force} argument will have no effect.) @@ -687,8 +687,8 @@ these functions, however. A command designed to operate on a region should normally use @code{interactive} with the @samp{r} specification to find the beginning and end of the region. This lets other Lisp programs specify the bounds explicitly as arguments and automatically -respects the user's setting for @var{zmacs-regions}. (@xref{Interactive -Codes}.) +respects the user's setting for @code{zmacs-regions}. +(@xref{Interactive Codes}.) @defun region-beginning &optional buffer This function returns the position of the beginning of @var{buffer}'s @@ -730,7 +730,7 @@ region or on something else (e.g. the word or paragraph at point). @defvar zmacs-region-stays If a command sets this variable to true, the currently active region will remain activated when the command finishes. (Normally the region is -deactivated when each command terminates.) If @var{zmacs-regions} is +deactivated when each command terminates.) If @code{zmacs-regions} is false, however, this has no effect. Under normal circumstances, you do not need to set this; use the interactive specification @samp{_} instead, if you want the region to remain active. @@ -740,15 +740,15 @@ instead, if you want the region to remain active. This function activates the region in the current buffer (this is equivalent to activating the current buffer's mark). This will normally also highlight the text in the active region and set -@var{zmacs-region-stays} to @code{t}. (If @var{zmacs-regions} is false, -however, this function has no effect.) +@code{zmacs-region-stays} to @code{t}. (If @code{zmacs-regions} is +false, however, this function has no effect.) @end defun @defun zmacs-deactivate-region This function deactivates the region in the current buffer (this is equivalent to deactivating the current buffer's mark). This will normally also unhighlight the text in the active region and set -@var{zmacs-region-stays} to @code{nil}. (If @var{zmacs-regions} is +@code{zmacs-region-stays} to @code{nil}. (If @code{zmacs-regions} is false, however, this function has no effect.) @end defun @@ -768,21 +768,21 @@ happens as a result of a command that activates the region, such as @code{set-mark-command}, @code{activate-region}, or @code{exchange-point-and-mark}.) Note that calling @file{zmacs-activate-region} will call this hook, even if the region is -already active. If @var{zmacs-regions} is false, however, this hook +already active. If @code{zmacs-regions} is false, however, this hook will never get called under any circumstances. @end defvar @defvar zmacs-deactivate-region-hook This normal hook is called when an active region becomes inactive. (Calling @file{zmacs-deactivate-region} when the region is inactive will -@emph{not} cause this hook to be called.) If @var{zmacs-regions} is +@emph{not} cause this hook to be called.) If @code{zmacs-regions} is false, this hook will never get called. @end defvar @defvar zmacs-update-region-hook This normal hook is called when an active region is "updated" by @code{zmacs-update-region}. This normally gets called at the end -of each command that sets @var{zmacs-region-stays} to @code{t}, +of each command that sets @code{zmacs-region-stays} to @code{t}, indicating that the region should remain activated. The motion commands do this. @end defvar diff --git a/man/lispref/menus.texi b/man/lispref/menus.texi index 53d1ef7..4a00115 100644 --- a/man/lispref/menus.texi +++ b/man/lispref/menus.texi @@ -677,14 +677,14 @@ accelerator keys can be used regardless of the value of this variable. precedence over bindings in the current keymap(s). @code{menu-fallback} means that bindings in the current keymap take precedence over menu accelerator keys. Thus a top level menu with an accelerator of "T" would be activated on a -keypress of Meta-t if @var{menu-accelerator-enabled} is @code{menu-force}. -However, if @var{menu-accelerator-enabled} is @code{menu-fallback}, then +keypress of Meta-t if @code{menu-accelerator-enabled} is @code{menu-force}. +However, if @code{menu-accelerator-enabled} is @code{menu-fallback}, then Meta-t will not activate the menubar and will instead run the function transpose-words, to which it is normally bound. The default value is @code{nil}. -See also @var{menu-accelerator-modifiers} and @var{menu-accelerator-prefix}. +See also @code{menu-accelerator-modifiers} and @code{menu-accelerator-prefix}. @end defvar @defvar menu-accelerator-map @@ -698,12 +698,12 @@ accelerator in order for the top level menu to be activated in response to a keystroke. The default value of @code{(meta)} mirrors the usage of the alt key as a menu accelerator in popular PC operating systems. -The modifier keys in @var{menu-accelerator-modifiers} must match exactly the +The modifier keys in @code{menu-accelerator-modifiers} must match exactly the modifiers present in the keypress. The only exception is that the shift -modifier is accepted in conjunction with alphabetic keys even if it is not -a menu accelerator modifier. +modifier is accepted in conjunction with alphabetic keys even if it is not a +menu accelerator modifier. -See also @var{menu-accelerator-enabled} and @var{menu-accelerator-prefix}. +See also @code{menu-accelerator-enabled} and @code{menu-accelerator-prefix}. @end defvar @defvar menu-accelerator-prefix diff --git a/man/lispref/numbers.texi b/man/lispref/numbers.texi index 6258217..afbd666 100644 --- a/man/lispref/numbers.texi +++ b/man/lispref/numbers.texi @@ -1028,7 +1028,7 @@ base of natural logarithms. @defun log number &optional base This function returns the logarithm of @var{number}, with base @var{base}. -If you don't specify @var{base}, the base @var{e} is used. If @var{number} +If you don't specify @var{base}, the base @code{e} is used. If @var{number} is negative, the result is a NaN. @end defun diff --git a/man/lispref/packaging.texi b/man/lispref/packaging.texi index fec092c..89297d9 100644 --- a/man/lispref/packaging.texi +++ b/man/lispref/packaging.texi @@ -44,13 +44,15 @@ become established.) @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. +* 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. @@ -96,14 +98,14 @@ easier. This manual documents the requirements and the tools that the @xpms{} provides to ensure that a package satisfies them. @menu -* The User's View:: -* The Library Maintainer's View:: -* The Package Release Engineer's View:: +* The User View:: +* The Library Maintainer View:: +* The Package Release Engineer View:: @end menu -@node The User's View, The Library Maintainer's View, , Package Overview -@section The User's View +@node The User View, The Library Maintainer View, , Package Overview +@section The User View @strong{N.B.} Much of the discussion in this section undoubtedly belongs elsewhere, @ref{Packages,,,xemacs}. @@ -156,11 +158,10 @@ hierarchies may be installed under version directories, @emph{e.g.} @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 @@ -238,8 +239,8 @@ easiest to think of the package hierarchy searching algorithm as receiving a @code{load-path} initialized to the core Lisp directories. -@node The Library Maintainer's View, The Package Release Engineer's View, The User's View, Package Overview -@section The Library Maintainer's View +@node The Library Maintainer View, The Package Release Engineer View, The User View, Package Overview +@section The Library Maintainer View From the library maintainer's viewpoint, the advantages to the @xpms{} stem from the convenience to the user of installation and upgrade. @@ -266,12 +267,12 @@ packages. The package control files describe the structure of the 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's View +@node Infrastructure, Control Files, , The Library Maintainer View @subsection Infrastructure In order to get the greatest benefit from the @xpms{}, a library @@ -303,8 +304,8 @@ tree are given below, @ref{Control Files}. The @file{packages} directory contains some auxiliary Lisp libraries used in the compilation and packaging process. The content of these -libraries is of interest primarily to the packaging engineers, @ref{The -Package Release Engineer's View}. +libraries is of interest primarily to the packaging engineers, @ref{The +Package Release Engineer View}. Finally, the @file{packages}, @file{packages/xemacs-packages}, and @file{packages/mule-packages} directories contain @file{Makefile}s and @@ -324,6 +325,11 @@ bundling of ``sumo'' tarballs @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. @@ -340,10 +346,14 @@ a template for Local.rules, liberally commented 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 @@ -354,7 +364,7 @@ modifications to @file{package-compile.el} need to be done for each package and are discussed in the next section, @ref{Control Files}. -@node Control Files, Obtaining, Infrastructure, The Library Maintainer's View +@node Control Files, Obtaining, Infrastructure, The Library Maintainer View @subsection Control Files Each package source must contain a number of control files in the @@ -386,16 +396,13 @@ irregularly (dependences and even version numbers) are set as 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 @@ -404,7 +411,7 @@ forms for the usre configuration variables of the package. @end table -@node Obtaining, , Control Files, The Library Maintainer's View +@node Obtaining, , Control Files, The Library Maintainer View @subsection Obtaining the @xpms{} and Required Utilities Currently both the infrastructure for creating XEmacs packages and the @@ -412,12 +419,12 @@ package sources themselves are available only by CVS. See @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's View, , The Library Maintainer's View, Package Overview -@subsection The Package Release Engineer's View +@node The Package Release Engineer View, , The Library Maintainer View, Package Overview +@subsection The Package Release Engineer View The XEmacs Package Release Engineer is responsible for keeping the system coherent. The changes to @file{packages/package-compile.el} and @@ -433,8 +440,6 @@ in the @code{xemacs-builds} module in the CVS repository. @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: @@ -483,8 +488,8 @@ files necessary for rebuilding byte-compiled lisp and creating tarballs 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. @@ -501,9 +506,7 @@ generic. At the present time only Mule packages need be treated 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 @@ -519,9 +522,9 @@ checking out the @file{packages} module. @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 @@ -532,63 +535,85 @@ checking out the @file{packages} module. 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: @@ -597,446 +622,424 @@ the local configuration and environment. To create @file{Local.rules}, 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. -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 @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 + +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 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}. -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}. +@item MULE_PACKAGES +A whitespace separated list of Mule packages to build/install. -@table @asis -@item @var{XEMACS_STAGING} -The default is @file{$@{XEMACS_PACKAGES_BASE@}/../xemacs-packages}. +@example +MULE_PACKAGES = mule-base leim locale +@end example -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{mule-packages}, which means to build/install @emph{all} of the +Mule packages. The default is @samp{mule-packages}. -@strong{N.B.} @samp{make bindist} ignores this variable. It should be -handled by the administration utilities, but currently isn't. +@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. -@item @var{MULE_STAGING} +@item INSTALL +The path to a BSD compatible install program. The default is +@code{install -c}. -The default is @file{$@{XEMACS_PACKAGES_BASE@}/../mule-packages}. +@item TAR +The path to GNU/tar. The default is @code{tar}. -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 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. -@strong{N.B.} @samp{make bindist} ignores this variable. It should be -handled by the administration utilities, but currently isn't. +@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: -@item symlink -The default is the empty value. - -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. - -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. -@table @var -@item XEMACS -The default is @samp{xemacs}. +@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: -The path to the XEmacs executable you wish to use to compile the -packages and execute Lisp build scripts. +@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 -@item XEMACS_NATIVE_NT -The default is the empty value. +@item MAKEINFO +The path to @code{makeinfo}. The default is @samp{makeinfo} -Set this to 't' if you are building on WinNT. It controls hairy shell -quoting in the @file{Makefile}s. +@item INSTALL_HTML +Set this to @samp{t} if you want to install HTML versions of the Texinfo +documentation. The default is unset (blank). -@item INSTALL -The default is @samp{install -c}. +@item TEXI2HTML +The path to the program that can convert Texinfo source to HTML. The +default is @code{texi2html}. -The path to your BSD compatible install program. +@item TEXI2DVI +The path to the program that can convert Texinfo source to DVI. The +default is @code{texi2dvi} -@item TAR -The default is @samp{tar}. +@item DVIPS +The path to the program that can convert DVI to Postscript. The default +is @code{dvips} -The path to your tar program. +@item TEXI2PDF +The path to the program that can convert Texinfo source to PDF format. +The default is @code{texi2pdf}. -@item BZIP2 -The default is the empty value. +@item TEX +The path to @TeX{}. The default is @code{tex} -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: -@c #### The following section is lifted verbatim from the XEmacs User's -@c Manual, file packages.texi. -@node Creating Packages, Issues, Local.rules File, Packaging +@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 + +@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 period-terminated 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. As a matter of style, -the first letter of the description should be capitalized, and the -string should end with a period. It need not be a complete sentence -grammatically. 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. - -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. - -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. +@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}. -@example -# Makefile for apackage's lisp code +@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}. -# This file is part of XEmacs. +@item build-date +The date the package was built. It is auto-generated. -# 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 maintainer +This is the name and email address of the package's maintainer. It is +taken from the @file{Makefile} variable @var{MAINTAINER}. -# 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. +@item distribution +An unused field, leave as @samp{xemacs} -# 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. +@item priority +An unused field, can be any of @samp{high}, @samp{medium}, or +@samp{low}. -VERSION = 0.00 -AUTHOR_VERSION = 0.00 -MAINTAINER = A. M. Aintainer -PACKAGE = apackage -PKG_TYPE = regular -REQUIRES = xemacs-base -CATEGORY = standard +@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. -# All .els should be compiled and packaged. -ELS = $(wildcard *.el) -ELCS = $(ELS:.el=.elc) +@strong{N.B.} As yet, the @xpms{} does @emph{not} support this type of +package. It will in the future. -include ../../XEmacs.rules +@item dump +Unused. Always @samp{nil} -all:: $(ELCS) auto-autoloads.elc custom-load.elc +@item description +A free form short description of the package. -srckit: srckit-std +@item filename +The file name of the package's binary tarball. It is generated at build +time by @code{make bindist}. -binkit: binkit-common -@end example +@item md5sum +The MD5 message digest of the package's binary tarball. Generated at +build time by @code{make bindist}. -@menu -* package-compile.el:: -* package-info.in Fields:: -* Makefile Variables:: -* Makefile Targets:: -@end menu +@item size +The size in bytes of the package's binary tarball. Generated at build +time. +@item provides +A whitespace separated list of @emph{all} the features the package +provides. Surround the list with parens. -@node package-compile.el, package-info.in Fields, , Creating Packages +@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. -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 +@samp{REQUIRES} cannot be correctly computed from the calls to +@code{require} in the package's library sources. @samp{REQUIRES} is +used to ensure that all macro and defstruct definitions used by the +package are available at build time. This is not merely a matter of +efficiency, to get the expansions inlined. In fact, it is +@emph{impossible} to call a macro by name in byte-compiled Emacs Lisp +code. Thus, if the macro expansion is not inlined, the call will result +in an error at run-time! Thus, packages providing libraries that would +be loaded because of autoload definitions must also be included. -@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 type +Can either be @samp{regular} for a regular package, or +@samp{single-file} for a single file package. -@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}. +@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 -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.) - -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 package-info.in Fields, Makefile Variables, package-compile.el, Creating Packages - -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 distribution -A literal, either @samp{xemacs} (for generic packages) or @samp{mule} -(for packages requiring Mule). @xref{Package Terminology}. +The fields in @file{package-info.in} that need to be changed directly +are: +@itemize @bullet +@item NAME @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 - -@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. - -The corresponding field name is given in parentheses. These include - -@table @code -@item VERSION -(version) -The version of the XEmacs package, a numeric literal (a decimal -fixed-point number with two-places of precision). - -@item AUTHOR_VERSION -(author-version) -The upstream author's version, an unintepreted literal. +@end itemize -@item DATE -(date) -Date of release of the upstream version. +Everything else is either set from the appropriate @file{Makefile} +variable, is auto-generated at build time, or is static. -@item MAINTAINER -(maintainer) -A literal containing the XEmacs package's maintainer and his/her email -address. - -@item CATEGORY -(category) -A literal, either @samp{standard} or @samp{mule}. Probably redundant. - -@item REQUIRES -(requires) -A list of packages required to correctly build this package. - -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. +@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. -The list is of @emph{packages}, not @emph{libraries}, as would -ordinarily be provided to the Lisp @code{require} function. +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}). -@samp{REQUIRES} cannot be correctly computed from the calls to -@code{require} in the package's library sources. @samp{REQUIRES} is -used to ensure that all macro and defstruct definitions used by the -package are available at build time. This is not merely a matter of -efficiency, to get the expansions inlined. In fact, it is -@emph{impossible} to call a macro by name in byte-compiled Emacs Lisp -code. Thus, if the macro expansion is not inlined, the call will result -in an error at run-time! Thus, packages providing libraries that would -be loaded because of autoload definitions must also be included. +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. -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}. -@end table +Here is a real world example, from the @samp{build} package: -Values for the following fields are automatically generated by the build -process. +@example +# Makefile for build lisp code -@table @asis -@item build-date -The date the package tarball was generated. +# This file is part of XEmacs. -@item md5sum -An MD5 checksum for the package tarball, as gzipped. +# 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 size -The size of the package tarball, as gzipped. -@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. -It is not clear that either md5sum or size works correctly if the -@samp{BZIP2} variable in @file{Local.rules} is set. +# 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. -The implementation constants are +# For the time being, remove MULE_ELCS from the all dependencies if +# building without Mule. -@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. +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 -@item priority -An unimplemented and underspecified feature. Suggestions for -specification and implementation welcome. +ELCS = build.elc build-report.elc -@item dump -An obsolete feature, superseded by the @file{site-load.el} mechanism. -The value should always be nil. +STANDARD_DOCS = t -@item filename -An obsolete feature, completely ignored. Don't even think about doing -anything useful with it. -@end table +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. -@node Makefile Variables, Makefile Targets, package-info.in Fields, Creating Packages +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 @@ -1047,31 +1050,43 @@ The required variables are described in the table below. The corresponding field names for @file{package-info.in}, where relevant, are given in parentheses. -@c #### This is the canonical place for this information. If there is +@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) @@ -1095,14 +1110,6 @@ code. Thus, if the macro expansion is not inlined, the call will result 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 @@ -1120,127 +1127,237 @@ We don't consider this a feature, of course. Please do submit code to do sanity checking to @email{xemacs-patches@@xemacs.org}. @end table -Optional, but very commonly used variables include: +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. + +@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 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 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 -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: +@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 @end example -@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. +Preloads are loaded before @file{package-compile.el}, so the +@var{load-path} is minimal. Therefore @samp{PRELOADS} must specify a +full path to packaged Lisp. The base @var{load-path} does include the +core Lisp directory, so core libraries are found. -@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. -@item MANUAL -The name to be used for Info files and man pages. +@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 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. +@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: -@item DATA_DEST -The installation location for data files, relative to the @file{etc/} -directory of the package hierarchy. 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. -@end table +@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 -Rarely used variables. +@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. -@c @table @code -@c @item -@c @end table +@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}. -@node Makefile Targets, , Makefile Variables, Creating Packages +@item EXPLICIT_DOCS +Use this to explicitly list Texinfo sources that @emph{aren't} in the +package's toplevel directory. For example: -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{}. +@example +EXPLICIT_DOCS = texi/$(PACKAGE).texi +@end example -@table @samp -@item all -A list of generated files, usually byte-compiled Lisp libraries, to be -bundled in the package. The typical dependencies are +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 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. + +@item DATA_DEST +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: @example -$(ELCS) auto-autoloads.elc custom-load.elc +DATA_DEST = $(PACKAGE)/foo @end example -Other targets (such as Info files) may need to be added as dependencies -for the @code{all} target. +Would put files into @file{.../etc/$(PACKAGE)/foo/}. -@item srckit -The target for generating a source package. Not implemented. If it -were, the normal dependency would be @samp{srckit-std}. +@item DATA_1_FILES ... DATA_35_FILES +For data files that need to go into a different directory from +@var{DATA_DEST}. -@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_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 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 -@item binkit-sourceinfo -Both source and info files are to be installed in the staging area. +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. -@item binkit-sourcedata -Both source and etc (data) files are to be installed in the staging -area. +@node Documenting Packages, Issues, Creating Packages, Packaging +@comment node-name, next, previous, up +@cindex documenting packages +@heading Documenting Packages: -@item binkit-sourcedatainfo -Source, etc (data), and info files all are present and need to be -installed in the staging area. +@c #### Add a documentation section to Internals, and xref here. +Some random notes on documenting your package. -@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.) -@end table +Do write a Texinfo file. It's not that hard to do basically, and even +using the more advanced features of Texinfo soon become natural. For a +start, just grab the template @file{Samples/package.texi} from the +@xpms{} source tree, and drop your current README into the Top node. At +least this way your documentation will be accessible from the standard +Info readers. Next, try to add lots of cross-referencing and logical +markup, and then node structure. + +Address both end users and developer issues. You may not be the +maintainer forever. + +If you are maintaining a package that is part of the GNU Emacs +distribution, you'll likely find that you occasionally synchronize your +package with the GNU Emacs sources. When you synch a file, +conventionally you should place a comment just above the standard +@code{;;; Code} comment that looks like this: + +@example +;; Synched with: +;; GNU Emacs 21.1, 2002-02-08, Stephen Turnbull +@end example -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 comment is a status flag; the ChangeLog doesn't really give the +same information. +Do maintain a detailed ChangeLog. -@node Issues, , Creating Packages, Packaging +@node Issues, , Documenting Packages, Packaging @section Issues To be completed. diff --git a/man/lispref/postgresql.texi b/man/lispref/postgresql.texi index 3a6dbc4..5053498 100644 --- a/man/lispref/postgresql.texi +++ b/man/lispref/postgresql.texi @@ -104,27 +104,27 @@ backend database server during the establishment of a database connection and when the @code{pq-setenv} call is made. @defvar pg:host -Initialized from the @var{PGHOST} environment variable. The default +Initialized from the @code{PGHOST} environment variable. The default host to connect to. @end defvar @defvar pg:user -Initialized from the @var{PGUSER} environment variable. The default +Initialized from the @code{PGUSER} environment variable. The default database user name. @end defvar @defvar pg:options -Initialized from the @var{PGOPTIONS} environment variable. Default +Initialized from the @code{PGOPTIONS} environment variable. Default additional server options. @end defvar @defvar pg:port -Initialized from the @var{PGPORT} environment variable. The default TCP -port to connect to. +Initialized from the @code{PGPORT} environment variable. The default +TCP port to connect to. @end defvar @defvar pg:tty -Initialized from the @var{PGTTY} environment variable. The default +Initialized from the @code{PGTTY} environment variable. The default debugging TTY. Compatibility note: Debugging TTYs are turned off in the XEmacs Lisp @@ -132,17 +132,17 @@ binding. @end defvar @defvar pg:database -Initialized from the @var{PGDATABASE} environment variable. The default -database to connect to. +Initialized from the @code{PGDATABASE} environment variable. The +default database to connect to. @end defvar @defvar pg:realm -Initialized from the @var{PGREALM} environment variable. The default +Initialized from the @code{PGREALM} environment variable. The default Kerberos realm. @end defvar @defvar pg:client-encoding -Initialized from the @var{PGCLIENTENCODING} environment variable. The +Initialized from the @code{PGCLIENTENCODING} environment variable. The default client encoding. Compatibility note: This variable is not present in non-Mule XEmacsen. @@ -153,35 +153,35 @@ In the current implementation, client encoding is equivalent to the @c unused @defvar pg:authtype -Initialized from the @var{PGAUTHTYPE} environment variable. The default -authentication scheme used. +Initialized from the @code{PGAUTHTYPE} environment variable. The +default authentication scheme used. Compatibility note: This variable is unused in versions of libpq after 6.5. It is not implemented at all in the XEmacs Lisp binding. @end defvar @defvar pg:geqo -Initialized from the @var{PGGEQO} environment variable. Genetic +Initialized from the @code{PGGEQO} environment variable. Genetic optimizer options. @end defvar @defvar pg:cost-index -Initialized from the @var{PGCOSTINDEX} environment variable. Cost index -options. +Initialized from the @code{PGCOSTINDEX} environment variable. Cost +index options. @end defvar @defvar pg:cost-heap -Initialized from the @var{PGCOSTHEAP} environment variable. Cost heap +Initialized from the @code{PGCOSTHEAP} environment variable. Cost heap options. @end defvar @defvar pg:tz -Initialized from the @var{PGTZ} environment variable. Default +Initialized from the @code{PGTZ} environment variable. Default timezone. @end defvar @defvar pg:date-style -Initialized from the @var{PGDATESTYLE} environment variable. Default +Initialized from the @code{PGDATESTYLE} environment variable. Default date style in returned date objects. @end defvar @@ -338,7 +338,7 @@ Copy In data transfer is in progress. An unexpected response was received from the backend. @item pgres::nonfatal-error Undocumented. This value is returned when the libpq function -@code{PQresultStatus} is called with a @var{NULL} pointer. +@code{PQresultStatus} is called with a @code{NULL} pointer. @item pgres::fatal-error Undocumented. An error has occurred in processing the query and the operation was not completed. @@ -510,7 +510,7 @@ Return the length of a specific value. @end defun @defun pq-get-is-null result tup-num field-num -Return t if the specific value is the SQL @var{NULL}. +Return t if the specific value is the SQL @code{NULL}. @var{result} is a PGresult object. @var{tup-num} selects which tuple to fetch from. @var{field-num} selects which field to fetch from. @@ -648,24 +648,24 @@ example idiom is: The following options are available in the options string: @table @code @item authtype -Authentication type. Same as @var{PGAUTHTYPE}. This is no longer used. +Authentication type. Same as @code{PGAUTHTYPE}. This is no longer used. @item user -Database user name. Same as @var{PGUSER}. +Database user name. Same as @code{PGUSER}. @item password Database password. @item dbname -Database name. Same as @var{PGDATABASE} +Database name. Same as @code{PGDATABASE} @item host -Symbolic hostname. Same as @var{PGHOST}. +Symbolic hostname. Same as @code{PGHOST}. @item hostaddr Host address as four octets (eg. like 192.168.1.1). @item port -TCP port to connect to. Same as @var{PGPORT}. +TCP port to connect to. Same as @code{PGPORT}. @item tty -Debugging TTY. Same as @var{PGTTY}. This value is suppressed in the +Debugging TTY. Same as @code{PGTTY}. This value is suppressed in the XEmacs Lisp API. @item options -Extra backend database options. Same as @var{PGOPTIONS}. +Extra backend database options. Same as @code{PGOPTIONS}. @end table A database connection object is returned regardless of whether a connection was established or not. @@ -897,7 +897,8 @@ does not exist in a non-Mule XEmacs. @end defun @defun pq-env-2-encoding -Return the integer code representing the coding system in @var{PGCLIENTENCODING}. +Return the integer code representing the coding system in +@code{PGCLIENTENCODING}. @example (pq-env-2-encoding) diff --git a/man/lispref/specifiers.texi b/man/lispref/specifiers.texi index adb36ff..dfdc88a 100644 --- a/man/lispref/specifiers.texi +++ b/man/lispref/specifiers.texi @@ -1,6 +1,7 @@ @c -*-texinfo-*- @c This is part of the XEmacs Lisp Reference Manual. @c Copyright (C) 1995, 1996 Ben Wing. +@c Copyright (C) 2002, 2004 Free Software Foundation, Inc. @c See the file lispref.texi for copying conditions. @setfilename ../../info/specifiers.info @node Specifiers, Faces and Window-System Objects, Extents, top @@ -8,14 +9,13 @@ @cindex specifier A specifier is an object used to keep track of a property whose value -may vary depending on the particular situation (e.g. particular buffer -displayed in a particular window) that it is used in. The value of many -built-in properties, such as the font, foreground, background, and such -properties of a face and variables such as -@code{modeline-shadow-thickness} and @code{top-toolbar-height}, is -actually a specifier object. The specifier object, in turn, is -``instanced'' in a particular situation to yield the real value -of the property in that situation. +should vary according to @emph{display context}, a window, a frame, or +device. The value of many built-in properties, such as the font, +foreground, background, and such properties of a face and variables +such as @code{modeline-shadow-thickness} and +@code{top-toolbar-height}, is actually a specifier object. The +specifier object, in turn, is ``instanced'' in a particular situation +to yield the real value of the property in the current context. @defun specifierp object This function returns non-@code{nil} if @var{object} is a specifier. @@ -26,6 +26,7 @@ This function returns non-@code{nil} if @var{object} is a specifier. display and other properties to vary (under user control) in a wide variety of contexts. +* Simple Specifier Usage:: Getting started with specifiers. * Specifiers In-Depth:: Gory details about specifier innards. * Specifier Instancing:: Instancing means obtaining the ``value'' of a specifier in a particular context. @@ -37,7 +38,7 @@ This function returns non-@code{nil} if @var{object} is a specifier. * Specifier Tag Functions:: Working with specifier tags. * Specifier Instancing Functions:: Functions to instance a specifier. -* Specifier Example:: Making all this stuff clearer. +* Specifier Examples:: Making all this stuff clearer. * Creating Specifiers:: Creating specifiers for your own use. * Specifier Validation Functions:: Validating the components of a specifier. @@ -48,14 +49,16 @@ This function returns non-@code{nil} if @var{object} is a specifier. @node Introduction to Specifiers @section Introduction to Specifiers -Sometimes you may want the value of a property to vary depending on -the context the property is used in. A simple example of this in XEmacs -is buffer-local variables. For example, the variable +Perhaps the most useful way to explain specifiers is via an analogy. +Emacs Lisp programmers are used to @emph{buffer-local variables} +@ref{Buffer-Local Variables}. For example, the variable @code{modeline-format}, which controls the format of the modeline, can have different values depending on the particular buffer being edited. The variable has a default value which most modes will use, but a -specialized package such as Calendar might change the variable so -as to tailor the modeline to its own purposes. +specialized package such as Calendar might change the variable so as to +tailor the modeline to its own purposes. Other variables are perhaps +best thought of as ``mode local,'' such as font-lock keywords, but they +are implemented as buffer locals. Other properties (such as those that can be changed by the @code{modify-frame-parameters} function, for example the color of the @@ -70,11 +73,41 @@ displayed on a particular frame, another value in all other buffers displayed in all other frames on any mono (two-color, e.g. black and white only) displays, and a default value in all other circumstances. -A @dfn{specifier} is a generalization of this, allowing a great deal -of flexibility in controlling exactly what value a property has in which -circumstances. It is most commonly used for display properties, such as -an image or the foreground color of a face. As a simple example, you can -specify that the foreground of the default face be +Specifiers generalize both buffer- and frame-local properties. +Specifiers vary according to the @emph{display} context. Font-lock +keywords in a buffer will be the same no matter which window the +buffer is displayed in, but windows on TTY devices will simply not be +capable of the flexibility that windows on modern GUI devices are. +Specifiers provide a way for the programmer to @emph{declare} that an +emphasized text should be italic on GUI devices and inverse video on +TTYs. They also provide a way for the programmer to declare +fallbacks, so that a color specified as ``chartreuse'' where possible +can fall back to ``yellow'' on devices where only ANSI (4-bit) color +is available. The complex calculations and device querying are +transparent to both user and programmer. You ask for what you want; +it's up to XEmacs to provide it, or a reasonable approximation. + +We call such a declaration a @dfn{specification}. A @dfn{specification} +applies in a particular @dfn{locale}, which is a window, buffer, frame, +device, or the global locale. The value part of the specification is +called an @dfn{instantiator}. The process of determining the value in a +particular context, or @dfn{domain}, is called @dfn{instantiation} or +@dfn{instancing}. A domain is a window, frame, or device. + +The difference between @dfn{locale} and @dfn{domain} is somewhat subtle. +You may think of a locale as a class of domains, which may span +different devices. Since the specification is abstract (a Lisp form), +you can state it without reference to a device. On the other hand, when +you instantiate a specification, you must know the type of the device. +It is useless to specify that ``blue means emphasis'' on a monochrome +device. Thus instantiation requires specification of the device on +which it will be rendered. + +Thus a @dfn{specifier} allows a great deal of flexibility in +controlling exactly what value a property has in which circumstances. +Specifiers are most commonly used for display properties, such as an image or +the foreground color of a face. As a simple example, you can specify +that the foreground of the default face be @itemize @bullet @item @@ -98,6 +131,150 @@ red for all other buffers displayed on a color device white for all other buffers @end itemize +@node Simple Specifier Usage +@section Simple Specifier Usage +@cindex specifier examples +@cindex examples, specifier +@cindex adding a button to a toolbar +@cindex toolbar button, adding + +A useful specifier application is adding a button to a toolbar. XEmacs +provides several toolbars, one along each edge of the frame. Normally +only one is used at a time, the default. The default toolbar is +actually a specifier object which is the value of +@code{default-toolbar}. @xref{Toolbar Intro}. + +The specification of a toolbar is simple: it is a list of buttons. +Each button is a vector with four elements: an icon, a command, the +enabled flag, and a help string. Let's retrieve the instance of the +toolbar you see in the selected frame. + +@example +(specifier-instance default-toolbar) +@end example + +The value returned is, as promised, a list of vectors. Now let's build +up a button, and add it to the toolbar. Our button will invoke the last +defined keyboard macro. This is an alternative to +@code{name-last-kbd-macro} for creating a persistent macro, rather than +an alias for @kbd{C-x e}. + +A toolbar button icon can be quite sophisticated, with different images +for button up, button down, and disabled states, and a similar set with +captions. We'll use a very simple icon, but we have to jump through a +few non-obvious hoops designed to support the sophisticated applications. +The rest of the button descriptor is straightforward. + +@example +(setq toolbar-my-kbd-macro-button + `[ (list (make-glyph "MyKbdMac")) + (lambda () (interactive) (execute-kbd-macro ,last-kbd-macro)) + t + "Execute a previously defined keyboard macro." ]) + +(set-specifier default-toolbar + (cons toolbar-my-kbd-macro-button + (specifier-specs default-toolbar 'global)) + 'global) +@end example + +To remove the button, just substitute the function @code{delete} for the +@code{cons} above. + +What is the difference between @code{specifier-instance}, which we used +in the example of retrieving the toolbar descriptor, and +@code{specifier-specs}, which was used in the toolbar manipulating code? +@code{specifier-specs} retrieves a copy of the instantiator, which is +abstract and does not depend on context. @code{specifier-instance}, on +the other hand, actually instantiates the specification, and returns the +result for the given context. Another way to express this is: +@code{specifier-specs} takes a @emph{locale} as an argument, while +@code{specifier-instance} takes a @emph{domain}. The reason for +providing @code{specifier-instance} is that sometimes you wish to see +the object that XEmacs will actually use. @code{specifier-specs}, on +the other hand, shows you what the programmer (or user) requested. When +a program manipulates specifications, clearly it's the latter that is +desirable. + +In the case of the toolbar descriptor, it turns out that these are the +same: the instancing process is trivial. However, many specifications +have non-trivial instancing. Compare the results of the following forms +on my system. (The @samp{(cdr (first ...))} form is due to my use of +Mule. On non-Mule XEmacsen, just use @code{specifier-specs}.) + +@example +(cdr (first (specifier-specs (face-font 'default) 'global))) +=> "-*--14-*jisx0208*-0" + +(specifier-instance (face-font 'default)) +# 0xe0028b 0x176b> +@end example + +In this case, @code{specifier-instance} returns an opaque object; +programs can't work on it, they can only pass it around. Worse, in some +environments the instantiation will fail, resulting in a different value +(when another instantiation succeeds), or worse yet, an error, if all +attempts to instance the specifier fail. @code{specifier-instance} is +context-dependent, even for the exact same specification. +@code{specifier-specs} is deterministic, and only depends on the +specifications. + +Note that in the toolbar-changing code we operate in the global locale. +This means that narrower locales, if they have specifications, will +shadow our changes. (Specifier instancing does not merge +specifications. It selects the "highest-priority successful +specification" and instances that.) + +In fact, in our example, it seems pretty likely that different buffers +@emph{should} have different buttons. (The icon can be the same, but +the keyboard macro you create in a Dired buffer is highly unlikely to be +useful in a LaTeX buffer!) Here's one way to implement this: + +@example +(setq toolbar-my-kbd-macro-button + `[ (list (make-glyph "MyKbdMac")) + (lambda () (interactive) (execute-kbd-macro ,last-kbd-macro)) + t + "Execute a previously defined keyboard macro." ]) + +(set-specifier default-toolbar + (cons toolbar-my-kbd-macro-button + (cond ((specifier-specs default-toolbar + (current-buffer))) + ((specifier-specs default-toolbar + 'global))) + (current-buffer)) +@end example + +Finally, a cautionary note: the use of @code{specifier-specs} in the +code above is for expository purposes. Don't use it in production code. +In fact, the @code{set-specifier} form above is likely to fail +occasionally, because you can add many specifications for the same +locale. + +In these cases, @code{specifier-specs} will return a list. A further +refinement is that a specification may be associated with a set of +@dfn{specifier tags}. If the list of specifier tags is non-nil, then +@code{specifier-specs} will return a cons of the tag set and the +instantiator. Evidently @code{specifier-specs} is a bit unreliable. +(For toolbars, the code above should work 99% of the time, because +toolbars are rarely changed. Since instantiation is trivial, multiple +specs are not useful---the first one always succeeds.) + +In fact, @code{specifier-specs} is intended to be used to display specs +to humans with a minimum of clutter. The robust way to access +specifications is via @code{specifier-spec-list}. @xref{Adding +Specifications}, for the definition of @dfn{spec-list}. @xref{Retrieving +Specifications}, for documentation of @code{specifier-specs} and +@code{specifier-spec-list}. To get the desired effect, replace the form +@code{(specifier-spec default-toolbar 'global)} with + +@example +(cdr (second (first (specifier-spec-list default-toolbar 'global)))) +@end example + +(It should be obvious why the example uses the lazy unreliable method!) + @node Specifiers In-Depth @section In-Depth Overview of a Specifier @cindex specification (in a specifier) @@ -121,12 +298,36 @@ white for all other buffers @cindex specifier, tag @cindex specifier, tag set -A specifier object encapsulates a set of @dfn{specifications}, each of -which says what its value should be if a particular condition applies. +Having variables vary according the editing context is very useful, and +the buffer is the natural ``atomic'' unit of editing context. In a GUI +environment, it can be similarly useful to have variables whose values +vary according to display context. The atomic unit of display context +is the Emacs window. Buffers are cleanly grouped by modes, but windows +are not so easily pigeonholed. On the one hand, a window displays a +buffer, and thus one possible hierarchy is window, buffer, mode. On the +other, a window is a component of a frame. This generates the window, +frame, device hierarchy. Finally, there are objects such as toolbars +whose properties are described by specifiers. These do not fit +naturally into either hierarchy. This problem is as yet not cleanly +solved. + +Another potential source of conceptual confusion is the instantiation +process. Instantiating a buffer-local variable is simple: at any given +point in time there is a current buffer, and its local values are used +and set whenever the variable is accessed, unless the programmer goes to +some special effort (uses @code{default-value} and @code{set-default}. +However, a specifier object encapsulates a set of @dfn{specifications}, +each of which says what its value should be if a particular condition +applies. Several such conditions might apply simultaneously in a given +window. + For example, one specification might be ``The value should be darkseagreen2 on X devices'' another might be ``The value should be blue -in the *Help* buffer''. In specifier terminology, these conditions are -called @dfn{locales} and the values are called @dfn{instantiators}. +in the *Help* buffer''. So what do we do for "the *Help* buffer on an X +device"? The answer is simple: give each type of locale a priority and +check them in priority order, returning the first instantiator that +successfully instantiates a value. + Given a specifier, a logical question is ``What is its value in a particular situation?'' This involves looking through the specifications to see which ones apply to this particular situation, and perhaps @@ -140,6 +341,13 @@ of the default face and @dfn{instances} it in the domain given by that window; in other words, it asks the specifier, ``What is your value in this window?''. +Note that the redisplay example is in a sense canonical. That is, +specifiers are designed to present a uniform and @emph{efficient} API +to redisplay. It is the efficiency constraint that motivates the +introduction of specifier tags, and many restrictions on access (for +example, a buffer is not a domain, and you cannot instantiate a +specifier over a buffer). + More specifically, a specifier contains a set of @dfn{specifications}, each of which associates a @dfn{locale} (a window object, a buffer object, a frame object, a device object, or the symbol @code{global}) @@ -160,8 +368,9 @@ same specifier and not interfere with each other. Each tag can have a device. (If a tag does not have a predicate, it matches all devices.) All tags in a tag set must match a device for the associated inst-pair to be instantiable over that device. (A null tag set is perfectly -valid.) +valid, and trivially matches all devices.) +@c #### don't we have more device types now, gtk, ms-windows, mac-carbon? The valid device types (normally @code{x}, @code{tty}, and @code{stream}) and device classes (normally @code{color}, @code{grayscale}, and @code{mono}) can always be used as tags, and match @@ -474,8 +683,13 @@ specifications. the existing ones, and has the same semantics as for @code{add-spec-to-specifier}. -In many circumstances, the higher-level function @code{set-specifier} is -more convenient and should be used instead. +The higher-level function @code{set-specifier} is often +more convenient because it allows abbreviations of spec-lists to be used +instead of the heavily nested canonical syntax. However, one should +take great care in using them with specifiers types which can have lists +as instantiators, such as toolbar specifiers and generic specifiers. In +those cases it's probably best to use @code{add-spec-to-specifier} or +@code{add-spec-list-to-specifier}. @end defun @defspec let-specifier specifier-list &rest body @@ -525,7 +739,7 @@ specification), a list of tagged and/or untagged instantiators (added as a global specification), a cons of a locale and instantiator or locale and instantiator list, a list of such conses, or nearly any other reasonable form. More specifically, @var{value} can be anything -accepted by @code{canonicalize-spec-list}. +accepted by @code{canonicalize-spec-list} (described below). @var{locale}, @var{tag-set}, and @var{how-to-add} are the same as in @code{add-spec-to-specifier}. @@ -538,7 +752,10 @@ specs at all in it but @code{nil} is a valid instantiator (in that case, adding a global instantiator and its value is @code{nil}''), or in strange cases where there is an ambiguity between a spec-list and an inst-list, etc. (The built-in specifier types are designed in such a way -as to avoid any such ambiguities.) +as to avoid any such ambiguities.) For robust code, +@code{set-specifier} should probably be avoided for specifier types +which accept lists as instantiators (currently toolbar specifiers and +generic specifiers). If you want to work with spec-lists, you should probably not use these functions, but should use the lower-level functions @@ -601,6 +818,10 @@ specifications). @var{specifier-type} specifies the type of specifier that this @var{spec-list} will be used for. +If @var{noerror} is @code{nil}, signal an error if the spec-list is +invalid; otherwise return @code{t} for an invalid spec-list. (Note that +this cannot be confused with a canonical spec-list.) + Canonicalizing means converting to the full form for a spec-list, i.e. @code{((@var{locale} (@var{tag-set} . @var{instantiator}) ...) ...)}. This function accepts a possibly abbreviated specification or a list of @@ -612,8 +833,59 @@ This function tries extremely hard to resolve any ambiguities, and the built-in specifier types (font, image, toolbar, etc.) are designed so that there won't be any ambiguities. -If @var{noerror} is @code{nil}, signal an error if the spec-list is -invalid; otherwise return @code{t}. +The canonicalization algorithm is as follows: + +@enumerate +@item +Attempt to parse @var{spec-list} as a single, possibly abbreviated, +specification. +@item +If that fails, attempt to parse @var{spec-list} as a list of (abbreviated) +specifications. +@item +If that fails, @var{spec-list} is invalid. +@end enumerate + +A possibly abbreviated specification @var{spec} is parsed by + +@enumerate +@item +Attempt to parse @var{spec} as a possibly abbreviated inst-list. +@item +If that fails, attempt to parse @var{spec} as a cons of a locale and an +(abbreviated) inst-list. +@item +If that fails, @var{spec} is invalid. +@end enumerate + +A possibly abbreviated inst-list @var{inst-list} is parsed by + +@enumerate +@item +Attempt to parse @var{inst-list} as a possibly abbreviated inst-pair. +@item +If that fails, attempt to parse @var{inst-list} as a list of (abbreviated) +inst-pairs. +@item +If that fails, @var{inst-list} is invalid. +@end enumerate + +A possibly abbreviated inst-pair @var{inst-pair} is parsed by + +@enumerate +@item +Check if @var{inst-pair} is @code{valid-instantiator-p}. +@item +If not, check if @var{inst-pair} is a cons of something that is a tag, ie, +@code{valid-specifier-tag-p}, and something that is @code{valid-instantiator-p}. +@item +If not, check if @var{inst-pair} is a cons of a list of tags and something that +is @code{valid-instantiator-p}. +@item +Otherwise, @var{inst-pair} is invalid. +@end enumerate + +In summary, this function generally prefers more abbreviated forms. @end defun @node Retrieving Specifications @@ -775,7 +1047,7 @@ This function returns the predicate for the given specifier tag. @section Functions for Instancing a Specifier @defun specifier-instance specifier &optional domain default no-fallback -This function instantiates @var{specifier} (return its value) in +This function instantiates @var{specifier} (returns its value) in @var{domain}. If no instance can be generated for this domain, return @var{default}. @@ -829,6 +1101,34 @@ returned value will be a font-instance object. For images, the returned value will be a string, pixmap, or subwindow. @end defun +@defun specifier-matching-instance specifier matchspec &optional domain default no-fallback +This function returns an instance for @var{specifier} in @var{domain} +that matches @var{matchspec}. If no instance can be generated for +@var{domain}, return @var{default}. + +This function is identical to @code{specifier-instance} except that a +specification will only be considered if it matches @var{matchspec}. +The definition of ``match,'' and allowed values for @var{matchspec}, are +dependent on the particular type of specifier. Here are some examples: + +@itemize +@item +For chartable (e.g. display table) specifiers, @var{matchspec} should be a +character, and the specification (a chartable) must give a value for +that character in order to be considered. This allows you to specify, +@emph{e.g.}, a buffer-local display table that only gives values for particular +characters. All other characters are handled as if the buffer-local +display table is not there. (Chartable specifiers are not yet +implemented.) +@item +For font specifiers, @var{matchspec} should be a charset, +and the specification (a font string) must have +a registry that matches the charset's registry. (This only makes sense +with Mule support.) This makes it easy to choose a font that can +display a particular character. (This is what redisplay does, in fact.) +@end itemize +@end defun + @defun specifier-instance-from-inst-list specifier domain inst-list &optional default This function attempts to convert a particular inst-list into an instance. This attempts to instantiate @var{inst-list} in the given @@ -838,8 +1138,8 @@ In most circumstances, you should not use this function; use @code{specifier-instance} instead. @end defun -@node Specifier Example -@section Example of Specifier Usage +@node Specifier Examples +@section Examples of Specifier Usage Now let us present an example to clarify the theoretical discussions we have been through. In this example, we will use the general specifier @@ -912,6 +1212,143 @@ our window is on recognizes the color @samp{moccasin}, and so the instantiation method succeeds and returns a color instance. @end enumerate +Here's another example, which implements something like GNU Emacs's +``frame-local'' variables. + +@example +;; Implementation + +;; There are probably better ways to write this macro +;; Heaven help you if VAR is a buffer-local; you will become very +;; confused. Probably should error on that. +(defmacro define-frame-local-variable (var) + "Make the unbound symbol VAR become a frame-local variable." + (let ((val (if (boundp var) (symbol-value var) nil))) + `(progn + (setq ,var (make-specifier 'generic)) + (add-spec-to-specifier ,var ',val 'global)))) + +;; I'm not real happy about this terminology, how can `setq' be a defun? +;; But `frame-set' would have people writing "(frame-set 'foo value)". +(defun frame-setq (var value &optional frame) + "Set the local value of VAR to VALUE in FRAME. + +FRAME defaults to the selected frame." + (and frame (not (framep frame)) + (error 'invalid-argument "FRAME must be a frame", frame)) + (add-spec-to-specifier var value (or frame (selected-frame)))) + +(defun frame-value (var &optional frame) + "Get the local value of VAR in FRAME. + +FRAME defaults to the selected frame." + (and frame (not (framep frame)) + (error 'invalid-argument "FRAME must be a frame", frame)) + ;; this is not just a map from frames to values; it also falls back + ;; to the global value + (specifier-instance var (or frame (selected-frame)))) + +;; for completeness +(defun frame-set-default (var value) + "Set the default value of frame-local variable VAR to VALUE." + (add-spec-to-specifier var value 'global)) + +(defun frame-get-default (var) + "Get the default value of frame-local variable VAR." + (car (specifier-specs var 'global))) +@end example + +Now you can execute the above definitions (eg, with @code{eval-last-sexp}) +and switch to @file{*scratch*} to play. Things will work differently if +you already have a variable named @code{foo}. + +@example +;; Usage + +foo +@error{} Symbol's value as variable is void: foo + +(define-frame-local-variable foo) +@result{} nil + +;; the value of foo is a specifier, which is an opaque object; +;; you must use accessor functions to get values + +foo +@result{} # + +;; since no frame-local value is set, the global value (which is the +;; constant `nil') is returned +(frame-value foo) +@result{} nil + +;; get the default explicitly +(frame-get-default foo) +@result{} nil + +;; get the whole specification list +(specifier-specs foo 'global) +@result{} (nil) + +;; give foo a frame-local value + +(frame-setq foo 'bar) +@result{} nil + +;; access foo in several ways + +;; Note that the print function for this kind of specifier only +;; gives you the global setting. To get the full list of specs for +;; debugging or study purposes, you must use specifier-specs or +;; specifier-spec-list. +foo +@result{} # + +;; get the whole specification list +(specifier-specs foo) +@result{} ((# (nil . bar)) (global (nil))) + +;; get the frame-local value +(frame-value foo) +@result{} bar + +;; get the default explicitly +(frame-get-default foo) +@result{} nil + +;; Switch to another frame and evaluate: +;; C-x 5 o M-: (frame-setq foo 'baz) RET M-: (frame-value foo) RET +@result{} baz + +;; Switch back. +;; C-x 5 o +(specifier-specs foo) +@result{} ((# (nil . baz)) + (# (nil . bar)) + (global (nil))) + +(frame-value foo) +@result{} bar + +(frame-get-default foo) +@result{} nil +@end example + +Note that since specifiers generalize both frame-local and buffer-local +variables in a sensible way, XEmacs is not likely to put a high priority +on implementing frame-local variables. +@c Thanks to Jerry James for the following explanation. He is not +@c responsible for its use here, Stephen Turnbull is. +In fact, some developers think that frame-local variables are evil for +the same reason that buffer-local variables are evil: the declaration is +both global and invisible. That is, you cannot tell whether a variable +is ``normal,'' buffer-local, or frame-local just by looking at it. So +if you have namespace management problems, and some other Lisp package +happens to use a variable name that you already declared frame- or +buffer-local, weird stuff happens, and it is extremely hard to track +down. + + @node Creating Specifiers @section Creating New Specifier Objects @@ -943,16 +1380,20 @@ functions @code{make-generic-specifier}, @code{make-integer-specifier}, @end defun @defun make-specifier-and-init type spec-list &optional dont-canonicalize -This function creates and initialize a new specifier. +This function creates and initializes a new specifier. -This is a front-end onto @code{make-specifier} that allows you to create +This is a convenience API combining @code{make-specifier} and +@code{set-specifier} that allows you to create a specifier and add specs to it at the same time. @var{type} specifies -the specifier type. @var{spec-list} supplies the specification(s) to be -added to the specifier. Normally, almost any reasonable abbreviation of -the full spec-list form is accepted, and is converted to the full form; -however, if optional argument @var{dont-canonicalize} is non-@code{nil}, -this conversion is not performed, and the @var{spec-list} must already -be in full form. See @code{canonicalize-spec-list}. +the specifier type. Allowed types are as for @code{make-specifier}. + +@var{spec-list} supplies the specification(s) to be +added to the specifier. Any abbreviation of +the full spec-list form accepted by @code{canonicalize-spec-list} may +be used. +However, if the optional argument @var{dont-canonicalize} is non-@code{nil}, +canonicalization is not performed, and the @var{spec-list} must already +be in full form. @end defun @defun make-integer-specifier spec-list @@ -1137,12 +1578,15 @@ instantiator's tag set for the instantiator to be removed. This function applies @var{func} to the specification(s) for @var{locale} in @var{specifier}. -If @var{locale} is a locale, @var{func} will be called for that locale. +If optional @var{locale} is a locale, @var{func} will be called for that +locale. If @var{locale} is a locale type, @var{func} will be mapped over all locales of that type. If @var{locale} is @code{nil} or the symbol @code{all}, @var{func} will be mapped over all locales in @var{specifier}. +Optional @var{ms-maparg} will be passed to @var{ms-func}. + @var{func} is called with four arguments: the @var{specifier}, the locale being mapped over, the inst-list for that locale, and the optional @var{maparg}. If any invocation of @var{func} returns @@ -1154,4 +1598,3 @@ value returned from @code{map-specifier}. Otherwise, @defun specifier-locale-type-from-locale locale Given a specifier @var{locale}, this function returns its type. @end defun - diff --git a/man/lispref/tips.texi b/man/lispref/tips.texi index a8ce727..0af08d0 100644 --- a/man/lispref/tips.texi +++ b/man/lispref/tips.texi @@ -239,6 +239,13 @@ only for program-generated buffers.) The users will find Emacs more coherent if all libraries use the same conventions. @item +Use names starting with a space for temporary buffers (@pxref{Buffer +Names}), or at least call @code{buffer-disable-undo} on them. Otherwise +they may stay referenced by internal undo variable(s) after getting +killed. If this happens before dumping (@pxref{Building XEmacs}), this +may cause fatal error when portable dumper is used. + +@item Indent each function with @kbd{C-M-q} (@code{indent-sexp}) using the default indentation parameters. @@ -488,7 +495,7 @@ at that point. For example: @end group @end smallexample -Every function that has no documentation string (because it is use only +Every function that has no documentation string (because it is used only internally within the package it belongs to), should have instead a two-semicolon comment right before the function, explaining what the function does and how to call it properly. Explain precisely what each diff --git a/man/new-users-guide/custom2.texi b/man/new-users-guide/custom2.texi index e7ab517..a801ba7 100644 --- a/man/new-users-guide/custom2.texi +++ b/man/new-users-guide/custom2.texi @@ -93,7 +93,7 @@ M-x describe variable After you type any of the above commands, you will be prompted for a variable name in the @dfn{echo area}. Type in the name of the variable, -for example, type @var{case-fold-search} @key{RET} +for example, type @code{case-fold-search} @key{RET} Your window will split into two and you will see the following message in that window: @@ -219,9 +219,9 @@ the left margin or in the line's indentation: @end example @noindent -The value of the variable @var{c-tab-always-indent} is usually @samp{t} +The value of the variable @code{c-tab-always-indent} is usually @samp{t} for @samp{true}. When this variable is true, then hitting the @key{TAB} -key always indents the current line. +key always indents the current line. @item This expression will turn on the @var{auto-fill-mode} when you are in @@ -233,7 +233,7 @@ text mode: This mode will automatically break lines when you type a space so that the lines don't become too long. The length of the lines is controlled -by the variable @var{fill-column}. You can set this variable to a value +by the variable @code{fill-column}. You can set this variable to a value you wish. Look at the documentation for this variable to see its default value. To change the value to 75 for example, use: @@ -383,7 +383,7 @@ will not be highlighted. @item To control the number of buffers listed when you select the @b{Buffers} -menu, you need to set the variable @var{buffers-menu-max-size} to +menu, you need to set the variable @code{buffers-menu-max-size} to whatever value you wish. For example, if you want 20 buffers to be listed when you select @b{Buffers} use: @@ -419,7 +419,7 @@ If you want an extensive menu-bar use the following expression in your @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 diff --git a/man/new-users-guide/files.texi b/man/new-users-guide/files.texi index 1cfd3bf..9b68029 100644 --- a/man/new-users-guide/files.texi +++ b/man/new-users-guide/files.texi @@ -49,7 +49,7 @@ prompts you for a file, it uses the default-directory unless you specify a directory. You can see what the default directory of the current buffer is by using the @b{Describe Variable} option from the @b{Help} menu. When Emacs prompts you for the variable name to describe, type -@var{default-directory}. If you wish to open a file in some other +@code{default-directory}. If you wish to open a file in some other directory, use @key{DEL} or the @key{BackSpace} key to go back and type the path name of the new directory. @@ -201,7 +201,7 @@ saved by reading the text from the file again (called @vindex make-backup-files When you save a file in Emacs, it destroys its old contents. However, -if you set the variable @var{make-backup-files} to non-@code{nil} +if you set the variable @code{make-backup-files} to non-@code{nil} i.e. @samp{t}, Emacs will create a @dfn{backup} file. Select the @b{Describe variable} option from the @b{Help} menu and look at the documentation for this variable. Its default value should be diff --git a/man/new-users-guide/search.texi b/man/new-users-guide/search.texi index d4cc7f6..70b321a 100644 --- a/man/new-users-guide/search.texi +++ b/man/new-users-guide/search.texi @@ -11,7 +11,7 @@ complete typing the whole string. All searches in Emacs ignore the case of the text they are searching, i.e. if you are searching for "String", then "string" will also be one of the selections. If you want a case sensitive search select the @b{Case Sensitive Search} from the -@b{Option} menu. You can also set the variable @var{case-fold-search} to +@b{Option} menu. You can also set the variable @code{case-fold-search} to @code{nil} for making searches case-sensitive. For information on setting variables, @xref{Setting Variables}. The two commands for searching for strings in XEmacs are: diff --git a/man/xemacs-faq.texi b/man/xemacs-faq.texi index a56aca7..8f8b3eb 100644 --- a/man/xemacs-faq.texi +++ b/man/xemacs-faq.texi @@ -7,9 +7,9 @@ @finalout @titlepage @title XEmacs FAQ -@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2003/05/02 06:00:43 $ +@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2003/10/09 19:16:02 $ @sp 1 -@author Tony Rossini +@author Tony Rossini @author Ben Wing @author Chuck Thompson @author Steve Baur @@ -1430,24 +1430,18 @@ you don't use. @emph{Nothing bad will happen if you delete a package 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. +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. -@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. +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. @@ -1944,7 +1938,7 @@ file @file{XKeysymDB}. The binary cannot find the @file{XKeysymDB} file. The location is hardcoded at compile time so if the system the binary was built on puts it a different place than your system does, you have problems. To fix, -set the environment variable @var{XKEYSYMDB} to the location of the +set the environment variable @code{XKEYSYMDB} to the location of the @file{XKeysymDB} file on your system or to the location of the one included with XEmacs which should be at @iftex @@ -1957,7 +1951,7 @@ The binary is finding the XKeysymDB but it is out-of-date on your system and does not contain the necessary lines. Either ask your system administrator to replace it with the one which comes with XEmacs (which is the stock R6 version and is backwards compatible) or set your -@var{XKEYSYMDB} variable to the location of XEmacs's described above. +@code{XKEYSYMDB} variable to the location of XEmacs's described above. @end itemize @node Q2.1.4, Q2.1.5, Q2.1.3, Installation @@ -1993,7 +1987,7 @@ The buffer still exists; it just isn't in your face. Help! I can not get XEmacs to display on my Envizex X-terminal! -Try setting the @var{DISPLAY} variable using the numeric IP address of +Try setting the @code{DISPLAY} variable using the numeric IP address of the host you are running XEmacs from. @node Q2.1.6, Q2.1.7, Q2.1.5, Installation @@ -3762,9 +3756,8 @@ For an extensive menubar, add this line to your @file{init.el}/@file{.emacs}: @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}? @@ -4546,6 +4539,14 @@ Don't let the installation procedure & instructions stop you from trying 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? @@ -5903,7 +5904,9 @@ document? 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. diff --git a/man/xemacs/custom.texi b/man/xemacs/custom.texi index 183abd7..5aeef5d 100644 --- a/man/xemacs/custom.texi +++ b/man/xemacs/custom.texi @@ -2106,7 +2106,7 @@ run both variants. Starting with XEmacs 21, XEmacs uses the class @samp{XEmacs} if it finds any XEmacs resources in the resource database when the X connection is initialized. Otherwise, it will use the class @samp{Emacs} for -backwards compatibility. The variable @var{x-emacs-application-class} +backwards compatibility. The variable @code{x-emacs-application-class} may be consulted to determine the application class being used. The examples in this section assume the application class is @samp{Emacs}. diff --git a/man/xemacs/packages.texi b/man/xemacs/packages.texi index 32adac7..5696ebe 100644 --- a/man/xemacs/packages.texi +++ b/man/xemacs/packages.texi @@ -20,7 +20,6 @@ local needs with safe removal of unnecessary code. * 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 @@ -32,13 +31,13 @@ local needs with safe removal of unnecessary code. There are two main flavors of packages. @itemize @bullet -@item +@item Regular Packages @cindex regular packages A regular package is one in which multiple files are involved and one may not in general safely remove any of them. -@item +@item Single-File Packages @cindex single-file packages A single-file package is an aggregate collection of thematically @@ -70,6 +69,7 @@ savings). 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 @@ -95,7 +95,7 @@ where you grabbed the core distribution from, and are located in the subdirectory @file{packages}. Package file names follow the naming convention @file{--pkg.tar.gz}. -If you have @ref{(EFS)}, packages can be installed over the network. +If you have EFS @ref{(EFS)}, packages can be installed over the network. Alternatively, if you have copies of the packages locally, you can install packages from a local disk or CDROM. @@ -107,13 +107,13 @@ are installed, using the visual package browser and installer. You can 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 @@ using the @code{package-get-package-provider} function. Eg., if you know 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 @@ one of the methods above for installing the package you want. 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} +be used by XEmacs after a restart unless the package in question has not +been previously installed. -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): - -@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,33 +167,31 @@ you need are: 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 steps. @enumerate 1 -@item +@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) If the package tarballs _AND_ the package-index file are in a -local directory, you can: @code{M-x pui-add-install-directory RET} +local directory, you can: @code{M-x pui-set-local-package-get-directory RET} -@item +@item Obtain a list of packages and display the list in a buffer named @file{*Packages*}. menu: Tools -> Packages -> List & Install keyb: @code{M-x pui-list-packages RET} XEmacs will now connect to the remote site and download the -latest package-index file. If you see an error about the -package-index entries not being PGP signed, you can safely -ignore this because PGP has not been integrated into the XEmacs -package tools yet. +latest package-index file. The visual package browser will then display a list of all packages. Help information will be displayed at the very bottom of the buffer; you @@ -278,7 +214,7 @@ installed and is up to date. From here, you can select or unselect packages for installation using the @key{RET} key, the @kbd{Mouse-2} button or selecting "Select" from -the (Popup) Menu. +the Popup @kbd{Mouse-3} Menu. Once you've finished selecting the packages, you can press the @kbd{x} key (or use the menu) to actually install the packages. Note that you will have to restart XEmacs for XEmacs to @@ -307,15 +243,17 @@ Kill the package buffer. @end table Moving the mouse over a package will also cause additional information -about the package to be displayed in the minibuffer. +about the package to be displayed in the minibuffer. If you have +balloon-help enabled a balloon-help frame will pop up and display +additional package information also. -@item +@item Choose the packages you wish to install. mouse: Click button 2 on the package name. keyb: @kbd{RET} on the package name -@item +@item Make sure you have everything you need. menu: Packages -> Add Required keyb: @kbd{r} @@ -327,7 +265,7 @@ those packages also. For novices and gurus alike, this step can save your bacon. It's easy to forget to install a critical package. -@item +@item Download and install the packages. menu: Packages -> Install/Remove Selected keyb: @kbd{x} @@ -343,7 +281,81 @@ Enter the name of the package (e.g., @code{prog-modes}), and XEmacs will search for the latest version and install it and any packages that it depends upon. -@node Which Packages, Removing Packages, Automatically, Installing Packages +@heading Keeping Packages Up To Date: +Once you have the packages you want installed (using any of the above +methods) you'll want to keep them up to date. You can do this easily +from the menubar: + +@example +Tools -> Packages -> Set Download Site +Tools -> Packages -> Update Installed Packages +@end example + + +@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 @@ -354,7 +366,7 @@ everything. A good minimal set of packages for XEmacs-latin1 would be xemacs-base, xemacs-devel, c-support, cc-mode, debug, dired, efs, edit-utils, fsf-compat, mail-lib, net-utils, os-utils, prog-modes, -text-modes, time +text-modes, time, mailcrypt If you are using the XEmacs package tools, don't forget to do: @@ -402,7 +414,7 @@ Currently, source packages are only available via anonymous CVS. See @item GNU make (3.75 or later preferred). @item makeinfo -(1.68 from texinfo-3.11 or later required). +(4.2 from GNU texinfo 4.2 or later required). @item GNU tar (or equivalent). @item GNU gzip @@ -418,52 +430,10 @@ The packages CVS sources are most useful for creating XEmacs package tarballs for installation into your own XEmacs installations or for distributing to others. -Supported operations from @file{make} are: - -@table @code -@item 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: @@ -472,201 +442,10 @@ the top level of the CVS module, @file{packages}, contains the file, @file{Local.rules.template}. Simply copy that to @file{Local.rules} and edit it to suit your needs. -These are the variables in 'Local.rules' that you will need to -address. 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" ; one-line period-terminated 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 first letter should be capitalized, and the -string should end in a period. It need not be a complete sentence -grammatically. 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 @@ -676,7 +455,7 @@ xemacs.org and it's mirrors. If a particular package that you are looking for isn't here, please send a message to the @email{xemacs-beta@@xemacs.org, XEmacs Beta list}. -This data is up to date as of September 22, 2002. +This data is up to date as of June 27, 2003. @subsection Normal Packages A very broad selection of elisp packages. @@ -793,6 +572,9 @@ GNU Emacs compatibility files. @item games Tetris, Sokoban, and Snake. +@item general-docs +General documentation. Presently, empty. + @item gnats XEmacs bug reports. @@ -851,13 +633,13 @@ Support for Multiple Major Modes within a single buffer. 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. @@ -870,6 +652,9 @@ Provides programmatic completion. @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. @@ -982,6 +767,9 @@ An Emacs mailer. @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 naked XEmacs. diff --git a/man/xemacs/reading.texi b/man/xemacs/reading.texi index 57e965c..ca1e156 100644 --- a/man/xemacs/reading.texi +++ b/man/xemacs/reading.texi @@ -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. diff --git a/man/xemacs/xemacs.texi b/man/xemacs/xemacs.texi index d5d83b6..89fd4b3 100644 --- a/man/xemacs/xemacs.texi +++ b/man/xemacs/xemacs.texi @@ -241,7 +241,6 @@ Packages * Installing Packages:: How to install packages. * Building Packages:: Building packages from sources. * Local.rules File:: An important part of building packages. -* Creating Packages:: The basics. * Available Packages:: A brief directory of packaged LISP. Basic Editing Commands diff --git a/netinstall/ChangeLog b/netinstall/ChangeLog index 696f348..7a19f38 100644 --- a/netinstall/ChangeLog +++ b/netinstall/ChangeLog @@ -1,3 +1,7 @@ +2004-02-02 Vin Shelton + + * XEmacs 21.4.15 is released + 2003-09-03 Vin Shelton * XEmacs 21.4.14 is released diff --git a/nt/ChangeLog b/nt/ChangeLog index d568d0b..1fa8429 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog @@ -1,3 +1,21 @@ +2004-02-02 Vin Shelton + + * XEmacs 21.4.15 is released + +2003-12-10 Adrian Aichner + + * xemacs.mak (COPYCMD): New. + * xemacs.mak (COPY): New. + * xemacs.mak (COPYDIR): New. + * xemacs.mak (XEMACS_INCLUDES): + * xemacs.mak (install): Allow xemacs.mak to overwrite existing + installation. + +2003-11-06 Adrian Aichner + + * minitar.c: Sync with Xemacs 21.5 version to fix package + installation in native Windows XEmacs. + 2003-09-03 Vin Shelton * XEmacs 21.4.14 is released diff --git a/nt/minitar.c b/nt/minitar.c index a704d5f..d5e3d40 100644 --- a/nt/minitar.c +++ b/nt/minitar.c @@ -23,12 +23,12 @@ #include -static int -Usage(char *name) +static void +Usage (char *name) { - fprintf(stderr,"Usage: %s file.tar.gz [base-dir]\n",name); - fprintf(stderr,"\tExtracts the contents compressed tar file to base-dir\n"); - exit(-1); + fprintf (stderr, "Usage: %s file.tar.gz [base-dir]\n", name); + fprintf (stderr, "\tExtracts the contents compressed tar file to base-dir\n"); + exit (-1); } @@ -36,10 +36,10 @@ Usage(char *name) #define MAXNAMELEN 1024 static int -octal(char *str) +octal (char *str) { int ret = -1; - sscanf(str,"%o",&ret); + sscanf (str, "%o", &ret); return ret; } @@ -48,39 +48,40 @@ octal(char *str) path component, so it is not created as a directory */ static int -makepath(char *path) +makepath (char *path) { char tmp[MAXNAMELEN]; char *cp; - for (cp=path; cp; cp = (char*)strchr(cp+1,'/')){ - if (!*cp) - break; - if (*cp != '/') - continue; - strncpy(tmp, path, cp-path); - tmp[cp-path] = '\0'; - if (strlen(tmp) == 0) - continue; + for (cp=path; cp; cp = (char*)strchr (cp+1, '/')) + { + if (!*cp) + break; + if (*cp != '/') + continue; + strncpy (tmp, path, cp-path); + tmp[cp-path] = '\0'; + if (strlen (tmp) == 0) + continue; #ifdef WIN32_NATIVE - if (mkdir(tmp)){ + if (mkdir (tmp)) #else - if (mkdir(tmp,0777)){ + if (mkdir (tmp, 0777)) #endif - if (errno == EEXIST) - continue; - else - return -1; + { + if (errno == EEXIST) + continue; + else + return -1; + } } - } return 0; } - - + int -main(int argc, char **argv) +main (int argc, char **argv) { char fullname[MAXNAMELEN]; char *basedir = "."; @@ -101,124 +102,145 @@ main(int argc, char **argv) int directory = 0; if (argc < 2 || argc > 3) - Usage(argv[0]); + Usage (argv[0]); tarfile = argv[1]; if (argc==3) basedir = argv[2]; - if (! (infile = gzopen(tarfile,"rb"))){ - fprintf(stderr,"Cannot open %s\n", tarfile); - exit(-2); - } - - while (1){ - - - nread = gzread(infile,block,512); - - if (!in_block && nread == 0) - break; - - if (nread != BLOCKSIZE){ - fprintf(stderr,"Error: incomplete block read. Exiting.\n"); - exit(-2); + if (! (infile = gzopen (tarfile, "rb"))) + { + fprintf (stderr, "Cannot open %s\n", tarfile); + exit (-2); } + + while (1) + { + nread = gzread (infile, block, 512); - if (!in_block){ - if (block[0]=='\0') /* We're done */ + if (!in_block && nread == 0) break; - strncpy(magic,block+257,6); - magic[6] = '\0'; - if (strcmp(magic,"ustar ")){ - fprintf(stderr, - "Error: incorrect magic number in tar header. Exiting\n"); - } - - strncpy(name,block,100); - name[100] = '\0'; - sprintf(fullname,"%s/%s",basedir,name); - printf("%s\n",fullname); - type = block[156]; + if (nread != BLOCKSIZE) + { + fprintf (stderr, "Error: incomplete block read. Exiting.\n"); + exit (-2); + } + + if (!in_block) + { + if (block[0]=='\0') /* We're done */ + break; + + strncpy (magic, block+257, 6); + magic[6] = '\0'; + if (strcmp (magic, "ustar ")) + { + fprintf (stderr, + "Error: incorrect magic number in tar header. Exiting\n"); + exit (-2); + } + + strncpy (name, block, 100); + name[100] = '\0'; + sprintf (fullname, "%s/%s", basedir, name); + printf ("%s\n", fullname); + type = block[156]; - switch(type){ - case '0': - case '\0': - directory = 0; - break; - case '5': - directory = 1; - break; - default: - fprintf(stderr,"Error: unknown type flag %c. Exiting.\n",type); - break; - } + switch (type) + { + case '0': + case '\0': + directory = 0; + break; + case '5': + directory = 1; + break; + default: + fprintf (stderr, "Error: unknown type flag %c. Exiting.\n", type); + exit (-2); + break; + } - if (directory){ - in_block = 0; + if (directory) + { + in_block = 0; - /* makepath will ignore the final path component, so make sure - dirnames have a trailing slash */ - - if (fullname[strlen(fullname)-1] != '/') - strcat(fullname,"/"); - if (makepath(fullname)){ - fprintf(stderr, "Error: cannot create directory %s. Exiting.\n", - fullname); - exit(-2); + /* makepath will ignore the final path component, so make sure + dirnames have a trailing slash */ + + if (fullname[strlen (fullname)-1] != '/') + strcat (fullname, "/"); + if (makepath (fullname)) + { + fprintf (stderr, "Error: cannot create directory %s. Exiting.\n", + fullname); + exit (-2); + } + continue; + } + else + { /*file */ + in_block = 1; + if (outfile) + { + if (fclose (outfile)) + { + fprintf (stderr, "Error: cannot close file %s. Exiting.\n", + fullname); + exit (-2); + } + outfile = (FILE*)0; + } + + if (!(outfile = fopen (fullname, "wb"))) + { + /*try creating the directory, maybe it's not there */ + if (makepath (fullname)) + { + fprintf (stderr, "Error: cannot create file %s. Exiting.\n", + fullname); + exit (-2); + } + /* now try again to open the file */ + if (!(outfile = fopen (fullname, "wb"))) + { + fprintf (stderr, "Error: cannot create file %s. Exiting.\n", + fullname); + exit (-2); + } + } + + strncpy (osize, block+124, 12); + osize[12] = '\0'; + size = octal (osize); + if (size<0) + { + fprintf (stderr, "Error: invalid size in tar header. Exiting.\n"); + exit (-2); + } + if (size==0) /* file of size 0 is done */ + in_block = 0; + } } - continue; - } else { /*file */ - in_block = 1; - if (outfile){ - if (fclose(outfile)){ - fprintf(stderr,"Error: cannot close file %s. Exiting.\n", - fullname); - exit(-2); - } - outfile = (FILE*)0; - } - - if ( !(outfile = fopen(fullname,"wb"))){ - /*try creating the directory, maybe it's not there */ - if (makepath(fullname)){ - fprintf(stderr,"Error: cannot create file %s. Exiting.\n", - fullname); - exit(-2); - } - /* now try again to open the file */ - if (!(outfile = fopen(fullname,"wb"))){ - fprintf(stderr,"Error: cannot create file %s. Exiting.\n", - fullname); - exit(-2); - } - } - - strncpy(osize,block+124,12); - osize[12] = '\0'; - size = octal(osize); - if (size<0){ - fprintf(stderr,"Error: invalid size in tar header. Exiting.\n"); - exit(-2); - } - } - } else { /* write or continue writing file contents */ - nbytes = size>512? 512:size; + else + { /* write or continue writing file contents */ + nbytes = size>512? 512:size; - nwritten = fwrite(block, 1, nbytes, outfile); - if (nwritten != nbytes){ - fprintf(stderr, "Error: only wrote %d bytes to file %s. Exiting.\n", - nwritten, fullname); - } - size -= nbytes; - if (size==0) - in_block = 0; + nwritten = fwrite (block, 1, nbytes, outfile); + if (nwritten != nbytes) + { + fprintf (stderr, "Error: only wrote %d bytes to file %s. Exiting.\n", + nwritten, fullname); + exit (-2); + } + size -= nbytes; + if (size==0) + in_block = 0; + } } - } - exit (0); -} - + return 0; +} diff --git a/nt/xemacs.mak b/nt/xemacs.mak index 235937b..35ddb91 100644 --- a/nt/xemacs.mak +++ b/nt/xemacs.mak @@ -44,16 +44,25 @@ LWLIB_SRCDIR=$(XEMACS)\lwlib MAKEDIRSTRING=$(MAKEDIR:\=\\) XEMACSDIRSTRING=$(MAKEDIRSTRING:\\nt=) - -# Define a variable for the 'del' command to use -# N.B. Windows Millenium Edition's ERASE can only handle one target (file or -# wildcard) per invocation. Make sure each use has only one target! -DEL=-del - # Program name and version !include "$(XEMACS)\version.sh" +# Put these before including config.inc so they can be overridden there. +# Note that some versions of some commands are deficient. + +# Define a variable for the 'del' command to use. +# WinME's DEL command can only handle one argument and only has the /P flag. +# So only delete one glob at a time. Override flags in config.inc. +DEL=-del + +# Tell COPY, MOVE, and XCOPY to suppress confirmation for overwriting +# files. +COPYCMD=/y +# Define the 'copy' command to use. +COPY=xcopy /q +COPYDIR=xcopy /q /e + !include "config.inc" !if !defined(INFODOCK) @@ -490,12 +499,15 @@ XEMACS_INCLUDES=\ # #### Copying is cheap, we should just force these $(SRC)\config.h: config.h + set COPYCMD=$(COPYCMD) copy config.h $(SRC) $(SRC)\Emacs.ad.h: Emacs.ad.h + set COPYCMD=$(COPYCMD) copy Emacs.ad.h $(SRC) $(SRC)\paths.h: paths.h + set COPYCMD=$(COPYCMD) copy paths.h $(SRC) #------------------------------------------------------------------------------ @@ -1405,6 +1417,7 @@ temacs: $(LASTFILE) $(TEMACS) # use this rule to install the system install: all cd $(NT) + set COPYCMD=$(COPYCMD) @echo Installing in $(INSTALL_DIR) ... @echo PlaceHolder > PlaceHolder @xcopy /q PROBLEMS "$(INSTALL_DIR)\" diff --git a/src/ChangeLog b/src/ChangeLog index b3605ba..42fb135 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -5377,6 +5377,93 @@ (Vcharset_thai_tis620): Likewise. (Vcharset_katakana_jisx0201): Likewise. +2004-02-02 Vin Shelton + + * XEmacs 21.4.15 is released + +2004-01-30 Glynn Clements + + * device-x.c (x_error_handler): Don't call stderr_out + +2003-11-07 Katsumi Yamaoka + + * buffer.c (other-buffer): Clarify documentation of order of + arguments for FSF Emacs. + +2003-10-11 Olivier Galibert + + * window.c (Fdelete_window): Dirty the mirror structure _before_ + marking the window deleted. + +2003-09-15 Jerry James + + * event-msw.c (debug_mswin_messages): Conditionally compile + messages missing from the Cygwin headers. + +2003-06-16 Stephen J. Turnbull + + * data.c (eq_with_ebola_notice): Fix typo in comment. + (Ftrue_list_p): Improve docstring. + +2003-10-13 Stephen J. Turnbull + + * frame-x.c (x_update_frame_external_traits): Fix XtSetArg idiom. + +2003-09-27 Stephen J. Turnbull + + * search.c (trivial_regexp_p): Regexps containing "\{" are + nontrivial. Thanks to Manfred Bartz for reporting the bug and + Stefan Monnier for suggesting a diagnosis. + +2003-09-25 Stephen J. Turnbull + + * elhash.c (make-hash-table): Clarify use of :test #'equal. + +2003-09-12 Stephen J. Turnbull + + * search.c (Fsearch_forward): + (Fsearch_backward): + Document negative count. + +2003-09-13 Stephen J. Turnbull + + * regex.c (re_max_failures): Bump to 20000 for REGEX_MALLOC, too. + +2003-09-13 Martin Buchholz + + * s/sol2.h: Use OS_RELEASE=os_release_major*100+os_release_minor + +2003-09-15 Vin Shelton + + * .gdbinit (pobj): Remove Ilya's fix that was only intended for + 21.5. + +2003-09-12 Yoshiki Hayashi + + * regex.c (TRANSLATE_EXTENDED_UNSAFE): Remove. + (re_search_2): Match the first byte of Bufbyte, not Emchar. + (re_match_2_internal): Use TRANSLATE instead of + TRANSLATE_EXTENDED_UNSAFE. The latter was a hack to bypass + non-ASCII char case conversion. + +2003-09-08 Mike Sperber + + * symbols.c (Fvariable_binding_locus): Add, as per suggestion from + RMS at: http://article.gmane.org/gmane.emacs.pretest.bugs/1010 + +2003-06-14 Ilya N. Golubev + + * .gdbinit (pobj): fix printing of symbol name. + +2003-08-01 Ilya N. Golubev + + * frame-x.c (x_layout_widgets): When resizing is about to cause + frame size slip, mark it for redisplay. + +2003-08-18 Jerry James + + * opaque.h: Remove unused (X)OPAQUE_MARKFUN definitions. + 2003-09-03 Vin Shelton * XEmacs 21.4.14 is released diff --git a/src/buffer.c b/src/buffer.c index 5790dc9..ecb204c 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1000,8 +1000,8 @@ The ordering is for this frame; If second optional argument FRAME is provided, then the ordering is for that frame. If the second arg is t, then the global ordering is returned. -Note: In FSF Emacs, this function takes two arguments: BUFFER and -VISIBLE-OK. +Note: In FSF Emacs, this function takes the arguments in the order of +BUFFER, VISIBLE-OK and FRAME. */ (buffer, frame, visible_ok)) { diff --git a/src/data.c b/src/data.c index 6769058..21e5d26 100644 --- a/src/data.c +++ b/src/data.c @@ -83,7 +83,7 @@ eq_with_ebola_notice (Lisp_Object obj1, Lisp_Object obj2) && ((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 ("Comparison between integer and character is constant nil (", Qexternal_debugging_output); Fprinc (obj1, Qexternal_debugging_output); @@ -249,7 +249,7 @@ Return t if OBJECT is not a list. `nil' is a list. } 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)) { diff --git a/src/device-x.c b/src/device-x.c index 4bfa4b0..6fc5ff9 100644 --- a/src/device-x.c +++ b/src/device-x.c @@ -1057,10 +1057,14 @@ x_error_handler (Display *disp, XErrorEvent *event) } #endif /* EXTERNAL_WIDGET */ +#if 0 + /* This ends up calling X, which isn't allowed in an X error handler + */ stderr_out ("\n%s: ", (STRINGP (Vinvocation_name) ? (char *) XSTRING_DATA (Vinvocation_name) : "xemacs")); +#endif XmuPrintDefaultErrorMessage (disp, event, stderr); } return 0; diff --git a/src/elhash.c b/src/elhash.c index b034860..0293331 100644 --- a/src/elhash.c +++ b/src/elhash.c @@ -809,7 +809,7 @@ Use Common Lisp style keywords to specify hash table properties. Keyword :test can be `eq', `eql' (default) or `equal'. Comparison between keys is done using this function. If speed is important, consider using `eq'. -When storing strings in the hash table, you will likely need to use `equal'. +When hash table keys may be strings, you will likely need to use `equal'. Keyword :size specifies the number of keys likely to be inserted. This number of entries can be inserted without enlarging the hash table. diff --git a/src/event-msw.c b/src/event-msw.c index bf87090..779f049 100644 --- a/src/event-msw.c +++ b/src/event-msw.c @@ -3875,7 +3875,7 @@ FROB (WM_SETHOTKEY) FROB (WM_GETHOTKEY) FROB (WM_QUERYDRAGICON) FROB (WM_COMPAREITEM) -#if(WINVER >= 0x0500) +#if(WINVER >= 0x0500) && defined(WM_GETOBJECT) FROB (WM_GETOBJECT) #endif /* WINVER >= 0x0500 */ FROB (WM_COMPACTING) @@ -3957,10 +3957,18 @@ FROB (WM_MENUCHAR) FROB (WM_ENTERIDLE) #if(WINVER >= 0x0500) FROB (WM_MENURBUTTONUP) +#ifdef WM_MENUDRAG FROB (WM_MENUDRAG) +#endif +#ifdef WM_MENUGETOBJECT FROB (WM_MENUGETOBJECT) +#endif +#ifdef WM_UNINITMENUPOPUP FROB (WM_UNINITMENUPOPUP) +#endif +#ifdef WM_MENUCOMMAND FROB (WM_MENUCOMMAND) +#endif #endif /* WINVER >= 0x0500 */ @@ -4036,7 +4044,7 @@ FROB (WM_IME_COMPOSITIONFULL) FROB (WM_IME_SELECT) FROB (WM_IME_CHAR) #endif /* WINVER >= 0x0400 */ -#if(WINVER >= 0x0500) +#if(WINVER >= 0x0500) && defined(WM_IME_REQUEST) FROB (WM_IME_REQUEST) #endif /* WINVER >= 0x0500 */ #if(WINVER >= 0x0400) && !defined(CYGWIN) diff --git a/src/frame-x.c b/src/frame-x.c index f174a06..f3aaef1 100644 --- a/src/frame-x.c +++ b/src/frame-x.c @@ -1811,10 +1811,14 @@ x_layout_widgets (Widget w, XtPointer client_data, XtPointer call_data) #endif /* finally the text area */ - XtConfigureWidget (text, text_x, text_y, - width - 2*textbord, - height - text_y - 2*textbord, - textbord); + { + Dimension nw = width - 2*textbord; + Dimension nh = height - text_y - 2*textbord; + + if (nh != f->pixheight || nw != f->pixwidth) + MARK_FRAME_SIZE_SLIPPED (f); + XtConfigureWidget (text, text_x, text_y, nw, nh, textbord); + } } static void @@ -2744,9 +2748,11 @@ x_update_frame_external_traits (struct frame* frm, Lisp_Object name) Lisp_Object font = FACE_FONT (Vdefault_face, frame, Vcharset_ascii); if (!EQ (font, Vthe_null_font_instance)) - XtSetArg (al[ac], XtNfont, - (void *) FONT_INSTANCE_X_FONT (XFONT_INSTANCE (font))); - ac++; + { + XtSetArg (al[ac], XtNfont, + (void *) FONT_INSTANCE_X_FONT (XFONT_INSTANCE (font))); + ac++; + } } else abort (); diff --git a/src/opaque.h b/src/opaque.h index 527ae6b..d308eb0 100644 --- a/src/opaque.h +++ b/src/opaque.h @@ -47,10 +47,8 @@ DECLARE_LRECORD (opaque, Lisp_Opaque); #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, size_t size); diff --git a/src/regex.c b/src/regex.c index 44e8e0b..eb98c0b 100644 --- a/src/regex.c +++ b/src/regex.c @@ -1136,7 +1136,7 @@ static const char *re_error_msgid[] = exactly that if always used MAX_FAILURE_SPACE each time we failed. This is a variable only so users of regex can assign to it; we never change it ourselves. */ -#if defined (MATCH_MAY_ALLOCATE) +#if defined (MATCH_MAY_ALLOCATE) || defined (REGEX_MALLOC) /* 4400 was enough to cause a crash on Alpha OSF/1, whose default stack limit is 2mb. */ int re_max_failures = 20000; @@ -1592,13 +1592,6 @@ static unsigned char reg_unset_dummy; when we use a character as a subscript we must make it unsigned. */ #define TRANSLATE(d) (TRANSLATE_P (translate) ? RE_TRANSLATE (d) : (d)) -#ifdef MULE - -#define TRANSLATE_EXTENDED_UNSAFE(emch) \ - (TRANSLATE_P (translate) && emch < 0x80 ? RE_TRANSLATE (emch) : (emch)) - -#endif - /* Macros for outputting the compiled pattern into `buffer'. */ /* If the buffer isn't allocated when it comes in, use this. */ @@ -4145,10 +4138,12 @@ re_search_2 (struct re_pattern_buffer *bufp, const char *str1, { #ifdef MULE Emchar buf_ch; + Bufbyte str[MAX_EMCHAR_LEN]; buf_ch = charptr_emchar (d); buf_ch = RE_TRANSLATE (buf_ch); - if (buf_ch >= 0200 || fastmap[(unsigned char) buf_ch]) + set_charptr_emchar (str, buf_ch); + if (buf_ch >= 0200 || fastmap[(unsigned char) *str]) break; #else if (fastmap[(unsigned char)RE_TRANSLATE (*d)]) @@ -4902,7 +4897,7 @@ re_match_2_internal (struct re_pattern_buffer *bufp, re_char *string1, REGEX_PREFETCH (); c = charptr_emchar ((const Bufbyte *) d); - c = TRANSLATE_EXTENDED_UNSAFE (c); /* The character to match. */ + c = TRANSLATE (c); /* The character to match. */ if (EQ (Qt, unified_range_table_lookup (p, c, Qnil))) not_p = !not_p; diff --git a/src/s/sol2.h b/src/s/sol2.h index d780f91..be814d7 100644 --- a/src/s/sol2.h +++ b/src/s/sol2.h @@ -11,7 +11,7 @@ #endif /* Fix understandable GCC lossage on Solaris 2.6 */ -#if defined(__GNUC__) && OS_RELEASE >= 56 && !defined(NOT_C_CODE) +#if defined(__GNUC__) && OS_RELEASE >= 506 && !defined(NOT_C_CODE) /* GCC va_list munging is a little messed up */ #define __GNUC_VA_LIST @@ -66,7 +66,7 @@ extern int __xnet_getsockopt (int, int, int, void *, size_t *); */ #undef UNEXEC -#if OS_RELEASE < 56 +#if OS_RELEASE < 506 #define UNEXEC "unexsol2.o" #else #define UNEXEC "unexsol2-6.o" @@ -74,7 +74,7 @@ extern int __xnet_getsockopt (int, int, int, void *, size_t *); #else /* C_CODE */ -#if OS_RELEASE <= 53 +#if OS_RELEASE <= 503 /* Solaris 2.3 has a bug in XListFontsWithInfo. */ #define BROKEN_XLISTFONTSWITHINFO #endif @@ -91,7 +91,7 @@ extern int __xnet_getsockopt (int, int, int, void *, size_t *); #define BROKEN_SIGCHLD #endif -#if OS_RELEASE < 55 +#if OS_RELEASE < 505 #if __STDC__ == 1 && defined(__SUNPRO_C) #define _POSIX_C_SOURCE 1 @@ -103,7 +103,7 @@ extern int __xnet_getsockopt (int, int, int, void *, size_t *); extern void *__builtin_alloca (size_t); #endif /* before SunOS 5.5 */ -#if OS_RELEASE == 55 +#if OS_RELEASE == 505 /* The following functions were added in Solaris 2.5, but they forgot to add prototypes to the system header files. */ int getpagesize (void); @@ -113,13 +113,13 @@ int usleep (unsigned int useconds); #endif /* SunOS 5.5 */ /* 2.5 now has `random' back in libc but we don't want to use it. */ -#if OS_RELEASE >= 55 +#if OS_RELEASE >= 505 #undef HAVE_RANDOM /* Apparently not necessary here, and it causes 10% CPU chewage. */ #undef BROKEN_SIGCHLD #endif /* >= SunOS 5.5 */ -#if OS_RELEASE < 56 +#if OS_RELEASE < 506 /* Missing prototypes, added in Solaris 2.6 */ struct timeval; int utimes (char *file, struct timeval *tvp); diff --git a/src/search.c b/src/search.c index dcfefee..97ae5e1 100644 --- a/src/search.c +++ b/src/search.c @@ -1120,6 +1120,7 @@ trivial_regexp_p (Lisp_Object regexp) { switch (*s++) { + /* ']' doesn't appear here because it's only special after ] */ case '.': case '*': case '+': case '?': case '[': case '^': case '$': return 0; case '\\': @@ -1129,7 +1130,7 @@ trivial_regexp_p (Lisp_Object regexp) { case '|': case '(': case ')': case '`': case '\'': case 'b': case 'B': case '<': case '>': case 'w': case 'W': case 's': - case 'S': case '=': + case 'S': case '=': case '{': case '}': #ifdef MULE /* 97/2/25 jhod Added for category matches */ case 'c': case 'C': diff --git a/src/symbols.c b/src/symbols.c index 9604bfa..1bdd929 100644 --- a/src/symbols.c +++ b/src/symbols.c @@ -3192,6 +3192,31 @@ variable chain of symbols. return follow_varalias_pointers (object, follow_past_lisp_magic); } +DEFUN ("variable-binding-locus", Fvariable_binding_locus, 1, 1, 0, /* +Return a value indicating where VARIABLE's current binding comes from. +If the current binding is buffer-local, the value is the current buffer. +If the current binding is global (the default), the value is nil. +*/ + (variable)) +{ + Lisp_Object valcontents; + + CHECK_SYMBOL (variable); + variable = Findirect_variable (variable, Qnil); + + /* Make sure the current binding is actually swapped in. */ + find_symbol_value (variable); + + valcontents = XSYMBOL (variable)->value; + + if (SYMBOL_VALUE_MAGIC_P (valcontents) + && ((XSYMBOL_VALUE_MAGIC_TYPE (valcontents) == SYMVAL_BUFFER_LOCAL) + || (XSYMBOL_VALUE_MAGIC_TYPE (valcontents) == SYMVAL_SOME_BUFFER_LOCAL)) + && (!NILP (Flocal_variable_p (variable, Fcurrent_buffer (), Qnil)))) + return Fcurrent_buffer (); + else + return Qnil; +} /************************************************************************/ /* initialization */ @@ -3553,7 +3578,6 @@ syms_of_symbols (void) DEFSYMBOL (Qsymbol_value_in_buffer); DEFSYMBOL (Qsymbol_value_in_console); DEFSYMBOL (Qlocal_variable_p); - DEFSYMBOL (Qconst_integer); DEFSYMBOL (Qconst_boolean); DEFSYMBOL (Qconst_object); @@ -3600,6 +3624,7 @@ syms_of_symbols (void) DEFSUBR (Fdefvaralias); DEFSUBR (Fvariable_alias); DEFSUBR (Findirect_variable); + DEFSUBR (Fvariable_binding_locus); DEFSUBR (Fdontusethis_set_symbol_value_handler); } diff --git a/src/window.c b/src/window.c index bdf7764..680c7b8 100644 --- a/src/window.c +++ b/src/window.c @@ -2109,9 +2109,13 @@ will automatically call `save-buffers-kill-emacs'.) else if (!NILP (w->vchild)) delete_all_subwindows (XWINDOW (w->vchild)); + /* Warning: mark_window_as_deleted calls window_unmap_subwindows and + therefore redisplay, so it requires the mirror structure to be + correct. We must dirty the mirror before it is called. */ + f->mirror_dirty = 1; + mark_window_as_deleted (w); - f->mirror_dirty = 1; return Qnil; } diff --git a/tests/ChangeLog b/tests/ChangeLog index 0fc8e1c..fcf1415 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,27 @@ +2004-02-02 Vin Shelton + + * XEmacs 21.4.15 is released + +2003-10-22 Vin Shelton + + * automated/hash-table-tests.el: Remove debugging print + statements. + +2003-10-22 Stephen J. Turnbull + + * automated/test-harness.el: Synch to 21.5. + +2003-09-25 Stephen J. Turnbull + + * automated/regexp-tests.el (multiple-match): Test \{m,n\}. + +2003-09-09 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-09-03 Vin Shelton * XEmacs 21.4.14 is released diff --git a/tests/automated/hash-table-tests.el b/tests/automated/hash-table-tests.el index 1c8af88..f3465c2 100644 --- a/tests/automated/hash-table-tests.el +++ b/tests/automated/hash-table-tests.el @@ -103,8 +103,6 @@ (let ((k-sum 0) (v-sum 0)) (maphash #'(lambda (k v) (incf k-sum k) (incf v-sum v)) ht) - (print k-sum) - (print v-sum) (Assert (= k-sum (/ (* size (- size 1)) 2))) (Assert (= v-sum (- k-sum)))) diff --git a/tests/automated/regexp-tests.el b/tests/automated/regexp-tests.el index 98fd3a9..fde7991 100644 --- a/tests/automated/regexp-tests.el +++ b/tests/automated/regexp-tests.el @@ -152,6 +152,89 @@ (Assert (string-match "^\\(Ä\\)\\1$" "ÄÄ")) (Assert (not (string-match "^\\(Ä\\)\\1$" "Ää")))) +;; multiple-match +;; Thanks to Manfred Bartz +;; c.e.x +;; #### Need to do repetitions of more complex regexps +;; #### WASH ME! +(with-temp-buffer + (Assert (not (string-match "^a\\{4,4\\}$" "aaa"))) + (Assert (string-match "^a\\{4,4\\}$" "aaaa")) + (Assert (not (string-match "^a\\{4,4\\}$" "aaaaa"))) + (Assert (not (string-match "^[a]\\{4,4\\}$" "aaa"))) + (Assert (string-match "^[a]\\{4,4\\}$" "aaaa")) + (Assert (not (string-match "^[a]\\{4,4\\}$" "aaaaa"))) + (Assert (not (string-match "^\\(a\\)\\{4,4\\}$" "aaa"))) + (Assert (string-match "^\\(a\\)\\{4,4\\}$" "aaaa")) + (Assert (not (string-match "^\\(a\\)\\{4,4\\}$" "aaaaa"))) + ;; Use class because repetition of single char broken in 21.5.15 + (Assert (not (string-match "^[a]\\{3,5\\}$" "aa"))) + (Assert (string-match "^[a]\\{3,5\\}$" "aaa")) + (Assert (string-match "^[a]\\{3,5\\}$" "aaaa")) + (Assert (string-match "^[a]\\{3,5\\}$" "aaaaa")) + (Assert (not (string-match "^[a]\\{3,5\\}$" "aaaaaa"))) + (insert "\ +aa +aaa +aaaa +aaaaa +aaaaaa +baaaa +") + (goto-char (point-min)) + (forward-line 1) + (Assert (not (looking-at "^a\\{4,4\\}$"))) + (forward-line 1) + (Assert (looking-at "^a\\{4,4\\}$")) + (forward-line 1) + (Assert (not (looking-at "^a\\{4,4\\}$"))) + (goto-char (point-min)) + (forward-line 1) + (Assert (not (looking-at "^[a]\\{4,4\\}$"))) + (forward-line 1) + (Assert (looking-at "^[a]\\{4,4\\}$")) + (forward-line 1) + (Assert (not (looking-at "^[a]\\{4,4\\}$"))) + (goto-char (point-min)) + (forward-line 1) + (Assert (not (looking-at "^\\(a\\)\\{4,4\\}$"))) + (forward-line 1) + (Assert (looking-at "^\\(a\\)\\{4,4\\}$")) + (forward-line 1) + (Assert (not (looking-at "^\\(a\\)\\{4,4\\}$"))) + ;; Use class because repetition of single char broken in 21.5.15 + (goto-char (point-min)) + (Assert (not (looking-at "^[a]\\{3,5\\}$"))) + (forward-line 1) + (Assert (looking-at "^[a]\\{3,5\\}$")) + (forward-line 1) + (Assert (looking-at "^[a]\\{3,5\\}$")) + (forward-line 1) + (Assert (looking-at "^[a]\\{3,5\\}$")) + (forward-line 1) + (Assert (not (looking-at "^[a]\\{3,5\\}$"))) + (goto-char (point-min)) + (Assert (= 12 (re-search-forward "a\\{4,4\\}"))) + (goto-char (point-min)) + (Assert (= 12 (re-search-forward "b?a\\{4,4\\}"))) + (goto-char (point-min)) + (Assert (= 31 (re-search-forward "ba\\{4,4\\}"))) + (goto-char (point-min)) + (Assert (= 31 (re-search-forward "[b]a\\{4,4\\}"))) + (goto-char (point-min)) + (Assert (= 31 (re-search-forward "\\(b\\)a\\{4,4\\}"))) + (goto-char (point-min)) + (Assert (= 12 (re-search-forward "^a\\{4,4\\}"))) + (goto-char (point-min)) + (Assert (= 12 (re-search-forward "^a\\{4,4\\}$"))) + (goto-char (point-min)) + (Assert (= 12 (re-search-forward "[a]\\{4,4\\}"))) + (goto-char (point-min)) + (Assert (= 12 (re-search-forward "^[a]\\{4,4\\}"))) + (goto-char (point-min)) + (Assert (= 12 (re-search-forward "^[a]\\{4,4\\}$"))) + ) + ;; charset, charset_not ;; Not called because it takes too much time. (defun test-regexp-charset-paranoid () diff --git a/tests/automated/test-harness.el b/tests/automated/test-harness.el index 89852fc..6e8d632 100644 --- a/tests/automated/test-harness.el +++ b/tests/automated/test-harness.el @@ -1,8 +1,10 @@ ;; test-harness.el --- Run Emacs Lisp test suites. -;;; Copyright (C) 1998 Free Software Foundation, Inc. +;;; Copyright (C) 1998, 2002, 2003 Free Software Foundation, Inc. +;;; Copyright (C) 2002 Ben Wing. ;; Author: Martin Buchholz +;; Maintainer: Stephen J. Turnbull ;; Keywords: testing ;; This file is part of XEmacs. @@ -29,22 +31,55 @@ ;;; A test suite harness for testing XEmacs. ;;; The actual tests are in other files in this directory. ;;; Basically you just create files of emacs-lisp, and use the -;;; Assert, Check-Error, and Check-Message functions to create tests. +;;; Assert, Check-Error, Check-Message, and Check-Error-Message functions +;;; to create tests. See `test-harness-from-buffer' below. +;;; Don't suppress tests just because they're due to known bugs not yet +;;; fixed -- use the Known-Bug-Expect-Failure and +;;; Implementation-Incomplete-Expect-Failure wrapper macros to mark them. +;;; A lot of the tests we run push limits; suppress Ebola message with the +;;; Ignore-Ebola wrapper macro. +;;; ;;; You run the tests using M-x test-emacs-test-file, ;;; or $(EMACS) -batch -l .../test-harness.el -f batch-test-emacs file ... ;;; which is run for you by the `make check' target in the top-level Makefile. (require 'bytecomp) +(defvar test-harness-test-compiled nil + "Non-nil means the test code was compiled before execution.") + (defvar test-harness-verbose (and (not noninteractive) (> (device-baud-rate) search-slow-speed)) "*Non-nil means print messages describing progress of emacs-tester.") +(defvar test-harness-file-results-alist nil + "Each element is a list (FILE SUCCESSES TESTS). +The order is the reverse of the order in which tests are run. + +FILE is a string naming the test file. +SUCCESSES is a non-negative integer, the number of successes. +TESTS is a non-negative integer, the number of tests run.") + +(defvar test-harness-risk-infloops nil + "*Non-nil to run tests that may loop infinitely in buggy implementations.") + (defvar test-harness-current-file nil) (defvar emacs-lisp-file-regexp (purecopy "\\.el\\'") "*Regexp which matches Emacs Lisp source files.") +(defconst test-harness-file-summary-template + (format "%%-%ds %%%dd of %%%dd tests successful (%%3d%%%%)." + (length "byte-compiler-tests.el:") ; use the longest file name + 5 + 5) + "Format for summary lines printed after each file is run.") + +(defconst test-harness-null-summary-template + (format "%%-%ds No tests run." + (length "byte-compiler-tests.el:")) ; use the longest file name + "Format for \"No tests\" lines printed after a file is run.") + ;;;###autoload (defun test-emacs-test-file (filename) "Test a file of Lisp code named FILENAME. @@ -99,7 +134,8 @@ The output file's name is made by appending `c' to the end of FILENAME." (setq body (cons (read buffer) body))) (end-of-file nil) (error - (princ (format "Unexpected error %S reading forms from buffer\n" error-info)))) + (princ (format "Unexpected error %S reading forms from buffer\n" + error-info)))) `(lambda () (defvar passes) (defvar assertion-failures) @@ -130,20 +166,60 @@ The output file's name is made by appending `c' to the end of FILENAME." (trick-optimizer nil) (unexpected-test-suite-failure nil) - (debug-on-error t)) + (debug-on-error t) + (pass-stream nil)) (with-output-to-temp-buffer "*Test-Log*" + (princ (format "Testing %s...\n\n" filename)) + + (defconst test-harness-failure-tag "FAIL") + (defconst test-harness-success-tag "PASS") + + (defmacro Known-Bug-Expect-Failure (&rest body) + `(let ((test-harness-failure-tag "KNOWN BUG") + (test-harness-success-tag "PASS (FAILURE EXPECTED)")) + ,@body)) + + (defmacro Implementation-Incomplete-Expect-Failure (&rest body) + `(let ((test-harness-failure-tag "IMPLEMENTATION INCOMPLETE") + (test-harness-success-tag "PASS (FAILURE EXPECTED)")) + ,@body)) + + (defun Print-Failure (fmt &rest args) + (setq fmt (format "%s: %s" test-harness-failure-tag fmt)) + (if (noninteractive) (apply #'message fmt args)) + (princ (concat (apply #'format fmt args) "\n"))) + + (defun Print-Pass (fmt &rest args) + (setq fmt (format "%s: %s" test-harness-success-tag fmt)) + (and test-harness-verbose + (princ (concat (apply #'format fmt args) "\n")))) + + (defun Print-Skip (test reason &optional fmt &rest args) + (setq fmt (concat "SKIP: %S BECAUSE %S" fmt)) + (princ (concat (apply #'format fmt test reason args) "\n"))) + + (defmacro Skip-Test-Unless (condition reason description &rest body) + "Unless CONDITION is satisfied, skip test BODY. +REASON is a description of the condition failure, and must be unique (it +is used as a hash key). DESCRIPTION describes the tests that were skipped. +BODY is a sequence of expressions and may contain several tests." + `(if (not ,condition) + (let ((count (gethash ,reason skipped-test-reasons))) + (puthash ,reason (if (null count) 1 (1+ count)) + skipped-test-reasons) + (Print-Skip ,description ,reason)) + ,@body)) (defmacro Assert (assertion) `(condition-case error-info (progn (assert ,assertion) - (princ (format "PASS: %S" (quote ,assertion))) - (terpri) + (Print-Pass "%S" (quote ,assertion)) (incf passes)) (cl-assertion-failed - (princ (format "FAIL: Assertion failed: %S\n" (quote ,assertion))) + (Print-Failure "Assertion failed: %S" (quote ,assertion)) (incf assertion-failures)) - (t (princ (format "FAIL: %S ==> error: %S\n" (quote ,assertion) error-info)) + (t (Print-Failure "%S ==> error: %S" (quote ,assertion) error-info) (incf other-failures) ))) @@ -153,60 +229,52 @@ The output file's name is made by appending `c' to the end of FILENAME." `(condition-case error-info (progn (setq trick-optimizer (progn ,@body)) - (princ (format "FAIL: %S executed successfully, but expected error %S\n" + (Print-Failure "%S executed successfully, but expected error %S" ,quoted-body - ',expected-error)) + ',expected-error) (incf no-error-failures)) (,expected-error - (princ (format "PASS: %S ==> error %S, as expected\n" - ,quoted-body ',expected-error)) + (Print-Pass "%S ==> error %S, as expected" + ,quoted-body ',expected-error) (incf passes)) (error - (princ (format "FAIL: %S ==> expected error %S, got error %S instead\n" - ,quoted-body ',expected-error error-info)) + (Print-Failure "%S ==> expected error %S, got error %S instead" + ,quoted-body ',expected-error error-info) (incf wrong-error-failures))))) - (defmacro Check-Error-Message (expected-error expected-error-regexp &rest body) + (defmacro Check-Error-Message (expected-error expected-error-regexp + &rest body) (let ((quoted-body (if (= 1 (length body)) `(quote ,(car body)) `(quote (progn ,@body))))) `(condition-case error-info (progn (setq trick-optimizer (progn ,@body)) - (princ (format "FAIL: %S executed successfully, but expected error %S\n" - ,quoted-body - ',expected-error)) + (Print-Failure "%S executed successfully, but expected error %S" + ,quoted-body ',expected-error) (incf no-error-failures)) (,expected-error (let ((error-message (second error-info))) (if (string-match ,expected-error-regexp error-message) (progn - (princ (format "PASS: %S ==> error %S %S, as expected\n" - ,quoted-body error-message ',expected-error)) + (Print-Pass "%S ==> error %S %S, as expected" + ,quoted-body error-message ',expected-error) (incf passes)) - (princ (format "FAIL: %S ==> got error %S as expected, but error message %S did not match regexp %S\n" - ,quoted-body ',expected-error error-message ,expected-error-regexp)) + (Print-Failure "%S ==> got error %S as expected, but error message %S did not match regexp %S" + ,quoted-body ',expected-error error-message ,expected-error-regexp) (incf wrong-error-failures)))) (error - (princ (format "FAIL: %S ==> expected error %S, got error %S instead\n" - ,quoted-body ',expected-error error-info)) + (Print-Failure "%S ==> expected error %S, got error %S instead" + ,quoted-body ',expected-error error-info) (incf wrong-error-failures))))) - (defun Print-Skip (test reason &optional fmt &rest args) - (setq fmt (concat "SKIP: %S. REASON: %S" fmt)) - (princ (concat (apply #'format fmt test reason args) "\n"))) - (defmacro Check-Message (expected-message-regexp &rest body) - (if (not (fboundp 'defadvice)) - ;; #### This whole thing should go inside a macro Skip-Test - (let* ((reason "advice unavailable") - (count (gethash reason skipped-test-reasons))) - ;(message "%S: %S" reason count) - (puthash reason (if (null count) 1 (1+ count)) - skipped-test-reasons) - `(Print-Skip ,expected-message-regexp ,reason)) + (Skip-Test-Unless (fboundp 'defadvice) + "can't defadvice" + expected-message-regexp (let ((quoted-body (if (= 1 (length body)) - `(quote ,(car body)) `(quote (progn ,@body))))) + `(quote ,(car body)) + `(quote (progn ,@body))))) `(let ((messages "")) (defadvice message (around collect activate) (defvar messages) @@ -218,15 +286,16 @@ The output file's name is made by appending `c' to the end of FILENAME." (setq trick-optimizer (progn ,@body)) (if (string-match ,expected-message-regexp messages) (progn - (princ (format "PASS: %S ==> value %S, message %S, matching %S, as expected\n" - ,quoted-body trick-optimizer messages ',expected-message-regexp)) + (Print-Pass "%S ==> value %S, message %S, matching %S, as expected" + ,quoted-body trick-optimizer messages ',expected-message-regexp) (incf passes)) - (princ (format "FAIL: %S ==> value %S, message %S, NOT matching expected %S\n" - ,quoted-body trick-optimizer messages ',expected-message-regexp)) + (Print-Failure "%S ==> value %S, message %S, NOT matching expected %S" + ,quoted-body trick-optimizer messages + ',expected-message-regexp) (incf missing-message-failures))) (error - (princ (format "FAIL: %S ==> unexpected error %S\n" - ,quoted-body error-info)) + (Print-Failure "%S ==> unexpected error %S" + ,quoted-body error-info) (incf other-failures))) (ad-unadvise 'message))))) @@ -251,7 +320,8 @@ The output file's name is made by appending `c' to the end of FILENAME." (message "Test suite execution aborted." error-info) )) (princ "\nTesting Compiled Lisp\n\n") - (let (code) + (let (code + (test-harness-test-compiled t)) (condition-case error-info (setq code ;; our lisp code is often intentionally dubious, @@ -269,7 +339,7 @@ The output file's name is made by appending `c' to the end of FILENAME." (message "Unexpected error %S while executing byte-compiled code." error-info) (message "Test suite execution aborted." error-info) ))) - (princ "\nSUMMARY:\n") + (princ (format "\nSUMMARY for %s:\n" filename)) (princ (format "\t%5d passes\n" passes)) (princ (format "\t%5d assertion failures\n" assertion-failures)) (princ (format "\t%5d errors that should have been generated, but weren't\n" no-error-failures)) @@ -285,14 +355,16 @@ The output file's name is made by appending `c' to the end of FILENAME." (basename (file-name-nondirectory filename)) (summary-msg (if (> total 0) - (format "%s: %d of %d (%d%%) tests successful." - basename passes total (/ (* 100 passes) total)) - (format "%s: No tests run" basename))) + (format test-harness-file-summary-template + (concat basename ":") + passes total (/ (* 100 passes) total)) + (format test-harness-null-summary-template + (concat basename ":")))) (reasons "")) (maphash (lambda (key value) (setq reasons (concat reasons - (format "\n %d tests skipped because %s" + (format "\n %d tests skipped because %s." value key)))) skipped-test-reasons) (when (> (length reasons) 1) @@ -300,6 +372,9 @@ The output file's name is made by appending `c' to the end of FILENAME." Probably XEmacs cannot find your installed packages. Set EMACSPACKAGEPATH to the package hierarchy root or configure with --package-path to enable the skipped tests."))) + (setq test-harness-file-results-alist + (cons (list filename passes total) + test-harness-file-results-alist)) (message "%s" summary-msg)) (when unexpected-test-suite-failure (message "Test suite execution failed unexpectedly.")) @@ -309,6 +384,9 @@ The output file's name is made by appending `c' to the end of FILENAME." (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) @@ -388,8 +466,45 @@ For example, invoke \"xemacs -batch -f batch-test-emacs tests/*.el\"" (setq error t)))) (or (batch-test-emacs-1 file) (setq error t)))) - ;;(message "%s" (buffer-string nil nil "*Test-Log*")) - (message "Done") + (let ((namelen 0) + (succlen 0) + (testlen 0) + (results test-harness-file-results-alist)) + ;; compute maximum lengths of variable components of report + ;; probably should just use (length "byte-compiler-tests.el") + ;; and 5-place sizes -- this will also work for the file-by-file + ;; printing when Adrian's kludge gets reverted + (flet ((print-width (i) + (let ((x 10) (y 1)) + (while (>= i x) + (setq x (* 10 x) y (1+ y))) + y))) + (while results + (let* ((head (car results)) + (nn (length (file-name-nondirectory (first head)))) + (ss (print-width (second head))) + (tt (print-width (third head)))) + (when (> nn namelen) (setq namelen nn)) + (when (> ss succlen) (setq succlen ss)) + (when (> tt testlen) (setq testlen tt))) + (setq results (cdr results)))) + ;; create format and print + (let ((results (reverse test-harness-file-results-alist))) + (while results + (let* ((head (car results)) + (basename (file-name-nondirectory (first head))) + (nsucc (second head)) + (ntest (third head))) + (if (> ntest 0) + (message test-harness-file-summary-template + (concat basename ":") + nsucc + ntest + (/ (* 100 nsucc) ntest)) + (message test-harness-null-summary-template + (concat basename ":"))) + (setq results (cdr results)))))) + (message "\nDone") (kill-emacs (if error 1 0)))) (provide 'test-harness) diff --git a/version.sh b/version.sh index 7faed11..03a4ee2 100644 --- a/version.sh +++ b/version.sh @@ -2,8 +2,8 @@ emacs_is_beta= emacs_major_version=21 emacs_minor_version=4 -emacs_beta_version=14 -xemacs_codename="Reasonable Discussion" +emacs_beta_version=15 +xemacs_codename="Security Through Obscurity" emacs_kit_version= infodock_major_version=4 infodock_minor_version=0 -- 1.7.10.4