From 46f51e794ddb493a8a76ec2f3be00b41e3b0be22 Mon Sep 17 00:00:00 2001 From: tomo Date: Wed, 19 Jan 2000 05:07:48 +0000 Subject: [PATCH] XEmacs 21.2.25 "Hephaestus". --- CHANGES-beta | 22 +- ChangeLog | 29 +- README | 3 - configure | 1682 +++++++++++++++++++------------- configure.in | 164 +++- configure.usage | 8 +- etc/TUTORIAL.de | 6 +- info/lispref.info | 1257 ++++++++++++------------ info/widget.info | 138 ++- info/xemacs-faq.info | 499 +++++----- info/xemacs-faq.info-1 | 30 +- info/xemacs-faq.info-2 | 19 +- lib-src/ChangeLog | 16 + lib-src/config.values.sh | 65 +- lib-src/fakemail.c | 4 +- lisp/ChangeLog | 77 +- lisp/build-report.el | 4 +- lisp/byte-optimize.el | 61 +- lisp/cus-edit.el | 3 - lisp/files.el | 28 +- lisp/gnuserv.el | 6 +- lisp/hyper-apropos.el | 16 +- lisp/minibuf.el | 12 +- lisp/mule/mule-category.el | 11 +- lisp/package-get.el | 2 +- lwlib/ChangeLog | 36 + lwlib/config.h.in | 8 + lwlib/lwlib-Xaw.c | 20 +- lwlib/lwlib.c | 132 ++- lwlib/lwlib.h | 20 +- lwlib/xlwcheckbox.c | 2 +- lwlib/xlwgauge.c | 2 +- lwlib/xlwgauge.h | 2 +- lwlib/xlwgaugeP.h | 2 +- lwlib/xlwradio.c | 2 +- lwlib/xlwradio.h | 2 +- lwlib/xlwradioP.h | 2 +- lwlib/xlwscrollbar.c | 2 +- lwlib/xlwtabs.c | 199 ++-- lwlib/xlwtabsP.h | 5 +- man/ChangeLog | 38 +- man/lispref/functions.texi | 18 +- man/lispref/minibuf.texi | 167 ++-- man/lispref/text.texi | 16 +- man/widget.texi | 106 +- man/xemacs-faq.texi | 63 +- nt/ChangeLog | 37 +- nt/minitar.c | 1 + src/ChangeLog | 185 +++- src/Makefile.in.in | 4 + src/buffer.c | 2 + src/buffer.h | 2 +- src/cmdloop.c | 6 +- src/config.h.in | 19 +- src/database.c | 1 - src/editfns.c | 35 +- src/elhash.c | 10 +- src/event-msw.c | 2 +- src/event-stream.c | 1 - src/filelock.c | 2 +- src/floatfns.c | 10 +- src/fns.c | 165 +++- src/glyphs-msw.c | 472 ++++----- src/glyphs-widget.c | 56 +- src/glyphs-x.c | 189 ++-- src/glyphs.c | 83 +- src/glyphs.h | 82 +- src/gutter.h | 3 +- src/lisp.h | 3 +- src/print.c | 75 +- src/profile.c | 7 +- src/redisplay-output.c | 128 +-- src/redisplay.c | 29 +- src/regex.c | 2 +- src/s/windowsnt.h | 3 +- src/specifier.c | 12 +- src/specifier.h | 7 + src/syntax.c | 9 +- src/toolbar.h | 2 +- src/widget.c | 2 +- src/window.c | 1 - tests/ChangeLog | 19 + tests/automated/base64-tests.el | 11 +- tests/automated/byte-compiler-tests.el | 27 + tests/automated/lisp-tests.el | 54 + tests/automated/mule-tests.el | 31 + tests/glyph-test.el | 23 +- version.sh | 4 +- 88 files changed, 4095 insertions(+), 2727 deletions(-) diff --git a/CHANGES-beta b/CHANGES-beta index 6740d26..3c9a7d4 100644 --- a/CHANGES-beta +++ b/CHANGES-beta @@ -1,5 +1,25 @@ - -*- indented-text -*- +to 21.2.25 "Hephaestus" +-- the LATEST.IS.* file has been renamed to LATEST-IS-*. +-- the CVS tag to checkout the latest tarball is `r21-2-latest-beta'. +-- 3 crashes in mapcar1 have been fixed. +-- lwlib arg passing cleanup +-- yet more widget and tab fixes +-- yet another Tab sync +-- specifier copying fix for widgets +-- preparation for proper layouts +-- native widgets used for some custom widgets +-- (+ 1) is no longer incorrectly compiled +-- char-before no longer has performance penalty +-- xpm again works on Windows +-- native Windows fixes from Adrian Aichner +-- Mule fixes from Yoshiki Hayashi +-- properly detect Athena widgets headers and libs, preventing crashes + from misdetection and from libraries and headers that don't match, + from Daniel Pittman + to 21.2.24 "Hecate" +-- Tabs fixes from Andy Piper +-- Widget leak fixes from Andy Piper -- (coding-system-list) deals properly with coding system aliases, Shenghuo ZHU -- configure support for ESD sound rewritte, Martin Buchholz -- directory separator fix from Mike Alexander diff --git a/ChangeLog b/ChangeLog index fee99c7..19b744d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +1999-12-24 Martin Buchholz + + * XEmacs 21.2.25 is released. + +1999-12-17 Yoshiki Hayashi + + * README: Remove msdos part. + +1999-12-17 Martin Buchholz + + * configure.in: Oops. xpm doesn't actually depend on X11. + I got confused by the name (like others get confused by `xemacs'?) + 1999-12-14 Martin Buchholz * XEmacs 21.2.24 is released. @@ -147,7 +160,7 @@ * Makefile.in.in: use WINDOWSNT for mingw install. -1999-08-01 Adrian Aichner +1999-08-01 Adrian Aichner * etc/DISTRIB: Update IP address of ftp.xemacs.org. * etc/NEWS: Fix typo @@ -683,7 +696,7 @@ * etc/check_cygwin_setup.sh: fix a couple of buglets. -1998-08-23 Adrian Aichner +1998-08-23 Adrian Aichner * etc/sample.emacs: Enable sound support on mswindows devices. @@ -694,7 +707,7 @@ conditions for both PNG and XPM, stop screaming if png is not found and no window-system is selected, and fixed a bug in the XPM checking. -1998-08-06 Adrian Aichner +1998-08-06 Adrian Aichner * etc/TUTORIAL.de: Fixing typos and grammatical errors. Fixing inconsistent usage of RET, , and (only using @@ -1512,7 +1525,7 @@ Wed Jan 28 13:41:22 1998 Andy Piper * etc/aliases.ksh: Add `mak' function to create beta.err for build-report. - From Adrian Aichner + From Adrian Aichner Suggested by Karl M. Hegbloom 1998-01-27 SL Baur @@ -1926,13 +1939,13 @@ Sun November 01 12:00:00 1997 * lwlib/lwlib-Xm.c(update_one_menu_entry): Add missing variable. From Skip Montanaro -1997-11-04 Adrian Aichner +1997-11-04 Adrian Aichner * etc/TUTORIAL.de: Updated copyright information. Translated most of the COPYING section. Translated the <<.*>> didactic line. -1997-10-22 Adrian Aichner +1997-10-22 Adrian Aichner * etc/TUTORIAL.de: Fixed two issues reported by Achim Oppelt @@ -1945,12 +1958,12 @@ Sun November 01 12:00:00 1997 Applied patches supplied by Marc Aurel <4-tea-2@bong.saar.de>. They fix yet more typos and quite a few awkward sentences. -1997-10-21 Adrian Aichner +1997-10-21 Adrian Aichner * etc/TUTORIAL.de: Manually merged a few more corrections by Carsten Leonhardt -1997-10-20 Adrian Aichner +1997-10-20 Adrian Aichner * etc/TUTORIAL.de: Applied patches from Andreas Jaeger to 1.2, diff --git a/README b/README index b85267e..0962c32 100644 --- a/README +++ b/README @@ -59,8 +59,5 @@ There are several subdirectories: `info' holds the Info documentation tree for XEmacs. `man' holds the source code for the XEmacs info documentation tree. -`msdos' holds configuration files for compiling XEmacs under MSDOG. - See the file etc/MSDOS for more information. - `nt' holds configuration files for compiling XEmacs under Microsoft Windows NT. The support for NT is very tentative right now. diff --git a/configure b/configure index ee408ed..c022376 100755 --- a/configure +++ b/configure @@ -482,6 +482,21 @@ echo " Use \`$progname --help' to show usage.") >&2 && exit 1 done ;; + "with_athena" ) + case "$val" in + xa | xaw ) val=xaw ;; + 3 | 3d | xaw3d ) val=3d ;; + ne | nex | next | naxtaw) val=next ;; + 9 | 95 | xaw95 ) val=95 ;; + xp | xpm | xawxpm ) val=xpm ;; + * ) (echo "$progname: Usage error:" +echo " " "The \`--$optname' option must have one of these values: + \`xaw', \`3d', \`next', \`95', or \`xpm'." +echo " Use \`$progname --help' to show usage.") >&2 && exit 1 ;; + esac + eval "$opt=\"$val\"" + ;; + "with_xim" ) case "$val" in y | ye | yes ) val=yes ;; @@ -710,12 +725,11 @@ EOF case "$val" in l | lu | luc | luci | lucid ) val=lucid ;; m | mo | mot | moti | motif ) val=motif ;; - athena3d | athena-3d ) val=athena3d ;; a | at | ath | athe | athen | athena ) val=athena ;; n | no | non | none ) val=no ;; * ) (echo "$progname: Usage error:" echo " " "The \`--$optname' option must have one of these values: - \`lucid', \`motif', \`athena', \`athena3d', or \`no'." + \`lucid', \`motif', \`athena', or \`no'." echo " Use \`$progname --help' to show usage.") >&2 && exit 1 ;; esac eval "$opt=\"$val\"" @@ -816,7 +830,7 @@ echo " Use \`$progname --help' to show usage.") >&2 && exit 1 fi echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 -echo "configure:820: checking whether ln -s works" >&5 +echo "configure:834: checking whether ln -s works" >&5 rm -f conftestdata if ln -s X conftestdata 2>/dev/null @@ -1061,7 +1075,7 @@ EOF echo $ac_n "checking "host system type"""... $ac_c" 1>&6 -echo "configure:1065: checking "host system type"" >&5 +echo "configure:1079: checking "host system type"" >&5 internal_configuration=`echo $configuration | sed 's/-\(workshop\)//'` canonical=`${CONFIG_SHELL-/bin/sh} $srcdir/config.sub "$internal_configuration"` configuration=`echo "$configuration" | sed 's/^\([^-][^-]*-[^-][^-]*-[^-][^-]*\)-.*$/\1/'` @@ -1555,7 +1569,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:1559: checking for $ac_word" >&5 +echo "configure:1573: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1582,7 +1596,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:1586: checking for $ac_word" >&5 +echo "configure:1600: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1630,7 +1644,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:1634: checking for $ac_word" >&5 +echo "configure:1648: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1659,7 +1673,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1663: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:1677: 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' @@ -1672,12 +1686,12 @@ cross_compiling=no cat > conftest.$ac_ext << EOF -#line 1676 "configure" +#line 1690 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:1681: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1695: \"$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 @@ -1705,19 +1719,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:1709: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1723: 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:1714: checking whether we are using GNU C" >&5 +echo "configure:1728: 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:1735: \"$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 @@ -1735,7 +1749,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:1739: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1753: checking whether ${CC-cc} accepts -g" >&5 echo 'void f(){}' > conftest.c if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then @@ -1768,7 +1782,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:1772: checking for $ac_word" >&5 +echo "configure:1786: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1795,7 +1809,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:1799: checking for $ac_word" >&5 +echo "configure:1813: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1843,7 +1857,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:1847: checking for $ac_word" >&5 +echo "configure:1861: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1872,7 +1886,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1876: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:1890: 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' @@ -1885,12 +1899,12 @@ cross_compiling=no cat > conftest.$ac_ext << EOF -#line 1889 "configure" +#line 1903 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:1894: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1908: \"$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 @@ -1918,19 +1932,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:1922: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1936: 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:1927: checking whether we are using GNU C" >&5 +echo "configure:1941: 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:1948: \"$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 @@ -1948,7 +1962,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:1952: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1966: checking whether ${CC-cc} accepts -g" >&5 echo 'void f(){}' > conftest.c if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then @@ -1981,7 +1995,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:1985: checking for $ac_word" >&5 +echo "configure:1999: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2008,7 +2022,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:2012: checking for $ac_word" >&5 +echo "configure:2026: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2056,7 +2070,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:2060: checking for $ac_word" >&5 +echo "configure:2074: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2085,7 +2099,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:2089: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:2103: 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' @@ -2098,12 +2112,12 @@ cross_compiling=no cat > conftest.$ac_ext << EOF -#line 2102 "configure" +#line 2116 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:2107: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2121: \"$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 @@ -2131,19 +2145,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:2135: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:2149: 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:2140: checking whether we are using GNU C" >&5 +echo "configure:2154: 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:2161: \"$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 @@ -2161,7 +2175,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:2165: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:2179: checking whether ${CC-cc} accepts -g" >&5 echo 'void f(){}' > conftest.c if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then @@ -2198,7 +2212,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:2202: checking how to run the C preprocessor" >&5 +echo "configure:2216: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -2211,13 +2225,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:2221: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2235: \"$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 : @@ -2228,13 +2242,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:2238: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2252: \"$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 : @@ -2245,13 +2259,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:2255: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2269: \"$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 : @@ -2276,9 +2290,9 @@ echo "$ac_t""$CPP" 1>&6 echo $ac_n "checking for AIX""... $ac_c" 1>&6 -echo "configure:2280: checking for AIX" >&5 +echo "configure:2294: checking for AIX" >&5 cat > conftest.$ac_ext <&6 -echo "configure:2309: checking for GNU libc" >&5 +echo "configure:2323: checking for GNU libc" >&5 cat > conftest.$ac_ext < int main() { @@ -2319,7 +2333,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:2323: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2337: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_glibc=yes else @@ -2341,7 +2355,7 @@ EOF cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:2371: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then : else @@ -2627,7 +2641,7 @@ test -n "$unexec" && extra_objs="$extra_objs $unexec" && if test "$ext fi echo $ac_n "checking for dynodump""... $ac_c" 1>&6 -echo "configure:2631: checking for dynodump" >&5 +echo "configure:2645: checking for dynodump" >&5 if test "$unexec" != "unexsol2.o"; then echo "$ac_t""no" 1>&6 else @@ -2665,12 +2679,12 @@ if test "$unexec" = "unexaix.o"; then done echo $ac_n "checking for terminateAndUnload in -lC""... $ac_c" 1>&6 -echo "configure:2669: checking for terminateAndUnload in -lC" >&5 +echo "configure:2683: 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:2699: \"$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 @@ -2785,7 +2799,7 @@ fi if test "$add_runtime_path" = "yes"; then echo $ac_n "checking "for runtime libraries flag"""... $ac_c" 1>&6 -echo "configure:2789: checking "for runtime libraries flag"" >&5 +echo "configure:2803: checking "for runtime libraries flag"" >&5 case "$opsys" in sol2 ) dash_r="-R" ;; decosf* | linux* | irix*) dash_r="-rpath " ;; @@ -2807,14 +2821,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:2832: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* dash_r="$try_dash_r" else @@ -2916,10 +2930,10 @@ else fi after_morecore_hook_exists=yes echo $ac_n "checking for malloc_get_state""... $ac_c" 1>&6 -echo "configure:2920: checking for malloc_get_state" >&5 +echo "configure:2934: checking for malloc_get_state" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2960: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_malloc_get_state=yes" else @@ -2962,10 +2976,10 @@ doug_lea_malloc=no fi echo $ac_n "checking for malloc_set_state""... $ac_c" 1>&6 -echo "configure:2966: checking for malloc_set_state" >&5 +echo "configure:2980: 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:3006: \"$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 @@ -3008,16 +3022,16 @@ doug_lea_malloc=no fi echo $ac_n "checking whether __after_morecore_hook exists""... $ac_c" 1>&6 -echo "configure:3012: checking whether __after_morecore_hook exists" >&5 +echo "configure:3026: 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:3035: \"$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 @@ -3076,7 +3090,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:3080: checking for $ac_word" >&5 +echo "configure:3094: checking for $ac_word" >&5 if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. @@ -3131,7 +3145,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:3135: checking for a BSD compatible install" >&5 +echo "configure:3149: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" @@ -3185,7 +3199,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:3189: checking for $ac_word" >&5 +echo "configure:3203: checking for $ac_word" >&5 if test -n "$YACC"; then ac_cv_prog_YACC="$YACC" # Let the user override the test. @@ -3217,15 +3231,15 @@ for ac_hdr in mach/mach.h sys/stropts.h sys/timeb.h sys/time.h unistd.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:3221: checking for $ac_hdr" >&5 +echo "configure:3235: 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:3229: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3243: \"$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* @@ -3258,15 +3272,15 @@ for ac_hdr in utime.h locale.h libgen.h fcntl.h ulimit.h cygwin/version.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:3262: checking for $ac_hdr" >&5 +echo "configure:3276: 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:3270: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3284: \"$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* @@ -3299,15 +3313,15 @@ for ac_hdr in kstat.h sys/pstat.h inttypes.h sys/un.h a.out.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:3303: checking for $ac_hdr" >&5 +echo "configure:3317: 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:3311: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3325: \"$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* @@ -3337,10 +3351,10 @@ fi done echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 -echo "configure:3341: checking for sys/wait.h that is POSIX.1 compatible" >&5 +echo "configure:3355: checking for sys/wait.h that is POSIX.1 compatible" >&5 cat > conftest.$ac_ext < #include @@ -3356,7 +3370,7 @@ wait (&s); s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF -if { (eval echo configure:3360: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3374: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else @@ -3380,10 +3394,10 @@ EOF fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:3384: checking for ANSI C header files" >&5 +echo "configure:3398: checking for ANSI C header files" >&5 cat > conftest.$ac_ext < #include @@ -3391,7 +3405,7 @@ cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3395: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3409: \"$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* @@ -3408,7 +3422,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 @@ -3426,7 +3440,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 @@ -3444,7 +3458,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') @@ -3455,7 +3469,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF -if { (eval echo configure:3459: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:3473: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then : else @@ -3481,10 +3495,10 @@ EOF fi echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 -echo "configure:3485: checking whether time.h and sys/time.h may both be included" >&5 +echo "configure:3499: checking whether time.h and sys/time.h may both be included" >&5 cat > conftest.$ac_ext < #include @@ -3493,7 +3507,7 @@ int main() { struct tm *tp; ; return 0; } EOF -if { (eval echo configure:3497: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3511: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else @@ -3517,10 +3531,10 @@ EOF fi echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6 -echo "configure:3521: checking for sys_siglist declaration in signal.h or unistd.h" >&5 +echo "configure:3535: checking for sys_siglist declaration in signal.h or unistd.h" >&5 cat > conftest.$ac_ext < #include @@ -3532,7 +3546,7 @@ int main() { char *msg = *(sys_siglist + 1); ; return 0; } EOF -if { (eval echo configure:3536: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3550: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_decl_sys_siglist=yes else @@ -3557,9 +3571,9 @@ fi echo $ac_n "checking for struct utimbuf""... $ac_c" 1>&6 -echo "configure:3561: checking for struct utimbuf" >&5 +echo "configure:3575: checking for struct utimbuf" >&5 cat > conftest.$ac_ext < @@ -3578,7 +3592,7 @@ int main() { static struct utimbuf x; x.actime = x.modtime; ; return 0; } EOF -if { (eval echo configure:3582: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3596: \"$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 @@ -3598,10 +3612,10 @@ fi rm -f conftest* echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:3602: checking return type of signal handlers" >&5 +echo "configure:3616: checking return type of signal handlers" >&5 cat > conftest.$ac_ext < #include @@ -3618,7 +3632,7 @@ int main() { int i; ; return 0; } EOF -if { (eval echo configure:3622: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3636: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else @@ -3640,10 +3654,10 @@ EOF echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:3644: checking for size_t" >&5 +echo "configure:3658: checking for size_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3674,10 +3688,10 @@ EOF fi echo $ac_n "checking for pid_t""... $ac_c" 1>&6 -echo "configure:3678: checking for pid_t" >&5 +echo "configure:3692: checking for pid_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3708,10 +3722,10 @@ EOF fi echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 -echo "configure:3712: checking for uid_t in sys/types.h" >&5 +echo "configure:3726: checking for uid_t in sys/types.h" >&5 cat > conftest.$ac_ext < EOF @@ -3747,10 +3761,10 @@ EOF fi echo $ac_n "checking for mode_t""... $ac_c" 1>&6 -echo "configure:3751: checking for mode_t" >&5 +echo "configure:3765: checking for mode_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3781,10 +3795,10 @@ EOF fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:3785: checking for off_t" >&5 +echo "configure:3799: checking for off_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3815,10 +3829,10 @@ EOF fi echo $ac_n "checking for ssize_t""... $ac_c" 1>&6 -echo "configure:3819: checking for ssize_t" >&5 +echo "configure:3833: checking for ssize_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3850,9 +3864,9 @@ fi echo $ac_n "checking for struct timeval""... $ac_c" 1>&6 -echo "configure:3854: checking for struct timeval" >&5 +echo "configure:3868: checking for struct timeval" >&5 cat > conftest.$ac_ext < @@ -3868,7 +3882,7 @@ int main() { static struct timeval x; x.tv_sec = x.tv_usec; ; return 0; } EOF -if { (eval echo configure:3872: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3886: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 HAVE_TIMEVAL=yes @@ -3890,10 +3904,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:3894: checking whether struct tm is in sys/time.h or time.h" >&5 +echo "configure:3908: checking whether struct tm is in sys/time.h or time.h" >&5 cat > conftest.$ac_ext < #include @@ -3901,7 +3915,7 @@ int main() { struct tm *tp; tp->tm_sec; ; return 0; } EOF -if { (eval echo configure:3905: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3919: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm=time.h else @@ -3925,10 +3939,10 @@ EOF fi echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6 -echo "configure:3929: checking for tm_zone in struct tm" >&5 +echo "configure:3943: checking for tm_zone in struct tm" >&5 cat > conftest.$ac_ext < #include <$ac_cv_struct_tm> @@ -3936,7 +3950,7 @@ int main() { struct tm tm; tm.tm_zone; ; return 0; } EOF -if { (eval echo configure:3940: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3954: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm_zone=yes else @@ -3959,10 +3973,10 @@ EOF else echo $ac_n "checking for tzname""... $ac_c" 1>&6 -echo "configure:3963: checking for tzname" >&5 +echo "configure:3977: checking for tzname" >&5 cat > conftest.$ac_ext < #ifndef tzname /* For SGI. */ @@ -3972,7 +3986,7 @@ int main() { atoi(*tzname); ; return 0; } EOF -if { (eval echo configure:3976: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3990: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_var_tzname=yes else @@ -3998,10 +4012,10 @@ fi echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:4002: checking for working const" >&5 +echo "configure:4016: checking for working const" >&5 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4068: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -4075,7 +4089,7 @@ fi echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:4079: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:4093: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` cat > conftestmake <<\EOF @@ -4100,12 +4114,12 @@ fi echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6 -echo "configure:4104: checking whether byte ordering is bigendian" >&5 +echo "configure:4118: 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 @@ -4116,11 +4130,11 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:4120: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4134: \"$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 @@ -4131,7 +4145,7 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:4135: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4149: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_bigendian=yes else @@ -4148,7 +4162,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:4179: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_c_bigendian=no else @@ -4188,10 +4202,10 @@ fi echo $ac_n "checking size of short""... $ac_c" 1>&6 -echo "configure:4192: checking size of short" >&5 +echo "configure:4206: checking size of short" >&5 cat > conftest.$ac_ext < main() @@ -4202,7 +4216,7 @@ main() exit(0); } EOF -if { (eval echo configure:4206: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4220: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_sizeof_short=`cat conftestval` else @@ -4230,10 +4244,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:4234: checking size of int" >&5 +echo "configure:4248: checking size of int" >&5 cat > conftest.$ac_ext < main() @@ -4244,7 +4258,7 @@ main() exit(0); } EOF -if { (eval echo configure:4248: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4262: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_sizeof_int=`cat conftestval` else @@ -4266,10 +4280,10 @@ EOF echo $ac_n "checking size of long""... $ac_c" 1>&6 -echo "configure:4270: checking size of long" >&5 +echo "configure:4284: checking size of long" >&5 cat > conftest.$ac_ext < main() @@ -4280,7 +4294,7 @@ main() exit(0); } EOF -if { (eval echo configure:4284: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4298: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_sizeof_long=`cat conftestval` else @@ -4302,10 +4316,10 @@ EOF echo $ac_n "checking size of long long""... $ac_c" 1>&6 -echo "configure:4306: checking size of long long" >&5 +echo "configure:4320: checking size of long long" >&5 cat > conftest.$ac_ext < main() @@ -4316,7 +4330,7 @@ main() exit(0); } EOF -if { (eval echo configure:4320: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4334: \"$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 @@ -4338,10 +4352,10 @@ EOF echo $ac_n "checking size of void *""... $ac_c" 1>&6 -echo "configure:4342: checking size of void *" >&5 +echo "configure:4356: checking size of void *" >&5 cat > conftest.$ac_ext < main() @@ -4352,7 +4366,7 @@ main() exit(0); } EOF -if { (eval echo configure:4356: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4370: \"$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 @@ -4375,7 +4389,7 @@ EOF echo $ac_n "checking for long file names""... $ac_c" 1>&6 -echo "configure:4379: checking for long file names" >&5 +echo "configure:4393: 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: @@ -4421,10 +4435,10 @@ fi echo $ac_n "checking for sin""... $ac_c" 1>&6 -echo "configure:4425: checking for sin" >&5 +echo "configure:4439: checking for sin" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4465: \"$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 @@ -4465,12 +4479,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6 -echo "configure:4469: checking for sin in -lm" >&5 +echo "configure:4483: 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:4499: \"$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 @@ -4525,14 +4539,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:4536: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4550: \"$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 @@ -4549,7 +4563,7 @@ fi rm -f conftest* echo "checking type of mail spool file locking" 1>&6 -echo "configure:4553: checking type of mail spool file locking" >&5 +echo "configure:4567: checking type of mail spool file locking" >&5 test -z "$mail_locking" -a "$mail_use_flock" = "yes" && mail_locking=flock test -z "$mail_locking" -a "$mail_use_lockf" = "yes" && mail_locking=lockf if test "$mail_locking" = "lockf"; then { test "$extra_verbose" = "yes" && cat << \EOF @@ -4574,12 +4588,12 @@ fi case "$opsys" in decosf*) echo $ac_n "checking for cma_open in -lpthreads""... $ac_c" 1>&6 -echo "configure:4578: checking for cma_open in -lpthreads" >&5 +echo "configure:4592: 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:4608: \"$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 @@ -4626,7 +4640,7 @@ fi esac echo $ac_n "checking whether the -xildoff compiler flag is required""... $ac_c" 1>&6 -echo "configure:4630: checking whether the -xildoff compiler flag is required" >&5 +echo "configure:4644: 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; @@ -4637,7 +4651,7 @@ fi if test "$opsys" = "sol2" && test "$OS_RELEASE" -ge 56; then echo $ac_n "checking for \"-z ignore\" linker flag""... $ac_c" 1>&6 -echo "configure:4641: checking for \"-z ignore\" linker flag" >&5 +echo "configure:4655: 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 ;; @@ -4647,7 +4661,7 @@ fi echo "checking "for specified window system"" 1>&6 -echo "configure:4651: checking "for specified window system"" >&5 +echo "configure:4665: checking "for specified window system"" >&5 if test "$with_x11" != "no"; then test "$x_includes $x_libraries" != "NONE NONE" && \ @@ -4680,7 +4694,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:4684: checking for X" >&5 +echo "configure:4698: checking for X" >&5 # Check whether --with-x or --without-x was given. if test "${with_x+set}" = set; then @@ -4740,12 +4754,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:4749: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4763: \"$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* @@ -4814,14 +4828,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:4839: \"$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. @@ -4930,17 +4944,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:4934: checking whether -R must be followed by a space" >&5 +echo "configure:4948: 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:4958: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_nospace=yes else @@ -4956,14 +4970,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:4981: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_space=yes else @@ -4999,12 +5013,12 @@ ac_cv_lib_dnet_dnet_ntoa=no else echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 -echo "configure:5003: checking for dnet_ntoa in -ldnet" >&5 +echo "configure:5017: 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:5033: \"$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 @@ -5039,12 +5053,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:5043: checking for dnet_ntoa in -ldnet_stub" >&5 +echo "configure:5057: 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:5073: \"$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 @@ -5084,10 +5098,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:5088: checking for gethostbyname" >&5 +echo "configure:5102: checking for gethostbyname" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5128: \"$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 @@ -5131,12 +5145,12 @@ fi if test $ac_cv_func_gethostbyname = no; then echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 -echo "configure:5135: checking for gethostbyname in -lnsl" >&5 +echo "configure:5149: 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:5165: \"$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 @@ -5177,10 +5191,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:5181: checking for connect" >&5 +echo "configure:5195: checking for connect" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5221: \"$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 @@ -5226,12 +5240,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:5230: checking "$xe_msg_checking"" >&5 +echo "configure:5244: 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:5260: \"$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 @@ -5266,10 +5280,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:5270: checking for remove" >&5 +echo "configure:5284: checking for remove" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5310: \"$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 @@ -5313,12 +5327,12 @@ fi if test $ac_cv_func_remove = no; then echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 -echo "configure:5317: checking for remove in -lposix" >&5 +echo "configure:5331: 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:5347: \"$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 @@ -5353,10 +5367,10 @@ fi # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. echo $ac_n "checking for shmat""... $ac_c" 1>&6 -echo "configure:5357: checking for shmat" >&5 +echo "configure:5371: checking for shmat" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5397: \"$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 @@ -5400,12 +5414,12 @@ fi if test $ac_cv_func_shmat = no; then echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 -echo "configure:5404: checking for shmat in -lipc" >&5 +echo "configure:5418: 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:5434: \"$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 @@ -5452,12 +5466,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:5456: checking "$xe_msg_checking"" >&5 +echo "configure:5470: 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:5486: \"$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 @@ -5637,7 +5651,7 @@ EOF echo "checking for X defines extracted by xmkmf" 1>&6 -echo "configure:5641: checking for X defines extracted by xmkmf" >&5 +echo "configure:5655: checking for X defines extracted by xmkmf" >&5 rm -fr conftestdir if mkdir conftestdir; then cd conftestdir @@ -5669,15 +5683,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:5673: checking for X11/Intrinsic.h" >&5 +echo "configure:5687: 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:5681: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5695: \"$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* @@ -5701,12 +5715,12 @@ fi echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6 -echo "configure:5705: checking for XOpenDisplay in -lX11" >&5 +echo "configure:5719: 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:5735: \"$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 @@ -5742,12 +5756,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:5746: checking "$xe_msg_checking"" >&5 +echo "configure:5760: 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:5776: \"$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 @@ -5785,12 +5799,12 @@ fi echo $ac_n "checking for XShapeSelectInput in -lXext""... $ac_c" 1>&6 -echo "configure:5789: checking for XShapeSelectInput in -lXext" >&5 +echo "configure:5803: 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:5819: \"$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 @@ -5824,12 +5838,12 @@ fi echo $ac_n "checking for XtOpenDisplay in -lXt""... $ac_c" 1>&6 -echo "configure:5828: checking for XtOpenDisplay in -lXt" >&5 +echo "configure:5842: 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:5858: \"$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 @@ -5863,14 +5877,14 @@ fi echo $ac_n "checking the version of X11 being used""... $ac_c" 1>&6 -echo "configure:5867: checking the version of X11 being used" >&5 +echo "configure:5881: 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:5874: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:5888: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ./conftest foobar; x11_release=$? else @@ -5895,15 +5909,15 @@ EOF do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5899: checking for $ac_hdr" >&5 +echo "configure:5913: 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:5907: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5921: \"$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* @@ -5934,7 +5948,7 @@ done echo $ac_n "checking for XFree86""... $ac_c" 1>&6 -echo "configure:5938: checking for XFree86" >&5 +echo "configure:5952: checking for XFree86" >&5 if test -d "/usr/X386/include" -o \ -f "/etc/XF86Config" -o \ -f "/etc/X11/XF86Config" -o \ @@ -5954,12 +5968,12 @@ EOF test -z "$with_xmu" && { echo $ac_n "checking for XmuReadBitmapDataFromFile in -lXmu""... $ac_c" 1>&6 -echo "configure:5958: checking for XmuReadBitmapDataFromFile in -lXmu" >&5 +echo "configure:5972: 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:5988: \"$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 @@ -6009,19 +6023,19 @@ EOF echo $ac_n "checking for main in -lXbsd""... $ac_c" 1>&6 -echo "configure:6013: checking for main in -lXbsd" >&5 +echo "configure:6027: 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:6039: \"$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 @@ -6058,22 +6072,22 @@ fi fi if test "$with_msw" != "no"; then echo "checking for MS-Windows" 1>&6 -echo "configure:6062: checking for MS-Windows" >&5 +echo "configure:6076: checking for MS-Windows" >&5 echo $ac_n "checking for main in -lgdi32""... $ac_c" 1>&6 -echo "configure:6065: checking for main in -lgdi32" >&5 +echo "configure:6079: 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:6091: \"$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 @@ -6139,12 +6153,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:6148: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:6162: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_MSG_SELECT @@ -6197,7 +6211,7 @@ else fi if test "$with_x11" != "yes"; then - for feature in tooltalk cde offix wmcommand xim xmu xpm nas_sound + for feature in tooltalk cde offix wmcommand xim xmu nas_sound do if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then echo "configure: warning: --with-$feature ignored: Not valid without X support" 1>&2 @@ -6220,7 +6234,7 @@ case "$x_libraries" in *X11R4* ) esac echo "checking for WM_COMMAND option" 1>&6 -echo "configure:6224: checking for WM_COMMAND option" >&5; +echo "configure:6238: checking for WM_COMMAND option" >&5; if test "$with_wmcommand" != "no"; then { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_WMCOMMAND @@ -6235,15 +6249,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:6239: checking for X11/Xauth.h" >&5 +echo "configure:6253: 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:6247: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6261: \"$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* @@ -6266,12 +6280,12 @@ fi } test -z "$with_xauth" && { echo $ac_n "checking for XauGetAuthByAddr in -lXau""... $ac_c" 1>&6 -echo "configure:6270: checking for XauGetAuthByAddr in -lXau" >&5 +echo "configure:6284: 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:6300: \"$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 @@ -6327,15 +6341,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:6331: checking for ${dir}tt_c.h" >&5 +echo "configure:6345: 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:6339: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6353: \"$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* @@ -6371,12 +6385,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:6375: checking "$xe_msg_checking"" >&5 +echo "configure:6389: 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:6405: \"$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 @@ -6444,15 +6458,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:6448: checking for Dt/Dt.h" >&5 +echo "configure:6462: 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:6456: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6470: \"$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* @@ -6475,12 +6489,12 @@ fi } test -z "$with_cde" && { echo $ac_n "checking for DtDndDragStart in -lDtSvc""... $ac_c" 1>&6 -echo "configure:6479: checking for DtDndDragStart in -lDtSvc" >&5 +echo "configure:6493: 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:6509: \"$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 @@ -6560,7 +6574,7 @@ EOF fi echo $ac_n "checking if drag and drop API is needed""... $ac_c" 1>&6 -echo "configure:6564: checking if drag and drop API is needed" >&5 +echo "configure:6578: checking if drag and drop API is needed" >&5 if test "$with_dragndrop" != "no" ; then if test -n "$dragndrop_proto" ; then with_dragndrop=yes @@ -6581,18 +6595,18 @@ EOF fi echo "checking for LDAP" 1>&6 -echo "configure:6585: checking for LDAP" >&5 +echo "configure:6599: 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:6588: checking for ldap.h" >&5 +echo "configure:6602: 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:6596: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6610: \"$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* @@ -6615,15 +6629,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:6619: checking for lber.h" >&5 +echo "configure:6633: 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:6627: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6641: \"$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* @@ -6647,12 +6661,12 @@ fi if test "$with_ldap" != "no"; then echo $ac_n "checking for ldap_search in -lldap""... $ac_c" 1>&6 -echo "configure:6651: checking for ldap_search in -lldap" >&5 +echo "configure:6665: 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:6681: \"$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 @@ -6688,12 +6702,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:6692: checking "$xe_msg_checking"" >&5 +echo "configure:6706: 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:6722: \"$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 @@ -6729,12 +6743,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:6733: checking "$xe_msg_checking"" >&5 +echo "configure:6747: 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:6763: \"$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 @@ -6770,12 +6784,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:6774: checking "$xe_msg_checking"" >&5 +echo "configure:6788: 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:6804: \"$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 @@ -6837,10 +6851,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:6841: checking for $ac_func" >&5 +echo "configure:6855: 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:6881: \"$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 @@ -6895,15 +6909,15 @@ fi if test "$window_system" != "none"; then echo "checking for graphics libraries" 1>&6 -echo "configure:6899: checking for graphics libraries" >&5 +echo "configure:6913: checking for graphics libraries" >&5 xpm_problem="" if test -z "$with_xpm"; then echo $ac_n "checking for Xpm - no older than 3.4f""... $ac_c" 1>&6 -echo "configure:6904: checking for Xpm - no older than 3.4f" >&5 +echo "configure:6918: checking for Xpm - no older than 3.4f" >&5 xe_check_libs=-lXpm cat > conftest.$ac_ext < int main(int c, char **v) { @@ -6911,7 +6925,7 @@ echo "configure:6904: checking for Xpm - no older than 3.4f" >&5 XpmIncludeVersion != XpmLibraryVersion() ? 1 : XpmIncludeVersion < 30406 ? 2 : 0 ;} EOF -if { (eval echo configure:6915: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:6929: \"$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 @@ -6953,17 +6967,17 @@ EOF libs_x="-lXpm $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-lXpm\" to \$libs_x"; fi echo $ac_n "checking for \"FOR_MSW\" xpm""... $ac_c" 1>&6 -echo "configure:6957: checking for \"FOR_MSW\" xpm" >&5 +echo "configure:6971: 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:6981: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* xpm_for_msw=no else @@ -6989,15 +7003,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:6993: checking for compface.h" >&5 +echo "configure:7007: 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:7001: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7015: \"$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* @@ -7020,12 +7034,12 @@ fi } test -z "$with_xface" && { echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6 -echo "configure:7024: checking for UnGenFace in -lcompface" >&5 +echo "configure:7038: 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:7054: \"$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 @@ -7088,12 +7102,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:7092: checking for inflate in -lc" >&5 +echo "configure:7106: 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:7122: \"$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 @@ -7123,12 +7137,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for inflate in -lz""... $ac_c" 1>&6 -echo "configure:7127: checking for inflate in -lz" >&5 +echo "configure:7141: 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:7157: \"$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 @@ -7158,12 +7172,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for inflate in -lgz""... $ac_c" 1>&6 -echo "configure:7162: checking for inflate in -lgz" >&5 +echo "configure:7176: 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:7192: \"$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 @@ -7204,15 +7218,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:7208: checking for jpeglib.h" >&5 +echo "configure:7222: 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:7216: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7230: \"$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* @@ -7235,12 +7249,12 @@ fi } test -z "$with_jpeg" && { echo $ac_n "checking for jpeg_destroy_decompress in -ljpeg""... $ac_c" 1>&6 -echo "configure:7239: checking for jpeg_destroy_decompress in -ljpeg" >&5 +echo "configure:7253: 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:7269: \"$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 @@ -7287,10 +7301,10 @@ EOF png_problem="" test -z "$with_png" && { echo $ac_n "checking for pow""... $ac_c" 1>&6 -echo "configure:7291: checking for pow" >&5 +echo "configure:7305: checking for pow" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7331: \"$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 @@ -7334,15 +7348,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:7338: checking for png.h" >&5 +echo "configure:7352: 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:7346: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7360: \"$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* @@ -7365,12 +7379,12 @@ fi } test -z "$with_png" && { echo $ac_n "checking for png_read_image in -lpng""... $ac_c" 1>&6 -echo "configure:7369: checking for png_read_image in -lpng" >&5 +echo "configure:7383: 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:7399: \"$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 @@ -7404,10 +7418,10 @@ fi } if test -z "$with_png"; then echo $ac_n "checking for workable png version information""... $ac_c" 1>&6 -echo "configure:7408: checking for workable png version information" >&5 +echo "configure:7422: checking for workable png version information" >&5 xe_check_libs="-lpng -lz" cat > conftest.$ac_ext < int main(int c, char **v) { @@ -7415,7 +7429,7 @@ echo "configure:7408: 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:7419: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:7433: \"$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 @@ -7458,15 +7472,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:7462: checking for tiffio.h" >&5 +echo "configure:7476: 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:7470: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7484: \"$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* @@ -7489,12 +7503,12 @@ fi } test -z "$with_tiff" && { echo $ac_n "checking for TIFFClientOpen in -ltiff""... $ac_c" 1>&6 -echo "configure:7493: checking for TIFFClientOpen in -ltiff" >&5 +echo "configure:7507: 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:7523: \"$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 @@ -7544,16 +7558,29 @@ fi if test "$with_x11" = "yes"; then echo "checking for X11 graphics libraries" 1>&6 -echo "configure:7548: checking for X11 graphics libraries" >&5 +echo "configure:7562: checking for X11 graphics libraries" >&5 + + echo "checking for the Athena widgets" 1>&6 +echo "configure:7565: checking for the Athena widgets" >&5 + + case "$with_athena" in + "xaw" | "") athena_variant=Xaw athena_3d=no ;; + "3d") athena_variant=Xaw3d athena_3d=yes ;; + "next") athena_variant=neXtaw athena_3d=yes ;; + "95") athena_variant=Xaw95 athena_3d=yes ;; + "xpm") athena_variant=XawXpm athena_3d=yes ;; + *) { echo "Error:" "Unknown Athena widget set \`$with_athena'. This should not happen." >&2; exit 1; } ;; + esac + if test "$athena_3d" = "no"; then -echo $ac_n "checking for XawScrollbarSetThumb in -lXaw""... $ac_c" 1>&6 -echo "configure:7552: checking for XawScrollbarSetThumb in -lXaw" >&5 -ac_lib_var=`echo Xaw'_'XawScrollbarSetThumb | sed 'y%./+-%__p_%'` +echo $ac_n "checking for XawScrollbarSetThumb in -l$athena_variant""... $ac_c" 1>&6 +echo "configure:7579: checking for XawScrollbarSetThumb in -l$athena_variant" >&5 +ac_lib_var=`echo $athena_variant'_'XawScrollbarSetThumb | sed 'y%./+-%__p_%'` -xe_check_libs=" -lXaw " +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:7595: \"$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 + 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 + +echo $ac_n "checking for threeDClassRec in -l$athena_variant""... $ac_c" 1>&6 +echo "configure:7611: checking for threeDClassRec in -l$athena_variant" >&5 +ac_lib_var=`echo $athena_variant'_'threeDClassRec | sed 'y%./+-%__p_%'` + +xe_check_libs=" -l$athena_variant " +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7578,33 +7637,74 @@ xe_check_libs="" if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then echo "$ac_t""yes" 1>&6 - have_xaw=yes + echo "configure: warning: "Could not find a non-3d Athena widget library."" 1>&2 else echo "$ac_t""no" 1>&6 -have_xaw=no +athena_lib=$athena_variant fi - - -echo $ac_n "checking for XawScrollbarSetThumb in -lXaw3d""... $ac_c" 1>&6 -echo "configure:7592: checking for XawScrollbarSetThumb in -lXaw3d" >&5 -ac_lib_var=`echo Xaw3d'_'XawScrollbarSetThumb | sed 'y%./+-%__p_%'` + +else + echo "$ac_t""no" 1>&6 +echo "configure: warning: "Could not find an Athena widget library."" 1>&2 +fi + -xe_check_libs=" -lXaw3d " + else + +echo $ac_n "checking for threeDClassRec in -l$athena_variant""... $ac_c" 1>&6 +echo "configure:7658: checking for threeDClassRec in -l$athena_variant" >&5 +ac_lib_var=`echo $athena_variant'_'threeDClassRec | sed 'y%./+-%__p_%'` + +xe_check_libs=" -l$athena_variant " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + 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 + athena_lib=$athena_variant +else + echo "$ac_t""no" 1>&6 +echo $ac_n "checking for threeDClassRec in -lXaw""... $ac_c" 1>&6 +echo "configure:7692: checking for threeDClassRec in -lXaw" >&5 +ac_lib_var=`echo Xaw'_'threeDClassRec | sed 'y%./+-%__p_%'` + +xe_check_libs=" -lXaw " +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7708: \"$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 @@ -7618,25 +7718,263 @@ xe_check_libs="" if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then echo "$ac_t""yes" 1>&6 - have_xaw3d=yes + athena_lib=Xaw; + echo "configure: warning: "Assuming that libXaw is actually $athena_variant."" 1>&2; + +else + echo "$ac_t""no" 1>&6 +echo "configure: warning: "Could not find a 3d Athena widget library that looked like $athena_variant."" 1>&2 +fi + + +fi + + + 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:7739: 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:7747: \"$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* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + echo "configure: warning: "Could not find a non-3d Athena header set."" 1>&2 +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:7767: 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:7775: \"$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* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + athena_h_path=X11/Xaw +else + echo "$ac_t""no" 1>&6 +echo "configure: warning: "Could not find a non-3d Athena header set."" 1>&2 +fi + +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:7801: 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:7809: \"$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* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_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:7826: 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:7834: \"$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* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + athena_h_path=X11/$athena_variant +else + echo "$ac_t""no" 1>&6 +fi + else echo "$ac_t""no" 1>&6 -have_xaw3d=no 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:7862: 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:7870: \"$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* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_safe=`echo "X11/Xaw3d/ThreeD.h" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for X11/Xaw3d/ThreeD.h""... $ac_c" 1>&6 +echo "configure:7887: 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:7895: \"$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* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + + echo "configure: warning: "Assuming that X11/Xaw3d headers are suitable for $athena_variant."" 1>&2 + athena_h_path=X11/Xaw3d + +else + echo "$ac_t""no" 1>&6 +fi + +else + echo "$ac_t""no" 1>&6 +fi + + 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:7927: 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:7935: \"$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* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + + echo "configure: warning: "Assuming that X11/Xaw headers are suitable for $athena_variant."" 1>&2 + athena_h_path=X11/Xaw + +else + echo "$ac_t""no" 1>&6 +echo "configure: warning: "Could not find a suitable 3d Athena header set."" 1>&2 +fi + + fi + fi + + if test -n "$athena_lib" -a -n "$athena_h_path"; then + have_xaw=yes + else + have_xaw=no + fi ac_safe=`echo "Xm/Xm.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for Xm/Xm.h""... $ac_c" 1>&6 -echo "configure:7632: checking for Xm/Xm.h" >&5 +echo "configure:7970: 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:7640: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7978: \"$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* @@ -7653,12 +7991,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:7657: checking for XmStringFree in -lXm" >&5 +echo "configure:7995: 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:8011: \"$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 @@ -7698,9 +8036,9 @@ fi if test "$have_motif" = "yes"; then echo $ac_n "checking for Lesstif""... $ac_c" 1>&6 -echo "configure:7702: checking for Lesstif" >&5 +echo "configure:8040: checking for Lesstif" >&5 cat > conftest.$ac_ext < #ifdef LESSTIF_VERSION @@ -7723,13 +8061,12 @@ rm -f conftest* fi -case "$with_menubars" in "" | "yes" | "athena" | "athena3d" ) +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_xaw3d" = "yes"; then with_dialogs="athena3d" - elif test "$have_xaw" = "yes"; then with_dialogs="athena" + if test "$have_motif" = "yes"; then with_dialogs="motif" + elif test "$have_xaw" = "yes"; then with_dialogs="athena" else with_dialogs=no fi ;; esac @@ -7738,7 +8075,6 @@ case "$with_scrollbars" in "" | "yes" ) esac case "$with_widgets" in "" | "yes" | "lucid") if test "$have_motif" = "yes"; then with_widgets="motif" - elif test "$have_xaw3d" = "yes"; then with_widgets="athena3d" elif test "$have_xaw" = "yes"; then with_widgets="athena" else with_widgets=no fi ;; @@ -7747,8 +8083,25 @@ esac all_widgets="$with_menubars $with_scrollbars $with_dialogs $with_toolbars $with_widgets" case "$all_widgets" in - *athena*3d ) - { test "$extra_verbose" = "yes" && cat << \EOF + *athena* ) + if test "$have_xaw" != "yes"; then + { echo "Error:" "Could not find a suitable Athena library to build with." >&2; exit 1; } + fi + + lwlib_objs="$lwlib_objs lwlib-Xaw.o" && if test "$extra_verbose" = "yes"; then echo " Appending \"lwlib-Xaw.o\" to \$lwlib_objs"; fi + + libs_x="-l$athena_lib $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-l$athena_lib\" to \$libs_x"; fi + + { test "$extra_verbose" = "yes" && cat << EOF + Defining ATHENA_H_PATH = $athena_h_path +EOF +cat >> confdefs.h <> confdefs.h <<\EOF @@ -7756,7 +8109,7 @@ cat >> confdefs.h <<\EOF EOF } - { test "$extra_verbose" = "yes" && cat << \EOF + { test "$extra_verbose" = "yes" && cat << \EOF Defining NEED_ATHENA EOF cat >> confdefs.h <<\EOF @@ -7764,31 +8117,18 @@ cat >> confdefs.h <<\EOF EOF } - lwlib_objs="$lwlib_objs lwlib-Xaw.o" && if test "$extra_verbose" = "yes"; then echo " Appending \"lwlib-Xaw.o\" to \$lwlib_objs"; fi - if test "$have_xaw3d"; then - libs_x="-lXaw3d $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-lXaw3d\" to \$libs_x"; fi - else - libs_x="-lXaw $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-lXaw\" to \$libs_x"; fi - fi ;; - *athena* ) - { test "$extra_verbose" = "yes" && cat << \EOF - Defining LWLIB_USES_ATHENA -EOF -cat >> confdefs.h <<\EOF -#define LWLIB_USES_ATHENA 1 -EOF -} - { test "$extra_verbose" = "yes" && cat << \EOF - Defining NEED_ATHENA + if test "$athena_3d" = "yes"; then + { test "$extra_verbose" = "yes" && cat << \EOF + Defining HAVE_ATHENA_3D EOF cat >> confdefs.h <<\EOF -#define NEED_ATHENA 1 +#define HAVE_ATHENA_3D 1 EOF } - lwlib_objs="$lwlib_objs lwlib-Xaw.o" && if test "$extra_verbose" = "yes"; then echo " Appending \"lwlib-Xaw.o\" to \$lwlib_objs"; fi - libs_x="-lXaw $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-lXaw\" to \$libs_x"; fi ;; + fi + ;; esac case "$all_widgets" in *motif* ) @@ -7834,23 +8174,25 @@ esac -case "$with_scrollbars" in athena* ) { test "$extra_verbose" = "yes" && cat << \EOF +test "$with_scrollbars" = "athena" && { test "$extra_verbose" = "yes" && cat << \EOF Defining LWLIB_SCROLLBARS_ATHENA EOF cat >> confdefs.h <<\EOF #define LWLIB_SCROLLBARS_ATHENA 1 EOF } -;; esac -case "$with_dialogs" in athena* ) { test "$extra_verbose" = "yes" && cat << \EOF + +test "$with_dialogs" = "athena" && { test "$extra_verbose" = "yes" && cat << \EOF Defining LWLIB_DIALOGS_ATHENA EOF cat >> confdefs.h <<\EOF #define LWLIB_DIALOGS_ATHENA 1 EOF } - ;; esac -test "$with_scrollbars" = "athena3d" && { test "$extra_verbose" = "yes" && cat << \EOF + + +if test "$athena_3d" = "yes"; then + test "$with_scrollbars" = "athena" && { test "$extra_verbose" = "yes" && cat << \EOF Defining LWLIB_SCROLLBARS_ATHENA3D EOF cat >> confdefs.h <<\EOF @@ -7858,7 +8200,7 @@ cat >> confdefs.h <<\EOF EOF } -test "$with_dialogs" = "athena3d" && { test "$extra_verbose" = "yes" && cat << \EOF + test "$with_dialogs" = "athena" && { test "$extra_verbose" = "yes" && cat << \EOF Defining LWLIB_DIALOGS_ATHENA3D EOF cat >> confdefs.h <<\EOF @@ -7866,6 +8208,8 @@ cat >> confdefs.h <<\EOF EOF } +fi + case "$with_widgets" in athena* ) { test "$extra_verbose" = "yes" && cat << \EOF Defining LWLIB_WIDGETS_ATHENA EOF @@ -8027,7 +8371,7 @@ fi if test "$with_mule" = "yes" ; then echo "checking for Mule-related features" 1>&6 -echo "configure:8031: checking for Mule-related features" >&5 +echo "configure:8375: checking for Mule-related features" >&5 { test "$extra_verbose" = "yes" && cat << \EOF Defining MULE EOF @@ -8052,15 +8396,15 @@ EOF do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:8056: checking for $ac_hdr" >&5 +echo "configure:8400: 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:8064: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8408: \"$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* @@ -8091,12 +8435,12 @@ done echo $ac_n "checking for strerror in -lintl""... $ac_c" 1>&6 -echo "configure:8095: checking for strerror in -lintl" >&5 +echo "configure:8439: 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:8455: \"$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 @@ -8140,18 +8484,18 @@ fi echo "checking for Mule input methods" 1>&6 -echo "configure:8144: checking for Mule input methods" >&5 +echo "configure:8488: checking for Mule input methods" >&5 case "$with_xim" in "" | "yes" ) echo "checking for XIM" 1>&6 -echo "configure:8147: checking for XIM" >&5 +echo "configure:8491: checking for XIM" >&5 echo $ac_n "checking for XOpenIM in -lX11""... $ac_c" 1>&6 -echo "configure:8150: checking for XOpenIM in -lX11" >&5 +echo "configure:8494: 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:8510: \"$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 @@ -8186,12 +8530,12 @@ fi if test "$have_motif $have_lesstif" = "yes no"; then echo $ac_n "checking for XmImMbLookupString in -lXm""... $ac_c" 1>&6 -echo "configure:8190: checking for XmImMbLookupString in -lXm" >&5 +echo "configure:8534: 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:8550: \"$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 @@ -8267,15 +8611,15 @@ EOF if test "$with_xfs" = "yes" ; then echo "checking for XFontSet" 1>&6 -echo "configure:8271: checking for XFontSet" >&5 +echo "configure:8615: checking for XFontSet" >&5 echo $ac_n "checking for XmbDrawString in -lX11""... $ac_c" 1>&6 -echo "configure:8274: checking for XmbDrawString in -lX11" >&5 +echo "configure:8618: 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:8634: \"$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 @@ -8326,15 +8670,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:8330: checking for wnn/jllib.h" >&5 +echo "configure:8674: 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:8338: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8682: \"$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* @@ -8359,10 +8703,10 @@ fi for ac_func in crypt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8363: checking for $ac_func" >&5 +echo "configure:8707: 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:8733: \"$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 @@ -8414,12 +8758,12 @@ done test "$ac_cv_func_crypt" != "yes" && { echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6 -echo "configure:8418: checking for crypt in -lcrypt" >&5 +echo "configure:8762: 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:8778: \"$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 @@ -8465,12 +8809,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:8469: checking for jl_dic_list_e in -lwnn" >&5 +echo "configure:8813: 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:8829: \"$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 @@ -8499,12 +8843,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:8503: checking for jl_dic_list_e in -lwnn4" >&5 +echo "configure:8847: 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:8863: \"$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 @@ -8533,12 +8877,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:8537: checking for jl_dic_list_e in -lwnn6" >&5 +echo "configure:8881: 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:8897: \"$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 @@ -8567,12 +8911,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:8571: checking for dic_list_e in -lwnn6_fromsrc" >&5 +echo "configure:8915: 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:8931: \"$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 @@ -8631,12 +8975,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:8635: checking for jl_fi_dic_list in -l$libwnn" >&5 +echo "configure:8979: 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:8995: \"$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 @@ -8682,15 +9026,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:8686: checking for canna/jrkanji.h" >&5 +echo "configure:9030: 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:8694: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9038: \"$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,15 +9061,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:8721: checking for canna/jrkanji.h" >&5 +echo "configure:9065: 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:8729: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9073: \"$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* @@ -8753,15 +9097,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:8757: checking for canna/RK.h" >&5 +echo "configure:9101: 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:8765: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9109: \"$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* @@ -8784,12 +9128,12 @@ fi } test -z "$with_canna" && { echo $ac_n "checking for RkBgnBun in -lRKC""... $ac_c" 1>&6 -echo "configure:8788: checking for RkBgnBun in -lRKC" >&5 +echo "configure:9132: 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:9148: \"$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 @@ -8823,12 +9167,12 @@ fi } test -z "$with_canna" && { echo $ac_n "checking for jrKanjiControl in -lcanna""... $ac_c" 1>&6 -echo "configure:8827: checking for jrKanjiControl in -lcanna" >&5 +echo "configure:9171: 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:9187: \"$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 @@ -8888,12 +9232,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:8892: checking for layout_object_getvalue in -li18n" >&5 +echo "configure:9236: 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:9252: \"$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 @@ -8990,10 +9334,10 @@ fi for ac_func in cbrt closedir dup2 eaccess fmod fpathconf frexp ftime gethostname getpagesize gettimeofday getcwd getpt getwd logb lrand48 matherr mkdir mktime perror poll random rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask snprintf stpcpy strcasecmp strerror tzset ulimit usleep utimes waitpid vsnprintf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8994: checking for $ac_func" >&5 +echo "configure:9338: 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:9364: \"$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 @@ -9057,10 +9401,10 @@ case "$opsys" in * ) for ac_func in realpath do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:9061: checking for $ac_func" >&5 +echo "configure:9405: 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:9431: \"$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 @@ -9119,10 +9463,10 @@ esac for ac_func in getloadavg do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:9123: checking for $ac_func" >&5 +echo "configure:9467: 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:9493: \"$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 @@ -9181,12 +9525,12 @@ then echo $ac_n "checking for kstat_open in -lkstat""... $ac_c" 1>&6 -echo "configure:9185: checking for kstat_open in -lkstat" >&5 +echo "configure:9529: 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:9545: \"$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 @@ -9231,12 +9575,12 @@ fi echo $ac_n "checking for kvm_read in -lkvm""... $ac_c" 1>&6 -echo "configure:9235: checking for kvm_read in -lkvm" >&5 +echo "configure:9579: 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:9595: \"$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 @@ -9281,16 +9625,16 @@ fi fi echo $ac_n "checking whether netdb declares h_errno""... $ac_c" 1>&6 -echo "configure:9285: checking whether netdb declares h_errno" >&5 +echo "configure:9629: checking whether netdb declares h_errno" >&5 cat > conftest.$ac_ext < int main() { return h_errno; ; return 0; } EOF -if { (eval echo configure:9294: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9638: \"$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 @@ -9310,16 +9654,16 @@ fi rm -f conftest* echo $ac_n "checking for sigsetjmp""... $ac_c" 1>&6 -echo "configure:9314: checking for sigsetjmp" >&5 +echo "configure:9658: checking for sigsetjmp" >&5 cat > conftest.$ac_ext < int main() { sigjmp_buf bar; sigsetjmp (bar, 0); ; return 0; } EOF -if { (eval echo configure:9323: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:9667: \"$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 @@ -9339,11 +9683,11 @@ fi rm -f conftest* echo $ac_n "checking whether localtime caches TZ""... $ac_c" 1>&6 -echo "configure:9343: checking whether localtime caches TZ" >&5 +echo "configure:9687: checking whether localtime caches TZ" >&5 if test "$ac_cv_func_tzset" = "yes"; then cat > conftest.$ac_ext < #if STDC_HEADERS @@ -9378,7 +9722,7 @@ main() exit (0); } EOF -if { (eval echo configure:9382: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:9726: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then emacs_cv_localtime_cache=no else @@ -9408,9 +9752,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:9412: checking whether gettimeofday accepts one or two arguments" >&5 +echo "configure:9756: 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:9780: \"$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 @@ -9454,19 +9798,19 @@ fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:9458: checking for inline" >&5 +echo "configure:9802: 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:9814: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -9516,17 +9860,17 @@ fi # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 -echo "configure:9520: checking for working alloca.h" >&5 +echo "configure:9864: 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:9530: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9874: \"$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 @@ -9550,10 +9894,10 @@ EOF fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:9554: checking for alloca" >&5 +echo "configure:9898: checking for alloca" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9929: \"$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 @@ -9620,10 +9964,10 @@ EOF echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:9624: checking whether alloca needs Cray hooks" >&5 +echo "configure:9968: 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:9651: checking for $ac_func" >&5 +echo "configure:9995: 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:10021: \"$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 @@ -9703,10 +10047,10 @@ done fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:9707: checking stack direction for C alloca" >&5 +echo "configure:10051: 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:10073: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_c_stack_direction=1 else @@ -9754,15 +10098,15 @@ test -n "$ALLOCA" && extra_objs="$extra_objs $ALLOCA" && if test "$extra_verbos ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for vfork.h""... $ac_c" 1>&6 -echo "configure:9758: checking for vfork.h" >&5 +echo "configure:10102: 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:9766: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10110: \"$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* @@ -9790,10 +10134,10 @@ else fi echo $ac_n "checking for working vfork""... $ac_c" 1>&6 -echo "configure:9794: checking for working vfork" >&5 +echo "configure:10138: checking for working vfork" >&5 cat > conftest.$ac_ext < @@ -9888,7 +10232,7 @@ main() { } } EOF -if { (eval echo configure:9892: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:10236: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_vfork_works=yes else @@ -9914,10 +10258,10 @@ fi echo $ac_n "checking for working strcoll""... $ac_c" 1>&6 -echo "configure:9918: checking for working strcoll" >&5 +echo "configure:10262: checking for working strcoll" >&5 cat > conftest.$ac_ext < main () @@ -9927,7 +10271,7 @@ main () strcoll ("123", "456") >= 0); } EOF -if { (eval echo configure:9931: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:10275: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_strcoll_works=yes else @@ -9955,10 +10299,10 @@ fi for ac_func in getpgrp do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:9959: checking for $ac_func" >&5 +echo "configure:10303: 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:10329: \"$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 @@ -10009,10 +10353,10 @@ fi done echo $ac_n "checking whether getpgrp takes no argument""... $ac_c" 1>&6 -echo "configure:10013: checking whether getpgrp takes no argument" >&5 +echo "configure:10357: 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:10415: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_getpgrp_void=yes else @@ -10094,10 +10438,10 @@ fi echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:10098: checking for working mmap" >&5 +echo "configure:10442: checking for working mmap" >&5 case "$opsys" in ultrix* ) have_mmap=no ;; *) cat > conftest.$ac_ext < #include @@ -10130,7 +10474,7 @@ int main (int argc, char *argv[]) return 1; } EOF -if { (eval echo configure:10134: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:10478: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then have_mmap=yes else @@ -10165,15 +10509,15 @@ EOF ac_safe=`echo "termios.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for termios.h""... $ac_c" 1>&6 -echo "configure:10169: checking for termios.h" >&5 +echo "configure:10513: 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:10177: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10521: \"$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* @@ -10216,15 +10560,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:10220: checking for termio.h" >&5 +echo "configure:10564: 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:10228: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10572: \"$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* @@ -10256,10 +10600,10 @@ fi echo $ac_n "checking for socket""... $ac_c" 1>&6 -echo "configure:10260: checking for socket" >&5 +echo "configure:10604: checking for socket" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10630: \"$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 @@ -10297,15 +10641,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:10301: checking for netinet/in.h" >&5 +echo "configure:10645: 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:10309: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10653: \"$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* @@ -10322,15 +10666,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:10326: checking for arpa/inet.h" >&5 +echo "configure:10670: 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:10334: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10678: \"$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* @@ -10355,9 +10699,9 @@ EOF } echo $ac_n "checking "for sun_len member in struct sockaddr_un"""... $ac_c" 1>&6 -echo "configure:10359: checking "for sun_len member in struct sockaddr_un"" >&5 +echo "configure:10703: checking "for sun_len member in struct sockaddr_un"" >&5 cat > conftest.$ac_ext < @@ -10368,7 +10712,7 @@ int main() { static struct sockaddr_un x; x.sun_len = 1; ; return 0; } EOF -if { (eval echo configure:10372: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10716: \"$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 @@ -10386,9 +10730,9 @@ else fi rm -f conftest* echo $ac_n "checking "for ip_mreq struct in netinet/in.h"""... $ac_c" 1>&6 -echo "configure:10390: checking "for ip_mreq struct in netinet/in.h"" >&5 +echo "configure:10734: checking "for ip_mreq struct in netinet/in.h"" >&5 cat > conftest.$ac_ext < @@ -10398,7 +10742,7 @@ int main() { static struct ip_mreq x; ; return 0; } EOF -if { (eval echo configure:10402: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10746: \"$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 @@ -10429,10 +10773,10 @@ fi echo $ac_n "checking for msgget""... $ac_c" 1>&6 -echo "configure:10433: checking for msgget" >&5 +echo "configure:10777: checking for msgget" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10803: \"$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 @@ -10470,15 +10814,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:10474: checking for sys/ipc.h" >&5 +echo "configure:10818: 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:10482: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10826: \"$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* @@ -10495,15 +10839,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:10499: checking for sys/msg.h" >&5 +echo "configure:10843: 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:10507: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10851: \"$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* @@ -10541,15 +10885,15 @@ fi ac_safe=`echo "dirent.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for dirent.h""... $ac_c" 1>&6 -echo "configure:10545: checking for dirent.h" >&5 +echo "configure:10889: 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:10553: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10897: \"$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* @@ -10576,15 +10920,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:10580: checking for sys/dir.h" >&5 +echo "configure:10924: 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:10588: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10932: \"$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* @@ -10617,15 +10961,15 @@ fi ac_safe=`echo "nlist.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for nlist.h""... $ac_c" 1>&6 -echo "configure:10621: checking for nlist.h" >&5 +echo "configure:10965: 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:10629: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10973: \"$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* @@ -10655,22 +10999,22 @@ fi echo "checking "for sound support"" 1>&6 -echo "configure:10659: checking "for sound support"" >&5 +echo "configure:11003: 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:10666: checking for multimedia/audio_device.h" >&5 +echo "configure:11010: 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:10674: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11018: \"$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* @@ -10718,12 +11062,12 @@ fi if test -z "$native_sound_lib"; then echo $ac_n "checking for ALopenport in -laudio""... $ac_c" 1>&6 -echo "configure:10722: checking for ALopenport in -laudio" >&5 +echo "configure:11066: 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:11082: \"$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 @@ -10765,12 +11109,12 @@ fi if test -z "$native_sound_lib"; then echo $ac_n "checking for AOpenAudio in -lAlib""... $ac_c" 1>&6 -echo "configure:10769: checking for AOpenAudio in -lAlib" >&5 +echo "configure:11113: 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:11129: \"$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 @@ -10819,15 +11163,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:10823: checking for ${dir}/soundcard.h" >&5 +echo "configure:11167: 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:10831: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11175: \"$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* @@ -10881,15 +11225,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:10885: checking for audio/audiolib.h" >&5 +echo "configure:11229: 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:10893: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11237: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10907,12 +11251,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:10911: checking for AuOpenServer in -laudio" >&5 +echo "configure:11255: 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:11271: \"$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 @@ -10962,7 +11306,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 @@ -10993,7 +11337,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:10997: checking for $ac_word" >&5 +echo "configure:11341: 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. @@ -11022,10 +11366,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:11026: checking for esd_play_stream" >&5 +echo "configure:11370: 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:11396: \"$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 @@ -11099,7 +11443,7 @@ test -z "$with_tty" && with_tty=yes if test "$with_tty" = "yes" ; then echo "checking for TTY-related features" 1>&6 -echo "configure:11103: checking for TTY-related features" >&5 +echo "configure:11447: checking for TTY-related features" >&5 { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_TTY EOF @@ -11115,12 +11459,12 @@ EOF if test -z "$with_ncurses"; then echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6 -echo "configure:11119: checking for tgetent in -lncurses" >&5 +echo "configure:11463: 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:11479: \"$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 @@ -11164,15 +11508,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:11168: checking for ncurses/curses.h" >&5 +echo "configure:11512: 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:11176: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11520: \"$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* @@ -11194,15 +11538,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:11198: checking for ncurses/term.h" >&5 +echo "configure:11542: 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:11206: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11550: \"$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* @@ -11232,15 +11576,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:11236: checking for ncurses/curses.h" >&5 +echo "configure:11580: 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:11244: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11588: \"$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* @@ -11275,12 +11619,12 @@ fi for lib in curses termlib termcap; do echo $ac_n "checking for tgetent in -l$lib""... $ac_c" 1>&6 -echo "configure:11279: checking for tgetent in -l$lib" >&5 +echo "configure:11623: 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:11639: \"$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 @@ -11322,12 +11666,12 @@ fi else echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6 -echo "configure:11326: checking for tgetent in -lcurses" >&5 +echo "configure:11670: 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:11686: \"$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 @@ -11356,12 +11700,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:11360: checking for tgetent in -ltermcap" >&5 +echo "configure:11704: 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:11720: \"$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 @@ -11420,15 +11764,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:11424: checking for gpm.h" >&5 +echo "configure:11768: 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:11432: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11776: \"$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* @@ -11451,12 +11795,12 @@ fi } test -z "$with_gpm" && { echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6 -echo "configure:11455: checking for Gpm_Open in -lgpm" >&5 +echo "configure:11799: 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:11815: \"$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 @@ -11517,20 +11861,20 @@ test "$with_x11" = "yes" -o "$with_tty" = "yes" && extra_objs="$extra_objs event test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \ != "no no no" && echo "checking for database support" 1>&6 -echo "configure:11521: checking for database support" >&5 +echo "configure:11865: 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:11526: checking for ndbm.h" >&5 +echo "configure:11870: 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:11534: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11878: \"$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* @@ -11560,12 +11904,12 @@ fi if test "$with_database_gdbm" != "no"; then echo $ac_n "checking for dbm_open in -lgdbm""... $ac_c" 1>&6 -echo "configure:11564: checking for dbm_open in -lgdbm" >&5 +echo "configure:11908: 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:11924: \"$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 @@ -11604,10 +11948,10 @@ fi if test "$with_database_dbm" != "no"; then echo $ac_n "checking for dbm_open""... $ac_c" 1>&6 -echo "configure:11608: checking for dbm_open" >&5 +echo "configure:11952: 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:11978: \"$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 @@ -11649,12 +11993,12 @@ else echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6 -echo "configure:11653: checking for dbm_open in -ldbm" >&5 +echo "configure:11997: 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:12013: \"$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 @@ -11706,10 +12050,10 @@ EOF if test "$with_database_berkdb" != "no"; then echo $ac_n "checking for Berkeley db.h""... $ac_c" 1>&6 -echo "configure:11710: checking for Berkeley db.h" >&5 +echo "configure:12054: checking for Berkeley db.h" >&5 for path in "db/db.h" "db.h"; do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:12075: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* db_h_path="$path"; break else @@ -11743,9 +12087,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:11747: checking for Berkeley DB version" >&5 +echo "configure:12091: checking for Berkeley DB version" >&5 cat > conftest.$ac_ext < #if DB_VERSION_MAJOR > 1 @@ -11764,10 +12108,10 @@ fi rm -f conftest* echo $ac_n "checking for $dbfunc""... $ac_c" 1>&6 -echo "configure:11768: checking for $dbfunc" >&5 +echo "configure:12112: checking for $dbfunc" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12138: \"$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 @@ -11809,12 +12153,12 @@ else echo $ac_n "checking for $dbfunc in -ldb""... $ac_c" 1>&6 -echo "configure:11813: checking for $dbfunc in -ldb" >&5 +echo "configure:12157: 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:12173: \"$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 @@ -11889,12 +12233,12 @@ fi if test "$with_socks" = "yes"; then echo $ac_n "checking for SOCKSinit in -lsocks""... $ac_c" 1>&6 -echo "configure:11893: checking for SOCKSinit in -lsocks" >&5 +echo "configure:12237: 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:12253: \"$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 @@ -11960,19 +12304,19 @@ fi if test "$with_modules" != "no"; then echo "checking for module support" 1>&6 -echo "configure:11964: checking for module support" >&5 +echo "configure:12308: checking for module support" >&5 ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6 -echo "configure:11968: checking for dlfcn.h" >&5 +echo "configure:12312: 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:11976: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12320: \"$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* @@ -11990,12 +12334,12 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 -echo "configure:11994: checking for dlopen in -ldl" >&5 +echo "configure:12338: checking for dlopen in -ldl" >&5 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` xe_check_libs=" -ldl " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12354: \"$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 @@ -12025,12 +12369,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for dlopen in -lc""... $ac_c" 1>&6 -echo "configure:12029: checking for dlopen in -lc" >&5 +echo "configure:12373: checking for dlopen in -lc" >&5 ac_lib_var=`echo c'_'dlopen | sed 'y%./+-%__p_%'` xe_check_libs=" -lc " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12389: \"$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 @@ -12080,12 +12424,12 @@ EOF else echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 -echo "configure:12084: checking for shl_load in -ldld" >&5 +echo "configure:12428: 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:12444: \"$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 @@ -12123,12 +12467,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for dld_init in -ldld""... $ac_c" 1>&6 -echo "configure:12127: checking for dld_init in -ldld" >&5 +echo "configure:12471: 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:12487: \"$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 @@ -12184,7 +12528,7 @@ xehost=$canonical xealias=$internal_configuration echo "checking how to build dynamic libraries for ${xehost}" 1>&6 -echo "configure:12188: checking how to build dynamic libraries for ${xehost}" >&5 +echo "configure:12532: checking how to build dynamic libraries for ${xehost}" >&5 # Transform *-*-linux* to *-*-linux-gnu*, to support old configure scripts. case "$xehost" in *-*-linux-gnu*) ;; @@ -12212,9 +12556,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:12216: checking checking whether we are using GNU C" >&5 +echo "configure:12560: checking checking whether we are using GNU C" >&5 cat > conftest.$ac_ext <&6 -echo "configure:12240: checking how to produce PIC code" >&5 +echo "configure:12584: checking how to produce PIC code" >&5 wl= can_build_shared=yes @@ -12329,18 +12673,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:12333: checking if PIC flag ${dll_cflags} really works" >&5 +echo "configure:12677: 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:12688: \"$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 @@ -12371,7 +12715,7 @@ cc_produces_so=no xldf= xcldf= echo $ac_n "checking if C compiler can produce shared libraries""... $ac_c" 1>&6 -echo "configure:12375: checking if C compiler can produce shared libraries" >&5 +echo "configure:12719: checking if C compiler can produce shared libraries" >&5 if test "$XEGCC" = yes; then xcldf="-shared" xldf="-shared" @@ -12422,14 +12766,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:12777: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cc_produces_so=yes else @@ -12454,7 +12798,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:12458: checking for ld used by GCC" >&5 +echo "configure:12802: checking for ld used by GCC" >&5 ac_prog=`($CC -print-prog-name=ld) 2>&5` case "$ac_prog" in # Accept absolute paths. @@ -12479,7 +12823,7 @@ echo "configure:12458: checking for ld used by GCC" >&5 esac else echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 -echo "configure:12483: checking for GNU ld" >&5 +echo "configure:12827: checking for GNU ld" >&5 fi if test -z "$LTLD"; then @@ -12517,7 +12861,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:12521: checking if the linker is GNU ld" >&5 +echo "configure:12865: 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 @@ -12544,7 +12888,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:12548: checking whether the linker supports shared libraries" >&5 +echo "configure:12892: checking whether the linker supports shared libraries" >&5 dll_ld=$CC dll_ldflags=$LDFLAGS ld_shlibs=yes @@ -12759,10 +13103,10 @@ EOF for ac_func in dlerror _dlerror do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:12763: checking for $ac_func" >&5 +echo "configure:13107: 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:13133: \"$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 @@ -12824,11 +13168,11 @@ done fi cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:13176: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then : else diff --git a/configure.in b/configure.in index 25048ad..54eccbf 100644 --- a/configure.in +++ b/configure.in @@ -638,6 +638,23 @@ The default is to autodetect all sound support."]) done ;; + dnl Has the user specified a prefered Athena widget set? + dnl This bit expands any alias names out for us... + "with_athena" ) + case "$val" in + xa | xaw ) val=xaw ;; + 3 | 3d | xaw3d ) val=3d ;; + dnl No `n' for next, someone may try `no' + ne | nex | next | naxtaw) val=next ;; + dnl Have not tested the next two... + 9 | 95 | xaw95 ) val=95 ;; + xp | xpm | xawxpm ) val=xpm ;; + * ) USAGE_ERROR(["The \`--$optname' option must have one of these values: + \`xaw', \`3d', \`next', \`95', or \`xpm'."]) ;; + esac + eval "$opt=\"$val\"" + ;; + dnl Has the user requested XIM support? "with_xim" ) case "$val" in @@ -772,11 +789,10 @@ The default is to autodetect all sound support."]) case "$val" in l | lu | luc | luci | lucid ) val=lucid ;; m | mo | mot | moti | motif ) val=motif ;; - athena3d | athena-3d ) val=athena3d ;; a | at | ath | athe | athen | athena ) val=athena ;; n | no | non | none ) val=no ;; * ) USAGE_ERROR(["The \`--$optname' option must have one of these values: - \`lucid', \`motif', \`athena', \`athena3d', or \`no'."]) ;; + \`lucid', \`motif', \`athena', or \`no'."]) ;; esac eval "$opt=\"$val\"" ;; @@ -2568,7 +2584,7 @@ if test "$with_x11" != "yes"; then dnl if test "$with_tty" = "no" ; then dnl AC_MSG_ERROR([No window system support and no TTY support - Unable to proceed.]) dnl fi - for feature in tooltalk cde offix wmcommand xim xmu xpm nas_sound + for feature in tooltalk cde offix wmcommand xim xmu nas_sound do if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then AC_MSG_WARN([--with-$feature ignored: Not valid without X support]) @@ -2879,16 +2895,84 @@ if test "$with_x11" = "yes"; then AC_CHECKING(for X11 graphics libraries) - dnl Autodetect -lXaw - AC_CHECK_LIB(Xaw, XawScrollbarSetThumb, have_xaw=yes, have_xaw=no) - dnl if test "$have_xaw" = "yes"; then - dnl AC_CHECK_HEADER(X11/Xaw/Reports.h, [ - dnl XE_APPEND(pkg-src/tree-x, MAKE_SUBDIR) - dnl XE_APPEND(pkg-src/tree-x, INSTALL_ARCH_DEP_SUBDIR)]) - dnl fi + AC_CHECKING(for the Athena widgets) + + dnl What in heck did the user actually want? + case "$with_athena" in + dnl This is the default, old fashioned flat Athena. + "xaw" | "") athena_variant=Xaw athena_3d=no ;; + "3d") athena_variant=Xaw3d athena_3d=yes ;; + "next") athena_variant=neXtaw athena_3d=yes ;; + "95") athena_variant=Xaw95 athena_3d=yes ;; + "xpm") athena_variant=XawXpm athena_3d=yes ;; + *) XE_DIE("Unknown Athena widget set \`$with_athena'. This should not happen.") ;; + esac + + dnl Search for the Athena library... + if test "$athena_3d" = "no"; then + AC_CHECK_LIB($athena_variant, XawScrollbarSetThumb, + [ + dnl Must not be a 3d library... + AC_CHECK_LIB($athena_variant, threeDClassRec, + AC_MSG_WARN("Could not find a non-3d Athena widget library."), + athena_lib=$athena_variant) + ], + AC_MSG_WARN("Could not find an Athena widget library.")) + else + dnl The real configuration, need 3d library + AC_CHECK_LIB($athena_variant, threeDClassRec, athena_lib=$athena_variant, + dnl OK, couldn't find it with a proper name, try the standard Athena lib + dnl If that is 3d, presume the user asked for what they have installed. + AC_CHECK_LIB(Xaw, threeDClassRec, + [ + athena_lib=Xaw; + AC_MSG_WARN("Assuming that libXaw is actually $athena_variant."); + ], + AC_MSG_WARN("Could not find a 3d Athena widget library that looked like $athena_variant."))) + fi + + dnl Now we locate the Athena headers that we need. + if test "$athena_3d" = "no"; then + AC_CHECK_HEADER(X11/Xaw/ThreeD.h, + AC_MSG_WARN("Could not find a non-3d Athena header set."), + AC_CHECK_HEADER(X11/Xaw/XawInit.h, + athena_h_path=X11/Xaw, + AC_MSG_WARN("Could not find a non-3d Athena header set."))) + else + dnl The three-d Athena headers are so much more slippery. + dnl Curse this `Lets replace standard libraries' thing that they did. :/ + AC_CHECK_HEADER(X11/$athena_variant/XawInit.h, + AC_CHECK_HEADER(X11/$athena_variant/ThreeD.h, + athena_h_path=X11/$athena_variant,)) + + dnl If we couldn't find the specific variant, try the generic Athena 3d headers + if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then + AC_CHECK_HEADER(X11/Xaw3d/XawInit.h, + AC_CHECK_HEADER(X11/Xaw3d/ThreeD.h, + [ + AC_MSG_WARN("Assuming that X11/Xaw3d headers are suitable for $athena_variant.") + athena_h_path=X11/Xaw3d + ],)) + fi + + dnl If nothing yet found, see if Xaw is a 3d header set... + dnl We AC_MSG_WARN if we fail because I am all out of ideas... + if test -z "$athena_h_path"; then + AC_CHECK_HEADER(X11/Xaw/ThreeD.h, + [ + AC_MSG_WARN("Assuming that X11/Xaw headers are suitable for $athena_variant.") + athena_h_path=X11/Xaw + ], + AC_MSG_WARN("Could not find a suitable 3d Athena header set.")) + fi + fi - dnl Autodetect -lXaw3d - AC_CHECK_LIB(Xaw3d, XawScrollbarSetThumb, have_xaw3d=yes, have_xaw3d=no) + dnl Do we actually have a usable Athena widget set? Please? + if test -n "$athena_lib" -a -n "$athena_h_path"; then + have_xaw=yes + else + have_xaw=no + fi dnl autodetect Motif - but only add to libs_x later (if necessary) AC_CHECK_HEADER(Xm/Xm.h, @@ -2913,13 +2997,12 @@ 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. -case "$with_menubars" in "" | "yes" | "athena" | "athena3d" ) +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_xaw3d" = "yes"; then with_dialogs="athena3d" - elif test "$have_xaw" = "yes"; then with_dialogs="athena" + if test "$have_motif" = "yes"; then with_dialogs="motif" + elif test "$have_xaw" = "yes"; then with_dialogs="athena" else with_dialogs=no fi ;; esac @@ -2928,7 +3011,6 @@ case "$with_scrollbars" in "" | "yes" ) esac case "$with_widgets" in "" | "yes" | "lucid") if test "$have_motif" = "yes"; then with_widgets="motif" - elif test "$have_xaw3d" = "yes"; then with_widgets="athena3d" elif test "$have_xaw" = "yes"; then with_widgets="athena" else with_widgets=no fi ;; @@ -2937,20 +3019,28 @@ esac all_widgets="$with_menubars $with_scrollbars $with_dialogs $with_toolbars $with_widgets" case "$all_widgets" in - *athena*3d ) - AC_DEFINE(LWLIB_USES_ATHENA) - AC_DEFINE(NEED_ATHENA) - XE_APPEND(lwlib-Xaw.o, lwlib_objs) - if test "$have_xaw3d"; then - XE_PREPEND(-lXaw3d, libs_x) - else - XE_PREPEND(-lXaw, libs_x) - fi ;; - *athena* ) - AC_DEFINE(LWLIB_USES_ATHENA) - AC_DEFINE(NEED_ATHENA) - XE_APPEND(lwlib-Xaw.o, lwlib_objs) - XE_PREPEND(-lXaw, libs_x) ;; + *athena* ) + if test "$have_xaw" != "yes"; then + XE_DIE("Could not find a suitable Athena library to build with.") + fi + + dnl Add the Lucid widget Athena code + XE_APPEND(lwlib-Xaw.o, lwlib_objs) + + dnl Add the Athena widget library we located earlier + XE_PREPEND(-l$athena_lib, libs_x) + + dnl Export the path for lwlib, used to build and include the headers + dnl from the right place later on. + AC_DEFINE_UNQUOTED(ATHENA_H_PATH, $athena_h_path) + + AC_DEFINE(LWLIB_USES_ATHENA) + AC_DEFINE(NEED_ATHENA) + + if test "$athena_3d" = "yes"; then + AC_DEFINE(HAVE_ATHENA_3D) + fi + ;; esac case "$all_widgets" in *motif* ) @@ -2975,10 +3065,14 @@ esac AC_SUBST(lwlib_objs) -case "$with_scrollbars" in athena* ) AC_DEFINE(LWLIB_SCROLLBARS_ATHENA);; esac -case "$with_dialogs" in athena* ) AC_DEFINE(LWLIB_DIALOGS_ATHENA) ;; esac -test "$with_scrollbars" = "athena3d" && AC_DEFINE(LWLIB_SCROLLBARS_ATHENA3D) -test "$with_dialogs" = "athena3d" && AC_DEFINE(LWLIB_DIALOGS_ATHENA3D) +test "$with_scrollbars" = "athena" && AC_DEFINE(LWLIB_SCROLLBARS_ATHENA) +test "$with_dialogs" = "athena" && AC_DEFINE(LWLIB_DIALOGS_ATHENA) + +if test "$athena_3d" = "yes"; then + test "$with_scrollbars" = "athena" && AC_DEFINE(LWLIB_SCROLLBARS_ATHENA3D) + test "$with_dialogs" = "athena" && AC_DEFINE(LWLIB_DIALOGS_ATHENA3D) +fi + case "$with_widgets" in athena* ) AC_DEFINE(LWLIB_WIDGETS_ATHENA);; esac test "$with_widgets" != "no" && test "$with_widgets" != "msw" && \ AC_DEFINE(LWLIB_TABS_LUCID) diff --git a/configure.usage b/configure.usage index 12a020f..71d3f8f 100644 --- a/configure.usage +++ b/configure.usage @@ -61,15 +61,17 @@ Window-system options: --without-toolbars Don't compile with any toolbar support. --without-wmcommand Compile without realized leader window which will keep the WM_COMMAND property. +--with-athena=TYPE Use TYPE Athena widgets + (xaw, 3d, next, 95, or xpm) --with-menubars=TYPE Use TYPE menubars (lucid, motif, or no). The Lucid widgets emulate Motif (mostly) but are faster. *WARNING* The Motif menubar is currently broken. --with-scrollbars=TYPE Use TYPE scrollbars - (lucid, motif, athena, athena3d, or no). ---with-dialogs=TYPE Use TYPE dialog boxes (motif, athena, athena3d, or no). + (lucid, motif, athena, or no). +--with-dialogs=TYPE Use TYPE dialog boxes (motif, athena, or no). Lucid menubars and scrollbars are the default. Motif dialog boxes will be used if Motif can be found. ---with-widgets=TYPE Use TYPE widgets (motif, athena, athena3d, or no). +--with-widgets=TYPE Use TYPE widgets (motif, athena, or no). Motif widgets will be used if Motif can be found. Other widget types are currently unsupported. --with-dragndrop (*) Compile in the generic drag and drop API. This is diff --git a/etc/TUTORIAL.de b/etc/TUTORIAL.de index b0ef6d0..f15c75d 100644 --- a/etc/TUTORIAL.de +++ b/etc/TUTORIAL.de @@ -1,4 +1,4 @@ -Copyright (c) 1997, Adrian Aichner . +Copyright (c) 1997, Adrian Aichner . Copyright (c) 1985, 1996 Free Software Foundation, Inc. See end for conditions. @@ -1131,13 +1131,13 @@ dem von Stuart Cracraft f Ben Wing hat das Tutorial für X Windows erweitert. Martin Buchholz und Hrvoje Niksic haben weitere Korrekturen für XEmacs beigetragen. Ins Deutsche übertragen wurde es von Adrian Aichner -. +. Diese Version des Tutorials ist, wie GNU Emacs selbst, urheberrechtlich geschützt und erlaubt die Verteilung von Kopien unter bestimmten Voraussetzungen: -Copyright (c) 1997, Adrian Aichner . +Copyright (c) 1997, Adrian Aichner . Copyright (c) 1985, 1996 Free Software Foundation diff --git a/info/lispref.info b/info/lispref.info index 360182b..83889a8 100644 --- a/info/lispref.info +++ b/info/lispref.info @@ -61,40 +61,40 @@ lispref.info-7: 291568 lispref.info-8: 340704 lispref.info-9: 388026 lispref.info-10: 436665 -lispref.info-11: 484608 -lispref.info-12: 531220 -lispref.info-13: 579119 -lispref.info-14: 627342 -lispref.info-15: 675596 -lispref.info-16: 724798 -lispref.info-17: 772038 -lispref.info-18: 818888 -lispref.info-19: 865939 -lispref.info-20: 914669 -lispref.info-21: 964091 -lispref.info-22: 1011010 -lispref.info-23: 1058037 -lispref.info-24: 1107436 -lispref.info-25: 1157118 -lispref.info-26: 1207028 -lispref.info-27: 1256251 -lispref.info-28: 1305018 -lispref.info-29: 1353990 -lispref.info-30: 1395325 -lispref.info-31: 1444468 -lispref.info-32: 1493681 -lispref.info-33: 1543255 -lispref.info-34: 1591432 -lispref.info-35: 1637064 -lispref.info-36: 1678380 -lispref.info-37: 1723321 -lispref.info-38: 1773008 -lispref.info-39: 1822112 -lispref.info-40: 1871516 -lispref.info-41: 1921400 -lispref.info-42: 1970391 -lispref.info-43: 2014283 -lispref.info-44: 2052619 +lispref.info-11: 484903 +lispref.info-12: 531515 +lispref.info-13: 579414 +lispref.info-14: 627637 +lispref.info-15: 675891 +lispref.info-16: 725647 +lispref.info-17: 774398 +lispref.info-18: 821248 +lispref.info-19: 868299 +lispref.info-20: 917029 +lispref.info-21: 966451 +lispref.info-22: 1013370 +lispref.info-23: 1060397 +lispref.info-24: 1109796 +lispref.info-25: 1159478 +lispref.info-26: 1209388 +lispref.info-27: 1258611 +lispref.info-28: 1307378 +lispref.info-29: 1356815 +lispref.info-30: 1398150 +lispref.info-31: 1447293 +lispref.info-32: 1496506 +lispref.info-33: 1546080 +lispref.info-34: 1594257 +lispref.info-35: 1639889 +lispref.info-36: 1681205 +lispref.info-37: 1726146 +lispref.info-38: 1775833 +lispref.info-39: 1824937 +lispref.info-40: 1874341 +lispref.info-41: 1924225 +lispref.info-42: 1973216 +lispref.info-43: 2017108 +lispref.info-44: 2055444  Tag Table: (Indirect) @@ -290,599 +290,600 @@ Node: Function Names453659 Node: Defining Functions456232 Node: Calling Functions459272 Node: Mapping Functions463121 -Node: Anonymous Functions465514 -Node: Function Cells468759 -Node: Inline Functions473569 -Node: Related Topics475379 -Node: Macros476432 -Node: Simple Macro477716 -Node: Expansion478451 -Node: Compiling Macros481455 -Node: Defining Macros483291 -Node: Backquote484608 -Node: Problems with Macros487005 -Node: Argument Evaluation487700 -Node: Surprising Local Vars490615 -Node: Eval During Expansion492683 -Node: Repeated Expansion494376 -Node: Customization496292 -Node: Common Keywords496761 -Node: Group Definitions499606 -Node: Variable Definitions501798 -Node: Customization Types506781 -Node: Simple Types508216 -Node: Composite Types510373 -Node: Splicing into Lists515063 -Node: Type Keywords516898 -Node: Loading520418 -Node: How Programs Do Loading522093 -Node: Autoload531220 -Node: Repeated Loading537299 -Node: Named Features539412 -Node: Unloading545844 -Node: Hooks for Loading548000 -Node: Byte Compilation548717 -Node: Speed of Byte-Code550634 -Node: Compilation Functions551841 -Node: Docs and Compilation558228 -Node: Dynamic Loading560881 -Node: Eval During Compile563245 -Node: Compiled-Function Objects564510 -Node: Disassembly569308 -Node: Debugging576562 -Node: Debugger577974 -Node: Error Debugging579119 -Node: Infinite Loops581872 -Node: Function Debugging583116 -Node: Explicit Debug585906 -Node: Using Debugger586677 -Node: Debugger Commands588539 -Node: Invoking the Debugger592856 -Node: Internals of Debugger596771 -Node: Syntax Errors601658 -Node: Excess Open602906 -Node: Excess Close604781 -Node: Compilation Errors606202 -Node: Edebug607490 -Node: Using Edebug609598 -Node: Instrumenting612295 -Node: Edebug Execution Modes615784 -Node: Jumping618894 -Node: Edebug Misc621237 -Node: Breakpoints622626 -Node: Global Break Condition625432 -Node: Embedded Breakpoints626387 -Node: Trapping Errors627342 -Node: Edebug Views629418 -Node: Edebug Eval631383 -Node: Eval List632560 -Node: Reading in Edebug635945 -Node: Printing in Edebug636744 -Node: Tracing638459 -Node: Coverage Testing640345 -Node: The Outside Context642386 -Node: Checking Whether to Stop643335 -Node: Edebug Display Update643982 -Node: Edebug Recursive Edit646005 -Node: Instrumenting Macro Calls647660 -Node: Specification List650142 -Node: Backtracking659553 -Node: Debugging Backquote661491 -Node: Specification Examples665197 -Node: Edebug Options667264 -Node: Read and Print672601 -Node: Streams Intro673578 -Node: Input Streams675596 -Node: Input Functions680497 -Node: Output Streams682557 -Node: Output Functions686608 -Node: Output Variables690908 -Node: Minibuffers695707 -Node: Intro to Minibuffers696792 -Node: Text from Minibuffer699118 -Node: Object from Minibuffer703780 -Node: Minibuffer History706997 -Node: Completion709907 -Node: Basic Completion711882 -Node: Minibuffer Completion716906 -Node: Completion Commands720151 -Node: High-Level Completion724798 -Node: Reading File Names728822 -Node: Programmed Completion732511 -Node: Yes-or-No Queries734721 -Node: Multiple Queries740458 -Node: Minibuffer Misc744522 -Node: Command Loop749388 -Node: Command Overview750732 -Node: Defining Commands754010 -Node: Using Interactive754758 -Node: Interactive Codes759531 -Node: Interactive Examples765323 -Node: Interactive Call766637 -Node: Command Loop Info772038 -Node: Events777017 -Node: Event Types778477 -Node: Event Contents780400 -Node: Event Predicates784876 -Node: Accessing Mouse Event Positions786201 -Node: Frame-Level Event Position Info786900 -Node: Window-Level Event Position Info787940 -Node: Event Text Position Info789704 -Node: Event Glyph Position Info792196 -Node: Event Toolbar Position Info793519 -Node: Other Event Position Info794190 -Node: Accessing Other Event Info794599 -Node: Working With Events796219 -Node: Converting Events802207 -Node: Reading Input805160 -Node: Key Sequence Input806162 -Node: Reading One Event808116 -Node: Dispatching an Event810877 -Node: Quoted Character Input811328 -Node: Peeking and Discarding812676 -Node: Waiting816580 -Node: Quitting818888 -Node: Prefix Command Arguments823296 -Node: Recursive Editing828383 -Node: Disabling Commands833179 -Node: Command History835247 -Node: Keyboard Macros836984 -Node: Keymaps839201 -Node: Keymap Terminology840778 -Node: Format of Keymaps843707 -Node: Creating Keymaps844118 -Node: Inheritance and Keymaps846197 -Node: Key Sequences848569 -Node: Prefix Keys853139 -Node: Active Keymaps856724 -Node: Key Lookup865939 -Node: Functions for Key Lookup871102 -Node: Changing Key Bindings876799 -Node: Key Binding Commands883696 -Node: Scanning Keymaps885761 -Node: Other Keymap Functions894272 -Node: Menus894894 -Node: Menu Format895436 -Node: Menubar Format904021 -Node: Menubar904646 -Node: Modifying Menus907759 -Node: Menu Filters912773 -Node: Pop-Up Menus914669 -Node: Menu Accelerators916874 -Node: Creating Menu Accelerators917596 -Node: Keyboard Menu Traversal918914 -Node: Menu Accelerator Functions919641 -Node: Buffers Menu922676 -Node: Dialog Boxes923970 -Node: Dialog Box Format924137 -Node: Dialog Box Functions925507 -Node: Toolbar925904 -Node: Toolbar Intro926229 -Node: Toolbar Descriptor Format928639 -Node: Specifying the Toolbar933133 -Node: Other Toolbar Variables936738 -Node: Scrollbars941165 -Node: Drag and Drop941301 -Node: Supported Protocols942377 -Node: OffiX DND942880 -Node: CDE dt943887 -Node: MSWindows OLE944478 -Node: Loose ends944649 -Node: Drop Interface945041 -Node: Drag Interface946063 -Node: Modes946237 -Node: Major Modes947188 -Node: Major Mode Conventions950103 -Node: Example Major Modes956058 -Node: Auto Major Mode964091 -Node: Mode Help971539 -Node: Derived Modes972640 -Node: Minor Modes974831 -Node: Minor Mode Conventions976133 -Node: Keymaps and Minor Modes978996 -Node: Modeline Format979831 -Node: Modeline Data981599 -Node: Modeline Variables985869 -Node: %-Constructs990585 -Node: Hooks993496 -Node: Documentation1000258 -Node: Documentation Basics1001681 -Node: Accessing Documentation1004731 -Node: Keys in Documentation1011010 -Node: Describing Characters1014489 -Node: Help Functions1016838 -Node: Obsoleteness1023289 -Node: Files1026283 -Node: Visiting Files1028208 -Node: Visiting Functions1029713 -Node: Subroutines of Visiting1034760 -Node: Saving Buffers1036833 -Node: Reading from Files1042926 -Node: Writing to Files1045083 -Node: File Locks1047800 -Node: Information about Files1050853 -Node: Testing Accessibility1051614 -Node: Kinds of Files1055354 -Node: Truenames1057035 -Node: File Attributes1058037 -Node: Changing File Attributes1063176 -Node: File Names1068582 -Node: File Name Components1070191 -Node: Directory Names1073292 -Node: Relative File Names1076745 -Node: File Name Expansion1077823 -Node: Unique File Names1081730 -Node: File Name Completion1083345 -Node: User Name Completion1086006 -Node: Contents of Directories1087346 -Node: Create/Delete Dirs1090659 -Node: Magic File Names1091765 -Node: Partial Files1097395 -Node: Intro to Partial Files1097623 -Node: Creating a Partial File1098863 -Node: Detached Partial Files1099798 -Node: Format Conversion1100920 -Node: Files and MS-DOS1107436 -Node: Backups and Auto-Saving1109500 -Node: Backup Files1110175 -Node: Making Backups1111572 -Node: Rename or Copy1114321 -Node: Numbered Backups1116814 -Node: Backup Names1119058 -Node: Auto-Saving1122350 -Node: Reverting1130492 -Node: Buffers1133650 -Node: Buffer Basics1135067 -Node: Current Buffer1137120 -Node: Buffer Names1141808 -Node: Buffer File Name1145013 -Node: Buffer Modification1149132 -Node: Modification Time1151325 -Node: Read Only Buffers1154700 -Node: The Buffer List1157118 -Node: Creating Buffers1161948 -Node: Killing Buffers1164094 -Node: Indirect Buffers1167825 -Node: Windows1170397 -Node: Basic Windows1171875 -Node: Splitting Windows1174973 -Node: Deleting Windows1181862 -Node: Selecting Windows1184542 -Node: Cyclic Window Ordering1187671 -Node: Buffers and Windows1192295 -Node: Displaying Buffers1194136 -Node: Choosing Window1199312 -Node: Window Point1207028 -Node: Window Start1209074 -Node: Vertical Scrolling1213564 -Node: Horizontal Scrolling1219701 -Node: Size of Window1223210 -Node: Position of Window1227928 -Node: Resizing Windows1230168 -Node: Window Configurations1235597 -Node: Frames1239022 -Node: Creating Frames1240791 -Node: Frame Properties1242132 -Node: Property Access1242948 -Node: Initial Properties1243797 -Node: X Frame Properties1246283 -Node: Size and Position1250917 -Node: Frame Name1252913 -Node: Frame Titles1253827 -Node: Deleting Frames1255651 -Node: Finding All Frames1256251 -Node: Frames and Windows1258245 -Node: Minibuffers and Frames1259950 -Node: Input Focus1260868 -Node: Visibility of Frames1263945 -Node: Raising and Lowering1265864 -Node: Frame Configurations1268240 -Node: Frame Hooks1268834 -Node: Consoles and Devices1270639 -Node: Basic Console Functions1273383 -Node: Basic Device Functions1273806 -Node: Console Types and Device Classes1274522 -Node: Connecting to a Console or Device1276719 -Node: The Selected Console and Device1278882 -Node: Console and Device I/O1279908 -Node: Positions1280672 -Node: Point1281641 -Node: Motion1284731 -Node: Character Motion1285498 -Node: Word Motion1287735 -Node: Buffer End Motion1289236 -Node: Text Lines1290733 -Node: Screen Lines1295328 -Node: List Motion1299391 -Node: Skipping Characters1302799 -Node: Excursions1305018 -Node: Narrowing1308050 -Node: Markers1313375 -Node: Overview of Markers1314281 -Node: Predicates on Markers1318973 -Node: Creating Markers1320219 -Node: Information from Markers1324256 -Node: Changing Markers1325354 -Node: The Mark1326732 -Node: The Region1335226 -Node: Text1340913 -Node: Near Point1343612 -Node: Buffer Contents1347334 -Node: Comparing Text1348740 -Node: Insertion1350148 -Node: Commands for Insertion1353990 -Node: Deletion1356946 -Node: User-Level Deletion1360541 -Node: The Kill Ring1364702 -Node: Kill Ring Concepts1366876 -Node: Kill Functions1367930 -Node: Yank Commands1369835 -Node: Low-Level Kill Ring1371706 -Node: Internals of Kill Ring1374492 -Node: Undo1377272 -Node: Maintaining Undo1381601 -Node: Filling1384221 -Node: Margins1390215 -Node: Auto Filling1394144 -Node: Sorting1395325 -Node: Columns1404625 -Node: Indentation1407141 -Node: Primitive Indent1407920 -Node: Mode-Specific Indent1409164 -Node: Region Indent1411675 -Node: Relative Indent1414623 -Node: Indent Tabs1417005 -Node: Motion by Indent1418326 -Node: Case Changes1419105 -Node: Text Properties1422356 -Node: Examining Properties1424169 -Node: Changing Properties1426036 -Node: Property Search1429627 -Node: Special Properties1434338 -Node: Saving Properties1434619 -Node: Substitution1437761 -Node: Registers1441031 -Node: Transposition1443574 -Node: Change Hooks1444468 -Node: Transformations1446508 -Node: Searching and Matching1450893 -Node: String Search1452024 -Node: Regular Expressions1456748 -Node: Syntax of Regexps1458115 -Node: Regexp Example1472494 -Node: Regexp Search1474664 -Node: POSIX Regexps1480752 -Node: Search and Replace1482587 -Node: Match Data1485952 -Node: Simple Match Data1487082 -Node: Replacing Match1491347 -Node: Entire Match Data1493681 -Node: Saving Match Data1495672 -Node: Searching and Case1497053 -Node: Standard Regexps1499087 -Node: Syntax Tables1501285 -Node: Syntax Basics1502399 -Node: Syntax Descriptors1505371 -Node: Syntax Class Table1507221 -Node: Syntax Flags1513259 -Node: Syntax Table Functions1516476 -Node: Motion and Syntax1520340 -Node: Parsing Expressions1521792 -Node: Standard Syntax Tables1527861 -Node: Syntax Table Internals1528705 -Node: Abbrevs1529731 -Node: Abbrev Mode1531534 -Node: Abbrev Tables1532254 -Node: Defining Abbrevs1533787 -Node: Abbrev Files1535692 -Node: Abbrev Expansion1537465 -Node: Standard Abbrev Tables1542096 -Node: Extents1543255 -Node: Intro to Extents1544498 -Node: Creating and Modifying Extents1548492 -Node: Extent Endpoints1549999 -Node: Finding Extents1553262 -Node: Mapping Over Extents1557011 -Node: Extent Properties1563128 -Node: Detached Extents1573272 -Node: Extent Parents1575131 -Node: Duplicable Extents1576826 -Node: Extents and Events1580047 -Node: Atomic Extents1581954 -Node: Specifiers1582401 -Node: Introduction to Specifiers1584208 -Node: Specifiers In-Depth1586518 -Node: Specifier Instancing1591432 -Node: Specifier Types1594694 -Node: Adding Specifications1599768 -Node: Retrieving Specifications1609130 -Node: Specifier Tag Functions1612865 -Node: Specifier Instancing Functions1616099 -Node: Specifier Example1619506 -Node: Creating Specifiers1622612 -Node: Specifier Validation Functions1624861 -Node: Other Specification Functions1627245 -Node: Faces and Window-System Objects1631064 -Node: Faces1631388 -Node: Merging Faces1633005 -Node: Basic Face Functions1634966 -Node: Face Properties1637064 -Node: Face Convenience Functions1646623 -Node: Other Face Display Functions1649753 -Node: Fonts1650566 -Node: Font Specifiers1651267 -Node: Font Instances1651508 -Node: Font Instance Names1652475 -Node: Font Instance Size1653316 -Node: Font Instance Characteristics1654602 -Node: Font Convenience Functions1655771 -Node: Colors1657061 -Node: Color Specifiers1657501 -Node: Color Instances1657728 -Node: Color Instance Properties1658472 -Node: Color Convenience Functions1659098 -Node: Glyphs1660151 -Node: Glyph Functions1661743 -Node: Creating Glyphs1662150 -Node: Glyph Properties1663737 -Node: Glyph Convenience Functions1672904 -Node: Glyph Dimensions1676851 -Node: Images1677931 -Node: Image Specifiers1678380 -Node: Image Instantiator Conversion1689802 -Node: Image Instances1691167 -Node: Image Instance Types1691918 -Node: Image Instance Functions1694573 -Node: Glyph Types1699142 -Node: Mouse Pointer1700914 -Node: Redisplay Glyphs1703917 -Node: Subwindows1704950 -Node: Annotations1705193 -Node: Annotation Basics1706209 -Node: Annotation Primitives1710147 -Node: Annotation Properties1711476 -Node: Locating Annotations1714516 -Node: Margin Primitives1715353 -Node: Annotation Hooks1717247 -Node: Display1717907 -Node: Refresh Screen1718885 -Node: Truncation1720796 -Node: The Echo Area1723321 -Node: Warnings1729756 -Node: Invisible Text1734192 -Node: Selective Display1736771 -Node: Overlay Arrow1740897 -Node: Temporary Displays1742250 -Node: Blinking1746371 -Node: Usual Display1748556 -Node: Display Tables1751105 -Node: Display Table Format1751909 -Node: Active Display Table1753351 -Node: Character Descriptors1754543 -Node: Beeping1755300 -Node: Hash Tables1760066 -Node: Introduction to Hash Tables1760674 -Node: Working With Hash Tables1766697 -Node: Weak Hash Tables1767814 -Node: Range Tables1769613 -Node: Introduction to Range Tables1770302 -Node: Working With Range Tables1770733 -Node: Databases1771618 -Node: Connecting to a Database1771917 -Node: Working With a Database1773008 -Node: Other Database Functions1773866 -Node: Processes1774440 -Node: Subprocess Creation1776664 -Node: Synchronous Processes1779953 -Node: MS-DOS Subprocesses1786671 -Node: Asynchronous Processes1787745 -Node: Deleting Processes1791458 -Node: Process Information1793329 -Node: Input to Processes1797255 -Node: Signals to Processes1799545 -Node: Output from Processes1803965 -Node: Process Buffers1804777 -Node: Filter Functions1807644 -Node: Accepting Output1813214 -Node: Sentinels1814741 -Node: Process Window Size1818231 -Node: Transaction Queues1818580 -Node: Network1820278 -Node: System Interface1822112 -Node: Starting Up1823382 -Node: Start-up Summary1823976 -Node: Init File1827530 -Node: Terminal-Specific1829911 -Node: Command Line Arguments1833070 -Node: Getting Out1836559 -Node: Killing XEmacs1837128 -Node: Suspending XEmacs1838797 -Node: System Environment1842139 -Node: User Identification1848806 -Node: Time of Day1852335 -Node: Time Conversion1855122 -Node: Timers1860162 -Node: Terminal Input1862335 -Node: Input Modes1862838 -Node: Translating Input1865251 -Node: Recording Input1869416 -Node: Terminal Output1871516 -Node: Flow Control1875139 -Node: Batch Mode1878931 -Node: X-Windows1880313 -Node: X Selections1881125 -Node: X Server1883335 -Node: Resources1883736 -Node: Server Data1888877 -Node: Grabs1890084 -Node: X Miscellaneous1891665 -Node: ToolTalk Support1894050 -Node: XEmacs ToolTalk API Summary1894267 -Node: Sending Messages1895567 -Node: Example of Sending Messages1895818 -Node: Elisp Interface for Sending Messages1896880 -Node: Receiving Messages1903273 -Node: Example of Receiving Messages1903496 -Node: Elisp Interface for Receiving Messages1904332 -Node: LDAP Support1908157 -Node: Building XEmacs with LDAP support1908653 -Node: XEmacs LDAP API1909631 -Node: LDAP Variables1910361 -Node: The High-Level LDAP API1912837 -Node: The Low-Level LDAP API1913942 -Node: The LDAP Lisp Object1914216 -Node: Opening and Closing a LDAP Connection1914769 -Node: Searching on a LDAP Server (Low-level)1916552 -Node: Syntax of Search Filters1917945 -Node: Internationalization1919243 -Node: I18N Levels 1 and 21919580 -Node: I18N Level 31920286 -Node: Level 3 Basics1920567 -Node: Level 3 Primitives1921400 -Node: Dynamic Messaging1923006 -Node: Domain Specification1923469 -Node: Documentation String Extraction1925372 -Node: I18N Level 41926290 -Node: MULE1926482 -Node: Internationalization Terminology1927593 -Node: Charsets1936132 -Node: Charset Properties1936828 -Node: Basic Charset Functions1941514 -Node: Charset Property Functions1943695 -Node: Predefined Charsets1945738 -Node: MULE Characters1948658 -Node: Composite Characters1949505 -Node: ISO 20221950759 -Node: Coding Systems1956481 -Node: Coding System Types1958403 -Node: EOL Conversion1960222 -Node: Coding System Properties1961405 -Node: Basic Coding System Functions1965257 -Node: Coding System Property Functions1967161 -Node: Encoding and Decoding Text1967719 -Node: Detection of Textual Encoding1968855 -Node: Big5 and Shift-JIS Functions1970391 -Node: CCL1971479 -Node: CCL Syntax1974583 -Node: CCL Statements1976171 -Node: CCL Expressions1980819 -Node: Calling CCL1983358 -Node: CCL Examples1986347 -Node: Category Tables1986484 -Node: Tips1988843 -Node: Style Tips1989484 -Node: Compilation Tips1999003 -Node: Documentation Tips2000917 -Node: Comment Tips2006426 -Node: Library Headers2009428 -Node: Building XEmacs and Object Allocation2013400 -Node: Building XEmacs2014283 -Node: Pure Storage2020618 -Node: Garbage Collection2023406 -Node: Standard Errors2034545 -Node: Standard Buffer-Local Variables2038754 -Node: Standard Keymaps2041387 -Node: Standard Hooks2045119 -Node: Index2052619 +Node: Anonymous Functions465809 +Node: Function Cells469054 +Node: Inline Functions473864 +Node: Related Topics475674 +Node: Macros476727 +Node: Simple Macro478011 +Node: Expansion478746 +Node: Compiling Macros481750 +Node: Defining Macros483586 +Node: Backquote484903 +Node: Problems with Macros487300 +Node: Argument Evaluation487995 +Node: Surprising Local Vars490910 +Node: Eval During Expansion492978 +Node: Repeated Expansion494671 +Node: Customization496587 +Node: Common Keywords497056 +Node: Group Definitions499901 +Node: Variable Definitions502093 +Node: Customization Types507076 +Node: Simple Types508511 +Node: Composite Types510668 +Node: Splicing into Lists515358 +Node: Type Keywords517193 +Node: Loading520713 +Node: How Programs Do Loading522388 +Node: Autoload531515 +Node: Repeated Loading537594 +Node: Named Features539707 +Node: Unloading546139 +Node: Hooks for Loading548295 +Node: Byte Compilation549012 +Node: Speed of Byte-Code550929 +Node: Compilation Functions552136 +Node: Docs and Compilation558523 +Node: Dynamic Loading561176 +Node: Eval During Compile563540 +Node: Compiled-Function Objects564805 +Node: Disassembly569603 +Node: Debugging576857 +Node: Debugger578269 +Node: Error Debugging579414 +Node: Infinite Loops582167 +Node: Function Debugging583411 +Node: Explicit Debug586201 +Node: Using Debugger586972 +Node: Debugger Commands588834 +Node: Invoking the Debugger593151 +Node: Internals of Debugger597066 +Node: Syntax Errors601953 +Node: Excess Open603201 +Node: Excess Close605076 +Node: Compilation Errors606497 +Node: Edebug607785 +Node: Using Edebug609893 +Node: Instrumenting612590 +Node: Edebug Execution Modes616079 +Node: Jumping619189 +Node: Edebug Misc621532 +Node: Breakpoints622921 +Node: Global Break Condition625727 +Node: Embedded Breakpoints626682 +Node: Trapping Errors627637 +Node: Edebug Views629713 +Node: Edebug Eval631678 +Node: Eval List632855 +Node: Reading in Edebug636240 +Node: Printing in Edebug637039 +Node: Tracing638754 +Node: Coverage Testing640640 +Node: The Outside Context642681 +Node: Checking Whether to Stop643630 +Node: Edebug Display Update644277 +Node: Edebug Recursive Edit646300 +Node: Instrumenting Macro Calls647955 +Node: Specification List650437 +Node: Backtracking659848 +Node: Debugging Backquote661786 +Node: Specification Examples665492 +Node: Edebug Options667559 +Node: Read and Print672896 +Node: Streams Intro673873 +Node: Input Streams675891 +Node: Input Functions680792 +Node: Output Streams682852 +Node: Output Functions686903 +Node: Output Variables691203 +Node: Minibuffers696002 +Node: Intro to Minibuffers697154 +Node: Text from Minibuffer699342 +Node: Object from Minibuffer704217 +Node: Minibuffer History707444 +Node: Completion710423 +Node: Basic Completion712398 +Node: Minibuffer Completion717427 +Node: Completion Commands721004 +Node: High-Level Completion725647 +Node: Reading File Names729671 +Node: Programmed Completion733355 +Node: Yes-or-No Queries735737 +Node: Multiple Queries741474 +Node: Reading a Password745541 +Node: Minibuffer Misc746878 +Node: Command Loop751748 +Node: Command Overview753092 +Node: Defining Commands756370 +Node: Using Interactive757118 +Node: Interactive Codes761891 +Node: Interactive Examples767683 +Node: Interactive Call768997 +Node: Command Loop Info774398 +Node: Events779377 +Node: Event Types780837 +Node: Event Contents782760 +Node: Event Predicates787236 +Node: Accessing Mouse Event Positions788561 +Node: Frame-Level Event Position Info789260 +Node: Window-Level Event Position Info790300 +Node: Event Text Position Info792064 +Node: Event Glyph Position Info794556 +Node: Event Toolbar Position Info795879 +Node: Other Event Position Info796550 +Node: Accessing Other Event Info796959 +Node: Working With Events798579 +Node: Converting Events804567 +Node: Reading Input807520 +Node: Key Sequence Input808522 +Node: Reading One Event810476 +Node: Dispatching an Event813237 +Node: Quoted Character Input813688 +Node: Peeking and Discarding815036 +Node: Waiting818940 +Node: Quitting821248 +Node: Prefix Command Arguments825656 +Node: Recursive Editing830743 +Node: Disabling Commands835539 +Node: Command History837607 +Node: Keyboard Macros839344 +Node: Keymaps841561 +Node: Keymap Terminology843138 +Node: Format of Keymaps846067 +Node: Creating Keymaps846478 +Node: Inheritance and Keymaps848557 +Node: Key Sequences850929 +Node: Prefix Keys855499 +Node: Active Keymaps859084 +Node: Key Lookup868299 +Node: Functions for Key Lookup873462 +Node: Changing Key Bindings879159 +Node: Key Binding Commands886056 +Node: Scanning Keymaps888121 +Node: Other Keymap Functions896632 +Node: Menus897254 +Node: Menu Format897796 +Node: Menubar Format906381 +Node: Menubar907006 +Node: Modifying Menus910119 +Node: Menu Filters915133 +Node: Pop-Up Menus917029 +Node: Menu Accelerators919234 +Node: Creating Menu Accelerators919956 +Node: Keyboard Menu Traversal921274 +Node: Menu Accelerator Functions922001 +Node: Buffers Menu925036 +Node: Dialog Boxes926330 +Node: Dialog Box Format926497 +Node: Dialog Box Functions927867 +Node: Toolbar928264 +Node: Toolbar Intro928589 +Node: Toolbar Descriptor Format930999 +Node: Specifying the Toolbar935493 +Node: Other Toolbar Variables939098 +Node: Scrollbars943525 +Node: Drag and Drop943661 +Node: Supported Protocols944737 +Node: OffiX DND945240 +Node: CDE dt946247 +Node: MSWindows OLE946838 +Node: Loose ends947009 +Node: Drop Interface947401 +Node: Drag Interface948423 +Node: Modes948597 +Node: Major Modes949548 +Node: Major Mode Conventions952463 +Node: Example Major Modes958418 +Node: Auto Major Mode966451 +Node: Mode Help973899 +Node: Derived Modes975000 +Node: Minor Modes977191 +Node: Minor Mode Conventions978493 +Node: Keymaps and Minor Modes981356 +Node: Modeline Format982191 +Node: Modeline Data983959 +Node: Modeline Variables988229 +Node: %-Constructs992945 +Node: Hooks995856 +Node: Documentation1002618 +Node: Documentation Basics1004041 +Node: Accessing Documentation1007091 +Node: Keys in Documentation1013370 +Node: Describing Characters1016849 +Node: Help Functions1019198 +Node: Obsoleteness1025649 +Node: Files1028643 +Node: Visiting Files1030568 +Node: Visiting Functions1032073 +Node: Subroutines of Visiting1037120 +Node: Saving Buffers1039193 +Node: Reading from Files1045286 +Node: Writing to Files1047443 +Node: File Locks1050160 +Node: Information about Files1053213 +Node: Testing Accessibility1053974 +Node: Kinds of Files1057714 +Node: Truenames1059395 +Node: File Attributes1060397 +Node: Changing File Attributes1065536 +Node: File Names1070942 +Node: File Name Components1072551 +Node: Directory Names1075652 +Node: Relative File Names1079105 +Node: File Name Expansion1080183 +Node: Unique File Names1084090 +Node: File Name Completion1085705 +Node: User Name Completion1088366 +Node: Contents of Directories1089706 +Node: Create/Delete Dirs1093019 +Node: Magic File Names1094125 +Node: Partial Files1099755 +Node: Intro to Partial Files1099983 +Node: Creating a Partial File1101223 +Node: Detached Partial Files1102158 +Node: Format Conversion1103280 +Node: Files and MS-DOS1109796 +Node: Backups and Auto-Saving1111860 +Node: Backup Files1112535 +Node: Making Backups1113932 +Node: Rename or Copy1116681 +Node: Numbered Backups1119174 +Node: Backup Names1121418 +Node: Auto-Saving1124710 +Node: Reverting1132852 +Node: Buffers1136010 +Node: Buffer Basics1137427 +Node: Current Buffer1139480 +Node: Buffer Names1144168 +Node: Buffer File Name1147373 +Node: Buffer Modification1151492 +Node: Modification Time1153685 +Node: Read Only Buffers1157060 +Node: The Buffer List1159478 +Node: Creating Buffers1164308 +Node: Killing Buffers1166454 +Node: Indirect Buffers1170185 +Node: Windows1172757 +Node: Basic Windows1174235 +Node: Splitting Windows1177333 +Node: Deleting Windows1184222 +Node: Selecting Windows1186902 +Node: Cyclic Window Ordering1190031 +Node: Buffers and Windows1194655 +Node: Displaying Buffers1196496 +Node: Choosing Window1201672 +Node: Window Point1209388 +Node: Window Start1211434 +Node: Vertical Scrolling1215924 +Node: Horizontal Scrolling1222061 +Node: Size of Window1225570 +Node: Position of Window1230288 +Node: Resizing Windows1232528 +Node: Window Configurations1237957 +Node: Frames1241382 +Node: Creating Frames1243151 +Node: Frame Properties1244492 +Node: Property Access1245308 +Node: Initial Properties1246157 +Node: X Frame Properties1248643 +Node: Size and Position1253277 +Node: Frame Name1255273 +Node: Frame Titles1256187 +Node: Deleting Frames1258011 +Node: Finding All Frames1258611 +Node: Frames and Windows1260605 +Node: Minibuffers and Frames1262310 +Node: Input Focus1263228 +Node: Visibility of Frames1266305 +Node: Raising and Lowering1268224 +Node: Frame Configurations1270600 +Node: Frame Hooks1271194 +Node: Consoles and Devices1272999 +Node: Basic Console Functions1275743 +Node: Basic Device Functions1276166 +Node: Console Types and Device Classes1276882 +Node: Connecting to a Console or Device1279079 +Node: The Selected Console and Device1281242 +Node: Console and Device I/O1282268 +Node: Positions1283032 +Node: Point1284001 +Node: Motion1287091 +Node: Character Motion1287858 +Node: Word Motion1290095 +Node: Buffer End Motion1291596 +Node: Text Lines1293093 +Node: Screen Lines1297688 +Node: List Motion1301751 +Node: Skipping Characters1305159 +Node: Excursions1307378 +Node: Narrowing1310410 +Node: Markers1315735 +Node: Overview of Markers1316641 +Node: Predicates on Markers1321333 +Node: Creating Markers1322579 +Node: Information from Markers1326616 +Node: Changing Markers1327714 +Node: The Mark1329092 +Node: The Region1337586 +Node: Text1343273 +Node: Near Point1345972 +Node: Buffer Contents1350159 +Node: Comparing Text1351565 +Node: Insertion1352973 +Node: Commands for Insertion1356815 +Node: Deletion1359771 +Node: User-Level Deletion1363366 +Node: The Kill Ring1367527 +Node: Kill Ring Concepts1369701 +Node: Kill Functions1370755 +Node: Yank Commands1372660 +Node: Low-Level Kill Ring1374531 +Node: Internals of Kill Ring1377317 +Node: Undo1380097 +Node: Maintaining Undo1384426 +Node: Filling1387046 +Node: Margins1393040 +Node: Auto Filling1396969 +Node: Sorting1398150 +Node: Columns1407450 +Node: Indentation1409966 +Node: Primitive Indent1410745 +Node: Mode-Specific Indent1411989 +Node: Region Indent1414500 +Node: Relative Indent1417448 +Node: Indent Tabs1419830 +Node: Motion by Indent1421151 +Node: Case Changes1421930 +Node: Text Properties1425181 +Node: Examining Properties1426994 +Node: Changing Properties1428861 +Node: Property Search1432452 +Node: Special Properties1437163 +Node: Saving Properties1437444 +Node: Substitution1440586 +Node: Registers1443856 +Node: Transposition1446399 +Node: Change Hooks1447293 +Node: Transformations1449333 +Node: Searching and Matching1453718 +Node: String Search1454849 +Node: Regular Expressions1459573 +Node: Syntax of Regexps1460940 +Node: Regexp Example1475319 +Node: Regexp Search1477489 +Node: POSIX Regexps1483577 +Node: Search and Replace1485412 +Node: Match Data1488777 +Node: Simple Match Data1489907 +Node: Replacing Match1494172 +Node: Entire Match Data1496506 +Node: Saving Match Data1498497 +Node: Searching and Case1499878 +Node: Standard Regexps1501912 +Node: Syntax Tables1504110 +Node: Syntax Basics1505224 +Node: Syntax Descriptors1508196 +Node: Syntax Class Table1510046 +Node: Syntax Flags1516084 +Node: Syntax Table Functions1519301 +Node: Motion and Syntax1523165 +Node: Parsing Expressions1524617 +Node: Standard Syntax Tables1530686 +Node: Syntax Table Internals1531530 +Node: Abbrevs1532556 +Node: Abbrev Mode1534359 +Node: Abbrev Tables1535079 +Node: Defining Abbrevs1536612 +Node: Abbrev Files1538517 +Node: Abbrev Expansion1540290 +Node: Standard Abbrev Tables1544921 +Node: Extents1546080 +Node: Intro to Extents1547323 +Node: Creating and Modifying Extents1551317 +Node: Extent Endpoints1552824 +Node: Finding Extents1556087 +Node: Mapping Over Extents1559836 +Node: Extent Properties1565953 +Node: Detached Extents1576097 +Node: Extent Parents1577956 +Node: Duplicable Extents1579651 +Node: Extents and Events1582872 +Node: Atomic Extents1584779 +Node: Specifiers1585226 +Node: Introduction to Specifiers1587033 +Node: Specifiers In-Depth1589343 +Node: Specifier Instancing1594257 +Node: Specifier Types1597519 +Node: Adding Specifications1602593 +Node: Retrieving Specifications1611955 +Node: Specifier Tag Functions1615690 +Node: Specifier Instancing Functions1618924 +Node: Specifier Example1622331 +Node: Creating Specifiers1625437 +Node: Specifier Validation Functions1627686 +Node: Other Specification Functions1630070 +Node: Faces and Window-System Objects1633889 +Node: Faces1634213 +Node: Merging Faces1635830 +Node: Basic Face Functions1637791 +Node: Face Properties1639889 +Node: Face Convenience Functions1649448 +Node: Other Face Display Functions1652578 +Node: Fonts1653391 +Node: Font Specifiers1654092 +Node: Font Instances1654333 +Node: Font Instance Names1655300 +Node: Font Instance Size1656141 +Node: Font Instance Characteristics1657427 +Node: Font Convenience Functions1658596 +Node: Colors1659886 +Node: Color Specifiers1660326 +Node: Color Instances1660553 +Node: Color Instance Properties1661297 +Node: Color Convenience Functions1661923 +Node: Glyphs1662976 +Node: Glyph Functions1664568 +Node: Creating Glyphs1664975 +Node: Glyph Properties1666562 +Node: Glyph Convenience Functions1675729 +Node: Glyph Dimensions1679676 +Node: Images1680756 +Node: Image Specifiers1681205 +Node: Image Instantiator Conversion1692627 +Node: Image Instances1693992 +Node: Image Instance Types1694743 +Node: Image Instance Functions1697398 +Node: Glyph Types1701967 +Node: Mouse Pointer1703739 +Node: Redisplay Glyphs1706742 +Node: Subwindows1707775 +Node: Annotations1708018 +Node: Annotation Basics1709034 +Node: Annotation Primitives1712972 +Node: Annotation Properties1714301 +Node: Locating Annotations1717341 +Node: Margin Primitives1718178 +Node: Annotation Hooks1720072 +Node: Display1720732 +Node: Refresh Screen1721710 +Node: Truncation1723621 +Node: The Echo Area1726146 +Node: Warnings1732581 +Node: Invisible Text1737017 +Node: Selective Display1739596 +Node: Overlay Arrow1743722 +Node: Temporary Displays1745075 +Node: Blinking1749196 +Node: Usual Display1751381 +Node: Display Tables1753930 +Node: Display Table Format1754734 +Node: Active Display Table1756176 +Node: Character Descriptors1757368 +Node: Beeping1758125 +Node: Hash Tables1762891 +Node: Introduction to Hash Tables1763499 +Node: Working With Hash Tables1769522 +Node: Weak Hash Tables1770639 +Node: Range Tables1772438 +Node: Introduction to Range Tables1773127 +Node: Working With Range Tables1773558 +Node: Databases1774443 +Node: Connecting to a Database1774742 +Node: Working With a Database1775833 +Node: Other Database Functions1776691 +Node: Processes1777265 +Node: Subprocess Creation1779489 +Node: Synchronous Processes1782778 +Node: MS-DOS Subprocesses1789496 +Node: Asynchronous Processes1790570 +Node: Deleting Processes1794283 +Node: Process Information1796154 +Node: Input to Processes1800080 +Node: Signals to Processes1802370 +Node: Output from Processes1806790 +Node: Process Buffers1807602 +Node: Filter Functions1810469 +Node: Accepting Output1816039 +Node: Sentinels1817566 +Node: Process Window Size1821056 +Node: Transaction Queues1821405 +Node: Network1823103 +Node: System Interface1824937 +Node: Starting Up1826207 +Node: Start-up Summary1826801 +Node: Init File1830355 +Node: Terminal-Specific1832736 +Node: Command Line Arguments1835895 +Node: Getting Out1839384 +Node: Killing XEmacs1839953 +Node: Suspending XEmacs1841622 +Node: System Environment1844964 +Node: User Identification1851631 +Node: Time of Day1855160 +Node: Time Conversion1857947 +Node: Timers1862987 +Node: Terminal Input1865160 +Node: Input Modes1865663 +Node: Translating Input1868076 +Node: Recording Input1872241 +Node: Terminal Output1874341 +Node: Flow Control1877964 +Node: Batch Mode1881756 +Node: X-Windows1883138 +Node: X Selections1883950 +Node: X Server1886160 +Node: Resources1886561 +Node: Server Data1891702 +Node: Grabs1892909 +Node: X Miscellaneous1894490 +Node: ToolTalk Support1896875 +Node: XEmacs ToolTalk API Summary1897092 +Node: Sending Messages1898392 +Node: Example of Sending Messages1898643 +Node: Elisp Interface for Sending Messages1899705 +Node: Receiving Messages1906098 +Node: Example of Receiving Messages1906321 +Node: Elisp Interface for Receiving Messages1907157 +Node: LDAP Support1910982 +Node: Building XEmacs with LDAP support1911478 +Node: XEmacs LDAP API1912456 +Node: LDAP Variables1913186 +Node: The High-Level LDAP API1915662 +Node: The Low-Level LDAP API1916767 +Node: The LDAP Lisp Object1917041 +Node: Opening and Closing a LDAP Connection1917594 +Node: Searching on a LDAP Server (Low-level)1919377 +Node: Syntax of Search Filters1920770 +Node: Internationalization1922068 +Node: I18N Levels 1 and 21922405 +Node: I18N Level 31923111 +Node: Level 3 Basics1923392 +Node: Level 3 Primitives1924225 +Node: Dynamic Messaging1925831 +Node: Domain Specification1926294 +Node: Documentation String Extraction1928197 +Node: I18N Level 41929115 +Node: MULE1929307 +Node: Internationalization Terminology1930418 +Node: Charsets1938957 +Node: Charset Properties1939653 +Node: Basic Charset Functions1944339 +Node: Charset Property Functions1946520 +Node: Predefined Charsets1948563 +Node: MULE Characters1951483 +Node: Composite Characters1952330 +Node: ISO 20221953584 +Node: Coding Systems1959306 +Node: Coding System Types1961228 +Node: EOL Conversion1963047 +Node: Coding System Properties1964230 +Node: Basic Coding System Functions1968082 +Node: Coding System Property Functions1969986 +Node: Encoding and Decoding Text1970544 +Node: Detection of Textual Encoding1971680 +Node: Big5 and Shift-JIS Functions1973216 +Node: CCL1974304 +Node: CCL Syntax1977408 +Node: CCL Statements1978996 +Node: CCL Expressions1983644 +Node: Calling CCL1986183 +Node: CCL Examples1989172 +Node: Category Tables1989309 +Node: Tips1991668 +Node: Style Tips1992309 +Node: Compilation Tips2001828 +Node: Documentation Tips2003742 +Node: Comment Tips2009251 +Node: Library Headers2012253 +Node: Building XEmacs and Object Allocation2016225 +Node: Building XEmacs2017108 +Node: Pure Storage2023443 +Node: Garbage Collection2026231 +Node: Standard Errors2037370 +Node: Standard Buffer-Local Variables2041579 +Node: Standard Keymaps2044212 +Node: Standard Hooks2047944 +Node: Index2055444  End Tag Table diff --git a/info/widget.info b/info/widget.info index 75b5ce0..1ee1532 100644 --- a/info/widget.info +++ b/info/widget.info @@ -444,12 +444,12 @@ widget specific way. `%{' `%}' - The text inside will be displayed with the face specified by + The text inside will be displayed in the face specified by `:sample-face'. `%v' - This will be replaces with the buffer representation of the - widgets value. What this is depends on the widget type. + This will be replaced with the buffer representation of the + widget's value. What this is depends on the widget type. `%d' Insert the string specified by `:doc' here. @@ -539,9 +539,9 @@ widget specific way. `:validate' A function which takes a widget as an argument, and return nil if - the widgets current value is valid for the widget. Otherwise, it + the widget's current value is valid for the widget. Otherwise it should return the widget containing the invalid data, and set that - widgets `:error' property to a string explaining the error. + widget's `:error' property to a string explaining the error. The following predefined function can be used: @@ -728,10 +728,9 @@ The `menu-choice' Widget TYPE ::= (menu-choice [KEYWORD ARGUMENT]... TYPE ... ) - The TYPE arguments represents each possible choice. The widgets -value of will be the value of the chosen TYPE argument. This widget -will match any value that matches at least one of the specified TYPE -arguments. + The TYPE argument represents each possible choice. The widget's +value will be that of the chosen TYPE argument. This widget will match +any value matching at least one of the specified TYPE arguments. `:void' Widget type used as a fallback when the value does not match any @@ -761,10 +760,9 @@ The `radio-button-choice' Widget TYPE ::= (radio-button-choice [KEYWORD ARGUMENT]... TYPE ... ) - The TYPE arguments represents each possible choice. The widgets -value of will be the value of the chosen TYPE argument. This widget -will match any value that matches at least one of the specified TYPE -arguments. + The TYPE argument represents each possible choice. The widget's +value will be that of the chosen TYPE argument. This widget will match +any value matching at least one of the specified TYPE arguments. The following extra properties are recognized. @@ -848,8 +846,8 @@ The `toggle' Widget TYPE ::= (toggle [KEYWORD ARGUMENT]...) - The widget has two possible states, `on' and `off', which -corresponds to a `t' or `nil' value. + The widget has two possible states, `on' and `off', which correspond +to a `t' or `nil' value respectively. The following extra properties are recognized. @@ -890,10 +888,10 @@ The `checklist' Widget TYPE ::= (checklist [KEYWORD ARGUMENT]... TYPE ... ) - The TYPE arguments represents each checklist item. The widgets -value of will be a list containing the value of each ticked TYPE -argument. The checklist widget will match a list whose elements all -matches at least one of the specified TYPE arguments. + The TYPE arguments represents each checklist item. The widget's +value will be a list containing the values of all ticked TYPE +arguments. The checklist widget will match a list whose elements all +match at least one of the specified TYPE arguments. The following extra properties are recognized. @@ -910,11 +908,11 @@ matches at least one of the specified TYPE arguments. Insert a literal `%'. `:greedy' - Usually, a checklist will only match if the items are in the exact + Usually a checklist will only match if the items are in the exact sequence given in the specification. By setting `:greedy' to - non-nil, it will allow the items to come in any sequence. - However, if you extract the value they will be in the sequence - given in the checklist. I.e. the original sequence is forgotten. + non-nil, it will allow the items to appear in any sequence. + However, if you extract the values they will be in the sequence + given in the checklist. I.e. the original sequence is forgotten. `button-args' A list of keywords to pass to the checkboxes. Useful for setting @@ -1170,11 +1168,11 @@ files, you can use the following widget specification: t)' or `(file string string)'. This concept of inline is probably hard to understand. It was -certainly hard to implement so instead of confuse you more by trying to -explain it here, I'll just suggest you meditate over it for a while. +certainly hard to implement so instead of confusing you more by trying +to explain it here, I'll just suggest you meditate over it for a while. - Widget: choice - Allows you to edit a sexp which may have one of fixed set of + Allows you to edit a sexp which may have one of a fixed set of types. It is currently implemented with the `choice-menu' basic widget, and has a similar syntax. @@ -1251,9 +1249,9 @@ following code: ;; Make WIDGET active. (widget-apply WIDGET :activate) - A widget is inactive if itself, or any of its ancestors (found by + A widget is inactive if itself or any of its ancestors (found by following the `:parent' link) have been deactivated. To make sure a -widget is really active, you must therefore activate both itself, and +widget is really active, you must therefore activate both itself and all its ancestors. (while widget @@ -1261,11 +1259,11 @@ all its ancestors. (setq widget (widget-get widget :parent))) You can check if a widget has been made inactive by examining the -value of `:inactive' keyword. If this is non-nil, the widget itself has -been deactivated. This is different from using the `:active' keyword, -in that the later tell you if the widget *or* any of its ancestors have -been deactivated. Do not attempt to set the `:inactive' keyword -directly. Use the `:activate' `:deactivated' keywords instead. +value of the `:inactive' keyword. If this is non-nil, the widget itself +has been deactivated. This is different from using the `:active' +keyword, in that the latter tells you if the widget *or* any of its +ancestors have been deactivated. Do not attempt to set the `:inactive' +keyword directly. Use the `:activate' `:deactivate' keywords instead.  File: widget.info, Node: Defining New Widgets, Next: Widget Browser, Prev: Widget Properties, Up: Top @@ -1274,8 +1272,8 @@ Defining New Widgets ==================== You can define specialized widgets with `define-widget'. It allows -you to create a shorthand for more complex widgets, including specifying -component widgets and default new default values for the keyword +you to create a shorthand for more complex widgets. This includes +specifying component widgets and new default values for the keyword arguments. - Function: widget-define name class doc &rest args @@ -1286,7 +1284,7 @@ arguments. The third argument DOC is a documentation string for the widget. - After the new widget has been defined, the following two calls will + After the new widget has been defined the following two calls will create identical widgets: * (widget-create NAME) @@ -1294,9 +1292,9 @@ arguments. * (apply widget-create CLASS ARGS) - Using `widget-define' does just store the definition of the widget -type in the `widget-type' property of NAME, which is what -`widget-create' uses. + Using `widget-define' just stores the definition of the widget type +in the `widget-type' property of NAME, which is what `widget-create' +uses. If you just want to specify defaults for keywords with no complex conversions, you can use `identity' as your conversion function. @@ -1307,7 +1305,7 @@ new widgets: Function to convert a widget type before creating a widget of that type. It takes a widget type as an argument, and returns the converted widget type. When a widget is created, this function is - called for the widget type and all the widgets parent types, most + called for the widget type and all the widget's parent types, most derived first. The following predefined functions can be used here: @@ -1320,7 +1318,7 @@ new widgets: `:value-to-internal' Function to convert the value to the internal format. The function - takes two arguments, a widget and an external value, and returns + takes two arguments, a widget and an external value. It returns the internal value. The function is called on the present `:value' when the widget is created, and on any value set later with `widget-value-set'. @@ -1334,8 +1332,8 @@ new widgets: `:create' Function to create a widget from scratch. The function takes one - argument, a widget type, and create a widget of that type, insert - it in the buffer, and return a widget object. + argument, a widget type, and creates a widget of that type, + inserts it in the buffer, and returns a widget object. `:delete' Function to delete a widget. The function takes one argument, a @@ -1343,14 +1341,14 @@ new widgets: `:value-create' Function to expand the `%v' escape in the format string. It will - be called with the widget as its argument. Should insert a - representation of the widgets value in the buffer. + be called with the widget as its argument and should insert a + representation of the widget's value in the buffer. `:value-delete' - Should remove the representation of the widgets value from the + Should remove the representation of the widget's value from the buffer. It will be called with the widget as its argument. It doesn't have to remove the text, but it should release markers and - delete nested widgets if such has been used. + delete nested widgets if such have been used. The following predefined function can be used here: @@ -1373,8 +1371,8 @@ new widgets: non-standard escapes. You should end up calling `widget-default-format-handler' to handle - unknown escape sequences, which will handle the `%h' and any future - escape sequences, as well as give an error for unknown escapes. + unknown escape sequences. It will handle the `%h' and any future + escape sequences as well as give an error for unknown escapes. `:action' Function to handle user initiated events. By default, `:notify' @@ -1391,9 +1389,9 @@ new widgets: should take four arguments, WIDGET, PROMPT, VALUE, and UNBOUND and should return a value for widget entered by the user. PROMPT is the prompt to use. VALUE is the default value to use, unless - UNBOUND is non-nil in which case there are no default value. The + UNBOUND is non-nil. In this case there is no default value. The function should read the value using the method most natural for - this widget, and does not have to check that it matches. + this widget and does not have to check whether it matches. If you want to define a new widget from scratch, use the `default' widget as its base. @@ -1530,24 +1528,24 @@ Node: push-button21155 Node: editable-field21728 Node: text23067 Node: menu-choice23365 -Node: radio-button-choice24230 -Node: item25809 -Node: choice-item26197 -Node: toggle26695 -Node: checkbox27420 -Node: checklist27726 -Node: editable-list29170 -Node: group30352 -Node: Sexp Types30639 -Node: constants30952 -Node: generic32031 -Node: atoms32564 -Node: composite34511 -Node: Widget Properties36977 -Node: Defining New Widgets40040 -Node: Widget Browser45340 -Node: Widget Minor Mode46198 -Node: Utilities46755 -Node: Widget Wishlist47236 +Node: radio-button-choice24218 +Node: item25785 +Node: choice-item26173 +Node: toggle26671 +Node: checkbox27408 +Node: checklist27714 +Node: editable-list29158 +Node: group30340 +Node: Sexp Types30627 +Node: constants30940 +Node: generic32019 +Node: atoms32552 +Node: composite34499 +Node: Widget Properties36969 +Node: Defining New Widgets40034 +Node: Widget Browser45334 +Node: Widget Minor Mode46192 +Node: Utilities46749 +Node: Widget Wishlist47230  End Tag Table diff --git a/info/xemacs-faq.info b/info/xemacs-faq.info index cd678b0..40abb30e4 100644 --- a/info/xemacs-faq.info +++ b/info/xemacs-faq.info @@ -9,258 +9,259 @@ END-INFO-DIR-ENTRY  Indirect: xemacs-faq.info-1: 195 -xemacs-faq.info-2: 47856 -xemacs-faq.info-3: 94965 -xemacs-faq.info-4: 144800 -xemacs-faq.info-5: 194688 +xemacs-faq.info-2: 47990 +xemacs-faq.info-3: 95703 +xemacs-faq.info-4: 145538 +xemacs-faq.info-5: 195121  Tag Table: (Indirect) Node: Top195 -Node: Introduction16711 -Node: Q1.0.120230 -Node: Q1.0.220766 -Node: Q1.0.321261 -Node: Q1.0.421523 -Node: Q1.0.522973 -Node: Q1.0.623662 -Node: Q1.0.724668 -Node: Q1.0.824917 -Node: Q1.0.925132 -Node: Q1.0.1025410 -Node: Q1.0.1125653 -Node: Q1.0.1226110 -Node: Q1.0.1326478 -Node: Q1.0.1426713 -Node: Q1.1.127187 -Node: Q1.1.228149 -Node: Q1.1.328542 -Node: Q1.2.129493 -Node: Q1.2.230549 -Node: Q1.2.330983 -Node: Q1.3.131934 -Node: Q1.3.235852 -Node: Q1.3.336407 -Node: Q1.3.436648 -Node: Q1.3.537412 -Node: Q1.3.639827 -Node: Q1.3.741322 -Node: Q1.4.142257 -Node: Q1.4.243119 -Node: Q1.4.343460 -Node: Q1.4.443879 -Node: Q1.4.545419 -Node: Q1.4.645723 -Node: Q1.4.746731 -Node: Installation47856 -Node: Q2.0.150262 -Node: Q2.0.251135 -Node: Q2.0.358338 -Node: Q2.0.459636 -Node: Q2.0.560228 -Node: Q2.0.660596 -Node: Q2.0.760977 -Node: Q2.0.861358 -Node: Q2.0.962936 -Node: Q2.0.1064374 -Node: Q2.0.1165218 -Node: Q2.0.1266159 -Node: Q2.0.1367682 -Node: Q2.0.1468340 -Node: Q2.1.168908 -Node: Q2.1.271650 -Node: Q2.1.372827 -Node: Q2.1.474120 -Node: Q2.1.574919 -Node: Q2.1.675281 -Node: Q2.1.775758 -Node: Q2.1.876111 -Node: Q2.1.977627 -Node: Q2.1.1078049 -Node: Q2.1.1178806 -Node: Q2.1.1279671 -Node: Q2.1.1380626 -Node: Q2.1.1481657 -Node: Q2.1.1582768 -Node: Q2.1.1688726 -Node: Q2.1.1789420 -Node: Q2.1.1890017 -Node: Q2.1.1991814 -Node: Q2.1.2092344 -Node: Q2.1.2192726 -Node: Q2.1.2293016 -Node: Q2.1.2394313 -Node: Customization94965 -Node: Q3.0.199852 -Node: Q3.0.2100558 -Node: Q3.0.3101122 -Node: Q3.0.4101539 -Node: Q3.0.5102372 -Node: Q3.0.6103153 -Node: Q3.0.7103733 -Node: Q3.0.8104397 -Node: Q3.0.9105243 -Node: Q3.1.1105804 -Node: Q3.1.2106541 -Node: Q3.1.3106972 -Node: Q3.1.4107557 -Node: Q3.1.5108093 -Node: Q3.1.6108477 -Node: Q3.1.7109158 -Node: Q3.1.8111382 -Node: Q3.2.1111924 -Node: Q3.2.2113332 -Node: Q3.2.3114131 -Node: Q3.2.4114733 -Node: Q3.2.5115767 -Node: Q3.2.6116234 -Node: Q3.3.1117196 -Node: Q3.3.2117589 -Node: Q3.3.3118220 -Node: Q3.3.4118601 -Node: Q3.3.5119695 -Node: Q3.4.1121189 -Node: Q3.4.2121832 -Node: Q3.5.1122344 -Node: Q3.5.2123798 -Node: Q3.5.3124216 -Node: Q3.5.4125056 -Node: Q3.5.5125888 -Node: Q3.5.6127028 -Node: Q3.5.7128018 -Node: Q3.5.8129370 -Node: Q3.5.9130117 -Node: Q3.5.10130897 -Node: Q3.5.11131533 -Node: Q3.6.1132086 -Node: Q3.6.2132826 -Node: Q3.6.3133254 -Node: Q3.7.1133754 -Node: Q3.7.2134642 -Node: Q3.7.3135301 -Node: Q3.7.4135723 -Node: Q3.7.5136066 -Node: Q3.7.6136534 -Node: Q3.7.7137249 -Node: Q3.7.8138269 -Node: Q3.8.1138688 -Node: Q3.8.2139148 -Node: Q3.8.3139611 -Node: Q3.8.4140217 -Node: Q3.8.5140936 -Node: Q3.9.1141721 -Node: Q3.9.2142661 -Node: Q3.9.3143259 -Node: Q3.9.4143921 -Node: Q3.10.1144800 -Node: Q3.10.2145618 -Node: Q3.10.3146399 -Node: Q3.10.4147127 -Node: Q3.10.5147510 -Node: Subsystems148520 -Node: Q4.0.1151005 -Node: Q4.0.2151530 -Node: Q4.0.3152088 -Node: Q4.0.4152409 -Node: Q4.0.5152651 -Node: Q4.0.6152882 -Node: Q4.0.7153463 -Node: Q4.0.8153788 -Node: Q4.0.9155015 -Node: Q4.0.10157053 -Node: Q4.0.11157507 -Node: Q4.0.12158357 -Node: Q4.1.1159330 -Node: Q4.1.2159733 -Node: Q4.1.3160060 -Node: Q4.2.1160369 -Node: Q4.2.2160999 -Node: Q4.2.3161239 -Node: Q4.2.4161783 -Node: Q4.3.1162436 -Node: Q4.3.2163020 -Node: Q4.3.3164501 -Node: Q4.3.4164773 -Node: Q4.3.5165450 -Node: Q4.4.1166078 -Node: Q4.4.2167564 -Node: Q4.5.1168768 -Node: Q4.6.1169537 -Node: Q4.7.1174797 -Node: Q4.7.2175752 -Node: Q4.7.3176049 -Node: Q4.7.4176395 -Node: Q4.7.5177279 -Node: Q4.7.6178921 -Node: Miscellaneous179515 -Node: Q5.0.1182935 -Node: Q5.0.2183669 -Node: Q5.0.3184523 -Node: Q5.0.4185225 -Node: Q5.0.5186164 -Node: Q5.0.6188144 -Node: Q5.0.7188801 -Node: Q5.0.8189406 -Node: Q5.0.9189925 -Node: Q5.0.10190439 -Node: Q5.0.11190687 -Node: Q5.0.12191248 -Node: Q5.0.13192165 -Node: Q5.0.14192849 -Node: Q5.0.15193614 -Node: Q5.0.16193911 -Node: Q5.0.17194423 -Node: Q5.0.18194688 -Node: Q5.0.19195214 -Node: Q5.0.20195638 -Node: Q5.1.1196553 -Node: Q5.1.2198622 -Node: Q5.1.3199358 -Node: Q5.1.4202752 -Node: Q5.1.5203287 -Node: Q5.1.6205381 -Node: Q5.1.7206770 -Node: Q5.1.8208371 -Node: Q5.1.9208923 -Node: Q5.1.10209808 -Node: Q5.1.11210939 -Node: Q5.2.1211488 -Node: Q5.2.2212059 -Node: Q5.2.3212476 -Node: Q5.2.4212711 -Node: Q5.3.1213621 -Node: Q5.3.2214842 -Node: Q5.3.3215618 -Node: Q5.3.4216102 -Node: Q5.3.5216769 -Node: Q5.3.6217638 -Node: Q5.3.7217883 -Node: Q5.3.8220073 -Node: Q5.3.9220320 -Node: Q5.3.10221273 -Node: Q5.3.11223357 -Node: Q5.3.12224906 -Node: MS Windows226180 -Node: Q6.0.1227511 -Node: Q6.0.2228258 -Node: Q6.0.3228723 -Node: Q6.0.4229003 -Node: Q6.1.1231284 -Node: Q6.1.2232155 -Node: Q6.1.3232436 -Node: Q6.1.4232718 -Node: Q6.1.5233096 -Node: Q6.1.6233928 -Node: Q6.2.1234512 -Node: Q6.2.2235413 -Node: Q6.2.3235814 -Node: Q6.3.1236103 -Node: Q6.3.2237197 -Node: Q6.3.3240378 -Node: Current Events240632 -Node: Q7.0.1241286 -Node: Q7.0.2241925 -Node: Q7.0.3242999 -Node: Q7.0.4243227 +Node: Introduction16769 +Node: Q1.0.120249 +Node: Q1.0.220785 +Node: Q1.0.321280 +Node: Q1.0.421542 +Node: Q1.0.522992 +Node: Q1.0.623681 +Node: Q1.0.724687 +Node: Q1.0.824936 +Node: Q1.0.925151 +Node: Q1.0.1025429 +Node: Q1.0.1125672 +Node: Q1.0.1226129 +Node: Q1.0.1326497 +Node: Q1.0.1426732 +Node: Q1.1.127206 +Node: Q1.1.228283 +Node: Q1.1.328676 +Node: Q1.2.129627 +Node: Q1.2.230683 +Node: Q1.2.331117 +Node: Q1.3.132068 +Node: Q1.3.235986 +Node: Q1.3.336541 +Node: Q1.3.436782 +Node: Q1.3.537546 +Node: Q1.3.639961 +Node: Q1.3.741456 +Node: Q1.4.142391 +Node: Q1.4.243253 +Node: Q1.4.343594 +Node: Q1.4.444013 +Node: Q1.4.545553 +Node: Q1.4.645857 +Node: Q1.4.746865 +Node: Installation47990 +Node: Q2.0.150454 +Node: Q2.0.251327 +Node: Q2.0.358530 +Node: Q2.0.459828 +Node: Q2.0.560420 +Node: Q2.0.660788 +Node: Q2.0.761169 +Node: Q2.0.861550 +Node: Q2.0.963128 +Node: Q2.0.1064566 +Node: Q2.0.1165410 +Node: Q2.0.1266351 +Node: Q2.0.1367874 +Node: Q2.0.1468532 +Node: Q2.1.169100 +Node: Q2.1.271842 +Node: Q2.1.373019 +Node: Q2.1.474312 +Node: Q2.1.575111 +Node: Q2.1.675473 +Node: Q2.1.775950 +Node: Q2.1.876303 +Node: Q2.1.977819 +Node: Q2.1.1078241 +Node: Q2.1.1178998 +Node: Q2.1.1279863 +Node: Q2.1.1380818 +Node: Q2.1.1481849 +Node: Q2.1.1582960 +Node: Q2.1.1688918 +Node: Q2.1.1789612 +Node: Q2.1.1890209 +Node: Q2.1.1992006 +Node: Q2.1.2092536 +Node: Q2.1.2192918 +Node: Q2.1.2293208 +Node: Q2.1.2394505 +Node: Q2.1.2495173 +Node: Customization95703 +Node: Q3.0.1100590 +Node: Q3.0.2101296 +Node: Q3.0.3101860 +Node: Q3.0.4102277 +Node: Q3.0.5103110 +Node: Q3.0.6103891 +Node: Q3.0.7104471 +Node: Q3.0.8105135 +Node: Q3.0.9105981 +Node: Q3.1.1106542 +Node: Q3.1.2107279 +Node: Q3.1.3107710 +Node: Q3.1.4108295 +Node: Q3.1.5108831 +Node: Q3.1.6109215 +Node: Q3.1.7109896 +Node: Q3.1.8112120 +Node: Q3.2.1112662 +Node: Q3.2.2114070 +Node: Q3.2.3114869 +Node: Q3.2.4115471 +Node: Q3.2.5116505 +Node: Q3.2.6116972 +Node: Q3.3.1117934 +Node: Q3.3.2118327 +Node: Q3.3.3118958 +Node: Q3.3.4119339 +Node: Q3.3.5120433 +Node: Q3.4.1121927 +Node: Q3.4.2122570 +Node: Q3.5.1123082 +Node: Q3.5.2124536 +Node: Q3.5.3124954 +Node: Q3.5.4125794 +Node: Q3.5.5126626 +Node: Q3.5.6127766 +Node: Q3.5.7128756 +Node: Q3.5.8130108 +Node: Q3.5.9130855 +Node: Q3.5.10131635 +Node: Q3.5.11132271 +Node: Q3.6.1132824 +Node: Q3.6.2133564 +Node: Q3.6.3133992 +Node: Q3.7.1134492 +Node: Q3.7.2135380 +Node: Q3.7.3136039 +Node: Q3.7.4136461 +Node: Q3.7.5136804 +Node: Q3.7.6137272 +Node: Q3.7.7137987 +Node: Q3.7.8139007 +Node: Q3.8.1139426 +Node: Q3.8.2139886 +Node: Q3.8.3140349 +Node: Q3.8.4140955 +Node: Q3.8.5141674 +Node: Q3.9.1142459 +Node: Q3.9.2143399 +Node: Q3.9.3143997 +Node: Q3.9.4144659 +Node: Q3.10.1145538 +Node: Q3.10.2146356 +Node: Q3.10.3147137 +Node: Q3.10.4147865 +Node: Q3.10.5148248 +Node: Subsystems149258 +Node: Q4.0.1151743 +Node: Q4.0.2152268 +Node: Q4.0.3152826 +Node: Q4.0.4153147 +Node: Q4.0.5153389 +Node: Q4.0.6153620 +Node: Q4.0.7154201 +Node: Q4.0.8154526 +Node: Q4.0.9155753 +Node: Q4.0.10157791 +Node: Q4.0.11158245 +Node: Q4.0.12159095 +Node: Q4.1.1160068 +Node: Q4.1.2160471 +Node: Q4.1.3160798 +Node: Q4.2.1161107 +Node: Q4.2.2161737 +Node: Q4.2.3161977 +Node: Q4.2.4162521 +Node: Q4.3.1163174 +Node: Q4.3.2163758 +Node: Q4.3.3165239 +Node: Q4.3.4165511 +Node: Q4.3.5166188 +Node: Q4.4.1166816 +Node: Q4.4.2168302 +Node: Q4.5.1169506 +Node: Q4.6.1170275 +Node: Q4.7.1175535 +Node: Q4.7.2176490 +Node: Q4.7.3176787 +Node: Q4.7.4177133 +Node: Q4.7.5178017 +Node: Q4.7.6179659 +Node: Miscellaneous179948 +Node: Q5.0.1183368 +Node: Q5.0.2184102 +Node: Q5.0.3184956 +Node: Q5.0.4185658 +Node: Q5.0.5186597 +Node: Q5.0.6188577 +Node: Q5.0.7189234 +Node: Q5.0.8189839 +Node: Q5.0.9190358 +Node: Q5.0.10190872 +Node: Q5.0.11191120 +Node: Q5.0.12191681 +Node: Q5.0.13192598 +Node: Q5.0.14193282 +Node: Q5.0.15194047 +Node: Q5.0.16194344 +Node: Q5.0.17194856 +Node: Q5.0.18195121 +Node: Q5.0.19195647 +Node: Q5.0.20196071 +Node: Q5.1.1196986 +Node: Q5.1.2199055 +Node: Q5.1.3199791 +Node: Q5.1.4203185 +Node: Q5.1.5203720 +Node: Q5.1.6205814 +Node: Q5.1.7207203 +Node: Q5.1.8208804 +Node: Q5.1.9209356 +Node: Q5.1.10210241 +Node: Q5.1.11211372 +Node: Q5.2.1211921 +Node: Q5.2.2212492 +Node: Q5.2.3212909 +Node: Q5.2.4213144 +Node: Q5.3.1214054 +Node: Q5.3.2215275 +Node: Q5.3.3216051 +Node: Q5.3.4216535 +Node: Q5.3.5217202 +Node: Q5.3.6218071 +Node: Q5.3.7218316 +Node: Q5.3.8220506 +Node: Q5.3.9220753 +Node: Q5.3.10221706 +Node: Q5.3.11223790 +Node: Q5.3.12225339 +Node: MS Windows226613 +Node: Q6.0.1227944 +Node: Q6.0.2228691 +Node: Q6.0.3229156 +Node: Q6.0.4229436 +Node: Q6.1.1231717 +Node: Q6.1.2232588 +Node: Q6.1.3232869 +Node: Q6.1.4233151 +Node: Q6.1.5233529 +Node: Q6.1.6234361 +Node: Q6.2.1234945 +Node: Q6.2.2235846 +Node: Q6.2.3236247 +Node: Q6.3.1236536 +Node: Q6.3.2237630 +Node: Q6.3.3240811 +Node: Current Events241065 +Node: Q7.0.1241719 +Node: Q7.0.2242358 +Node: Q7.0.3243432 +Node: Q7.0.4243660  End Tag Table diff --git a/info/xemacs-faq.info-1 b/info/xemacs-faq.info-1 index 6d7aef0..ccd10c3 100644 --- a/info/xemacs-faq.info-1 +++ b/info/xemacs-faq.info-1 @@ -131,6 +131,7 @@ Trouble Shooting: * Q2.1.21:: Every so often the XEmacs frame freezes. * Q2.1.22:: XEmacs seems to take a really long time to do some things. * Q2.1.23:: Movemail on Linux does not work for XEmacs 19.15 and later. +* Q2.1.24:: XEmacs won't start without network. (NEW) Customization and Options @@ -375,24 +376,21 @@ wondering what to do next. It is also useful as a reference to available resources. The previous maintainer of the FAQ was Anthony Rossini -, who started it, after getting tired of hearing -JWZ complain about repeatedly having to answer questions. Ben Wing - and Chuck Thompson , the principal -authors of XEmacs, then took over and Ben did a massive update -reorganizing the whole thing. At which point Anthony took back over, -but then had to give it up again. Some of the other contributors to -this FAQ are listed later in this document. +, who started it, after getting tired +of hearing JWZ complain about repeatedly having to answer questions. +Ben Wing and Chuck Thompson , the +principal authors of XEmacs, then took over and Ben did a massive +update reorganizing the whole thing. At which point Anthony took back +over, but then had to give it up again. Some of the other contributors +to this FAQ are listed later in this document. The previous version was converted to hypertext format, and edited by Steven L. Baur . It was converted back to texinfo by -Hrvoje Niksic . - - The FAQ was then maintained by Andreas Kaempf , -who passed it on to Christian Nyb/o , the current FAQ -maintainer. +Hrvoje Niksic . The FAQ was then maintained by +Andreas Kaempf , who passed it on to ChristianNyb/o. If you notice any errors or items which should be added or amended to -this FAQ please send email to Christian Nyb/o . Include +this FAQ please send email to Sandra Wambold . Include `XEmacs FAQ' on the Subject: line. * Menu: @@ -660,8 +658,10 @@ Q1.1.1: What is the FAQ editorial policy? ----------------------------------------- The FAQ is actively maintained and modified regularly. All links -should be up to date. All submissions are welcome. E-mail submissions -to XEmacs FAQ maintainers . +should be up to date. Unfortunately, some of the information is out of +date - a situation which the FAQ maintainer is working on. All +submissions are welcome, please e-mail submissions to XEmacs FAQ +maintainers . Please make sure that `XEmacs FAQ' appears on the Subject: line. If you think you have a better way of answering a question, or think a diff --git a/info/xemacs-faq.info-2 b/info/xemacs-faq.info-2 index 2ea10ef..21af251 100644 --- a/info/xemacs-faq.info-2 +++ b/info/xemacs-faq.info-2 @@ -57,6 +57,7 @@ Trouble Shooting: * Q2.1.21:: Every so often the XEmacs frame freezes. * Q2.1.22:: XEmacs seems to take a really long time to do some things. * Q2.1.23:: Movemail on Linux does not work for XEmacs 19.15 and later. +* Q2.1.24:: XEmacs won't start without network. (NEW)  File: xemacs-faq.info, Node: Q2.0.1, Next: Q2.0.2, Prev: Installation, Up: Installation @@ -1189,7 +1190,7 @@ Q2.1.22: XEmacs seems to take a really long time to do some things or in some other strange cases.  -File: xemacs-faq.info, Node: Q2.1.23, Prev: Q2.1.22, Up: Installation +File: xemacs-faq.info, Node: Q2.1.23, Next: Q2.1.24, Prev: Q2.1.22, Up: Installation Q2.1.23: Movemail on Linux does not work for XEmacs 19.15 and later. --------------------------------------------------------------------- @@ -1206,3 +1207,19 @@ and 20.x. I am using Linux. #define MAIL_USE_FLOCK + +File: xemacs-faq.info, Node: Q2.1.24, Prev: Q2.1.23, Up: Installation + +Q2.1.24: XEmacs won't start without network. (NEW) +--------------------------------------------------- + + Q2.1.23: Movemail on Linux does not work for XEmacs 19.15 and later. + + If XEmacs starts when you're on the network, but fails when you're +not on the network, you may be missing a "localhost" entry in your +`/etc/hosts' file. The file should contain an entry like: + + 127.0.0.1 localhost + + Add that line, and XEmacs will be happy. + diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index ae4dbc1..603aea1 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,3 +1,19 @@ +1999-12-24 Martin Buchholz + + * XEmacs 21.2.25 is released. + +1999-12-21 Martin Buchholz + + * fakemail.c (cuserid): ((expr)) ==> (expr) + + * fakemail.c (xmalloc): ANSIfy. + +1999-12-14 Martin Buchholz + + * config.values.sh: Only update config.values.in if changed. + No external dependencies except perl. + No temporary files. + 1999-12-14 Martin Buchholz * XEmacs 21.2.24 is released. diff --git a/lib-src/config.values.sh b/lib-src/config.values.sh index fc22128..f723043 100644 --- a/lib-src/config.values.sh +++ b/lib-src/config.values.sh @@ -1,4 +1,7 @@ -#! /bin/sh +: #-*- Perl -*- +eval 'exec perl -w -S $0 ${1+"$@"}' # Portability kludge + if 0; + # config.values.sh --- create config.values.in from ../configure # Author: Martin Buchholz @@ -35,17 +38,27 @@ ## by an XEmacs Maintainer (consider yourself so blessed, if you are ## actually reading this commentary). ## -if test ! -r ./configure; then - cd .. - if test ! -r ./configure; then - echo "Can't find configure!"; - exit 1; - fi -fi - -exec < ./configure > "lib-src/config.values.in" -cat <<\EOF -;;; Do not edit this file! + +if (! -r "./configure") { + chdir ".." or die "Can't chdir: $!"; + if (! -r "./configure") { + die "Can't find configure!"; + } +} + +sub FileContents { + local $/ = undef; # Slurp mode + open (FILE, "< $_[0]") or die "$_[0]: $!"; + my $contents = ; + close FILE or die "$_[0]: $!"; + return $contents; +} + +my $configure_contents = FileContents "./configure"; +my $cvi_contents = FileContents "lib-src/config.values.in"; + +my $new_cvi_contents = +";;; Do not edit this file! ;;; This file was automatically generated, by the config.values.sh script, ;;; from configure, which was itself automatically generated from configure.in. ;;; @@ -62,15 +75,27 @@ cat <<\EOF ;;; Variables defined in configure by AC_SUBST follow: ;;; (These are used in Makefiles) -EOF -sed -n '/^s%@\([A-Za-z_][A-Za-z_]*\)@%\$\1%g$/ { - s/^s%@\([A-Za-z_][A-Za-z_]*\)@%\$\1%g$/\1 "@\1@"/ - p -}' | \ -sort -u -cat <<\EOF +"; + +my %done; +for my $var (sort { $a cmp $b } + $configure_contents =~ + /^s\%\@([A-Za-z0-9_]+)\@\%\$[A-Za-z0-9_]+\%g/mg) { + $new_cvi_contents .= "$var \"\@$var\@\"\n" unless exists $done{$var}; + $done{$var} = 1; +} +$new_cvi_contents .= " ;;; Variables defined in configure by AC_DEFINE and AC_DEFINE_UNQUOTED follow: ;;; (These are used in C code) -EOF +"; + +if ($cvi_contents ne $new_cvi_contents) { + unlink "lib-src/config.values.in"; + open (CVI, "> lib-src/config.values.in") + or die "lib-src/config.values.in: $!"; + print CVI $new_cvi_contents; + close CVI + or die "lib-src/config.values.in: $!"; +} diff --git a/lib-src/fakemail.c b/lib-src/fakemail.c index 5397d7c..d3e4786 100644 --- a/lib-src/fakemail.c +++ b/lib-src/fakemail.c @@ -162,7 +162,7 @@ extern struct passwd *getpwuid (); extern unsigned short geteuid (); static struct passwd *my_entry; #define cuserid(s) \ -(my_entry = getpwuid (((int) geteuid ())), \ +(my_entry = getpwuid ((int) geteuid ()), \ my_entry->pw_name) #endif @@ -193,7 +193,7 @@ fatal (CONST char *s1, CONST char *s2) static char * xmalloc (size_t size) { - char *result = malloc (((unsigned) size)); + char *result = (char *) malloc (size); if (result == ((char *) NULL)) fatal ("virtual memory exhausted", (char *) 0); return result; diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 610a833..681cb60 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,60 @@ +1999-12-24 Martin Buchholz + + * XEmacs 21.2.25 is released. + +1999-12-24 Yoshiki Hayashi + + * hyper-apropos.el (hyper-apropos): Toggle + hyper-apropos-programming-apropos correctly. + Set REGEXP when user accepts default value. + +1999-12-22 Yoshiki Hayashi + + * minibuf.el (read-from-minibuffer): Bind minibuffer-default. + (read-file-name-2): Use DEFAULT argument of read-from-minibuffer. + +1999-12-22 Yoshiki Hayashi + + * mule/mule-category.el (undefined-category-designator): + Return char instead of character. Search for undefined one. + (describe-category): Use with-displaying-help-buffer. + +1999-12-21 Martin Buchholz + + * byte-optimize.el (byte-optimize-plus): + Optimize (+ 1) to 1 instead of (1+ nil). + + * files.el (basic-save-buffer): Rewrite for clarity. Use (char-before). + + * byte-optimize.el (byte-compile-butlast): Remove. Use butlast instead. + + * byte-optimize.el (byte-optimize-char-before): New function. + Remove performance penalty for using (char-before) instead of (char-after). + +1999-12-20 Yoshiki Hayashi + + * mule/mule-category.el (char-category-list): Return character + instead of integer. + +1999-12-17 Yoshiki Hayashi + + * minibuf.el (read-buffer): Check default is buffer object. + +1999-11-25 Andy Piper + + * cus-edit.el (custom-buffer-create-buttons): Use native widgets + for buttons. + +1999-12-16 Andreas Jaeger + + * package-get.el (package-get-maybe-save-index): Fixed typo. + Patch by Jeff Miller . + +1999-12-13 Charles G Waldman + + * gnuserv.el (gnuserv-process-filter): don't call + gnuserv-write-to-client when gnuserv-current-client is nil + 1999-12-14 Martin Buchholz * XEmacs 21.2.24 is released. @@ -28,7 +85,7 @@ completing-read returns. (describe-variable): Ditto. -1999-11-16 Adrian Aichner +1999-11-16 Adrian Aichner * hyper-apropos.el (hyper-apropos-this-symbol): Handle `hyper-apropos-help-mode' here to find symbol to customize @@ -199,7 +256,7 @@ * files.el (recover-file): Don't use ls under windows for revert buffer. -1999-09-25 Adrian Aichner +1999-09-25 Adrian Aichner * package-get.el (package-get-download-menu): Make menu really toggle download sites. @@ -1935,7 +1992,7 @@ Installation.el needs to be loaded before `dump-paths', otherwise the dumping process won't find it. -1999-03-13 Adrian Aichner +1999-03-13 Adrian Aichner * dumped-lisp.el (preloaded-file-list): Load Installation.el after subr so that we can use `replace-in-string' in Installation.el to @@ -2133,7 +2190,7 @@ * x-faces.el (x-init-face-from-resources): Only set fonts in the 'x locale. -1999-03-04 Adrian Aichner +1999-03-04 Adrian Aichner * package-ui.el (pui-install-selected-packages): Don't throw on `package-admin-delete-binary-package' returning nil since it's @@ -2208,7 +2265,7 @@ * dumped-lisp.el (preloaded-file-list): Core mule files moved out of mule-base into lisp/mule. -1999-02-10 Adrian Aichner +1999-02-10 Adrian Aichner * process.el (exec-to-string): Use `shell-command-switch' in place of hard-wired "-c" (for WindowsNT). @@ -2264,7 +2321,7 @@ * about.el (about-url-alist): Update my entry. (xemacs-hackers): Ditto. -1999-01-14 Adrian Aichner +1999-01-14 Adrian Aichner * buffer.el (switch-to-buffer): Fixing documentation. * minibuf.el (minibuffer-completion-table): ditto. @@ -2653,7 +2710,7 @@ * subr.el (buffer-substring-no-properties): Comment out. -1998-11-07 Adrian Aichner +1998-11-07 Adrian Aichner * msw-faces.el (mswindows-find-smaller-font): Turning font names into font instances first, like `x-frob-font-size' does. @@ -3493,7 +3550,7 @@ * ldap.el (ldap-host-parameters-alist): New name of `ldap-host-parameters-plist' -1998-06-26 Adrian Aichner +1998-06-26 Adrian Aichner * package-get.el: Using (require 'package-get-base), now that it provides itself. Consequently removed all instances of (load @@ -3580,7 +3637,7 @@ (font-lock-match-c++-style-declaration-item-and-skip-to-next): Let declaration items contain non-word symbol characters. -1998-06-15 Adrian Aichner +1998-06-15 Adrian Aichner * package-get.el (package-get-package-provider): Added autoload cookie. Loading "package-get-base.el" in ALL functions that use @@ -4015,7 +4072,7 @@ Wed May 27, 1998 Darryl Okahata * dumped-lisp.el (preloaded-file-list): Added msw-mouse.el -1998-05-17 Adrian Aichner +1998-05-17 Adrian Aichner * itimer.el (activate-itimer): Fixed usage of integers as argument to `concat'. diff --git a/lisp/build-report.el b/lisp/build-report.el index 5e33dc5..66ef27f 100644 --- a/lisp/build-report.el +++ b/lisp/build-report.el @@ -2,8 +2,8 @@ ;; Copyright (C) 1997 Adrian Aichner -;; Author: Adrian Aichner, Teradyne GmbH Munich -;; Date: Sun., Apr. 20, 1997. +;; Author: Adrian Aichner +;; Date: Sun., Apr. 20, 1997, 1998, 1999. ;; Version: 1.35 ;; Keywords: internal diff --git a/lisp/byte-optimize.el b/lisp/byte-optimize.el index 9d34537..4c57efb 100644 --- a/lisp/byte-optimize.el +++ b/lisp/byte-optimize.el @@ -699,31 +699,27 @@ (setq form (byte-optimize-delay-constants-math form 1 '+)) (if (memq 0 form) (setq form (delq 0 (copy-sequence form)))) ;;(setq form (byte-optimize-associative-two-args-math form)) - (cond ((null (cdr form)) - (condition-case () - (eval form) - (error form))) - - ;; `add1' and `sub1' are a marginally fewer instructions - ;; than `plus' and `minus', so use them when possible. - ((and (null (nthcdr 3 form)) - (eq (nth 2 form) 1)) - (list '1+ (nth 1 form))) ; (+ x 1) --> (1+ x) - ((and (null (nthcdr 3 form)) - (eq (nth 1 form) 1)) - (list '1+ (nth 2 form))) ; (+ 1 x) --> (1+ x) - ((and (null (nthcdr 3 form)) - (eq (nth 2 form) -1)) - (list '1- (nth 1 form))) ; (+ x -1) --> (1- x) - ((and (null (nthcdr 3 form)) - (eq (nth 1 form) -1)) - (list '1- (nth 2 form))) ; (+ -1 x) --> (1- x) - -;;; It is not safe to delete the function entirely -;;; (actually, it would be safe if we know the sole arg -;;; is not a marker). -;; ((null (cdr (cdr form))) (nth 1 form)) - (t form))) + (case (length (cdr form)) + ((0) + (condition-case () + (eval form) + (error form))) + + ;; `add1' and `sub1' are a marginally fewer instructions + ;; than `plus' and `minus', so use them when possible. + ((2) + (cond + ((eq (nth 1 form) 1) `(1+ ,(nth 2 form))) ; (+ 1 x) --> (1+ x) + ((eq (nth 2 form) 1) `(1+ ,(nth 1 form))) ; (+ x 1) --> (1+ x) + ((eq (nth 1 form) -1) `(1- ,(nth 2 form))) ; (+ -1 x) --> (1- x) + ((eq (nth 2 form) -1) `(1- ,(nth 1 form))) ; (+ x -1) --> (1- x) + (t form))) + + ;; It is not safe to delete the function entirely + ;; (actually, it would be safe if we know the sole arg + ;; is not a marker). + ;; ((null (cdr (cdr form))) (nth 1 form)) + (t form))) (defun byte-optimize-minus (form) ;; Put constants at the end, except the last constant. @@ -784,9 +780,6 @@ (setcar form (list '+ (car form) (car form))))) (form)))))) -(defsubst byte-compile-butlast (form) - (nreverse (cdr (reverse form)))) - (defun byte-optimize-divide (form) (setq form (byte-optimize-delay-constants-math form 2 '*)) (let ((last (car (reverse (cdr (cdr form)))))) @@ -799,11 +792,11 @@ (error nil))) (setq form (list 'progn (/ (nth 1 form) last))))) ((= last 1) - (setq form (byte-compile-butlast form))) + (setq form (butlast form))) ((numberp (nth 1 form)) (setq form (cons (car form) (cons (/ (nth 1 form) last) - (byte-compile-butlast (cdr (cdr form))))) + (butlast (cdr (cdr form))))) last nil)))) (cond ;;; ((null (cdr (cdr form))) @@ -812,7 +805,7 @@ (append '(progn) (cdr (cdr form)) '(0))) ((eq last -1) (list '- (if (nthcdr 3 form) - (byte-compile-butlast form) + (butlast form) (nth 1 form)))) (form)))) @@ -1033,6 +1026,12 @@ (put 'if 'byte-optimizer 'byte-optimize-if) (put 'while 'byte-optimizer 'byte-optimize-while) +;; Remove any reason for avoiding `char-before'. +(defun byte-optimize-char-before (form) + `(char-after (1- ,(or (nth 1 form) '(point))) ,@(cdr (cdr form)))) + +(put 'char-before 'byte-optimizer 'byte-optimize-char-before) + ;; byte-compile-negation-optimizer lives in bytecomp.el ;(put '/= 'byte-optimizer 'byte-compile-negation-optimizer) (put 'atom 'byte-optimizer 'byte-compile-negation-optimizer) diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index 897dd49..983bace 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el @@ -1033,7 +1033,6 @@ This works by calling the function specified by (widget-insert "\nOperate on everything in this buffer:\n ") (widget-create 'push-button :tag "Set" - :tag-glyph '("set-up" "set-down") :help-echo "\ Make your editing in this buffer take effect for this session" :action (lambda (widget &optional event) @@ -1041,7 +1040,6 @@ Make your editing in this buffer take effect for this session" (widget-insert " ") (widget-create 'push-button :tag "Save" - :tag-glyph '("save-up" "save-down") :help-echo "\ Make your editing in this buffer take effect for future Emacs sessions" :action (lambda (widget &optional event) @@ -1077,7 +1075,6 @@ Reset all values in this buffer to their standard settings" (widget-insert " ") (widget-create 'push-button :tag "Done" - :tag-glyph '("done-up" "done-down") :help-echo "Remove the buffer" :action (lambda (widget &optional event) (Custom-buffer-done))) diff --git a/lisp/files.el b/lisp/files.el index e3760a7..e643925 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -2213,19 +2213,21 @@ After saving the buffer, run `after-save-hook'." (error "Save not confirmed")) (save-restriction (widen) - (and (> (point-max) 1) - (/= (char-after (1- (point-max))) ?\n) - (not (and (eq selective-display t) - (= (char-after (1- (point-max))) ?\r))) - (or (eq require-final-newline t) - (and require-final-newline - (y-or-n-p - (format "Buffer %s does not end in newline. Add one? " - (buffer-name))))) - (save-excursion - (goto-char (point-max)) - (insert ?\n))) - ;; + + ;; Add final newline if required. See `require-final-newline'. + (when (and (not (eq (char-before (point-max)) ?\n)) ; common case + (char-before (point-max)) ; empty buffer? + (not (and (eq selective-display t) + (eq (char-before (point-max)) ?\r))) + (or (eq require-final-newline t) + (and require-final-newline + (y-or-n-p + (format "Buffer %s does not end in newline. Add one? " + (buffer-name)))))) + (save-excursion + (goto-char (point-max)) + (insert ?\n))) + ;; Run the write-file-hooks until one returns non-null. ;; Bind after-save-hook to nil while running the ;; write-file-hooks so that if this function is called diff --git a/lisp/gnuserv.el b/lisp/gnuserv.el index 8da403c..04bf42a 100644 --- a/lisp/gnuserv.el +++ b/lisp/gnuserv.el @@ -348,11 +348,13 @@ visual screen. Totally visible frames are preferred. If none found, return nil ;; In case of an error, write the description to the ;; client, and then signal it. (error (setq gnuserv-string "") - (gnuserv-write-to-client gnuserv-current-client oops) + (when gnuserv-current-client + (gnuserv-write-to-client gnuserv-current-client oops)) (setq gnuserv-current-client nil) (signal (car oops) (cdr oops))) (quit (setq gnuserv-string "") - (gnuserv-write-to-client gnuserv-current-client oops) + (when gnuserv-current-client + (gnuserv-write-to-client gnuserv-current-client oops)) (setq gnuserv-current-client nil) (signal 'quit nil))) (setq gnuserv-string ""))) diff --git a/lisp/hyper-apropos.el b/lisp/hyper-apropos.el index af739d8..dd3397a 100644 --- a/lisp/hyper-apropos.el +++ b/lisp/hyper-apropos.el @@ -243,16 +243,22 @@ See also `hyper-apropos-mode'." (setq hyper-apropos-prev-wconfig (current-window-configuration))) (if (string= "" regexp) (if (get-buffer hyper-apropos-apropos-buf) - (if toggle-apropos - (hyper-apropos-toggle-programming-flag) - (message "Using last search results")) + (progn + (setq regexp hyper-apropos-last-regexp) + (if toggle-apropos + (hyper-apropos-toggle-programming-flag) + (message "Using last search results"))) (error "Be more specific...")) (set-buffer (get-buffer-create hyper-apropos-apropos-buf)) (setq buffer-read-only nil) (erase-buffer) (if toggle-apropos - (set (make-local-variable 'hyper-apropos-programming-apropos) - (not (default-value 'hyper-apropos-programming-apropos)))) + (if (local-variable-p 'hyper-apropos-programming-apropos + (current-buffer)) + (setq hyper-apropos-programming-apropos + (not hyper-apropos-programming-apropos)) + (set (make-local-variable 'hyper-apropos-programming-apropos) + (not (default-value 'hyper-apropos-programming-apropos))))) (let ((flist (apropos-internal regexp (if hyper-apropos-programming-apropos #'fboundp diff --git a/lisp/minibuf.el b/lisp/minibuf.el index 7b83a3c..9f26bc5 100644 --- a/lisp/minibuf.el +++ b/lisp/minibuf.el @@ -415,7 +415,8 @@ See also the variable completion-highlight-first-word-only for control over ;; `M-x doctor' makes history a local variable, and thus ;; our binding above is buffer-local and doesn't apply ;; once we switch buffers!!!! We demand better scope! - (_history_ history)) + (_history_ history) + (minibuffer-default default)) (unwind-protect (progn (set-buffer (reset-buffer buffer)) @@ -1445,7 +1446,9 @@ only existing buffer names are allowed." (while (progn (setq result (completing-read prompt alist nil require-match nil 'buffer-history - (if default (buffer-name default)))) + (if (bufferp default) + (buffer-name default) + default))) (cond ((not (equal result "")) nil) ((not require-match) @@ -1548,8 +1551,9 @@ only existing buffer names are allowed." read-file-name-map read-file-name-must-match-map) nil - history)) - )) + history + nil + default)))) ;;; ;; Kludge! Put "/foo/bar" on history rather than "/default//foo/bar" ;;; (let ((hist (cond ((not history) 'minibuffer-history) ;;; ((consp history) (car history)) diff --git a/lisp/mule/mule-category.el b/lisp/mule/mule-category.el index 31bc242..160c91d 100644 --- a/lisp/mule/mule-category.el +++ b/lisp/mule/mule-category.el @@ -69,8 +69,8 @@ Categories are given by their designators." "Return an undefined category designator, or nil if there are none." (let ((a 32) found) (while (and (< a 127) (not found)) - (if (gethash a defined-category-hashtable) - (setq found a)) + (unless (gethash a defined-category-hashtable) + (setq found (make-char 'ascii a))) (setq a (1+ a))) found)) @@ -117,7 +117,7 @@ The categories are given by their designators." (let ((a 32) list) (while (< a 127) (if (= 1 (aref vec (- a 32))) - (setq list (cons a list))) + (setq list (cons (make-char 'ascii a) list))) (setq a (1+ a))) (nreverse list))))) @@ -137,8 +137,9 @@ The categories are given by their designators." "Describe the category specifications in the category table. The descriptions are inserted in a buffer, which is then displayed." (interactive) - (with-output-to-temp-buffer "*Help*" - (describe-category-table (category-table) standard-output))) + (with-displaying-help-buffer + (lambda () + (describe-category-table (category-table) standard-output)))) (defun describe-category-table (table stream) (let (first-char diff --git a/lisp/package-get.el b/lisp/package-get.el index ab3654e..c308d83 100644 --- a/lisp/package-get.el +++ b/lisp/package-get.el @@ -371,7 +371,7 @@ if different." (md5 (current-buffer))))) (unless (and location (file-writable-p location)) (setq location package-get-user-index-filename)) - (when (y-or-n-p (concat "Update package index in" location "? ")) + (when (y-or-n-p (concat "Update package index in " location "? ")) (write-file location)))))) diff --git a/lwlib/ChangeLog b/lwlib/ChangeLog index 545f2c0..77bcc4c 100644 --- a/lwlib/ChangeLog +++ b/lwlib/ChangeLog @@ -1,3 +1,39 @@ +1999-12-24 Martin Buchholz + + * XEmacs 21.2.25 is released. + +1999-12-23 Andy Piper + + * lwlib.c (lw_copy_widget_value_args): don't create empty + widget_args just because someone might use them later. This makes + all widgets look like they've changed. + +1999-12-22 Andy Piper + + * xlwtabs.c: Fix for X11R5 from Damon Lipparelli + . + +1999-12-21 Martin Buchholz + + * xlwscrollbar.c (seg_pixel_sizes): ((expr)) ==> (expr) + +1999-12-12 Daniel Pittman + + * lwlib-Xaw.c: + * xlwcheckbox.c: + * xlwgauge.h: + * xlwgaugeP.h: + * xlwradio.c: + * xlwradio.h: + * xlwradioP.h: + Clean up Athena widget support: + - Athena headers now use dynamic include paths. + +1999-12-08 Andy Piper + + * xlwtabs.c: sync with Tabs 2.2. + * xlwtabP.h: ditto. + 1999-12-14 Martin Buchholz * XEmacs 21.2.24 is released. diff --git a/lwlib/config.h.in b/lwlib/config.h.in index 84c6efe..d94cb09 100644 --- a/lwlib/config.h.in +++ b/lwlib/config.h.in @@ -29,4 +29,12 @@ Boston, MA 02111-1307, USA. */ #undef NEED_ATHENA #undef NEED_LUCID +/* The path to the Athena widgets - the usual value is `X11/Xaw' */ +#undef ATHENA_H_PATH + +/* For use in #include statements. This extra level of macro indirection + is necessary because you can't use macros directly within <> or "" */ +#define ATHENA_INCLUDE(header_file) + + #endif /* _LWLIB_CONFIG_H_ */ diff --git a/lwlib/lwlib-Xaw.c b/lwlib/lwlib-Xaw.c index b19dd8c..77aeb48 100644 --- a/lwlib/lwlib-Xaw.c +++ b/lwlib/lwlib-Xaw.c @@ -33,21 +33,21 @@ Boston, MA 02111-1307, USA. */ #include #ifdef LWLIB_SCROLLBARS_ATHENA -#include +#include ATHENA_INCLUDE(Scrollbar.h) #endif #ifdef LWLIB_DIALOGS_ATHENA -#include -#include -#include -#include +#include ATHENA_INCLUDE(Dialog.h) +#include ATHENA_INCLUDE(Form.h) +#include ATHENA_INCLUDE(Command.h) +#include ATHENA_INCLUDE(Label.h) #endif #ifdef LWLIB_WIDGETS_ATHENA -#include +#include ATHENA_INCLUDE(Toggle.h) #include "xlwradio.h" #include "xlwcheckbox.h" #include "xlwgauge.h" #ifndef NEED_MOTIF -#include +#include ATHENA_INCLUDE(AsciiText.h) #endif #endif #include @@ -126,8 +126,8 @@ void xaw_update_one_widget (widget_instance *instance, Widget widget, widget_value *val, Boolean deep_p) { - if (val->nargs) - XtSetValues (widget, val->args, val->nargs); + if (val->args && val->args->nargs) + XtSetValues (widget, val->args->args, val->args->nargs); if (0) ; @@ -146,7 +146,7 @@ xaw_update_one_widget (widget_instance *instance, Widget widget, } #endif /* LWLIB_DIALOGS_ATHENA */ #ifdef LWLIB_WIDGETS_ATHENA - else if (XtClass (widget) == labelWidgetClass) + else if (XtIsSubclass (widget, labelWidgetClass)) { Arg al [1]; XtSetArg (al [0], XtNlabel, val->value); diff --git a/lwlib/lwlib.c b/lwlib/lwlib.c index 69a5c04..f55f092 100644 --- a/lwlib/lwlib.c +++ b/lwlib/lwlib.c @@ -40,6 +40,9 @@ Boston, MA 02111-1307, USA. */ #endif #ifdef NEED_MOTIF #include "lwlib-Xm.h" +#ifdef LWLIB_WIDGETS_MOTIF +#include +#endif #endif #ifdef NEED_ATHENA #include "lwlib-Xaw.h" @@ -67,8 +70,8 @@ int lw_menu_accelerate = False; /* Forward declarations */ -static void -instantiate_widget_instance (widget_instance *instance); +static void instantiate_widget_instance (widget_instance *instance); +static void free_widget_value_args (widget_value* wv); /* utility functions for widget_instance and widget_info */ @@ -153,14 +156,9 @@ free_widget_value_contents (widget_value *wv) free_widget_value_tree (wv->contents); wv->contents = (widget_value *) 0xDEADBEEF; } - if (wv->args && wv->nargs) - { - if (wv->free_args) - free (wv->args); - wv->args = (ArgList) 0xDEADBEEF; - wv->nargs = 0; - wv->free_args = 0; - } + + free_widget_value_args (wv); + if (wv->next) { free_widget_value_tree (wv->next); @@ -237,6 +235,41 @@ merge_scrollbar_values (widget_value *old, widget_value *new) #endif /* NEED_SCROLLBARS */ +#ifdef HAVE_WIDGETS +/* + * Return true if old->args was not equivalent + * to new->args. + */ +static Boolean +merge_widget_value_args (widget_value *old, widget_value *new) +{ + Boolean changed = False; + + if (new->args && !old->args) + { + lw_copy_widget_value_args (new, old); + changed = True; + } + /* Generally we don't want to lose values that are already in the + widget. */ + else if (!new->args && old->args) + { + lw_copy_widget_value_args (old, new); + changed = True; + } + else if (new->args && old->args) + { + /* #### Do something more sensible here than just copying the + new values (like actually merging the values). */ + free_widget_value_args (old); + lw_copy_widget_value_args (new, old); + changed = True; + } + + return changed; +} +#endif /* HAVE_WIDGETS */ + /* Make a complete copy of a widget_value tree. Store CHANGE into the widget_value tree's `change' field. */ @@ -269,13 +302,8 @@ copy_widget_value_tree (widget_value *val, change_type change) copy->next = copy_widget_value_tree (val->next, change); copy->toolkit_data = NULL; copy->free_toolkit_data = False; - if (val->nargs) - { - copy->args = (ArgList)malloc (sizeof (Arg) * val->nargs); - memcpy (copy->args, val->args, sizeof(Arg) * val->nargs); - copy->nargs = val->nargs; - copy->free_args = True; - } + + lw_copy_widget_value_args (val, copy); #ifdef NEED_SCROLLBARS copy_scrollbar_values (val, copy); #endif @@ -590,6 +618,14 @@ merge_widget_value (widget_value *val1, widget_value *val2, int level) change = max (change, INVISIBLE_CHANGE); val1->call_data = val2->call_data; } +#ifdef HAVE_WIDGETS + if (merge_widget_value_args (val1, val2)) + { + EXPLAIN (val1->name, change, VISIBLE_CHANGE, "widget change", 0, 0); + change = max (change, VISIBLE_CHANGE); + } +#endif + #ifdef NEED_SCROLLBARS if (merge_scrollbar_values (val1, val2)) { @@ -1317,13 +1353,67 @@ lw_show_busy (Widget w, Boolean busy) void lw_add_value_args_to_args (widget_value* wv, ArgList addto, int* offset) { int i; - if (wv->nargs && wv->args) + if (wv->args && wv->args->nargs) { - for (i = 0; inargs; i++) + for (i = 0; iargs->nargs; i++) { - addto[i + *offset] = wv->args[i]; + addto[i + *offset] = wv->args->args[i]; } - *offset += wv->nargs; + *offset += wv->args->nargs; + } +} + +void lw_add_widget_value_arg (widget_value* wv, String name, XtArgVal value) +{ + if (!wv->args) + { + wv->args = (widget_args *) malloc (sizeof (widget_args)); + memset (wv->args, 0, sizeof (widget_args)); + wv->args->ref_count = 1; + wv->args->nargs = 0; + wv->args->args = (ArgList) malloc (sizeof (Arg) * 10); + memset (wv->args->args, 0, sizeof (Arg) * 10); + } + + if (wv->args->nargs > 10) + return; + + XtSetArg (wv->args->args [wv->args->nargs], name, value); wv->args->nargs++; +} + +static void free_widget_value_args (widget_value* wv) +{ + if (wv->args) + { + if (--wv->args->ref_count <= 0) + { +#ifdef LWLIB_WIDGETS_MOTIF + int i; + for (i = 0; i < wv->args->nargs; i++) + { + if (!strcmp (wv->args->args[i].name, XmNfontList)) + XmFontListFree ((XmFontList)wv->args->args[i].value); + } +#endif + free (wv->args->args); + free (wv->args); + wv->args = (widget_args*)0xDEADBEEF; + } + } +} + +void lw_copy_widget_value_args (widget_value* val, widget_value* copy) +{ + if (!val->args) + { + if (copy->args) + free_widget_value_args (copy); + copy->args = 0; + } + else + { + copy->args = val->args; + copy->args->ref_count++; } } diff --git a/lwlib/lwlib.h b/lwlib/lwlib.h index bca2d64..882348d 100644 --- a/lwlib/lwlib.h +++ b/lwlib/lwlib.h @@ -106,6 +106,17 @@ typedef struct _scrollbar_values int scrollbar_x, scrollbar_y; } scrollbar_values; +typedef struct _widget_args +{ + /* some things are only possible at creation time. args are applied + to widgets at creation time. */ + ArgList args; + int nargs; + /* Copying args is impossible so we make the caller give us heap allocated + args and free them when on-one wants them any more. */ + int ref_count; +} widget_args; + typedef struct _widget_value { /* This slot is only partially utilized right now. */ @@ -147,15 +158,12 @@ typedef struct _widget_value /* data defining a scrollbar; only valid if type == "scrollbar" */ scrollbar_values *scrollbar_data; + /* A reference counted arg structure. */ + struct _widget_args *args; /* we resource the widget_value structures; this points to the next one on the free list if this one has been deallocated. */ struct _widget_value *free_list; - /* some things are only possible at creation time. args are applied - to widgets at creation time. */ - ArgList args; - int nargs; - Boolean free_args; } widget_value; @@ -211,6 +219,8 @@ Boolean lw_get_some_values (LWLIB_ID id, widget_value* val); void lw_pop_up_all_widgets (LWLIB_ID id); void lw_pop_down_all_widgets (LWLIB_ID id); void lw_add_value_args_to_args (widget_value* wv, ArgList addto, int* offset); +void lw_add_widget_value_arg (widget_value* wv, String name, XtArgVal value); +void lw_copy_widget_value_args (widget_value* copy, widget_value* val); widget_value *malloc_widget_value (void); void free_widget_value (widget_value *); diff --git a/lwlib/xlwcheckbox.c b/lwlib/xlwcheckbox.c index 16ab1fd..50f8bb6 100644 --- a/lwlib/xlwcheckbox.c +++ b/lwlib/xlwcheckbox.c @@ -38,7 +38,7 @@ Boston, MA 02111-1307, USA. */ #include #include -#include +#include ATHENA_INCLUDE(XawInit.h) #include "../src/xmu.h" #include "xlwcheckboxP.h" diff --git a/lwlib/xlwgauge.c b/lwlib/xlwgauge.c index a6c223b..8808ca5 100644 --- a/lwlib/xlwgauge.c +++ b/lwlib/xlwgauge.c @@ -52,7 +52,7 @@ Boston, MA 02111-1307, USA. */ #include #include #include -#include +#include ATHENA_INCLUDE(XawInit.h) #include "xlwgaugeP.h" #include "../src/xmu.h" #ifdef HAVE_XMU diff --git a/lwlib/xlwgauge.h b/lwlib/xlwgauge.h index fb4875d..ad9d12c 100644 --- a/lwlib/xlwgauge.h +++ b/lwlib/xlwgauge.h @@ -42,7 +42,7 @@ Boston, MA 02111-1307, USA. */ * ***********************************************************************/ -#include +#include ATHENA_INCLUDE(Label.h) /* Resources: diff --git a/lwlib/xlwgaugeP.h b/lwlib/xlwgaugeP.h index 3a14e41..36de7f7 100644 --- a/lwlib/xlwgaugeP.h +++ b/lwlib/xlwgaugeP.h @@ -40,7 +40,7 @@ Boston, MA 02111-1307, USA. */ ***********************************************************************/ #include "xlwgauge.h" -#include +#include ATHENA_INCLUDE(LabelP.h) /* New fields for the Gauge widget class record */ diff --git a/lwlib/xlwradio.c b/lwlib/xlwradio.c index 18f9cdd..17405c4 100644 --- a/lwlib/xlwradio.c +++ b/lwlib/xlwradio.c @@ -53,7 +53,7 @@ Boston, MA 02111-1307, USA. */ #include #include -#include +#include ATHENA_INCLUDE(XawInit.h) #include "../src/xmu.h" #include "xlwradioP.h" diff --git a/lwlib/xlwradio.h b/lwlib/xlwradio.h index c23a714..d0b8f62 100644 --- a/lwlib/xlwradio.h +++ b/lwlib/xlwradio.h @@ -42,7 +42,7 @@ Boston, MA 02111-1307, USA. */ * ***********************************************************************/ -#include +#include ATHENA_INCLUDE(Toggle.h) /* Resources: diff --git a/lwlib/xlwradioP.h b/lwlib/xlwradioP.h index 9983c8e..78ea2cd 100644 --- a/lwlib/xlwradioP.h +++ b/lwlib/xlwradioP.h @@ -32,7 +32,7 @@ Boston, MA 02111-1307, USA. */ #define _XawRadioP_h #include "xlwradio.h" -#include +#include ATHENA_INCLUDE(ToggleP.h) /*********************************************************************** * diff --git a/lwlib/xlwscrollbar.c b/lwlib/xlwscrollbar.c index 81f8cdb..88f7cc1 100644 --- a/lwlib/xlwscrollbar.c +++ b/lwlib/xlwscrollbar.c @@ -979,7 +979,7 @@ seg_pixel_sizes (XlwScrollBarWidget w, int *above_return, if (ss < SS_MIN) { /* add a percent amount for integer rounding */ - float tmp = ((((float) (SS_MIN - ss) * (float) value)) / total) + 0.5; + float tmp = (((float) (SS_MIN - ss) * (float) value) / total) + 0.5; above -= (int) tmp; ss = SS_MIN; diff --git a/lwlib/xlwtabs.c b/lwlib/xlwtabs.c index fa10a60..efc2954 100644 --- a/lwlib/xlwtabs.c +++ b/lwlib/xlwtabs.c @@ -18,7 +18,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - /* Synched up with: Tabs.c 1.25 */ + /* Synched up with: Tabs.c 1.27 */ /* * Tabs.c - Index Tabs composite widget @@ -51,8 +51,8 @@ * the frame. */ -/* TODO: min child height = tab height - * +/* + * TODO: min child height = tab height */ #include @@ -189,6 +189,7 @@ static void TabsExpose(); static void TabsDestroy(); static void TabsRealize(); static Boolean TabsSetValues(); +static Boolean TabsAcceptFocus(); static XtGeometryResult TabsQueryGeometry(); static XtGeometryResult TabsGeometryManager(); static void TabsChangeManaged(); @@ -237,6 +238,7 @@ static void TabsDestroy( Widget w) ; static void TabsResize( Widget w) ; static void TabsExpose( Widget w, XEvent *event, Region region) ; static Boolean TabsSetValues(Widget, Widget, Widget, ArgList, Cardinal *) ; +static Boolean TabsAcceptFocus(Widget, Time *); static Boolean TabsConstraintSetValues(Widget, Widget, Widget, ArgList, Cardinal *) ; static XtGeometryResult TabsQueryGeometry(Widget, @@ -263,7 +265,7 @@ static void TabWidth( Widget w) ; static int TabLayout( TabsWidget, int wid, int hgt, Dimension *r_hgt, Bool query_only) ; static void GetPreferredSizes(TabsWidget) ; -static void MaxChild(TabsWidget) ; +static void MaxChild(TabsWidget, Widget except, Dimension, Dimension) ; static void TabsShuffleRows( TabsWidget tw) ; static int PreferredSize( TabsWidget, Dimension *reply_width, Dimension *reply_height, @@ -325,9 +327,13 @@ TabsClassRec tabsClassRec = { /* num_resources */ XtNumber(resources), /* xrm_class */ NULLQUARK, /* compress_motion */ TRUE, - /* compress_exposure */ TRUE, +#if XtSpecificationRelease < 6 + /* compress_exposure */ XtExposeCompressMaximal, +#else + /* compress_exposure */ XtExposeCompressMaximal|XtExposeNoRegion, +#endif /* compress_enterleave*/ TRUE, - /* visible_interest */ FALSE, + /* visible_interest */ TRUE, /* destroy */ TabsDestroy, /* resize */ TabsResize, /* expose */ TabsExpose, @@ -335,7 +341,7 @@ TabsClassRec tabsClassRec = { /* set_values_hook */ NULL, /* set_values_almost */ XtInheritSetValuesAlmost, /* get_values_hook */ NULL, - /* accept_focus */ NULL, + /* accept_focus */ TabsAcceptFocus, /* version */ XtVersion, /* callback_private */ NULL, /* tm_table */ defaultTranslations, @@ -460,7 +466,7 @@ TabsInit(Widget request, Widget new, ArgList args, Cardinal *num_args) newTw->tabs.grey50 = None ; newTw->tabs.needs_layout = False ; - + newTw->tabs.hilight = NULL ; #ifdef NEED_MOTIF @@ -480,7 +486,6 @@ TabsConstraintInitialize(Widget request, Widget new, { TabsConstraints tab = (TabsConstraints) new->core.constraints ; tab->tabs.greyAlloc = False ; /* defer allocation of pixel */ - tab->tabs.queried = False ; /* defer size query */ getBitmapInfo((TabsWidget)XtParent(new), tab) ; TabWidth(new) ; @@ -539,6 +544,8 @@ TabsResize(Widget w) * to the bottom row. */ + tw->tabs.needs_layout = False ; + if( num_children > 0 && tw->composite.children != NULL ) { /* Loop through the tabs and assign rows & x positions */ @@ -554,28 +561,27 @@ TabsResize(Widget w) tw->tabs.child_width = cw = tw->core.width - 2 * SHADWID ; tw->tabs.child_height = ch = - tw->core.height - tw->tabs.tab_total - 2 * SHADWID ; + tw->core.height - tw->tabs.tab_total - 2 * SHADWID ; for(i=0, childP=tw->composite.children; - i < num_children; + i < num_children; ++i, ++childP) if( XtIsManaged(*childP) ) { tab = (TabsConstraints) (*childP)->core.constraints ; - bw = tab->tabs.bwid ; + bw = (*childP)->core.border_width ; XtConfigureWidget(*childP, SHADWID,tw->tabs.tab_total+SHADWID, cw-bw*2,ch-bw*2, bw) ; } - if( XtIsRealized(w) ) - { - XClearWindow(XtDisplay((Widget)tw), XtWindow((Widget)tw)) ; - tw->tabs.needs_layout = False ; - XtClass(tw)->core_class.expose((Widget)tw,NULL,None) ; - } + if( XtIsRealized(w) ) { + XClearWindow(XtDisplay((Widget)tw), XtWindow((Widget)tw)) ; + /* should not be necessary to explicitly repaint after a + * resize, but XEmacs folks tell me it is. + */ + XtClass(tw)->core_class.expose((Widget)tw,NULL,None) ; + } } - - tw->tabs.needs_layout = False ; } /* Resize */ @@ -731,6 +737,22 @@ TabsConstraintSetValues(Widget current, Widget request, Widget new, } +static Boolean +TabsAcceptFocus(Widget w, Time *t) +{ + if( !w->core.being_destroyed && XtIsRealized(w) && + XtIsSensitive(w) && XtIsManaged(w) && w->core.visible ) + { + Widget p ; + for(p = XtParent(w); !XtIsShell(p); p = XtParent(p)) ; + XtSetKeyboardFocus(p,w) ; + return True ; + } + else + return False ; +} + + /* * Return preferred size. Happily accept anything >= our preferred size. @@ -752,11 +774,9 @@ TabsQueryGeometry(Widget w, (!(mode & CWHeight) || intended->height == w->core.height) ) return XtGeometryNo ; -#ifdef COMMENT if( (!(mode & CWWidth) || intended->width >= preferred->width) && (!(mode & CWHeight) || intended->height >= preferred->height) ) return XtGeometryYes; -#endif /* COMMENT */ return XtGeometryAlmost; } @@ -774,6 +794,7 @@ TabsGeometryManager(Widget w, XtWidgetGeometry *req, XtWidgetGeometry *reply) Dimension s = SHADWID ; TabsConstraints tab = (TabsConstraints)w->core.constraints; XtGeometryResult result ; + Dimension rw, rh ; /* Position request always denied */ @@ -795,11 +816,11 @@ TabsGeometryManager(Widget w, XtWidgetGeometry *req, XtWidgetGeometry *reply) req->border_width == w->core.border_width ) return XtGeometryNo ; - /* updated cached preferred size of the child */ - tab->tabs.bwid = req->border_width ; - tab->tabs.wid = req->width + req->border_width * 2 ; - tab->tabs.hgt = req->height + req->border_width * 2 ; - MaxChild(tw) ; + rw = req->width + 2 * req->border_width ; + rh = req->height + 2 * req->border_width ; + + /* find out how big the children want to be now */ + MaxChild(tw, w, rw, rh) ; /* Size changes must see if the new size can be accommodated. @@ -807,7 +828,9 @@ TabsGeometryManager(Widget w, XtWidgetGeometry *req, XtWidgetGeometry *reply) * size. A request to shrink will be accepted only if the * new size is still big enough for all other children. A * request to shrink that is not big enough for all children - * returns an "almost" response with the new proposed size. + * returns an "almost" response with the new proposed size + * or a "no" response if unable to shrink at all. + * * A request to grow will be accepted only if the Tabs parent can * grow to accommodate. * @@ -819,24 +842,19 @@ TabsGeometryManager(Widget w, XtWidgetGeometry *req, XtWidgetGeometry *reply) if (req->request_mode & (CWWidth | CWHeight | CWBorderWidth)) { - Dimension rw,rh ; /* child's requested width, height */ Dimension cw,ch ; /* children's preferred size */ Dimension aw,ah ; /* available size we can give child */ Dimension th ; /* space used by tabs */ Dimension wid,hgt ; /* Tabs widget size */ - rw = cw = tab->tabs.wid ; - rh = ch = tab->tabs.hgt ; + cw = tw->tabs.max_cw ; + ch = tw->tabs.max_ch ; - /* find out what the resulting preferred size would be */ + /* find out what *my* resulting preferred size would be */ -#ifdef COMMENT - MaxChild(tw, &cw, &ch) ; -#endif /* COMMENT */ - PreferredSize2(tw, - cw=tw->tabs.max_cw, ch=tw->tabs.max_ch, &wid, &hgt) ; + PreferredSize2(tw, cw, ch, &wid, &hgt) ; - /* Ask to be resized to accommodate. */ + /* Would my size change? If so, ask to be resized. */ if( wid != tw->core.width || hgt != tw->core.height ) { @@ -856,7 +874,7 @@ TabsGeometryManager(Widget w, XtWidgetGeometry *req, XtWidgetGeometry *reply) result = XtMakeGeometryRequest((Widget)tw, &myrequest, &myreply) ; - /* !$@# Box widget changes the core size even if QueryOnly + /* !$@# Athena Box widget changes the core size even if QueryOnly * is set. I'm convinced this is a bug. At any rate, to work * around the bug, we need to restore the core size after every * query geometry request. This is only partly effective, @@ -874,6 +892,7 @@ TabsGeometryManager(Widget w, XtWidgetGeometry *req, XtWidgetGeometry *reply) switch( result ) { case XtGeometryYes: case XtGeometryDone: + tw->tabs.needs_layout = True ; break ; case XtGeometryNo: @@ -884,6 +903,8 @@ TabsGeometryManager(Widget w, XtWidgetGeometry *req, XtWidgetGeometry *reply) case XtGeometryAlmost: wid = myreply.width ; hgt = myreply.height ; + tw->tabs.needs_layout = True ; + break ; } } @@ -995,9 +1016,6 @@ TabsChangeManaged(Widget w) if( tw->tabs.topWidget != NULL ) XtVaSetValues(tw->tabs.topWidget, XmNtraversalOn, True, 0) ; #endif - - - } @@ -1224,15 +1242,15 @@ XawTabsSetTop(Widget w, Bool callCallbacks) if( !XtIsSubclass(w->core.parent, tabsWidgetClass) ) { - char line[1024] ; - sprintf(line, "XawTabsSetTop: widget \"%s\" is not the child of a tabs widget.", XtName(w)) ; + char line[256] ; + sprintf(line, "XawTabsSetTop: widget \"%.64s\" is not the child of a tabs widget.", XtName(w)) ; XtAppWarning(XtWidgetToApplicationContext(w), line) ; return ; } if( callCallbacks ) XtCallCallbackList(w, tw->tabs.popdownCallbacks, - (XtPointer)tw->tabs.topWidget) ; + (XtPointer)tw->tabs.topWidget) ; if( !XtIsRealized(w) ) { tw->tabs.topWidget = w ; @@ -1437,11 +1455,11 @@ DrawTab(TabsWidget tw, Widget child, Bool labels) { if( tab->tabs.lbm_depth == 1 ) XCopyPlane(dpy, tab->tabs.left_bitmap, win,gc, - 0,0, tab->tabs.lbm_width, tab->tabs.lbm_height, + 0,0, tab->tabs.lbm_width, tab->tabs.lbm_height, x+tab->tabs.lbm_x, y+tab->tabs.lbm_y, 1L) ; else XCopyArea(dpy, tab->tabs.left_bitmap, win,gc, - 0,0, tab->tabs.lbm_width, tab->tabs.lbm_height, + 0,0, tab->tabs.lbm_width, tab->tabs.lbm_height, x+tab->tabs.lbm_x, y+tab->tabs.lbm_y) ; } @@ -1600,8 +1618,27 @@ UndrawTab(TabsWidget tw, Widget child) /* GEOMETRY UTILITIES */ + /* Overview: + * + * MaxChild(): ask all children (except possibly one) their + * preferred sizes, set max_cw, max_ch accordingly. + * + * GetPreferredSizes(): ask all children their preferred sizes, + * set max_cw, max_ch accordingly. + * + * PreferredSize(): given max_cw, max_ch, return tabs widget + * preferred size. Iterate with other widths in order to get + * a reasonable aspect ratio. + * + * PreferredSize2(): Given child dimensions, return Tabs + * widget dimensions. + * + * PreferredSize3(): Same, except given child dimensions plus + * shadow. + */ + - /* Compute the size of one child's tab. Positions will be computed + /* Compute the width of one child's tab. Positions will be computed * elsewhere. * * height: font height + vertical_space*2 + shadowWid*2 @@ -1634,7 +1671,7 @@ TabWidth(Widget w) { tab->tabs.width += XTextWidth( font, lbl, (int)strlen(lbl) ) + iw ; tab->tabs.l_y = (tw->tabs.tab_height + - tw->tabs.font->max_bounds.ascent - + tw->tabs.font->max_bounds.ascent - tw->tabs.font->max_bounds.descent)/2 ; } } @@ -1731,59 +1768,34 @@ TabLayout(TabsWidget tw, int wid, int hgt, Dimension *reply_height, Bool query_o /* Find max preferred child size. Returned sizes include child - * border widths. We only ever ask a child its preferred - * size once. After that, the preferred size is updated only - * if the child makes a geometry request. + * border widths. */ static void GetPreferredSizes(TabsWidget tw) { - int i ; - Widget *childP = tw->composite.children ; - XtWidgetGeometry preferred ; - TabsConstraints tab ; - Dimension cw = 0, ch = 0 ; - - for(i=tw->tabs.displayChildren; --i >= 0; ++childP) - if( XtIsManaged(*childP) ) - { - tab = (TabsConstraints) (*childP)->core.constraints ; - if( !tab->tabs.queried ) { - (void) XtQueryGeometry(*childP, NULL, &preferred) ; - tab->tabs.bwid = preferred.border_width ; - tab->tabs.wid = preferred.width + preferred.border_width * 2 ; - tab->tabs.hgt = preferred.height + preferred.border_width * 2 ; - tab->tabs.queried = True ; - } - cw = Max(cw, tab->tabs.wid ) ; - ch = Max(ch, tab->tabs.hgt ) ; - } - tw->tabs.max_cw = cw ; - tw->tabs.max_ch = ch ; + MaxChild(tw, NULL, 0,0) ; } /* Find max preferred child size. Returned sizes include child - * border widths. */ + * border widths. If except is non-null, don't ask that one. + */ static void -MaxChild(TabsWidget tw) +MaxChild(TabsWidget tw, Widget except, Dimension cw, Dimension ch) { - Dimension cw,ch ; /* child width, height */ - int i ; - Widget *childP = tw->composite.children ; - TabsConstraints tab ; - - cw = ch = 0 ; + int i ; + Widget *childP = tw->composite.children ; + XtWidgetGeometry preferred ; for(i=tw->composite.num_children; --i >=0; ++childP) - if( XtIsManaged(*childP) ) + if( XtIsManaged(*childP) && *childP != except ) { - tab = (TabsConstraints) (*childP)->core.constraints ; - cw = Max(cw, tab->tabs.wid ) ; - ch = Max(ch, tab->tabs.hgt ) ; + (void) XtQueryGeometry(*childP, NULL, &preferred) ; + cw = Max(cw, preferred.width + preferred.border_width * 2 ) ; + ch = Max(ch, preferred.height + preferred.border_width * 2 ) ; } tw->tabs.max_cw = cw ; @@ -1845,10 +1857,12 @@ TabsShuffleRows(TabsWidget tw) } - /* find preferred size. Ask children, find size of largest, + /* Find preferred size. Ask children, find size of largest, * add room for tabs & return. This can get a little involved, * as we don't want to have too many rows of tabs; we may widen * the widget to reduce # of rows. + * + * This function requires that max_cw, max_ch already be set. */ static int @@ -1864,12 +1878,6 @@ PreferredSize( Dimension rwid,rhgt ; int nrow ; - - /* find max desired child height */ -#ifdef COMMENT - MaxChild(tw, &cw, &ch) ; -#endif /* COMMENT */ - wid = cw = tw->tabs.max_cw ; hgt = ch = tw->tabs.max_ch ; @@ -1883,6 +1891,7 @@ PreferredSize( if( nrow > 2 && rhgt > rwid ) { Dimension w0, w1 ; + int maxloop = 20 ; /* step 1: start doubling size until it's too big */ do { @@ -1895,7 +1904,7 @@ PreferredSize( /* step 2: use Newton's method to find ideal size. Stop within * 8 pixels. */ - while( w1 > w0 + 8 ) + while( --maxloop > 0 && w1 > w0 + 8 ) { wid = (w0+w1)/2 ; nrow = PreferredSize2(tw, wid,hgt, &rwid,&rhgt) ; @@ -2013,7 +2022,7 @@ getBitmapInfo(TabsWidget tw, TabsConstraints tab) if( tab->tabs.left_bitmap == None || !XGetGeometry(XtDisplay(tw), tab->tabs.left_bitmap, &root, &x, &y, - &tab->tabs.lbm_width, &tab->tabs.lbm_height, + &tab->tabs.lbm_width, &tab->tabs.lbm_height, &bw, &tab->tabs.lbm_depth) ) tab->tabs.lbm_width = tab->tabs.lbm_height = 0 ; } diff --git a/lwlib/xlwtabsP.h b/lwlib/xlwtabsP.h index 48b0c0e..ca1b1e5 100644 --- a/lwlib/xlwtabsP.h +++ b/lwlib/xlwtabsP.h @@ -18,7 +18,7 @@ along with XEmacs; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* Synched up with: TabsP.h 1.7 */ +/* Synched up with: TabsP.h 1.8 */ /* * TabsP.h - Private definitions for Index Tabs widget @@ -132,9 +132,6 @@ typedef struct _TabsConstraintsPart { Dimension width ; /* tab width */ Position x,y ; /* tab base position */ short row ; /* tab row */ - Dimension wid,hgt ; /* desired size */ - Dimension bwid ; /* desired border width */ - Boolean queried ; /* we've asked child it's pref. size */ Position l_x, l_y ; /* label position */ Position lbm_x, lbm_y ; /* bitmap position */ unsigned int lbm_width, lbm_height, lbm_depth ; diff --git a/man/ChangeLog b/man/ChangeLog index 796c1b0..4c404a1 100644 --- a/man/ChangeLog +++ b/man/ChangeLog @@ -1,3 +1,25 @@ +1999-12-24 Martin Buchholz + + * XEmacs 21.2.25 is released. + +1999-12-21 Martin Buchholz + + * lispref/text.texi (Near Point): Document `char-before'. + +1999-12-20 Adrian Aichner + + * widget.texi: Fix typos and possessive singular errors. Break + long sentences for readability. Remove some redundant commas. + +1999-12-18 Martin Buchholz + + * lispref/functions.texi (Mapping Functions): + Warn about mapping functions modifying their sequences. + +1999-12-15 Sandra Wambold + + * xemacs-faq.texi: link to matlab.el added; misc. address changes + 1999-12-14 Martin Buchholz * XEmacs 21.2.24 is released. @@ -116,7 +138,7 @@ * xemacs-faq.texi (Q5.0.6): Describe `shell-multiple-shells' -1999-08-01 Adrian Aichner +1999-08-01 Adrian Aichner * xemacs/programs.texi (Balanced Editing): Remove broken line-break. @@ -147,7 +169,7 @@ * XEmacs 21.2.19 is released -1999-07-10 Adrian Aichner +1999-07-10 Adrian Aichner * emodules.texi: Use @set emacs and @value{emacs} instead of @macro (unsupported by texinfo package). Remove stray @code. @@ -258,7 +280,7 @@ * XEmacs 21.2.9 is released -1999-01-14 Adrian Aichner +1999-01-14 Adrian Aichner * internals\internals.texi (Techniques for XEmacs Developers): Fixing documentation. @@ -397,7 +419,7 @@ * lispref/files.texi (User Name Completion): new section. -1998-07-23 Adrian Aichner +1998-07-23 Adrian Aichner * xemacs/packages.texi (Packages): Changing @itemize @emph to @itemize @bullet (this is what all other files included in @@ -446,7 +468,7 @@ * standards.texi (Preface): Revert previous change to @node because it doesn't pass makeinfo. -1998-06-27 Adrian Aichner +1998-06-27 Adrian Aichner * cl.texi: See ALL. * info-stnd.texi: Fixed @setfilename. @@ -485,7 +507,7 @@ * xemacs/startup.texi: * xemacs/packages.texi: Created. -1998-06-10 Adrian Aichner +1998-06-10 Adrian Aichner * texinfo.texi: added ../info/ to @setfilename, broke line after @noindent. Changed @var{arg-not-used-by-@TeX{}} to @@ -545,7 +567,7 @@ * lispref/dragndrop.texi: naming changed to Drag and Drop added some docu about the drop procedure -1998-06-09 Adrian Aichner +1998-06-09 Adrian Aichner * info-stnd.texi: added ../info/ to @setfilename. * info.texi: added ../info/ to @setfilename. @@ -736,7 +758,7 @@ * xemacs/custom.texi (Init Syntax): document #b, #o, and #x reader syntax for integers. - From Adrian Aichner + From Adrian Aichner * cl.texi (Porting Common Lisp): ' ' * lispref/numbers.texi (Numbers): ' ' diff --git a/man/lispref/functions.texi b/man/lispref/functions.texi index 63b964a..c2e6bb4 100644 --- a/man/lispref/functions.texi +++ b/man/lispref/functions.texi @@ -680,18 +680,21 @@ This function ignores any arguments and returns @code{nil}. @cindex mapping functions A @dfn{mapping function} applies a given function to each element of a -list or other collection. XEmacs Lisp has three such functions; +list or other collection. XEmacs Lisp has several such functions; @code{mapcar} and @code{mapconcat}, which scan a list, are described -here. For the third mapping function, @code{mapatoms}, see -@ref{Creating Symbols}. +here. @xref{Creating Symbols}, for the function @code{mapatoms} which +maps over the symbols in an obarray. + +Mapping functions should never modify the sequence being mapped over. +The results are unpredictable. @defun mapcar function sequence @code{mapcar} applies @var{function} to each element of @var{sequence} in turn, and returns a list of the results. -The argument @var{sequence} may be a list, a vector, or a string. The -result is always a list. The length of the result is the same as the -length of @var{sequence}. +The argument @var{sequence} can be any kind of sequence; that is, a +list, a vector, a bit vector, or a string. The result is always a list. +The length of the result is the same as the length of @var{sequence}. @smallexample @group @@ -738,7 +741,8 @@ Between each pair of result strings, @code{mapconcat} inserts the string other suitable punctuation. The argument @var{function} must be a function that can take one -argument and return a string. +argument and return a string. The argument @var{sequence} can be any +kind of sequence; that is, a list, a vector, a bit vector, or a string. @smallexample @group diff --git a/man/lispref/minibuf.texi b/man/lispref/minibuf.texi index 4e66083..1e1e9ed 100644 --- a/man/lispref/minibuf.texi +++ b/man/lispref/minibuf.texi @@ -25,6 +25,7 @@ use for reading an argument. * Completion:: How to invoke and customize completion. * Yes-or-No Queries:: Asking a question with a simple answer. * Multiple Queries:: Asking a series of similar questions. +* Reading a Password:: Reading a password from the terminal. * Minibuffer Misc:: Various customization hooks and variables. @end menu @@ -37,7 +38,7 @@ minibuffer. However, many operations for managing buffers do not apply to minibuffers. The name of a minibuffer always has the form @w{@samp{ *Minibuf-@var{number}}}, and it cannot be changed. Minibuffers are displayed only in special windows used only for minibuffers; these -windows always appear at the bottom of a frame. (Sometime frames have +windows always appear at the bottom of a frame. (Sometimes frames have no minibuffer window, and sometimes a special kind of frame contains nothing but a minibuffer window; see @ref{Minibuffers and Frames}.) @@ -67,10 +68,6 @@ completion commands (@pxref{Completion}). @code{minibuffer-local-map} is for ordinary input (no completion). @item -@code{minibuffer-local-ns-map} is similar, except that @key{SPC} exits -just like @key{RET}. This is used mainly for Mocklisp compatibility. - -@item @code{minibuffer-local-completion-map} is for permissive completion. @item @@ -91,7 +88,7 @@ middle of a Lisp function. Instead, do all minibuffer input as part of reading the arguments for a command, in the @code{interactive} spec. @xref{Defining Commands}. -@defun read-from-minibuffer prompt-string &optional initial-contents keymap read hist +@defun read-from-minibuffer prompt-string &optional initial-contents keymap read hist abbrev-table default This function is the most general way to get input through the minibuffer. By default, it accepts arbitrary text and returns it as a string; however, if @var{read} is non-@code{nil}, then it uses @@ -112,12 +109,25 @@ The value of @var{initial-contents} may also be a cons cell of the form @var{string} in the minibuffer but put point @var{position} characters from the beginning, rather than at the end. +When the user types a command to exit the minibuffer, +@code{read-from-minibuffer} constructs the return value from the text in +the minibuffer. Normally it returns a string containing that text. +However, if @var{read} is non-@code{nil}, @code{read-from-minibuffer} +reads the text and returns the resulting Lisp object, unevaluated. +(@xref{Input Functions}, for information about reading.) + +The argument @var{default} specifies a default value to make available +through the history commands. It should be a string, or @code{nil}. + If @var{keymap} is non-@code{nil}, that keymap is the local keymap to use in the minibuffer. If @var{keymap} is omitted or @code{nil}, the value of @code{minibuffer-local-map} is used as the keymap. Specifying a keymap is the most important way to customize the minibuffer for various applications such as completion. +The argument @var{abbrev-table} specifies @code{local-abbrev-table} in +the minibuffer (@pxref{Standard Abbrev Tables}). + The argument @var{hist} specifies which history list variable to use for saving the input and for history commands used in the minibuffer. It defaults to @code{minibuffer-history}. @xref{Minibuffer History}. @@ -129,15 +139,27 @@ text. However, if @var{read} is non-@code{nil}, @code{read-from-minibuffer} reads the text and returns the resulting Lisp object, unevaluated. (@xref{Input Functions}, for information about reading.) + +@strong{Usage note:} The @var{initial-contents} argument and the +@var{default} argument are two alternative features for more or less the +same job. It does not make sense to use both features in a single call +to @code{read-from-minibuffer}. In general, we recommend using +@var{default}, since this permits the user to insert the default value +when it is wanted, but does not burden the user with deleting it from +the minibuffer on other occasions. However, if user is supposed to edit +default value, @var{initial-contents} may be preferred. @end defun -@defun read-string prompt &optional initial +@defun read-string prompt &optional initial history This function reads a string from the minibuffer and returns it. The arguments @var{prompt} and @var{initial} are used as in @code{read-from-minibuffer}. The keymap used is @code{minibuffer-local-map}. -This is a simplified interface to the +The optional argument @var{history}, if non-nil, specifies a history +list and optionally the initial position in the list. + +This function is a simplified interface to the @code{read-from-minibuffer} function: @smallexample @@ -154,7 +176,7 @@ This is the default local keymap for reading from the minibuffer. By default, it makes the following bindings: @table @asis -@item @key{LFD} +@item @kbd{C-j} @code{exit-minibuffer} @item @key{RET} @@ -177,49 +199,6 @@ default, it makes the following bindings: @end table @end defvar -@c In version 18, initial is required -@c Emacs 19 feature -@defun read-no-blanks-input prompt &optional initial -This function reads a string from the minibuffer, but does not allow -whitespace characters as part of the input: instead, those characters -terminate the input. The arguments @var{prompt} and @var{initial} are -used as in @code{read-from-minibuffer}. - -This is a simplified interface to the @code{read-from-minibuffer} -function, and passes the value of the @code{minibuffer-local-ns-map} -keymap as the @var{keymap} argument for that function. Since the keymap -@code{minibuffer-local-ns-map} does not rebind @kbd{C-q}, it @emph{is} -possible to put a space into the string, by quoting it. - -@smallexample -@group -(read-no-blanks-input @var{prompt} @var{initial}) -@equiv{} -(read-from-minibuffer @var{prompt} @var{initial} minibuffer-local-ns-map) -@end group -@end smallexample -@end defun - -@defvar minibuffer-local-ns-map -This built-in variable is the keymap used as the minibuffer local keymap -in the function @code{read-no-blanks-input}. By default, it makes the -following bindings, in addition to those of @code{minibuffer-local-map}: - -@table @asis -@item @key{SPC} -@cindex @key{SPC} in minibuffer -@code{exit-minibuffer} - -@item @key{TAB} -@cindex @key{TAB} in minibuffer -@code{exit-minibuffer} - -@item @kbd{?} -@cindex @kbd{?} in minibuffer -@code{self-insert-and-exit} -@end table -@end defvar - @node Object from Minibuffer @section Reading Lisp Objects with the Minibuffer @@ -227,7 +206,7 @@ following bindings, in addition to those of @code{minibuffer-local-map}: minibuffer. @defun read-minibuffer prompt &optional initial -This function reads a Lisp object in the minibuffer and returns it, +This function reads a Lisp object using the minibuffer, and returns it without evaluating it. The arguments @var{prompt} and @var{initial} are used as in @code{read-from-minibuffer}. @@ -266,9 +245,9 @@ default, or can edit the input. @end defun @defun eval-minibuffer prompt &optional initial -This function reads a Lisp expression in the minibuffer, evaluates it, -then returns the result. The arguments @var{prompt} and @var{initial} -are used as in @code{read-from-minibuffer}. +This function reads a Lisp expression using the minibuffer, evaluates +it, then returns the result. The arguments @var{prompt} and +@var{initial} are used as in @code{read-from-minibuffer}. This function simply evaluates the result of a call to @code{read-minibuffer}: @@ -293,7 +272,7 @@ appear in the initial text. @xref{Output Functions}. The first thing @code{edit-and-eval-command} does is to activate the minibuffer with @var{prompt} as the prompt. Then it inserts the printed -representation of @var{form} in the minibuffer, and lets the user edit. +representation of @var{form} in the minibuffer, and lets the user edit it. When the user exits the minibuffer, the edited text is read with @code{read} and then evaluated. The resulting value becomes the value of @code{edit-and-eval-command}. @@ -366,6 +345,8 @@ needs to do to use a history list is to initialize it and to pass its name to the input functions when you wish. But it is safe to modify the list by hand when the minibuffer input functions are not using it. + Here are some of the standard minibuffer history list variables: + @defvar minibuffer-history The default history list for minibuffer history input. @end defvar @@ -551,7 +532,7 @@ too short). Both of those begin with the string @samp{foobar}. @defun all-completions string collection &optional predicate nospace This function returns a list of all possible completions of -@var{string}. The parameters to this function are the same as to +@var{string}. The arguments to this function are the same as those of @code{try-completion}. If @var{collection} is a function, it is called with three arguments: @@ -592,7 +573,7 @@ non-@code{nil}, XEmacs does not consider case significant in completion. This section describes the basic interface for reading from the minibuffer with completion. -@defun completing-read prompt collection &optional predicate require-match initial hist +@defun completing-read prompt collection &optional predicate require-match initial hist default This function reads a string in the minibuffer, assisting the user by providing completion. It activates the minibuffer with prompt @var{prompt}, which must be a string. If @var{initial} is @@ -611,11 +592,17 @@ commands won't exit unless the input typed is itself an element of @var{collection}. If @var{require-match} is @code{nil}, the exit commands work regardless of the input in the minibuffer. +However, empty input is always permitted, regardless of the value of +@var{require-match}; in that case, @code{completing-read} returns +@var{default}. The value of @var{default} (if non-@code{nil}) is also +available to the user through the history commands. + The user can exit with null input by typing @key{RET} with an empty -minibuffer. Then @code{completing-read} returns @code{nil}. This is -how the user requests whatever default the command uses for the value -being read. The user can return using @key{RET} in this way regardless -of the value of @var{require-match}. +minibuffer. Then @code{completing-read} returns @code{""}. This is how +the user requests whatever default the command uses for the value being +read. The user can return using @key{RET} in this way regardless of the +value of @var{require-match}, and regardless of whether the empty string +is included in @var{collection}. The function @code{completing-read} works by calling @code{read-minibuffer}. It uses @code{minibuffer-local-completion-map} @@ -707,7 +694,7 @@ bindings: @item @key{TAB} @code{minibuffer-complete} -@item @key{LFD} +@item @kbd{C-j} @code{minibuffer-complete-and-exit} @item @key{RET} @@ -745,7 +732,7 @@ This function completes the minibuffer contents as far as possible. @deffn Command minibuffer-complete-and-exit This function completes the minibuffer contents, and exits if confirmation is not required, i.e., if -@code{minibuffer-completion-confirm} is non-@code{nil}. If confirmation +@code{minibuffer-completion-confirm} is @code{nil}. If confirmation @emph{is} required, it is given by repeating this command immediately---the command is programmed to work without confirmation when run twice in succession. @@ -956,7 +943,7 @@ initial input. It defaults to the current buffer's value of @c Emacs 19 feature If you specify @var{initial}, that is an initial file name to insert in -the buffer (after with @var{directory}, if that is inserted). In this +the buffer (after @var{directory}, if that is inserted). In this case, point goes at the beginning of @var{initial}. The default for @var{initial} is @code{nil}---don't insert any file name. To see what @var{initial} does, try the command @kbd{C-x C-v}. @@ -1071,8 +1058,12 @@ A flag specifying the type of operation. @item @code{nil} specifies @code{try-completion}. The completion function should return the completion of the specified string, or @code{t} if the -string is an exact match already, or @code{nil} if the string matches no -possibility. +string is a unique and exact match already, or @code{nil} if the string +matches no possibility. + +If the string is an exact match for one possibility, but also matches +other longer possibilities, the function should return the string, not +@code{t}. @item @code{t} specifies @code{all-completions}. The completion function @@ -1343,6 +1334,40 @@ value around the call. The return value of @code{map-y-or-n-p} is the number of objects acted on. @end defun +@node Reading a Password +@section Reading a Password +@cindex passwords, reading + + To read a password to pass to another program, you can use the +function @code{read-passwd}. + +@defun read-passwd prompt &optional confirm default +This function reads a password, prompting with @var{prompt}. It does +not echo the password as the user types it; instead, it echoes @samp{.} +for each character in the password. + +The optional argument @var{confirm}, if non-@code{nil}, says to read the +password twice and insist it must be the same both times. If it isn't +the same, the user has to type it over and over until the last two +times match. + +The optional argument @var{default} specifies the default password to +return if the user enters empty input. It is translated to @samp{.} +and inserted in the minibuffer. If @var{default} is @code{nil}, then +@code{read-passwd} returns the null string in that case. +@end defun + +@defopt passwd-invert-frame-when-keyboard-grabbed +If non-nil swap the foreground and background colors of all faces while +reading a password. Default values is @code{t} unless feature +@code{infodock} is provided. +@end defopt + +@defopt passwd-echo +This specifies the character echoed when typing a password. When nil, +nothing is echoed. +@end defopt + @node Minibuffer Misc @section Minibuffer Miscellany @@ -1452,8 +1477,8 @@ returns zero. @defopt enable-recursive-minibuffers If this variable is non-@code{nil}, you can invoke commands (such as -@code{find-file}) that use minibuffers even while in the minibuffer -window. Such invocation produces a recursive editing level for a new +@code{find-file}) that use minibuffers even while the minibuffer window +is active. Such invocation produces a recursive editing level for a new minibuffer. The outer-level minibuffer is invisible while you are editing the inner one. @@ -1476,4 +1501,4 @@ want to explicitly set the value of @code{enable-recursive-minibuffers} in this fashion, just use an evaluated interactive spec and bind @code{enable-recursive-minibuffers} while reading from the minibuffer. See the definition of @code{next-matching-history-element} in -@file{lisp/prim/minibuf.el}. +@file{lisp/minibuf.el}. diff --git a/man/lispref/text.texi b/man/lispref/text.texi index 1fdb63f..7aad873 100644 --- a/man/lispref/text.texi +++ b/man/lispref/text.texi @@ -70,12 +70,13 @@ functions usually did not have these optional @var{buffer} arguments and always operated on the current buffer.) -@defun char-after position &optional buffer +@defun char-after &optional position buffer This function returns the character in the buffer at (i.e., immediately after) position @var{position}. If @var{position} is out of range for this purpose, either before the beginning of the buffer, or at -or beyond the end, then the value is @code{nil}. If optional argument -@var{buffer} is @code{nil}, the current buffer is assumed. +or beyond the end, then the value is @code{nil}. The default for +@var{position} is point. If optional argument @var{buffer} is +@code{nil}, the current buffer is assumed. In the following example, assume that the first character in the buffer is @samp{@@}: @@ -88,6 +89,15 @@ buffer is @samp{@@}: @end example @end defun +@defun char-before &optional position buffer +This function returns the character in the current buffer immediately +before position @var{position}. If @var{position} is out of range for +this purpose, either at or before the beginning of the buffer, or beyond +the end, then the value is @code{nil}. The default for +@var{position} is point. If optional argument @var{buffer} is +@code{nil}, the current buffer is assumed. +@end defun + @defun following-char &optional buffer This function returns the character following point in the buffer. This is similar to @code{(char-after (point))}. However, if point is at diff --git a/man/widget.texi b/man/widget.texi index 46f2771..ecf9f33 100644 --- a/man/widget.texi +++ b/man/widget.texi @@ -462,11 +462,11 @@ String to suffix buttons. @item %@{ @itemx %@} -The text inside will be displayed with the face specified by -@code{:sample-face}. +The text inside will be displayed in the face specified by +@code{:sample-face}. @item %v -This will be replaces with the buffer representation of the widgets +This will be replaced with the buffer representation of the widget's value. What this is depends on the widget type. @item %d @@ -560,8 +560,8 @@ and returning non-nil if the widget can represent the specified value. @item :validate A function which takes a widget as an argument, and return nil if the -widgets current value is valid for the widget. Otherwise, it should -return the widget containing the invalid data, and set that widgets +widget's current value is valid for the widget. Otherwise it should +return the widget containing the invalid data, and set that widget's @code{:error} property to a string explaining the error. The following predefined function can be used: @@ -764,10 +764,10 @@ Syntax: TYPE ::= (menu-choice [KEYWORD ARGUMENT]... TYPE ... ) @end example -The @var{type} arguments represents each possible choice. The widgets -value of will be the value of the chosen @var{type} argument. This -widget will match any value that matches at least one of the specified -@var{type} arguments. +The @var{type} argument represents each possible choice. The widget's +value will be that of the chosen @var{type} argument. This widget will +match any value matching at least one of the specified @var{type} +arguments. @table @code @item :void @@ -799,10 +799,10 @@ Syntax: TYPE ::= (radio-button-choice [KEYWORD ARGUMENT]... TYPE ... ) @end example -The @var{type} arguments represents each possible choice. The widgets -value of will be the value of the chosen @var{type} argument. This -widget will match any value that matches at least one of the specified -@var{type} arguments. +The @var{type} argument represents each possible choice. The widget's +value will be that of the chosen @var{type} argument. This widget will +match any value matching at least one of the specified @var{type} +arguments. The following extra properties are recognized. @@ -889,8 +889,8 @@ Syntax: TYPE ::= (toggle [KEYWORD ARGUMENT]...) @end example -The widget has two possible states, `on' and `off', which corresponds to -a @code{t} or @code{nil} value. +The widget has two possible states, `on' and `off', which correspond to +a @code{t} or @code{nil} value respectively. The following extra properties are recognized. @@ -930,10 +930,10 @@ Syntax: TYPE ::= (checklist [KEYWORD ARGUMENT]... TYPE ... ) @end example -The @var{type} arguments represents each checklist item. The widgets -value of will be a list containing the value of each ticked @var{type} -argument. The checklist widget will match a list whose elements all -matches at least one of the specified @var{type} arguments. +The @var{type} arguments represents each checklist item. The widget's +value will be a list containing the values of all ticked @var{type} +arguments. The checklist widget will match a list whose elements all +match at least one of the specified @var{type} arguments. The following extra properties are recognized. @@ -951,11 +951,11 @@ Insert a literal @samp{%}. @end table @item :greedy -Usually, a checklist will only match if the items are in the exact +Usually a checklist will only match if the items are in the exact sequence given in the specification. By setting @code{:greedy} to -non-nil, it will allow the items to come in any sequence. However, if -you extract the value they will be in the sequence given in the -checklist. I.e. the original sequence is forgotten. +non-nil, it will allow the items to appear in any sequence. However, if +you extract the values they will be in the sequence given in the +checklist. I.e. the original sequence is forgotten. @item button-args A list of keywords to pass to the checkboxes. Useful for setting @@ -1236,13 +1236,13 @@ The value of a widget of this type will either have the form @samp{(file t)} or @code{(file string string)}. This concept of inline is probably hard to understand. It was certainly -hard to implement so instead of confuse you more by trying to explain it -here, I'll just suggest you meditate over it for a while. +hard to implement so instead of confusing you more by trying to explain +it here, I'll just suggest you meditate over it for a while. @deffn Widget choice -Allows you to edit a sexp which may have one of fixed set of types. It -is currently implemented with the @code{choice-menu} basic widget, and -has a similar syntax. +Allows you to edit a sexp which may have one of a fixed set of types. +It is currently implemented with the @code{choice-menu} basic widget, +and has a similar syntax. @end deffn @deffn Widget set @@ -1326,9 +1326,9 @@ You can query or set the state with the following code: (widget-apply @var{widget} :activate) @end lisp -A widget is inactive if itself, or any of its ancestors (found by +A widget is inactive if itself or any of its ancestors (found by following the @code{:parent} link) have been deactivated. To make sure -a widget is really active, you must therefore activate both itself, and +a widget is really active, you must therefore activate both itself and all its ancestors. @lisp @@ -1338,12 +1338,12 @@ all its ancestors. @end lisp You can check if a widget has been made inactive by examining the value -of @code{:inactive} keyword. If this is non-nil, the widget itself has -been deactivated. This is different from using the @code{:active} -keyword, in that the later tell you if the widget @strong{or} any of its -ancestors have been deactivated. Do not attempt to set the +of the @code{:inactive} keyword. If this is non-nil, the widget itself +has been deactivated. This is different from using the @code{:active} +keyword, in that the latter tells you if the widget @strong{or} any of +its ancestors have been deactivated. Do not attempt to set the @code{:inactive} keyword directly. Use the @code{:activate} -@code{:deactivated} keywords instead. +@code{:deactivate} keywords instead. @node Defining New Widgets, Widget Browser, Widget Properties, Top @@ -1351,9 +1351,9 @@ ancestors have been deactivated. Do not attempt to set the @section Defining New Widgets You can define specialized widgets with @code{define-widget}. It allows -you to create a shorthand for more complex widgets, including specifying -component widgets and default new default values for the keyword -arguments. +you to create a shorthand for more complex widgets. This includes +specifying component widgets and new default values for the keyword +arguments. @defun widget-define name class doc &rest args Define a new widget type named @var{name} from @code{class}. @@ -1363,7 +1363,7 @@ of the existing widget types. The third argument @var{DOC} is a documentation string for the widget. -After the new widget has been defined, the following two calls will +After the new widget has been defined the following two calls will create identical widgets: @itemize @bullet @@ -1380,8 +1380,8 @@ create identical widgets: @end defun -Using @code{widget-define} does just store the definition of the widget -type in the @code{widget-type} property of @var{name}, which is what +Using @code{widget-define} just stores the definition of the widget type +in the @code{widget-type} property of @var{name}, which is what @code{widget-create} uses. If you just want to specify defaults for keywords with no complex @@ -1394,7 +1394,7 @@ widgets: Function to convert a widget type before creating a widget of that type. It takes a widget type as an argument, and returns the converted widget type. When a widget is created, this function is called for the -widget type and all the widgets parent types, most derived first. +widget type and all the widget's parent types, most derived first. The following predefined functions can be used here: @@ -1408,7 +1408,7 @@ Initialize @code{:value} from @code{:args} in @var{widget}. @item :value-to-internal Function to convert the value to the internal format. The function -takes two arguments, a widget and an external value, and returns the +takes two arguments, a widget and an external value. It returns the internal value. The function is called on the present @code{:value} when the widget is created, and on any value set later with @code{widget-value-set}. @@ -1422,8 +1422,8 @@ when the widget is created, and on any value set later with @item :create Function to create a widget from scratch. The function takes one -argument, a widget type, and create a widget of that type, insert it in -the buffer, and return a widget object. +argument, a widget type, and creates a widget of that type, inserts it +in the buffer, and returns a widget object. @item :delete Function to delete a widget. The function takes one argument, a widget, @@ -1431,14 +1431,14 @@ and should remove all traces of the widget from the buffer. @item :value-create Function to expand the @samp{%v} escape in the format string. It will -be called with the widget as its argument. Should -insert a representation of the widgets value in the buffer. +be called with the widget as its argument and should insert a +representation of the widget's value in the buffer. @item :value-delete -Should remove the representation of the widgets value from the buffer. +Should remove the representation of the widget's value from the buffer. It will be called with the widget as its argument. It doesn't have to remove the text, but it should release markers and delete nested widgets -if such has been used. +if such have been used. The following predefined function can be used here: @@ -1462,8 +1462,8 @@ will be called with the widget and the escape character as arguments. You can set this to allow your widget to handle non-standard escapes. You should end up calling @code{widget-default-format-handler} to handle -unknown escape sequences, which will handle the @samp{%h} and any future -escape sequences, as well as give an error for unknown escapes. +unknown escape sequences. It will handle the @samp{%h} and any future +escape sequences as well as give an error for unknown escapes. @item :action Function to handle user initiated events. By default, @code{:notify} @@ -1481,9 +1481,9 @@ Function to prompt for a value in the minibuffer. The function should take four arguments, @var{widget}, @var{prompt}, @var{value}, and @var{unbound} and should return a value for widget entered by the user. @var{prompt} is the prompt to use. @var{value} is the default value to -use, unless @var{unbound} is non-nil in which case there are no default +use, unless @var{unbound} is non-nil. In this case there is no default value. The function should read the value using the method most natural -for this widget, and does not have to check that it matches. +for this widget and does not have to check whether it matches. @end table If you want to define a new widget from scratch, use the @code{default} diff --git a/man/xemacs-faq.texi b/man/xemacs-faq.texi index ef0b785..65ef9d5 100644 --- a/man/xemacs-faq.texi +++ b/man/xemacs-faq.texi @@ -7,15 +7,15 @@ @finalout @titlepage @title XEmacs FAQ -@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 1999/12/07 03:11:46 $ +@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 1999/12/23 01:50:47 $ @sp 1 -@author Tony Rossini +@author Tony Rossini @author Ben Wing @author Chuck Thompson @author Steve Baur @author Andreas Kaempf @author Christian Nyb@o{} -@author Sandra Wambold +@author Sandra Wambold @page @end titlepage @@ -182,6 +182,7 @@ Trouble Shooting: * Q2.1.21:: Every so often the XEmacs frame freezes. * Q2.1.22:: XEmacs seems to take a really long time to do some things. * Q2.1.23:: Movemail on Linux does not work for XEmacs 19.15 and later. +* Q2.1.24:: XEmacs won't start without network. (NEW) Customization and Options @@ -424,7 +425,7 @@ considering XEmacs for their own use, or has just obtained it and is wondering what to do next. It is also useful as a reference to available resources. -The previous maintainer of the FAQ was @email{rossini@@stat.sc.edu, +The previous maintainer of the FAQ was @email{rossini@@biostat.washington.edu, Anthony Rossini}, who started it, after getting tired of hearing JWZ complain about repeatedly having to answer questions. @email{ben@@xemacs.org, Ben Wing} and @email{cthomp@@xemacs.org, Chuck @@ -435,15 +436,13 @@ contributors to this FAQ are listed later in this document. The previous version was converted to hypertext format, and edited by @email{steve@@xemacs.org, Steven L. Baur}. It was converted back to -texinfo by @email{hniksic@@xemacs.org, Hrvoje Niksic}. - -The FAQ was then maintained by @email{andreas@@sccon.com, Andreas -Kaempf}, who passed it on to @email{faq@@xemacs.org, Christian -Nyb@o{}}, the current FAQ maintainer. +texinfo by @email{hniksic@@xemacs.org, Hrvoje Niksic}. The FAQ was then +maintained by @email{andreas@@sccon.com, Andreas Kaempf}, who passed it +on to ChristianNyb@o{}. If you notice any errors or items which should be added or amended to -this FAQ please send email to @email{faq@@xemacs.org, Christian -Nyb@o{}}. Include @samp{XEmacs FAQ} on the Subject: line. +this FAQ please send email to @email{faq@@xemacs.org, Sandra +Wambold}. Include @samp{XEmacs FAQ} on the Subject: line. @menu Introduction: @@ -728,8 +727,10 @@ XEmacs web site in the future. @unnumberedsubsec Q1.1.1: What is the FAQ editorial policy? The FAQ is actively maintained and modified regularly. All links should -be up to date. All submissions are welcome. E-mail submissions to -@email{faq@@xemacs.org, XEmacs FAQ maintainers}. +be up to date. Unfortunately, some of the information is out of date -- +a situation which the FAQ maintainer is working on. All submissions are +welcome, please e-mail submissions to @email{faq@@xemacs.org, XEmacs FAQ +maintainers}. Please make sure that @samp{XEmacs FAQ} appears on the Subject: line. If you think you have a better way of answering a question, or think a @@ -1331,6 +1332,7 @@ Trouble Shooting: * Q2.1.21:: Every so often the XEmacs frame freezes. * Q2.1.22:: XEmacs seems to take a really long time to do some things. * Q2.1.23:: Movemail on Linux does not work for XEmacs 19.15 and later. +* Q2.1.24:: XEmacs won't start without network. (NEW) @end menu @node Q2.0.1, Q2.0.2, Installation, Installation @@ -2547,7 +2549,7 @@ debug-on-quit doesn't work if something's turned on inhibit-quit or in some other strange cases. @end quotation -@node Q2.1.23, , Q2.1.22, Installation +@node Q2.1.23, Q2.1.24, Q2.1.22, Installation @unnumberedsubsec Q2.1.23: Movemail on Linux does not work for XEmacs 19.15 and later. Movemail used to work fine in 19.14 but has stopped working in 19.15 @@ -2566,6 +2568,20 @@ and uncomment the line that reads: @end example @end quotation +@node Q2.1.24, , Q2.1.23, Installation +@unnumberedsubsec Q2.1.24: XEmacs won't start without network. (NEW) +Q2.1.23: Movemail on Linux does not work for XEmacs 19.15 and later. + +If XEmacs starts when you're on the network, but fails when you're not +on the network, you may be missing a "localhost" entry in your +@file{/etc/hosts} file. The file should contain an entry like: + +@example +127.0.0.1 localhost +@end example + +Add that line, and XEmacs will be happy. + @node Customization, Subsystems, Installation, Top @unnumbered 3 Customization and Options @@ -4925,23 +4941,10 @@ appreciated. @node Q4.7.6, , Q4.7.5, Subsystems @unnumberedsubsec Q4.7.5: Is there a MatLab mode? -@c New -Is there any way I can get syntax highlighting for MatLab .m files? -Can I "teach" emacs what words are MatLab commands, comments, etc. ? - -@email{elsner@@mathematik.tu-chemnitz.de, Ulrich Elsner} writes: -@quotation -One way to do this (and much more) is by using the -@iftex -@* -@end iftex -@comment @uref{ftp://ftp.mathworks.com/pub/contrib/v5/tools/matlab.el, matlab mode}. -matlab mode. (If someone knows where this can be found, please contact -the @email{faq@@xemacs.org,XEmacs FAQ maintainer}. - -Instructions on how to install this mode are included in this file. -@end quotation +Yes, a matlab mode and other items are available at the +@uref{ftp://ftp.mathworks.com/pub/contrib/emacs_add_ons, +MathWorks' emacs_add_ons ftp directory}. @node Miscellaneous, MS Windows, Subsystems, Top @unnumbered 5 The Miscellaneous Stuff diff --git a/nt/ChangeLog b/nt/ChangeLog index 3f537e4..994629c 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog @@ -1,8 +1,17 @@ +1999-12-24 Martin Buchholz + + * XEmacs 21.2.25 is released. + +1999-12-15 Scott Blachowicz + + * minitar.c (main): Add explicit exit(0) to get successful return + code. + 1999-12-14 Martin Buchholz * XEmacs 21.2.24 is released. -1999-11-28 Adrian Aichner +1999-11-28 Adrian Aichner * xemacs.mak (depend): Only update `depend' if there were changes. Use "perl ./make-src-depend" instead of "mkdepend". @@ -11,7 +20,7 @@ * XEmacs 21.2.23 is released. -1999-11-27 Adrian Aichner +1999-11-27 Adrian Aichner * xemacs.mak (SRCDIR): Make path to xemacs absolute to facilitate building info in man subdirs. Echo all cd commands, @@ -48,7 +57,7 @@ * xemacs.mak: Ignore return code of 'del' calls. Use a make variable for 'del'. -1999-09-26 Adrian Aichner +1999-09-26 Adrian Aichner * xemacs.mak (all): Update $(LISP)/auto-autoloads.elc? and $(LISP)/custom-load.el using XEmacs itself, like xemacs-packages @@ -60,7 +69,7 @@ * xemacs.mak (HAVE_WIDGETS): add define to appropriate places. -1999-07-26 Adrian Aichner +1999-07-26 Adrian Aichner * xemacs.mak ($(MANDIR)\lispref\lispref.texi): Replace bad dependency. @@ -69,7 +78,7 @@ * XEmacs 21.2.19 is released -1999-07-10 Adrian Aichner +1999-07-10 Adrian Aichner * xemacs.mak (.SUFFIXES): Add .texi. (check): Improve automated test section. @@ -88,7 +97,7 @@ * XEmacs 21.2.17 is released -1999-06-13 Adrian Aichner +1999-06-13 Adrian Aichner * xemacs.mak (DOC_SRC8): Remove mule-coding.c. (TEMACS_MULE_OBJS): Remove mule-coding.obj @@ -103,7 +112,7 @@ * XEmacs 21.2.16 is released -1999-05-14 Adrian Aichner <aichner@ecf.teradyne.com> +1999-05-14 Adrian Aichner <adrian@xemacs.org> * xemacs.mak (GUNG_HO): Explicitly default to 0. Fix some comment typos. @@ -132,7 +141,7 @@ * xemacs.mak ($(LISP)\Installation.el): Don't use `replace-in-string'. -1999-03-17 Adrian Aichner +1999-03-17 Adrian Aichner * xemacs.mak: Remove ESC macro -- no longer needed. Remove small configuration report. Remove simplified version of @@ -208,7 +217,7 @@ * XEmacs 21.2.9 is released -1999-01-14 Adrian Aichner +1999-01-14 Adrian Aichner * xemacs.mak (MODULES): Adding variable. (update-elc): Setting EMACSBOOTSTRAPMODULEPATH. @@ -259,7 +268,7 @@ * XEmacs 21.2.6 is released -1998-12-11 Adrian Aichner +1998-12-11 Adrian Aichner * xemacs.mak (DOC_SRC2): CLASH_DETECTION is not supported under native Windows NT. Therefore src\filelock.c is not to be @@ -281,7 +290,7 @@ (DOC_SRC4): - Remove pure.c, pure.obj -1998-11-04 Adrian Aichner +1998-11-04 Adrian Aichner * xemacs.mak: Creating minimal versions of Installation, Installation.el, and config.values to make @@ -310,7 +319,7 @@ * XEmacs 21.2-beta2 is released. -1998-09-19 Adrian Aichner +1998-09-19 Adrian Aichner * tiff.mak: New file provided by Charles Wilson @@ -400,7 +409,7 @@ * config.h: * xemacs.mak: NT native sound fixes - From Fabrice POPINEAU via Adrian Aichner + From Fabrice POPINEAU via Adrian Aichner 1998-06-21 Martin Buchholz @@ -423,7 +432,7 @@ * xemacs.mak (distclean): Reorder when puresize-adjust.h gets deleted. - From Adrian Aichner + From Adrian Aichner 1998-06-08 Kirill M. Katsnelson diff --git a/nt/minitar.c b/nt/minitar.c index 4d89875..75127f6 100644 --- a/nt/minitar.c +++ b/nt/minitar.c @@ -204,6 +204,7 @@ main(int argc, char **argv) in_block = 0; } } + exit (0); } diff --git a/src/ChangeLog b/src/ChangeLog index 03a4b77..df89f68 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,180 @@ +1999-12-24 Martin Buchholz + + * XEmacs 21.2.25 is released. + +1999-12-22 Yoshiki Hayashi + + * syntax.c (vars_of_syntax): Initialize parse-sexp_ignore_comments. + +1999-12-21 Martin Buchholz + + * editfns.c (Fpoint_min): + (Fpoint_min_marker): + (Fpoint_max): + (Fpoint_max_marker): + (Fchar_after): + (Fchar_before): + Docstring fixes. What's a `buffer pointer' anyways? + + * editfns.c (char=): Remove unused and undocumented optional + third BUFFER argument. + + * toolbar.h (DEVICE_SUPPORTS_TOOLBARS_P): + * fns.c (plists_differ): + * elhash.c (HASH_CODE): + * elhash.c (KEYS_EQUAL_P): + * redisplay-output.c (redisplay_move_cursor): + * redisplay.c (create_text_block): + * floatfns.c (Flogb): + * glyphs-msw.c (mswindows_initialize_image_instance_mask): + * glyphs-msw.c (xpm_to_eimage): + * buffer.h (POINT_MARKER_P): + * syntax.c (scan_lists): + * cmdloop.c (Fcommand_loop_1): + * widget.c (Fwidget_apply): + * regex.c (STREQ): + Remove extra parens, esp. of the form ((expr)) + + * floatfns.c (Flogb): Make 64-bit clean. + +1999-12-12 Daniel Pittman + + * configure.in: + * configure.usage: + Clean up Athena widget support: + - Add `with-athena' to select a variant. + - Remove all `athena3d' options. + - Robust detection of Athena libraries and headers. + - Refuse to build with mismatched library and headers. + - Only build a 3d Athena if the user asks for it. + +1999-12-21 Andy Piper + + * redisplay.c (redisplay_frame): check for faces changed when + reseting subwindow caches. + + * glyphs.h (struct ii_keyword_entry): add copy_p. + (struct image_instantiator_methods): add query_geometry_method and + layout_children_method. + (IIFORMAT_VALID_GENERIC_KEYWORD): new macro to take into account + copying characteristics of keywords. + (IIFORMAT_VALID_NONCOPY_KEYWORD): new macro for defining keywords + whose arguments should not be copied by the specifier code. + (image_instance_geometry): new enum for layouts. + (struct Lisp_Image_Instance): re-jig for layouts and update + macros. + + * glyphs.c (string_instantiate): rename variables. + (image_instantiate): add strings to those widgets that are + instantiated per-window. + (image_copy_vector_instantiator): new function for copying glyph + specifier instantiators. + (image_copy_instantiator): ditto. + + * glyphs-x.c (x_update_subwindow): use new face update functions. + (update_widget_face): update to use new lwlib arg functions. + (update_tab_widget_face): new function for updating tab control + label faces. + (x_widget_instantiate): use new face update functions and new + lwlib arg functions. + (x_tab_control_instantiate): ditto. + (x_tab_control_set_property): ditto. + + * glyphs-widget.c (VALID_GUI_KEYWORDS): use NONCOPY keyword for + callbacks and other things that could recurse. + (VALID_GUI_KEYWORDS): + + * event-msw.c: fix cpp stuff for cygwin < b20. + + * config.h.in: move uid_t and friends to before the s&m files so + that they can be used there. + + * Makefile.in.in (debug-temacs): new target that adds emacs + environment before invoking gdb. + + * lwlib.h (_widget_args): new structure for holding widget + args. It is reference counted so that we don't have to copy Xt + args. + (_widget_value): remove widget args. Add reference to widget_args. + + * lwlib.c (free_widget_value_contents): free widget args using + free_widget_value_args. + + * lwlib-Xaw.c (xaw_update_one_widget): use new arg packet. + (xaw_update_one_widget): use XtIsSubclass for determining labels. + + * lwlib.c (lw_add_value_args_to_args): modify to use our reference + counted arg packet. + (lw_add_widget_value_arg): new function. Add an arg to the arg + packet. + (free_widget_value_args): new function. Remove a reference counted + arg packet. + (lw_copy_widget_value_args): new function. Copy reference counted + arg packet. + (merge_widget_value_args): new function. Do a merge of widget + args. + (merge_widget_value): use it. + (copy_widget_value_tree): copy widget args using reference + counting, since we can't easily copy the args we have been given. + + * specifier.h (struct specifier_methods): add copy_instantiator_method. + + * specifier.c (build_up_processed_list): use + copy_instantiator_method if defined. + +1999-12-19 Martin Buchholz + + * fns.c (Ffillarray): Use O(N), not O(N^2) algorithm for strings. + +1999-12-19 Hrvoje Niksic + + * profile.c (sigprof_handler): FUN retrieved from the backtrace + can also be a cons representing anonymous interpreted function. + +1999-12-18 Martin Buchholz + + * fns.c (mapcar1): + (Fmapconcat): + (Fmapcar): + (Fmapvector): + Docstring fixes. Make them consistent with the lispref and ANSI Lisp. + +1999-12-17 Martin Buchholz + + * print.c (print_internal): print ?+ instead of ?\+, etc... + Make printing a little more efficient. + Prevent buffer overflow if sizeof EMACS_INT > 8. + My first 128-bit fix! + +1999-12-14 Karl M. Hegbloom + + * filelock.c (unlock_all_files): GC_CONSP should be CONSP + +1999-12-17 Martin Buchholz + + * database.c: + * window.c: + * event-stream.c: + Remove last vestigial uses of GC_* + + * fns.c (mapcar1): Fix ***THREE*** obscure crashes in one function! + - Two of those involve evil mapping functions that destructively + modify a list being mapped over. + - Any garbage collection when mapping over a string could cause a + crash (typically in mapconcat). + +1999-12-08 Adrian Aichner + + * s\windowsnt.h (DIRECTORY_SEP): Initialize from + `Vdirectory_sep_char'. + + * lisp.h: Add declaration for `Vdirectory_sep_char' to allow + customization of `DIRECTORY_SEP' under native Windows NT. + +1999-12-14 Katsumi Yamaoka + + * buffer.c (Fbury_buffer): Add directions to the docstring. + 1999-12-14 Martin Buchholz * XEmacs 21.2.24 is released. @@ -27,7 +204,7 @@ * fileio.c (vars_of_fileio): directory separator fix from Mike Alexander. * windowsnt.h (ditto): -1999-11-27 Adrian Aichner +1999-11-27 Adrian Aichner * sysfile.h: Encapsulate `fstat' for Windows NT just like stat to get consistent file modification times. @@ -546,7 +723,7 @@ * esd.c: New file -1999-10-24 Adrian Aichner +1999-10-24 Adrian Aichner * lisp.h (Dynarr_declare): Fix boo-boo. @@ -4203,7 +4380,7 @@ (image_instantiator_format_create): xface declarations moved from glyphs-x.c. -1999-01-14 Adrian Aichner +1999-01-14 Adrian Aichner * event-stream.c (vars_of_event_stream): Fixing documentation. @@ -6698,7 +6875,7 @@ substitute-in-file-name because we don't know that the filename refers to a local file. -1998-06-24 Adrian Aichner +1998-06-24 Adrian Aichner * process-nt.c (nt_create_process): Try appending the standard executable file extensions to the filename if none supplied. diff --git a/src/Makefile.in.in b/src/Makefile.in.in index cef8f86..36aede3 100644 --- a/src/Makefile.in.in +++ b/src/Makefile.in.in @@ -320,6 +320,7 @@ DUMPENV = $(LOADPATH) $(MODULEPATH) temacs_loadup = $(DUMPENV) ./temacs -batch -l ${srcdir}/../lisp/loadup.el dump_temacs = ${temacs_loadup} dump run_temacs = ${temacs_loadup} run-temacs +debug_temacs = $(DUMPENV) gdb temacs release: temacs ${libsrc}DOC $(mo_file) ${other_files} #ifdef CANNOT_DUMP @@ -492,6 +493,9 @@ run-rtcmacs: rtcmacs runargs -batch -l ${srcdir}/../lisp/loadup.el run-temacs -q; \ run' rtcmacs +debug-temacs: temacs + -${debug_temacs} + ## Purify, Quantify, PureCoverage are software quality products from ## Rational, formerly Pure Atria, formerly Pure Software. ## diff --git a/src/buffer.c b/src/buffer.c index ec6afef..19d6345 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1624,6 +1624,8 @@ thus, the least likely buffer for \\[switch-to-buffer] to select by default. If BUFFER is nil or omitted, bury the current buffer. Also, if BUFFER is nil or omitted, remove the current buffer from the selected window if it is displayed there. +Because of this, you may need to specify (current-buffer) as +BUFFER when calling from minibuffer. If BEFORE is non-nil, it specifies a buffer before which BUFFER will be placed, instead of being placed at the end. */ diff --git a/src/buffer.h b/src/buffer.h index 6e3d980..f533083 100644 --- a/src/buffer.h +++ b/src/buffer.h @@ -1441,7 +1441,7 @@ do \ #define POINT_MARKER_P(marker) \ (XMARKER (marker)->buffer != 0 && \ - EQ ((marker), XMARKER (marker)->buffer->point_marker)) + EQ (marker, XMARKER (marker)->buffer->point_marker)) #define BUF_MARKERS(buf) ((buf)->markers) diff --git a/src/cmdloop.c b/src/cmdloop.c index 4d0cab8..eba7f4d 100644 --- a/src/cmdloop.c +++ b/src/cmdloop.c @@ -518,8 +518,8 @@ Don't call this unless you know what you're doing. like the real thing. This is slightly bogus, but it's in here for compatibility with Emacs 18. It's not even clear what the "right thing" is. */ - if (!(((STRINGP (Vexecuting_macro) || VECTORP (Vexecuting_macro)) - && XINT (Flength (Vexecuting_macro)) == 1))) + if (!((STRINGP (Vexecuting_macro) || VECTORP (Vexecuting_macro)) + && XINT (Flength (Vexecuting_macro)) == 1)) Vlast_command = Qt; #ifndef LISP_COMMAND_LOOP @@ -533,7 +533,7 @@ Don't call this unless you know what you're doing. focus is selected. */ if (focus_follows_mouse) investigate_frame_change (); - + /* Make sure the current window's buffer is selected. */ { Lisp_Object selected_window = Fselected_window (Qnil); diff --git a/src/config.h.in b/src/config.h.in index 3aa4aba..361563f 100644 --- a/src/config.h.in +++ b/src/config.h.in @@ -499,6 +499,16 @@ char *alloca(); #define CONST const +/* Allow the source to use standard types. Include these before the + s&m files so that they can use them. */ +#undef ssize_t +#undef size_t +#undef pid_t +#undef mode_t +#undef off_t +#undef uid_t +#undef gid_t + /* If defined, use unions instead of ints. A few systems (DEC Alpha) seem to require this, probably because something with the int definitions isn't right with 64-bit systems. */ @@ -550,15 +560,6 @@ extern "C" { #define SIGRETURN return #endif -/* Allow the source to use standard types */ -#undef ssize_t -#undef size_t -#undef pid_t -#undef mode_t -#undef off_t -#undef uid_t -#undef gid_t - /* Define DYNODUMP if it is necessary to properly dump on this system. Currently this is only Solaris 2.x, for x < 6. */ #undef DYNODUMP diff --git a/src/database.c b/src/database.c index 31739ab..b710015 100644 --- a/src/database.c +++ b/src/database.c @@ -113,7 +113,6 @@ struct Lisp_Database #define XDATABASE(x) XRECORD (x, database, Lisp_Database) #define XSETDATABASE(x, p) XSETRECORD (x, p, database) #define DATABASEP(x) RECORDP (x, database) -#define GC_DATABASEP(x) GC_RECORDP (x, database) #define CHECK_DATABASE(x) CHECK_RECORD (x, database) #define CONCHECK_DATABASE(x) CONCHECK_RECORD (x, database) #define DATABASE_LIVE_P(x) (x->live_p) diff --git a/src/editfns.c b/src/editfns.c index 30b173d..6866bef 100644 --- a/src/editfns.c +++ b/src/editfns.c @@ -440,7 +440,8 @@ If BUFFER is nil, the current buffer is assumed. DEFUN ("point-min", Fpoint_min, 0, 1, 0, /* Return the minimum permissible value of point in BUFFER. -This is 1, unless narrowing (a buffer restriction) is in effect. +This is 1, unless narrowing (a buffer restriction) +is in effect, in which case it may be greater. If BUFFER is nil, the current buffer is assumed. */ (buffer)) @@ -451,7 +452,8 @@ If BUFFER is nil, the current buffer is assumed. DEFUN ("point-min-marker", Fpoint_min_marker, 0, 1, 0, /* Return a marker to the minimum permissible value of point in BUFFER. -This is the beginning, unless narrowing (a buffer restriction) is in effect. +This is the beginning, unless narrowing (a buffer restriction) +is in effect, in which case it may be greater. If BUFFER is nil, the current buffer is assumed. */ (buffer)) @@ -463,7 +465,7 @@ If BUFFER is nil, the current buffer is assumed. DEFUN ("point-max", Fpoint_max, 0, 1, 0, /* Return the maximum permissible value of point in BUFFER. This is (1+ (buffer-size)), unless narrowing (a buffer restriction) -is in effect, in which case it is less. +is in effect, in which case it may be less. If BUFFER is nil, the current buffer is assumed. */ (buffer)) @@ -473,9 +475,9 @@ If BUFFER is nil, the current buffer is assumed. } DEFUN ("point-max-marker", Fpoint_max_marker, 0, 1, 0, /* -Return a marker to the maximum permissible value of point BUFFER. +Return a marker to the maximum permissible value of point in BUFFER. This is (1+ (buffer-size)), unless narrowing (a buffer restriction) -is in effect, in which case it is less. +is in effect, in which case it may be less. If BUFFER is nil, the current buffer is assumed. */ (buffer)) @@ -564,11 +566,11 @@ If BUFFER is nil, the current buffer is assumed. } DEFUN ("char-after", Fchar_after, 0, 2, 0, /* -Return character in BUFFER at position POS. -POS is an integer or a buffer pointer. +Return the character at position POS in BUFFER. +POS is an integer or a marker. If POS is out of range, the value is nil. -If BUFFER is nil, the current buffer is assumed. if POS is nil, the value of point is assumed. +If BUFFER is nil, the current buffer is assumed. */ (pos, buffer)) { @@ -582,17 +584,17 @@ if POS is nil, the value of point is assumed. } DEFUN ("char-before", Fchar_before, 0, 2, 0, /* -Return character in BUFFER before position POS. -POS is an integer or a buffer pointer. +Return the character preceding position POS in BUFFER. +POS is an integer or a marker. If POS is out of range, the value is nil. -If BUFFER is nil, the current buffer is assumed. if POS is nil, the value of point is assumed. +If BUFFER is nil, the current buffer is assumed. */ (pos, buffer)) { struct buffer *b = decode_buffer (buffer, 1); - Bufpos n = ((NILP (pos) ? BUF_PT (b) : - get_buffer_pos_char (b, pos, GB_NO_ERROR_IF_BAD))); + Bufpos n = (NILP (pos) ? BUF_PT (b) : + get_buffer_pos_char (b, pos, GB_NO_ERROR_IF_BAD)); n--; @@ -2231,17 +2233,16 @@ If BUFFER is nil, the current buffer is assumed. ? Qt : Qnil; } -DEFUN ("char=", Fchar_Equal, 2, 3, 0, /* +DEFUN ("char=", Fchar_Equal, 2, 2, 0, /* Return t if two characters match, case is significant. Both arguments must be characters (i.e. NOT integers). -The optional buffer argument is for symmetry and is ignored. */ - (c1, c2, buffer)) + (c1, c2)) { CHECK_CHAR_COERCE_INT (c1); CHECK_CHAR_COERCE_INT (c2); - return XCHAR(c1) == XCHAR(c2) ? Qt : Qnil; + return EQ (c1, c2) ? Qt : Qnil; } #if 0 /* Undebugged FSFmacs code */ diff --git a/src/elhash.c b/src/elhash.c index 384b1e5..29fe779 100644 --- a/src/elhash.c +++ b/src/elhash.c @@ -70,13 +70,13 @@ typedef struct Lisp_Hash_Table Lisp_Hash_Table; #define HASH_TABLE_DEFAULT_REHASH_SIZE 1.3 #define HASH_TABLE_MIN_SIZE 10 -#define HASH_CODE(key, ht) \ - (((((ht)->hash_function ? (ht)->hash_function (key) : LISP_HASH (key)) \ - * (ht)->golden_ratio) \ - % (ht)->size)) +#define HASH_CODE(key, ht) \ +((((ht)->hash_function ? (ht)->hash_function (key) : LISP_HASH (key)) \ + * (ht)->golden_ratio) \ + % (ht)->size) #define KEYS_EQUAL_P(key1, key2, testfun) \ - (EQ ((key1), (key2)) || ((testfun) && (testfun) ((key1), (key2)))) + (EQ (key1, key2) || ((testfun) && (testfun) (key1, key2))) #define LINEAR_PROBING_LOOP(probe, entries, size) \ for (; \ diff --git a/src/event-msw.c b/src/event-msw.c index 6a0c91c..3911ef6 100644 --- a/src/event-msw.c +++ b/src/event-msw.c @@ -73,7 +73,7 @@ typedef unsigned int SOCKET; #include #include -#if defined (__CYGWIN32__) && !defined (CYGWIN_VERSION_DLL_MAJOR) +#if defined (__CYGWIN32__) && (CYGWIN_VERSION_DLL_MAJOR < 20) typedef NMHDR *LPNMHDR; #endif diff --git a/src/event-stream.c b/src/event-stream.c index 48bd9fc..6cd03cd 100644 --- a/src/event-stream.c +++ b/src/event-stream.c @@ -384,7 +384,6 @@ static Lisp_Object recursive_sit_for; XRECORD (x, command_builder, struct command_builder) #define XSETCOMMAND_BUILDER(x, p) XSETRECORD (x, p, command_builder) #define COMMAND_BUILDERP(x) RECORDP (x, command_builder) -#define GC_COMMAND_BUILDERP(x) GC_RECORDP (x, command_builder) #define CHECK_COMMAND_BUILDER(x) CHECK_RECORD (x, command_builder) static Lisp_Object diff --git a/src/filelock.c b/src/filelock.c index 49bda9a..97573bb 100644 --- a/src/filelock.c +++ b/src/filelock.c @@ -371,7 +371,7 @@ unlock_all_files () register Lisp_Object tail; register struct buffer *b; - for (tail = Vbuffer_alist; GC_CONSP (tail); tail = XCDR (tail)) + for (tail = Vbuffer_alist; CONSP (tail); tail = XCDR (tail)) { b = XBUFFER (XCDR (XCAR (tail))); if (STRINGP (b->file_truename) && BUF_SAVE_MODIFF (b) < BUF_MODIFF (b)) diff --git a/src/floatfns.c b/src/floatfns.c index 5dd8496..21c819d 100644 --- a/src/floatfns.c +++ b/src/floatfns.c @@ -705,19 +705,19 @@ This is the same as the exponent of a float. double f = extract_float (arg); if (f == 0.0) - return make_int (- (int)((((EMACS_UINT) 1) << (VALBITS - 1)))); /* most-negative-fixnum */ + return make_int (- (EMACS_INT)(((EMACS_UINT) 1) << (VALBITS - 1))); /* most-negative-fixnum */ #ifdef HAVE_LOGB { Lisp_Object val; - IN_FLOAT (val = make_int ((int) logb (f)), "logb", arg); - return (val); + IN_FLOAT (val = make_int ((EMACS_INT) logb (f)), "logb", arg); + return val; } #else #ifdef HAVE_FREXP { int exqp; IN_FLOAT (frexp (f, &exqp), "logb", arg); - return (make_int (exqp - 1)); + return make_int (exqp - 1); } #else { @@ -741,7 +741,7 @@ This is the same as the exponent of a float. f /= d; val += i; } - return (make_int (val)); + return make_int (val); } #endif /* ! HAVE_FREXP */ #endif /* ! HAVE_LOGB */ diff --git a/src/fns.c b/src/fns.c index 0b110e8..6cbc1be 100644 --- a/src/fns.c +++ b/src/fns.c @@ -1894,10 +1894,10 @@ plists_differ (Lisp_Object a, Lisp_Object b, int nil_means_not_present, { if (!laxp ? EQ (k, keys [i]) : internal_equal (k, keys [i], depth)) { - if ((eqp - /* We narrowly escaped being Ebolified here. */ - ? !EQ_WITH_EBOLA_NOTICE (v, vals [i]) - : !internal_equal (v, vals [i], depth))) + if (eqp + /* We narrowly escaped being Ebolified here. */ + ? !EQ_WITH_EBOLA_NOTICE (v, vals [i]) + : !internal_equal (v, vals [i], depth)) /* a property in B has a different value than in A */ goto MISMATCH; flags [i] = 1; @@ -2864,7 +2864,7 @@ Do not use it. DEFUN ("fillarray", Ffillarray, 2, 2, 0, /* -Store each element of ARRAY with ITEM. +Destructively modify ARRAY by replacing each element with ITEM. ARRAY is a vector, bit vector, or string. */ (array, item)) @@ -2872,15 +2872,28 @@ ARRAY is a vector, bit vector, or string. retry: if (STRINGP (array)) { - Emchar charval; struct Lisp_String *s = XSTRING (array); - Charcount len = string_char_length (s); - Charcount i; + Bytecount old_bytecount = string_length (s); + Bytecount new_bytecount; + Bytecount item_bytecount; + Bufbyte item_buf[MAX_EMCHAR_LEN]; + Bufbyte *p; + Bufbyte *end; + CHECK_CHAR_COERCE_INT (item); CHECK_LISP_WRITEABLE (array); - charval = XCHAR (item); - for (i = 0; i < len; i++) - set_string_char (s, i, charval); + + item_bytecount = set_charptr_emchar (item_buf, XCHAR (item)); + new_bytecount = item_bytecount * string_char_length (s); + + resize_string (s, -1, new_bytecount - old_bytecount); + + for (p = string_data (s), end = p + new_bytecount; + p < end; + p += item_bytecount) + memcpy (p, item_buf, item_bytecount); + *p = '\0'; + bump_string_modiff (array); } else if (VECTORP (array)) @@ -3043,15 +3056,16 @@ changing the value of `foo'. } -/* This is the guts of all mapping functions. - Apply fn to each element of seq, one by one, - storing the results into elements of vals, a C vector of Lisp_Objects. - leni is the length of vals, which should also be the length of seq. +/* This is the guts of several mapping functions. + Apply FUNCTION to each element of SEQUENCE, one by one, + storing the results into elements of VALS, a C vector of Lisp_Objects. + LENI is the length of VALS, which should also be the length of SEQUENCE. If VALS is a null pointer, do not accumulate the results. */ static void -mapcar1 (size_t leni, Lisp_Object *vals, Lisp_Object fn, Lisp_Object seq) +mapcar1 (size_t leni, Lisp_Object *vals, + Lisp_Object function, Lisp_Object sequence) { Lisp_Object result; Lisp_Object args[2]; @@ -3064,21 +3078,61 @@ mapcar1 (size_t leni, Lisp_Object *vals, Lisp_Object fn, Lisp_Object seq) gcpro1.nvars = 0; } - args[0] = fn; + args[0] = function; - if (LISTP (seq)) + if (LISTP (sequence)) { - for (i = 0; i < leni; i++) + /* A devious `function' could either: + - insert garbage into the list in front of us, causing XCDR to crash + - amputate the list behind us using (setcdr), causing the remaining + elts to lose their GCPRO status. + + if (vals != 0) we avoid this by copying the elts into the + `vals' array. By a stroke of luck, `vals' is exactly large + enough to hold the elts left to be traversed as well as the + results computed so far. + + if (vals == 0) we don't have any free space available and + don't want to eat up any more stack with alloca(). + So we use EXTERNAL_LIST_LOOP_3 and GCPRO the tail. */ + + if (vals) { - args[1] = XCAR (seq); - seq = XCDR (seq); - result = Ffuncall (2, args); - if (vals) vals[gcpro1.nvars++] = result; + Lisp_Object *val = vals; + Lisp_Object elt; + + LIST_LOOP_2 (elt, sequence) + *val++ = elt; + + gcpro1.nvars = leni; + + for (i = 0; i < leni; i++) + { + args[1] = vals[i]; + vals[i] = Ffuncall (2, args); + } + } + else + { + Lisp_Object elt, tail; + struct gcpro ngcpro1; + + NGCPRO1 (tail); + + { + EXTERNAL_LIST_LOOP_3 (elt, sequence, tail) + { + args[1] = elt; + Ffuncall (2, args); + } + } + + NUNGCPRO; } } - else if (VECTORP (seq)) + else if (VECTORP (sequence)) { - Lisp_Object *objs = XVECTOR_DATA (seq); + Lisp_Object *objs = XVECTOR_DATA (sequence); for (i = 0; i < leni; i++) { args[1] = *objs++; @@ -3086,10 +3140,16 @@ mapcar1 (size_t leni, Lisp_Object *vals, Lisp_Object fn, Lisp_Object seq) if (vals) vals[gcpro1.nvars++] = result; } } - else if (STRINGP (seq)) + else if (STRINGP (sequence)) { - Bufbyte *p = XSTRING_DATA (seq); - for (i = 0; i < leni; i++) + /* The string data of `sequence' might be relocated during GC. */ + Bytecount slen = XSTRING_LENGTH (sequence); + Bufbyte *p = alloca_array (Bufbyte, slen); + Bufbyte *end = p + slen; + + memcpy (p, XSTRING_DATA (sequence), slen); + + while (p < end) { args[1] = make_char (charptr_emchar (p)); INC_CHARPTR (p); @@ -3097,9 +3157,9 @@ mapcar1 (size_t leni, Lisp_Object *vals, Lisp_Object fn, Lisp_Object seq) if (vals) vals[gcpro1.nvars++] = result; } } - else if (BIT_VECTORP (seq)) + else if (BIT_VECTORP (sequence)) { - struct Lisp_Bit_Vector *v = XBIT_VECTOR (seq); + struct Lisp_Bit_Vector *v = XBIT_VECTOR (sequence); for (i = 0; i < leni; i++) { args[1] = make_int (bit_vector_bit (v, i)); @@ -3108,20 +3168,21 @@ mapcar1 (size_t leni, Lisp_Object *vals, Lisp_Object fn, Lisp_Object seq) } } else - abort(); /* cannot get here since Flength(seq) did not get an error */ + abort(); /* cannot get here since Flength(sequence) did not get an error */ if (vals) UNGCPRO; } DEFUN ("mapconcat", Fmapconcat, 3, 3, 0, /* -Apply FN to each element of SEQ, and concat the results as strings. -In between each pair of results, stick in SEP. -Thus, " " as SEP results in spaces between the values returned by FN. +Apply FUNCTION to each element of SEQUENCE, and concat the results as strings. +In between each pair of results, insert SEPARATOR. Thus, using " " as +SEPARATOR results in spaces between the values returned by FUNCTION. +SEQUENCE may be a list, a vector, a bit vector, or a string. */ - (fn, seq, sep)) + (function, sequence, separator)) { - size_t len = XINT (Flength (seq)); + size_t len = XINT (Flength (sequence)); Lisp_Object *args; int i; struct gcpro gcpro1; @@ -3131,47 +3192,47 @@ Thus, " " as SEP results in spaces between the values returned by FN. args = alloca_array (Lisp_Object, nargs); - GCPRO1 (sep); - mapcar1 (len, args, fn, seq); + GCPRO1 (separator); + mapcar1 (len, args, function, sequence); UNGCPRO; for (i = len - 1; i >= 0; i--) args[i + i] = args[i]; for (i = 1; i < nargs; i += 2) - args[i] = sep; + args[i] = separator; return Fconcat (nargs, args); } DEFUN ("mapcar", Fmapcar, 2, 2, 0, /* -Apply FUNCTION to each element of SEQUENCE, and make a list of the results. -The result is a list just as long as SEQUENCE. +Apply FUNCTION to each element of SEQUENCE; return a list of the results. +The result is a list of the same length as SEQUENCE. SEQUENCE may be a list, a vector, a bit vector, or a string. */ - (fn, seq)) + (function, sequence)) { - size_t len = XINT (Flength (seq)); + size_t len = XINT (Flength (sequence)); Lisp_Object *args = alloca_array (Lisp_Object, len); - mapcar1 (len, args, fn, seq); + mapcar1 (len, args, function, sequence); return Flist (len, args); } DEFUN ("mapvector", Fmapvector, 2, 2, 0, /* -Apply FUNCTION to each element of SEQUENCE, making a vector of the results. +Apply FUNCTION to each element of SEQUENCE; return a vector of the results. The result is a vector of the same length as SEQUENCE. -SEQUENCE may be a list, a vector or a string. +SEQUENCE may be a list, a vector, a bit vector, or a string. */ - (fn, seq)) + (function, sequence)) { - size_t len = XINT (Flength (seq)); + size_t len = XINT (Flength (sequence)); Lisp_Object result = make_vector (len, Qnil); struct gcpro gcpro1; GCPRO1 (result); - mapcar1 (len, XVECTOR_DATA (result), fn, seq); + mapcar1 (len, XVECTOR_DATA (result), function, sequence); UNGCPRO; return result; @@ -3186,11 +3247,11 @@ which is more efficient if you do not use the results. The difference between this and `mapc' is that `mapc' supports all the spiffy Common Lisp arguments. You should normally use `mapc'. */ - (fn, seq)) + (function, sequence)) { - mapcar1 (XINT (Flength (seq)), 0, fn, seq); + mapcar1 (XINT (Flength (sequence)), 0, function, sequence); - return seq; + return sequence; } diff --git a/src/glyphs-msw.c b/src/glyphs-msw.c index fd318b3..00506b5 100644 --- a/src/glyphs-msw.c +++ b/src/glyphs-msw.c @@ -1,6 +1,6 @@ /* mswindows-specific glyph objects. Copyright (C) 1998, 1999 Andy Piper. - + This file is part of XEmacs. XEmacs is free software; you can redistribute it and/or modify it @@ -63,13 +63,13 @@ DECLARE_IMAGE_INSTANTIATOR_FORMAT (jpeg); #endif #ifdef HAVE_TIFF DECLARE_IMAGE_INSTANTIATOR_FORMAT (tiff); -#endif +#endif #ifdef HAVE_PNG DECLARE_IMAGE_INSTANTIATOR_FORMAT (png); -#endif +#endif #ifdef HAVE_GIF DECLARE_IMAGE_INSTANTIATOR_FORMAT (gif); -#endif +#endif #ifdef HAVE_XPM DEFINE_DEVICE_IIFORMAT (mswindows, xpm); #endif @@ -102,7 +102,7 @@ mswindows_initialize_dibitmap_image_instance (struct Lisp_Image_Instance *ii, int slices, enum image_instance_type type); static void -mswindows_initialize_image_instance_mask (struct Lisp_Image_Instance* image, +mswindows_initialize_image_instance_mask (struct Lisp_Image_Instance* image, struct frame* f); COLORREF mswindows_string_to_color (CONST char *name); @@ -137,7 +137,7 @@ static BITMAPINFO* convert_EImage_to_DIBitmap (Lisp_Object device, * structure - unless it has memory / color allocation implications * .... */ bmp_info=xnew_and_zero (BITMAPINFO); - + if (!bmp_info) { return NULL; @@ -145,7 +145,7 @@ static BITMAPINFO* convert_EImage_to_DIBitmap (Lisp_Object device, bmp_info->bmiHeader.biBitCount=24; /* just RGB triples for now */ bmp_info->bmiHeader.biCompression=BI_RGB; /* just RGB triples for now */ - bmp_info->bmiHeader.biSizeImage=width*height*3; + bmp_info->bmiHeader.biSizeImage=width*height*3; /* bitmap data needs to be in blue, green, red triples - in that order, eimage is in RGB format so we need to convert */ @@ -181,7 +181,7 @@ static BITMAPINFO* convert_EImage_to_DIBitmap (Lisp_Object device, /* use our quantize table to allocate the colors */ ncolors = qtable->num_active_colors; - bmp_info=(BITMAPINFO*)xmalloc_and_zero (sizeof(BITMAPINFOHEADER) + + bmp_info=(BITMAPINFO*)xmalloc_and_zero (sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * ncolors); if (!bmp_info) { @@ -191,12 +191,12 @@ static BITMAPINFO* convert_EImage_to_DIBitmap (Lisp_Object device, colortbl=(RGBQUAD*)(((unsigned char*)bmp_info)+sizeof(BITMAPINFOHEADER)); - bmp_info->bmiHeader.biBitCount=8; - bmp_info->bmiHeader.biCompression=BI_RGB; + bmp_info->bmiHeader.biBitCount=8; + bmp_info->bmiHeader.biCompression=BI_RGB; bmp_info->bmiHeader.biSizeImage=bpline*height; - bmp_info->bmiHeader.biClrUsed=ncolors; - bmp_info->bmiHeader.biClrImportant=ncolors; - + bmp_info->bmiHeader.biClrUsed=ncolors; + bmp_info->bmiHeader.biClrImportant=ncolors; + *bmp_data = (unsigned char *) xmalloc_and_zero (bpline * height); *bit_count = bpline * height; @@ -206,7 +206,7 @@ static BITMAPINFO* convert_EImage_to_DIBitmap (Lisp_Object device, xfree (bmp_info); return NULL; } - + /* build up an RGBQUAD colortable */ for (i = 0; i < qtable->num_active_colors; i++) { colortbl[i].rgbRed = (BYTE) qtable->rm[i]; @@ -228,14 +228,14 @@ static BITMAPINFO* convert_EImage_to_DIBitmap (Lisp_Object device, } } xfree (qtable); - } + } /* fix up the standard stuff */ bmp_info->bmiHeader.biWidth=width; bmp_info->bmiHeader.biHeight=height; bmp_info->bmiHeader.biPlanes=1; bmp_info->bmiHeader.biSize=sizeof(BITMAPINFOHEADER); bmp_info->bmiHeader.biXPelsPerMeter=0; /* unless you know better */ - bmp_info->bmiHeader.biYPelsPerMeter=0; + bmp_info->bmiHeader.biYPelsPerMeter=0; return bmp_info; } @@ -273,7 +273,7 @@ mswindows_locate_pixmap_file (Lisp_Object name) locate_file (temp, name, Qnil, &found, R_OK); UNGCPRO; } - + return found; } @@ -292,7 +292,7 @@ init_image_instance_from_dibitmap (struct Lisp_Image_Instance *ii, void *bmp_data, int bmp_bits, int slices, - Lisp_Object instantiator, + Lisp_Object instantiator, int x_hot, int y_hot, int create_mask) { @@ -311,20 +311,20 @@ init_image_instance_from_dibitmap (struct Lisp_Image_Instance *ii, signal_simple_error ("No selected frame on mswindows device", device); f = XFRAME (DEVICE_SELECTED_FRAME (d)); - + if (dest_mask & IMAGE_COLOR_PIXMAP_MASK) type = IMAGE_COLOR_PIXMAP; else if (dest_mask & IMAGE_POINTER_MASK) type = IMAGE_POINTER; - else + else incompatible_image_types (instantiator, dest_mask, IMAGE_COLOR_PIXMAP_MASK | IMAGE_POINTER_MASK); hdc = FRAME_MSWINDOWS_CDC (f); - bitmap=CreateDIBSection (hdc, + bitmap=CreateDIBSection (hdc, bmp_info, DIB_RGB_COLORS, - &bmp_buf, + &bmp_buf, 0,0); if (!bitmap || !bmp_buf) @@ -352,7 +352,7 @@ init_image_instance_from_dibitmap (struct Lisp_Image_Instance *ii, { mswindows_initialize_image_instance_mask (ii, f); } - + if (type == IMAGE_POINTER) { mswindows_initialize_image_instance_icon(ii, TRUE); @@ -372,12 +372,12 @@ image_instance_add_dibitmap (struct Lisp_Image_Instance *ii, struct frame *f = XFRAME (DEVICE_SELECTED_FRAME (d)); void* bmp_buf=0; HDC hdc = FRAME_MSWINDOWS_CDC (f); - HBITMAP bitmap = CreateDIBSection (hdc, + HBITMAP bitmap = CreateDIBSection (hdc, bmp_info, DIB_RGB_COLORS, - &bmp_buf, + &bmp_buf, 0,0); - + if (!bitmap || !bmp_buf) signal_simple_error ("Unable to create bitmap", instantiator); @@ -390,7 +390,7 @@ static void mswindows_init_image_instance_from_eimage (struct Lisp_Image_Instance *ii, int width, int height, int slices, - unsigned char *eimage, + unsigned char *eimage, int dest_mask, Lisp_Object instantiator, Lisp_Object domain) @@ -401,19 +401,19 @@ mswindows_init_image_instance_from_eimage (struct Lisp_Image_Instance *ii, int bmp_bits; COLORREF bkcolor; int slice; - + if (!DEVICE_MSWINDOWS_P (XDEVICE (device))) signal_simple_error ("Not an mswindows device", device); /* this is a hack but MaskBlt and TransparentBlt are not supported on most windows variants */ - bkcolor = COLOR_INSTANCE_MSWINDOWS_COLOR + bkcolor = COLOR_INSTANCE_MSWINDOWS_COLOR (XCOLOR_INSTANCE (FACE_BACKGROUND (Vdefault_face, domain))); for (slice = 0; slice < slices; slice++) { /* build a bitmap from the eimage */ - if (!(bmp_info=convert_EImage_to_DIBitmap (device, width, height, + if (!(bmp_info=convert_EImage_to_DIBitmap (device, width, height, eimage + (width * height * 3 * slice), &bmp_bits, &bmp_data))) { @@ -429,46 +429,46 @@ mswindows_init_image_instance_from_eimage (struct Lisp_Image_Instance *ii, else image_instance_add_dibitmap (ii, bmp_info, bmp_data, bmp_bits, slice, instantiator); - + xfree (bmp_info); xfree (bmp_data); } } -static void set_mono_pixel ( unsigned char* bits, - int bpline, int height, - int x, int y, int white ) -{ +static void set_mono_pixel ( unsigned char* bits, + int bpline, int height, + int x, int y, int white ) +{ int index; - unsigned char bitnum; + unsigned char bitnum; /* Find the byte on which this scanline begins */ - index = (height - y - 1) * bpline; + index = (height - y - 1) * bpline; /* Find the byte containing this pixel */ - index += (x >> 3); + index += (x >> 3); /* Which bit is it? */ - bitnum = (unsigned char)( 7 - (x % 8) ); + bitnum = (unsigned char)( 7 - (x % 8) ); if( white ) /* Turn it on */ bits[index] |= (1<bmiHeader.biHeight = height; bmp_info->bmiHeader.biPlanes=1; bmp_info->bmiHeader.biSize=sizeof(BITMAPINFOHEADER); - bmp_info->bmiHeader.biBitCount=1; - bmp_info->bmiHeader.biCompression=BI_RGB; - bmp_info->bmiHeader.biClrUsed = 2; - bmp_info->bmiHeader.biClrImportant = 2; - bmp_info->bmiHeader.biSizeImage = height * maskbpline; + bmp_info->bmiHeader.biBitCount=1; + bmp_info->bmiHeader.biCompression=BI_RGB; + bmp_info->bmiHeader.biClrUsed = 2; + bmp_info->bmiHeader.biClrImportant = 2; + bmp_info->bmiHeader.biSizeImage = height * maskbpline; bmp_info->bmiColors[0].rgbRed = 0; bmp_info->bmiColors[0].rgbGreen = 0; bmp_info->bmiColors[0].rgbBlue = 0; @@ -490,11 +490,11 @@ mswindows_initialize_image_instance_mask (struct Lisp_Image_Instance* image, bmp_info->bmiColors[1].rgbGreen = 255; bmp_info->bmiColors[1].rgbBlue = 255; bmp_info->bmiColors[0].rgbReserved = 0; - - if (!(mask = CreateDIBSection (hcdc, + + if (!(mask = CreateDIBSection (hcdc, bmp_info, DIB_RGB_COLORS, - &and_bits, + &and_bits, 0,0))) { xfree (bmp_info); @@ -509,10 +509,10 @@ mswindows_initialize_image_instance_mask (struct Lisp_Image_Instance* image, bmp_info->bmiHeader.biHeight = -height; bmp_info->bmiHeader.biPlanes=1; bmp_info->bmiHeader.biSize=sizeof(BITMAPINFOHEADER); - bmp_info->bmiHeader.biBitCount=24; - bmp_info->bmiHeader.biCompression=BI_RGB; - bmp_info->bmiHeader.biClrUsed = 0; - bmp_info->bmiHeader.biClrImportant = 0; + bmp_info->bmiHeader.biBitCount=24; + bmp_info->bmiHeader.biCompression=BI_RGB; + bmp_info->bmiHeader.biClrUsed = 0; + bmp_info->bmiHeader.biClrImportant = 0; bmp_info->bmiHeader.biSizeImage = height * bpline; dibits = xmalloc_and_zero (bpline * height); @@ -530,19 +530,19 @@ mswindows_initialize_image_instance_mask (struct Lisp_Image_Instance* image, /* now set the colored bits in the mask and transparent ones to black in the original */ - for(i=0; ibfOffBits; @@ -1036,9 +1036,9 @@ bmp_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, static void mswindows_resource_validate (Lisp_Object instantiator) { - if ((NILP (find_keyword_in_vector (instantiator, Q_file)) + if ((NILP (find_keyword_in_vector (instantiator, Q_file)) && - NILP (find_keyword_in_vector (instantiator, Q_resource_id))) + NILP (find_keyword_in_vector (instantiator, Q_resource_id))) || NILP (find_keyword_in_vector (instantiator, Q_resource_type))) signal_simple_error ("Must supply :file, :resource-id and :resource-type", @@ -1055,7 +1055,7 @@ mswindows_resource_normalize (Lisp_Object inst, Lisp_Object console_type) GCPRO2 (file, alist); - file = potential_pixmap_file_instantiator (inst, Q_file, Q_data, + file = potential_pixmap_file_instantiator (inst, Q_file, Q_data, console_type); if (CONSP (file)) /* failure locating filename */ @@ -1086,7 +1086,7 @@ mswindows_resource_possible_dest_types (void) return IMAGE_POINTER_MASK | IMAGE_COLOR_PIXMAP_MASK; } -typedef struct +typedef struct { char *name; int resource_id; @@ -1105,7 +1105,7 @@ typedef struct #endif #endif -static CONST resource_t bitmap_table[] = +static CONST resource_t bitmap_table[] = { /* bitmaps */ { "close", OBM_CLOSE }, @@ -1137,7 +1137,7 @@ static CONST resource_t bitmap_table[] = {0} }; -static CONST resource_t cursor_table[] = +static CONST resource_t cursor_table[] = { /* cursors */ { "normal", OCR_NORMAL }, @@ -1156,7 +1156,7 @@ static CONST resource_t cursor_table[] = { 0 } }; -static CONST resource_t icon_table[] = +static CONST resource_t icon_table[] = { /* icons */ { "sample", OIC_SAMPLE }, @@ -1170,8 +1170,8 @@ static CONST resource_t icon_table[] = static int resource_name_to_resource (Lisp_Object name, int type) { - CONST resource_t* res = (type == IMAGE_CURSOR ? cursor_table - : type == IMAGE_ICON ? icon_table + CONST resource_t* res = (type == IMAGE_CURSOR ? cursor_table + : type == IMAGE_ICON ? icon_table : bitmap_table); if (INTP (name)) @@ -1182,7 +1182,7 @@ static int resource_name_to_resource (Lisp_Object name, int type) { signal_simple_error ("invalid resource identifier", name); } - + do { Extbyte* nm=0; GET_C_STRING_OS_DATA_ALLOCA (name, nm); @@ -1221,9 +1221,9 @@ mswindows_resource_instantiate (Lisp_Object image_instance, Lisp_Object instanti Lisp_Object device = IMAGE_INSTANCE_DEVICE (ii); Lisp_Object file = find_keyword_in_vector (instantiator, Q_file); - Lisp_Object resource_type = find_keyword_in_vector (instantiator, + Lisp_Object resource_type = find_keyword_in_vector (instantiator, Q_resource_type); - Lisp_Object resource_id = find_keyword_in_vector (instantiator, + Lisp_Object resource_id = find_keyword_in_vector (instantiator, Q_resource_id); xzero (iconinfo); @@ -1237,7 +1237,7 @@ mswindows_resource_instantiate (Lisp_Object image_instance, Lisp_Object instanti iitype = IMAGE_POINTER; else if (dest_mask & IMAGE_COLOR_PIXMAP_MASK) iitype = IMAGE_COLOR_PIXMAP; - else + else incompatible_image_types (instantiator, dest_mask, IMAGE_COLOR_PIXMAP_MASK | IMAGE_POINTER_MASK); @@ -1251,7 +1251,7 @@ mswindows_resource_instantiate (Lisp_Object image_instance, Lisp_Object instanti #else fname = f; #endif - + if (NILP (resource_id)) resid = (LPCTSTR)fname; else @@ -1260,7 +1260,7 @@ mswindows_resource_instantiate (Lisp_Object image_instance, Lisp_Object instanti LOAD_LIBRARY_AS_DATAFILE); resid = MAKEINTRESOURCE (resource_name_to_resource (resource_id, type)); - + if (!resid) GET_C_STRING_OS_DATA_ALLOCA (resource_id, resid); } @@ -1268,11 +1268,11 @@ mswindows_resource_instantiate (Lisp_Object image_instance, Lisp_Object instanti else if (!(resid = MAKEINTRESOURCE (resource_name_to_resource (resource_id, type)))) signal_simple_error ("Invalid resource identifier", resource_id); - + /* load the image */ if (!(himage = LoadImage (hinst, resid, type, 0, 0, - LR_CREATEDIBSECTION | LR_DEFAULTSIZE | - LR_SHARED | + LR_CREATEDIBSECTION | LR_DEFAULTSIZE | + LR_SHARED | (!NILP (file) ? LR_LOADFROMFILE : 0)))) { signal_simple_error ("Cannot load image", instantiator); @@ -1284,9 +1284,9 @@ mswindows_resource_instantiate (Lisp_Object image_instance, Lisp_Object instanti mswindows_initialize_dibitmap_image_instance (ii, 1, iitype); IMAGE_INSTANCE_PIXMAP_FILENAME (ii) = file; - IMAGE_INSTANCE_PIXMAP_WIDTH (ii) = + IMAGE_INSTANCE_PIXMAP_WIDTH (ii) = GetSystemMetrics (type == IMAGE_CURSOR ? SM_CXCURSOR : SM_CXICON); - IMAGE_INSTANCE_PIXMAP_HEIGHT (ii) = + IMAGE_INSTANCE_PIXMAP_HEIGHT (ii) = GetSystemMetrics (type == IMAGE_CURSOR ? SM_CYCURSOR : SM_CYICON); IMAGE_INSTANCE_PIXMAP_DEPTH (ii) = 1; @@ -1383,7 +1383,7 @@ in this Software without prior written authorization from the X Consortium. * and return data * * Note that this file and ../X/XRdBitF.c look very similar.... Keep them - * that way (but don't use common source code so that people can have one + * that way (but don't use common source code so that people can have one * without the other). */ @@ -1433,7 +1433,7 @@ static void initHexTable() hexTable[' '] = -1; hexTable[','] = -1; hexTable['}'] = -1; hexTable['\n'] = -1; hexTable['\t'] = -1; - + initialized = TRUE; } @@ -1446,7 +1446,7 @@ static int NextInt ( FILE *fstream ) int value = 0; int gotone = 0; int done = 0; - + /* loop, accumulate hex value until find delimiter */ /* skip any initial delimiters found in read stream */ @@ -1527,7 +1527,7 @@ int read_bitmap_data (fstream, width, height, datap, x_hot, y_hot) } continue; } - + if (sscanf(line, "static short %s = {", name_and_type) == 1) version10p = 1; else if (sscanf(line,"static unsigned char %s = {",name_and_type) == 1) @@ -1544,7 +1544,7 @@ int read_bitmap_data (fstream, width, height, datap, x_hot, y_hot) if (strcmp("bits[]", type)) continue; - + if (!ww || !hh) RETURN (BitmapFileInvalid); @@ -1557,7 +1557,7 @@ int read_bitmap_data (fstream, width, height, datap, x_hot, y_hot) size = bytes_per_line * hh; data = (unsigned char *) Xmalloc ((unsigned int) size); - if (!data) + if (!data) RETURN (BitmapNoMemory); if (version10p) { @@ -1576,7 +1576,7 @@ int read_bitmap_data (fstream, width, height, datap, x_hot, y_hot) int bytes; for (bytes=0, ptr=data; bytesbmiHeader.biHeight=-(LONG)height; bmp_info->bmiHeader.biPlanes=1; bmp_info->bmiHeader.biSize=sizeof(BITMAPINFOHEADER); - bmp_info->bmiHeader.biBitCount=1; + bmp_info->bmiHeader.biBitCount=1; bmp_info->bmiHeader.biCompression=BI_RGB; - bmp_info->bmiHeader.biClrUsed = 2; - bmp_info->bmiHeader.biClrImportant = 2; - bmp_info->bmiHeader.biSizeImage = height * new_width; + bmp_info->bmiHeader.biClrUsed = 2; + bmp_info->bmiHeader.biClrImportant = 2; + bmp_info->bmiHeader.biSizeImage = height * new_width; bmp_info->bmiColors[0].rgbRed = GetRValue (fg); bmp_info->bmiColors[0].rgbGreen = GetGValue (fg); bmp_info->bmiColors[0].rgbBlue = GetBValue (fg); @@ -1694,21 +1694,21 @@ xbm_create_bitmap_from_data (HDC hdc, char *data, bmp_info->bmiColors[1].rgbGreen = GetGValue (bg); bmp_info->bmiColors[1].rgbBlue = GetBValue (bg); bmp_info->bmiColors[1].rgbReserved = 0; - - bitmap = CreateDIBSection (hdc, + + bitmap = CreateDIBSection (hdc, bmp_info, DIB_RGB_COLORS, - &bmp_buf, + &bmp_buf, 0,0); xfree (bmp_info); - + if (!bitmap || !bmp_buf) { xfree (new_data); return NULL; } - + /* copy in the actual bitmap */ memcpy (bmp_buf, new_data, height * new_width); xfree (new_data); @@ -1764,7 +1764,7 @@ init_image_instance_from_xbm_inline (struct Lisp_Image_Instance *ii, | IMAGE_POINTER_MASK); mswindows_initialize_dibitmap_image_instance (ii, 1, type); - + IMAGE_INSTANCE_PIXMAP_FILENAME (ii) = find_keyword_in_vector (instantiator, Q_file); IMAGE_INSTANCE_PIXMAP_WIDTH (ii) = width; @@ -1773,14 +1773,14 @@ init_image_instance_from_xbm_inline (struct Lisp_Image_Instance *ii, XSETINT (IMAGE_INSTANCE_PIXMAP_HOTSPOT_X (ii), 0); XSETINT (IMAGE_INSTANCE_PIXMAP_HOTSPOT_Y (ii), 0); IMAGE_INSTANCE_MSWINDOWS_MASK (ii) = mask ? mask : - xbm_create_bitmap_from_data (hdc, (Extbyte *) bits, width, height, + xbm_create_bitmap_from_data (hdc, (Extbyte *) bits, width, height, TRUE, black, white); switch (type) { case IMAGE_MONO_PIXMAP: - IMAGE_INSTANCE_MSWINDOWS_BITMAP (ii) = - xbm_create_bitmap_from_data (hdc, (Extbyte *) bits, width, height, + IMAGE_INSTANCE_MSWINDOWS_BITMAP (ii) = + xbm_create_bitmap_from_data (hdc, (Extbyte *) bits, width, height, FALSE, black, black); break; @@ -1808,8 +1808,8 @@ init_image_instance_from_xbm_inline (struct Lisp_Image_Instance *ii, IMAGE_INSTANCE_PIXMAP_FG (ii) = foreground; IMAGE_INSTANCE_PIXMAP_BG (ii) = background; - IMAGE_INSTANCE_MSWINDOWS_BITMAP (ii) = - xbm_create_bitmap_from_data (hdc, (Extbyte *) bits, width, height, + IMAGE_INSTANCE_MSWINDOWS_BITMAP (ii) = + xbm_create_bitmap_from_data (hdc, (Extbyte *) bits, width, height, FALSE, fg, black); } break; @@ -1824,9 +1824,9 @@ init_image_instance_from_xbm_inline (struct Lisp_Image_Instance *ii, if (NILP (background)) background = pointer_bg; - IMAGE_INSTANCE_PIXMAP_HOTSPOT_X (ii) = + IMAGE_INSTANCE_PIXMAP_HOTSPOT_X (ii) = find_keyword_in_vector (instantiator, Q_hotspot_x); - IMAGE_INSTANCE_PIXMAP_HOTSPOT_Y (ii) = + IMAGE_INSTANCE_PIXMAP_HOTSPOT_Y (ii) = find_keyword_in_vector (instantiator, Q_hotspot_y); IMAGE_INSTANCE_PIXMAP_FG (ii) = foreground; IMAGE_INSTANCE_PIXMAP_BG (ii) = background; @@ -1835,8 +1835,8 @@ init_image_instance_from_xbm_inline (struct Lisp_Image_Instance *ii, if (COLOR_INSTANCEP (background)) bg = COLOR_INSTANCE_MSWINDOWS_COLOR (XCOLOR_INSTANCE (background)); - IMAGE_INSTANCE_MSWINDOWS_BITMAP (ii) = - xbm_create_bitmap_from_data (hdc, (Extbyte *) bits, width, height, + IMAGE_INSTANCE_MSWINDOWS_BITMAP (ii) = + xbm_create_bitmap_from_data (hdc, (Extbyte *) bits, width, height, TRUE, fg, black); mswindows_initialize_image_instance_icon (ii, TRUE); } @@ -1857,7 +1857,7 @@ xbm_instantiate_1 (Lisp_Object image_instance, Lisp_Object instantiator, Lisp_Object mask_data = find_keyword_in_vector (instantiator, Q_mask_data); Lisp_Object mask_file = find_keyword_in_vector (instantiator, Q_mask_file); struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); - struct frame* f = XFRAME (DEVICE_SELECTED_FRAME + struct frame* f = XFRAME (DEVICE_SELECTED_FRAME (XDEVICE (IMAGE_INSTANCE_DEVICE (ii)))); HDC hdc = FRAME_MSWINDOWS_CDC (f); HBITMAP mask = 0; @@ -1885,7 +1885,7 @@ xbm_instantiate_1 (Lisp_Object image_instance, Lisp_Object instantiator, /* Instantiate method for XBM's. */ static void -mswindows_xbm_instantiate (Lisp_Object image_instance, +mswindows_xbm_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, Lisp_Object pointer_fg, Lisp_Object pointer_bg, int dest_mask, Lisp_Object domain) @@ -2007,12 +2007,12 @@ mswindows_print_image_instance (struct Lisp_Image_Instance *p, case IMAGE_MONO_PIXMAP: case IMAGE_COLOR_PIXMAP: case IMAGE_POINTER: - sprintf (buf, " (0x%lx", + sprintf (buf, " (0x%lx", (unsigned long) IMAGE_INSTANCE_MSWINDOWS_BITMAP (p)); write_c_string (buf, printcharfun); if (IMAGE_INSTANCE_MSWINDOWS_MASK (p)) { - sprintf (buf, "/0x%lx", + sprintf (buf, "/0x%lx", (unsigned long) IMAGE_INSTANCE_MSWINDOWS_MASK (p)); write_c_string (buf, printcharfun); } @@ -2034,7 +2034,7 @@ mswindows_finalize_image_instance (struct Lisp_Image_Instance *p) if (DEVICE_LIVE_P (XDEVICE (p->device))) { if (IMAGE_INSTANCE_TYPE (p) == IMAGE_WIDGET - || + || IMAGE_INSTANCE_TYPE (p) == IMAGE_SUBWINDOW) { #ifdef DEBUG_WIDGETS @@ -2092,8 +2092,8 @@ mswindows_unmap_subwindow (struct Lisp_Image_Instance *p) { if (IMAGE_INSTANCE_SUBWINDOW_ID (p)) { - SetWindowPos (IMAGE_INSTANCE_MSWINDOWS_CLIPWINDOW (p), - NULL, + SetWindowPos (IMAGE_INSTANCE_MSWINDOWS_CLIPWINDOW (p), + NULL, 0, 0, 0, 0, SWP_HIDEWINDOW | SWP_NOMOVE | SWP_NOSIZE | SWP_NOSENDCHANGING); @@ -2108,32 +2108,32 @@ mswindows_map_subwindow (struct Lisp_Image_Instance *p, int x, int y, { /* move the window before mapping it ... */ SetWindowPos (IMAGE_INSTANCE_MSWINDOWS_CLIPWINDOW (p), - NULL, + NULL, x, y, dga->width, dga->height, - SWP_NOZORDER + SWP_NOZORDER | SWP_NOCOPYBITS | SWP_NOSENDCHANGING); /* ... adjust the child ... */ SetWindowPos (WIDGET_INSTANCE_MSWINDOWS_HANDLE (p), - NULL, + NULL, -dga->xoffset, -dga->yoffset, 0, 0, SWP_NOZORDER | SWP_NOSIZE | SWP_NOCOPYBITS | SWP_NOSENDCHANGING); /* ... now map it - we are not allowed to move it at the same time. */ - SetWindowPos (IMAGE_INSTANCE_MSWINDOWS_CLIPWINDOW (p), - NULL, + SetWindowPos (IMAGE_INSTANCE_MSWINDOWS_CLIPWINDOW (p), + NULL, 0, 0, 0, 0, SWP_NOZORDER | SWP_NOSIZE | SWP_NOMOVE - | SWP_SHOWWINDOW | SWP_NOCOPYBITS + | SWP_SHOWWINDOW | SWP_NOCOPYBITS | SWP_NOSENDCHANGING); } /* resize the subwindow instance */ -static void +static void mswindows_resize_subwindow (struct Lisp_Image_Instance* ii, int w, int h) { /* Set the size of the control .... */ - SetWindowPos (WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii), - NULL, + SetWindowPos (WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii), + NULL, 0, 0, w, h, SWP_NOZORDER | SWP_NOMOVE | SWP_NOCOPYBITS | SWP_NOSENDCHANGING); @@ -2150,8 +2150,8 @@ mswindows_update_subwindow (struct Lisp_Image_Instance *p) if ( EQ (IMAGE_INSTANCE_WIDGET_TYPE (p), Qbutton)) { if (gui_item_selected_p (IMAGE_INSTANCE_WIDGET_ITEM (p))) - SendMessage (WIDGET_INSTANCE_MSWINDOWS_HANDLE (p), - BM_SETCHECK, (WPARAM)BST_CHECKED, 0); + SendMessage (WIDGET_INSTANCE_MSWINDOWS_HANDLE (p), + BM_SETCHECK, (WPARAM)BST_CHECKED, 0); else SendMessage (WIDGET_INSTANCE_MSWINDOWS_HANDLE (p), BM_SETCHECK, (WPARAM)BST_UNCHECKED, 0); @@ -2159,12 +2159,12 @@ mswindows_update_subwindow (struct Lisp_Image_Instance *p) /* set the widget font from the widget face */ SendMessage (WIDGET_INSTANCE_MSWINDOWS_HANDLE (p), - WM_SETFONT, - (WPARAM)FONT_INSTANCE_MSWINDOWS_HFONT + WM_SETFONT, + (WPARAM)FONT_INSTANCE_MSWINDOWS_HFONT (XFONT_INSTANCE (widget_face_font_info - (IMAGE_INSTANCE_SUBWINDOW_FRAME (p), + (IMAGE_INSTANCE_SUBWINDOW_FRAME (p), IMAGE_INSTANCE_WIDGET_FACE (p), - 0, 0))), + 0, 0))), MAKELPARAM (TRUE, 0)); } } @@ -2228,21 +2228,21 @@ mswindows_subwindow_instantiate (Lisp_Object image_instance, Lisp_Object instant NULL, /* No menu */ NULL, /* must be null for this class */ NULL)) == NULL) - signal_simple_error ("window creation failed with code", + signal_simple_error ("window creation failed with code", make_int (GetLastError())); - wnd = CreateWindow( "STATIC", + wnd = CreateWindow( "STATIC", "", - WS_CHILD, + WS_CHILD, 0, /* starting x position */ 0, /* starting y position */ IMAGE_INSTANCE_WIDGET_WIDTH (ii), IMAGE_INSTANCE_WIDGET_HEIGHT (ii), IMAGE_INSTANCE_MSWINDOWS_CLIPWINDOW (ii), 0, - (HINSTANCE) + (HINSTANCE) GetWindowLong (FRAME_MSWINDOWS_HANDLE (XFRAME (frame)), - GWL_HINSTANCE), + GWL_HINSTANCE), NULL); SetWindowLong (wnd, GWL_USERDATA, (LONG)LISP_TO_VOID(image_instance)); @@ -2258,11 +2258,11 @@ mswindows_image_instance_equal (struct Lisp_Image_Instance *p1, case IMAGE_MONO_PIXMAP: case IMAGE_COLOR_PIXMAP: case IMAGE_POINTER: - if (IMAGE_INSTANCE_MSWINDOWS_BITMAP (p1) + if (IMAGE_INSTANCE_MSWINDOWS_BITMAP (p1) != IMAGE_INSTANCE_MSWINDOWS_BITMAP (p2)) return 0; break; - + default: break; } @@ -2279,7 +2279,7 @@ mswindows_image_instance_hash (struct Lisp_Image_Instance *p, int depth) case IMAGE_COLOR_PIXMAP: case IMAGE_POINTER: return (unsigned long) IMAGE_INSTANCE_MSWINDOWS_BITMAP (p); - + default: return 0; } @@ -2305,7 +2305,7 @@ mswindows_initialize_dibitmap_image_instance (struct Lisp_Image_Instance *ii, IMAGE_INSTANCE_PIXMAP_FG (ii) = Qnil; IMAGE_INSTANCE_PIXMAP_BG (ii) = Qnil; IMAGE_INSTANCE_PIXMAP_MAXSLICE (ii) = slices; - IMAGE_INSTANCE_MSWINDOWS_BITMAP_SLICES (ii) = + IMAGE_INSTANCE_MSWINDOWS_BITMAP_SLICES (ii) = xnew_array_and_zero (HBITMAP, slices); } @@ -2368,12 +2368,12 @@ mswindows_widget_instantiate (Lisp_Object image_instance, Lisp_Object instantiat (HMENU)id, /* No menu */ NULL, /* must be null for this class */ NULL)) == NULL) - signal_simple_error ("window creation failed with code", + signal_simple_error ("window creation failed with code", make_int (GetLastError())); - if ((wnd = CreateWindowEx( + if ((wnd = CreateWindowEx( exflags /* | WS_EX_NOPARENTNOTIFY*/, - class, + class, nm, flags | WS_CHILD | WS_VISIBLE, 0, /* starting x position */ @@ -2383,23 +2383,23 @@ mswindows_widget_instantiate (Lisp_Object image_instance, Lisp_Object instantiat /* parent window */ IMAGE_INSTANCE_MSWINDOWS_CLIPWINDOW (ii), (HMENU)id, /* No menu */ - (HINSTANCE) - GetWindowLong + (HINSTANCE) + GetWindowLong (FRAME_MSWINDOWS_HANDLE (XFRAME (frame)), - GWL_HINSTANCE), + GWL_HINSTANCE), NULL)) == NULL) - signal_simple_error ("window creation failed with code", + signal_simple_error ("window creation failed with code", make_int (GetLastError())); IMAGE_INSTANCE_SUBWINDOW_ID (ii) = wnd; SetWindowLong (wnd, GWL_USERDATA, (LONG)LISP_TO_VOID(image_instance)); /* set the widget font from the widget face */ - SendMessage (wnd, WM_SETFONT, - (WPARAM)FONT_INSTANCE_MSWINDOWS_HFONT - (XFONT_INSTANCE (widget_face_font_info - (domain, + SendMessage (wnd, WM_SETFONT, + (WPARAM)FONT_INSTANCE_MSWINDOWS_HFONT + (XFONT_INSTANCE (widget_face_font_info + (domain, IMAGE_INSTANCE_WIDGET_FACE (ii), - 0, 0))), + 0, 0))), MAKELPARAM (TRUE, 0)); } @@ -2432,7 +2432,7 @@ mswindows_button_instantiate (Lisp_Object image_instance, Lisp_Object instantiat glyph = glyph_image_instance (glyph, domain, ERROR_ME, 1); if (IMAGE_INSTANCEP (glyph)) - flags |= XIMAGE_INSTANCE_MSWINDOWS_BITMAP (glyph) ? + flags |= XIMAGE_INSTANCE_MSWINDOWS_BITMAP (glyph) ? BS_BITMAP : BS_ICON; } @@ -2450,20 +2450,20 @@ mswindows_button_instantiate (Lisp_Object image_instance, Lisp_Object instantiat flags |= BS_DEFPUSHBUTTON; mswindows_widget_instantiate (image_instance, instantiator, pointer_fg, - pointer_bg, dest_mask, domain, "BUTTON", flags, + pointer_bg, dest_mask, domain, "BUTTON", flags, WS_EX_CONTROLPARENT); wnd = WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii); /* set the checked state */ if (gui_item_selected_p (gui)) - SendMessage (wnd, BM_SETCHECK, (WPARAM)BST_CHECKED, 0); + SendMessage (wnd, BM_SETCHECK, (WPARAM)BST_CHECKED, 0); else SendMessage (wnd, BM_SETCHECK, (WPARAM)BST_UNCHECKED, 0); /* add the image if one was given */ if (!NILP (glyph) && IMAGE_INSTANCEP (glyph)) { - SendMessage (wnd, BM_SETIMAGE, - (WPARAM) (XIMAGE_INSTANCE_MSWINDOWS_BITMAP (glyph) ? + SendMessage (wnd, BM_SETIMAGE, + (WPARAM) (XIMAGE_INSTANCE_MSWINDOWS_BITMAP (glyph) ? IMAGE_BITMAP : IMAGE_ICON), (LPARAM) (XIMAGE_INSTANCE_MSWINDOWS_BITMAP (glyph) ? XIMAGE_INSTANCE_MSWINDOWS_BITMAP (glyph) : @@ -2478,7 +2478,7 @@ mswindows_edit_field_instantiate (Lisp_Object image_instance, Lisp_Object instan int dest_mask, Lisp_Object domain) { mswindows_widget_instantiate (image_instance, instantiator, pointer_fg, - pointer_bg, dest_mask, domain, "EDIT", + pointer_bg, dest_mask, domain, "EDIT", ES_LEFT | ES_AUTOHSCROLL | WS_TABSTOP | WS_BORDER, WS_EX_CLIENTEDGE | WS_EX_CONTROLPARENT); @@ -2493,24 +2493,24 @@ mswindows_progress_gauge_instantiate (Lisp_Object image_instance, Lisp_Object in HWND wnd; struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); mswindows_widget_instantiate (image_instance, instantiator, pointer_fg, - pointer_bg, dest_mask, domain, PROGRESS_CLASS, + pointer_bg, dest_mask, domain, PROGRESS_CLASS, WS_TABSTOP | WS_BORDER | PBS_SMOOTH, WS_EX_CLIENTEDGE | WS_EX_CONTROLPARENT); wnd = WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii); /* set the colors */ #ifdef PBS_SETBKCOLOR - SendMessage (wnd, PBS_SETBKCOLOR, 0, - (LPARAM) (COLOR_INSTANCE_MSWINDOWS_COLOR - (XCOLOR_INSTANCE - (FACE_BACKGROUND + SendMessage (wnd, PBS_SETBKCOLOR, 0, + (LPARAM) (COLOR_INSTANCE_MSWINDOWS_COLOR + (XCOLOR_INSTANCE + (FACE_BACKGROUND (XIMAGE_INSTANCE_WIDGET_FACE (ii), XIMAGE_INSTANCE_SUBWINDOW_FRAME (ii)))))); #endif #ifdef PBS_SETBARCOLOR - SendMessage (wnd, PBS_SETBARCOLOR, 0, - (L:PARAM) (COLOR_INSTANCE_MSWINDOWS_COLOR - (XCOLOR_INSTANCE - (FACE_FOREGROUND + SendMessage (wnd, PBS_SETBARCOLOR, 0, + (L:PARAM) (COLOR_INSTANCE_MSWINDOWS_COLOR + (XCOLOR_INSTANCE + (FACE_FOREGROUND (XIMAGE_INSTANCE_WIDGET_FACE (ii), XIMAGE_INSTANCE_SUBWINDOW_FRAME (ii)))))); #endif @@ -2528,12 +2528,12 @@ static HTREEITEM add_tree_item (Lisp_Object image_instance, tvitem.hInsertAfter = TVI_LAST; tvitem.item.mask = TVIF_TEXT | TVIF_CHILDREN; tvitem.item.cChildren = children; - + if (GUI_ITEMP (item)) { tvitem.item.lParam = mswindows_register_gui_item (item, domain); tvitem.item.mask |= TVIF_PARAM; - GET_C_STRING_OS_DATA_ALLOCA (XGUI_ITEM (item)->name, + GET_C_STRING_OS_DATA_ALLOCA (XGUI_ITEM (item)->name, tvitem.item.pszText); } else @@ -2541,7 +2541,7 @@ static HTREEITEM add_tree_item (Lisp_Object image_instance, tvitem.item.cchTextMax = strlen (tvitem.item.pszText); - if ((ret = (HTREEITEM)SendMessage (wnd, TVM_INSERTITEM, + if ((ret = (HTREEITEM)SendMessage (wnd, TVM_INSERTITEM, 0, (LPARAM)&tvitem)) == 0) signal_simple_error ("error adding tree view entry", item); @@ -2576,18 +2576,18 @@ mswindows_tree_view_instantiate (Lisp_Object image_instance, Lisp_Object instant HTREEITEM parent; struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); mswindows_widget_instantiate (image_instance, instantiator, pointer_fg, - pointer_bg, dest_mask, domain, WC_TREEVIEW, + pointer_bg, dest_mask, domain, WC_TREEVIEW, WS_TABSTOP | WS_BORDER | PBS_SMOOTH | TVS_HASLINES | TVS_HASBUTTONS, WS_EX_CLIENTEDGE | WS_EX_CONTROLPARENT); wnd = WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii); - + /* define a root */ - parent = add_tree_item (image_instance, wnd, NULL, - XCAR (IMAGE_INSTANCE_WIDGET_ITEMS (ii)), + parent = add_tree_item (image_instance, wnd, NULL, + XCAR (IMAGE_INSTANCE_WIDGET_ITEMS (ii)), TRUE, domain); - + /* recursively add items to the tree view */ /* add items to the tab */ LIST_LOOP (rest, XCDR (IMAGE_INSTANCE_WIDGET_ITEMS (ii))) @@ -2607,12 +2607,12 @@ static TC_ITEM* add_tab_item (Lisp_Object image_instance, TC_ITEM tvitem, *ret; tvitem.mask = TCIF_TEXT; - + if (GUI_ITEMP (item)) { tvitem.lParam = mswindows_register_gui_item (item, domain); tvitem.mask |= TCIF_PARAM; - GET_C_STRING_OS_DATA_ALLOCA (XGUI_ITEM (item)->name, + GET_C_STRING_OS_DATA_ALLOCA (XGUI_ITEM (item)->name, tvitem.pszText); } else @@ -2623,7 +2623,7 @@ static TC_ITEM* add_tab_item (Lisp_Object image_instance, tvitem.cchTextMax = strlen (tvitem.pszText); - if ((ret = (TC_ITEM*)SendMessage (wnd, TCM_INSERTITEM, + if ((ret = (TC_ITEM*)SendMessage (wnd, TCM_INSERTITEM, index, (LPARAM)&tvitem)) < 0) signal_simple_error ("error adding tab entry", item); @@ -2640,7 +2640,7 @@ mswindows_tab_control_instantiate (Lisp_Object image_instance, Lisp_Object insta int index = 0; struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); mswindows_widget_instantiate (image_instance, instantiator, pointer_fg, - pointer_bg, dest_mask, domain, WC_TABCONTROL, + pointer_bg, dest_mask, domain, WC_TABCONTROL, /* borders don't suit tabs so well */ WS_TABSTOP, WS_EX_CONTROLPARENT); @@ -2670,15 +2670,15 @@ mswindows_tab_control_set_property (Lisp_Object image_instance, Lisp_Object prop /* delete the pre-existing items */ SendMessage (wnd, TCM_DELETEALLITEMS, 0, 0); - - IMAGE_INSTANCE_WIDGET_ITEMS (ii) = - Fcons (XCAR (IMAGE_INSTANCE_WIDGET_ITEMS (ii)), + + IMAGE_INSTANCE_WIDGET_ITEMS (ii) = + Fcons (XCAR (IMAGE_INSTANCE_WIDGET_ITEMS (ii)), parse_gui_item_tree_children (val)); /* add items to the tab */ LIST_LOOP (rest, XCDR (IMAGE_INSTANCE_WIDGET_ITEMS (ii))) { - add_tab_item (image_instance, wnd, XCAR (rest), + add_tab_item (image_instance, wnd, XCAR (rest), IMAGE_INSTANCE_SUBWINDOW_FRAME (ii), index); index++; } @@ -2695,7 +2695,7 @@ mswindows_label_instantiate (Lisp_Object image_instance, Lisp_Object instantiato int dest_mask, Lisp_Object domain) { mswindows_widget_instantiate (image_instance, instantiator, pointer_fg, - pointer_bg, dest_mask, domain, "STATIC", + pointer_bg, dest_mask, domain, "STATIC", 0, WS_EX_STATICEDGE); } @@ -2706,7 +2706,7 @@ mswindows_scrollbar_instantiate (Lisp_Object image_instance, Lisp_Object instant int dest_mask, Lisp_Object domain) { mswindows_widget_instantiate (image_instance, instantiator, pointer_fg, - pointer_bg, dest_mask, domain, "SCROLLBAR", + pointer_bg, dest_mask, domain, "SCROLLBAR", 0, WS_EX_CLIENTEDGE ); } @@ -2735,14 +2735,14 @@ mswindows_combo_box_instantiate (Lisp_Object image_instance, Lisp_Object instant pointer_bg, dest_mask, domain, len + 1, 0, 0); mswindows_widget_instantiate (image_instance, instantiator, pointer_fg, - pointer_bg, dest_mask, domain, "COMBOBOX", + pointer_bg, dest_mask, domain, "COMBOBOX", WS_BORDER | WS_TABSTOP | CBS_DROPDOWN - | CBS_AUTOHSCROLL + | CBS_AUTOHSCROLL | CBS_HASSTRINGS | WS_VSCROLL, WS_EX_CLIENTEDGE | WS_EX_CONTROLPARENT); /* reset the height */ - widget_text_to_pixel_conversion (domain, - IMAGE_INSTANCE_WIDGET_FACE (ii), 1, 0, + widget_text_to_pixel_conversion (domain, + IMAGE_INSTANCE_WIDGET_FACE (ii), 1, 0, &IMAGE_INSTANCE_SUBWINDOW_HEIGHT (ii), 0); wnd = WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii); /* add items to the combo box */ @@ -2767,7 +2767,7 @@ mswindows_widget_property (Lisp_Object image_instance, Lisp_Object prop) { Extcount len = SendMessage (wnd, WM_GETTEXTLENGTH, 0, 0); Extbyte* buf =alloca (len+1); - + SendMessage (wnd, WM_GETTEXT, (WPARAM)len+1, (LPARAM) buf); return build_ext_string (buf, FORMAT_OS); } @@ -2920,13 +2920,13 @@ image_instantiator_format_create_glyphs_mswindows (void) #endif #ifdef HAVE_TIFF IIFORMAT_VALID_CONSOLE (mswindows, tiff); -#endif +#endif #ifdef HAVE_PNG IIFORMAT_VALID_CONSOLE (mswindows, png); -#endif +#endif #ifdef HAVE_GIF IIFORMAT_VALID_CONSOLE (mswindows, gif); -#endif +#endif #ifdef HAVE_WIDGETS /* button widget */ INITIALIZE_DEVICE_IIFORMAT (mswindows, button); @@ -2935,7 +2935,7 @@ image_instantiator_format_create_glyphs_mswindows (void) INITIALIZE_DEVICE_IIFORMAT (mswindows, edit_field); IIFORMAT_HAS_DEVMETHOD (mswindows, edit_field, instantiate); - + INITIALIZE_DEVICE_IIFORMAT (mswindows, subwindow); IIFORMAT_HAS_DEVMETHOD (mswindows, subwindow, instantiate); @@ -2991,7 +2991,7 @@ image_instantiator_format_create_glyphs_mswindows (void) IIFORMAT_HAS_METHOD (mswindows_resource, possible_dest_types); IIFORMAT_HAS_METHOD (mswindows_resource, instantiate); - IIFORMAT_VALID_KEYWORD (mswindows_resource, Q_resource_type, + IIFORMAT_VALID_KEYWORD (mswindows_resource, Q_resource_type, check_valid_resource_symbol); IIFORMAT_VALID_KEYWORD (mswindows_resource, Q_resource_id, check_valid_resource_id); IIFORMAT_VALID_KEYWORD (mswindows_resource, Q_file, check_valid_string); diff --git a/src/glyphs-widget.c b/src/glyphs-widget.c index 69c3efe..eb399c1 100644 --- a/src/glyphs-widget.c +++ b/src/glyphs-widget.c @@ -599,7 +599,49 @@ layout_normalize (Lisp_Object inst, Lisp_Object console_type) return inst; } -/* Instantiate a layout widget. */ +/* Instantiate a layout widget. Sizing commentary: we have a number of + problems that we would like to address. Some consider some of these + more important than others. Currently size information is + determined at instantiation time and is then fixed forever + after. Generally this is not what we want. Users want size to be + "big enough" to accommodate whatever they are trying to show and + this is dependent on text length, lines, font metrics etc. Of + course these attributes can change dynamically and so the size + should changed dynamically also. Only in a few limited cases should + the size be fixed and remain fixed. Of course this actually means + that we don't really want to specifiy the size *at all* for most + widgets - we want it to be discovered dynamically. Thus we can + envisage the following scenarios: + + 1. A button is sized to accommodate its text, the text changes and the + button should change size also. + + 2. A button is given an explicit size. Its size should never change. + + 3. Layout is put inside an area. The size of the area changes, the + layout should change with it. + + 4. A button grows to accommodate additional text. The whitespace + around it should be modified to cope with the new layout + requirements. + + 5. A button grows. The area surrounding it should grow also if + possible. + + What metrics are important? + 1. Actual width and height. + + 2. Whether the width and height are what the widget actually wants, or + whether it can grow or shrink. + + Text glyphs are particularly troublesome since their metrics depend + on the context in which they are being viewed. For instance they + can appear differently depending on the window face, frame face or + glyph face. All other glyphs are essentially fixed in + appearance. Perhaps the problem is that text glyphs are cached on a + device basis like most other glyphs. Instead they should be cached + per-window and then the instance would be fixed and we wouldn't + have to mess around with font metrics and the rest. */ static void layout_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, Lisp_Object pointer_fg, Lisp_Object pointer_bg, @@ -795,19 +837,19 @@ void image_instantiator_format_create_glyphs_widget (void) { #define VALID_GUI_KEYWORDS(type) \ - IIFORMAT_VALID_KEYWORD (type, Q_active, check_valid_anything); \ - IIFORMAT_VALID_KEYWORD (type, Q_suffix, check_valid_anything); \ + IIFORMAT_VALID_NONCOPY_KEYWORD (type, Q_active, check_valid_anything); \ + IIFORMAT_VALID_KEYWORD (type, Q_suffix, check_valid_anything); \ IIFORMAT_VALID_KEYWORD (type, Q_keys, check_valid_string); \ IIFORMAT_VALID_KEYWORD (type, Q_style, check_valid_symbol); \ - IIFORMAT_VALID_KEYWORD (type, Q_selected, check_valid_anything); \ + IIFORMAT_VALID_NONCOPY_KEYWORD (type, Q_selected, check_valid_anything); \ IIFORMAT_VALID_KEYWORD (type, Q_filter, check_valid_anything); \ IIFORMAT_VALID_KEYWORD (type, Q_config, check_valid_symbol); \ IIFORMAT_VALID_KEYWORD (type, Q_included, check_valid_anything); \ IIFORMAT_VALID_KEYWORD (type, Q_key_sequence, check_valid_string); \ - IIFORMAT_VALID_KEYWORD (type, Q_accelerator, check_valid_string); \ + IIFORMAT_VALID_KEYWORD (type, Q_accelerator, check_valid_string); \ IIFORMAT_VALID_KEYWORD (type, Q_label, check_valid_anything); \ - IIFORMAT_VALID_KEYWORD (type, Q_callback, check_valid_callback); \ - IIFORMAT_VALID_KEYWORD (type, Q_descriptor, check_valid_string_or_vector) + IIFORMAT_VALID_NONCOPY_KEYWORD (type, Q_callback, check_valid_callback); \ + IIFORMAT_VALID_NONCOPY_KEYWORD (type, Q_descriptor, check_valid_string_or_vector) #define VALID_WIDGET_KEYWORDS(type) \ IIFORMAT_VALID_KEYWORD (type, Q_width, check_valid_int); \ diff --git a/src/glyphs-x.c b/src/glyphs-x.c index d229d67..e837548 100644 --- a/src/glyphs-x.c +++ b/src/glyphs-x.c @@ -148,7 +148,11 @@ static void cursor_font_instantiate (Lisp_Object image_instance, #ifdef HAVE_WIDGETS static void -update_widget_face (struct Lisp_Image_Instance* ii, Lisp_Object domain); +update_widget_face (widget_value* wv, + struct Lisp_Image_Instance* ii, Lisp_Object domain); +static void +update_tab_widget_face (widget_value* wv, + struct Lisp_Image_Instance* ii, Lisp_Object domain); #endif #include "bitmaps.h" @@ -2163,30 +2167,16 @@ x_update_subwindow (struct Lisp_Image_Instance *p) /* This seems ugly, but I'm not sure what else to do. */ if (EQ (IMAGE_INSTANCE_WIDGET_TYPE (p), Qtab_control)) { - widget_value* cur = 0; - /* Give each child label the correct foreground color. */ - Lisp_Object pixel = FACE_FOREGROUND - (IMAGE_INSTANCE_WIDGET_FACE (p), - IMAGE_INSTANCE_SUBWINDOW_FRAME (p)); - XColor fcolor = COLOR_INSTANCE_X_COLOR (XCOLOR_INSTANCE (pixel)); - XtSetArg (al [0], XtNtabForeground, fcolor.pixel); - - for (cur = wv->contents; cur; cur = cur->next) - { - if (cur->value) - { - cur->nargs = 1; - cur->args = al; - } - } + update_tab_widget_face (wv, p, + IMAGE_INSTANCE_SUBWINDOW_FRAME (p)); } - + /* update the colors and font */ + update_widget_face (wv, p, IMAGE_INSTANCE_SUBWINDOW_FRAME (p)); + /* now modify the widget */ lw_modify_all_widgets (IMAGE_INSTANCE_X_WIDGET_LWID (p), wv, True); free_widget_value_tree (wv); - /* update the colors and font */ - update_widget_face (p, IMAGE_INSTANCE_SUBWINDOW_FRAME (p)); /* We have to do this otherwise Motif will unceremoniously resize us when the label gets set. */ XtSetArg (al [0], XtNwidth, IMAGE_INSTANCE_WIDGET_WIDTH (p)); @@ -2314,45 +2304,59 @@ x_resize_subwindow (struct Lisp_Image_Instance* ii, int w, int h) /************************************************************************/ static void -update_widget_face (struct Lisp_Image_Instance* ii, Lisp_Object domain) +update_widget_face (widget_value* wv, struct Lisp_Image_Instance *ii, + Lisp_Object domain) { - Arg al[3]; #ifdef LWLIB_WIDGETS_MOTIF XmFontList fontList; #endif - + Lisp_Object pixel = FACE_FOREGROUND (IMAGE_INSTANCE_WIDGET_FACE (ii), - IMAGE_INSTANCE_SUBWINDOW_FRAME (ii)); + domain); XColor fcolor = COLOR_INSTANCE_X_COLOR (XCOLOR_INSTANCE (pixel)); - XColor bcolor; - - pixel = FACE_BACKGROUND - (IMAGE_INSTANCE_WIDGET_FACE (ii), - IMAGE_INSTANCE_SUBWINDOW_FRAME (ii)); - bcolor = COLOR_INSTANCE_X_COLOR (XCOLOR_INSTANCE (pixel)); - - XtSetArg (al [0], XtNbackground, bcolor.pixel); - XtSetArg (al [1], XtNforeground, fcolor.pixel); + lw_add_widget_value_arg (wv, XtNforeground, fcolor.pixel); #ifdef LWLIB_WIDGETS_MOTIF fontList = XmFontListCreate (FONT_INSTANCE_X_FONT (XFONT_INSTANCE (widget_face_font_info - (domain, IMAGE_INSTANCE_WIDGET_FACE (ii), + (domain, + IMAGE_INSTANCE_WIDGET_FACE (ii), 0, 0))), XmSTRING_DEFAULT_CHARSET); - XtSetArg (al [2], XmNfontList, fontList ); -#else - XtSetArg (al [2], XtNfont, (void*)FONT_INSTANCE_X_FONT - (XFONT_INSTANCE (widget_face_font_info - (domain, - IMAGE_INSTANCE_WIDGET_FACE (ii), - 0, 0)))); -#endif - XtSetValues (IMAGE_INSTANCE_X_WIDGET_ID (ii), al, 3); -#ifdef LWLIB_WIDGETS_MOTIF - XmFontListFree (fontList); + lw_add_widget_value_arg (wv, XmNfontList, (XtArgVal)fontList); #endif + lw_add_widget_value_arg + (wv, XtNfont, (XtArgVal)FONT_INSTANCE_X_FONT + (XFONT_INSTANCE (widget_face_font_info + (domain, + IMAGE_INSTANCE_WIDGET_FACE (ii), + 0, 0)))); +} + +static void +update_tab_widget_face (widget_value* wv, struct Lisp_Image_Instance *ii, + Lisp_Object domain) +{ + if (wv->contents) + { + widget_value* val = wv->contents, *cur; + + /* Give each child label the correct foreground color. */ + Lisp_Object pixel = FACE_FOREGROUND + (IMAGE_INSTANCE_WIDGET_FACE (ii), + domain); + XColor fcolor = COLOR_INSTANCE_X_COLOR (XCOLOR_INSTANCE (pixel)); + lw_add_widget_value_arg (val, XtNtabForeground, fcolor.pixel); + + for (cur = val->next; cur; cur = cur->next) + { + if (cur->value) + { + lw_copy_widget_value_args (val, cur); + } + } + } } static void @@ -2393,15 +2397,13 @@ x_widget_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, required. */ clip_wv = xmalloc_widget_value (); - XtSetArg (al [ac], XtNresize, False); ac++; - XtSetArg (al [ac], XtNwidth, - (Dimension)IMAGE_INSTANCE_SUBWINDOW_WIDTH (ii)); ac++; - XtSetArg (al [ac], XtNheight, - (Dimension)IMAGE_INSTANCE_SUBWINDOW_HEIGHT (ii)); ac++; - + lw_add_widget_value_arg (clip_wv, XtNresize, False); + lw_add_widget_value_arg (clip_wv, XtNwidth, + (Dimension)IMAGE_INSTANCE_SUBWINDOW_WIDTH (ii)); + lw_add_widget_value_arg (clip_wv, XtNheight, + (Dimension)IMAGE_INSTANCE_SUBWINDOW_HEIGHT (ii)); clip_wv->enabled = True; - clip_wv->nargs = ac; - clip_wv->args = al; + clip_wv->name = xstrdup ("clip-window"); clip_wv->value = xstrdup ("clip-window"); @@ -2414,9 +2416,7 @@ x_widget_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, /* copy any args we were given */ ac = 0; - - if (wv->nargs) - lw_add_value_args_to_args (wv, al, &ac); + lw_add_value_args_to_args (wv, al, &ac); /* Fixup the colors. We have to do this *before* the widget gets created so that Motif will fix up the shadow colors @@ -2432,17 +2432,16 @@ x_widget_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, IMAGE_INSTANCE_SUBWINDOW_FRAME (ii)); bcolor = COLOR_INSTANCE_X_COLOR (XCOLOR_INSTANCE (pixel)); - XtSetArg (al [ac], XtNbackground, bcolor.pixel); ac++; - XtSetArg (al [ac], XtNforeground, fcolor.pixel); ac++; + lw_add_widget_value_arg (wv, XtNbackground, bcolor.pixel); + lw_add_widget_value_arg (wv, XtNforeground, fcolor.pixel); /* we cannot allow widgets to resize themselves */ - XtSetArg (al [ac], XtNresize, False); ac++; - XtSetArg (al [ac], XtNwidth, - (Dimension)IMAGE_INSTANCE_SUBWINDOW_WIDTH (ii)); ac++; - XtSetArg (al [ac], XtNheight, - (Dimension)IMAGE_INSTANCE_SUBWINDOW_HEIGHT (ii)); ac++; - - wv->nargs = ac; - wv->args = al; + lw_add_widget_value_arg (wv, XtNresize, False); + lw_add_widget_value_arg (wv, XtNwidth, + (Dimension)IMAGE_INSTANCE_SUBWINDOW_WIDTH (ii)); + lw_add_widget_value_arg (wv, XtNheight, + (Dimension)IMAGE_INSTANCE_SUBWINDOW_HEIGHT (ii)); + /* update the font. */ + update_widget_face (wv, ii, domain); wid = lw_create_widget (type, wv->name, id, wv, IMAGE_INSTANCE_X_CLIPWIDGET (ii), False, 0, popup_selection_callback, 0); @@ -2450,9 +2449,6 @@ x_widget_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, IMAGE_INSTANCE_SUBWINDOW_ID (ii) = (void*)wid; IMAGE_INSTANCE_X_WIDGET_LWID (ii) = id; - /* update the font. */ - update_widget_face (ii, domain); - /* Resize the widget here so that the values do not get copied by lwlib. */ ac = 0; @@ -2480,6 +2476,7 @@ x_widget_set_property (Lisp_Object image_instance, Lisp_Object prop, { struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); + /* Modify the text properties of the widget */ if (EQ (prop, Q_text)) { char* str; @@ -2490,10 +2487,13 @@ x_widget_set_property (Lisp_Object image_instance, Lisp_Object prop, lw_modify_all_widgets (IMAGE_INSTANCE_X_WIDGET_LWID (ii), wv, False); return Qt; } - /* Modify the face properties of the widget */ - if (EQ (prop, Q_face)) + + /* Modify the text properties of the widget */ + else if (EQ (prop, Q_face)) { - update_widget_face (ii, IMAGE_INSTANCE_SUBWINDOW_FRAME (ii)); + widget_value* wv = lw_get_all_values (IMAGE_INSTANCE_X_WIDGET_LWID (ii)); + update_widget_face (wv, ii, IMAGE_INSTANCE_SUBWINDOW_FRAME (ii)); + lw_modify_all_widgets (IMAGE_INSTANCE_X_WIDGET_LWID (ii), wv, False); return Qt; } return Qunbound; @@ -2650,29 +2650,11 @@ x_tab_control_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, int dest_mask, Lisp_Object domain) { struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); - Arg al [1]; - XColor fcolor; - Lisp_Object pixel; - widget_value* cur; - widget_value * wv = gui_items_to_widget_values (IMAGE_INSTANCE_WIDGET_ITEMS (ii)); - /* Give each child label the correct foreground color. */ - pixel = FACE_FOREGROUND - (IMAGE_INSTANCE_WIDGET_FACE (ii), - IMAGE_INSTANCE_SUBWINDOW_FRAME (ii)); - fcolor = COLOR_INSTANCE_X_COLOR (XCOLOR_INSTANCE (pixel)); - XtSetArg (al [0], XtNtabForeground, fcolor.pixel); - - for (cur = wv->contents; cur; cur = cur->next) - { - if (cur->value) - { - cur->nargs = 1; - cur->args = al; - } - } + update_tab_widget_face (wv, ii, + IMAGE_INSTANCE_SUBWINDOW_FRAME (ii)); x_widget_instantiate (image_instance, instantiator, pointer_fg, pointer_bg, dest_mask, domain, "tab-control", wv); @@ -2687,11 +2669,7 @@ x_tab_control_set_property (Lisp_Object image_instance, Lisp_Object prop, if (EQ (prop, Q_items)) { - widget_value * wv = 0, *cur; - Arg al [1]; - XColor fcolor; - Lisp_Object pixel; - + widget_value * wv = 0; check_valid_item_list_1 (val); IMAGE_INSTANCE_WIDGET_ITEMS (ii) = @@ -2699,22 +2677,9 @@ x_tab_control_set_property (Lisp_Object image_instance, Lisp_Object prop, parse_gui_item_tree_children (val)); wv = gui_items_to_widget_values (IMAGE_INSTANCE_WIDGET_ITEMS (ii)); - - /* Give each child label the correct foreground color. */ - pixel = FACE_FOREGROUND - (IMAGE_INSTANCE_WIDGET_FACE (ii), - IMAGE_INSTANCE_SUBWINDOW_FRAME (ii)); - fcolor = COLOR_INSTANCE_X_COLOR (XCOLOR_INSTANCE (pixel)); - XtSetArg (al [0], XtNtabForeground, fcolor.pixel); - for (cur = wv->contents; cur; cur = cur->next) - { - if (cur->value) - { - cur->nargs = 1; - cur->args = al; - } - } + update_tab_widget_face (wv, ii, + IMAGE_INSTANCE_SUBWINDOW_FRAME (ii)); lw_modify_all_widgets (IMAGE_INSTANCE_X_WIDGET_LWID (ii), wv, True); diff --git a/src/glyphs.c b/src/glyphs.c index 0e327f4..e10c23f 100644 --- a/src/glyphs.c +++ b/src/glyphs.c @@ -1724,14 +1724,14 @@ string_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, Lisp_Object pointer_fg, Lisp_Object pointer_bg, int dest_mask, Lisp_Object domain) { - Lisp_Object data = find_keyword_in_vector (instantiator, Q_data); + Lisp_Object string = find_keyword_in_vector (instantiator, Q_data); struct Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance); - assert (!NILP (data)); + assert (!NILP (string)); if (dest_mask & IMAGE_TEXT_MASK) { IMAGE_INSTANCE_TYPE (ii) = IMAGE_TEXT; - IMAGE_INSTANCE_TEXT_STRING (ii) = data; + IMAGE_INSTANCE_TEXT_STRING (ii) = string; } else incompatible_image_types (instantiator, dest_mask, IMAGE_TEXT_MASK); @@ -2536,10 +2536,12 @@ image_instantiate (Lisp_Object specifier, Lisp_Object matchspec, round it. */ if (UNBOUNDP (instance) && - dest_mask & (IMAGE_SUBWINDOW_MASK | IMAGE_WIDGET_MASK)) + dest_mask & (IMAGE_SUBWINDOW_MASK + | IMAGE_WIDGET_MASK + | IMAGE_TEXT_MASK)) { if (!WINDOWP (domain)) - signal_simple_error ("Can't instantiate subwindow outside a window", + signal_simple_error ("Can't instantiate text or subwindow outside a window", instantiator); instance = Fgethash (instantiator, XWINDOW (domain)->subwindow_instance_cache, @@ -2733,6 +2735,76 @@ image_going_to_add (Lisp_Object specifier, Lisp_Object locale, return retlist; } +/* Copy an image instantiator. We can't use Fcopy_tree since widgets + may contain circular references which would send Fcopy_tree into + infloop death. */ +static Lisp_Object +image_copy_vector_instantiator (Lisp_Object instantiator) +{ + int i; + struct image_instantiator_methods *meths; + Lisp_Object *elt; + int instantiator_len; + + CHECK_VECTOR (instantiator); + + instantiator = Fcopy_sequence (instantiator); + elt = XVECTOR_DATA (instantiator); + instantiator_len = XVECTOR_LENGTH (instantiator); + + meths = decode_image_instantiator_format (elt[0], ERROR_ME); + + for (i = 1; i < instantiator_len; i += 2) + { + int j; + Lisp_Object keyword = elt[i]; + Lisp_Object value = elt[i+1]; + + /* Find the keyword entry. */ + for (j = 0; j < Dynarr_length (meths->keywords); j++) + { + if (EQ (keyword, Dynarr_at (meths->keywords, j).keyword)) + break; + } + + /* Only copy keyword values that should be copied. */ + if (Dynarr_at (meths->keywords, j).copy_p + && + (CONSP (value) || VECTORP (value))) + { + elt [i+1] = Fcopy_tree (value, Qt); + } + } + + return instantiator; +} + +static Lisp_Object +image_copy_instantiator (Lisp_Object arg) +{ + if (CONSP (arg)) + { + Lisp_Object rest; + rest = arg = Fcopy_sequence (arg); + while (CONSP (rest)) + { + Lisp_Object elt = XCAR (rest); + if (CONSP (elt)) + XCAR (rest) = Fcopy_tree (elt, Qt); + else if (VECTORP (elt)) + XCAR (rest) = image_copy_vector_instantiator (elt); + if (VECTORP (XCDR (rest))) /* hack for (a b . [c d]) */ + XCDR (rest) = Fcopy_tree (XCDR (rest), Qt); + rest = XCDR (rest); + } + } + else if (VECTORP (arg)) + { + arg = image_copy_vector_instantiator (arg); + } + return arg; +} + DEFUN ("image-specifier-p", Fimage_specifier_p, 1, 1, 0, /* Return non-nil if OBJECT is an image specifier. @@ -4473,6 +4545,7 @@ specifier_type_create_image (void) SPECIFIER_HAS_METHOD (image, validate); SPECIFIER_HAS_METHOD (image, after_change); SPECIFIER_HAS_METHOD (image, going_to_add); + SPECIFIER_HAS_METHOD (image, copy_instantiator); } void diff --git a/src/glyphs.h b/src/glyphs.h index b0e65f1..c8bb105 100644 --- a/src/glyphs.h +++ b/src/glyphs.h @@ -74,6 +74,7 @@ struct ii_keyword_entry Lisp_Object keyword; void (*validate) (Lisp_Object data); int multiple_p; + int copy_p; }; typedef struct @@ -130,6 +131,13 @@ struct image_instantiator_methods Lisp_Object (*set_property_method) (Lisp_Object image_instance, Lisp_Object property, Lisp_Object val); + + /* Find out the geometry of this image instance. */ + void (*query_geometry_method) (Lisp_Object image_instance, + int* width, int* height, int disp); + + /* Layout the instances children. */ + void (*layout_children_method) (Lisp_Object image_instance); }; /***** Calling an image-instantiator method *****/ @@ -202,29 +210,31 @@ do { \ /* Declare that KEYW is a valid keyword for image-instantiator format FORMAT. VALIDATE_FUN if a function that returns whether the data is valid. The keyword may not appear more than once. */ -#define IIFORMAT_VALID_KEYWORD(format, keyw, validate_fun) \ - do { \ +#define IIFORMAT_VALID_GENERIC_KEYWORD(format, keyw, validate_fun, copy, multi) \ + do { \ struct ii_keyword_entry entry; \ - \ - entry.keyword = keyw; \ + \ + entry.keyword = keyw; \ entry.validate = validate_fun; \ - entry.multiple_p = 0; \ + entry.multiple_p = multi; \ + entry.copy_p = copy; \ Dynarr_add (format##_image_instantiator_methods->keywords, \ entry); \ } while (0) +#define IIFORMAT_VALID_KEYWORD(format, keyw, validate_fun) \ +IIFORMAT_VALID_GENERIC_KEYWORD(format, keyw, validate_fun, 1, 0) + /* Same as IIFORMAT_VALID_KEYWORD except that the keyword may appear multiple times. */ -#define IIFORMAT_VALID_MULTI_KEYWORD(format, keyword, validate_fun) \ - do { \ - struct ii_keyword_entry entry; \ - \ - entry.keyword = keyword; \ - entry.validate = validate_fun; \ - entry.multiple_p = 1; \ - Dynarr_add (format##_image_instantiator_methods->keywords, \ - entry); \ - } while (0) +#define IIFORMAT_VALID_MULTI_KEYWORD(format, keyw, validate_fun) \ +IIFORMAT_VALID_GENERIC_KEYWORD(format, keyw, validate_fun, 1, 1) + +/* Same as IIFORMAT_VALID_KEYWORD execpt that the argument is not + copied by the specifier functions. This is necessary for things + like callbacks etc. */ +#define IIFORMAT_VALID_NONCOPY_KEYWORD(format, keyw, validate_fun) \ +IIFORMAT_VALID_GENERIC_KEYWORD(format, keyw, validate_fun, 0, 0) /* Declare that image-instantiator format FORMAT is supported on CONSOLE type. */ @@ -362,6 +372,14 @@ enum image_instance_type IMAGE_LAYOUT }; +enum image_instance_geometry +{ + IMAGE_GEOMETRY, + IMAGE_DESIRED_GEOMETRY, + IMAGE_MIN_GEOMETRY, + IMAGE_MAX_GEOMETRY +}; + #define IMAGE_NOTHING_MASK (1 << 0) #define IMAGE_TEXT_MASK (1 << 1) #define IMAGE_MONO_PIXMAP_MASK (1 << 2) @@ -446,18 +464,20 @@ struct Lisp_Image_Instance Lisp_Object device; Lisp_Object name; enum image_instance_type type; - int x_offset, y_offset; /* for layout purposes */ + unsigned int x_offset, y_offset; /* for layout purposes */ + unsigned int width, height; unsigned int dirty : 1; union { struct { + unsigned int descent; Lisp_Object string; } text; struct { - int width, height, depth; - int slice, maxslice, timeout; + unsigned int depth; + unsigned int slice, maxslice, timeout; Lisp_Object hotspot_x, hotspot_y; /* integer or Qnil */ Lisp_Object filename; /* string or Qnil */ Lisp_Object mask_filename; /* string or Qnil */ @@ -471,7 +491,6 @@ struct Lisp_Image_Instance struct { Lisp_Object frame; - unsigned int width, height; void* subwindow; /* specific devices can use this as necessary */ unsigned int being_displayed : 1; /* used to detect when needs to be unmapped */ union @@ -501,15 +520,24 @@ struct Lisp_Image_Instance #define IMAGE_INSTANCE_TYPE(i) ((i)->type) #define IMAGE_INSTANCE_XOFFSET(i) ((i)->x_offset) #define IMAGE_INSTANCE_YOFFSET(i) ((i)->y_offset) +#define IMAGE_INSTANCE_WIDTH(i) ((i)->width) +#define IMAGE_INSTANCE_HEIGHT(i) ((i)->height) #define IMAGE_INSTANCE_PIXMAP_TYPE_P(i) \ ((IMAGE_INSTANCE_TYPE (i) == IMAGE_MONO_PIXMAP) \ || (IMAGE_INSTANCE_TYPE (i) == IMAGE_COLOR_PIXMAP)) #define IMAGE_INSTANCE_DIRTYP(i) ((i)->dirty) #define IMAGE_INSTANCE_TEXT_STRING(i) ((i)->u.text.string) - -#define IMAGE_INSTANCE_PIXMAP_WIDTH(i) ((i)->u.pixmap.width) -#define IMAGE_INSTANCE_PIXMAP_HEIGHT(i) ((i)->u.pixmap.height) +#define IMAGE_INSTANCE_TEXT_WIDTH(i) \ + IMAGE_INSTANCE_WIDTH(i) +#define IMAGE_INSTANCE_TEXT_HEIGHT(i) \ + IMAGE_INSTANCE_HEIGHT(i) +#define IMAGE_INSTANCE_TEXT_DESCENT(i) ((i)->u.text.descent) + +#define IMAGE_INSTANCE_PIXMAP_WIDTH(i) \ + IMAGE_INSTANCE_WIDTH(i) +#define IMAGE_INSTANCE_PIXMAP_HEIGHT(i) \ + IMAGE_INSTANCE_HEIGHT(i) #define IMAGE_INSTANCE_PIXMAP_DEPTH(i) ((i)->u.pixmap.depth) #define IMAGE_INSTANCE_PIXMAP_FILENAME(i) ((i)->u.pixmap.filename) #define IMAGE_INSTANCE_PIXMAP_MASK_FILENAME(i) ((i)->u.pixmap.mask_filename) @@ -523,17 +551,19 @@ struct Lisp_Image_Instance #define IMAGE_INSTANCE_PIXMAP_MAXSLICE(i) ((i)->u.pixmap.maxslice) #define IMAGE_INSTANCE_PIXMAP_TIMEOUT(i) ((i)->u.pixmap.timeout) -#define IMAGE_INSTANCE_SUBWINDOW_WIDTH(i) ((i)->u.subwindow.width) -#define IMAGE_INSTANCE_SUBWINDOW_HEIGHT(i) ((i)->u.subwindow.height) +#define IMAGE_INSTANCE_SUBWINDOW_WIDTH(i) \ + IMAGE_INSTANCE_WIDTH(i) +#define IMAGE_INSTANCE_SUBWINDOW_HEIGHT(i) \ + IMAGE_INSTANCE_HEIGHT(i) #define IMAGE_INSTANCE_SUBWINDOW_ID(i) ((i)->u.subwindow.subwindow) #define IMAGE_INSTANCE_SUBWINDOW_FRAME(i) ((i)->u.subwindow.frame) #define IMAGE_INSTANCE_SUBWINDOW_DISPLAYEDP(i) \ ((i)->u.subwindow.being_displayed) #define IMAGE_INSTANCE_WIDGET_WIDTH(i) \ - IMAGE_INSTANCE_SUBWINDOW_WIDTH(i) + IMAGE_INSTANCE_WIDTH(i) #define IMAGE_INSTANCE_WIDGET_HEIGHT(i) \ - IMAGE_INSTANCE_SUBWINDOW_HEIGHT(i) + IMAGE_INSTANCE_HEIGHT(i) #define IMAGE_INSTANCE_WIDGET_TYPE(i) ((i)->u.subwindow.s.widget.type) #define IMAGE_INSTANCE_WIDGET_PROPS(i) ((i)->u.subwindow.s.widget.props) #define IMAGE_INSTANCE_WIDGET_FACE(i) ((i)->u.subwindow.s.widget.face) diff --git a/src/gutter.h b/src/gutter.h index 8e31dd5..ccb8746 100644 --- a/src/gutter.h +++ b/src/gutter.h @@ -25,8 +25,7 @@ Boston, MA 02111-1307, USA. */ #include "specifier.h" -#define DEVICE_SUPPORTS_GUTTERS_P(d) \ - (HAS_DEVMETH_P ((d), output_frame_gutters)) +#define DEVICE_SUPPORTS_GUTTERS_P(d) HAS_DEVMETH_P (d, output_frame_gutters) DECLARE_SPECIFIER_TYPE (gutter); #define XGUTTER_SPECIFIER(x) XSPECIFIER_TYPE (x, gutter) diff --git a/src/lisp.h b/src/lisp.h index 883070a..e61b07e 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -2887,7 +2887,8 @@ extern Lisp_Object Vconfigure_site_directory, Vconfigure_site_module_directory; extern Lisp_Object Vconsole_list, Vcontrolling_terminal; extern Lisp_Object Vcurrent_compiled_function_annotation, Vcurrent_load_list; extern Lisp_Object Vcurrent_mouse_event, Vcurrent_prefix_arg, Vdata_directory; -extern Lisp_Object Vdisabled_command_hook, Vdoc_directory, Vinternal_doc_file_name; +extern Lisp_Object Vdirectory_sep_char, Vdisabled_command_hook; +extern Lisp_Object Vdoc_directory, Vinternal_doc_file_name; extern Lisp_Object Vecho_area_buffer, Vemacs_major_version; extern Lisp_Object Vemacs_minor_version, Vexec_directory, Vexec_path; extern Lisp_Object Vexecuting_macro, Vfeatures, Vfile_domain; diff --git a/src/print.c b/src/print.c index 2616896..5b828ca 100644 --- a/src/print.c +++ b/src/print.c @@ -1106,7 +1106,9 @@ print_internal (Lisp_Object obj, Lisp_Object printcharfun, int escapeflag) case Lisp_Type_Int_Even: case Lisp_Type_Int_Odd: { - char buf[24]; + /* ASCII Decimal representation uses 2.4 times as many bits as + machine binary. */ + char buf[3 * sizeof (EMACS_INT) + 5]; long_to_string (buf, XINT (obj)); write_c_string (buf, printcharfun); break; @@ -1119,36 +1121,61 @@ print_internal (Lisp_Object obj, Lisp_Object printcharfun, int escapeflag) Emchar ch = XCHAR (obj); char *p = buf; *p++ = '?'; - if (ch == '\n') - *p++ = '\\', *p++ = 'n'; - else if (ch == '\r') - *p++ = '\\', *p++ = 'r'; - else if (ch == '\t') - *p++ = '\\', *p++ = 't'; - else if (ch < 32) + if (ch < 32) { - *p++ = '\\', *p++ = '^'; - *p++ = ch + 64; - if ((ch + 64) == '\\') - *p++ = '\\'; + *p++ = '\\'; + switch (ch) + { + case '\t': *p++ = 't'; break; + case '\n': *p++ = 'n'; break; + case '\r': *p++ = 'r'; break; + default: + *p++ = '^'; + *p++ = ch + 64; + if ((ch + 64) == '\\') + *p++ = '\\'; + break; + } + } + else if (ch < 127) + { + /* syntactically special characters should be escaped. */ + switch (ch) + { + case ' ': + case '"': + case '#': + case '\'': + case '(': + case ')': + case ',': + case '.': + case ';': + case '?': + case '[': + case '\\': + case ']': + case '`': + *p++ = '\\'; + } + *p++ = ch; } else if (ch == 127) - *p++ = '\\', *p++ = '^', *p++ = '?'; - else if (ch >= 128 && ch < 160) + { + *p++ = '\\', *p++ = '^', *p++ = '?'; + } + else if (ch < 160) { *p++ = '\\', *p++ = '^'; - p += set_charptr_emchar ((Bufbyte *)p, ch + 64); + p += set_charptr_emchar ((Bufbyte *) p, ch + 64); } - else if (ch < 127 - && !isdigit (ch) - && !isalpha (ch) - && ch != '^') /* must not backslash this or it will - be interpreted as the start of a - control char */ - *p++ = '\\', *p++ = ch; else - p += set_charptr_emchar ((Bufbyte *)p, ch); - output_string (printcharfun, (Bufbyte *)buf, Qnil, 0, p - buf); + { + p += set_charptr_emchar ((Bufbyte *) p, ch); + } + + output_string (printcharfun, (Bufbyte *) buf, Qnil, 0, p - buf); + break; } diff --git a/src/profile.c b/src/profile.c index 648026f..111575b 100644 --- a/src/profile.c +++ b/src/profile.c @@ -119,9 +119,10 @@ sigprof_handler (int signo) { fun = *backtrace_list->function; - if (!SYMBOLP (fun) && - !COMPILED_FUNCTIONP (fun) && - !SUBRP (fun)) + if (!SYMBOLP (fun) + && !COMPILED_FUNCTIONP (fun) + && !SUBRP (fun) + && !CONSP (fun)) fun = QSunknown; } else diff --git a/src/redisplay-output.c b/src/redisplay-output.c index f767790..16a27f2 100644 --- a/src/redisplay-output.c +++ b/src/redisplay-output.c @@ -47,16 +47,16 @@ static void redraw_cursor_in_window (struct window *w, int run_end_begin_glyphs); static void redisplay_output_display_block (struct window *w, struct display_line *dl, int block, int start, int end, int start_pixpos, - int cursor_start, int cursor_width, + int cursor_start, int cursor_width, int cursor_height); -static void redisplay_normalize_display_box (struct display_box* dest, +static void redisplay_normalize_display_box (struct display_box* dest, struct display_glyph_area* src); static int redisplay_display_boxes_in_window_p (struct window* w, struct display_box* db, struct display_glyph_area* dga); -static void redisplay_clear_clipped_region (Lisp_Object locale, face_index findex, - struct display_box* dest, - struct display_glyph_area* glyphsrc, +static void redisplay_clear_clipped_region (Lisp_Object locale, face_index findex, + struct display_box* dest, + struct display_glyph_area* glyphsrc, int fullheight_p, Lisp_Object); /***************************************************************************** @@ -210,7 +210,7 @@ compare_runes (struct window *w, struct rune *crb, struct rune *drb) #### It would really be worth it to arrange for this function to be (almost) a single call to memcmp. */ - + if ((crb->findex != drb->findex) || (WINDOW_FACE_CACHEL_DIRTY (w, drb->findex))) return 0; @@ -229,7 +229,7 @@ compare_runes (struct window *w, struct rune *crb, struct rune *drb) (crb->object.hline.thickness != drb->object.hline.thickness || crb->object.hline.yoffset != drb->object.hline.yoffset)) return 0; - else if (crb->type == RUNE_DGLYPH && + else if (crb->type == RUNE_DGLYPH && (!EQ (crb->object.dglyph.glyph, drb->object.dglyph.glyph) || !EQ (crb->object.dglyph.extent, drb->object.dglyph.extent) || crb->object.dglyph.xoffset != drb->object.dglyph.xoffset)) @@ -244,7 +244,7 @@ compare_runes (struct window *w, struct rune *crb, struct rune *drb) up-to-date. */ if (GLYPH_CACHEL_DIRTYP (w, gindex)) return 0; - else + else return 1; } else @@ -657,7 +657,7 @@ output_display_line (struct window *w, display_line_dynarr *cdla, if (x < ddl->bounds.left_in) { findex = ddl->left_margin_findex ? - ddl->left_margin_findex + ddl->left_margin_findex : get_builtin_face_cache_index (w, Vleft_margin_face); } else if (x < ddl->bounds.right_in) @@ -668,7 +668,7 @@ output_display_line (struct window *w, display_line_dynarr *cdla, else if (x < ddl->bounds.right_out) { findex = ddl->right_margin_findex ? - ddl->right_margin_findex + ddl->right_margin_findex : get_builtin_face_cache_index (w, Vright_margin_face); } else @@ -712,10 +712,10 @@ output_display_line (struct window *w, display_line_dynarr *cdla, region or if it was a block of a different type, then output the entire ddb. Otherwise, compare cdb and ddb and output only the changed region. */ - if (!force && cdb && ddb->type == cdb->type + if (!force && cdb && ddb->type == cdb->type /* If there was no buffer being display before the compare anyway as we might be outputting a gutter. */ - && + && (b == old_b || !old_b)) { must_sync |= compare_display_blocks (w, cdl, ddl, old_block, @@ -754,7 +754,7 @@ output_display_line (struct window *w, display_line_dynarr *cdla, cursor_start, cursor_width, cursor_height); } - + start_pixpos = next_start_pixpos; } } @@ -778,7 +778,7 @@ output_display_line (struct window *w, display_line_dynarr *cdla, y -= MODELINE_SHADOW_THICKNESS (w); height += (2 * MODELINE_SHADOW_THICKNESS (w)); } - + if (window_is_leftmost (w)) clear_left_border (w, y, height); if (window_is_rightmost (w)) @@ -924,7 +924,7 @@ redisplay_move_cursor (struct window *w, Bufpos new_point, int no_output_end) } } - while ((up ? (cur_dl < Dynarr_length (cla)) : (cur_dl >= 0))) + while (up ? (cur_dl < Dynarr_length (cla)) : (cur_dl >= 0)) { dl = Dynarr_atp (cla, cur_dl); db = get_display_block_from_line (dl, TEXT); @@ -1112,7 +1112,7 @@ static void redisplay_unmap_subwindows (struct frame* f, int x, int y, int width cachel->x + cachel->width > x && cachel->x < x + width && cachel->y + cachel->height > y && cachel->y < y + height - && + && !EQ (cachel->subwindow, ignored_window)) { unmap_subwindow (cachel->subwindow); @@ -1134,7 +1134,7 @@ void redisplay_unmap_subwindows_maybe (struct frame* f, int x, int y, int width, } } -static void redisplay_unmap_subwindows_except_us (struct frame* f, int x, int y, int width, +static void redisplay_unmap_subwindows_except_us (struct frame* f, int x, int y, int width, int height, Lisp_Object subwindow) { if (Dynarr_length (FRAME_SUBWINDOW_CACHE (f))) @@ -1151,7 +1151,7 @@ static void redisplay_unmap_subwindows_except_us (struct frame* f, int x, int y, pixmaps, backgrounds etc. ****************************************************************************/ void -redisplay_output_subwindow (struct window *w, +redisplay_output_subwindow (struct window *w, Lisp_Object image_instance, struct display_box* db, struct display_glyph_area* dga, face_index findex, int cursor_start, int cursor_width, @@ -1189,7 +1189,7 @@ redisplay_output_subwindow (struct window *w, sdga.yoffset = -dga->yoffset; sdga.height = IMAGE_INSTANCE_SUBWINDOW_HEIGHT (p); sdga.width = IMAGE_INSTANCE_SUBWINDOW_WIDTH (p); - + if (redisplay_display_boxes_in_window_p (w, db, &sdga) < 0) { map_subwindow (image_instance, db->xpos, db->ypos, dga); @@ -1197,7 +1197,7 @@ redisplay_output_subwindow (struct window *w, else { sdga.xoffset = sdga.yoffset = 0; - map_subwindow (image_instance, db->xpos - dga->xoffset, + map_subwindow (image_instance, db->xpos - dga->xoffset, db->ypos - dga->yoffset, &sdga); } } @@ -1208,7 +1208,7 @@ redisplay_output_subwindow (struct window *w, Output a widget hierarchy. This can safely call itself recursively. ****************************************************************************/ void -redisplay_output_layout (struct window *w, +redisplay_output_layout (struct window *w, Lisp_Object image_instance, struct display_box* db, struct display_glyph_area* dga, face_index findex, int cursor_start, int cursor_width, @@ -1252,7 +1252,7 @@ redisplay_output_layout (struct window *w, thing to do since we have many gaps that we have to make sure are filled in. */ redisplay_clear_clipped_region (window, findex, db, dga, 1, Qnil); - + /* Output a border if required */ if (!NILP (IMAGE_INSTANCE_LAYOUT_BORDER (p))) { @@ -1260,7 +1260,7 @@ redisplay_output_layout (struct window *w, enum edge_style style; int ypos = db->ypos; int height = dga->height; - + if (dga->xoffset >= 0) edges |= EDGE_LEFT; if (dga->width - dga->xoffset == layout_width) @@ -1269,7 +1269,7 @@ redisplay_output_layout (struct window *w, edges |= EDGE_TOP; if (dga->height - dga->yoffset == layout_height) edges |= EDGE_BOTTOM; - + if (EQ (IMAGE_INSTANCE_LAYOUT_BORDER (p), Qetched_in)) style = EDGE_ETCHED_IN; else if (EQ (IMAGE_INSTANCE_LAYOUT_BORDER (p), Qetched_out)) @@ -1288,13 +1288,13 @@ redisplay_output_layout (struct window *w, else style = EDGE_BEVEL_OUT; - MAYBE_DEVMETH (d, bevel_area, + MAYBE_DEVMETH (d, bevel_area, (w, findex, db->xpos, - ypos, + ypos, dga->width, height, 2, edges, style)); } } - + /* This shrinks the display box to exactly enclose the glyph area. */ redisplay_normalize_display_box (db, dga); @@ -1346,8 +1346,8 @@ redisplay_output_layout (struct window *w, { /* #### This is well hacked and could use some generalisation.*/ - if (redisplay_normalize_glyph_area (&cdb, &cdga) - && + if (redisplay_normalize_glyph_area (&cdb, &cdga) + && (frame_really_changed || IMAGE_INSTANCE_DIRTYP (childii))) { struct display_line dl; /* this is fake */ @@ -1355,7 +1355,7 @@ redisplay_output_layout (struct window *w, IMAGE_INSTANCE_TEXT_STRING (childii); convert_bufbyte_string_into_emchar_dynarr (XSTRING_DATA (string), XSTRING_LENGTH (string), buf); - + redisplay_normalize_display_box (&cdb, &cdga); /* Offsets are now +ve again so be careful when fixing up the display line. */ @@ -1379,30 +1379,30 @@ redisplay_output_layout (struct window *w, } } break; - + case IMAGE_MONO_PIXMAP: case IMAGE_COLOR_PIXMAP: if (frame_really_changed || IMAGE_INSTANCE_DIRTYP (childii)) redisplay_output_pixmap (w, child, &cdb, &cdga, findex, 0, 0, 0, 0); break; - + case IMAGE_WIDGET: case IMAGE_SUBWINDOW: if (frame_really_changed || IMAGE_INSTANCE_DIRTYP (childii)) redisplay_output_subwindow (w, child, &cdb, &cdga, findex, 0, 0, 0); break; - + case IMAGE_LAYOUT: redisplay_output_layout (w, child, &cdb, &cdga, findex, 0, 0, 0); break; - + case IMAGE_NOTHING: /* nothing is as nothing does */ break; - + case IMAGE_POINTER: default: abort (); @@ -1420,7 +1420,7 @@ redisplay_output_layout (struct window *w, output a pixmap. ****************************************************************************/ void -redisplay_output_pixmap (struct window *w, +redisplay_output_pixmap (struct window *w, Lisp_Object image_instance, struct display_box* db, struct display_glyph_area* dga, face_index findex, int cursor_start, int cursor_width, @@ -1449,7 +1449,7 @@ redisplay_output_pixmap (struct window *w, if (!offset_bitmap) { redisplay_clear_clipped_region (window, findex, - db, dga, + db, dga, (int)IMAGE_INSTANCE_PIXMAP_MASK (p), Qnil); @@ -1506,7 +1506,7 @@ redisplay_clear_region (Lisp_Object locale, face_index findex, int x, int y, /* #### This isn't quite right for when this function is called from the toolbar code. */ - + /* Don't use a backing pixmap in the border area */ if (x >= FRAME_LEFT_BORDER_END (f) && x < FRAME_RIGHT_BORDER_START (f) @@ -1514,11 +1514,11 @@ redisplay_clear_region (Lisp_Object locale, face_index findex, int x, int y, && y < FRAME_BOTTOM_BORDER_START (f)) { Lisp_Object temp; - + if (w) { temp = WINDOW_FACE_CACHEL_BACKGROUND_PIXMAP (w, findex); - + if (IMAGE_INSTANCEP (temp) && IMAGE_INSTANCE_PIXMAP_TYPE_P (XIMAGE_INSTANCE (temp))) { @@ -1530,14 +1530,14 @@ redisplay_clear_region (Lisp_Object locale, face_index findex, int x, int y, else { temp = FACE_BACKGROUND_PIXMAP (Vdefault_face, locale); - + if (IMAGE_INSTANCEP (temp) && IMAGE_INSTANCE_PIXMAP_TYPE_P (XIMAGE_INSTANCE (temp))) { background_pixmap = temp; } } - } + } if (!UNBOUNDP (background_pixmap) && XIMAGE_INSTANCE_PIXMAP_DEPTH (background_pixmap) == 0) @@ -1558,13 +1558,13 @@ redisplay_clear_region (Lisp_Object locale, face_index findex, int x, int y, fcolor = (w ? WINDOW_FACE_CACHEL_BACKGROUND (w, findex) : FACE_BACKGROUND (Vdefault_face, locale)); - + } - + if (UNBOUNDP (background_pixmap)) background_pixmap = Qnil; - - DEVMETH (d, clear_region, + + DEVMETH (d, clear_region, (locale, d, f, findex, x, y, width, height, fcolor, bcolor, background_pixmap)); } @@ -1577,8 +1577,8 @@ redisplay_clear_region (Lisp_Object locale, face_index findex, int x, int y, around with by altering these. glyphsrc should be normalized. ****************************************************************************/ static void -redisplay_clear_clipped_region (Lisp_Object window, face_index findex, - struct display_box* dest, struct display_glyph_area* glyphsrc, +redisplay_clear_clipped_region (Lisp_Object window, face_index findex, + struct display_box* dest, struct display_glyph_area* glyphsrc, int fullheight_p, Lisp_Object ignored_subwindow) { /* assume dest->xpos >= 0 */ @@ -1602,8 +1602,8 @@ redisplay_clear_clipped_region (Lisp_Object window, face_index findex, } else { - int yoffset = (glyphsrc->yoffset > 0 ? glyphsrc->yoffset : 0); - + int yoffset = (glyphsrc->yoffset > 0 ? glyphsrc->yoffset : 0); + /* We need to make sure that subwindows are unmapped from the whole area. */ redisplay_unmap_subwindows_except_us (f, clear_x, dest->ypos, @@ -1614,14 +1614,14 @@ redisplay_clear_clipped_region (Lisp_Object window, face_index findex, { redisplay_clear_region (window, findex, clear_x, dest->ypos, glyphsrc->width, yoffset); - + } /* Then the bottom box */ if (yoffset + glyphsrc->height < dest->height) { redisplay_clear_region (window, findex, clear_x, dest->ypos + yoffset + glyphsrc->height, - glyphsrc->width, + glyphsrc->width, dest->height - (yoffset + glyphsrc->height)); } @@ -1635,7 +1635,7 @@ redisplay_clear_clipped_region (Lisp_Object window, face_index findex, Calculate the visible box for displaying src in dest. ****************************************************************************/ int -redisplay_normalize_glyph_area (struct display_box* dest, +redisplay_normalize_glyph_area (struct display_box* dest, struct display_glyph_area* glyphsrc) { if (dest->xpos + glyphsrc->xoffset > dest->xpos + dest->width @@ -1678,7 +1678,7 @@ redisplay_normalize_glyph_area (struct display_box* dest, } static void -redisplay_normalize_display_box (struct display_box* dest, +redisplay_normalize_display_box (struct display_box* dest, struct display_glyph_area* glyphsrc) { /* Adjust the destination area. At the end of this the destination @@ -1735,7 +1735,7 @@ redisplay_display_boxes_in_window_p (struct window* w, || db->ypos + db->height > bottom) /* We are not displaying in a window at all */ return 0; - + if (db->xpos + dga->xoffset >= left && db->ypos + dga->yoffset >= top @@ -1757,7 +1757,7 @@ redisplay_display_boxes_in_window_p (struct window* w, int redisplay_calculate_display_boxes (struct display_line *dl, int xpos, int xoffset, int start_pixpos, int width, - struct display_box* dest, + struct display_box* dest, struct display_glyph_area* src) { dest->xpos = xpos; @@ -1838,38 +1838,38 @@ redisplay_clear_to_window_end (struct window *w, int ypos1, int ypos2) else { int height = ypos2 - ypos1; - + if (height) { Lisp_Object window; int bflag = 0 ; /* (window_needs_vertical_divider (w) ? 0 : 1);*/ layout_bounds bounds; - + bounds = calculate_display_line_boundaries (w, bflag); XSETWINDOW (window, w); if (window_is_leftmost (w)) redisplay_clear_region (window, DEFAULT_INDEX, FRAME_LEFT_BORDER_START (f), ypos1, FRAME_BORDER_WIDTH (f), height); - + if (bounds.left_in - bounds.left_out > 0) redisplay_clear_region (window, get_builtin_face_cache_index (w, Vleft_margin_face), bounds.left_out, ypos1, bounds.left_in - bounds.left_out, height); - + if (bounds.right_in - bounds.left_in > 0) - redisplay_clear_region (window, + redisplay_clear_region (window, DEFAULT_INDEX, bounds.left_in, ypos1, bounds.right_in - bounds.left_in, height); - + if (bounds.right_out - bounds.right_in > 0) redisplay_clear_region (window, get_builtin_face_cache_index (w, Vright_margin_face), bounds.right_in, ypos1, bounds.right_out - bounds.right_in, height); - + if (window_is_rightmost (w)) redisplay_clear_region (window, DEFAULT_INDEX, FRAME_RIGHT_BORDER_START (f), ypos1, FRAME_BORDER_WIDTH (f), height); @@ -2256,7 +2256,7 @@ bevel_modeline (struct window *w, struct display_line *dl) style = EDGE_BEVEL_OUT; } - MAYBE_DEVMETH (d, bevel_area, + MAYBE_DEVMETH (d, bevel_area, (w, MODELINE_INDEX, x, y, width, height, shadow_thickness, EDGE_ALL, style)); } diff --git a/src/redisplay.c b/src/redisplay.c index fa3e3b3..7e29d59 100644 --- a/src/redisplay.c +++ b/src/redisplay.c @@ -156,7 +156,7 @@ typedef struct position_redisplay_data_type Bytind bi_start_col_enabled; int start_col_xoffset; /* Number of pixels that still need to be skipped. This is used for - horizontal scrolling of glyphs, where we want + horizontal scrolling of glyphs, where we want to be able to scroll over part of the glyph. */ int hscroll_glyph_width_adjust; /* how much the width of the hscroll @@ -1815,7 +1815,7 @@ create_text_block (struct window *w, struct display_line *dl, after a ^M is invisible. */ int selective = (INTP (b->selective_display) ? XINT (b->selective_display) - : ((!NILP (b->selective_display) ? -1 : 0))); + : (!NILP (b->selective_display) ? -1 : 0)); /* The variable ctl-arrow allows the user to specify what characters can actually be displayed and which octal should be used for. @@ -2288,7 +2288,7 @@ create_text_block (struct window *w, struct display_line *dl, int prop_width = 0; if (data.start_col > 1) - tab_start_pixpos -= (space_width (w) * (data.start_col - 1)) + tab_start_pixpos -= (space_width (w) * (data.start_col - 1)) + data.start_col_xoffset; next_tab_start = @@ -4341,9 +4341,9 @@ create_string_text_block (struct window *w, Lisp_Object disp_string, } else { - dl->left_margin_findex = + dl->left_margin_findex = get_builtin_face_cache_index (w, Vleft_margin_face); - dl->right_margin_findex = + dl->right_margin_findex = get_builtin_face_cache_index (w, Vright_margin_face); } @@ -4380,7 +4380,7 @@ create_string_text_block (struct window *w, Lisp_Object disp_string, data.start_col = 0; /* I don't think we want this, string areas should not scroll with - the window + the window data.start_col = w->hscroll; data.bi_start_col_enabled = (w->hscroll ? bi_start_pos : 0); */ @@ -4849,7 +4849,7 @@ done: else dl->end_bufpos = buffer_or_string_bytind_to_bufpos (disp_string, data.bi_bufpos) - 1; if (truncate_win) - data.dl->num_chars = + data.dl->num_chars = string_column_at_point (s, dl->end_bufpos, b ? XINT (b->tab_width) : 8); else /* This doesn't correctly take into account tabs and control @@ -4889,8 +4889,8 @@ done: representation of the buffer contents starting from the given position when displayed in the given window. The display line ends when the contents of the line reach the right boundary of the given - window. - + window. + This is very similar to generate_display_line but with the same limitations as create_string_text_block. I have taken the liberty of fixing the bytind stuff though.*/ @@ -4905,7 +4905,7 @@ generate_string_display_line (struct window *w, Lisp_Object disp_string, Bufpos ret_bufpos; /* you must set bounds before calling this. */ - + /* Reset what this line is using. */ if (dl->display_blocks) Dynarr_reset (dl->display_blocks); @@ -5151,7 +5151,7 @@ regenerate_window (struct window *w, Bufpos start_pos, Bufpos point, int type) /* See if we've been asked to start midway through a line, for partial display line scrolling. */ - if (yclip) + if (yclip) { dlp->top_clip = yclip; yclip = 0; @@ -6311,6 +6311,7 @@ redisplay_frame (struct frame *f, int preemption_check) process.*/ if (!Dynarr_length (f->subwindow_cachels) || f->subwindows_changed + || f->faces_changed || f->frame_changed) { reset_subwindow_cachels (f); @@ -7136,7 +7137,7 @@ update_internal_cache_list (struct window *w, int type) else { struct line_start_cache lsc; - + lsc.start = dl->bufpos; lsc.end = dl->end_bufpos; lsc.height = dl->ascent + dl->descent; @@ -7657,7 +7658,7 @@ start_with_line_at_pixpos (struct window *w, Bufpos point, int pixpos) assert (cur_elt >= -1); /* This used to be cur_elt>=0 under the assumption that if point is in the top line and not at BUF_BEGV, then - setting the window_start to a newline before the start of + setting the window_start to a newline before the start of the first line will always cause scrolling. However in my (jv) opinion this is wrong. That new line @@ -7667,7 +7668,7 @@ start_with_line_at_pixpos (struct window *w, Bufpos point, int pixpos) on that assert. So we have no option but to continue the search if we found point at the top of the line_start_cache again. */ - cur_pos = Dynarr_atp (w->line_start_cache,0)->start; + cur_pos = Dynarr_atp (w->line_start_cache,0)->start; } prev_pos = cur_pos; } diff --git a/src/regex.c b/src/regex.c index d7618d1..e44eb13 100644 --- a/src/regex.c +++ b/src/regex.c @@ -352,7 +352,7 @@ char *alloca (); #define BYTEWIDTH 8 /* In bits. */ -#define STREQ(s1, s2) ((strcmp (s1, s2) == 0)) +#define STREQ(s1, s2) (strcmp (s1, s2) == 0) #undef MAX #undef MIN diff --git a/src/s/windowsnt.h b/src/s/windowsnt.h index f602178..ebbcf69 100644 --- a/src/s/windowsnt.h +++ b/src/s/windowsnt.h @@ -125,8 +125,7 @@ typedef int pid_t; /* XEmacs file I/O for DOS text files requires FILE_CODING */ #define FILE_CODING -extern Lisp_Object Vdirectory_sep_char; -#define DIRECTORY_SEP ((char)XCHARVAL(Vdirectory_sep_char)) +#define DIRECTORY_SEP ((char)XCHAR(Vdirectory_sep_char)) /* Define this to be the separator between devices and paths */ #define DEVICE_SEP ':' diff --git a/src/specifier.c b/src/specifier.c index b344d5f..d81e55e 100644 --- a/src/specifier.c +++ b/src/specifier.c @@ -1648,10 +1648,16 @@ build_up_processed_list (Lisp_Object specifier, Lisp_Object locale, LIST_LOOP (rest, inst_list) { Lisp_Object tag_set = XCAR (XCAR (rest)); - Lisp_Object instantiator = Fcopy_tree (XCDR (XCAR (rest)), Qt); Lisp_Object sub_inst_list = Qnil; + Lisp_Object instantiator; struct gcpro ngcpro1, ngcpro2; + if (HAS_SPECMETH_P (sp, copy_instantiator)) + instantiator = SPECMETH (sp, copy_instantiator, + (XCDR (XCAR (rest)))); + else + instantiator = Fcopy_tree (XCDR (XCAR (rest)), Qt); + NGCPRO2 (instantiator, sub_inst_list); /* call the will-add method; it may GC */ sub_inst_list = HAS_SPECMETH_P (sp, going_to_add) ? @@ -2539,7 +2545,7 @@ specifier_instance (Lisp_Object specifier, Lisp_Object matchspec, goto do_fallback; } -retry: + retry: /* First see if we can generate one from the window specifiers. */ if (!NILP (window)) CHECK_INSTANCE_ENTRY (window, matchspec, LOCALE_WINDOW); @@ -2558,7 +2564,7 @@ retry: /* Last and least try the global specifiers. */ CHECK_INSTANCE_ENTRY (Qglobal, matchspec, LOCALE_GLOBAL); -do_fallback: + do_fallback: /* We're out of specifiers and we still haven't generated an instance. At least try the fallback ... If this fails, then we just return Qunbound. */ diff --git a/src/specifier.h b/src/specifier.h index 506319e..e447d5c 100644 --- a/src/specifier.h +++ b/src/specifier.h @@ -124,6 +124,13 @@ struct specifier_methods valid. */ void (*validate_method) (Lisp_Object instantiator); + + /* Copy method: Given an instantiator, copy the bits that we need to + for this specifier type. + + If this function is not present, then Fcopy_tree is used. */ + Lisp_Object (*copy_instantiator_method) (Lisp_Object instantiator); + /* Validate-matchspec method: Given a matchspec, verify that it's valid for this specifier type. If not, signal an error. diff --git a/src/syntax.c b/src/syntax.c index 2e0dde9..d4cd963 100644 --- a/src/syntax.c +++ b/src/syntax.c @@ -385,12 +385,12 @@ scan_words (struct buffer *buf, Bufpos from, int count) if (code != Sword #ifdef MULE || WORD_BOUNDARY_P (ch0, ch1) -#endif +#endif ) break; #ifdef MULE ch0 = ch1; -#endif +#endif from++; } count--; @@ -1027,7 +1027,7 @@ scan_lists (struct buffer *buf, Bufpos from, int count, int depth, if (SYNTAX_PREFIX_UNSAFE (mirrortab, c)) continue; - switch (((quoted) ? Sword : code)) + switch (quoted ? Sword : code) { case Sword: case Ssymbol: @@ -1681,11 +1681,12 @@ vars_of_syntax (void) DEFVAR_BOOL ("parse-sexp-ignore-comments", &parse_sexp_ignore_comments /* Non-nil means `forward-sexp', etc., should treat comments as whitespace. */ ); + parse_sexp_ignore_comments = 0; - words_include_escapes = 0; DEFVAR_BOOL ("words-include-escapes", &words_include_escapes /* Non-nil means `forward-word', etc., should treat escape chars part of words. */ ); + words_include_escapes = 0; no_quit_in_re_search = 0; } diff --git a/src/toolbar.h b/src/toolbar.h index 6440767..7e3376f 100644 --- a/src/toolbar.h +++ b/src/toolbar.h @@ -34,7 +34,7 @@ Boston, MA 02111-1307, USA. */ #define FRAME_CURRENT_TOOLBAR_SIZE(frame, pos) \ ((frame)->current_toolbar_size[pos]) #define DEVICE_SUPPORTS_TOOLBARS_P(d) \ - (HAS_DEVMETH_P ((d), output_frame_toolbars)) + HAS_DEVMETH_P (d, output_frame_toolbars) struct toolbar_button { diff --git a/src/widget.c b/src/widget.c index 7a3a9e6..2b80241 100644 --- a/src/widget.c +++ b/src/widget.c @@ -101,7 +101,7 @@ ARGS are passed as extra arguments to the function. newargs[0] = Fwidget_get (args[0], args[1]); newargs[1] = args[0]; newargs[2] = Flist (nargs - 2, args + 2); - GCPRO1 ((newargs[2])); + GCPRO1 (newargs[2]); RETURN_UNGCPRO (Fapply (3, newargs)); } diff --git a/src/window.c b/src/window.c index cdf35a0..80934b9 100644 --- a/src/window.c +++ b/src/window.c @@ -4731,7 +4731,6 @@ struct window_config #define XWINDOW_CONFIGURATION(x) XRECORD (x, window_configuration, struct window_config) #define XSETWINDOW_CONFIGURATION(x, p) XSETRECORD (x, p, window_configuration) #define WINDOW_CONFIGURATIONP(x) RECORDP (x, window_configuration) -#define GC_WINDOW_CONFIGURATIONP(x) GC_RECORDP (x, window_configuration) #define CHECK_WINDOW_CONFIGURATION(x) CHECK_RECORD (x, window_configuration) static Lisp_Object diff --git a/tests/ChangeLog b/tests/ChangeLog index d238bff..f14354d 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,22 @@ +1999-12-24 Martin Buchholz + + * XEmacs 21.2.25 is released. + +1999-12-21 Martin Buchholz + + * automated/byte-compiler-tests.el: Add Jan's tests for equal + effect of bytecode and interpreted code. + + * automated/lisp-tests.el: Add tests for near-text functions. + +1999-12-19 Martin Buchholz + + * automated/mule-tests.el: Add tests for fillarray, aset. + +1999-12-17 Martin Buchholz + + * automated/lisp-tests.el: Add tests for mapcar1() crashes. + 1999-12-14 Martin Buchholz * XEmacs 21.2.24 is released. diff --git a/tests/automated/base64-tests.el b/tests/automated/base64-tests.el index 3c11ec2..fee7225 100644 --- a/tests/automated/base64-tests.el +++ b/tests/automated/base64-tests.el @@ -174,11 +174,12 @@ oqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX (defconst bt-nonbase64-chars (set-difference (mapcar #'identity bt-allchars) bt-base64-chars)) -(when nil - ;; This code crashes XEmacs! This requires further investigation. - ;; I'm running Linux, and for me, XEmacs crashes in - ;; Fmapconcat()->mapcar1(), after a GC that thrashes the stack. - ;; Raymond Toy reports a similar crash under Solaris. +(when t + ;; This code crashes some versions of XEmacs 21.2! This requires + ;; further investigation. I (hniksic) am running Linux, and for me, + ;; XEmacs used to crash in Fmapconcat()->mapcar1(), after a GC that + ;; thrashes the stack. Raymond Toy reported a similar crash under + ;; Solaris. I can no longer repeat the bug, so I cannot fix it now. (loop for (raw encoded) in bt-test-strings do (unless (equal raw "") (let* ((middlepos (/ (1+ (length encoded)) 2)) diff --git a/tests/automated/byte-compiler-tests.el b/tests/automated/byte-compiler-tests.el index 87612ae..21c110f 100644 --- a/tests/automated/byte-compiler-tests.el +++ b/tests/automated/byte-compiler-tests.el @@ -91,3 +91,30 @@ error "`let' bindings can have only one value-form" (eval '(let* ((x 1 2)) 3))) +(defmacro before-and-after-compile-equal (&rest form) + `(Assert (equal (funcall (quote (lambda () ,@form))) + (funcall (byte-compile (quote (lambda () ,@form))))))) + +(defvar simplyamarker (point-min-marker)) + +;; The byte optimizer must be careful with +/- with a single argument. + +(before-and-after-compile-equal (+)) +(before-and-after-compile-equal (+ 2 2)) +(before-and-after-compile-equal (+ 2 1)) +(before-and-after-compile-equal (+ 1 2)) +;; (+ 1) is OK. but (+1) signals an error. +(before-and-after-compile-equal (+ 1)) +(before-and-after-compile-equal (+ 3)) +(before-and-after-compile-equal (+ simplyamarker 1)) +;; The optimization (+ m) --> m is invalid when m is a marker. +;; Currently the following test fails - controversial. +;; (before-and-after-compile-equal (+ simplyamarker)) +;; Same tests for minus. +(before-and-after-compile-equal (- 2 2)) +(before-and-after-compile-equal (- 2 1)) +(before-and-after-compile-equal (- 1 2)) +(before-and-after-compile-equal (- 1)) +(before-and-after-compile-equal (- 3)) +(before-and-after-compile-equal (- simplyamarker 1)) +(before-and-after-compile-equal (- simplyamarker)) diff --git a/tests/automated/lisp-tests.el b/tests/automated/lisp-tests.el index 2ace595..1fba118 100644 --- a/tests/automated/lisp-tests.el +++ b/tests/automated/lisp-tests.el @@ -755,6 +755,29 @@ (Assert (equal (mapconcat #'identity '("1" "2" "3") "|") "1|2|3")) (Assert (equal (mapconcat #'identity ["1" "2" "3"] "|") "1|2|3")) +;; The following 2 functions used to crash XEmacs via mapcar1(). +;; We don't test the actual values of the mapcar, since they're undefined. +(Assert + (let ((x (list (cons 1 1) (cons 2 2) (cons 3 3)))) + (mapcar + (lambda (y) + "Devious evil mapping function" + (when (eq (car y) 2) ; go out onto a limb + (setcdr x nil) ; cut it off behind us + (garbage-collect)) ; are we riding a magic broomstick? + (car y)) ; sorry, hard landing + x))) + +(Assert + (let ((x (list (cons 1 1) (cons 2 2) (cons 3 3)))) + (mapcar + (lambda (y) + "Devious evil mapping function" + (when (eq (car y) 1) + (setcdr (cdr x) 42)) ; drop a brick wall onto the freeway + (car y)) + x))) + ;;----------------------------------------------------- ;; Test vector functions ;;----------------------------------------------------- @@ -807,3 +830,34 @@ (Assert (equal (split-string "foo,,bar,," ",") '("foo" "" "bar" "" ""))) (Assert (equal (split-string "foo,,bar" ",+") '("foo" "bar"))) (Assert (equal (split-string ",foo,,bar," ",+") '("" "foo" "bar" ""))) + +;;----------------------------------------------------- +;; Test near-text buffer functions. +;;----------------------------------------------------- +(with-temp-buffer + (erase-buffer) + (Assert (eq (char-before) nil)) + (Assert (eq (char-before (point)) nil)) + (Assert (eq (char-before (point-marker)) nil)) + (Assert (eq (char-before (point) (current-buffer)) nil)) + (Assert (eq (char-before (point-marker) (current-buffer)) nil)) + (Assert (eq (char-after) nil)) + (Assert (eq (char-after (point)) nil)) + (Assert (eq (char-after (point-marker)) nil)) + (Assert (eq (char-after (point) (current-buffer)) nil)) + (Assert (eq (char-after (point-marker) (current-buffer)) nil)) + (Assert (eq (preceding-char) 0)) + (Assert (eq (preceding-char (current-buffer)) 0)) + (Assert (eq (following-char) 0)) + (Assert (eq (following-char (current-buffer)) 0)) + (insert "foobar") + (Assert (eq (char-before) ?r)) + (Assert (eq (char-after) nil)) + (Assert (eq (preceding-char) ?r)) + (Assert (eq (following-char) 0)) + (goto-char (point-min)) + (Assert (eq (char-before) nil)) + (Assert (eq (char-after) ?f)) + (Assert (eq (preceding-char) 0)) + (Assert (eq (following-char) ?f)) + ) diff --git a/tests/automated/mule-tests.el b/tests/automated/mule-tests.el index 729d134..dea33ef 100644 --- a/tests/automated/mule-tests.el +++ b/tests/automated/mule-tests.el @@ -29,6 +29,9 @@ ;; Test some Mule functionality (most of these remain to be written) . ;; See test-harness.el for instructions on how to run these tests. +;; This file will be (read)ed by a non-mule XEmacs, so don't use +;; literal non-Latin1 characters. Use (make-char) instead. + ;;----------------------------------------------------------------- ;; Test whether all legal chars may be safely inserted to a buffer. ;;----------------------------------------------------------------- @@ -73,3 +76,31 @@ the Assert macro checks for correctness." ;; time-consuming tests like this one run twice, once interpreted and ;; once compiled, for no good reason. (test-chars t) + +;;----------------------------------------------------------------- +;; Test string modification functions that modify the length of a char. +;;----------------------------------------------------------------- + +(when (featurep 'mule) + ;; Test fillarray + (macrolet + ((fillarray-test + (charset1 charset2) + (let ((char1 (make-char charset1 69)) + (char2 (make-char charset2 69))) + `(let ((string (make-string 1000 ,char1))) + (fillarray string ,char2) + (Assert (eq (aref string 0) ,char2)) + (Assert (eq (aref string (1- (length string))) ,char2)) + (Assert (eq (length string) 1000)))))) + (fillarray-test ascii latin-iso8859-1) + (fillarray-test ascii latin-iso8859-2) + (fillarray-test latin-iso8859-1 ascii) + (fillarray-test latin-iso8859-2 ascii)) + + ;; Test aset + (let ((string (string (make-char 'ascii 69) (make-char 'latin-iso8859-2 69)))) + (aset string 0 (make-char 'latin-iso8859-2 42)) + (Assert (eq (aref string 1) (make-char 'latin-iso8859-2 69)))) + + ) diff --git a/tests/glyph-test.el b/tests/glyph-test.el index 365322c..67533cc 100644 --- a/tests/glyph-test.el +++ b/tests/glyph-test.el @@ -151,4 +151,25 @@ (set-glyph-face layout 'gui-element) (set-extent-begin-glyph (make-extent (point) (point)) layout) - + +(setq test-toggle-widget nil) + +(defun test-toggle (widget) + (set-extent-begin-glyph + (make-extent (point) (point)) + (make-glyph (vector 'button + :descriptor "ok" + :style 'toggle + :selected `(funcall test-toggle-value + ,widget) + :callback `(funcall test-toggle-action + ,widget))))) + +(defun test-toggle-action (widget &optional event) + (if widget + (message "Widget is t") + (message "Widget is nil"))) + +(defun test-toggle-value (widget) + (setq widget (not widget)) + (not widget)) diff --git a/version.sh b/version.sh index d9dac41..81f4da1 100644 --- a/version.sh +++ b/version.sh @@ -2,8 +2,8 @@ emacs_is_beta=t emacs_major_version=21 emacs_minor_version=2 -emacs_beta_version=24 -xemacs_codename="Hecate" +emacs_beta_version=25 +xemacs_codename="Hephaestus" infodock_major_version=4 infodock_minor_version=0 infodock_build_version=8 -- 1.7.10.4