From 82da33b61c3e2dd2937db17b75b2838188793053 Mon Sep 17 00:00:00 2001 From: tomo Date: Wed, 19 Jan 2000 06:56:45 +0000 Subject: [PATCH] Sync with r21-2-26. --- CHANGES-beta | 27 +- ChangeLog | 33 +- README | 3 - configure | 1682 +++++++++++++++++++------------- configure.in | 164 +++- configure.usage | 8 +- etc/TUTORIAL.de | 6 +- info/custom.info | 39 +- info/emodules.info | 48 +- info/info.info | 70 +- info/internals.info | 270 ++--- info/internals.info-1 | 10 +- info/internals.info-2 | 14 +- info/internals.info-3 | 29 +- info/internals.info-4 | 22 +- info/internals.info-5 | 24 +- info/internals.info-6 | 14 +- info/internals.info-7 | 12 +- info/internals.info-8 | 8 +- info/lispref.info | 1663 ++++++++++++++++--------------- info/lispref.info-1 | 20 +- info/lispref.info-10 | 117 +-- info/lispref.info-11 | 42 +- info/lispref.info-12 | 72 +- info/lispref.info-13 | 29 +- info/lispref.info-14 | 15 +- info/lispref.info-15 | 193 ++-- info/lispref.info-16 | 173 ++-- info/lispref.info-17 | 142 +-- info/lispref.info-18 | 74 +- info/lispref.info-19 | 125 +-- info/lispref.info-2 | 14 +- info/lispref.info-20 | 79 +- info/lispref.info-21 | 87 +- info/lispref.info-22 | 114 +-- info/lispref.info-23 | 102 +- info/lispref.info-24 | 83 +- info/lispref.info-25 | 123 +-- info/lispref.info-26 | 110 +-- info/lispref.info-27 | 184 ++-- info/lispref.info-28 | 141 +-- info/lispref.info-29 | 85 +- info/lispref.info-3 | 52 +- info/lispref.info-30 | 118 +-- info/lispref.info-31 | 70 +- info/lispref.info-32 | 92 +- info/lispref.info-33 | 150 +-- info/lispref.info-34 | 138 +-- info/lispref.info-35 | 180 ++-- info/lispref.info-36 | 168 ++-- info/lispref.info-37 | 108 +- info/lispref.info-38 | 150 +-- info/lispref.info-39 | 82 +- info/lispref.info-4 | 155 +-- info/lispref.info-40 | 121 +-- info/lispref.info-41 | 118 +-- info/lispref.info-42 | 90 +- info/lispref.info-43 | 108 +- info/lispref.info-44 | 38 +- info/lispref.info-5 | 146 +-- info/lispref.info-6 | 220 ++--- info/lispref.info-7 | 123 +-- info/lispref.info-8 | 152 +-- info/lispref.info-9 | 97 +- info/new-users-guide.info | 106 +- info/new-users-guide.info-1 | 10 +- info/new-users-guide.info-2 | 13 +- info/new-users-guide.info-3 | 4 +- info/standards.info | 111 ++- info/standards.info-1 | 20 +- info/standards.info-2 | 26 +- info/standards.info-3 | 14 +- info/texinfo.info | 611 ++++++------ info/texinfo.info-1 | 14 +- info/texinfo.info-10 | 15 +- info/texinfo.info-11 | 13 +- info/texinfo.info-12 | 68 +- info/texinfo.info-2 | 19 +- info/texinfo.info-3 | 25 +- info/texinfo.info-4 | 22 +- info/texinfo.info-5 | 25 +- info/texinfo.info-6 | 100 +- info/texinfo.info-7 | 24 +- info/texinfo.info-8 | 38 +- info/texinfo.info-9 | 31 +- info/widget.info | 223 +++-- info/xemacs-faq.info | 507 +++++----- info/xemacs-faq.info-1 | 67 +- info/xemacs-faq.info-2 | 48 +- info/xemacs-faq.info-3 | 24 +- info/xemacs-faq.info-4 | 23 +- info/xemacs-faq.info-5 | 17 +- info/xemacs.info | 724 +++++++------- info/xemacs.info-1 | 32 +- info/xemacs.info-10 | 29 +- info/xemacs.info-11 | 20 +- info/xemacs.info-12 | 8 +- info/xemacs.info-13 | 36 +- info/xemacs.info-14 | 47 +- info/xemacs.info-15 | 19 +- info/xemacs.info-16 | 22 +- info/xemacs.info-17 | 26 +- info/xemacs.info-18 | 30 +- info/xemacs.info-19 | 4 +- info/xemacs.info-2 | 8 +- info/xemacs.info-20 | 4 +- info/xemacs.info-21 | 4 +- info/xemacs.info-3 | 32 +- info/xemacs.info-4 | 40 +- info/xemacs.info-5 | 8 +- info/xemacs.info-6 | 24 +- info/xemacs.info-7 | 24 +- info/xemacs.info-8 | 40 +- info/xemacs.info-9 | 24 +- lib-src/ChangeLog | 20 + lib-src/config.values.sh | 65 +- lib-src/fakemail.c | 4 +- lisp/ChangeLog | 89 +- 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 +- lisp/wid-edit.el | 16 +- lwlib/ChangeLog | 46 + 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 | 203 ++-- lwlib/xlwtabsP.h | 5 +- man/ChangeLog | 46 +- man/internals/internals.texi | 2 +- 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 | 41 +- nt/minitar.c | 1 + src/ChangeLog | 245 ++++- src/Makefile.in.in | 4 + src/buffer.c | 2 + src/buffer.h | 2 +- src/cmdloop.c | 6 +- src/config.h.in | 19 +- src/data.c | 2 +- src/database.c | 1 - src/debug.c | 66 +- src/dialog-x.c | 19 +- src/editfns.c | 35 +- src/elhash.c | 10 +- src/eval.c | 58 +- 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 | 191 ++-- src/glyphs.c | 83 +- src/glyphs.h | 82 +- src/gui-x.c | 7 +- src/gutter.h | 3 +- src/lisp.h | 25 +- src/menubar-x.c | 12 +- src/nt.c | 2 +- src/print.c | 75 +- src/process-nt.c | 16 +- src/profile.c | 7 +- src/redisplay-output.c | 128 +-- src/redisplay.c | 29 +- src/regex.c | 2 +- src/s/windowsnt.h | 3 +- src/scrollbar-x.c | 5 +- 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 | 23 + tests/automated/base64-tests.el | 249 +++++ 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 +- 201 files changed, 8861 insertions(+), 7046 deletions(-) create mode 100644 tests/automated/base64-tests.el diff --git a/CHANGES-beta b/CHANGES-beta index 6740d26..7a22198 100644 --- a/CHANGES-beta +++ b/CHANGES-beta @@ -1,5 +1,30 @@ - -*- indented-text -*- +to 21.2.26 "Millenium" +-- Fix unpredictable results, perhaps even crashes, if using the + `return from debugger feature' and errors in `eval' or `funcall'. +-- fix for Tab widgets causing X errors in XMapWindow(). + +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 9603cc4..dfc84eb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -21,6 +21,23 @@ * configure.in: Add new option `--with-utf-2000'; define `UTF2000' if it is specified. +1999-12-31 Martin Buchholz + + * XEmacs 21.2.26 is released. + +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. @@ -170,7 +187,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 @@ -710,7 +727,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. @@ -721,7 +738,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 @@ -1539,7 +1556,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 @@ -1953,13 +1970,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 @@ -1972,12 +1989,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 edc8c18..2f6aca0 100755 --- a/configure +++ b/configure @@ -484,6 +484,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 ;; @@ -712,12 +727,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\"" @@ -818,7 +832,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:822: checking whether ln -s works" >&5 +echo "configure:836: checking whether ln -s works" >&5 rm -f conftestdata if ln -s X conftestdata 2>/dev/null @@ -1063,7 +1077,7 @@ EOF echo $ac_n "checking "host system type"""... $ac_c" 1>&6 -echo "configure:1067: checking "host system type"" >&5 +echo "configure:1081: 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/'` @@ -1557,7 +1571,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:1561: checking for $ac_word" >&5 +echo "configure:1575: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1584,7 +1598,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:1588: checking for $ac_word" >&5 +echo "configure:1602: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1632,7 +1646,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:1636: checking for $ac_word" >&5 +echo "configure:1650: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1661,7 +1675,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1665: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:1679: 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' @@ -1674,12 +1688,12 @@ cross_compiling=no cat > conftest.$ac_ext << EOF -#line 1678 "configure" +#line 1692 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:1683: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1697: \"$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 @@ -1707,19 +1721,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:1711: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1725: 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:1716: checking whether we are using GNU C" >&5 +echo "configure:1730: 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:1737: \"$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 @@ -1737,7 +1751,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:1741: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1755: checking whether ${CC-cc} accepts -g" >&5 echo 'void f(){}' > conftest.c if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then @@ -1770,7 +1784,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:1774: checking for $ac_word" >&5 +echo "configure:1788: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1797,7 +1811,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:1801: checking for $ac_word" >&5 +echo "configure:1815: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1845,7 +1859,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:1849: checking for $ac_word" >&5 +echo "configure:1863: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -1874,7 +1888,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1878: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:1892: 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' @@ -1887,12 +1901,12 @@ cross_compiling=no cat > conftest.$ac_ext << EOF -#line 1891 "configure" +#line 1905 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:1896: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1910: \"$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 @@ -1920,19 +1934,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:1924: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1938: 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:1929: checking whether we are using GNU C" >&5 +echo "configure:1943: 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:1950: \"$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 @@ -1950,7 +1964,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:1954: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1968: checking whether ${CC-cc} accepts -g" >&5 echo 'void f(){}' > conftest.c if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then @@ -1983,7 +1997,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:1987: checking for $ac_word" >&5 +echo "configure:2001: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2010,7 +2024,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:2014: checking for $ac_word" >&5 +echo "configure:2028: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2058,7 +2072,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:2062: checking for $ac_word" >&5 +echo "configure:2076: checking for $ac_word" >&5 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2087,7 +2101,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:2091: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:2105: 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' @@ -2100,12 +2114,12 @@ cross_compiling=no cat > conftest.$ac_ext << EOF -#line 2104 "configure" +#line 2118 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:2109: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2123: \"$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 @@ -2133,19 +2147,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:2137: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:2151: 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:2142: checking whether we are using GNU C" >&5 +echo "configure:2156: 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:2163: \"$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 @@ -2163,7 +2177,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:2167: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:2181: checking whether ${CC-cc} accepts -g" >&5 echo 'void f(){}' > conftest.c if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then @@ -2200,7 +2214,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:2204: checking how to run the C preprocessor" >&5 +echo "configure:2218: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -2213,13 +2227,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:2223: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2237: \"$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 : @@ -2230,13 +2244,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:2240: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2254: \"$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 : @@ -2247,13 +2261,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:2257: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2271: \"$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 : @@ -2278,9 +2292,9 @@ echo "$ac_t""$CPP" 1>&6 echo $ac_n "checking for AIX""... $ac_c" 1>&6 -echo "configure:2282: checking for AIX" >&5 +echo "configure:2296: checking for AIX" >&5 cat > conftest.$ac_ext <&6 -echo "configure:2311: checking for GNU libc" >&5 +echo "configure:2325: checking for GNU libc" >&5 cat > conftest.$ac_ext < int main() { @@ -2321,7 +2335,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:2325: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2339: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_glibc=yes else @@ -2343,7 +2357,7 @@ EOF cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:2373: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then : else @@ -2629,7 +2643,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:2633: checking for dynodump" >&5 +echo "configure:2647: checking for dynodump" >&5 if test "$unexec" != "unexsol2.o"; then echo "$ac_t""no" 1>&6 else @@ -2667,12 +2681,12 @@ if test "$unexec" = "unexaix.o"; then done echo $ac_n "checking for terminateAndUnload in -lC""... $ac_c" 1>&6 -echo "configure:2671: checking for terminateAndUnload in -lC" >&5 +echo "configure:2685: 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:2701: \"$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 @@ -2787,7 +2801,7 @@ fi if test "$add_runtime_path" = "yes"; then echo $ac_n "checking "for runtime libraries flag"""... $ac_c" 1>&6 -echo "configure:2791: checking "for runtime libraries flag"" >&5 +echo "configure:2805: checking "for runtime libraries flag"" >&5 case "$opsys" in sol2 ) dash_r="-R" ;; decosf* | linux* | irix*) dash_r="-rpath " ;; @@ -2809,14 +2823,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:2834: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* dash_r="$try_dash_r" else @@ -2918,10 +2932,10 @@ else fi after_morecore_hook_exists=yes echo $ac_n "checking for malloc_get_state""... $ac_c" 1>&6 -echo "configure:2922: checking for malloc_get_state" >&5 +echo "configure:2936: 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:2962: \"$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 @@ -2964,10 +2978,10 @@ doug_lea_malloc=no fi echo $ac_n "checking for malloc_set_state""... $ac_c" 1>&6 -echo "configure:2968: checking for malloc_set_state" >&5 +echo "configure:2982: 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:3008: \"$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 @@ -3010,16 +3024,16 @@ doug_lea_malloc=no fi echo $ac_n "checking whether __after_morecore_hook exists""... $ac_c" 1>&6 -echo "configure:3014: checking whether __after_morecore_hook exists" >&5 +echo "configure:3028: 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:3037: \"$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 @@ -3078,7 +3092,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:3082: checking for $ac_word" >&5 +echo "configure:3096: checking for $ac_word" >&5 if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. @@ -3133,7 +3147,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:3137: checking for a BSD compatible install" >&5 +echo "configure:3151: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" @@ -3187,7 +3201,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:3191: checking for $ac_word" >&5 +echo "configure:3205: checking for $ac_word" >&5 if test -n "$YACC"; then ac_cv_prog_YACC="$YACC" # Let the user override the test. @@ -3219,15 +3233,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:3223: checking for $ac_hdr" >&5 +echo "configure:3237: 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:3231: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3245: \"$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* @@ -3260,15 +3274,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:3264: checking for $ac_hdr" >&5 +echo "configure:3278: 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:3272: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3286: \"$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* @@ -3301,15 +3315,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:3305: checking for $ac_hdr" >&5 +echo "configure:3319: 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:3313: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3327: \"$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* @@ -3339,10 +3353,10 @@ fi done echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 -echo "configure:3343: checking for sys/wait.h that is POSIX.1 compatible" >&5 +echo "configure:3357: checking for sys/wait.h that is POSIX.1 compatible" >&5 cat > conftest.$ac_ext < #include @@ -3358,7 +3372,7 @@ wait (&s); s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF -if { (eval echo configure:3362: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3376: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else @@ -3382,10 +3396,10 @@ EOF fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:3386: checking for ANSI C header files" >&5 +echo "configure:3400: checking for ANSI C header files" >&5 cat > conftest.$ac_ext < #include @@ -3393,7 +3407,7 @@ cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3397: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3411: \"$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* @@ -3410,7 +3424,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 @@ -3428,7 +3442,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 @@ -3446,7 +3460,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') @@ -3457,7 +3471,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF -if { (eval echo configure:3461: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:3475: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then : else @@ -3483,10 +3497,10 @@ EOF fi echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 -echo "configure:3487: checking whether time.h and sys/time.h may both be included" >&5 +echo "configure:3501: checking whether time.h and sys/time.h may both be included" >&5 cat > conftest.$ac_ext < #include @@ -3495,7 +3509,7 @@ int main() { struct tm *tp; ; return 0; } EOF -if { (eval echo configure:3499: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3513: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else @@ -3519,10 +3533,10 @@ EOF fi echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6 -echo "configure:3523: checking for sys_siglist declaration in signal.h or unistd.h" >&5 +echo "configure:3537: checking for sys_siglist declaration in signal.h or unistd.h" >&5 cat > conftest.$ac_ext < #include @@ -3534,7 +3548,7 @@ int main() { char *msg = *(sys_siglist + 1); ; return 0; } EOF -if { (eval echo configure:3538: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3552: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_decl_sys_siglist=yes else @@ -3559,9 +3573,9 @@ fi echo $ac_n "checking for struct utimbuf""... $ac_c" 1>&6 -echo "configure:3563: checking for struct utimbuf" >&5 +echo "configure:3577: checking for struct utimbuf" >&5 cat > conftest.$ac_ext < @@ -3580,7 +3594,7 @@ int main() { static struct utimbuf x; x.actime = x.modtime; ; return 0; } EOF -if { (eval echo configure:3584: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3598: \"$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 @@ -3600,10 +3614,10 @@ fi rm -f conftest* echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:3604: checking return type of signal handlers" >&5 +echo "configure:3618: checking return type of signal handlers" >&5 cat > conftest.$ac_ext < #include @@ -3620,7 +3634,7 @@ int main() { int i; ; return 0; } EOF -if { (eval echo configure:3624: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3638: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else @@ -3642,10 +3656,10 @@ EOF echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:3646: checking for size_t" >&5 +echo "configure:3660: checking for size_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3676,10 +3690,10 @@ EOF fi echo $ac_n "checking for pid_t""... $ac_c" 1>&6 -echo "configure:3680: checking for pid_t" >&5 +echo "configure:3694: checking for pid_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3710,10 +3724,10 @@ EOF fi echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 -echo "configure:3714: checking for uid_t in sys/types.h" >&5 +echo "configure:3728: checking for uid_t in sys/types.h" >&5 cat > conftest.$ac_ext < EOF @@ -3749,10 +3763,10 @@ EOF fi echo $ac_n "checking for mode_t""... $ac_c" 1>&6 -echo "configure:3753: checking for mode_t" >&5 +echo "configure:3767: checking for mode_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3783,10 +3797,10 @@ EOF fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:3787: checking for off_t" >&5 +echo "configure:3801: checking for off_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3817,10 +3831,10 @@ EOF fi echo $ac_n "checking for ssize_t""... $ac_c" 1>&6 -echo "configure:3821: checking for ssize_t" >&5 +echo "configure:3835: checking for ssize_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3852,9 +3866,9 @@ fi echo $ac_n "checking for struct timeval""... $ac_c" 1>&6 -echo "configure:3856: checking for struct timeval" >&5 +echo "configure:3870: checking for struct timeval" >&5 cat > conftest.$ac_ext < @@ -3870,7 +3884,7 @@ int main() { static struct timeval x; x.tv_sec = x.tv_usec; ; return 0; } EOF -if { (eval echo configure:3874: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3888: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 HAVE_TIMEVAL=yes @@ -3892,10 +3906,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:3896: checking whether struct tm is in sys/time.h or time.h" >&5 +echo "configure:3910: checking whether struct tm is in sys/time.h or time.h" >&5 cat > conftest.$ac_ext < #include @@ -3903,7 +3917,7 @@ int main() { struct tm *tp; tp->tm_sec; ; return 0; } EOF -if { (eval echo configure:3907: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3921: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm=time.h else @@ -3927,10 +3941,10 @@ EOF fi echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6 -echo "configure:3931: checking for tm_zone in struct tm" >&5 +echo "configure:3945: checking for tm_zone in struct tm" >&5 cat > conftest.$ac_ext < #include <$ac_cv_struct_tm> @@ -3938,7 +3952,7 @@ int main() { struct tm tm; tm.tm_zone; ; return 0; } EOF -if { (eval echo configure:3942: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3956: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm_zone=yes else @@ -3961,10 +3975,10 @@ EOF else echo $ac_n "checking for tzname""... $ac_c" 1>&6 -echo "configure:3965: checking for tzname" >&5 +echo "configure:3979: checking for tzname" >&5 cat > conftest.$ac_ext < #ifndef tzname /* For SGI. */ @@ -3974,7 +3988,7 @@ int main() { atoi(*tzname); ; return 0; } EOF -if { (eval echo configure:3978: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3992: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_var_tzname=yes else @@ -4000,10 +4014,10 @@ fi echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:4004: checking for working const" >&5 +echo "configure:4018: checking for working const" >&5 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4070: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -4077,7 +4091,7 @@ fi echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:4081: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:4095: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` cat > conftestmake <<\EOF @@ -4102,12 +4116,12 @@ fi echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6 -echo "configure:4106: checking whether byte ordering is bigendian" >&5 +echo "configure:4120: 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 @@ -4118,11 +4132,11 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:4122: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4136: \"$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 @@ -4133,7 +4147,7 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:4137: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4151: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_bigendian=yes else @@ -4150,7 +4164,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:4181: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_c_bigendian=no else @@ -4190,10 +4204,10 @@ fi echo $ac_n "checking size of short""... $ac_c" 1>&6 -echo "configure:4194: checking size of short" >&5 +echo "configure:4208: checking size of short" >&5 cat > conftest.$ac_ext < main() @@ -4204,7 +4218,7 @@ main() exit(0); } EOF -if { (eval echo configure:4208: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4222: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_sizeof_short=`cat conftestval` else @@ -4232,10 +4246,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:4236: checking size of int" >&5 +echo "configure:4250: checking size of int" >&5 cat > conftest.$ac_ext < main() @@ -4246,7 +4260,7 @@ main() exit(0); } EOF -if { (eval echo configure:4250: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4264: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_sizeof_int=`cat conftestval` else @@ -4268,10 +4282,10 @@ EOF echo $ac_n "checking size of long""... $ac_c" 1>&6 -echo "configure:4272: checking size of long" >&5 +echo "configure:4286: checking size of long" >&5 cat > conftest.$ac_ext < main() @@ -4282,7 +4296,7 @@ main() exit(0); } EOF -if { (eval echo configure:4286: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4300: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_sizeof_long=`cat conftestval` else @@ -4304,10 +4318,10 @@ EOF echo $ac_n "checking size of long long""... $ac_c" 1>&6 -echo "configure:4308: checking size of long long" >&5 +echo "configure:4322: checking size of long long" >&5 cat > conftest.$ac_ext < main() @@ -4318,7 +4332,7 @@ main() exit(0); } EOF -if { (eval echo configure:4322: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4336: \"$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 @@ -4340,10 +4354,10 @@ EOF echo $ac_n "checking size of void *""... $ac_c" 1>&6 -echo "configure:4344: checking size of void *" >&5 +echo "configure:4358: checking size of void *" >&5 cat > conftest.$ac_ext < main() @@ -4354,7 +4368,7 @@ main() exit(0); } EOF -if { (eval echo configure:4358: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:4372: \"$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 @@ -4377,7 +4391,7 @@ EOF echo $ac_n "checking for long file names""... $ac_c" 1>&6 -echo "configure:4381: checking for long file names" >&5 +echo "configure:4395: 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: @@ -4423,10 +4437,10 @@ fi echo $ac_n "checking for sin""... $ac_c" 1>&6 -echo "configure:4427: checking for sin" >&5 +echo "configure:4441: checking for sin" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4467: \"$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 @@ -4467,12 +4481,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6 -echo "configure:4471: checking for sin in -lm" >&5 +echo "configure:4485: 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:4501: \"$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 @@ -4527,14 +4541,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:4538: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4552: \"$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 @@ -4551,7 +4565,7 @@ fi rm -f conftest* echo "checking type of mail spool file locking" 1>&6 -echo "configure:4555: checking type of mail spool file locking" >&5 +echo "configure:4569: 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 @@ -4576,12 +4590,12 @@ fi case "$opsys" in decosf*) echo $ac_n "checking for cma_open in -lpthreads""... $ac_c" 1>&6 -echo "configure:4580: checking for cma_open in -lpthreads" >&5 +echo "configure:4594: 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:4610: \"$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 @@ -4628,7 +4642,7 @@ fi esac echo $ac_n "checking whether the -xildoff compiler flag is required""... $ac_c" 1>&6 -echo "configure:4632: checking whether the -xildoff compiler flag is required" >&5 +echo "configure:4646: 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; @@ -4639,7 +4653,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:4643: checking for \"-z ignore\" linker flag" >&5 +echo "configure:4657: 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 ;; @@ -4649,7 +4663,7 @@ fi echo "checking "for specified window system"" 1>&6 -echo "configure:4653: checking "for specified window system"" >&5 +echo "configure:4667: checking "for specified window system"" >&5 if test "$with_x11" != "no"; then test "$x_includes $x_libraries" != "NONE NONE" && \ @@ -4682,7 +4696,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:4686: checking for X" >&5 +echo "configure:4700: checking for X" >&5 # Check whether --with-x or --without-x was given. if test "${with_x+set}" = set; then @@ -4742,12 +4756,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:4751: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4765: \"$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* @@ -4816,14 +4830,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:4841: \"$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. @@ -4932,17 +4946,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:4936: checking whether -R must be followed by a space" >&5 +echo "configure:4950: 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:4960: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_nospace=yes else @@ -4958,14 +4972,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:4983: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_space=yes else @@ -5001,12 +5015,12 @@ ac_cv_lib_dnet_dnet_ntoa=no else echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 -echo "configure:5005: checking for dnet_ntoa in -ldnet" >&5 +echo "configure:5019: 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:5035: \"$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 @@ -5041,12 +5055,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:5045: checking for dnet_ntoa in -ldnet_stub" >&5 +echo "configure:5059: 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:5075: \"$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 @@ -5086,10 +5100,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:5090: checking for gethostbyname" >&5 +echo "configure:5104: checking for gethostbyname" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5130: \"$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 @@ -5133,12 +5147,12 @@ fi if test $ac_cv_func_gethostbyname = no; then echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 -echo "configure:5137: checking for gethostbyname in -lnsl" >&5 +echo "configure:5151: 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:5167: \"$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 @@ -5179,10 +5193,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:5183: checking for connect" >&5 +echo "configure:5197: checking for connect" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5223: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_connect=yes" else @@ -5228,12 +5242,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:5232: checking "$xe_msg_checking"" >&5 +echo "configure:5246: 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:5262: \"$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 @@ -5268,10 +5282,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:5272: checking for remove" >&5 +echo "configure:5286: checking for remove" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5312: \"$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 @@ -5315,12 +5329,12 @@ fi if test $ac_cv_func_remove = no; then echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 -echo "configure:5319: checking for remove in -lposix" >&5 +echo "configure:5333: 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:5349: \"$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 @@ -5355,10 +5369,10 @@ fi # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. echo $ac_n "checking for shmat""... $ac_c" 1>&6 -echo "configure:5359: checking for shmat" >&5 +echo "configure:5373: checking for shmat" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5399: \"$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 @@ -5402,12 +5416,12 @@ fi if test $ac_cv_func_shmat = no; then echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 -echo "configure:5406: checking for shmat in -lipc" >&5 +echo "configure:5420: 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:5436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5454,12 +5468,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:5458: checking "$xe_msg_checking"" >&5 +echo "configure:5472: 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:5488: \"$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 @@ -5639,7 +5653,7 @@ EOF echo "checking for X defines extracted by xmkmf" 1>&6 -echo "configure:5643: checking for X defines extracted by xmkmf" >&5 +echo "configure:5657: checking for X defines extracted by xmkmf" >&5 rm -fr conftestdir if mkdir conftestdir; then cd conftestdir @@ -5671,15 +5685,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:5675: checking for X11/Intrinsic.h" >&5 +echo "configure:5689: 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:5683: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5697: \"$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* @@ -5703,12 +5717,12 @@ fi echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6 -echo "configure:5707: checking for XOpenDisplay in -lX11" >&5 +echo "configure:5721: 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:5737: \"$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 @@ -5744,12 +5758,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:5748: checking "$xe_msg_checking"" >&5 +echo "configure:5762: 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:5778: \"$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 @@ -5787,12 +5801,12 @@ fi echo $ac_n "checking for XShapeSelectInput in -lXext""... $ac_c" 1>&6 -echo "configure:5791: checking for XShapeSelectInput in -lXext" >&5 +echo "configure:5805: 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:5821: \"$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 @@ -5826,12 +5840,12 @@ fi echo $ac_n "checking for XtOpenDisplay in -lXt""... $ac_c" 1>&6 -echo "configure:5830: checking for XtOpenDisplay in -lXt" >&5 +echo "configure:5844: 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:5860: \"$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 @@ -5865,14 +5879,14 @@ fi echo $ac_n "checking the version of X11 being used""... $ac_c" 1>&6 -echo "configure:5869: checking the version of X11 being used" >&5 +echo "configure:5883: 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:5876: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:5890: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ./conftest foobar; x11_release=$? else @@ -5897,15 +5911,15 @@ EOF do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5901: checking for $ac_hdr" >&5 +echo "configure:5915: 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:5909: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5923: \"$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* @@ -5936,7 +5950,7 @@ done echo $ac_n "checking for XFree86""... $ac_c" 1>&6 -echo "configure:5940: checking for XFree86" >&5 +echo "configure:5954: checking for XFree86" >&5 if test -d "/usr/X386/include" -o \ -f "/etc/XF86Config" -o \ -f "/etc/X11/XF86Config" -o \ @@ -5956,12 +5970,12 @@ EOF test -z "$with_xmu" && { echo $ac_n "checking for XmuReadBitmapDataFromFile in -lXmu""... $ac_c" 1>&6 -echo "configure:5960: checking for XmuReadBitmapDataFromFile in -lXmu" >&5 +echo "configure:5974: 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:5990: \"$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 @@ -6011,19 +6025,19 @@ EOF echo $ac_n "checking for main in -lXbsd""... $ac_c" 1>&6 -echo "configure:6015: checking for main in -lXbsd" >&5 +echo "configure:6029: 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:6041: \"$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 @@ -6060,22 +6074,22 @@ fi fi if test "$with_msw" != "no"; then echo "checking for MS-Windows" 1>&6 -echo "configure:6064: checking for MS-Windows" >&5 +echo "configure:6078: checking for MS-Windows" >&5 echo $ac_n "checking for main in -lgdi32""... $ac_c" 1>&6 -echo "configure:6067: checking for main in -lgdi32" >&5 +echo "configure:6081: 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:6093: \"$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 @@ -6141,12 +6155,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:6150: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:6164: \"$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 @@ -6199,7 +6213,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 @@ -6222,7 +6236,7 @@ case "$x_libraries" in *X11R4* ) esac echo "checking for WM_COMMAND option" 1>&6 -echo "configure:6226: checking for WM_COMMAND option" >&5; +echo "configure:6240: checking for WM_COMMAND option" >&5; if test "$with_wmcommand" != "no"; then { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_WMCOMMAND @@ -6237,15 +6251,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:6241: checking for X11/Xauth.h" >&5 +echo "configure:6255: 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:6249: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6263: \"$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* @@ -6268,12 +6282,12 @@ fi } test -z "$with_xauth" && { echo $ac_n "checking for XauGetAuthByAddr in -lXau""... $ac_c" 1>&6 -echo "configure:6272: checking for XauGetAuthByAddr in -lXau" >&5 +echo "configure:6286: 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:6302: \"$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 @@ -6329,15 +6343,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:6333: checking for ${dir}tt_c.h" >&5 +echo "configure:6347: 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:6341: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6355: \"$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* @@ -6373,12 +6387,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:6377: checking "$xe_msg_checking"" >&5 +echo "configure:6391: 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:6407: \"$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 @@ -6446,15 +6460,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:6450: checking for Dt/Dt.h" >&5 +echo "configure:6464: 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:6458: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6472: \"$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* @@ -6477,12 +6491,12 @@ fi } test -z "$with_cde" && { echo $ac_n "checking for DtDndDragStart in -lDtSvc""... $ac_c" 1>&6 -echo "configure:6481: checking for DtDndDragStart in -lDtSvc" >&5 +echo "configure:6495: 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:6511: \"$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 @@ -6562,7 +6576,7 @@ EOF fi echo $ac_n "checking if drag and drop API is needed""... $ac_c" 1>&6 -echo "configure:6566: checking if drag and drop API is needed" >&5 +echo "configure:6580: checking if drag and drop API is needed" >&5 if test "$with_dragndrop" != "no" ; then if test -n "$dragndrop_proto" ; then with_dragndrop=yes @@ -6583,18 +6597,18 @@ EOF fi echo "checking for LDAP" 1>&6 -echo "configure:6587: checking for LDAP" >&5 +echo "configure:6601: 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:6590: checking for ldap.h" >&5 +echo "configure:6604: 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:6598: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6612: \"$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* @@ -6617,15 +6631,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:6621: checking for lber.h" >&5 +echo "configure:6635: 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:6629: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6643: \"$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* @@ -6649,12 +6663,12 @@ fi if test "$with_ldap" != "no"; then echo $ac_n "checking for ldap_search in -lldap""... $ac_c" 1>&6 -echo "configure:6653: checking for ldap_search in -lldap" >&5 +echo "configure:6667: 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:6683: \"$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 @@ -6690,12 +6704,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:6694: checking "$xe_msg_checking"" >&5 +echo "configure:6708: 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:6724: \"$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 @@ -6731,12 +6745,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:6735: checking "$xe_msg_checking"" >&5 +echo "configure:6749: 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:6765: \"$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 @@ -6772,12 +6786,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:6776: checking "$xe_msg_checking"" >&5 +echo "configure:6790: 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:6806: \"$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 @@ -6839,10 +6853,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:6843: checking for $ac_func" >&5 +echo "configure:6857: 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:6883: \"$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 @@ -6897,15 +6911,15 @@ fi if test "$window_system" != "none"; then echo "checking for graphics libraries" 1>&6 -echo "configure:6901: checking for graphics libraries" >&5 +echo "configure:6915: 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:6906: checking for Xpm - no older than 3.4f" >&5 +echo "configure:6920: checking for Xpm - no older than 3.4f" >&5 xe_check_libs=-lXpm cat > conftest.$ac_ext < int main(int c, char **v) { @@ -6913,7 +6927,7 @@ echo "configure:6906: checking for Xpm - no older than 3.4f" >&5 XpmIncludeVersion != XpmLibraryVersion() ? 1 : XpmIncludeVersion < 30406 ? 2 : 0 ;} EOF -if { (eval echo configure:6917: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:6931: \"$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 @@ -6955,17 +6969,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:6959: checking for \"FOR_MSW\" xpm" >&5 +echo "configure:6973: 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:6983: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* xpm_for_msw=no else @@ -6991,15 +7005,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:6995: checking for compface.h" >&5 +echo "configure:7009: 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:7003: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7017: \"$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* @@ -7022,12 +7036,12 @@ fi } test -z "$with_xface" && { echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6 -echo "configure:7026: checking for UnGenFace in -lcompface" >&5 +echo "configure:7040: 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:7056: \"$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 @@ -7090,12 +7104,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:7094: checking for inflate in -lc" >&5 +echo "configure:7108: 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:7124: \"$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 @@ -7125,12 +7139,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for inflate in -lz""... $ac_c" 1>&6 -echo "configure:7129: checking for inflate in -lz" >&5 +echo "configure:7143: 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:7159: \"$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 @@ -7160,12 +7174,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for inflate in -lgz""... $ac_c" 1>&6 -echo "configure:7164: checking for inflate in -lgz" >&5 +echo "configure:7178: 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:7194: \"$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 @@ -7206,15 +7220,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:7210: checking for jpeglib.h" >&5 +echo "configure:7224: 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:7218: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7232: \"$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* @@ -7237,12 +7251,12 @@ fi } test -z "$with_jpeg" && { echo $ac_n "checking for jpeg_destroy_decompress in -ljpeg""... $ac_c" 1>&6 -echo "configure:7241: checking for jpeg_destroy_decompress in -ljpeg" >&5 +echo "configure:7255: 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:7271: \"$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 @@ -7289,10 +7303,10 @@ EOF png_problem="" test -z "$with_png" && { echo $ac_n "checking for pow""... $ac_c" 1>&6 -echo "configure:7293: checking for pow" >&5 +echo "configure:7307: checking for pow" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7333: \"$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 @@ -7336,15 +7350,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:7340: checking for png.h" >&5 +echo "configure:7354: 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:7348: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7362: \"$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* @@ -7367,12 +7381,12 @@ fi } test -z "$with_png" && { echo $ac_n "checking for png_read_image in -lpng""... $ac_c" 1>&6 -echo "configure:7371: checking for png_read_image in -lpng" >&5 +echo "configure:7385: 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:7401: \"$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 @@ -7406,10 +7420,10 @@ fi } if test -z "$with_png"; then echo $ac_n "checking for workable png version information""... $ac_c" 1>&6 -echo "configure:7410: checking for workable png version information" >&5 +echo "configure:7424: checking for workable png version information" >&5 xe_check_libs="-lpng -lz" cat > conftest.$ac_ext < int main(int c, char **v) { @@ -7417,7 +7431,7 @@ echo "configure:7410: 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:7421: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:7435: \"$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 @@ -7460,15 +7474,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:7464: checking for tiffio.h" >&5 +echo "configure:7478: 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:7472: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7486: \"$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* @@ -7491,12 +7505,12 @@ fi } test -z "$with_tiff" && { echo $ac_n "checking for TIFFClientOpen in -ltiff""... $ac_c" 1>&6 -echo "configure:7495: checking for TIFFClientOpen in -ltiff" >&5 +echo "configure:7509: 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:7525: \"$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 @@ -7546,16 +7560,29 @@ fi if test "$with_x11" = "yes"; then echo "checking for X11 graphics libraries" 1>&6 -echo "configure:7550: checking for X11 graphics libraries" >&5 +echo "configure:7564: checking for X11 graphics libraries" >&5 + + echo "checking for the Athena widgets" 1>&6 +echo "configure:7567: 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:7554: 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:7581: 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:7597: \"$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:7613: 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 @@ -7580,33 +7639,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:7594: 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:7660: 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:7694: 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:7710: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7620,25 +7720,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:7741: 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:7749: \"$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:7769: 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:7777: \"$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:7803: 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:7811: \"$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:7828: 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:7836: \"$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:7864: 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:7872: \"$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:7889: 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:7897: \"$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:7929: 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:7937: \"$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:7634: checking for Xm/Xm.h" >&5 +echo "configure:7972: 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:7642: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7980: \"$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* @@ -7655,12 +7993,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:7659: checking for XmStringFree in -lXm" >&5 +echo "configure:7997: 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:8013: \"$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 @@ -7700,9 +8038,9 @@ fi if test "$have_motif" = "yes"; then echo $ac_n "checking for Lesstif""... $ac_c" 1>&6 -echo "configure:7704: checking for Lesstif" >&5 +echo "configure:8042: checking for Lesstif" >&5 cat > conftest.$ac_ext < #ifdef LESSTIF_VERSION @@ -7725,13 +8063,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 @@ -7740,7 +8077,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 ;; @@ -7749,8 +8085,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 @@ -7758,7 +8111,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 @@ -7766,31 +8119,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* ) @@ -7836,23 +8176,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 @@ -7860,7 +8202,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 @@ -7868,6 +8210,8 @@ cat >> confdefs.h <<\EOF EOF } +fi + case "$with_widgets" in athena* ) { test "$extra_verbose" = "yes" && cat << \EOF Defining LWLIB_WIDGETS_ATHENA EOF @@ -8029,7 +8373,7 @@ fi if test "$with_mule" = "yes" ; then echo "checking for Mule-related features" 1>&6 -echo "configure:8033: checking for Mule-related features" >&5 +echo "configure:8377: checking for Mule-related features" >&5 { test "$extra_verbose" = "yes" && cat << \EOF Defining MULE EOF @@ -8070,15 +8414,15 @@ EOF do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:8074: checking for $ac_hdr" >&5 +echo "configure:8418: 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:8082: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8426: \"$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* @@ -8109,12 +8453,12 @@ done echo $ac_n "checking for strerror in -lintl""... $ac_c" 1>&6 -echo "configure:8113: checking for strerror in -lintl" >&5 +echo "configure:8457: 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:8473: \"$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 @@ -8177,18 +8521,18 @@ EOF fi echo "checking for Mule input methods" 1>&6 -echo "configure:8181: checking for Mule input methods" >&5 +echo "configure:8525: checking for Mule input methods" >&5 case "$with_xim" in "" | "yes" ) echo "checking for XIM" 1>&6 -echo "configure:8184: checking for XIM" >&5 +echo "configure:8528: checking for XIM" >&5 echo $ac_n "checking for XOpenIM in -lX11""... $ac_c" 1>&6 -echo "configure:8187: checking for XOpenIM in -lX11" >&5 +echo "configure:8531: 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:8547: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8223,12 +8567,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:8227: checking for XmImMbLookupString in -lXm" >&5 +echo "configure:8571: 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:8587: \"$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 @@ -8304,15 +8648,15 @@ EOF if test "$with_xfs" = "yes" ; then echo "checking for XFontSet" 1>&6 -echo "configure:8308: checking for XFontSet" >&5 +echo "configure:8652: checking for XFontSet" >&5 echo $ac_n "checking for XmbDrawString in -lX11""... $ac_c" 1>&6 -echo "configure:8311: checking for XmbDrawString in -lX11" >&5 +echo "configure:8655: 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:8671: \"$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 @@ -8363,15 +8707,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:8367: checking for wnn/jllib.h" >&5 +echo "configure:8711: 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:8375: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8719: \"$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* @@ -8396,10 +8740,10 @@ fi for ac_func in crypt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8400: checking for $ac_func" >&5 +echo "configure:8744: 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:8770: \"$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 @@ -8451,12 +8795,12 @@ done test "$ac_cv_func_crypt" != "yes" && { echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6 -echo "configure:8455: checking for crypt in -lcrypt" >&5 +echo "configure:8799: 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:8815: \"$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 @@ -8502,12 +8846,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:8506: checking for jl_dic_list_e in -lwnn" >&5 +echo "configure:8850: 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:8866: \"$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 @@ -8536,12 +8880,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:8540: checking for jl_dic_list_e in -lwnn4" >&5 +echo "configure:8884: 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:8900: \"$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 @@ -8570,12 +8914,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:8574: checking for jl_dic_list_e in -lwnn6" >&5 +echo "configure:8918: 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:8934: \"$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 @@ -8604,12 +8948,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:8608: checking for dic_list_e in -lwnn6_fromsrc" >&5 +echo "configure:8952: 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:8968: \"$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 @@ -8668,12 +9012,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:8672: checking for jl_fi_dic_list in -l$libwnn" >&5 +echo "configure:9016: 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:9032: \"$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 @@ -8719,15 +9063,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:8723: checking for canna/jrkanji.h" >&5 +echo "configure:9067: 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:8731: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9075: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8754,15 +9098,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:8758: checking for canna/jrkanji.h" >&5 +echo "configure:9102: 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:8766: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9110: \"$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* @@ -8790,15 +9134,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:8794: checking for canna/RK.h" >&5 +echo "configure:9138: 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:8802: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9146: \"$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* @@ -8821,12 +9165,12 @@ fi } test -z "$with_canna" && { echo $ac_n "checking for RkBgnBun in -lRKC""... $ac_c" 1>&6 -echo "configure:8825: checking for RkBgnBun in -lRKC" >&5 +echo "configure:9169: 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:9185: \"$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 @@ -8860,12 +9204,12 @@ fi } test -z "$with_canna" && { echo $ac_n "checking for jrKanjiControl in -lcanna""... $ac_c" 1>&6 -echo "configure:8864: checking for jrKanjiControl in -lcanna" >&5 +echo "configure:9208: 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:9224: \"$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 @@ -8925,12 +9269,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:8929: checking for layout_object_getvalue in -li18n" >&5 +echo "configure:9273: 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:9289: \"$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 @@ -9027,10 +9371,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:9031: checking for $ac_func" >&5 +echo "configure:9375: 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:9401: \"$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 @@ -9094,10 +9438,10 @@ case "$opsys" in * ) for ac_func in realpath do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:9098: checking for $ac_func" >&5 +echo "configure:9442: 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:9468: \"$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 @@ -9156,10 +9500,10 @@ esac for ac_func in getloadavg do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:9160: checking for $ac_func" >&5 +echo "configure:9504: 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:9530: \"$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 @@ -9218,12 +9562,12 @@ then echo $ac_n "checking for kstat_open in -lkstat""... $ac_c" 1>&6 -echo "configure:9222: checking for kstat_open in -lkstat" >&5 +echo "configure:9566: 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:9582: \"$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 @@ -9268,12 +9612,12 @@ fi echo $ac_n "checking for kvm_read in -lkvm""... $ac_c" 1>&6 -echo "configure:9272: checking for kvm_read in -lkvm" >&5 +echo "configure:9616: 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:9632: \"$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 @@ -9318,16 +9662,16 @@ fi fi echo $ac_n "checking whether netdb declares h_errno""... $ac_c" 1>&6 -echo "configure:9322: checking whether netdb declares h_errno" >&5 +echo "configure:9666: checking whether netdb declares h_errno" >&5 cat > conftest.$ac_ext < int main() { return h_errno; ; return 0; } EOF -if { (eval echo configure:9331: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9675: \"$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 @@ -9347,16 +9691,16 @@ fi rm -f conftest* echo $ac_n "checking for sigsetjmp""... $ac_c" 1>&6 -echo "configure:9351: checking for sigsetjmp" >&5 +echo "configure:9695: checking for sigsetjmp" >&5 cat > conftest.$ac_ext < int main() { sigjmp_buf bar; sigsetjmp (bar, 0); ; return 0; } EOF -if { (eval echo configure:9360: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:9704: \"$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 @@ -9376,11 +9720,11 @@ fi rm -f conftest* echo $ac_n "checking whether localtime caches TZ""... $ac_c" 1>&6 -echo "configure:9380: checking whether localtime caches TZ" >&5 +echo "configure:9724: checking whether localtime caches TZ" >&5 if test "$ac_cv_func_tzset" = "yes"; then cat > conftest.$ac_ext < #if STDC_HEADERS @@ -9415,7 +9759,7 @@ main() exit (0); } EOF -if { (eval echo configure:9419: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:9763: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then emacs_cv_localtime_cache=no else @@ -9445,9 +9789,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:9449: checking whether gettimeofday accepts one or two arguments" >&5 +echo "configure:9793: 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:9817: \"$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 @@ -9491,19 +9835,19 @@ fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:9495: checking for inline" >&5 +echo "configure:9839: 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:9851: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -9553,17 +9897,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:9557: checking for working alloca.h" >&5 +echo "configure:9901: 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:9567: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_header_alloca_h=yes else @@ -9587,10 +9931,10 @@ EOF fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:9591: checking for alloca" >&5 +echo "configure:9935: checking for alloca" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9966: \"$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 @@ -9657,10 +10001,10 @@ EOF echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:9661: checking whether alloca needs Cray hooks" >&5 +echo "configure:10005: 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:9688: checking for $ac_func" >&5 +echo "configure:10032: 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:10058: \"$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 @@ -9740,10 +10084,10 @@ done fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:9744: checking stack direction for C alloca" >&5 +echo "configure:10088: 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:10110: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_c_stack_direction=1 else @@ -9791,15 +10135,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:9795: checking for vfork.h" >&5 +echo "configure:10139: 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:9803: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10147: \"$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* @@ -9827,10 +10171,10 @@ else fi echo $ac_n "checking for working vfork""... $ac_c" 1>&6 -echo "configure:9831: checking for working vfork" >&5 +echo "configure:10175: checking for working vfork" >&5 cat > conftest.$ac_ext < @@ -9925,7 +10269,7 @@ main() { } } EOF -if { (eval echo configure:9929: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:10273: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_vfork_works=yes else @@ -9951,10 +10295,10 @@ fi echo $ac_n "checking for working strcoll""... $ac_c" 1>&6 -echo "configure:9955: checking for working strcoll" >&5 +echo "configure:10299: checking for working strcoll" >&5 cat > conftest.$ac_ext < main () @@ -9964,7 +10308,7 @@ main () strcoll ("123", "456") >= 0); } EOF -if { (eval echo configure:9968: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:10312: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_strcoll_works=yes else @@ -9992,10 +10336,10 @@ fi for ac_func in getpgrp do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:9996: checking for $ac_func" >&5 +echo "configure:10340: 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:10366: \"$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 @@ -10046,10 +10390,10 @@ fi done echo $ac_n "checking whether getpgrp takes no argument""... $ac_c" 1>&6 -echo "configure:10050: checking whether getpgrp takes no argument" >&5 +echo "configure:10394: 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:10452: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_getpgrp_void=yes else @@ -10131,10 +10475,10 @@ fi echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:10135: checking for working mmap" >&5 +echo "configure:10479: checking for working mmap" >&5 case "$opsys" in ultrix* ) have_mmap=no ;; *) cat > conftest.$ac_ext < #include @@ -10167,7 +10511,7 @@ int main (int argc, char *argv[]) return 1; } EOF -if { (eval echo configure:10171: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:10515: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then have_mmap=yes else @@ -10202,15 +10546,15 @@ EOF ac_safe=`echo "termios.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for termios.h""... $ac_c" 1>&6 -echo "configure:10206: checking for termios.h" >&5 +echo "configure:10550: 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:10214: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10558: \"$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* @@ -10253,15 +10597,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:10257: checking for termio.h" >&5 +echo "configure:10601: 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:10265: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10609: \"$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* @@ -10293,10 +10637,10 @@ fi echo $ac_n "checking for socket""... $ac_c" 1>&6 -echo "configure:10297: checking for socket" >&5 +echo "configure:10641: checking for socket" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10667: \"$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 @@ -10334,15 +10678,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:10338: checking for netinet/in.h" >&5 +echo "configure:10682: 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:10346: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10690: \"$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* @@ -10359,15 +10703,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:10363: checking for arpa/inet.h" >&5 +echo "configure:10707: 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:10371: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10715: \"$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* @@ -10392,9 +10736,9 @@ EOF } echo $ac_n "checking "for sun_len member in struct sockaddr_un"""... $ac_c" 1>&6 -echo "configure:10396: checking "for sun_len member in struct sockaddr_un"" >&5 +echo "configure:10740: checking "for sun_len member in struct sockaddr_un"" >&5 cat > conftest.$ac_ext < @@ -10405,7 +10749,7 @@ int main() { static struct sockaddr_un x; x.sun_len = 1; ; return 0; } EOF -if { (eval echo configure:10409: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10753: \"$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 @@ -10423,9 +10767,9 @@ else fi rm -f conftest* echo $ac_n "checking "for ip_mreq struct in netinet/in.h"""... $ac_c" 1>&6 -echo "configure:10427: checking "for ip_mreq struct in netinet/in.h"" >&5 +echo "configure:10771: checking "for ip_mreq struct in netinet/in.h"" >&5 cat > conftest.$ac_ext < @@ -10435,7 +10779,7 @@ int main() { static struct ip_mreq x; ; return 0; } EOF -if { (eval echo configure:10439: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10783: \"$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 @@ -10466,10 +10810,10 @@ fi echo $ac_n "checking for msgget""... $ac_c" 1>&6 -echo "configure:10470: checking for msgget" >&5 +echo "configure:10814: checking for msgget" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10840: \"$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 @@ -10507,15 +10851,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:10511: checking for sys/ipc.h" >&5 +echo "configure:10855: 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:10519: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10863: \"$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* @@ -10532,15 +10876,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:10536: checking for sys/msg.h" >&5 +echo "configure:10880: 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:10544: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10888: \"$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* @@ -10578,15 +10922,15 @@ fi ac_safe=`echo "dirent.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for dirent.h""... $ac_c" 1>&6 -echo "configure:10582: checking for dirent.h" >&5 +echo "configure:10926: 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:10590: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10934: \"$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* @@ -10613,15 +10957,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:10617: checking for sys/dir.h" >&5 +echo "configure:10961: 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:10625: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10969: \"$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* @@ -10654,15 +10998,15 @@ fi ac_safe=`echo "nlist.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for nlist.h""... $ac_c" 1>&6 -echo "configure:10658: checking for nlist.h" >&5 +echo "configure:11002: 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:10666: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11010: \"$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* @@ -10692,22 +11036,22 @@ fi echo "checking "for sound support"" 1>&6 -echo "configure:10696: checking "for sound support"" >&5 +echo "configure:11040: 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:10703: checking for multimedia/audio_device.h" >&5 +echo "configure:11047: 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:10711: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11055: \"$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* @@ -10755,12 +11099,12 @@ fi if test -z "$native_sound_lib"; then echo $ac_n "checking for ALopenport in -laudio""... $ac_c" 1>&6 -echo "configure:10759: checking for ALopenport in -laudio" >&5 +echo "configure:11103: 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:11119: \"$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 @@ -10802,12 +11146,12 @@ fi if test -z "$native_sound_lib"; then echo $ac_n "checking for AOpenAudio in -lAlib""... $ac_c" 1>&6 -echo "configure:10806: checking for AOpenAudio in -lAlib" >&5 +echo "configure:11150: 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:11166: \"$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 @@ -10856,15 +11200,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:10860: checking for ${dir}/soundcard.h" >&5 +echo "configure:11204: 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:10868: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11212: \"$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* @@ -10918,15 +11262,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:10922: checking for audio/audiolib.h" >&5 +echo "configure:11266: 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:10930: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11274: \"$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* @@ -10944,12 +11288,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:10948: checking for AuOpenServer in -laudio" >&5 +echo "configure:11292: 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:11308: \"$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 @@ -10999,7 +11343,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 @@ -11030,7 +11374,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:11034: checking for $ac_word" >&5 +echo "configure:11378: 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. @@ -11059,10 +11403,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:11063: checking for esd_play_stream" >&5 +echo "configure:11407: 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:11433: \"$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 @@ -11136,7 +11480,7 @@ test -z "$with_tty" && with_tty=yes if test "$with_tty" = "yes" ; then echo "checking for TTY-related features" 1>&6 -echo "configure:11140: checking for TTY-related features" >&5 +echo "configure:11484: checking for TTY-related features" >&5 { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_TTY EOF @@ -11152,12 +11496,12 @@ EOF if test -z "$with_ncurses"; then echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6 -echo "configure:11156: checking for tgetent in -lncurses" >&5 +echo "configure:11500: 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:11516: \"$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 @@ -11201,15 +11545,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:11205: checking for ncurses/curses.h" >&5 +echo "configure:11549: 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:11213: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11557: \"$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* @@ -11231,15 +11575,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:11235: checking for ncurses/term.h" >&5 +echo "configure:11579: 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:11243: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11587: \"$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* @@ -11269,15 +11613,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:11273: checking for ncurses/curses.h" >&5 +echo "configure:11617: 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:11281: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11625: \"$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* @@ -11312,12 +11656,12 @@ fi for lib in curses termlib termcap; do echo $ac_n "checking for tgetent in -l$lib""... $ac_c" 1>&6 -echo "configure:11316: checking for tgetent in -l$lib" >&5 +echo "configure:11660: 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:11676: \"$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 @@ -11359,12 +11703,12 @@ fi else echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6 -echo "configure:11363: checking for tgetent in -lcurses" >&5 +echo "configure:11707: 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:11723: \"$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 @@ -11393,12 +11737,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:11397: checking for tgetent in -ltermcap" >&5 +echo "configure:11741: 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:11757: \"$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 @@ -11457,15 +11801,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:11461: checking for gpm.h" >&5 +echo "configure:11805: 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:11469: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11813: \"$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* @@ -11488,12 +11832,12 @@ fi } test -z "$with_gpm" && { echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6 -echo "configure:11492: checking for Gpm_Open in -lgpm" >&5 +echo "configure:11836: 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:11852: \"$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 @@ -11554,20 +11898,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:11558: checking for database support" >&5 +echo "configure:11902: 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:11563: checking for ndbm.h" >&5 +echo "configure:11907: 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:11571: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11915: \"$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* @@ -11597,12 +11941,12 @@ fi if test "$with_database_gdbm" != "no"; then echo $ac_n "checking for dbm_open in -lgdbm""... $ac_c" 1>&6 -echo "configure:11601: checking for dbm_open in -lgdbm" >&5 +echo "configure:11945: 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:11961: \"$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 @@ -11641,10 +11985,10 @@ fi if test "$with_database_dbm" != "no"; then echo $ac_n "checking for dbm_open""... $ac_c" 1>&6 -echo "configure:11645: checking for dbm_open" >&5 +echo "configure:11989: 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:12015: \"$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 @@ -11686,12 +12030,12 @@ else echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6 -echo "configure:11690: checking for dbm_open in -ldbm" >&5 +echo "configure:12034: 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:12050: \"$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 @@ -11743,10 +12087,10 @@ EOF if test "$with_database_berkdb" != "no"; then echo $ac_n "checking for Berkeley db.h""... $ac_c" 1>&6 -echo "configure:11747: checking for Berkeley db.h" >&5 +echo "configure:12091: 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:12112: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* db_h_path="$path"; break else @@ -11780,9 +12124,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:11784: checking for Berkeley DB version" >&5 +echo "configure:12128: checking for Berkeley DB version" >&5 cat > conftest.$ac_ext < #if DB_VERSION_MAJOR > 1 @@ -11801,10 +12145,10 @@ fi rm -f conftest* echo $ac_n "checking for $dbfunc""... $ac_c" 1>&6 -echo "configure:11805: checking for $dbfunc" >&5 +echo "configure:12149: checking for $dbfunc" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12175: \"$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 @@ -11846,12 +12190,12 @@ else echo $ac_n "checking for $dbfunc in -ldb""... $ac_c" 1>&6 -echo "configure:11850: checking for $dbfunc in -ldb" >&5 +echo "configure:12194: 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:12210: \"$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 @@ -11926,12 +12270,12 @@ fi if test "$with_socks" = "yes"; then echo $ac_n "checking for SOCKSinit in -lsocks""... $ac_c" 1>&6 -echo "configure:11930: checking for SOCKSinit in -lsocks" >&5 +echo "configure:12274: 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:12290: \"$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 @@ -11997,19 +12341,19 @@ fi if test "$with_modules" != "no"; then echo "checking for module support" 1>&6 -echo "configure:12001: checking for module support" >&5 +echo "configure:12345: 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:12005: checking for dlfcn.h" >&5 +echo "configure:12349: 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:12013: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12357: \"$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* @@ -12027,12 +12371,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:12031: checking for dlopen in -ldl" >&5 +echo "configure:12375: 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:12391: \"$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 @@ -12062,12 +12406,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for dlopen in -lc""... $ac_c" 1>&6 -echo "configure:12066: checking for dlopen in -lc" >&5 +echo "configure:12410: 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:12426: \"$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 @@ -12117,12 +12461,12 @@ EOF else echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 -echo "configure:12121: checking for shl_load in -ldld" >&5 +echo "configure:12465: 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:12481: \"$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 @@ -12160,12 +12504,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for dld_init in -ldld""... $ac_c" 1>&6 -echo "configure:12164: checking for dld_init in -ldld" >&5 +echo "configure:12508: 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:12524: \"$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 @@ -12221,7 +12565,7 @@ xehost=$canonical xealias=$internal_configuration echo "checking how to build dynamic libraries for ${xehost}" 1>&6 -echo "configure:12225: checking how to build dynamic libraries for ${xehost}" >&5 +echo "configure:12569: checking how to build dynamic libraries for ${xehost}" >&5 # Transform *-*-linux* to *-*-linux-gnu*, to support old configure scripts. case "$xehost" in *-*-linux-gnu*) ;; @@ -12249,9 +12593,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:12253: checking checking whether we are using GNU C" >&5 +echo "configure:12597: checking checking whether we are using GNU C" >&5 cat > conftest.$ac_ext <&6 -echo "configure:12277: checking how to produce PIC code" >&5 +echo "configure:12621: checking how to produce PIC code" >&5 wl= can_build_shared=yes @@ -12366,18 +12710,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:12370: checking if PIC flag ${dll_cflags} really works" >&5 +echo "configure:12714: 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:12725: \"$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 @@ -12408,7 +12752,7 @@ cc_produces_so=no xldf= xcldf= echo $ac_n "checking if C compiler can produce shared libraries""... $ac_c" 1>&6 -echo "configure:12412: checking if C compiler can produce shared libraries" >&5 +echo "configure:12756: checking if C compiler can produce shared libraries" >&5 if test "$XEGCC" = yes; then xcldf="-shared" xldf="-shared" @@ -12459,14 +12803,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:12814: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cc_produces_so=yes else @@ -12491,7 +12835,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:12495: checking for ld used by GCC" >&5 +echo "configure:12839: checking for ld used by GCC" >&5 ac_prog=`($CC -print-prog-name=ld) 2>&5` case "$ac_prog" in # Accept absolute paths. @@ -12516,7 +12860,7 @@ echo "configure:12495: checking for ld used by GCC" >&5 esac else echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 -echo "configure:12520: checking for GNU ld" >&5 +echo "configure:12864: checking for GNU ld" >&5 fi if test -z "$LTLD"; then @@ -12554,7 +12898,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:12558: checking if the linker is GNU ld" >&5 +echo "configure:12902: 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 @@ -12581,7 +12925,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:12585: checking whether the linker supports shared libraries" >&5 +echo "configure:12929: checking whether the linker supports shared libraries" >&5 dll_ld=$CC dll_ldflags=$LDFLAGS ld_shlibs=yes @@ -12796,10 +13140,10 @@ EOF for ac_func in dlerror _dlerror do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:12800: checking for $ac_func" >&5 +echo "configure:13144: 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:13170: \"$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 @@ -12861,11 +13205,11 @@ done fi cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:13213: \"$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 74ee273..1574790 100644 --- a/configure.in +++ b/configure.in @@ -640,6 +640,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 @@ -774,11 +791,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\"" ;; @@ -2570,7 +2586,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]) @@ -2881,16 +2897,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, @@ -2915,13 +2999,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 @@ -2930,7 +3013,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 ;; @@ -2939,20 +3021,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* ) @@ -2977,10 +3067,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/custom.info b/info/custom.info index 6e119d0..ccf40ba 100644 --- a/info/custom.info +++ b/info/custom.info @@ -1,5 +1,5 @@ -This is ../info/custom.info, produced by makeinfo version 3.12s from -custom.texi. +This is Info file ../info/custom.info, produced by Makeinfo version +1.68 from the input file custom.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -58,7 +58,7 @@ Declaring Groups Use `defgroup' to declare new customization groups. - - Function: defgroup symbol members doc [keyword value]... + - Function: defgroup SYMBOL MEMBERS DOC [KEYWORD VALUE]... Declare SYMBOL as a customization group containing MEMBERS. SYMBOL does not need to be quoted. @@ -89,7 +89,7 @@ Declaring Variables Use `defcustom' to declare user editable variables. - - Function: defcustom symbol value doc [keyword value]... + - Function: defcustom SYMBOL VALUE DOC [KEYWORD VALUE]... Declare SYMBOL as a customizable variable that defaults to VALUE. Neither SYMBOL nor VALUE needs to be quoted. If SYMBOL is not already bound, initialize it to VALUE. @@ -156,7 +156,7 @@ default value, `saved-value' for a value saved by the user, and Use `custom-add-option' to specify that a specific function is useful as an member of a hook. - - Function: custom-add-option symbol option + - Function: custom-add-option SYMBOL OPTION To the variable SYMBOL add OPTION. If SYMBOL is a hook variable, OPTION should be a hook member. For @@ -170,7 +170,7 @@ Declaring Faces Faces are declared with `defface'. - - Function: defface face spec doc [keyword value]... + - Function: defface FACE SPEC DOC [KEYWORD VALUE]... Declare FACE as a customizable face that defaults to SPEC. FACE does not need to be quoted. @@ -225,7 +225,7 @@ subgroups, with each subgroup being member of the top level group. The top level group for the package should itself be member of one or more of the standard customization groups. There exists a group for -each _finder_ keyword. Press `C-h p' to see a list of finder keywords, +each *finder* keyword. Press `C-h p' to see a list of finder keywords, and add you group to each of them, using the `:group' keyword.  @@ -240,18 +240,18 @@ Utilities Widget type for specifying the info manual entry for a customization option. It takes one argument, an info address. - - Function: custom-add-to-group group member widget + - Function: custom-add-to-group GROUP MEMBER WIDGET To existing GROUP add a new MEMBER of type WIDGET, If there already is an entry for that member, overwrite it. - - Function: custom-add-link symbol widget + - Function: custom-add-link SYMBOL WIDGET To the custom option SYMBOL add the link WIDGET. - - Function: custom-add-load symbol load + - Function: custom-add-load SYMBOL LOAD To the custom option SYMBOL add the dependency LOAD. LOAD should be either a library file name, or a feature name. - - Function: customize-menu-create symbol &optional name + - Function: customize-menu-create SYMBOL &optional NAME Create menu for customization group SYMBOL. If optional NAME is given, use that as the name of the menu. Otherwise the menu will be named `Customize'. The menu is in a format applicable to @@ -378,16 +378,15 @@ Wishlist Add colors. -  Tag Table: -Node: Top206 -Node: Declaring Groups1627 -Node: Declaring Variables2728 -Node: Declaring Faces5819 -Node: Usage for Package Authors7517 -Node: Utilities8296 -Node: The Init File9380 -Node: Wishlist9832 +Node: Top230 +Node: Declaring Groups1651 +Node: Declaring Variables2752 +Node: Declaring Faces5843 +Node: Usage for Package Authors7541 +Node: Utilities8320 +Node: The Init File9404 +Node: Wishlist9856  End Tag Table diff --git a/info/emodules.info b/info/emodules.info index 6de33b4..763a373 100644 --- a/info/emodules.info +++ b/info/emodules.info @@ -1,5 +1,5 @@ -This is ../info/emodules.info, produced by makeinfo version 3.12s from -emodules.texi. +This is Info file ../info/emodules.info, produced by Makeinfo version +1.68 from the input file emodules.texi. This file documents the module loading technology of XEmacs. @@ -47,7 +47,7 @@ support documentation. * Defining Variables:: Creating new Lisp variables * Index:: Concept Index - --- The Detailed Node Listing --- + -- The Detailed Node Listing -- Annatomy of a Module @@ -244,7 +244,7 @@ place-holder, not an actual function name. `syms_of_module' This required function is responsible for introducing to the Lisp reader all functions that you have defined in your module using - `DEFUN()'. Note that _only_ functions are declared here, using + `DEFUN()'. Note that *only* functions are declared here, using the `DEFSUBR()' macro. No variables are declared. `vars_of_module' @@ -276,7 +276,7 @@ Required Variables Not only does a module need to declare the initialization functions mentioned above, it is also required to provide certain variables which the module loading code searches for in order to determine the viability -of a module. You are _not_ required to provide these variables in your +of a module. You are *not* required to provide these variables in your source files. They are automatically set up in the module initialization file by the `ellcc' compiler. These variables are discussed here simply for the sake of completeness. @@ -820,7 +820,7 @@ initialization function using special XEmacs macros such as how to use these macros is to look at existing source code, or read the internals manual. - One _very_ important difference between XEmacs variables and module + One *very* important difference between XEmacs variables and module variables is how you use pure space. Simply put, you *never* use pure space in XEmacs modules. The pure space storage is of a limited size, and is initialized propperly during the dumping of XEmacs. Because @@ -930,23 +930,23 @@ Index  Tag Table: -Node: Top1538 -Node: Introduction2886 -Node: Annatomy of a Module7395 -Node: Required Header File8211 -Node: Required Functions10132 -Node: Required Variables12381 -Node: Loading other Modules15068 -Node: Using ellcc17126 -Node: Compile Mode18921 -Node: Initialization Mode20289 -Node: Link Mode25321 -Node: Other ellcc options26468 -Node: Environment Variables29048 -Node: Defining Functions30739 -Node: Using DEFUN32750 -Node: Declaring Functions34461 -Node: Defining Variables35804 -Node: Index38049 +Node: Top1562 +Node: Introduction2908 +Node: Annatomy of a Module7417 +Node: Required Header File8233 +Node: Required Functions10154 +Node: Required Variables12403 +Node: Loading other Modules15090 +Node: Using ellcc17148 +Node: Compile Mode18943 +Node: Initialization Mode20311 +Node: Link Mode25343 +Node: Other ellcc options26490 +Node: Environment Variables29070 +Node: Defining Functions30761 +Node: Using DEFUN32772 +Node: Declaring Functions34483 +Node: Defining Variables35826 +Node: Index38071  End Tag Table diff --git a/info/info.info b/info/info.info index b81e791..b47a130 100644 --- a/info/info.info +++ b/info/info.info @@ -1,5 +1,5 @@ -This is ../info/info.info, produced by makeinfo version 3.12s from -info.texi. +This is Info file ../info/info.info, produced by Makeinfo version 1.68 +from the input file info.texi. INFO-DIR-SECTION Texinfo documentation system START-INFO-DIR-ENTRY @@ -169,7 +169,7 @@ Another `n' command now would take you to the next node, `Help-^L'. you to the `Previous' node. When you get there, you can do an `n' again to return here. - This all probably seems insultingly simple so far, but _do not_ be + This all probably seems insultingly simple so far, but *do not* be led into skimming. Things will get more complicated soon. Also, do not try a new command until you are told it is time to. Otherwise, you may make Info skip past an important warning that was coming up. @@ -201,7 +201,7 @@ not anything above the top until you have typed some spaces). When you type the space, the two lines that were at the bottom of the screen appear at the top, followed by more lines. Delete takes the -two lines from the top and moves them to the bottom, _usually_, but if +two lines from the top and moves them to the bottom, *usually*, but if there are not a full screen's worth of lines above them they may not make it all the way to the bottom. @@ -295,8 +295,8 @@ actually visible in its node. If you cannot find a menu in a node by looking at it, then the node does not have a menu and the `m' command is not available. - The command to go to one of the subnodes is `m'--but _do not do it -yet!_ Before you use `m', you must understand the difference between + The command to go to one of the subnodes is `m'--but *do not do it +yet!* Before you use `m', you must understand the difference between commands and arguments. So far, you have learned several commands that do not need arguments. When you type one, Info processes it and is instantly ready for another command. The `m' command is different: it @@ -390,7 +390,7 @@ Menus move Down in the tree, and `Up' moves Up. `Previous', on the other hand, is usually used to "stay on the same level but go backwards" You can go back to the node `Help-M' by typing the command `u' for -"Up". That puts you at the _front_ of the node--to get back to where +"Up". That puts you at the *front* of the node--to get back to where you were reading you have to type some s. >> Now type `u' to move back up to `Help-M'. @@ -420,7 +420,7 @@ back to `Help-M'. Then follow directions again and you will end up back here. - Note the difference between `l' and `p': `l' moves to where _you_ + Note the difference between `l' and `p': `l' moves to where *you* last were, whereas `p' always moves to the node which the header says is the `Previous' node (from this node, to `Help-M'). @@ -429,7 +429,7 @@ node, which is the first one you saw when you entered Info, has a menu which leads (directly, or indirectly through other menus), to all the nodes that exist. - >> Try doing a `d', then do an `l' to return here (yes, _do_ + >> Try doing a `d', then do an `l' to return here (yes, *do* return). Sometimes, in Info documentation, you will see a cross reference. @@ -503,7 +503,7 @@ Info for Experts This chapter describes various advanced Info commands, and how to write an Info as distinct from a Texinfo file. (However, in most -cases, writing a Texinfo file is better, since you can use it _both_ to +cases, writing a Texinfo file is better, since you can use it *both* to generate an Info file and to make a printed manual. *Note Overview of Texinfo: (texinfo)Top.) @@ -594,8 +594,8 @@ one. It must have a <^_> character before it (invisible to the user; this node has one but you cannot see it), and it ends with either a <^_>, a <^L>, or the end of file. Note: If you put in a <^L> to end a new node, be sure that there is a <^_> after it to start the next one, -since <^L> cannot _start_ a node. Also, a nicer way to make a node -boundary be a page boundary as well is to put a <^L> _right after_ the +since <^L> cannot *start* a node. Also, a nicer way to make a node +boundary be a page boundary as well is to put a <^L> *right after* the <^_>. The <^_> starting a node must be followed by a newline or a <^L> @@ -679,13 +679,13 @@ to see them all need not keep revisiting the Menu. The Info Directory is simply the menu of the node `(dir)Top'--that is, node `Top' in file `.../info/dir'. You can put new entries in that -menu just like any other menu. The Info Directory is _not_ the same as +menu just like any other menu. The Info Directory is *not* the same as the file directory called `info'. It happens that many of Info's files live on that file directory, but they do not have to; and files on that directory are not automatically listed in the Info Directory node. Also, although the Info node graph is claimed to be a "hierarchy", -in fact it can be _any_ directed graph. Shared structures and pointer +in fact it can be *any* directed graph. Shared structures and pointer cycles are perfectly possible, and can be used if they are appropriate to the meaning to be expressed. There is no need for all the nodes in a file to form a connected structure. In fact, this file has two @@ -704,7 +704,7 @@ Creating Cross References A cross reference can be placed anywhere in the text, unlike a menu item which must go at the front of a line. A cross reference looks like a menu item except that it has `*note' instead of `*'. It -_cannot_ be terminated by a `)', because `)''s are so often part of +*cannot* be terminated by a `)', because `)''s are so often part of node names. If you wish to enclose a cross reference in parentheses, terminate it with a period first. Here are two examples of cross references pointers: @@ -816,25 +816,25 @@ learn how to install an Info file after you have created one.  Tag Table: -Node: Top1069 -Node: Getting Started1614 -Node: Help-Small-Screen2362 -Node: Help4111 -Node: Help-P5141 -Node: Help-^L6003 -Node: Help-M8881 -Node: Help-FOO14861 -Node: Help-Adv15599 -Node: Help-Cross18274 -Node: Help-Q18920 -Node: Advanced Info19547 -Node: Expert20525 -Node: Add23039 -Node: Menus26399 -Node: Cross-refs29273 -Node: Tags29975 -Node: Checking31277 -Node: Emacs Info Variables32230 -Node: Creating an Info File33219 +Node: Top1093 +Node: Getting Started1638 +Node: Help-Small-Screen2386 +Node: Help4135 +Node: Help-P5165 +Node: Help-^L6027 +Node: Help-M8905 +Node: Help-FOO14885 +Node: Help-Adv15623 +Node: Help-Cross18298 +Node: Help-Q18944 +Node: Advanced Info19571 +Node: Expert20549 +Node: Add23063 +Node: Menus26423 +Node: Cross-refs29297 +Node: Tags29999 +Node: Checking31301 +Node: Emacs Info Variables32254 +Node: Creating an Info File33243  End Tag Table diff --git a/info/internals.info b/info/internals.info index 478c0bd..df42ba5 100644 --- a/info/internals.info +++ b/info/internals.info @@ -1,5 +1,5 @@ -This is ../info/internals.info, produced by makeinfo version 3.12s from -internals/internals.texi. +This is Info file ../info/internals.info, produced by Makeinfo version +1.68 from the input file internals/internals.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -39,141 +39,141 @@ Foundation instead of in the original English.  Indirect: -internals.info-1: 1772 -internals.info-2: 45928 -internals.info-3: 93001 -internals.info-4: 141367 -internals.info-5: 183398 -internals.info-6: 232819 -internals.info-7: 281549 -internals.info-8: 331006 +internals.info-1: 1796 +internals.info-2: 45950 +internals.info-3: 93024 +internals.info-4: 141396 +internals.info-5: 183427 +internals.info-6: 232848 +internals.info-7: 281578 +internals.info-8: 331035  Tag Table: (Indirect) -Node: Top1772 -Node: A History of Emacs6354 -Node: Through Version 187879 -Node: Lucid Emacs11300 -Node: GNU Emacs 1914318 -Node: GNU Emacs 2016501 -Node: XEmacs16928 -Node: XEmacs From the Outside20107 -Node: The Lisp Language21875 -Node: XEmacs From the Perspective of Building31420 -Node: XEmacs From the Inside37545 -Node: The XEmacs Object System (Abstractly Speaking)45928 -Node: How Lisp Objects Are Represented in C60016 -Node: Rules When Writing New C Code68578 -Node: General Coding Rules69382 -Node: Writing Lisp Primitives74542 -Node: Adding Global Lisp Variables85711 -Node: Coding for Mule89349 -Node: Character-Related Data Types90328 -Node: Working With Character and Byte Positions93001 -Node: Conversion to and from External Data96751 -Node: General Guidelines for Writing Mule-Aware Code101632 -Node: An Example of Mule-Aware Code103663 -Node: Techniques for XEmacs Developers105650 -Node: A Summary of the Various XEmacs Modules109415 -Node: Low-Level Modules110235 -Node: Basic Lisp Modules117757 -Node: Modules for Standard Editing Operations126081 -Node: Editor-Level Control Flow Modules131969 -Node: Modules for the Basic Displayable Lisp Objects135416 -Node: Modules for other Display-Related Lisp Objects137938 -Node: Modules for the Redisplay Mechanism139016 -Node: Modules for Interfacing with the File System141367 -Node: Modules for Other Aspects of the Lisp Interpreter and Object System145065 -Node: Modules for Interfacing with the Operating System150519 -Node: Modules for Interfacing with X Windows158180 -Node: Modules for Internationalization161616 -Node: Allocation of Objects in XEmacs Lisp164253 -Node: Introduction to Allocation164807 -Node: Garbage Collection170270 -Node: GCPROing173223 -Node: Garbage Collection - Step by Step180034 -Node: Invocation180426 -Node: garbage_collect_1183398 -Node: mark_object192878 -Node: gc_sweep194690 -Node: sweep_lcrecords_1199753 -Node: compact_string_chars200748 -Node: sweep_strings202928 -Node: sweep_bit_vectors_1203893 -Node: Integers and Characters204569 -Node: Allocation from Frob Blocks205321 -Node: lrecords206925 -Node: Low-level allocation219387 -Node: Pure Space223555 -Node: Cons223730 -Node: Vector224446 -Node: Bit Vector225023 -Node: Symbol225516 -Node: Marker226085 -Node: String226640 -Node: Compiled Function230255 -Node: Events and the Event Loop230424 -Node: Introduction to Events230903 -Node: Main Loop232819 -Node: Specifics of the Event Gathering Mechanism236395 -Node: Specifics About the Emacs Event248848 -Node: The Event Stream Callback Routines249103 -Node: Other Event Loop Functions249348 -Node: Converting Events250488 -Node: Dispatching Events; The Command Builder251097 -Node: Evaluation; Stack Frames; Bindings251332 -Node: Evaluation251674 -Node: Dynamic Binding; The specbinding Stack; Unwind-Protects258214 -Node: Simple Special Forms260598 -Node: Catch and Throw261380 -Node: Symbols and Variables263955 -Node: Introduction to Symbols264219 -Node: Obarrays265257 -Node: Symbol Values268790 -Node: Buffers and Textual Representation271078 -Node: Introduction to Buffers271736 -Node: The Text in a Buffer274399 -Node: Buffer Lists281549 -Node: Markers and Extents283500 -Node: Bufbytes and Emchars285765 -Node: The Buffer Object285980 -Node: MULE Character Sets and Encodings289460 -Node: Character Sets290522 -Node: Encodings293965 -Node: Japanese EUC (Extended Unix Code)295032 -Node: JIS7295846 -Node: Internal Mule Encodings297196 -Node: Internal String Encoding299026 -Node: Internal Character Encoding301139 -Node: CCL302863 -Node: The Lisp Reader and Compiler309615 -Node: Lstreams309828 -Node: Creating an Lstream310859 -Node: Lstream Types312069 -Node: Lstream Functions312321 -Node: Lstream Methods315890 -Node: Consoles; Devices; Frames; Windows319033 -Node: Introduction to Consoles; Devices; Frames; Windows319348 -Node: Point321840 -Node: Window Hierarchy323119 -Node: The Window Object327569 -Node: The Redisplay Mechanism331006 -Node: Critical Redisplay Sections331798 -Node: Line Start Cache332753 -Node: Redisplay Piece by Piece335990 -Node: Extents338026 -Node: Introduction to Extents338564 -Node: Extent Ordering339690 -Node: Format of the Extent Info340931 -Node: Zero-Length Extents342819 -Node: Mathematics of Extent Ordering344217 -Node: Extent Fragments348974 -Node: Faces350061 -Node: Glyphs350177 -Node: Specifiers353195 -Node: Menus353324 -Node: Subprocesses355582 -Node: Interface to X Windows357558 -Node: Index357729 +Node: Top1796 +Node: A History of Emacs6376 +Node: Through Version 187901 +Node: Lucid Emacs11322 +Node: GNU Emacs 1914340 +Node: GNU Emacs 2016523 +Node: XEmacs16950 +Node: XEmacs From the Outside20129 +Node: The Lisp Language21897 +Node: XEmacs From the Perspective of Building31442 +Node: XEmacs From the Inside37567 +Node: The XEmacs Object System (Abstractly Speaking)45950 +Node: How Lisp Objects Are Represented in C60038 +Node: Rules When Writing New C Code68600 +Node: General Coding Rules69404 +Node: Writing Lisp Primitives74564 +Node: Adding Global Lisp Variables85734 +Node: Coding for Mule89372 +Node: Character-Related Data Types90351 +Node: Working With Character and Byte Positions93024 +Node: Conversion to and from External Data96774 +Node: General Guidelines for Writing Mule-Aware Code101655 +Node: An Example of Mule-Aware Code103686 +Node: Techniques for XEmacs Developers105673 +Node: A Summary of the Various XEmacs Modules109444 +Node: Low-Level Modules110264 +Node: Basic Lisp Modules117786 +Node: Modules for Standard Editing Operations126110 +Node: Editor-Level Control Flow Modules131998 +Node: Modules for the Basic Displayable Lisp Objects135445 +Node: Modules for other Display-Related Lisp Objects137967 +Node: Modules for the Redisplay Mechanism139045 +Node: Modules for Interfacing with the File System141396 +Node: Modules for Other Aspects of the Lisp Interpreter and Object System145094 +Node: Modules for Interfacing with the Operating System150548 +Node: Modules for Interfacing with X Windows158209 +Node: Modules for Internationalization161645 +Node: Allocation of Objects in XEmacs Lisp164282 +Node: Introduction to Allocation164836 +Node: Garbage Collection170299 +Node: GCPROing173252 +Node: Garbage Collection - Step by Step180063 +Node: Invocation180455 +Node: garbage_collect_1183427 +Node: mark_object192907 +Node: gc_sweep194719 +Node: sweep_lcrecords_1199782 +Node: compact_string_chars200777 +Node: sweep_strings202957 +Node: sweep_bit_vectors_1203922 +Node: Integers and Characters204598 +Node: Allocation from Frob Blocks205350 +Node: lrecords206954 +Node: Low-level allocation219416 +Node: Pure Space223584 +Node: Cons223759 +Node: Vector224475 +Node: Bit Vector225052 +Node: Symbol225545 +Node: Marker226114 +Node: String226669 +Node: Compiled Function230284 +Node: Events and the Event Loop230453 +Node: Introduction to Events230932 +Node: Main Loop232848 +Node: Specifics of the Event Gathering Mechanism236424 +Node: Specifics About the Emacs Event248877 +Node: The Event Stream Callback Routines249132 +Node: Other Event Loop Functions249377 +Node: Converting Events250517 +Node: Dispatching Events; The Command Builder251126 +Node: Evaluation; Stack Frames; Bindings251361 +Node: Evaluation251703 +Node: Dynamic Binding; The specbinding Stack; Unwind-Protects258243 +Node: Simple Special Forms260627 +Node: Catch and Throw261409 +Node: Symbols and Variables263984 +Node: Introduction to Symbols264248 +Node: Obarrays265286 +Node: Symbol Values268819 +Node: Buffers and Textual Representation271107 +Node: Introduction to Buffers271765 +Node: The Text in a Buffer274428 +Node: Buffer Lists281578 +Node: Markers and Extents283529 +Node: Bufbytes and Emchars285794 +Node: The Buffer Object286009 +Node: MULE Character Sets and Encodings289489 +Node: Character Sets290551 +Node: Encodings293994 +Node: Japanese EUC (Extended Unix Code)295061 +Node: JIS7295875 +Node: Internal Mule Encodings297225 +Node: Internal String Encoding299055 +Node: Internal Character Encoding301168 +Node: CCL302892 +Node: The Lisp Reader and Compiler309644 +Node: Lstreams309857 +Node: Creating an Lstream310888 +Node: Lstream Types312098 +Node: Lstream Functions312350 +Node: Lstream Methods315919 +Node: Consoles; Devices; Frames; Windows319062 +Node: Introduction to Consoles; Devices; Frames; Windows319377 +Node: Point321869 +Node: Window Hierarchy323148 +Node: The Window Object327598 +Node: The Redisplay Mechanism331035 +Node: Critical Redisplay Sections331827 +Node: Line Start Cache332782 +Node: Redisplay Piece by Piece336019 +Node: Extents338055 +Node: Introduction to Extents338593 +Node: Extent Ordering339719 +Node: Format of the Extent Info340960 +Node: Zero-Length Extents342848 +Node: Mathematics of Extent Ordering344246 +Node: Extent Fragments349003 +Node: Faces350090 +Node: Glyphs350206 +Node: Specifiers353224 +Node: Menus353353 +Node: Subprocesses355611 +Node: Interface to X Windows357587 +Node: Index357758  End Tag Table diff --git a/info/internals.info-1 b/info/internals.info-1 index e45a1de..5e484da 100644 --- a/info/internals.info-1 +++ b/info/internals.info-1 @@ -1,5 +1,5 @@ -This is ../info/internals.info, produced by makeinfo version 3.12s from -internals/internals.texi. +This is Info file ../info/internals.info, produced by Makeinfo version +1.68 from the input file internals/internals.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -73,7 +73,7 @@ File: internals.info, Node: Top, Next: A History of Emacs, Prev: (dir), Up: * Index:: Index including concepts, functions, variables, and other terms. - --- The Detailed Node Listing --- + -- The Detailed Node Listing -- Here are other nodes that are inferiors of those already listed, mentioned here so you can get to them in one step: @@ -886,7 +886,7 @@ for easy upgrading of parts of a system without upgrading the rest. It would be impossible to pre-determine and pre-specify the information for all possible configurations. - In fact, the `s/' and `m/' files are basically _evil_, since they + In fact, the `s/' and `m/' files are basically *evil*, since they contain unmaintainable platform-specific hard-coded information. XEmacs has been moving in the direction of having all system-specific information be determined dynamically by `configure'. Perhaps someday @@ -897,7 +897,7 @@ we can `rm -rf src/s src/m'. features of your system) from template files. You then run `make', which compiles the auxiliary code and programs in `lib-src/' and `lwlib/' and the main XEmacs executable in `src/'. The result of -compiling and linking is an executable called `temacs', which is _not_ +compiling and linking is an executable called `temacs', which is *not* the final XEmacs executable. `temacs' by itself is not intended to function as an editor or even display any windows on the screen, and if you simply run it, it will exit immediately. The `Makefile' runs diff --git a/info/internals.info-2 b/info/internals.info-2 index 33026bd..c5980c1 100644 --- a/info/internals.info-2 +++ b/info/internals.info-2 @@ -1,5 +1,5 @@ -This is ../info/internals.info, produced by makeinfo version 3.12s from -internals/internals.texi. +This is Info file ../info/internals.info, produced by Makeinfo version +1.68 from the input file internals/internals.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -286,7 +286,7 @@ but detached extents (extents not referring to any text, as happens to some extents when the text they are referring to is deleted) are temporary. Note that some permanent objects, such as faces and coding systems, cannot be deleted. Note also that windows are unique in that -they can be _undeleted_ after having previously been deleted. (This +they can be *undeleted* after having previously been deleted. (This happens as a result of restoring a window configuration.) Note that many types of objects have a "read syntax", i.e. a way of @@ -493,7 +493,7 @@ advantages: 1. 31 bits can be used for Lisp Integers. - 2. _Any_ pointer can be represented directly, and no bit masking + 2. *Any* pointer can be represented directly, and no bit masking operations are necessary. The disadvantages are: @@ -535,7 +535,7 @@ have to be a statement rather than just used in an expression. The reason for this is that standard C doesn't let you "construct" a structure (but GCC does). Granted, this sometimes isn't too convenient; for the case of integers, at least, you can use the function -`make_int()', which constructs and _returns_ an integer Lisp object. +`make_int()', which constructs and *returns* an integer Lisp object. Note that the `XSETTYPE()' macros are also affected by `ERROR_CHECK_TYPECHECK' and make sure that the structure is of the right type in the case of record types, where the type is contained in @@ -870,7 +870,7 @@ call the C function. Defining the C function is not enough to make a Lisp primitive available; you must also create the Lisp symbol for the primitive (the -symbol is "interned"; *note Obarrays::) and store a suitable subr +symbol is "interned"; *note Obarrays::.) and store a suitable subr object in its function cell. (If you don't do this, the primitive won't be seen by Lisp code.) The code looks like this: @@ -956,7 +956,7 @@ variable gets changed. Whether or not you `DEFVAR_LISP()' a variable, you need to initialize it in the `vars_of_*()' function; otherwise it will end up -as all zeroes, which is the integer 0 (_not_ `nil'), and this is +as all zeroes, which is the integer 0 (*not* `nil'), and this is probably not what you want. Also, if the variable is not `DEFVAR_LISP()'ed, *you must call* `staticpro()' on the C variable in the `vars_of_*()' function. Otherwise, the garbage-collection diff --git a/info/internals.info-3 b/info/internals.info-3 index 4d9538c..2468102 100644 --- a/info/internals.info-3 +++ b/info/internals.info-3 @@ -1,5 +1,5 @@ -This is ../info/internals.info, produced by makeinfo version 3.12s from -internals/internals.texi. +This is Info file ../info/internals.info, produced by Makeinfo version +1.68 from the input file internals/internals.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -255,7 +255,7 @@ General Guidelines for Writing Mule-Aware Code This section contains some general guidance on how to write Mule-aware code, as well as some pitfalls you should avoid. -_Never use `char' and `char *'._ +*Never use `char' and `char *'.* In XEmacs, the use of `char' and `char *' is almost always a mistake. If you want to manipulate an Emacs character from "C", use `Emchar'. If you want to examine a specific octet in the @@ -264,12 +264,12 @@ _Never use `char' and `char *'._ pointer to move through the internal text, use `Bufbyte *'. Also note that you almost certainly do not need `Emchar *'. -_Be careful not to confuse `Charcount', `Bytecount', and `Bufpos'._ +*Be careful not to confuse `Charcount', `Bytecount', and `Bufpos'.* The whole point of using different types is to avoid confusion about the use of certain variables. Lest this effect be nullified, you need to be careful about using the right types. -_Always convert external data_ +*Always convert external data* It is extremely important to always convert external data, because XEmacs can crash if unexpected 8bit sequences are copied to its internal buffers literally. @@ -405,11 +405,12 @@ you can try to improve the test suite in `tests/automated'. The basic rule is that you should assume builds using `--srcdir' and the `#include <...>' syntax needs to be used when the to-be-included generated file is in a potentially different - directory _at compile time_. The non-obvious C rule is that - `#include "..."' means to search for the included file in the same - directory as the including file, _not_ in the current directory. + directory *at compile time*. The non-obvious C rule is that + `#include "..."' means to search for the included file in the + same directory as the including file, *not* in the current + directory. - * Header files should _not_ include `' and `"lisp.h"'. It + * Header files should *not* include `' and `"lisp.h"'. It is the responsibility of the `.c' files that use it to do so. * If the header uses `INLINE', either directly or through @@ -521,7 +522,7 @@ file linked, respectively. (Actually, this is not really true. should be made constant, and before all other Emacs files and all libraries. In particular, the allocation modules `gmalloc.c', `alloca.c', etc. are normally placed past `lastfile.c', and all of the -files that implement Xt widget classes _must_ be placed after +files that implement Xt widget classes *must* be placed after `lastfile.c' because they contain various structures that must be statically initialized and into which Xt writes at various times.) `pre-crt0.c' and `lastfile.c' contain exported symbols that are used to @@ -736,7 +737,7 @@ functions, traversing stack frames, and binding variables; the control primitives and other special forms such as `while', `if', `eval', `let', `and', `or', `progn', etc.; handling of non-local exits, unwind-protects, and exception handlers; entering the debugger; methods -for the subr Lisp object type; etc. It does _not_ include the `read' +for the subr Lisp object type; etc. It does *not* include the `read' function, the `print' function, or the handling of symbols and obarrays. `backtrace.h' contains some structures related to stack frames and @@ -795,7 +796,7 @@ arithmetic. `bytecode.c' implements the byte-code interpreter and compiled-function objects, and `bytecode.h' contains associated -structures. Note that the byte-code _compiler_ is written in Lisp. +structures. Note that the byte-code *compiler* is written in Lisp.  File: internals.info, Node: Modules for Standard Editing Operations, Next: Editor-Level Control Flow Modules, Prev: Basic Lisp Modules, Up: A Summary of the Various XEmacs Modules @@ -813,7 +814,7 @@ by other properties; manipulate lists of buffers (remember that buffers are permanent objects and stored in various ordered lists); retrieve or change buffer properties; etc. It also contains the definitions of all the built-in buffer-local variables (which can be viewed as buffer -properties). It does _not_ contain code to manipulate buffer-local +properties). It does *not* contain code to manipulate buffer-local variables (that's in `symbols.c', described above); or code to manipulate the text in a buffer. @@ -972,7 +973,7 @@ provide another implementation of those API functions. Note that the choice of whether to use `event-Xt.c' or `event-tty.c' is made at compile time! Or at the very latest, it is made at startup -time. `event-Xt.c' handles events for _both_ X and TTY frames; +time. `event-Xt.c' handles events for *both* X and TTY frames; `event-tty.c' is only used when X support is not compiled into XEmacs. The reason for this is that there is only one event loop in XEmacs: thus, it needs to be able to receive events from all different kinds of diff --git a/info/internals.info-4 b/info/internals.info-4 index d2c7e72..2d748d8 100644 --- a/info/internals.info-4 +++ b/info/internals.info-4 @@ -1,5 +1,5 @@ -This is ../info/internals.info, produced by makeinfo version 3.12s from -internals/internals.texi. +This is Info file ../info/internals.info, produced by Makeinfo version +1.68 from the input file internals/internals.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -776,7 +776,7 @@ and as such may not look like they normally do. In particular: * Vectors have their size field munged, so anything that looks at this field will fail. - * Note that `XFOOBAR()' macros _will_ work correctly on object + * Note that `XFOOBAR()' macros *will* work correctly on object pointers with their mark bit set, because the logical shift operations that remove the tag also remove the mark bit. @@ -829,7 +829,7 @@ some rules, though: 1. For every `GCPRON', there have to be declarations of `struct gcpro gcpro1, gcpro2', etc. - 2. You _must_ `UNGCPRO' anything that's `GCPRO'ed, and you _must not_ + 2. You *must* `UNGCPRO' anything that's `GCPRO'ed, and you *must not* `UNGCPRO' if you haven't `GCPRO'ed. Getting either of these wrong will lead to crashes, often in completely random places unrelated to where the problem lies. @@ -864,7 +864,7 @@ some rules, though: with `struct gcpro ngcpro1, ngcpro2', etc.), `NNGCPRON', etc. This avoids compiler warnings about shadowed locals. - 7. It is _always_ better to err on the side of extra `GCPRO's rather + 7. It is *always* better to err on the side of extra `GCPRO's rather than too few. The extra cycles spent on this are almost never going to make a whit of difference in the speed of anything. @@ -874,12 +874,12 @@ some rules, though: One exception from this rule is if you ever plan to change the parameter value, and store a new object in it. In that case, you - _must_ `GCPRO' the parameter, because otherwise the new object + *must* `GCPRO' the parameter, because otherwise the new object will not be protected. So, if you create any Lisp objects (remember, this happens in all sorts of circumstances, e.g. with `Fcons()', etc.), you are - responsible for `GCPRO'ing them, unless you are _absolutely sure_ + responsible for `GCPRO'ing them, unless you are *absolutely sure* that there's no possibility that a garbage-collection can occur while you need to use the object. Even then, consider `GCPRO'ing. @@ -887,7 +887,7 @@ some rules, though: whenever a QUIT can occur where execution can continue past this. (Remember, this is almost anywhere.) - 10. If you have the _least smidgeon of doubt_ about whether you need + 10. If you have the *least smidgeon of doubt* about whether you need to `GCPRO', you should `GCPRO'. 11. Beware of `GCPRO'ing something that is uninitialized. If you have @@ -945,14 +945,14 @@ Invocation The first thing that anyone should know about garbage collection is: when and how the garbage collector is invoked. One might think that this could happen every time new memory is allocated, e.g. new objects are -created, but this is _not_ the case. Instead, we have the following +created, but this is *not* the case. Instead, we have the following situation: The entry point of any process of garbage collection is an invocation of the function `garbage_collect_1' in file `alloc.c'. The invocation -can occur _explicitly_ by calling the function `Fgarbage_collect' (in +can occur *explicitly* by calling the function `Fgarbage_collect' (in addition this function provides information about the freed memory), or -can occur _implicitly_ in four different situations: +can occur *implicitly* in four different situations: 1. In function `main_1' in file `emacs.c'. This function is called at each startup of xemacs. The garbage collection is invoked after all initial creations are completed, but only if a special internal diff --git a/info/internals.info-5 b/info/internals.info-5 index f5cbeb4..54a670b 100644 --- a/info/internals.info-5 +++ b/info/internals.info-5 @@ -1,5 +1,5 @@ -This is ../info/internals.info, produced by makeinfo version 3.12s from -internals/internals.texi. +This is Info file ../info/internals.info, produced by Makeinfo version +1.68 from the input file internals/internals.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -119,7 +119,7 @@ place. also have to be marked manually. That is done by the function `mark_profiling_info' - 9. Hash tables in Xemacs belong to a kind of special objects that + 9. Hash tables in XEmacs belong to a kind of special objects that make use of a concept often called 'weak pointers'. To make a long story short, these kind of pointers are not followed during the estimation of the live objects during garbage collection. Any @@ -654,8 +654,8 @@ create one of these, copy an existing model and modify as necessary. WARNING #1: The finalize method is also called at the end of the dump phase; this time with the for_disksave parameter set to - non-zero. The object is _not_ about to disappear, so you have to - make sure to _not_ free any extra `malloc()'ed memory if you're + non-zero. The object is *not* about to disappear, so you have to + make sure to *not* free any extra `malloc()'ed memory if you're going to need it later. (Also, signal an error if there are any operating-system and window-system resources here, because they can't be dumped.) @@ -667,12 +667,12 @@ create one of these, copy an existing model and modify as necessary. `for_disksave' proviso), we've gotten nastily burned in some cases by not doing this. - WARNING #2: The finalize method is _only_ called for lcrecords, - _not_ for simply lrecords. If you need a finalize method for + WARNING #2: The finalize method is *only* called for lcrecords, + *not* for simply lrecords. If you need a finalize method for simple lrecords, you have to stick it in the `ADDITIONAL_FREE_foo()' macro in `alloc.c'. - WARNING #3: Things are in an _extremely_ bizarre state when + WARNING #3: Things are in an *extremely* bizarre state when `ADDITIONAL_FREE_foo()' is called, so you have to be incredibly careful when writing one of these functions. See the comment in `gc_sweep()'. If you ever have to add one of these, consider @@ -692,11 +692,11 @@ create one of these, copy an existing model and modify as necessary. 5. A "hash" method. This is used to hash objects when they are to be compared with `equal'. The rule here is that if two objects are - `equal', they _must_ hash to the same value; i.e. your hash + `equal', they *must* hash to the same value; i.e. your hash function should use some subset of the sub-fields of the object that are compared in the "equal" method. If you specify this method as `NULL', the object's pointer will be used as the hash, - which will _fail_ if the object has an `equal' method, so don't do + which will *fail* if the object has an `equal' method, so don't do this. To hash a sub-Lisp-object, call `internal_hash()'. Bump the depth @@ -816,7 +816,7 @@ immediately puts the conses onto the cons free list, and decrements the statistics on memory allocation appropriately. This is used to good effect by some extremely commonly-used code, to avoid generating extra objects and thereby triggering GC sooner. However, you have to be -_extremely_ careful when doing this. If you mess this up, you will get +*extremely* careful when doing this. If you mess this up, you will get BADLY BURNED, and it has happened before.  @@ -829,7 +829,7 @@ Vector all are threaded through the variable `all_vectors'. Vectors are marked strangely during garbage collection, by kludging the size field. Note that the `struct Lisp_Vector' is declared with its `contents' -field being a _stretchy_ array of one element. It is actually +field being a *stretchy* array of one element. It is actually `malloc()'ed with the right size, however, and access to any element through the `contents' array works fine. diff --git a/info/internals.info-6 b/info/internals.info-6 index 820bedd..1962403 100644 --- a/info/internals.info-6 +++ b/info/internals.info-6 @@ -1,5 +1,5 @@ -This is ../info/internals.info, produced by makeinfo version 3.12s from -internals/internals.texi. +This is Info file ../info/internals.info, produced by Makeinfo version +1.68 from the input file internals/internals.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -204,8 +204,8 @@ is replaced but the rest stays the same. system-specific event loop can be operating at a time, and must be able to receive all kinds of events simultaneously. For the two existing event loops (implemented in `event-tty.c' and `event-Xt.c', -respectively), the TTY event loop _only_ handles TTY consoles, while -the Xt event loop handles _both_ TTY and X consoles. This situation is +respectively), the TTY event loop *only* handles TTY consoles, while +the Xt event loop handles *both* TTY and X consoles. This situation is different from all of the output handlers, where you simply have one per console type. @@ -954,12 +954,12 @@ characters back again). Once the buffer is killed, the memory allocated for the buffer text will be freed, but it will still be sitting on the heap, taking up virtual memory, and will not be released back to the operating system. (However, if you have compiled XEmacs with rel-alloc, -the situation is different. In this case, the space _will_ be released +the situation is different. In this case, the space *will* be released back to the operating system. However, this tends to result in a noticeable speed penalty.) Astute readers may notice that the text in a buffer is represented as -an array of _bytes_, while (at least in the MULE case) an Emchar is a +an array of *bytes*, while (at least in the MULE case) an Emchar is a 19-bit integer, which clearly cannot fit in a byte. This means (of course) that the text in a buffer uses a different representation from an Emchar: specifically, the 19-bit Emchar becomes a series of one to @@ -986,7 +986,7 @@ at that position, we need to follow these steps: so, adding the size of the gap to it. By convention, memory indices begin at 1, just like buffer positions and byte indices, and when referring to the position that is "at" the gap, we always - use the memory position at the _beginning_, not at the end, of the + use the memory position at the *beginning*, not at the end, of the gap. 3. Fetch the appropriate bytes at the determined memory position. diff --git a/info/internals.info-7 b/info/internals.info-7 index f7310c5..3a35acb 100644 --- a/info/internals.info-7 +++ b/info/internals.info-7 @@ -1,5 +1,5 @@ -This is ../info/internals.info, produced by makeinfo version 3.12s from -internals/internals.texi. +This is Info file ../info/internals.info, produced by Makeinfo version +1.68 from the input file internals/internals.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -277,7 +277,7 @@ later. For example, Latin-1 is a 96-character charset, and JISX0208 (the Japanese national character set) is a 94x94-character charset. - [Note that, although the ranges above define the _valid_ position + [Note that, although the ranges above define the *valid* position codes for a charset, some of the slots in a particular charset may in fact be empty. This is the case for JISX0208, for example, where (e.g.) all the slots whose first position code is in the range 118 - 127 are @@ -1031,9 +1031,9 @@ Window Hierarchy If a frame contains multiple windows (panes), they are always created by splitting an existing window along the horizontal or vertical axis. Terminology is a bit confusing here: to "split a window horizontally" -means to create two side-by-side windows, i.e. to make a _vertical_ cut +means to create two side-by-side windows, i.e. to make a *vertical* cut in a window. Likewise, to "split a window vertically" means to create -two windows, one above the other, by making a _horizontal_ cut. +two windows, one above the other, by making a *horizontal* cut. If you split a window and then split again along the same axis, you will end up with a number of panes all arranged along the same axis. @@ -1071,7 +1071,7 @@ combination window. 5. All functions that accept windows must be prepared to accept combination windows, and do something sane (e.g. signal an error - if so). Combination windows _do_ escape to the Lisp level. + if so). Combination windows *do* escape to the Lisp level. 6. All windows have three fields governing their contents: these are "hchild" (a list of horizontally-arrayed children), "vchild" (a diff --git a/info/internals.info-8 b/info/internals.info-8 index 68652f1..1296544 100644 --- a/info/internals.info-8 +++ b/info/internals.info-8 @@ -1,5 +1,5 @@ -This is ../info/internals.info, produced by makeinfo version 3.12s from -internals/internals.texi. +This is Info file ../info/internals.info, produced by Makeinfo version +1.68 from the input file internals/internals.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -308,7 +308,7 @@ structure to be there. A list of extents is maintained as a double gap array: one gap array is ordered by start index (the "display order") and the other is ordered by end index (the "e-order"). Note that positions in an extent -list should logically be conceived of as referring _to_ a particular +list should logically be conceived of as referring *to* a particular extent (as is the norm in programs) rather than sitting between two extents. Note also that callers of these functions should not be aware of the fact that the extent list is implemented as an array, except for @@ -376,7 +376,7 @@ overlap a range. range; this is equivalent to treating a point P as the range [P, P]. - * In the case of an _extent_ overlapping a point or range, the extent + * In the case of an *extent* overlapping a point or range, the extent is normally treated as having closed endpoints. This applies consistently in the discussion of stacks of extents and such below. Note that this definition of overlap is not necessarily consistent diff --git a/info/lispref.info b/info/lispref.info index 19586e0..be9fb29 100644 --- a/info/lispref.info +++ b/info/lispref.info @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -51,838 +51,837 @@ Foundation instead of in the original English.  Indirect: -lispref.info-1: 2368 -lispref.info-2: 48387 -lispref.info-3: 96926 -lispref.info-4: 146768 -lispref.info-5: 195602 -lispref.info-6: 243287 -lispref.info-7: 291570 -lispref.info-8: 340706 -lispref.info-9: 388028 -lispref.info-10: 436667 -lispref.info-11: 484610 -lispref.info-12: 531222 -lispref.info-13: 579121 -lispref.info-14: 627344 -lispref.info-15: 675598 -lispref.info-16: 724800 -lispref.info-17: 772040 -lispref.info-18: 818890 -lispref.info-19: 865941 -lispref.info-20: 914671 -lispref.info-21: 964093 -lispref.info-22: 1011012 -lispref.info-23: 1058039 -lispref.info-24: 1107438 -lispref.info-25: 1157120 -lispref.info-26: 1207030 -lispref.info-27: 1256253 -lispref.info-28: 1305020 -lispref.info-29: 1353992 -lispref.info-30: 1395327 -lispref.info-31: 1444470 -lispref.info-32: 1493683 -lispref.info-33: 1543257 -lispref.info-34: 1591434 -lispref.info-35: 1637066 -lispref.info-36: 1678382 -lispref.info-37: 1723323 -lispref.info-38: 1773010 -lispref.info-39: 1822114 -lispref.info-40: 1871518 -lispref.info-41: 1921402 -lispref.info-42: 1970393 -lispref.info-43: 2014285 -lispref.info-44: 2052621 +lispref.info-1: 2392 +lispref.info-2: 48399 +lispref.info-3: 96940 +lispref.info-4: 146799 +lispref.info-5: 195524 +lispref.info-6: 243218 +lispref.info-7: 291479 +lispref.info-8: 340637 +lispref.info-9: 387989 +lispref.info-10: 436636 +lispref.info-11: 484814 +lispref.info-12: 531411 +lispref.info-13: 579316 +lispref.info-14: 627531 +lispref.info-15: 675782 +lispref.info-16: 725497 +lispref.info-17: 774234 +lispref.info-18: 821024 +lispref.info-19: 868080 +lispref.info-20: 916814 +lispref.info-21: 966178 +lispref.info-22: 1013019 +lispref.info-23: 1060032 +lispref.info-24: 1109434 +lispref.info-25: 1159112 +lispref.info-26: 1209010 +lispref.info-27: 1258233 +lispref.info-28: 1307008 +lispref.info-29: 1356451 +lispref.info-30: 1397762 +lispref.info-31: 1446914 +lispref.info-32: 1496128 +lispref.info-33: 1545712 +lispref.info-34: 1593896 +lispref.info-35: 1639532 +lispref.info-36: 1680851 +lispref.info-37: 1725798 +lispref.info-38: 1775494 +lispref.info-39: 1824556 +lispref.info-40: 1873941 +lispref.info-41: 1923837 +lispref.info-42: 1972828 +lispref.info-43: 2017337 +lispref.info-44: 2055716  Tag Table: (Indirect) -Node: Top2368 -Node: Copying48387 -Node: Introduction67545 -Node: Caveats69136 -Node: Lisp History70867 -Node: Conventions72123 -Node: Some Terms72938 -Node: nil and t73659 -Node: Evaluation Notation75336 -Node: Printing Notation76249 -Node: Error Messages77123 -Node: Buffer Text Notation77564 -Node: Format of Descriptions78439 -Node: A Sample Function Description79293 -Node: A Sample Variable Description83279 -Node: Acknowledgements84187 -Node: Lisp Data Types86165 -Node: Printed Representation88720 -Node: Comments90762 -Node: Primitive Types91659 -Node: Programming Types93318 -Node: Integer Type95270 -Node: Floating Point Type96307 -Node: Character Type96926 -Node: Symbol Type104832 -Node: Sequence Type107527 -Node: Cons Cell Type109046 -Node: Dotted Pair Notation113530 -Node: Association List Type115651 -Node: Array Type116534 -Node: String Type118000 -Node: Vector Type120681 -Node: Bit Vector Type121453 -Node: Function Type122315 -Node: Macro Type123428 -Node: Primitive Function Type124125 -Node: Compiled-Function Type125651 -Node: Autoload Type126205 -Node: Char Table Type127219 -Node: Hash Table Type127393 -Node: Range Table Type128548 -Node: Weak List Type129401 -Node: Editing Types129551 -Node: Buffer Type131178 -Node: Marker Type133205 -Node: Extent Type133929 -Node: Window Type135197 -Node: Frame Type136608 -Node: Device Type137403 -Node: Console Type138229 -Node: Window Configuration Type139430 -Node: Event Type140128 -Node: Process Type140292 -Node: Stream Type141327 -Node: Keymap Type142450 -Node: Syntax Table Type142988 -Node: Display Table Type144011 -Node: Database Type144450 -Node: Charset Type144616 -Node: Coding System Type144780 -Node: ToolTalk Message Type144964 -Node: ToolTalk Pattern Type145163 -Node: Window-System Types145335 -Node: Face Type146481 -Node: Glyph Type146612 -Node: Specifier Type146768 -Node: Font Instance Type146941 -Node: Color Instance Type147131 -Node: Image Instance Type147328 -Node: Toolbar Button Type147526 -Node: Subwindow Type147719 -Node: X Resource Type147898 -Node: Type Predicates148051 -Node: Equality Predicates157180 -Node: Numbers161985 -Node: Integer Basics163440 -Node: Float Basics165789 -Node: Predicates on Numbers167531 -Node: Comparison of Numbers169164 -Node: Numeric Conversions172985 -Node: Arithmetic Operations174451 -Node: Rounding Operations179916 -Node: Bitwise Operations181021 -Node: Math Functions190067 -Node: Random Numbers192383 -Node: Strings and Characters194149 -Node: String Basics195602 -Node: Predicates for Strings198020 -Node: Creating Strings198783 -Node: Predicates for Characters204100 -Node: Character Codes205171 -Node: Text Comparison206584 -Node: String Conversion209946 -Node: Modifying Strings213622 -Node: String Properties214263 -Node: Formatting Strings214906 -Node: Character Case224524 -Node: Case Tables227670 -Node: Char Tables231568 -Node: Char Table Types232960 -Node: Working With Char Tables234535 -Node: Lists236484 -Node: Cons Cells237607 -Node: Lists as Boxes238943 -Node: List-related Predicates241585 -Node: List Elements243287 -Node: Building Lists248316 -Node: Modifying Lists254308 -Node: Setcar255120 -Node: Setcdr257541 -Node: Rearrangement260052 -Node: Sets And Lists265638 -Node: Association Lists269866 -Ref: Association Lists-Footnote-1279161 -Node: Property Lists279366 -Node: Working With Normal Plists280914 -Node: Working With Lax Plists283182 -Node: Converting Plists To/From Alists285422 -Node: Weak Lists286770 -Node: Sequences Arrays Vectors288934 -Node: Sequence Functions291570 -Node: Arrays295229 -Node: Array Functions298293 -Node: Vectors300826 -Node: Vector Functions302324 -Node: Bit Vectors304895 -Node: Bit Vector Functions305740 -Node: Symbols307990 -Node: Symbol Components309039 -Node: Definitions313212 -Node: Creating Symbols315437 -Node: Symbol Properties322471 -Node: Plists and Alists323987 -Node: Symbol Plists325736 -Node: Other Plists327545 -Node: Evaluation329323 -Node: Intro Eval330128 -Ref: Intro Eval-Footnote-1333481 -Node: Eval333616 -Node: Forms338034 -Node: Self-Evaluating Forms339193 -Node: Symbol Forms340706 -Node: Classifying Lists341623 -Node: Function Indirection342379 -Node: Function Forms345490 -Node: Macro Forms346487 -Node: Special Forms348087 -Node: Autoloading350396 -Node: Quoting350894 -Node: Control Structures352255 -Node: Sequencing353875 -Node: Conditionals356740 -Node: Combining Conditions360163 -Node: Iteration363433 -Node: Nonlocal Exits365212 -Node: Catch and Throw365914 -Node: Examples of Catch369753 -Node: Errors371772 -Node: Signaling Errors373261 -Node: Processing of Errors376337 -Node: Handling Errors377666 -Node: Error Symbols384582 -Node: Cleanups388028 -Node: Variables391806 -Node: Global Variables393575 -Node: Constant Variables394651 -Node: Local Variables395277 -Node: Void Variables400214 -Node: Defining Variables403730 -Node: Accessing Variables410894 -Node: Setting Variables412319 -Node: Variable Scoping416838 -Node: Scope418437 -Node: Extent419962 -Node: Impl of Scope421441 -Node: Using Scoping423404 -Node: Buffer-Local Variables424926 -Node: Intro to Buffer-Local425762 -Node: Creating Buffer-Local428305 -Node: Default Value433524 -Node: Variable Aliases436667 -Node: Functions438452 -Node: What Is a Function439546 -Node: Lambda Expressions443592 -Node: Lambda Components444502 -Node: Simple Lambda446334 -Node: Argument List447991 -Node: Function Documentation451719 -Node: Function Names453661 -Node: Defining Functions456234 -Node: Calling Functions459274 -Node: Mapping Functions463123 -Node: Anonymous Functions465516 -Node: Function Cells468761 -Node: Inline Functions473571 -Node: Related Topics475381 -Node: Macros476434 -Node: Simple Macro477718 -Node: Expansion478453 -Node: Compiling Macros481457 -Node: Defining Macros483293 -Node: Backquote484610 -Node: Problems with Macros487007 -Node: Argument Evaluation487702 -Node: Surprising Local Vars490617 -Node: Eval During Expansion492685 -Node: Repeated Expansion494378 -Node: Customization496294 -Node: Common Keywords496763 -Node: Group Definitions499608 -Node: Variable Definitions501800 -Node: Customization Types506783 -Node: Simple Types508218 -Node: Composite Types510375 -Node: Splicing into Lists515065 -Node: Type Keywords516900 -Node: Loading520420 -Node: How Programs Do Loading522095 -Node: Autoload531222 -Node: Repeated Loading537301 -Node: Named Features539414 -Node: Unloading545846 -Node: Hooks for Loading548002 -Node: Byte Compilation548719 -Node: Speed of Byte-Code550636 -Node: Compilation Functions551843 -Node: Docs and Compilation558230 -Node: Dynamic Loading560883 -Node: Eval During Compile563247 -Node: Compiled-Function Objects564512 -Node: Disassembly569310 -Node: Debugging576564 -Node: Debugger577976 -Node: Error Debugging579121 -Node: Infinite Loops581874 -Node: Function Debugging583118 -Node: Explicit Debug585908 -Node: Using Debugger586679 -Node: Debugger Commands588541 -Node: Invoking the Debugger592858 -Node: Internals of Debugger596773 -Node: Syntax Errors601660 -Node: Excess Open602908 -Node: Excess Close604783 -Node: Compilation Errors606204 -Node: Edebug607492 -Node: Using Edebug609600 -Node: Instrumenting612297 -Node: Edebug Execution Modes615786 -Node: Jumping618896 -Node: Edebug Misc621239 -Node: Breakpoints622628 -Node: Global Break Condition625434 -Node: Embedded Breakpoints626389 -Node: Trapping Errors627344 -Node: Edebug Views629420 -Node: Edebug Eval631385 -Node: Eval List632562 -Node: Reading in Edebug635947 -Node: Printing in Edebug636746 -Node: Tracing638461 -Node: Coverage Testing640347 -Node: The Outside Context642388 -Node: Checking Whether to Stop643337 -Node: Edebug Display Update643984 -Node: Edebug Recursive Edit646007 -Node: Instrumenting Macro Calls647662 -Node: Specification List650144 -Node: Backtracking659555 -Node: Debugging Backquote661493 -Node: Specification Examples665199 -Node: Edebug Options667266 -Node: Read and Print672603 -Node: Streams Intro673580 -Node: Input Streams675598 -Node: Input Functions680499 -Node: Output Streams682559 -Node: Output Functions686610 -Node: Output Variables690910 -Node: Minibuffers695709 -Node: Intro to Minibuffers696794 -Node: Text from Minibuffer699120 -Node: Object from Minibuffer703782 -Node: Minibuffer History706999 -Node: Completion709909 -Node: Basic Completion711884 -Node: Minibuffer Completion716908 -Node: Completion Commands720153 -Node: High-Level Completion724800 -Node: Reading File Names728824 -Node: Programmed Completion732513 -Node: Yes-or-No Queries734723 -Node: Multiple Queries740460 -Node: Minibuffer Misc744524 -Node: Command Loop749390 -Node: Command Overview750734 -Node: Defining Commands754012 -Node: Using Interactive754760 -Node: Interactive Codes759533 -Node: Interactive Examples765325 -Node: Interactive Call766639 -Node: Command Loop Info772040 -Node: Events777019 -Node: Event Types778479 -Node: Event Contents780402 -Node: Event Predicates784878 -Node: Accessing Mouse Event Positions786203 -Node: Frame-Level Event Position Info786902 -Node: Window-Level Event Position Info787942 -Node: Event Text Position Info789706 -Node: Event Glyph Position Info792198 -Node: Event Toolbar Position Info793521 -Node: Other Event Position Info794192 -Node: Accessing Other Event Info794601 -Node: Working With Events796221 -Node: Converting Events802209 -Node: Reading Input805162 -Node: Key Sequence Input806164 -Node: Reading One Event808118 -Node: Dispatching an Event810879 -Node: Quoted Character Input811330 -Node: Peeking and Discarding812678 -Node: Waiting816582 -Node: Quitting818890 -Node: Prefix Command Arguments823298 -Node: Recursive Editing828385 -Node: Disabling Commands833181 -Node: Command History835249 -Node: Keyboard Macros836986 -Node: Keymaps839203 -Node: Keymap Terminology840780 -Node: Format of Keymaps843709 -Node: Creating Keymaps844120 -Node: Inheritance and Keymaps846199 -Node: Key Sequences848571 -Node: Prefix Keys853141 -Node: Active Keymaps856726 -Node: Key Lookup865941 -Node: Functions for Key Lookup871104 -Node: Changing Key Bindings876801 -Node: Key Binding Commands883698 -Node: Scanning Keymaps885763 -Node: Other Keymap Functions894274 -Node: Menus894896 -Node: Menu Format895438 -Node: Menubar Format904023 -Node: Menubar904648 -Node: Modifying Menus907761 -Node: Menu Filters912775 -Node: Pop-Up Menus914671 -Node: Menu Accelerators916876 -Node: Creating Menu Accelerators917598 -Node: Keyboard Menu Traversal918916 -Node: Menu Accelerator Functions919643 -Node: Buffers Menu922678 -Node: Dialog Boxes923972 -Node: Dialog Box Format924139 -Node: Dialog Box Functions925509 -Node: Toolbar925906 -Node: Toolbar Intro926231 -Node: Toolbar Descriptor Format928641 -Node: Specifying the Toolbar933135 -Node: Other Toolbar Variables936740 -Node: Scrollbars941167 -Node: Drag and Drop941303 -Node: Supported Protocols942379 -Node: OffiX DND942882 -Node: CDE dt943889 -Node: MSWindows OLE944480 -Node: Loose ends944651 -Node: Drop Interface945043 -Node: Drag Interface946065 -Node: Modes946239 -Node: Major Modes947190 -Node: Major Mode Conventions950105 -Node: Example Major Modes956060 -Node: Auto Major Mode964093 -Node: Mode Help971541 -Node: Derived Modes972642 -Node: Minor Modes974833 -Node: Minor Mode Conventions976135 -Node: Keymaps and Minor Modes978998 -Node: Modeline Format979833 -Node: Modeline Data981601 -Node: Modeline Variables985871 -Node: %-Constructs990587 -Node: Hooks993498 -Node: Documentation1000260 -Node: Documentation Basics1001683 -Node: Accessing Documentation1004733 -Node: Keys in Documentation1011012 -Node: Describing Characters1014491 -Node: Help Functions1016840 -Node: Obsoleteness1023291 -Node: Files1026285 -Node: Visiting Files1028210 -Node: Visiting Functions1029715 -Node: Subroutines of Visiting1034762 -Node: Saving Buffers1036835 -Node: Reading from Files1042928 -Node: Writing to Files1045085 -Node: File Locks1047802 -Node: Information about Files1050855 -Node: Testing Accessibility1051616 -Node: Kinds of Files1055356 -Node: Truenames1057037 -Node: File Attributes1058039 -Node: Changing File Attributes1063178 -Node: File Names1068584 -Node: File Name Components1070193 -Node: Directory Names1073294 -Node: Relative File Names1076747 -Node: File Name Expansion1077825 -Node: Unique File Names1081732 -Node: File Name Completion1083347 -Node: User Name Completion1086008 -Node: Contents of Directories1087348 -Node: Create/Delete Dirs1090661 -Node: Magic File Names1091767 -Node: Partial Files1097397 -Node: Intro to Partial Files1097625 -Node: Creating a Partial File1098865 -Node: Detached Partial Files1099800 -Node: Format Conversion1100922 -Node: Files and MS-DOS1107438 -Node: Backups and Auto-Saving1109502 -Node: Backup Files1110177 -Node: Making Backups1111574 -Node: Rename or Copy1114323 -Node: Numbered Backups1116816 -Node: Backup Names1119060 -Node: Auto-Saving1122352 -Node: Reverting1130494 -Node: Buffers1133652 -Node: Buffer Basics1135069 -Node: Current Buffer1137122 -Node: Buffer Names1141810 -Node: Buffer File Name1145015 -Node: Buffer Modification1149134 -Node: Modification Time1151327 -Node: Read Only Buffers1154702 -Node: The Buffer List1157120 -Node: Creating Buffers1161950 -Node: Killing Buffers1164096 -Node: Indirect Buffers1167827 -Node: Windows1170399 -Node: Basic Windows1171877 -Node: Splitting Windows1174975 -Node: Deleting Windows1181864 -Node: Selecting Windows1184544 -Node: Cyclic Window Ordering1187673 -Node: Buffers and Windows1192297 -Node: Displaying Buffers1194138 -Node: Choosing Window1199314 -Node: Window Point1207030 -Node: Window Start1209076 -Node: Vertical Scrolling1213566 -Node: Horizontal Scrolling1219703 -Node: Size of Window1223212 -Node: Position of Window1227930 -Node: Resizing Windows1230170 -Node: Window Configurations1235599 -Node: Frames1239024 -Node: Creating Frames1240793 -Node: Frame Properties1242134 -Node: Property Access1242950 -Node: Initial Properties1243799 -Node: X Frame Properties1246285 -Node: Size and Position1250919 -Node: Frame Name1252915 -Node: Frame Titles1253829 -Node: Deleting Frames1255653 -Node: Finding All Frames1256253 -Node: Frames and Windows1258247 -Node: Minibuffers and Frames1259952 -Node: Input Focus1260870 -Node: Visibility of Frames1263947 -Node: Raising and Lowering1265866 -Node: Frame Configurations1268242 -Node: Frame Hooks1268836 -Node: Consoles and Devices1270641 -Node: Basic Console Functions1273385 -Node: Basic Device Functions1273808 -Node: Console Types and Device Classes1274524 -Node: Connecting to a Console or Device1276721 -Node: The Selected Console and Device1278884 -Node: Console and Device I/O1279910 -Node: Positions1280674 -Node: Point1281643 -Node: Motion1284733 -Node: Character Motion1285500 -Node: Word Motion1287737 -Node: Buffer End Motion1289238 -Node: Text Lines1290735 -Node: Screen Lines1295330 -Node: List Motion1299393 -Node: Skipping Characters1302801 -Node: Excursions1305020 -Node: Narrowing1308052 -Node: Markers1313377 -Node: Overview of Markers1314283 -Node: Predicates on Markers1318975 -Node: Creating Markers1320221 -Node: Information from Markers1324258 -Node: Changing Markers1325356 -Node: The Mark1326734 -Node: The Region1335228 -Node: Text1340915 -Node: Near Point1343614 -Node: Buffer Contents1347336 -Node: Comparing Text1348742 -Node: Insertion1350150 -Node: Commands for Insertion1353992 -Node: Deletion1356948 -Node: User-Level Deletion1360543 -Node: The Kill Ring1364704 -Node: Kill Ring Concepts1366878 -Node: Kill Functions1367932 -Node: Yank Commands1369837 -Node: Low-Level Kill Ring1371708 -Node: Internals of Kill Ring1374494 -Node: Undo1377274 -Node: Maintaining Undo1381603 -Node: Filling1384223 -Node: Margins1390217 -Node: Auto Filling1394146 -Node: Sorting1395327 -Node: Columns1404627 -Node: Indentation1407143 -Node: Primitive Indent1407922 -Node: Mode-Specific Indent1409166 -Node: Region Indent1411677 -Node: Relative Indent1414625 -Node: Indent Tabs1417007 -Node: Motion by Indent1418328 -Node: Case Changes1419107 -Node: Text Properties1422358 -Node: Examining Properties1424171 -Node: Changing Properties1426038 -Node: Property Search1429629 -Node: Special Properties1434340 -Node: Saving Properties1434621 -Node: Substitution1437763 -Node: Registers1441033 -Node: Transposition1443576 -Node: Change Hooks1444470 -Node: Transformations1446510 -Node: Searching and Matching1450895 -Node: String Search1452026 -Node: Regular Expressions1456750 -Node: Syntax of Regexps1458117 -Node: Regexp Example1472496 -Node: Regexp Search1474666 -Node: POSIX Regexps1480754 -Node: Search and Replace1482589 -Node: Match Data1485954 -Node: Simple Match Data1487084 -Node: Replacing Match1491349 -Node: Entire Match Data1493683 -Node: Saving Match Data1495674 -Node: Searching and Case1497055 -Node: Standard Regexps1499089 -Node: Syntax Tables1501287 -Node: Syntax Basics1502401 -Node: Syntax Descriptors1505373 -Node: Syntax Class Table1507223 -Node: Syntax Flags1513261 -Node: Syntax Table Functions1516478 -Node: Motion and Syntax1520342 -Node: Parsing Expressions1521794 -Node: Standard Syntax Tables1527863 -Node: Syntax Table Internals1528707 -Node: Abbrevs1529733 -Node: Abbrev Mode1531536 -Node: Abbrev Tables1532256 -Node: Defining Abbrevs1533789 -Node: Abbrev Files1535694 -Node: Abbrev Expansion1537467 -Node: Standard Abbrev Tables1542098 -Node: Extents1543257 -Node: Intro to Extents1544500 -Node: Creating and Modifying Extents1548494 -Node: Extent Endpoints1550001 -Node: Finding Extents1553264 -Node: Mapping Over Extents1557013 -Node: Extent Properties1563130 -Node: Detached Extents1573274 -Node: Extent Parents1575133 -Node: Duplicable Extents1576828 -Node: Extents and Events1580049 -Node: Atomic Extents1581956 -Node: Specifiers1582403 -Node: Introduction to Specifiers1584210 -Node: Specifiers In-Depth1586520 -Node: Specifier Instancing1591434 -Node: Specifier Types1594696 -Node: Adding Specifications1599770 -Node: Retrieving Specifications1609132 -Node: Specifier Tag Functions1612867 -Node: Specifier Instancing Functions1616101 -Node: Specifier Example1619508 -Node: Creating Specifiers1622614 -Node: Specifier Validation Functions1624863 -Node: Other Specification Functions1627247 -Node: Faces and Window-System Objects1631066 -Node: Faces1631390 -Node: Merging Faces1633007 -Node: Basic Face Functions1634968 -Node: Face Properties1637066 -Node: Face Convenience Functions1646625 -Node: Other Face Display Functions1649755 -Node: Fonts1650568 -Node: Font Specifiers1651269 -Node: Font Instances1651510 -Node: Font Instance Names1652477 -Node: Font Instance Size1653318 -Node: Font Instance Characteristics1654604 -Node: Font Convenience Functions1655773 -Node: Colors1657063 -Node: Color Specifiers1657503 -Node: Color Instances1657730 -Node: Color Instance Properties1658474 -Node: Color Convenience Functions1659100 -Node: Glyphs1660153 -Node: Glyph Functions1661745 -Node: Creating Glyphs1662152 -Node: Glyph Properties1663739 -Node: Glyph Convenience Functions1672906 -Node: Glyph Dimensions1676853 -Node: Images1677933 -Node: Image Specifiers1678382 -Node: Image Instantiator Conversion1689804 -Node: Image Instances1691169 -Node: Image Instance Types1691920 -Node: Image Instance Functions1694575 -Node: Glyph Types1699144 -Node: Mouse Pointer1700916 -Node: Redisplay Glyphs1703919 -Node: Subwindows1704952 -Node: Annotations1705195 -Node: Annotation Basics1706211 -Node: Annotation Primitives1710149 -Node: Annotation Properties1711478 -Node: Locating Annotations1714518 -Node: Margin Primitives1715355 -Node: Annotation Hooks1717249 -Node: Display1717909 -Node: Refresh Screen1718887 -Node: Truncation1720798 -Node: The Echo Area1723323 -Node: Warnings1729758 -Node: Invisible Text1734194 -Node: Selective Display1736773 -Node: Overlay Arrow1740899 -Node: Temporary Displays1742252 -Node: Blinking1746373 -Node: Usual Display1748558 -Node: Display Tables1751107 -Node: Display Table Format1751911 -Node: Active Display Table1753353 -Node: Character Descriptors1754545 -Node: Beeping1755302 -Node: Hash Tables1760068 -Node: Introduction to Hash Tables1760676 -Node: Working With Hash Tables1766699 -Node: Weak Hash Tables1767816 -Node: Range Tables1769615 -Node: Introduction to Range Tables1770304 -Node: Working With Range Tables1770735 -Node: Databases1771620 -Node: Connecting to a Database1771919 -Node: Working With a Database1773010 -Node: Other Database Functions1773868 -Node: Processes1774442 -Node: Subprocess Creation1776666 -Node: Synchronous Processes1779955 -Node: MS-DOS Subprocesses1786673 -Node: Asynchronous Processes1787747 -Node: Deleting Processes1791460 -Node: Process Information1793331 -Node: Input to Processes1797257 -Node: Signals to Processes1799547 -Node: Output from Processes1803967 -Node: Process Buffers1804779 -Node: Filter Functions1807646 -Node: Accepting Output1813216 -Node: Sentinels1814743 -Node: Process Window Size1818233 -Node: Transaction Queues1818582 -Node: Network1820280 -Node: System Interface1822114 -Node: Starting Up1823384 -Node: Start-up Summary1823978 -Node: Init File1827532 -Node: Terminal-Specific1829913 -Node: Command Line Arguments1833072 -Node: Getting Out1836561 -Node: Killing XEmacs1837130 -Node: Suspending XEmacs1838799 -Node: System Environment1842141 -Node: User Identification1848808 -Node: Time of Day1852337 -Node: Time Conversion1855124 -Node: Timers1860164 -Node: Terminal Input1862337 -Node: Input Modes1862840 -Node: Translating Input1865253 -Node: Recording Input1869418 -Node: Terminal Output1871518 -Node: Flow Control1875141 -Node: Batch Mode1878933 -Node: X-Windows1880315 -Node: X Selections1881127 -Node: X Server1883337 -Node: Resources1883738 -Node: Server Data1888879 -Node: Grabs1890086 -Node: X Miscellaneous1891667 -Node: ToolTalk Support1894052 -Node: XEmacs ToolTalk API Summary1894269 -Node: Sending Messages1895569 -Node: Example of Sending Messages1895820 -Node: Elisp Interface for Sending Messages1896882 -Node: Receiving Messages1903275 -Node: Example of Receiving Messages1903498 -Node: Elisp Interface for Receiving Messages1904334 -Node: LDAP Support1908159 -Node: Building XEmacs with LDAP support1908655 -Node: XEmacs LDAP API1909633 -Node: LDAP Variables1910363 -Node: The High-Level LDAP API1912839 -Node: The Low-Level LDAP API1913944 -Node: The LDAP Lisp Object1914218 -Node: Opening and Closing a LDAP Connection1914771 -Node: Searching on a LDAP Server (Low-level)1916554 -Node: Syntax of Search Filters1917947 -Node: Internationalization1919245 -Node: I18N Levels 1 and 21919582 -Node: I18N Level 31920288 -Node: Level 3 Basics1920569 -Node: Level 3 Primitives1921402 -Node: Dynamic Messaging1923008 -Node: Domain Specification1923471 -Node: Documentation String Extraction1925374 -Node: I18N Level 41926292 -Node: MULE1926484 -Node: Internationalization Terminology1927595 -Node: Charsets1936134 -Node: Charset Properties1936830 -Node: Basic Charset Functions1941516 -Node: Charset Property Functions1943697 -Node: Predefined Charsets1945740 -Node: MULE Characters1948660 -Node: Composite Characters1949507 -Node: ISO 20221950761 -Node: Coding Systems1956483 -Node: Coding System Types1958405 -Node: EOL Conversion1960224 -Node: Coding System Properties1961407 -Node: Basic Coding System Functions1965259 -Node: Coding System Property Functions1967163 -Node: Encoding and Decoding Text1967721 -Node: Detection of Textual Encoding1968857 -Node: Big5 and Shift-JIS Functions1970393 -Node: CCL1971481 -Node: CCL Syntax1974585 -Node: CCL Statements1976173 -Node: CCL Expressions1980821 -Node: Calling CCL1983360 -Node: CCL Examples1986349 -Node: Category Tables1986486 -Node: Tips1988845 -Node: Style Tips1989486 -Node: Compilation Tips1999005 -Node: Documentation Tips2000919 -Node: Comment Tips2006428 -Node: Library Headers2009430 -Node: Building XEmacs and Object Allocation2013402 -Node: Building XEmacs2014285 -Node: Pure Storage2020620 -Node: Garbage Collection2023408 -Node: Standard Errors2034547 -Node: Standard Buffer-Local Variables2038756 -Node: Standard Keymaps2041389 -Node: Standard Hooks2045121 -Node: Index2052621 +Node: Top2392 +Node: Copying48399 +Node: Introduction67557 +Node: Caveats69148 +Node: Lisp History70879 +Node: Conventions72135 +Node: Some Terms72950 +Node: nil and t73671 +Node: Evaluation Notation75348 +Node: Printing Notation76261 +Node: Error Messages77135 +Node: Buffer Text Notation77576 +Node: Format of Descriptions78451 +Node: A Sample Function Description79305 +Node: A Sample Variable Description83291 +Node: Acknowledgements84199 +Node: Lisp Data Types86177 +Node: Printed Representation88732 +Node: Comments90775 +Node: Primitive Types91673 +Node: Programming Types93332 +Node: Integer Type95284 +Node: Floating Point Type96321 +Node: Character Type96940 +Node: Symbol Type104846 +Node: Sequence Type107541 +Node: Cons Cell Type109062 +Node: Dotted Pair Notation113545 +Node: Association List Type115666 +Node: Array Type116549 +Node: String Type118015 +Node: Vector Type120696 +Node: Bit Vector Type121468 +Node: Function Type122330 +Node: Macro Type123446 +Node: Primitive Function Type124143 +Node: Compiled-Function Type125670 +Node: Autoload Type126224 +Node: Char Table Type127238 +Node: Hash Table Type127412 +Node: Range Table Type128567 +Node: Weak List Type129420 +Node: Editing Types129570 +Node: Buffer Type131197 +Node: Marker Type133233 +Node: Extent Type133957 +Node: Window Type135225 +Node: Frame Type136636 +Node: Device Type137431 +Node: Console Type138257 +Node: Window Configuration Type139458 +Node: Event Type140156 +Node: Process Type140320 +Node: Stream Type141355 +Node: Keymap Type142480 +Node: Syntax Table Type143018 +Node: Display Table Type144042 +Node: Database Type144481 +Node: Charset Type144647 +Node: Coding System Type144811 +Node: ToolTalk Message Type144995 +Node: ToolTalk Pattern Type145194 +Node: Window-System Types145366 +Node: Face Type146512 +Node: Glyph Type146643 +Node: Specifier Type146799 +Node: Font Instance Type146972 +Node: Color Instance Type147162 +Node: Image Instance Type147359 +Node: Toolbar Button Type147557 +Node: Subwindow Type147750 +Node: X Resource Type147929 +Node: Type Predicates148082 +Node: Equality Predicates157212 +Node: Numbers162017 +Node: Integer Basics163472 +Node: Float Basics165822 +Node: Predicates on Numbers167564 +Node: Comparison of Numbers169197 +Node: Numeric Conversions173018 +Node: Arithmetic Operations174484 +Node: Rounding Operations179949 +Node: Bitwise Operations181054 +Node: Math Functions189989 +Node: Random Numbers192305 +Node: Strings and Characters194071 +Node: String Basics195524 +Node: Predicates for Strings197946 +Node: Creating Strings198709 +Node: Predicates for Characters204037 +Node: Character Codes205108 +Node: Text Comparison206521 +Node: String Conversion209883 +Node: Modifying Strings213561 +Node: String Properties214202 +Node: Formatting Strings214845 +Node: Character Case224453 +Node: Case Tables227600 +Node: Char Tables231499 +Node: Char Table Types232891 +Node: Working With Char Tables234466 +Node: Lists236415 +Node: Cons Cells237538 +Node: Lists as Boxes238874 +Node: List-related Predicates241516 +Node: List Elements243218 +Node: Building Lists248247 +Node: Modifying Lists254242 +Node: Setcar255054 +Node: Setcdr257475 +Node: Rearrangement259985 +Node: Sets And Lists265544 +Node: Association Lists269773 +Node: Property Lists279274 +Node: Working With Normal Plists280822 +Node: Working With Lax Plists283090 +Node: Converting Plists To/From Alists285330 +Node: Weak Lists286678 +Node: Sequences Arrays Vectors288843 +Node: Sequence Functions291479 +Node: Arrays295140 +Node: Array Functions298205 +Node: Vectors300738 +Node: Vector Functions302236 +Node: Bit Vectors304810 +Node: Bit Vector Functions305655 +Node: Symbols307906 +Node: Symbol Components308955 +Node: Definitions313134 +Node: Creating Symbols315359 +Node: Symbol Properties322397 +Node: Plists and Alists323913 +Node: Symbol Plists325663 +Node: Other Plists327473 +Node: Evaluation329251 +Node: Intro Eval330056 +Node: Eval333547 +Node: Forms337967 +Node: Self-Evaluating Forms339124 +Node: Symbol Forms340637 +Node: Classifying Lists341554 +Node: Function Indirection342310 +Node: Function Forms345425 +Node: Macro Forms346424 +Node: Special Forms348024 +Node: Autoloading350358 +Node: Quoting350856 +Node: Control Structures352219 +Node: Sequencing353841 +Node: Conditionals356706 +Node: Combining Conditions360129 +Node: Iteration363399 +Node: Nonlocal Exits365184 +Node: Catch and Throw365886 +Node: Examples of Catch369730 +Node: Errors371749 +Node: Signaling Errors373238 +Node: Processing of Errors376306 +Node: Handling Errors377636 +Node: Error Symbols384542 +Node: Cleanups387989 +Node: Variables391769 +Node: Global Variables393538 +Node: Constant Variables394614 +Node: Local Variables395240 +Node: Void Variables400184 +Node: Defining Variables403695 +Node: Accessing Variables410860 +Node: Setting Variables412286 +Node: Variable Scoping416805 +Node: Scope418404 +Node: Extent419929 +Node: Impl of Scope421408 +Node: Using Scoping423371 +Node: Buffer-Local Variables424893 +Node: Intro to Buffer-Local425729 +Node: Creating Buffer-Local428272 +Node: Default Value433492 +Node: Variable Aliases436636 +Node: Functions438422 +Node: What Is a Function439516 +Node: Lambda Expressions443563 +Node: Lambda Components444473 +Node: Simple Lambda446305 +Node: Argument List447964 +Node: Function Documentation451692 +Node: Function Names453634 +Node: Defining Functions456208 +Node: Calling Functions459250 +Node: Mapping Functions463099 +Node: Anonymous Functions465747 +Node: Function Cells468992 +Node: Inline Functions473802 +Node: Related Topics475612 +Node: Macros476665 +Node: Simple Macro477949 +Node: Expansion478684 +Node: Compiling Macros481658 +Node: Defining Macros483496 +Node: Backquote484814 +Node: Problems with Macros487212 +Node: Argument Evaluation487907 +Node: Surprising Local Vars490808 +Node: Eval During Expansion492876 +Node: Repeated Expansion494570 +Node: Customization496481 +Node: Common Keywords496950 +Node: Group Definitions499795 +Node: Variable Definitions501988 +Node: Customization Types506971 +Node: Simple Types508407 +Node: Composite Types510564 +Node: Splicing into Lists515254 +Node: Type Keywords517089 +Node: Loading520609 +Node: How Programs Do Loading522282 +Node: Autoload531411 +Node: Repeated Loading537491 +Node: Named Features539605 +Node: Unloading546038 +Node: Hooks for Loading548194 +Node: Byte Compilation548911 +Node: Speed of Byte-Code550828 +Node: Compilation Functions552035 +Node: Docs and Compilation558424 +Node: Dynamic Loading561077 +Node: Eval During Compile563441 +Node: Compiled-Function Objects564706 +Node: Disassembly569505 +Node: Debugging576759 +Node: Debugger578171 +Node: Error Debugging579316 +Node: Infinite Loops582069 +Node: Function Debugging583313 +Node: Explicit Debug586103 +Node: Using Debugger586875 +Node: Debugger Commands588739 +Node: Invoking the Debugger593056 +Node: Internals of Debugger596971 +Node: Syntax Errors601848 +Node: Excess Open603096 +Node: Excess Close604971 +Node: Compilation Errors606392 +Node: Edebug607680 +Node: Using Edebug609787 +Node: Instrumenting612484 +Node: Edebug Execution Modes615973 +Node: Jumping619083 +Node: Edebug Misc621426 +Node: Breakpoints622815 +Node: Global Break Condition625621 +Node: Embedded Breakpoints626576 +Node: Trapping Errors627531 +Node: Edebug Views629607 +Node: Edebug Eval631572 +Node: Eval List632749 +Node: Reading in Edebug636134 +Node: Printing in Edebug636933 +Node: Tracing638648 +Node: Coverage Testing640534 +Node: The Outside Context642575 +Node: Checking Whether to Stop643524 +Node: Edebug Display Update644170 +Node: Edebug Recursive Edit646192 +Node: Instrumenting Macro Calls647846 +Node: Specification List650328 +Node: Backtracking659739 +Node: Debugging Backquote661677 +Node: Specification Examples665383 +Node: Edebug Options667450 +Node: Read and Print672787 +Node: Streams Intro673764 +Node: Input Streams675782 +Node: Input Functions680683 +Node: Output Streams682743 +Node: Output Functions686795 +Node: Output Variables691095 +Node: Minibuffers695894 +Node: Intro to Minibuffers697046 +Node: Text from Minibuffer699236 +Node: Object from Minibuffer704113 +Node: Minibuffer History707320 +Node: Completion710299 +Node: Basic Completion712274 +Node: Minibuffer Completion717286 +Node: Completion Commands720853 +Node: High-Level Completion725497 +Node: Reading File Names729521 +Node: Programmed Completion733205 +Node: Yes-or-No Queries735587 +Node: Multiple Queries741283 +Node: Reading a Password745351 +Node: Minibuffer Misc746688 +Node: Command Loop751561 +Node: Command Overview752907 +Node: Defining Commands756191 +Node: Using Interactive756939 +Node: Interactive Codes761713 +Node: Interactive Examples767517 +Node: Interactive Call768831 +Node: Command Loop Info774234 +Node: Events779213 +Node: Event Types780673 +Node: Event Contents782596 +Node: Event Predicates787072 +Node: Accessing Mouse Event Positions788397 +Node: Frame-Level Event Position Info789096 +Node: Window-Level Event Position Info790136 +Node: Event Text Position Info791900 +Node: Event Glyph Position Info794392 +Node: Event Toolbar Position Info795715 +Node: Other Event Position Info796386 +Node: Accessing Other Event Info796795 +Node: Working With Events798415 +Node: Converting Events804343 +Node: Reading Input807296 +Node: Key Sequence Input808298 +Node: Reading One Event810252 +Node: Dispatching an Event813013 +Node: Quoted Character Input813464 +Node: Peeking and Discarding814812 +Node: Waiting818716 +Node: Quitting821024 +Node: Prefix Command Arguments825432 +Node: Recursive Editing830519 +Node: Disabling Commands835316 +Node: Command History837384 +Node: Keyboard Macros839123 +Node: Keymaps841341 +Node: Keymap Terminology842918 +Node: Format of Keymaps845848 +Node: Creating Keymaps846259 +Node: Inheritance and Keymaps848338 +Node: Key Sequences850710 +Node: Prefix Keys855280 +Node: Active Keymaps858865 +Node: Key Lookup868080 +Node: Functions for Key Lookup873244 +Node: Changing Key Bindings878947 +Node: Key Binding Commands885834 +Node: Scanning Keymaps887900 +Node: Other Keymap Functions896412 +Node: Menus897034 +Node: Menu Format897576 +Node: Menubar Format906161 +Node: Menubar906786 +Node: Modifying Menus909900 +Node: Menu Filters914918 +Node: Pop-Up Menus916814 +Node: Menu Accelerators919020 +Node: Creating Menu Accelerators919742 +Node: Keyboard Menu Traversal921060 +Node: Menu Accelerator Functions921787 +Node: Buffers Menu924822 +Node: Dialog Boxes926116 +Node: Dialog Box Format926283 +Node: Dialog Box Functions927653 +Node: Toolbar928051 +Node: Toolbar Intro928376 +Node: Toolbar Descriptor Format930787 +Node: Specifying the Toolbar935281 +Node: Other Toolbar Variables938889 +Node: Scrollbars943316 +Node: Drag and Drop943452 +Node: Supported Protocols944528 +Node: OffiX DND945031 +Node: CDE dt946038 +Node: MSWindows OLE946629 +Node: Loose ends946800 +Node: Drop Interface947192 +Node: Drag Interface948214 +Node: Modes948388 +Node: Major Modes949339 +Node: Major Mode Conventions952255 +Node: Example Major Modes958210 +Node: Auto Major Mode966178 +Node: Mode Help973628 +Node: Derived Modes974729 +Node: Minor Modes976920 +Node: Minor Mode Conventions978222 +Node: Keymaps and Minor Modes981086 +Node: Modeline Format981921 +Node: Modeline Data983690 +Node: Modeline Variables987962 +Node: %-Constructs992678 +Node: Hooks995589 +Node: Documentation1002353 +Node: Documentation Basics1003776 +Node: Accessing Documentation1006828 +Node: Keys in Documentation1013019 +Node: Describing Characters1016482 +Node: Help Functions1018836 +Node: Obsoleteness1025279 +Node: Files1028273 +Node: Visiting Files1030198 +Node: Visiting Functions1031703 +Node: Subroutines of Visiting1036751 +Node: Saving Buffers1038827 +Node: Reading from Files1044920 +Node: Writing to Files1047077 +Node: File Locks1049794 +Node: Information about Files1052847 +Node: Testing Accessibility1053608 +Node: Kinds of Files1057348 +Node: Truenames1059029 +Node: File Attributes1060032 +Node: Changing File Attributes1065172 +Node: File Names1070578 +Node: File Name Components1072187 +Node: Directory Names1075288 +Node: Relative File Names1078741 +Node: File Name Expansion1079819 +Node: Unique File Names1083726 +Node: File Name Completion1085341 +Node: User Name Completion1088002 +Node: Contents of Directories1089342 +Node: Create/Delete Dirs1092655 +Node: Magic File Names1093761 +Node: Partial Files1099391 +Node: Intro to Partial Files1099619 +Node: Creating a Partial File1100859 +Node: Detached Partial Files1101794 +Node: Format Conversion1102916 +Node: Files and MS-DOS1109434 +Node: Backups and Auto-Saving1111498 +Node: Backup Files1112173 +Node: Making Backups1113570 +Node: Rename or Copy1116319 +Node: Numbered Backups1118812 +Node: Backup Names1121057 +Node: Auto-Saving1124340 +Node: Reverting1132482 +Node: Buffers1135640 +Node: Buffer Basics1137055 +Node: Current Buffer1139108 +Node: Buffer Names1143798 +Node: Buffer File Name1147003 +Node: Buffer Modification1151123 +Node: Modification Time1153319 +Node: Read Only Buffers1156694 +Node: The Buffer List1159112 +Node: Creating Buffers1163942 +Node: Killing Buffers1166091 +Node: Indirect Buffers1169822 +Node: Windows1172394 +Node: Basic Windows1173872 +Node: Splitting Windows1176970 +Node: Deleting Windows1183841 +Node: Selecting Windows1186522 +Node: Cyclic Window Ordering1189651 +Node: Buffers and Windows1194275 +Node: Displaying Buffers1196116 +Node: Choosing Window1201294 +Node: Window Point1209010 +Node: Window Start1211056 +Node: Vertical Scrolling1215546 +Node: Horizontal Scrolling1221683 +Node: Size of Window1225192 +Node: Position of Window1229910 +Node: Resizing Windows1232150 +Node: Window Configurations1237579 +Node: Frames1241004 +Node: Creating Frames1242773 +Node: Frame Properties1244114 +Node: Property Access1244930 +Node: Initial Properties1245779 +Node: X Frame Properties1248265 +Node: Size and Position1252899 +Node: Frame Name1254895 +Node: Frame Titles1255809 +Node: Deleting Frames1257633 +Node: Finding All Frames1258233 +Node: Frames and Windows1260227 +Node: Minibuffers and Frames1261932 +Node: Input Focus1262851 +Node: Visibility of Frames1265929 +Node: Raising and Lowering1267848 +Node: Frame Configurations1270225 +Node: Frame Hooks1270819 +Node: Consoles and Devices1272626 +Node: Basic Console Functions1275370 +Node: Basic Device Functions1275793 +Node: Console Types and Device Classes1276509 +Node: Connecting to a Console or Device1278706 +Node: The Selected Console and Device1280869 +Node: Console and Device I/O1281895 +Node: Positions1282659 +Node: Point1283628 +Node: Motion1286721 +Node: Character Motion1287488 +Node: Word Motion1289725 +Node: Buffer End Motion1291226 +Node: Text Lines1292723 +Node: Screen Lines1297318 +Node: List Motion1301381 +Node: Skipping Characters1304789 +Node: Excursions1307008 +Node: Narrowing1310043 +Node: Markers1315370 +Node: Overview of Markers1316272 +Node: Predicates on Markers1320965 +Node: Creating Markers1322211 +Node: Information from Markers1326248 +Node: Changing Markers1327346 +Node: The Mark1328724 +Node: The Region1337218 +Node: Text1342905 +Node: Near Point1345607 +Node: Buffer Contents1349794 +Node: Comparing Text1351200 +Node: Insertion1352608 +Node: Commands for Insertion1356451 +Node: Deletion1359409 +Node: User-Level Deletion1363006 +Node: The Kill Ring1367136 +Node: Kill Ring Concepts1369310 +Node: Kill Functions1370364 +Node: Yank Commands1372269 +Node: Low-Level Kill Ring1374140 +Node: Internals of Kill Ring1376926 +Node: Undo1379706 +Node: Maintaining Undo1384035 +Node: Filling1386655 +Node: Margins1392651 +Node: Auto Filling1396581 +Node: Sorting1397762 +Node: Columns1407063 +Node: Indentation1409579 +Node: Primitive Indent1410358 +Node: Mode-Specific Indent1411602 +Node: Region Indent1414113 +Node: Relative Indent1417061 +Node: Indent Tabs1419443 +Node: Motion by Indent1420765 +Node: Case Changes1421544 +Node: Text Properties1424795 +Node: Examining Properties1426610 +Node: Changing Properties1428477 +Node: Property Search1432072 +Node: Special Properties1436783 +Node: Saving Properties1437064 +Node: Substitution1440206 +Node: Registers1443477 +Node: Transposition1446020 +Node: Change Hooks1446914 +Node: Transformations1448954 +Node: Searching and Matching1453339 +Node: String Search1454470 +Node: Regular Expressions1459194 +Node: Syntax of Regexps1460561 +Node: Regexp Example1474941 +Node: Regexp Search1477111 +Node: POSIX Regexps1483199 +Node: Search and Replace1485034 +Node: Match Data1488399 +Node: Simple Match Data1489529 +Node: Replacing Match1493794 +Node: Entire Match Data1496128 +Node: Saving Match Data1498119 +Node: Searching and Case1499502 +Node: Standard Regexps1501536 +Node: Syntax Tables1503734 +Node: Syntax Basics1504850 +Node: Syntax Descriptors1507825 +Node: Syntax Class Table1509675 +Node: Syntax Flags1515713 +Node: Syntax Table Functions1518930 +Node: Motion and Syntax1522794 +Node: Parsing Expressions1524246 +Node: Standard Syntax Tables1530315 +Node: Syntax Table Internals1531159 +Node: Abbrevs1532186 +Node: Abbrev Mode1533990 +Node: Abbrev Tables1534710 +Node: Defining Abbrevs1536243 +Node: Abbrev Files1538148 +Node: Abbrev Expansion1539922 +Node: Standard Abbrev Tables1544553 +Node: Extents1545712 +Node: Intro to Extents1546955 +Node: Creating and Modifying Extents1550949 +Node: Extent Endpoints1552458 +Node: Finding Extents1555723 +Node: Mapping Over Extents1559474 +Node: Extent Properties1565592 +Node: Detached Extents1575736 +Node: Extent Parents1577595 +Node: Duplicable Extents1579290 +Node: Extents and Events1582513 +Node: Atomic Extents1584421 +Node: Specifiers1584868 +Node: Introduction to Specifiers1586671 +Node: Specifiers In-Depth1588981 +Node: Specifier Instancing1593896 +Node: Specifier Types1597158 +Node: Adding Specifications1602232 +Node: Retrieving Specifications1611595 +Node: Specifier Tag Functions1615330 +Node: Specifier Instancing Functions1618564 +Node: Specifier Example1621971 +Node: Creating Specifiers1625077 +Node: Specifier Validation Functions1627326 +Node: Other Specification Functions1629710 +Node: Faces and Window-System Objects1633529 +Node: Faces1633853 +Node: Merging Faces1635472 +Node: Basic Face Functions1637433 +Node: Face Properties1639532 +Node: Face Convenience Functions1649091 +Node: Other Face Display Functions1652224 +Node: Fonts1653037 +Node: Font Specifiers1653738 +Node: Font Instances1653979 +Node: Font Instance Names1654946 +Node: Font Instance Size1655787 +Node: Font Instance Characteristics1657073 +Node: Font Convenience Functions1658242 +Node: Colors1659532 +Node: Color Specifiers1659972 +Node: Color Instances1660199 +Node: Color Instance Properties1660943 +Node: Color Convenience Functions1661569 +Node: Glyphs1662622 +Node: Glyph Functions1664214 +Node: Creating Glyphs1664621 +Node: Glyph Properties1666208 +Node: Glyph Convenience Functions1675375 +Node: Glyph Dimensions1679322 +Node: Images1680402 +Node: Image Specifiers1680851 +Node: Image Instantiator Conversion1692275 +Node: Image Instances1693640 +Node: Image Instance Types1694391 +Node: Image Instance Functions1697046 +Node: Glyph Types1701616 +Node: Mouse Pointer1703388 +Node: Redisplay Glyphs1706391 +Node: Subwindows1707424 +Node: Annotations1707667 +Node: Annotation Basics1708684 +Node: Annotation Primitives1712622 +Node: Annotation Properties1713951 +Node: Locating Annotations1716991 +Node: Margin Primitives1717828 +Node: Annotation Hooks1719722 +Node: Display1720382 +Node: Refresh Screen1721360 +Node: Truncation1723271 +Node: The Echo Area1725798 +Node: Warnings1732234 +Node: Invisible Text1736670 +Node: Selective Display1739250 +Node: Overlay Arrow1743377 +Node: Temporary Displays1744731 +Node: Blinking1748852 +Node: Usual Display1751036 +Node: Display Tables1753586 +Node: Display Table Format1754390 +Node: Active Display Table1755834 +Node: Character Descriptors1757026 +Node: Beeping1757784 +Node: Hash Tables1762550 +Node: Introduction to Hash Tables1763158 +Node: Working With Hash Tables1769183 +Node: Weak Hash Tables1770300 +Node: Range Tables1772099 +Node: Introduction to Range Tables1772788 +Node: Working With Range Tables1773219 +Node: Databases1774104 +Node: Connecting to a Database1774403 +Node: Working With a Database1775494 +Node: Other Database Functions1776352 +Node: Processes1776926 +Node: Subprocess Creation1779150 +Node: Synchronous Processes1782443 +Node: MS-DOS Subprocesses1789141 +Node: Asynchronous Processes1790215 +Node: Deleting Processes1793919 +Node: Process Information1795790 +Node: Input to Processes1799718 +Node: Signals to Processes1801987 +Node: Output from Processes1806407 +Node: Process Buffers1807219 +Node: Filter Functions1810088 +Node: Accepting Output1815655 +Node: Sentinels1817182 +Node: Process Window Size1820675 +Node: Transaction Queues1821024 +Node: Network1822722 +Node: System Interface1824556 +Node: Starting Up1825826 +Node: Start-up Summary1826420 +Node: Init File1829974 +Node: Terminal-Specific1832358 +Node: Command Line Arguments1835517 +Node: Getting Out1839006 +Node: Killing XEmacs1839575 +Node: Suspending XEmacs1841244 +Node: System Environment1844560 +Node: User Identification1851225 +Node: Time of Day1854755 +Node: Time Conversion1857544 +Node: Timers1862586 +Node: Terminal Input1864759 +Node: Input Modes1865262 +Node: Translating Input1867675 +Node: Recording Input1871840 +Node: Terminal Output1873941 +Node: Flow Control1877564 +Node: Batch Mode1881357 +Node: X-Windows1882739 +Node: X Selections1883551 +Node: X Server1885761 +Node: Resources1886162 +Node: Server Data1891303 +Node: Grabs1892510 +Node: X Miscellaneous1894091 +Node: ToolTalk Support1896476 +Node: XEmacs ToolTalk API Summary1896693 +Node: Sending Messages1897993 +Node: Example of Sending Messages1898244 +Node: Elisp Interface for Sending Messages1899306 +Node: Receiving Messages1905699 +Node: Example of Receiving Messages1905922 +Node: Elisp Interface for Receiving Messages1906758 +Node: LDAP Support1910583 +Node: Building XEmacs with LDAP support1911079 +Node: XEmacs LDAP API1912057 +Node: LDAP Variables1912787 +Node: The High-Level LDAP API1915264 +Node: The Low-Level LDAP API1916377 +Node: The LDAP Lisp Object1916651 +Node: Opening and Closing a LDAP Connection1917204 +Node: Searching on a LDAP Server (Low-level)1918987 +Node: Syntax of Search Filters1920382 +Node: Internationalization1921680 +Node: I18N Levels 1 and 21922017 +Node: I18N Level 31922723 +Node: Level 3 Basics1923004 +Node: Level 3 Primitives1923837 +Node: Dynamic Messaging1925443 +Node: Domain Specification1925906 +Node: Documentation String Extraction1927809 +Node: I18N Level 41928727 +Node: MULE1928919 +Node: Internationalization Terminology1930030 +Node: Charsets1938569 +Node: Charset Properties1939265 +Node: Basic Charset Functions1943951 +Node: Charset Property Functions1946132 +Node: Predefined Charsets1948175 +Node: MULE Characters1951095 +Node: Composite Characters1951942 +Node: ISO 20221953196 +Node: Coding Systems1958918 +Node: Coding System Types1960840 +Node: EOL Conversion1962659 +Node: Coding System Properties1963842 +Node: Basic Coding System Functions1967694 +Node: Coding System Property Functions1969598 +Node: Encoding and Decoding Text1970156 +Node: Detection of Textual Encoding1971292 +Node: Big5 and Shift-JIS Functions1972828 +Node: CCL1973916 +Node: CCL Syntax1977020 +Node: CCL Statements1978608 +Node: CCL Expressions1983256 +Node: Calling CCL1986408 +Node: CCL Examples1989398 +Node: Category Tables1989535 +Node: Tips1991894 +Node: Style Tips1992535 +Node: Compilation Tips2002055 +Node: Documentation Tips2003971 +Node: Comment Tips2009480 +Node: Library Headers2012482 +Node: Building XEmacs and Object Allocation2016454 +Node: Building XEmacs2017337 +Node: Pure Storage2023672 +Node: Garbage Collection2026460 +Node: Standard Errors2037599 +Node: Standard Buffer-Local Variables2041808 +Node: Standard Keymaps2044484 +Node: Standard Hooks2048216 +Node: Index2055716  End Tag Table diff --git a/info/lispref.info-1 b/info/lispref.info-1 index 99ffbd8..5f7e482 100644 --- a/info/lispref.info-1 +++ b/info/lispref.info-1 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -151,7 +151,7 @@ Appendices * Index:: Index including concepts, functions, variables, and other terms. - --- The Detailed Node Listing --- + -- The Detailed Node Listing -- Here are other nodes that are inferiors of those already listed, mentioned here so you can get to them in one step: @@ -303,7 +303,7 @@ Kinds of Forms * Classifying Lists:: How to distinguish various sorts of list forms. * Function Forms:: Forms that call functions. * Macro Forms:: Forms that call macros. -* Special Forms:: ``Special forms'' are idiosyncratic primitives, +* Special Forms:: "Special forms" are idiosyncratic primitives, most of them extremely important. * Autoloading:: Functions set up to load files containing their real definitions. @@ -466,7 +466,7 @@ Command Loop * Events:: What input looks like when you read it. * Reading Input:: How to read input events from the keyboard or mouse. * Waiting:: Waiting for user input or elapsed time. -* Quitting:: How C-g works. How to catch or defer quitting. +* Quitting:: How `C-g' works. How to catch or defer quitting. * Prefix Command Arguments:: How the commands to set prefix args work. * Recursive Editing:: Entering a recursive edit, and why you usually shouldn't. @@ -651,7 +651,7 @@ Buffers is visited. * Buffer Modification:: A buffer is "modified" if it needs to be saved. * Modification Time:: Determining whether the visited file was changed - ``behind XEmacs's back''. + "behind XEmacs's back". * Read Only Buffers:: Modifying text is not allowed in a read-only buffer. * The Buffer List:: How to look at all the existing buffers. @@ -720,8 +720,8 @@ Markers * Information from Markers:: Finding the marker's buffer or character position. * Changing Markers:: Moving the marker to a new buffer or position. -* The Mark:: How ``the mark'' is implemented with a marker. -* The Region:: How to access ``the region''. +* The Mark:: How "the mark" is implemented with a marker. +* The Region:: How to access "the region". Text @@ -828,10 +828,10 @@ Specifiers (under user control) in a wide variety of contexts. * Specifiers In-Depth:: Gory details about specifier innards. -* Specifier Instancing:: Instancing means obtaining the ``value'' of +* Specifier Instancing:: Instancing means obtaining the "value" of a specifier in a particular context. * Specifier Types:: Specifiers come in different flavors. -* Adding Specifications:: Specifications control a specifier's ``value'' +* Adding Specifications:: Specifications control a specifier's "value" by giving conditions under which a particular value is valid. * Retrieving Specifications:: Querying a specifier's specifications. diff --git a/info/lispref.info-10 b/info/lispref.info-10 index d81ddda..d90ceeb 100644 --- a/info/lispref.info-10 +++ b/info/lispref.info-10 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -60,9 +60,9 @@ reference the former variable, the current value of the latter is returned. Any time you change the value of the former variable, the value of the latter is actually changed. This is useful in cases where you want to rename a variable but still make old code work (*note -Obsoleteness::). +Obsoleteness::.). - - Function: defvaralias variable alias + - Function: defvaralias VARIABLE ALIAS This function defines VARIABLE as an alias for ALIAS. Thenceforth, any operations performed on VARIABLE will actually be performed on ALIAS. Both VARIABLE and ALIAS should be symbols. @@ -74,12 +74,12 @@ Obsoleteness::). variable, a variable that has a buffer-local value in any buffer, or the symbols `nil' or `t'. - - Function: variable-alias variable + - Function: variable-alias VARIABLE If VARIABLE is aliased to another variable, this function returns that variable. VARIABLE should be a symbol. If VARIABLE is not aliased, this function returns `nil'. - - Function: indirect-variable object + - Function: indirect-variable OBJECT This function returns the variable at the end of OBJECT's variable-alias chain. If OBJECT is a symbol, follow all variable aliases and return the final (non-aliased) symbol. If OBJECT is @@ -169,7 +169,7 @@ function-like objects. A "command" is an object that `command-execute' can invoke; it is a possible definition for a key sequence. Some functions are commands; a function written in Lisp is a command if it contains an - interactive declaration (*note Defining Commands::). Such a + interactive declaration (*note Defining Commands::.). Such a function can be called from Lisp expressions like other functions; in this case, the fact that the function is a command makes no difference. @@ -191,7 +191,7 @@ function-like objects. A "compiled function" is a function that has been compiled by the byte compiler. *Note Compiled-Function Type::. - - Function: subrp object + - Function: subrp OBJECT This function returns `t' if OBJECT is a built-in function (i.e., a Lisp primitive). @@ -200,7 +200,7 @@ function-like objects. (subrp (symbol-function 'message)) => t - - Function: compiled-function-p object + - Function: compiled-function-p OBJECT This function returns `t' if OBJECT is a compiled function. For example: @@ -310,10 +310,10 @@ right. Then it applies the lambda expression to the argument values 1, It is not often useful to write a lambda expression as the CAR of a form in this way. You can get the same result, of making local variables and giving them values, using the special form `let' (*note -Local Variables::). And `let' is clearer and easier to use. In +Local Variables::.). And `let' is clearer and easier to use. In practice, lambda expressions are either stored as the function definitions of symbols, to produce named functions, or passed as -arguments to other functions (*note Anonymous Functions::). +arguments to other functions (*note Anonymous Functions::.). However, calls to explicit lambda expressions were very useful in the old days of Lisp, before the special form `let' was invented. At that @@ -427,7 +427,7 @@ one or two complete sentences that summarize the function's purpose. source file, but since these spaces come before the starting double-quote, they are not part of the string. Some people make a practice of indenting any additional lines of the string so that the -text lines up in the program source. _This is a mistake._ The +text lines up in the program source. *This is a mistake.* The indentation of the following lines is inside the string; what looks nice in the source code will look ugly when displayed by the help commands. @@ -453,7 +453,7 @@ strictest sense has no name. It is simply a list whose first element is However, a symbol can serve as the name of a function. This happens when you put the function in the symbol's "function cell" (*note Symbol -Components::). Then the symbol itself becomes a valid, callable +Components::.). Then the symbol itself becomes a valid, callable function, equivalent to the list or subr-object that its function cell refers to. The contents of the function cell are also called the symbol's "function definition". The procedure of using a symbol's @@ -483,7 +483,7 @@ function definition. For most purposes, there is no need to distinguish. Even so, keep in mind that a function need not have a unique name. -While a given function object _usually_ appears in the function cell of +While a given function object *usually* appears in the function cell of only one symbol, this is just a matter of convenience. It is easy to store it in several symbols using `fset'; then each of the symbols is equally well a name for the same function. @@ -501,7 +501,7 @@ Defining Functions is called "defining a function", and it is done with the `defun' special form. - - Special Form: defun name argument-list body-forms + - Special Form: defun NAME ARGUMENT-LIST BODY-FORMS `defun' is the usual way to define new Lisp functions. It defines the symbol NAME as a function that looks like this: @@ -510,7 +510,7 @@ special form. `defun' stores this lambda expression in the function cell of NAME. It returns the value NAME, but usually we ignore this value. - As described previously (*note Lambda Expressions::), + As described previously (*note Lambda Expressions::.), ARGUMENT-LIST is a list of argument names and may include the keywords `&optional' and `&rest'. Also, the first two forms in BODY-FORMS may be a documentation string and an interactive @@ -553,8 +553,8 @@ special form. distinguish deliberate redefinition from unintentional redefinition. - - Function: define-function name definition - - Function: defalias name definition + - Function: define-function NAME DEFINITION + - Function: defalias NAME DEFINITION These equivalent special forms define the symbol NAME as a function, with definition DEFINITION (which can be any valid Lisp function). @@ -563,7 +563,7 @@ special form. specific function name is being defined--especially where that name appears explicitly in the source file being loaded. This is because `define-function' and `defalias' record which file defined - the function, just like `defun'. (*note Unloading::). + the function, just like `defun'. (*note Unloading::.). By contrast, in programs that manipulate function definitions for other purposes, it is better to use `fset', which does not keep @@ -594,7 +594,7 @@ Usually that's just what you want. Occasionally you need to decide at run time which function to call. To do that, use the functions `funcall' and `apply'. - - Function: funcall function &rest arguments + - Function: funcall FUNCTION &rest ARGUMENTS `funcall' calls FUNCTION with ARGUMENTS, and returns whatever FUNCTION returns. @@ -603,7 +603,7 @@ run time which function to call. To do that, use the functions that you can use any expression to obtain the function to be called. It also means that `funcall' does not see the expressions you write for the ARGUMENTS, only their values. These values are - _not_ evaluated a second time in the act of calling FUNCTION; + *not* evaluated a second time in the act of calling FUNCTION; `funcall' enters the normal procedure for calling a function at the place where the arguments have already been evaluated. @@ -624,7 +624,7 @@ run time which function to call. To do that, use the functions Compare these example with the examples of `apply'. - - Function: apply function &rest arguments + - Function: apply FUNCTION &rest ARGUMENTS `apply' calls FUNCTION with ARGUMENTS, just like `funcall' but with one difference: the last of ARGUMENTS is a list of arguments to give to FUNCTION, rather than a single argument. We also say @@ -659,10 +659,10 @@ function arguments are often called "functionals". function as the argument. Here are two different kinds of no-op function: - - Function: identity arg + - Function: identity ARG This function returns ARG and has no side effects. - - Function: ignore &rest args + - Function: ignore &rest ARGS This function ignores any arguments and returns `nil'.  @@ -672,17 +672,22 @@ Mapping Functions ================= A "mapping function" applies a given function to each element of a -list or other collection. XEmacs Lisp has three such functions; -`mapcar' and `mapconcat', which scan a list, are described here. For -the third mapping function, `mapatoms', see *Note Creating Symbols::. +list or other collection. XEmacs Lisp has several such functions; +`mapcar' and `mapconcat', which scan a list, are described here. +*Note Creating Symbols::, for the function `mapatoms' which maps over +the symbols in an obarray. - - Function: mapcar function sequence + Mapping functions should never modify the sequence being mapped over. +The results are unpredictable. + + - Function: mapcar FUNCTION SEQUENCE `mapcar' applies FUNCTION to each element of SEQUENCE in turn, and returns a list of the results. - The argument 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 SEQUENCE. + The argument 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 + SEQUENCE. For example: @@ -692,10 +697,10 @@ the third mapping function, `mapatoms', see *Note Creating Symbols::. => (2 3 4) (mapcar 'char-to-string "abc") => ("a" "b" "c") - + ;; Call each function in `my-hooks'. (mapcar 'funcall my-hooks) - + (defun mapcar* (f &rest args) "Apply FUNCTION to successive cars of all ARGS. Return the list of results." @@ -706,11 +711,11 @@ the third mapping function, `mapatoms', see *Note Creating Symbols::. (apply 'mapcar* f ;; Recurse for rest of elements. (mapcar 'cdr args))))) - + (mapcar* 'cons '(a b c) '(1 2 3 4)) => ((a . 1) (b . 2) (c . 3)) - - Function: mapconcat function sequence separator + - Function: mapconcat FUNCTION SEQUENCE SEPARATOR `mapconcat' applies FUNCTION to each element of SEQUENCE: the results, which must be strings, are concatenated. Between each pair of result strings, `mapconcat' inserts the string SEPARATOR. @@ -718,13 +723,15 @@ the third mapping function, `mapatoms', see *Note Creating Symbols::. punctuation. The argument FUNCTION must be a function that can take one - argument and return a string. + argument and return a string. The argument SEQUENCE can be any + kind of sequence; that is, a list, a vector, a bit vector, or a + string. (mapconcat 'symbol-name '(The cat in the hat) " ") => "The cat in the hat" - + (mapconcat (function (lambda (x) (format "%c" (1+ x)))) "HAL-8000" "") @@ -750,15 +757,15 @@ this: => (lambda (x) (+ 12 x)) This computes a list that looks like `(lambda (x) (+ 12 x))' and makes -it the value (_not_ the function definition!) of `silly'. +it the value (*not* the function definition!) of `silly'. Here is how we might call this function: (funcall silly 1) => 13 -(It does _not_ work to write `(silly 1)', because this function is not -the _function definition_ of `silly'. We have not given `silly' any +(It does *not* work to write `(silly 1)', because this function is not +the *function definition* of `silly'. We have not given `silly' any function definition, just a value as a variable.) Most of the time, anonymous functions are constants that appear in @@ -776,7 +783,7 @@ a number by two: In such cases, we usually use the special form `function' instead of simple quotation to quote the anonymous function. - - Special Form: function function-object + - Special Form: function FUNCTION-OBJECT This special form returns FUNCTION-OBJECT without evaluating it. In this, it is equivalent to `quote'. However, it serves as a note to the XEmacs Lisp compiler that FUNCTION-OBJECT is intended @@ -826,7 +833,7 @@ and set the function cell of symbols. See also the function `indirect-function' in *Note Function Indirection::. - - Function: symbol-function symbol + - Function: symbol-function SYMBOL This returns the object in the function cell of SYMBOL. If the symbol's function cell is void, a `void-function' error is signaled. @@ -858,12 +865,12 @@ cell contains no object whatsoever. `fboundp'. After you have given a symbol a function definition, you can make it void once more using `fmakunbound'. - - Function: fboundp symbol + - Function: fboundp SYMBOL This function returns `t' if the symbol has an object in its function cell, `nil' otherwise. It does not check that the object is a legitimate function. - - Function: fmakunbound symbol + - Function: fmakunbound SYMBOL This function makes SYMBOL's function cell void, so that a subsequent attempt to access this cell will cause a `void-function' error. (See also `makunbound', in *Note Local Variables::.) @@ -877,7 +884,7 @@ can make it void once more using `fmakunbound'. (foo 1) error--> Symbol's function definition is void: foo - - Function: fset symbol object + - Function: fset SYMBOL OBJECT This function stores OBJECT in the function cell of SYMBOL. The result is OBJECT. Normally OBJECT should be a function or the name of a function, but this is not checked. @@ -1078,7 +1085,7 @@ macro definition that does the job: (list 'setq var (list '1+ var))) When this is called with `(inc x)', the argument `var' has the value -`x'--_not_ the _value_ of `x'. The body of the macro uses this to +`x'--*not* the *value* of `x'. The body of the macro uses this to construct the expansion, which is `(setq x (1+ x))'. Once the macro definition returns this expansion, Lisp proceeds to evaluate it, thus incrementing `x'. @@ -1119,7 +1126,7 @@ this is unusual. You can see the expansion of a given macro call by calling `macroexpand'. - - Function: macroexpand form &optional environment + - Function: macroexpand FORM &optional ENVIRONMENT This function expands FORM, if it is a macro call. If the result is another macro call, it is expanded in turn, until something which is not a macro call results. That is the value returned by @@ -1142,14 +1149,14 @@ this is unusual. (defmacro inc (var) (list 'setq var (list '1+ var))) => inc - + (macroexpand '(inc r)) => (setq r (1+ r)) - + (defmacro inc2 (var1 var2) (list 'progn (list 'inc var1) (list 'inc var2))) => inc2 - + (macroexpand '(inc2 r s)) => (progn (inc r) (inc s)) ; `inc' not expanded here. @@ -1184,10 +1191,10 @@ macro in the same file where it is used and before its first use. the file. This is in case the file needs the required packages for proper compilation. One way to ensure that necessary macro definitions are available during compilation is to require the files that define -them (*note Named Features::). To avoid loading the macro definition -files when someone _runs_ the compiled program, write +them (*note Named Features::.). To avoid loading the macro definition +files when someone *runs* the compiled program, write `eval-when-compile' around the `require' calls (*note Eval During -Compile::). +Compile::.).  File: lispref.info, Node: Defining Macros, Next: Backquote, Prev: Compiling Macros, Up: Macros @@ -1206,7 +1213,7 @@ an anonymous macro to functionals such as `mapcar'. In practice, all Lisp macros have names, and they are usually defined with the special form `defmacro'. - - Special Form: defmacro name argument-list body-forms... + - Special Form: defmacro NAME ARGUMENT-LIST BODY-FORMS... `defmacro' defines the symbol NAME as a macro that looks like this: (macro lambda ARGUMENT-LIST . BODY-FORMS) @@ -1217,7 +1224,7 @@ form `defmacro'. The shape and meaning of ARGUMENT-LIST is the same as in a function, and the keywords `&rest' and `&optional' may be used - (*note Argument List::). Macros may have a documentation string, + (*note Argument List::.). Macros may have a documentation string, but any `interactive' declaration is ignored since macros cannot be called interactively. diff --git a/info/lispref.info-11 b/info/lispref.info-11 index 260c1fe..20e1353 100644 --- a/info/lispref.info-11 +++ b/info/lispref.info-11 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -61,7 +61,7 @@ of constants and nonconstant parts. To make this easier, use the macro Backquote allows you to quote a list, but selectively evaluate elements of that list. In the simplest case, it is identical to the -special form `quote' (*note Quoting::). For example, these two forms +special form `quote' (*note Quoting::.). For example, these two forms yield identical results: `(a list of (+ 2 3) elements) @@ -148,18 +148,19 @@ find in Pascal. (cons 'while (cons (list '<= var final) (append body (list (list 'inc var))))))) => for - (for i from 1 to 3 do (setq square (* i i)) (princ (format "\n%d %d" i square))) ==> + (let ((i 1)) (while (<= i 3) (setq square (* i i)) (princ (format "%d %d" i square)) (inc i))) - - -|1 1 + + + -|1 1 -|2 4 -|3 9 => nil @@ -223,7 +224,8 @@ number of times: (defmacro for (var from init to final do &rest body) "Execute a simple for loop: (for i from 1 to 10 do (print i))." - `(let ((,var ,init) + + `(let ((,var ,init) (max ,final)) (while (<= ,var max) ,@body @@ -244,7 +246,7 @@ supposed to refer to the user's binding of `max', really access the binding made by `for'. The way to correct this is to use an uninterned symbol instead of -`max' (*note Creating Symbols::). The uninterned symbol can be bound +`max' (*note Creating Symbols::.). The uninterned symbol can be bound and referred to just like any other symbol, but since it is created by `for', we know that it cannot already appear in the user's program. Since it is not interned, there is no way the user can put it into the @@ -272,7 +274,7 @@ Evaluating Macro Arguments in Expansion Another problem can happen if you evaluate any of the macro argument expressions during the computation of the expansion, such as by calling -`eval' (*note Eval::). If the argument is supposed to refer to the +`eval' (*note Eval::.). If the argument is supposed to refer to the user's variables, you may have trouble if the user happens to use a variable with the same name as one of the macro arguments. Inside the macro body, the macro argument binding is the most local binding of this @@ -327,7 +329,7 @@ example: (defmacro empty-object () (list 'quote (cons nil nil))) - + (defun initialize (condition) (let ((object (empty-object))) (if condition @@ -456,7 +458,7 @@ and add your group to each of them using the `:group' keyword. The way to declare new customization groups is with `defgroup'. - - Macro: defgroup group members doc [keyword value]... + - Macro: defgroup GROUP MEMBERS DOC [KEYWORD VALUE]... Declare GROUP as a customization group containing MEMBERS. Do not quote the symbol GROUP. The argument DOC specifies the documentation string for the group. @@ -472,7 +474,7 @@ and add your group to each of them using the `:group' keyword. are `custom-variable' for a variable, `custom-face' for a face, and `custom-group' for a group. - In addition to the common keywords (*note Common Keywords::), you + In addition to the common keywords (*note Common Keywords::.), you can use this keyword in `defgroup': `:prefix PREFIX' @@ -490,7 +492,7 @@ Defining Customization Variables Use `defcustom' to declare user-editable variables. - - Macro: defcustom option default doc [keyword value]... + - Macro: defcustom OPTION DEFAULT DOC [KEYWORD VALUE]... Declare OPTION as a customizable user option variable. Do not quote OPTION. The argument DOC specifies the documentation string for the variable. @@ -619,7 +621,7 @@ example: symbol, one of the customization type names defined in the following sections. After this symbol come a number of arguments, depending on the symbol. Between the type symbol and its arguments, you can -optionally write keyword-value pairs (*note Type Keywords::). +optionally write keyword-value pairs (*note Type Keywords::.). Some of the type symbols do not use any arguments; those are called "simple types". For a simple type, if you do not use any keyword-value @@ -1005,7 +1007,7 @@ the forms are function definitions and variable definitions. * Autoload:: Setting up a function to autoload. * Repeated Loading:: Precautions about loading a file twice. * Named Features:: Loading a library if it isn't already loaded. -* Unloading:: How to ``unload'' a library that was loaded. +* Unloading:: How to "unload" a library that was loaded. * Hooks for Loading:: Providing code to be run when particular libraries are loaded. @@ -1018,11 +1020,11 @@ How Programs Do Loading XEmacs Lisp has several interfaces for loading. For example, `autoload' creates a placeholder object for a function in a file; trying to call the autoloading function loads the file to get the -function's real definition (*note Autoload::). `require' loads a file -if it isn't already loaded (*note Named Features::). Ultimately, all +function's real definition (*note Autoload::.). `require' loads a file +if it isn't already loaded (*note Named Features::.). Ultimately, all these facilities call the `load' function to do the work. - - Function: load filename &optional missing-ok nomessage nosuffix + - Function: load FILENAME &optional MISSING-OK NOMESSAGE NOSUFFIX This function finds and opens a file of Lisp code, evaluates all the forms in it, and closes the file. @@ -1127,7 +1129,7 @@ these facilities call the `load' function to do the work. should bind `load-path' locally with `let' around the calls to `load'. - - Function: locate-file filename path-list &optional suffixes mode + - Function: locate-file FILENAME PATH-LIST &optional SUFFIXES MODE This function searches for a file in the same way that `load' does, and returns the file found (if any). (In fact, `load' uses this function to search through `load-path'.) It searches for FILENAME @@ -1142,7 +1144,7 @@ these facilities call the `load' function to do the work. you will have to call `locate-file-clear-hashing' to get it back on track. See that function for details. - - Function: locate-file-clear-hashing path + - Function: locate-file-clear-hashing PATH This function clears the hash records for the specified list of directories. `locate-file' uses a hashing scheme to speed lookup, and will correctly track the following environmental changes: diff --git a/info/lispref.info-12 b/info/lispref.info-12 index 326fc16..465a8b9 100644 --- a/info/lispref.info-12 +++ b/info/lispref.info-12 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -71,8 +71,8 @@ arranges to execute them when Emacs is built. Magic comments are the most convenient way to make a function autoload, but only for packages installed along with Emacs. - - Function: autoload function filename &optional docstring interactive - type + - Function: autoload FUNCTION FILENAME &optional DOCSTRING INTERACTIVE + TYPE This function defines the function (or macro) named FUNCTION so as to load automatically from FILENAME. The string FILENAME specifies the file to load to get the real definition of FUNCTION. @@ -118,7 +118,7 @@ installed along with Emacs. In this case, `"prolog"' is the name of the file to load, 169681 refers to the documentation string in the `DOC' file (*note - Documentation Basics::), `t' means the function is interactive, + Documentation Basics::.), `t' means the function is interactive, and `nil' that it is not a macro or a keymap. The autoloaded file usually contains other definitions and may @@ -150,7 +150,7 @@ for all files in the current directory. The same magic comment can copy any kind of form into `loaddefs.el'. If the form following the magic comment is not a function definition, it is copied verbatim. You can also use a magic comment to execute a -form at build time _without_ executing it when the file itself is +form at build time *without* executing it when the file itself is loaded. To do this, write the form "on the same line" as the magic comment. Since it is in a comment, it does nothing when you load the source file; but `update-file-autoloads' copies it to `loaddefs.el', @@ -216,7 +216,7 @@ avoid the problem, write this: (cons '(leif-mode " Leif") minor-mode-alist))) To add an element to a list just once, use `add-to-list' (*note -Setting Variables::). +Setting Variables::.). Occasionally you will want to test explicitly whether a library has already been loaded. Here's one way to test, in a library, whether it @@ -281,7 +281,7 @@ This adds `comint' to the global `features' list, so that `(require 'comint)' will henceforth know that nothing needs to be done. When `require' is used at top level in a file, it takes effect when -you byte-compile that file (*note Byte Compilation::) as well as when +you byte-compile that file (*note Byte Compilation::.) as well as when you load it. This is in case the required package contains macros that the byte compiler must know about. @@ -300,7 +300,7 @@ loading the file in question. Loading the file does execute the `provide' call, so the subsequent `require' call does nothing while loading. - - Function: provide feature + - Function: provide FEATURE This function announces that FEATURE is now loaded, or being loaded, into the current XEmacs session. This means that the facilities associated with FEATURE are or will be available for @@ -323,7 +323,7 @@ loading. or `provide' calls that occurred during the load are undone. *Note Autoload::. - - Function: require feature &optional filename + - Function: require FEATURE &optional FILENAME This function checks whether FEATURE is present in the current XEmacs session (using `(featurep FEATURE)'; see below). If it is not, then `require' loads FILENAME with `load'. If FILENAME is @@ -333,7 +333,7 @@ loading. If loading the file fails to provide FEATURE, `require' signals an error, `Required feature FEATURE was not provided'. - - Function: featurep fexp + - Function: featurep FEXP This function returns `t' if feature FEXP is present in this Emacs. Use this to conditionalize execution of lisp code based on the presence or absence of emacs or environment extensions. @@ -396,7 +396,7 @@ Unloading reclaim memory for other Lisp objects. To do this, use the function `unload-feature': - - Command: unload-feature feature &optional force + - Command: unload-feature FEATURE &optional FORCE This command unloads the library that provided feature FEATURE. It undefines all functions, macros, and variables defined in that library with `defconst', `defvar', `defun', `defmacro', @@ -564,11 +564,11 @@ Macros::. load the file. But it does execute any `require' calls at top level in the file. One way to ensure that necessary macro definitions are available during compilation is to `require' the file that defines them -(*note Named Features::). To avoid loading the macro definition files -when someone _runs_ the compiled program, write `eval-when-compile' -around the `require' calls (*note Eval During Compile::). +(*note Named Features::.). To avoid loading the macro definition files +when someone *runs* the compiled program, write `eval-when-compile' +around the `require' calls (*note Eval During Compile::.). - - Function: byte-compile symbol + - Function: byte-compile SYMBOL This function byte-compiles the function definition of SYMBOL, replacing the previous definition with the compiled one. The function definition of SYMBOL must be the actual code for the @@ -603,7 +603,7 @@ around the `require' calls (*note Eval During Compile::). except for certain primitives that are coded as special instructions. - - Command: compile-defun &optional arg + - Command: compile-defun &optional ARG This command reads the defun containing point, compiles it, and evaluates the result. If you use this on a defun that is actually a function definition, the effect is to install a compiled version @@ -612,7 +612,7 @@ around the `require' calls (*note Eval During Compile::). If ARG is non-`nil', the result is inserted in the current buffer after the form; otherwise, it is printed in the minibuffer. - - Command: byte-compile-file filename &optional load + - Command: byte-compile-file FILENAME &optional LOAD This function compiles a file of Lisp code named FILENAME into a file of byte-code. The output file's name is made by appending `c' to the end of FILENAME. @@ -640,7 +640,7 @@ around the `require' calls (*note Eval During Compile::). -rw-r--r-- 1 lewis 791 Oct 5 20:31 push.el -rw-r--r-- 1 lewis 638 Oct 8 20:25 push.elc - - Command: byte-recompile-directory directory &optional flag + - Command: byte-recompile-directory DIRECTORY &optional FLAG This function recompiles every `.el' file in DIRECTORY that needs recompilation. A file needs recompilation if a `.elc' file exists but is older than the `.el' file. @@ -672,7 +672,7 @@ around the `require' calls (*note Eval During Compile::). normally `nil', but is bound to `t' by `batch-byte-recompile-directory'. - - Function: byte-code instructions constants stack-size + - Function: byte-code INSTRUCTIONS CONSTANTS STACK-SIZE This function actually interprets byte-code. Don't call this function yourself. Only the byte compiler knows how to generate valid calls to this function. @@ -786,7 +786,7 @@ files with file-local variable bindings, like this: If this is non-`nil', the byte compiler generates compiled files that are set up for dynamic function loading. - - Function: fetch-bytecode function + - Function: fetch-bytecode FUNCTION This immediately finishes loading the definition of FUNCTION from its byte-compiled file, if it is not fully loaded already. The argument FUNCTION may be a compiled-function object or a function @@ -801,7 +801,7 @@ Evaluation During Compilation These features permit you to write code to be evaluated during compilation of a program. - - Special Form: eval-and-compile body + - Special Form: eval-and-compile BODY This form marks BODY to be evaluated both when you compile the containing code and when you run it (whether compiled or not). @@ -810,7 +810,7 @@ compilation of a program. preferable if there is a substantial amount of code to be executed in this way. - - Special Form: eval-when-compile body + - Special Form: eval-when-compile BODY This form marks BODY to be evaluated at compile time and not when the compiled program is loaded. The result of evaluation by the compiler becomes a constant which appears in the compiled program. @@ -862,7 +862,7 @@ DOC-STRING The documentation string (if any); otherwise, `nil'. The value may be a number or a list, in case the documentation string is stored in a file. Use the function `documentation' to get the real - documentation string (*note Accessing Documentation::). + documentation string (*note Accessing Documentation::.). INTERACTIVE The interactive spec (if any). This can be a string or a Lisp @@ -886,13 +886,13 @@ representation. It is the definition of the command `backward-sexp'. The primitive way to create a compiled-function object is with `make-byte-code': - - Function: make-byte-code arglist instructions constants stack-size - &optional doc-string interactive + - Function: make-byte-code ARGLIST INSTRUCTIONS CONSTANTS STACK-SIZE + &optional DOC-STRING INTERACTIVE This function constructs and returns a compiled-function object with the specified attributes. - _Please note:_ Unlike all other Emacs-lisp functions, calling this - with five arguments is _not_ the same as calling it with six + *Please note:* Unlike all other Emacs-lisp functions, calling this + with five arguments is *not* the same as calling it with six arguments, the last of which is `nil'. If the INTERACTIVE arg is specified as `nil', then that means that this function was defined with `(interactive)'. If the arg is not specified, then that means @@ -909,34 +909,34 @@ byte compiler to create these objects; it makes the elements consistent The following primitives are provided for accessing the elements of a compiled-function object. - - Function: compiled-function-arglist function + - Function: compiled-function-arglist FUNCTION This function returns the argument list of compiled-function object FUNCTION. - - Function: compiled-function-instructions function + - Function: compiled-function-instructions FUNCTION This function returns a string describing the byte-code instructions of compiled-function object FUNCTION. - - Function: compiled-function-constants function + - Function: compiled-function-constants FUNCTION This function returns the vector of Lisp objects referenced by compiled-function object FUNCTION. - - Function: compiled-function-stack-size function + - Function: compiled-function-stack-size FUNCTION This function returns the maximum stack size needed by compiled-function object FUNCTION. - - Function: compiled-function-doc-string function + - Function: compiled-function-doc-string FUNCTION This function returns the doc string of compiled-function object FUNCTION, if available. - - Function: compiled-function-interactive function + - Function: compiled-function-interactive FUNCTION This function returns the interactive spec of compiled-function object FUNCTION, if any. The return value is `nil' or a two-element list, the first element of which is the symbol `interactive' and the second element is the interactive spec (a string or Lisp form). - - Function: compiled-function-domain function + - Function: compiled-function-domain FUNCTION This function returns the domain of compiled-function object FUNCTION, if any. The result will be a string or `nil'. *Note Domain Specification::. @@ -961,7 +961,7 @@ returns it as the value of the function. ordinary Lisp variables, by transferring values between variables and the stack. - - Command: disassemble object &optional stream + - Command: disassemble OBJECT &optional STREAM This function prints the disassembled code for OBJECT. If STREAM is supplied, then output goes there. Otherwise, the disassembled code is printed to the stream `standard-output'. The argument diff --git a/info/lispref.info-13 b/info/lispref.info-13 index 3d16406..a6e7a58 100644 --- a/info/lispref.info-13 +++ b/info/lispref.info-13 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -150,7 +150,7 @@ and then step through the function, or you can do this to a function called shortly before the problem, step quickly over the call to that function, and then step through its caller. - - Command: debug-on-entry function-name + - Command: debug-on-entry FUNCTION-NAME This function requests FUNCTION-NAME to invoke the debugger each time it is called. It works by inserting the form `(debug 'debug)' into the function definition as the first form. @@ -197,7 +197,7 @@ function, and then step through its caller. (debug (quote debug)) (if (zerop n) 1 (* n (fact (1- n))))) - - Command: cancel-debug-on-entry function-name + - Command: cancel-debug-on-entry FUNCTION-NAME This function undoes the effect of `debug-on-entry' on FUNCTION-NAME. When called interactively, it prompts for FUNCTION-NAME in the minibuffer. If FUNCTION-NAME is `nil' or the @@ -223,7 +223,7 @@ file! additional form can be evaluated and its value ignored. (If the value of `(debug)' isn't ignored, it will alter the execution of the program!) The most common suitable places are inside a `progn' or an -implicit `progn' (*note Sequencing::). +implicit `progn' (*note Sequencing::.).  File: lispref.info, Node: Using Debugger, Next: Debugger Commands, Prev: Explicit Debug, Up: Debugger @@ -245,7 +245,7 @@ usual XEmacs editing commands are available; thus, you can switch windows to examine the buffer that was being edited at the time of the error, switch buffers, visit files, or do any other sort of editing. However, the debugger is a recursive editing level (*note Recursive -Editing::) and it is wise to go back to the backtrace buffer and exit +Editing::.) and it is wise to go back to the backtrace buffer and exit the debugger (with the `q' command) when you are finished with it. Exiting the debugger gets out of the recursive edit and kills the backtrace buffer. @@ -366,7 +366,7 @@ Invoking the Debugger Here we describe fully the function used to invoke the debugger. - - Function: debug &rest debugger-args + - Function: debug &rest DEBUGGER-ARGS This function enters the debugger. It switches buffers to a buffer named `*Backtrace*' (or `*Backtrace*<2>' if it is the second recursive entry to the debugger, etc.), and fills it with @@ -468,7 +468,7 @@ debugger. was called. The convention for arguments is detailed in the description of `debug'. - - Command: backtrace &optional stream detailed + - Command: backtrace &optional STREAM DETAILED This function prints a trace of Lisp function calls currently active. This is the function used by `debug' to fill up the `*Backtrace*' buffer. It is written in C, since it must have @@ -497,7 +497,7 @@ debugger. (list 'testing (backtrace)))))))) => nil - + ----------- Buffer: backtrace-output ------------ backtrace() (list ...computing arguments...) @@ -523,7 +523,7 @@ debugger. The `d' command in the debugger works by setting this variable. - - Function: backtrace-debug level flag + - Function: backtrace-debug LEVEL FLAG This function sets the debug-on-exit flag of the stack frame LEVEL levels down the stack, giving it the value FLAG. If FLAG is non-`nil', this will cause the debugger to be entered when that @@ -543,7 +543,7 @@ debugger. another global variable is that the data will never carry over to a subsequent command invocation. - - Function: backtrace-frame frame-number + - Function: backtrace-frame FRAME-NUMBER The function `backtrace-frame' is intended for use in Lisp debuggers. It returns information about what computation is happening in the stack frame FRAME-NUMBER levels down. @@ -676,7 +676,7 @@ in `M-x list-buffers'.) This buffer contains the program being compiled, and point shows how far the byte compiler was able to read. If the error was due to invalid Lisp syntax, point shows exactly -where the invalid syntax was _detected_. The cause of the error is not +where the invalid syntax was *detected*. The cause of the error is not necessarily near by! Use the techniques in the previous section to find the error. @@ -721,7 +721,6 @@ provides the following features: * Provide rudimentary coverage testing and display of frequency counts. - The first three sections should tell you enough about Edebug to enable you to use it. @@ -829,14 +828,14 @@ redefined so that when invoked with a prefix argument on a definition, it instruments the definition before evaluating it. (The source code itself is not modified.) If the variable `edebug-all-defs' is non-`nil', that inverts the meaning of the prefix argument: then -`C-M-x' instruments the definition _unless_ it has a prefix argument. +`C-M-x' instruments the definition *unless* it has a prefix argument. The default value of `edebug-all-defs' is `nil'. The command `M-x edebug-all-defs' toggles the value of the variable `edebug-all-defs'. If `edebug-all-defs' is non-`nil', then the commands `eval-region', `eval-current-buffer', and `eval-buffer' also instrument any definitions they evaluate. Similarly, `edebug-all-forms' controls -whether `eval-region' should instrument _any_ form, even non-defining +whether `eval-region' should instrument *any* form, even non-defining forms. This doesn't apply to loading or evaluations in the minibuffer. The command `M-x edebug-all-forms' toggles this option. diff --git a/info/lispref.info-14 b/info/lispref.info-14 index 6d73d79..ab58b3b 100644 --- a/info/lispref.info-14 +++ b/info/lispref.info-14 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -321,7 +321,7 @@ Tracing ------- In addition to automatic stepping through source code, which is also -called _tracing_ (see *Note Edebug Execution Modes::), Edebug can +called *tracing* (see *Note Edebug Execution Modes::), Edebug can produce a traditional trace listing of execution in a separate buffer, `*edebug-trace*'. @@ -418,7 +418,7 @@ for the evaluation. But Edebug is not completely successful and this section explains precisely how it fails. Edebug operation unavoidably alters some data in XEmacs, and this can interfere with debugging certain programs. Also notice that Edebug's protection against change -of outside data means that any side effects _intended_ by the user in +of outside data means that any side effects *intended* by the user in the course of debugging will be defeated. * Menu: @@ -444,7 +444,6 @@ action, it needs to save and restore certain data. Edebug is active, `executing-macro' is bound to `edebug-continue-kbd-macro'. -  File: lispref.info, Node: Edebug Display Update, Next: Edebug Recursive Edit, Prev: Checking Whether to Stop, Up: The Outside Context @@ -472,7 +471,7 @@ error or quit signal occurs. * The Edebug Display Update, is saved and restored if `edebug-save-windows' is non-`nil'. It is not restored on error - or quit, but the outside selected window _is_ reselected even on + or quit, but the outside selected window *is* reselected even on error or quit in case a `save-excursion' is active. If the value of `edebug-save-windows' is a list, only the listed windows are saved and restored. @@ -491,7 +490,6 @@ error or quit signal occurs. * `cursor-in-echo-area' is locally bound to `nil' so that the cursor shows up in the window. -  File: lispref.info, Node: Edebug Recursive Edit, Prev: Edebug Display Update, Up: The Outside Context @@ -533,7 +531,6 @@ saves (and later restores) these additional data: While Edebug is active, `defining-kbd-macro' is bound to `edebug-continue-kbd-macro'. -  File: lispref.info, Node: Instrumenting Macro Calls, Next: Edebug Options, Prev: The Outside Context, Up: Edebug @@ -548,7 +545,7 @@ the resulting expansion is evaluated, or any time later.) You must explain the format of macro call arguments by using `def-edebug-spec' to define an "Edebug specification" for each macro. - - Macro: def-edebug-spec macro specification + - Macro: def-edebug-spec MACRO SPECIFICATION Specify which expressions of a call to macro MACRO are forms to be evaluated. For simple macros, the SPECIFICATION often looks very similar to the formal argument list of the macro definition, but diff --git a/info/lispref.info-15 b/info/lispref.info-15 index 83f51b4..cbd6338 100644 --- a/info/lispref.info-15 +++ b/info/lispref.info-15 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -203,12 +203,12 @@ value of `standard-input'. An `end-of-file' error is signaled if reading encounters an unterminated list, vector, or string. - - Function: read &optional stream + - Function: read &optional STREAM This function reads one textual Lisp expression from STREAM, returning it as a Lisp object. This is the basic Lisp input function. - - Function: read-from-string string &optional start end + - Function: read-from-string STRING &optional START END This function reads the first textual Lisp expression from the text in STRING. It returns a cons cell whose CAR is that expression, and whose CDR is an integer giving the position of the @@ -336,7 +336,7 @@ of point, shown in the usual fashion, has no effect. Finally, we show the use of a function as an output stream. The function `eat-output' takes each character that it is given and conses -it onto the front of the list `last-output' (*note Building Lists::). +it onto the front of the list `last-output' (*note Building Lists::.). At the end, the list contains all the characters output, but in reverse order. @@ -402,7 +402,7 @@ the current print operation: the previous section for a description of output streams.) If STREAM is `nil' or omitted, it defaults to the value of `standard-output'. - - Function: print object &optional stream + - Function: print OBJECT &optional STREAM The `print' function is a convenient way of printing. It outputs the printed representation of OBJECT to STREAM, printing in addition one newline before OBJECT and another after it. Quoting @@ -420,7 +420,7 @@ is `nil' or omitted, it defaults to the value of `standard-output'. -| => " came back" - - Function: prin1 object &optional stream + - Function: prin1 OBJECT &optional STREAM This function outputs the printed representation of OBJECT to STREAM. It does not print newlines to separate output as `print' does, but it does use quoting characters just like `print'. It @@ -432,7 +432,7 @@ is `nil' or omitted, it defaults to the value of `standard-output'. -| The\ cat\ in"the hat"" came back" => " came back" - - Function: princ object &optional stream + - Function: princ OBJECT &optional STREAM This function outputs the printed representation of OBJECT to STREAM. It returns OBJECT. @@ -447,14 +447,14 @@ is `nil' or omitted, it defaults to the value of `standard-output'. -| The cat in the "hat" => " in the \"hat\"" - - Function: terpri &optional stream + - Function: terpri &optional STREAM This function outputs a newline to STREAM. The name stands for "terminate print". - - Function: write-char character &optional stream + - Function: write-char CHARACTER &optional STREAM This function outputs CHARACTER to STREAM. It returns CHARACTER. - - Function: prin1-to-string object &optional noescape + - Function: prin1-to-string OBJECT &optional NOESCAPE This function returns a string containing the text that `prin1' would have printed for the same argument. @@ -517,7 +517,7 @@ Variables Affecting Output objects will be written in `#[...]' form instead of in `#' form, and two-element lists of the form `(quote object)' will be written as the equivalent `'object'. - Do not _set_ this variable; bind it instead. + Do not *set* this variable; bind it instead. - Variable: print-length The value of this variable is the maximum number of elements of a @@ -613,6 +613,7 @@ 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.  @@ -622,12 +623,12 @@ Introduction to Minibuffers =========================== In most ways, a minibuffer is a normal XEmacs buffer. Most -operations _within_ a buffer, such as editing commands, work normally +operations *within* a buffer, such as editing commands, work normally in a minibuffer. However, many operations for managing buffers do not apply to minibuffers. The name of a minibuffer always has the form ` *Minibuf-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 *Note Minibuffers and Frames::.) @@ -649,14 +650,11 @@ forbid recursive minibuffers by setting the variable `enable-recursive-minibuffers'. Like other buffers, a minibuffer may use any of several local keymaps -(*note Keymaps::); these contain various exit commands and in some cases -completion commands (*note Completion::). +(*note Keymaps::.); these contain various exit commands and in some +cases completion commands (*note Completion::.). * `minibuffer-local-map' is for ordinary input (no completion). - * `minibuffer-local-ns-map' is similar, except that exits just - like . This is used mainly for Mocklisp compatibility. - * `minibuffer-local-completion-map' is for permissive completion. * `minibuffer-local-must-match-map' is for strict completion and for @@ -678,12 +676,12 @@ middle of a Lisp function. Instead, do all minibuffer input as part of reading the arguments for a command, in the `interactive' spec. *Note Defining Commands::. - - Function: read-from-minibuffer prompt-string &optional - initial-contents keymap read hist + - Function: 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 READ is non-`nil', then it uses `read' to - convert the text into a Lisp object (*note Input Functions::). + convert the text into a Lisp object (*note Input Functions::.). The first thing this function does is to activate a minibuffer and display it with PROMPT-STRING as the prompt. This value must be a @@ -698,12 +696,25 @@ Defining Commands::. minibuffer but put point POSITION characters from the beginning, rather than at the end. + When the user types a command to exit the minibuffer, + `read-from-minibuffer' constructs the return value from the text in + the minibuffer. Normally it returns a string containing that text. + However, if READ is non-`nil', `read-from-minibuffer' reads the + text and returns the resulting Lisp object, unevaluated. (*Note + Input Functions::, for information about reading.) + + The argument DEFAULT specifies a default value to make available + through the history commands. It should be a string, or `nil'. + If KEYMAP is non-`nil', that keymap is the local keymap to use in the minibuffer. If KEYMAP is omitted or `nil', the value of `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 ABBREV-TABLE specifies `local-abbrev-table' in the + minibuffer (*note Standard Abbrev Tables::.). + The argument HIST specifies which history list variable to use for saving the input and for history commands used in the minibuffer. It defaults to `minibuffer-history'. *Note Minibuffer History::. @@ -715,13 +726,25 @@ Defining Commands::. reads the text and returns the resulting Lisp object, unevaluated. (*Note Input Functions::, for information about reading.) - - Function: read-string prompt &optional initial + *Usage note:* The INITIAL-CONTENTS argument and the 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 `read-from-minibuffer'. In general, we recommend using + 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, INITIAL-CONTENTS may be preferred. + + - Function: read-string PROMPT &optional INITIAL HISTORY This function reads a string from the minibuffer and returns it. The arguments PROMPT and INITIAL are used as in `read-from-minibuffer'. The keymap used is `minibuffer-local-map'. - This is a simplified interface to the `read-from-minibuffer' - function: + The optional argument HISTORY, if non-nil, specifies a history + list and optionally the initial position in the list. + + This function is a simplified interface to the + `read-from-minibuffer' function: (read-string PROMPT INITIAL) == @@ -731,7 +754,7 @@ Defining Commands::. This is the default local keymap for reading from the minibuffer. By default, it makes the following bindings: - + `C-j' `exit-minibuffer' @@ -752,37 +775,6 @@ Defining Commands::. `M-s' `previous-matching-history-element' - - Function: 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 PROMPT and INITIAL - are used as in `read-from-minibuffer'. - - This is a simplified interface to the `read-from-minibuffer' - function, and passes the value of the `minibuffer-local-ns-map' - keymap as the KEYMAP argument for that function. Since the keymap - `minibuffer-local-ns-map' does not rebind `C-q', it _is_ possible - to put a space into the string, by quoting it. - - (read-no-blanks-input PROMPT INITIAL) - == - (read-from-minibuffer PROMPT INITIAL minibuffer-local-ns-map) - - - Variable: minibuffer-local-ns-map - This built-in variable is the keymap used as the minibuffer local - keymap in the function `read-no-blanks-input'. By default, it - makes the following bindings, in addition to those of - `minibuffer-local-map': - - - `exit-minibuffer' - - - `exit-minibuffer' - - `?' - `self-insert-and-exit' -  File: lispref.info, Node: Object from Minibuffer, Next: Minibuffer History, Prev: Text from Minibuffer, Up: Minibuffers @@ -792,10 +784,10 @@ Reading Lisp Objects with the Minibuffer This section describes functions for reading Lisp objects with the minibuffer. - - Function: read-minibuffer prompt &optional initial - This function reads a Lisp object in the minibuffer and returns it, - without evaluating it. The arguments PROMPT and INITIAL are used - as in `read-from-minibuffer'. + - Function: read-minibuffer PROMPT &optional INITIAL + This function reads a Lisp object using the minibuffer, and + returns it without evaluating it. The arguments PROMPT and + INITIAL are used as in `read-from-minibuffer'. This is a simplified interface to the `read-from-minibuffer' function: @@ -811,7 +803,7 @@ minibuffer. "Enter an expression: " (format "%s" '(testing))) ;; Here is how the minibuffer is displayed: - + ---------- Buffer: Minibuffer ---------- Enter an expression: (testing)-!- ---------- Buffer: Minibuffer ---------- @@ -819,10 +811,10 @@ minibuffer. The user can type immediately to use the initial input as a default, or can edit the input. - - Function: eval-minibuffer prompt &optional initial - This function reads a Lisp expression in the minibuffer, evaluates - it, then returns the result. The arguments PROMPT and INITIAL are - used as in `read-from-minibuffer'. + - Function: eval-minibuffer PROMPT &optional INITIAL + This function reads a Lisp expression using the minibuffer, + evaluates it, then returns the result. The arguments PROMPT and + INITIAL are used as in `read-from-minibuffer'. This function simply evaluates the result of a call to `read-minibuffer': @@ -831,7 +823,7 @@ minibuffer. == (eval (read-minibuffer PROMPT INITIAL)) - - Function: edit-and-eval-command prompt form + - Function: edit-and-eval-command PROMPT FORM This function reads a Lisp expression in the minibuffer, and then evaluates it. The difference between this command and `eval-minibuffer' is that here the initial FORM is not optional @@ -842,10 +834,10 @@ minibuffer. The first thing `edit-and-eval-command' does is to activate the minibuffer with PROMPT as the prompt. Then it inserts the printed - representation of FORM in the minibuffer, and lets the user edit. - When the user exits the minibuffer, the edited text is read with - `read' and then evaluated. The resulting value becomes the value - of `edit-and-eval-command'. + representation of FORM in the minibuffer, and lets the user edit + it. When the user exits the minibuffer, the edited text is read + with `read' and then evaluated. The resulting value becomes the + value of `edit-and-eval-command'. In the following example, we offer the user an expression with initial text which is a valid form already: @@ -854,7 +846,7 @@ minibuffer. ;; After evaluation of the preceding expression, ;; the following appears in the minibuffer: - + ---------- Buffer: Minibuffer ---------- Please edit: (forward-word 1)-!- ---------- Buffer: Minibuffer ---------- @@ -905,6 +897,8 @@ 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: + - Variable: minibuffer-history The default history list for minibuffer history input. @@ -989,7 +983,7 @@ nothing in themselves to do with minibuffers. We describe them in this chapter so as to keep them near the higher-level completion features that do use the minibuffer. - - Function: try-completion string collection &optional predicate + - Function: try-completion STRING COLLECTION &optional PREDICATE This function returns the longest common substring of all possible completions of STRING in COLLECTION. The value of COLLECTION must be an alist, an obarray, or a function that implements a virtual @@ -1004,10 +998,10 @@ that do use the minibuffer. longest initial sequence common to all the permissible completions that match. - If COLLECTION is an alist (*note Association Lists::), the CARs of - the alist elements form the set of permissible completions. + If COLLECTION is an alist (*note Association Lists::.), the CARs + of the alist elements form the set of permissible completions. - If COLLECTION is an obarray (*note Creating Symbols::), the names + If COLLECTION is an obarray (*note Creating Symbols::.), the names of all symbols in the obarray form the set of permissible completions. The global variable `obarray' holds an obarray containing the names of all interned Lisp symbols. @@ -1020,7 +1014,7 @@ that do use the minibuffer. of one argument. It is used to test each possible match, and the match is accepted only if PREDICATE returns non-`nil'. The argument given to PREDICATE is either a cons cell from the alist - (the CAR of which is a string) or else it is a symbol (_not_ a + (the CAR of which is a string) or else it is a symbol (*not* a symbol name) from the obarray. You can also use a symbol that is a function as COLLECTION. Then @@ -1041,7 +1035,7 @@ that do use the minibuffer. "foo" '(("foobar1" 1) ("barfoo" 2) ("foobaz" 3) ("foobar2" 4))) => "fooba" - + (try-completion "foo" '(("barfoo" 2) ("foo" 3))) => t @@ -1060,16 +1054,17 @@ that do use the minibuffer. (defun test (s) (> (length (car s)) 6)) => test + (try-completion "foo" '(("foobar1" 1) ("barfoo" 2) ("foobaz" 3) ("foobar2" 4)) 'test) => "foobar" - - Function: all-completions string collection &optional predicate - nospace + - Function: all-completions STRING COLLECTION &optional PREDICATE + NOSPACE This function returns a list of all possible completions of - STRING. The parameters to this function are the same as to + STRING. The arguments to this function are the same as those of `try-completion'. If COLLECTION is a function, it is called with three arguments: @@ -1085,7 +1080,7 @@ that do use the minibuffer. (defun test (s) (> (length (car s)) 6)) => test - + (all-completions "foo" '(("foobar1" 1) ("barfoo" 2) ("foobaz" 3) ("foobar2" 4)) @@ -1105,8 +1100,8 @@ Completion and the Minibuffer This section describes the basic interface for reading from the minibuffer with completion. - - Function: completing-read prompt collection &optional predicate - require-match initial hist + - Function: 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 PROMPT, which must be a string. If INITIAL is non-`nil', @@ -1125,11 +1120,17 @@ minibuffer with completion. COLLECTION. If REQUIRE-MATCH is `nil', the exit commands work regardless of the input in the minibuffer. + However, empty input is always permitted, regardless of the value + of REQUIRE-MATCH; in that case, `completing-read' returns DEFAULT. + The value of DEFAULT (if non-`nil') is also available to the user + through the history commands. + The user can exit with null input by typing with an empty - minibuffer. Then `completing-read' returns `nil'. This is how - the user requests whatever default the command uses for the value - being read. The user can return using in this way regardless - of the value of REQUIRE-MATCH. + minibuffer. Then `completing-read' returns `""'. This is how the + user requests whatever default the command uses for the value being + read. The user can return using in this way regardless of + the value of REQUIRE-MATCH, and regardless of whether the empty + string is included in COLLECTION. The function `completing-read' works by calling `read-minibuffer'. It uses `minibuffer-local-completion-map' as the keymap if @@ -1150,7 +1151,7 @@ minibuffer with completion. "Complete a foo: " '(("foobar1" 1) ("barfoo" 2) ("foobaz" 3) ("foobar2" 4)) nil t "fo") - + ;; After evaluation of the preceding expression, ;; the following appears in the minibuffer: @@ -1192,7 +1193,7 @@ the minibuffer to do completion. `minibuffer-complete' with other characters bound as in `minibuffer-local-map' (*note - Text from Minibuffer::). + Text from Minibuffer::.). - Variable: minibuffer-local-must-match-map `completing-read' uses this value as the local keymap when an @@ -1210,7 +1211,7 @@ the minibuffer to do completion. `minibuffer-complete' - + `C-j' `minibuffer-complete-and-exit' @@ -1243,10 +1244,10 @@ the minibuffer to do completion. - Command: minibuffer-complete-and-exit This function completes the minibuffer contents, and exits if confirmation is not required, i.e., if - `minibuffer-completion-confirm' is non-`nil'. If confirmation - _is_ required, it is given by repeating this command - immediately--the command is programmed to work without confirmation - when run twice in succession. + `minibuffer-completion-confirm' is `nil'. If confirmation *is* + required, it is given by repeating this command immediately--the + command is programmed to work without confirmation when run twice + in succession. - Variable: minibuffer-completion-confirm When the value of this variable is non-`nil', XEmacs asks for @@ -1263,7 +1264,7 @@ the minibuffer to do completion. list of completions is displayed as text in a buffer named `*Completions*'. - - Function: display-completion-list completions + - Function: display-completion-list COMPLETIONS This function displays COMPLETIONS to the stream in `standard-output', usually a buffer. (*Note Read and Print::, for more information about streams.) The argument COMPLETIONS is diff --git a/info/lispref.info-16 b/info/lispref.info-16 index cea78a6..ebcc24a 100644 --- a/info/lispref.info-16 +++ b/info/lispref.info-16 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -63,7 +63,7 @@ Lisp function. When possible, do all minibuffer input as part of reading the arguments for a command, in the `interactive' spec. *Note Defining Commands::. - - Function: read-buffer prompt &optional default existing + - Function: read-buffer PROMPT &optional DEFAULT EXISTING This function reads the name of a buffer and returns it as a string. The argument DEFAULT is the default name to use, the value to return if the user exits with an empty minibuffer. If @@ -94,7 +94,7 @@ Defining Commands::. ;; The user types `minibuffer.t '. => "minibuffer.texi" - - Function: read-command prompt + - Function: read-command PROMPT This function reads the name of a command and returns it as a Lisp symbol. The argument PROMPT is used as in `read-from-minibuffer'. Recall that a command is anything for which `commandp' returns @@ -123,7 +123,7 @@ Defining Commands::. (intern (completing-read PROMPT obarray 'commandp t nil)) - - Function: read-variable prompt + - Function: read-variable PROMPT This function reads the name of a user variable and returns it as a symbol. @@ -159,8 +159,8 @@ Reading File Names a file name. It provides special features including automatic insertion of the default directory. - - Function: read-file-name prompt &optional directory default existing - initial + - Function: read-file-name PROMPT &optional DIRECTORY DEFAULT EXISTING + INITIAL This function reads a file name in the minibuffer, prompting with PROMPT and providing completion. If DEFAULT is non-`nil', then the function returns DEFAULT if the user just types . @@ -181,10 +181,10 @@ of the default directory. `default-directory'. If you specify INITIAL, that is an initial file name to insert in - the buffer (after with DIRECTORY, if that is inserted). In this - case, point goes at the beginning of INITIAL. The default for - INITIAL is `nil'--don't insert any file name. To see what INITIAL - does, try the command `C-x C-v'. + the buffer (after DIRECTORY, if that is inserted). In this case, + point goes at the beginning of INITIAL. The default for INITIAL + is `nil'--don't insert any file name. To see what INITIAL does, + try the command `C-x C-v'. Here is an example: @@ -267,8 +267,12 @@ function do all the work. * `nil' specifies `try-completion'. The completion function should return the completion of the specified string, or `t' if the - string is an exact match already, or `nil' if the string matches no - possibility. + string is a unique and exact match already, or `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 `t'. * `t' specifies `all-completions'. The completion function should return a list of all possible completions of the specified string. @@ -309,7 +313,7 @@ question. Otherwise, it uses keyboard input. Strictly speaking, `yes-or-no-p' uses the minibuffer and `y-or-n-p' does not; but it seems best to describe them together. - - Function: y-or-n-p prompt + - Function: y-or-n-p PROMPT This function asks the user a question, expecting input in the echo area. It returns `t' if the user types `y', `nil' if the user types `n'. This function also accepts to mean yes and @@ -327,7 +331,7 @@ does not; but it seems best to describe them together. This function does not actually use the minibuffer, since it does not allow editing of the answer. It actually uses the echo area - (*note The Echo Area::), which uses the same screen space as the + (*note The Echo Area::.), which uses the same screen space as the minibuffer. The cursor moves to the echo area while the question is being asked. @@ -342,20 +346,18 @@ does not; but it seems best to describe them together. ;; After evaluation of the preceding expression, ;; the following prompt appears in the echo area: - + ---------- Echo area ---------- Do you need a lift? (y or n) ---------- Echo area ---------- ;; If the user then types `q', the following appears: - ---------- Echo area ---------- Please answer y or n. Do you need a lift? (y or n) ---------- Echo area ---------- ;; When the user types a valid answer, ;; it is displayed after the question: - ---------- Echo area ---------- Do you need a lift? (y or n) y ---------- Echo area ---------- @@ -363,7 +365,7 @@ does not; but it seems best to describe them together. We show successive lines of echo area messages, but only one actually appears on the screen at a time. - - Function: yes-or-no-p prompt + - Function: yes-or-no-p PROMPT This function asks the user a question, expecting input in the minibuffer. It returns `t' if the user enters `yes', `nil' if the user types `no'. The user must type to finalize the @@ -384,7 +386,7 @@ does not; but it seems best to describe them together. ;; After evaluation of the preceding expression, ;; the following prompt appears, ;; with an empty minibuffer: - + ---------- Buffer: minibuffer ---------- Do you really want to remove everything? (yes or no) ---------- Buffer: minibuffer ---------- @@ -398,7 +400,7 @@ does not; but it seems best to describe them together. Do you really want to remove everything? (yes or no) ---------- Buffer: minibuffer ---------- - - Function: yes-or-no-p-dialog-box prompt + - Function: yes-or-no-p-dialog-box PROMPT This function asks the user a "y or n" question with a popup dialog box. It returns `t' if the answer is "yes". PROMPT is the string to display to ask the question. @@ -410,16 +412,16 @@ running on a window system, the functions `y-or-n-p' and `yes-or-no-p' are replaced with the following functions, so that menu items bring up dialog boxes instead of minibuffer questions. - - Function: y-or-n-p-maybe-dialog-box prompt + - Function: y-or-n-p-maybe-dialog-box PROMPT This function asks user a "y or n" question, using either a dialog box or the minibuffer, as appropriate. - - Function: yes-or-no-p-maybe-dialog-box prompt + - Function: yes-or-no-p-maybe-dialog-box PROMPT This function asks user a "yes or no" question, using either a dialog box or the minibuffer, as appropriate.  -File: lispref.info, Node: Multiple Queries, Next: Minibuffer Misc, Prev: Yes-or-No Queries, Up: Minibuffers +File: lispref.info, Node: Multiple Queries, Next: Reading a Password, Prev: Yes-or-No Queries, Up: Minibuffers Asking Multiple Y-or-N Questions ================================ @@ -430,8 +432,8 @@ want to save this buffer" for each buffer in turn, you should use each question individually. This gives the user certain convenient facilities such as the ability to answer the whole series at once. - - Function: map-y-or-n-p prompter actor list &optional help - action-alist + - Function: map-y-or-n-p PROMPTER ACTOR LIST &optional HELP + ACTION-ALIST This function, new in Emacs 19, asks the user a series of questions, reading a single-character answer in the echo area for each one. @@ -496,7 +498,7 @@ facilities such as the ability to answer the whole series at once. If `map-y-or-n-p' is called in a command that was invoked using the mouse--more precisely, if `last-nonmenu-event' (*note Command Loop - Info::) is either `nil' or a list--then it uses a dialog box or + Info::.) is either `nil' or a list--then it uses a dialog box or pop-up menu to ask the question. In this case, it does not use keyboard input or the echo area. You can force use of the mouse or use of keyboard input by binding `last-nonmenu-event' to a @@ -506,7 +508,40 @@ facilities such as the ability to answer the whole series at once. on.  -File: lispref.info, Node: Minibuffer Misc, Prev: Multiple Queries, Up: Minibuffers +File: lispref.info, Node: Reading a Password, Next: Minibuffer Misc, Prev: Multiple Queries, Up: Minibuffers + +Reading a Password +================== + + To read a password to pass to another program, you can use the +function `read-passwd'. + + - Function: read-passwd PROMPT &optional CONFIRM DEFAULT + This function reads a password, prompting with PROMPT. It does + not echo the password as the user types it; instead, it echoes `.' + for each character in the password. + + The optional argument CONFIRM, if non-`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 DEFAULT specifies the default password to + return if the user enters empty input. It is translated to `.' + and inserted in the minibuffer. If DEFAULT is `nil', then + `read-passwd' returns the null string in that case. + + - User Option: 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 `t' unless feature + `infodock' is provided. + + - User Option: passwd-echo + This specifies the character echoed when typing a password. When + nil, nothing is echoed. + + +File: lispref.info, Node: Minibuffer Misc, Prev: Reading a Password, Up: Minibuffers Minibuffer Miscellany ===================== @@ -521,22 +556,22 @@ minibuffers. - Command: self-insert-and-exit This command exits the active minibuffer after inserting the last character typed on the keyboard (found in `last-command-char'; - *note Command Loop Info::). + *note Command Loop Info::.). - - Command: previous-history-element n + - Command: previous-history-element N This command replaces the minibuffer contents with the value of the Nth previous (older) history element. - - Command: next-history-element n + - Command: next-history-element N This command replaces the minibuffer contents with the value of the Nth more recent history element. - - Command: previous-matching-history-element pattern + - Command: previous-matching-history-element PATTERN This command replaces the minibuffer contents with the value of the previous (older) history element that matches PATTERN (a regular expression). - - Command: next-matching-history-element pattern + - Command: next-matching-history-element PATTERN This command replaces the minibuffer contents with the value of the next (newer) history element that matches PATTERN (a regular expression). @@ -560,20 +595,20 @@ minibuffers. - Variable: minibuffer-help-form The current value of this variable is used to rebind `help-form' - locally inside the minibuffer (*note Help Functions::). + locally inside the minibuffer (*note Help Functions::.). - Function: active-minibuffer-window This function returns the currently active minibuffer window, or `nil' if none is currently active. - - Function: minibuffer-window &optional frame + - Function: minibuffer-window &optional FRAME This function returns the minibuffer window used for frame FRAME. If FRAME is `nil', that stands for the current frame. Note that the minibuffer window used by a frame need not be part of that frame--a frame that has no minibuffer of its own necessarily uses some other frame's minibuffer window. - - Function: window-minibuffer-p window + - Function: window-minibuffer-p WINDOW This function returns non-`nil' if WINDOW is a minibuffer window. It is not correct to determine whether a given window is a @@ -581,7 +616,7 @@ minibuffer by comparing it with the result of `(minibuffer-window)', because there can be more than one minibuffer window if there is more than one frame. - - Function: minibuffer-window-active-p window + - Function: minibuffer-window-active-p WINDOW This function returns non-`nil' if WINDOW, assumed to be a minibuffer window, is currently active. @@ -591,7 +626,7 @@ than one frame. minibuffer, it scrolls this window. Finally, some functions and variables deal with recursive minibuffers -(*note Recursive Editing::): +(*note Recursive Editing::.): - Function: minibuffer-depth This function returns the current depth of activations of the @@ -600,10 +635,10 @@ than one frame. - User Option: enable-recursive-minibuffers If this variable is non-`nil', you can invoke commands (such as - `find-file') that use minibuffers even while in the minibuffer - window. Such invocation produces a recursive editing level for a - new minibuffer. The outer-level minibuffer is invisible while you - are editing the inner one. + `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. This variable only affects invoking the minibuffer while the minibuffer window is selected. If you switch windows while in the @@ -620,8 +655,7 @@ minibuffer. The minibuffer command `next-matching-history-element' want to explicitly set the value of `enable-recursive-minibuffers' in this fashion, just use an evaluated interactive spec and bind `enable-recursive-minibuffers' while reading from the minibuffer. See -the definition of `next-matching-history-element' in -`lisp/prim/minibuf.el'. +the definition of `next-matching-history-element' in `lisp/minibuf.el'.  File: lispref.info, Node: Command Loop, Next: Keymaps, Prev: Minibuffers, Up: Top @@ -643,7 +677,7 @@ are done, and the subroutines that allow Lisp programs to do them. * Events:: What input looks like when you read it. * Reading Input:: How to read input events from the keyboard or mouse. * Waiting:: Waiting for user input or elapsed time. -* Quitting:: How C-g works. How to catch or defer quitting. +* Quitting:: How `C-g' works. How to catch or defer quitting. * Prefix Command Arguments:: How the commands to set prefix args work. * Recursive Editing:: Entering a recursive edit, and why you usually shouldn't. @@ -677,14 +711,14 @@ Key Lookup::, for information on how this is done. The result of the translation should be a keyboard macro or an interactively callable function. If the key is `M-x', then it reads the name of another command, which it then calls. This is done by the command -`execute-extended-command' (*note Interactive Call::). +`execute-extended-command' (*note Interactive Call::.). To execute a command requires first reading the arguments for it. -This is done by calling `command-execute' (*note Interactive Call::). +This is done by calling `command-execute' (*note Interactive Call::.). For commands written in Lisp, the `interactive' specification says how to read the arguments. This may use the prefix argument (*note Prefix -Command Arguments::) or may read with prompting in the minibuffer -(*note Minibuffers::). For example, the command `find-file' has an +Command Arguments::.) or may read with prompting in the minibuffer +(*note Minibuffers::.). For example, the command `find-file' has an `interactive' specification which says to read a file name using the minibuffer. The command's function body does not use the minibuffer; if you call this command from Lisp code as a function, you must supply @@ -692,10 +726,10 @@ the file name string as an ordinary Lisp function argument. If the command is a string or vector (i.e., a keyboard macro) then `execute-kbd-macro' is used to execute it. You can call this function -yourself (*note Keyboard Macros::). +yourself (*note Keyboard Macros::.). To terminate the execution of a running command, type `C-g'. This -character causes "quitting" (*note Quitting::). +character causes "quitting" (*note Quitting::.). - Variable: pre-command-hook The editor command loop runs this normal hook before each command. @@ -742,7 +776,7 @@ Using `interactive' This section describes how to write the `interactive' form that makes a Lisp function an interactively-callable command. - - Special Form: interactive arg-descriptor + - Special Form: interactive ARG-DESCRIPTOR This special form declares that the function in which it appears is a command, and that it may therefore be called interactively (via `M-x' or by entering a key sequence bound to it). The @@ -777,7 +811,7 @@ makes a Lisp function an interactively-callable command. output; if subprocess output arrives while the command is waiting for input, it could relocate point and the mark. - Here's an example of what _not_ to do: + Here's an example of what *not* to do: (interactive (list (region-beginning) (region-end) @@ -809,8 +843,8 @@ makes a Lisp function an interactively-callable command. The prompt string can use `%' to include previous argument values (starting with the first argument) in the prompt. This is done - using `format' (*note Formatting Strings::). For example, here is - how you could read the name of an existing buffer followed by a + using `format' (*note Formatting Strings::.). For example, here + is how you could read the name of an existing buffer followed by a new name to give to that buffer: (interactive "bBuffer to rename: \nsRename buffer %s to: ") @@ -833,7 +867,7 @@ makes a Lisp function an interactively-callable command. prompt string (starting with the first character that is not `*', `@', or `_'). - - Function: function-interactive function + - Function: function-interactive FUNCTION This function retrieves the interactive specification of FUNCTION, which may be any funcallable object. The specification will be returned as the list of the symbol `interactive' and the specs. If @@ -851,7 +885,8 @@ defined here as follows: Completion Provide completion. , , and perform name completion because the argument is read using `completing-read' - (*note Completion::). `?' displays a list of possible completions. + (*note Completion::.). `?' displays a list of possible + completions. Existing Require the name of an existing object. An invalid name is not @@ -899,7 +934,7 @@ Special `b' The name of an existing buffer. By default, uses the name of the - current buffer (*note Buffers::). Existing, Completion, Default, + current buffer (*note Buffers::.). Existing, Completion, Default, Prompt. `B' @@ -915,12 +950,12 @@ Special Completion, Prompt. `d' - The position of point, as an integer (*note Point::). No I/O. + The position of point, as an integer (*note Point::.). No I/O. `D' A directory name. The default is the current default directory of the current buffer, `default-directory' (*note System - Environment::). Existing, Completion, Default, Prompt. + Environment::.). Existing, Completion, Default, Prompt. `e' The last mouse-button or misc-user event in the key sequence that @@ -932,7 +967,7 @@ Special such event. `f' - A file name of an existing file (*note File Names::). The default + A file name of an existing file (*note File Names::.). The default directory is `default-directory'. Existing, Completion, Default, Prompt. @@ -941,7 +976,7 @@ Special Prompt. `k' - A key sequence (*note Keymap Terminology::). This keeps reading + A key sequence (*note Keymap Terminology::.). This keeps reading events until a command (or undefined command) is found in the current key maps. The key sequence argument is represented as a vector of events. The cursor does not move into the echo area. @@ -984,7 +1019,7 @@ Special `s' Arbitrary text, read in the minibuffer and returned as a string - (*note Text from Minibuffer::). Terminate the input with either + (*note Text from Minibuffer::.). Terminate the input with either or . (`C-q' may be used to include either of these characters in the input.) Prompt. @@ -1060,7 +1095,7 @@ definition, it invokes that definition using the function `command-execute' calls `call-interactively', which reads the arguments and calls the command. You can also call these functions yourself. - - Function: commandp object + - Function: commandp OBJECT Returns `t' if OBJECT is suitable for calling interactively; that is, if OBJECT is a command. Otherwise, returns `nil'. @@ -1074,12 +1109,12 @@ and calls the command. You can also call these functions yourself. A symbol is `commandp' if its function definition is `commandp'. Keys and keymaps are not commands. Rather, they are used to look - up commands (*note Keymaps::). + up commands (*note Keymaps::.). See `documentation' in *Note Accessing Documentation::, for a realistic example of using `commandp'. - - Function: call-interactively command &optional record-flag + - Function: call-interactively COMMAND &optional RECORD-FLAG This function calls the interactively callable function COMMAND, reading arguments according to its interactive calling specifications. An error is signaled if COMMAND is not a function @@ -1097,7 +1132,7 @@ and calls the command. You can also call these functions yourself. the command is added only if it uses the minibuffer to read an argument. *Note Command History::. - - Function: command-execute command &optional record-flag + - Function: command-execute COMMAND &optional RECORD-FLAG This function executes COMMAND as an editing command. The argument COMMAND must satisfy the `commandp' predicate; i.e., it must be an interactively callable function or a keyboard macro. @@ -1112,9 +1147,9 @@ and calls the command. You can also call these functions yourself. Such a definition is handled by loading the specified library and then rechecking the definition of the symbol. - - Command: execute-extended-command prefix-argument + - Command: execute-extended-command PREFIX-ARGUMENT This function reads a command name from the minibuffer using - `completing-read' (*note Completion::). Then it uses + `completing-read' (*note Completion::.). Then it uses `command-execute' to call the specified command. Whatever that command returns becomes the value of `execute-extended-command'. diff --git a/info/lispref.info-17 b/info/lispref.info-17 index 994f550..85e2c10 100644 --- a/info/lispref.info-17 +++ b/info/lispref.info-17 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -134,7 +134,7 @@ value at the end, like this: is the nearest character equivalent to it (or `nil' if there is no character equivalent). `last-command-char' is the character that `self-insert-command' will insert in the buffer. Remember that - there is _not_ a one-to-one mapping between keyboard events and + there is *not* a one-to-one mapping between keyboard events and XEmacs characters: many keyboard events have no corresponding character, and when the Mule feature is available, most characters can not be input on standard keyboards, except possibly with help @@ -184,7 +184,7 @@ command binding of the key sequence. For information about how exactly the XEmacs command loop works, *Note Reading Input::. - - Function: eventp object + - Function: eventp OBJECT This function returns non-`nil' if EVENT is an input event. * Menu: @@ -305,7 +305,7 @@ button-release event modifiers Which modifier keys were pressed. The special business - mentioned above for the shift key does _not_ apply to mouse + mentioned above for the shift key does *not* apply to mouse events. x @@ -325,7 +325,7 @@ pointer-motion event modifiers Which modifier keys were pressed. The special business - mentioned above for the shift key does _not_ apply to mouse + mentioned above for the shift key does *not* apply to mouse events. misc-user event @@ -346,7 +346,7 @@ misc-user event modifiers Which modifier keys were pressed. The special business - mentioned above for the shift key does _not_ apply to mouse + mentioned above for the shift key does *not* apply to mouse events. x @@ -390,7 +390,7 @@ eval event The object to pass to the function. The function and object are set when the event is created. - - Function: event-type event + - Function: event-type EVENT Return the type of EVENT. This will be a symbol; one of @@ -432,39 +432,39 @@ Event Predicates The following predicates return whether an object is an event of a particular type. - - Function: key-press-event-p object + - Function: key-press-event-p OBJECT This is true if OBJECT is a key-press event. - - Function: button-event-p object object + - Function: button-event-p OBJECT OBJECT This is true if OBJECT is a mouse button-press or button-release event. - - Function: button-press-event-p object + - Function: button-press-event-p OBJECT This is true if OBJECT is a mouse button-press event. - - Function: button-release-event-p object + - Function: button-release-event-p OBJECT This is true if OBJECT is a mouse button-release event. - - Function: motion-event-p object + - Function: motion-event-p OBJECT This is true if OBJECT is a mouse motion event. - - Function: mouse-event-p object + - Function: mouse-event-p OBJECT This is true if OBJECT is a mouse button-press, button-release or motion event. - - Function: eval-event-p object + - Function: eval-event-p OBJECT This is true if OBJECT is an eval event. - - Function: misc-user-event-p object + - Function: misc-user-event-p OBJECT This is true if OBJECT is a misc-user event. - - Function: process-event-p object + - Function: process-event-p OBJECT This is true if OBJECT is a process event. - - Function: timeout-event-p object + - Function: timeout-event-p OBJECT This is true if OBJECT is a timeout event. - - Function: event-live-p object + - Function: event-live-p OBJECT This is true if OBJECT is any event that has not been deallocated.  @@ -497,18 +497,18 @@ Frame-Level Event Position Info The following functions return frame-level information about where a mouse event occurred. - - Function: event-frame event + - Function: event-frame EVENT This function returns the "channel" or frame that the given mouse motion, button press, button release, or misc-user event occurred in. This will be `nil' for non-mouse events. - - Function: event-x-pixel event + - Function: event-x-pixel EVENT This function returns the X position in pixels of the given mouse event. The value returned is relative to the frame the event occurred in. This will signal an error if the event is not a mouse event. - - Function: event-y-pixel event + - Function: event-y-pixel EVENT This function returns the Y position in pixels of the given mouse event. The value returned is relative to the frame the event occurred in. This will signal an error if the event is not a @@ -523,14 +523,14 @@ Window-Level Event Position Info The following functions return window-level information about where a mouse event occurred. - - Function: event-window event + - Function: event-window EVENT Given a mouse motion, button press, button release, or misc-user event, compute and return the window on which that event occurred. This may be `nil' if the event occurred in the border or over a toolbar. The modeline is considered to be within the window it describes. - - Function: event-buffer event + - Function: event-buffer EVENT Given a mouse motion, button press, button release, or misc-user event, compute and return the buffer of the window on which that event occurred. This may be `nil' if the event occurred in the @@ -539,13 +539,13 @@ a mouse event occurred. `event-window' and then calling `window-buffer' on the result if it is a window. - - Function: event-window-x-pixel event + - Function: event-window-x-pixel EVENT This function returns the X position in pixels of the given mouse event. The value returned is relative to the window the event occurred in. This will signal an error if the event is not a mouse-motion, button-press, button-release, or misc-user event. - - Function: event-window-y-pixel event + - Function: event-window-y-pixel EVENT This function returns the Y position in pixels of the given mouse event. The value returned is relative to the window the event occurred in. This will signal an error if the event is not a @@ -560,35 +560,35 @@ Event Text Position Info The following functions return information about the text (including the modeline) that a mouse event occurred over or near. - - Function: event-over-text-area-p event + - Function: event-over-text-area-p EVENT Given a mouse-motion, button-press, button-release, or misc-user event, this function returns `t' if the event is over the text area of a window. Otherwise, `nil' is returned. The modeline is not considered to be part of the text area. - - Function: event-over-modeline-p event + - Function: event-over-modeline-p EVENT Given a mouse-motion, button-press, button-release, or misc-user event, this function returns `t' if the event is over the modeline of a window. Otherwise, `nil' is returned. - - Function: event-x event + - Function: event-x EVENT This function returns the X position of the given mouse-motion, button-press, button-release, or misc-user event in characters. This is relative to the window the event occurred over. - - Function: event-y event + - Function: event-y EVENT This function returns the Y position of the given mouse-motion, button-press, button-release, or misc-user event in characters. This is relative to the window the event occurred over. - - Function: event-point event + - Function: event-point EVENT This function returns the character position of the given mouse-motion, button-press, button-release, or misc-user event. If the event did not occur over a window, or did not occur over text, then this returns `nil'. Otherwise, it returns an index into the buffer visible in the event's window. - - Function: event-closest-point event + - Function: event-closest-point EVENT This function returns the character position of the given mouse-motion, button-press, button-release, or misc-user event. If the event did not occur over a window or over text, it returns @@ -611,23 +611,23 @@ Event Glyph Position Info The following functions return information about the glyph (if any) that a mouse event occurred over. - - Function: event-over-glyph-p event + - Function: event-over-glyph-p EVENT Given a mouse-motion, button-press, button-release, or misc-user event, this function returns `t' if the event is over a glyph. Otherwise, `nil' is returned. - - Function: event-glyph-extent event + - Function: event-glyph-extent EVENT If the given mouse-motion, button-press, button-release, or misc-user event happened on top of a glyph, this returns its extent; else `nil' is returned. - - Function: event-glyph-x-pixel event + - Function: event-glyph-x-pixel EVENT Given a mouse-motion, button-press, button-release, or misc-user event over a glyph, this function returns the X position of the pointer relative to the upper left of the glyph. If the event is not over a glyph, it returns `nil'. - - Function: event-glyph-y-pixel event + - Function: event-glyph-y-pixel EVENT Given a mouse-motion, button-press, button-release, or misc-user event over a glyph, this function returns the Y position of the pointer relative to the upper left of the glyph. If the event is @@ -639,12 +639,12 @@ File: lispref.info, Node: Event Toolbar Position Info, Next: Other Event Posit Event Toolbar Position Info ........................... - - Function: event-over-toolbar-p event + - Function: event-over-toolbar-p EVENT Given a mouse-motion, button-press, button-release, or misc-user event, this function returns `t' if the event is over a toolbar. Otherwise, `nil' is returned. - - Function: event-toolbar-button event + - Function: event-toolbar-button EVENT If the given mouse-motion, button-press, button-release, or misc-user event happened on top of a toolbar button, this function returns the button. Otherwise, `nil' is returned. @@ -655,7 +655,7 @@ File: lispref.info, Node: Other Event Position Info, Prev: Event Toolbar Posit Other Event Position Info ......................... - - Function: event-over-border-p event + - Function: event-over-border-p EVENT Given a mouse-motion, button-press, button-release, or misc-user event, this function returns `t' if the event is over an internal toolbar. Otherwise, `nil' is returned. @@ -669,39 +669,39 @@ Accessing the Other Contents of Events The following functions allow access to the contents of events other than the position info described in the previous section. - - Function: event-timestamp event + - Function: event-timestamp EVENT This function returns the timestamp of the given event object. - - Function: event-device event + - Function: event-device EVENT This function returns the device that the given event occurred on. - - Function: event-key event + - Function: event-key EVENT This function returns the Keysym of the given key-press event. This will be the ASCII code of a printing character, or a symbol. - - Function: event-button event + - Function: event-button EVENT This function returns the button-number of the given button-press or button-release event. - - Function: event-modifiers event + - Function: event-modifiers EVENT This function returns a list of symbols, the names of the modifier keys which were down when the given mouse or keyboard event was produced. - - Function: event-modifier-bits event + - Function: event-modifier-bits EVENT This function returns a number representing the modifier keys which were down when the given mouse or keyboard event was produced. - - Function: event-function event + - Function: event-function EVENT This function returns the callback function of the given timeout, misc-user, or eval event. - - Function: event-object event + - Function: event-object EVENT This function returns the callback function argument of the given timeout, misc-user, or eval event. - - Function: event-process event + - Function: event-process EVENT This function returns the process of the given process event.  @@ -716,7 +716,7 @@ as an argument and fill in the fields of this event; or they make accept either an event object or `nil', creating the event object first in the latter case. - - Function: make-event &optional type plist + - Function: make-event &optional TYPE PLIST This function creates a new event structure. If no arguments are specified, the created event will be empty. To specify the event type, use the TYPE argument. The allowed types are `empty', @@ -770,7 +770,7 @@ latter case. The event timestamp, a non-negative integer. Allowed for all types of events. - _WARNING_: the event object returned by this function may be a + *WARNING*: the event object returned by this function may be a reused one; see the function `deallocate-event'. The events created by `make-event' can be used as non-interactive @@ -782,28 +782,28 @@ latter case. ;; Create an empty event. (make-event) => # - + ;; Try creating a key-press event. (make-event 'key-press) error--> Undefined key for keypress event - + ;; Creating a key-press event, try 2 (make-event 'key-press '(key home)) => # - + ;; Create a key-press event of dubious fame. (make-event 'key-press '(key escape modifiers (meta alt control shift))) => # - + ;; Create a M-button1 event at coordinates defined by variables ;; X and Y. (make-event 'button-press `(button 1 modifiers (meta) x ,x y ,y)) => # - + ;; Create a similar button-release event. (make-event 'button-release `(button 1 modifiers (meta) x ,x y ,x)) => # - + ;; Create a mouse-motion event. (make-event 'motion '(x 20 y 30)) => # @@ -831,13 +831,13 @@ latter case. (append '(modifiers nil) (event-properties EVENT))) - - Function: copy-event event1 &optional event2 + - Function: copy-event EVENT1 &optional EVENT2 This function makes a copy of the given event object. If a second argument is given, the first event is copied into the second and the second is returned. If the second argument is not supplied (or is `nil') then a new event will be made. - - Function: deallocate-event event + - Function: deallocate-event EVENT This function allows the given event structure to be reused. You *MUST NOT* use this event object after calling this function with it. You will lose. It is not necessary to call this function, as @@ -855,7 +855,7 @@ Converting Events events and other ways of representing keys. These are useful when working with ASCII strings and with keymaps. - - Function: character-to-event ch &optional event device + - Function: character-to-event CH &optional EVENT DEVICE This function converts a numeric ASCII value to an event structure, replete with modifier bits. CH is the character to convert, and EVENT is the event object to fill in. This function contains @@ -878,8 +878,8 @@ working with ASCII strings and with keymaps. strictly inverse functions, since events contain much more information than the ASCII character set can encode. - - Function: event-to-character event &optional allow-extra-modifiers - allow-meta allow-non-ascii + - Function: event-to-character EVENT &optional ALLOW-EXTRA-MODIFIERS + ALLOW-META ALLOW-NON-ASCII This function returns the closest ASCII approximation to EVENT. If the event isn't a keypress, this returns `nil'. @@ -904,7 +904,7 @@ working with ASCII strings and with keymaps. ambiguous, as both use the high bit; and will be indistinguishable. - - Function: events-to-keys events &optional no-mice + - Function: events-to-keys EVENTS &optional NO-MICE Given a vector of event objects, this function returns a vector of key descriptors, or a string (if they all fit in the ASCII range). Optional arg NO-MICE means that button events are not allowed. @@ -944,7 +944,7 @@ Key Sequence Input `read-key-sequence'; for example, `describe-key' uses it to read the key to describe. - - Function: read-key-sequence prompt + - Function: read-key-sequence PROMPT This function reads a sequence of keystrokes or mouse clicks and returns it as a vector of events. It keeps reading events until it has accumulated a full key sequence; that is, enough to specify @@ -994,7 +994,7 @@ single event. These functions often make a distinction between actions), and other events, which serve as communication between XEmacs and the window system. - - Function: next-event &optional event prompt + - Function: next-event &optional EVENT PROMPT This function reads and returns the next available event from the window system or terminal driver, waiting if necessary until an event is available. Pass this object to `dispatch-event' to @@ -1007,7 +1007,7 @@ and the window system. In most cases, the function `next-command-event' is more appropriate. - - Function: next-command-event &optional event + - Function: next-command-event &optional EVENT This function returns the next available "user" event from the window system or terminal driver. Pass this object to `dispatch-event' to handle it. If an event object is supplied, it @@ -1041,7 +1041,7 @@ and the window system. compatibility with Emacs 18, and is most likely the wrong thing for you to be using: consider using `next-command-event' instead. - - Function: enqueue-eval-event function object + - Function: enqueue-eval-event FUNCTION OBJECT This function adds an eval event to the back of the queue. The eval event will be the next event read after all pending events. @@ -1051,7 +1051,7 @@ File: lispref.info, Node: Dispatching an Event, Next: Quoted Character Input, Dispatching an Event -------------------- - - Function: dispatch-event event + - Function: dispatch-event EVENT Given an event object returned by `next-event', this function executes it. This is the basic function that makes XEmacs respond to user input; it also deals with notifications from the window @@ -1068,7 +1068,7 @@ specify a character, and allow the user to specify a control or meta character conveniently, either literally or as an octal character code. The command `quoted-insert' uses this function. - - Function: read-quoted-char &optional prompt + - Function: read-quoted-char &optional PROMPT This function is like `read-char', except that if the first character read is an octal digit (0-7), it reads up to two more octal digits (but stopping if a non-octal digit is found) and @@ -1163,7 +1163,7 @@ input. - Variable: last-input-char If the value of `last-input-event' is a keyboard event, then this is the nearest ASCII equivalent to it. Remember that there is - _not_ a 1:1 mapping between keyboard events and ASCII characters: + *not* a 1:1 mapping between keyboard events and ASCII characters: the set of keyboard events is much larger, so writing code that examines this variable to determine what key has been typed is bad practice, unless you are certain that it will be one of a small @@ -1201,7 +1201,7 @@ input comes in, while `sleep-for' pauses without updating the screen. two arguments to specify the time (one integer and one float value), instead of a single argument that can be either an integer or a float. - - Function: sit-for seconds &optional nodisp + - Function: sit-for SECONDS &optional NODISP This function performs redisplay (provided there is no pending input from the user), then waits SECONDS seconds, or until input is available. The result is `t' if `sit-for' waited the full time @@ -1224,7 +1224,7 @@ instead of a single argument that can be either an integer or a float. The usual purpose of `sit-for' is to give the user time to read text that you display. - - Function: sleep-for seconds + - Function: sleep-for SECONDS This function simply pauses for SECONDS seconds without updating the display. This function pays no attention to available input. It returns `nil'. diff --git a/info/lispref.info-18 b/info/lispref.info-18 index 7d8b054..1c2db42 100644 --- a/info/lispref.info-18 +++ b/info/lispref.info-18 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -69,7 +69,7 @@ effect is to cancel the prefix key as well as any prefix argument. In the minibuffer, `C-g' has a different definition: it aborts out of the minibuffer. This means, in effect, that it exits the minibuffer and then quits. (Simply quitting would return to the command loop -_within_ the minibuffer.) The reason why `C-g' does not quit directly +*within* the minibuffer.) The reason why `C-g' does not quit directly when the command reader is reading input is so that its meaning can be redefined in the minibuffer in this way. `C-g' following a prefix key is not redefined in the minibuffer, and it has its normal effect of @@ -225,7 +225,7 @@ argument, either numeric or raw, in the `interactive' declaration. value of the prefix argument directly in the variable `current-prefix-arg', but this is less clean. - - Function: prefix-numeric-value arg + - Function: prefix-numeric-value ARG This function returns the numeric meaning of a valid raw prefix argument value, ARG. The argument may be a symbol, a number, or a list. If it is `nil', the value 1 is returned; if it is `-', the @@ -234,32 +234,32 @@ value of the prefix argument directly in the variable returned. - Variable: current-prefix-arg - This variable holds the raw prefix argument for the _current_ + This variable holds the raw prefix argument for the *current* command. Commands may examine it directly, but the usual way to access it is with `(interactive "P")'. - Variable: prefix-arg The value of this variable is the raw prefix argument for the - _next_ editing command. Commands that specify prefix arguments for + *next* editing command. Commands that specify prefix arguments for the following command work by setting this variable. Do not call the functions `universal-argument', `digit-argument', or `negative-argument' unless you intend to let the user enter the prefix -argument for the _next_ command. +argument for the *next* command. - Command: universal-argument This command reads input and specifies a prefix argument for the following command. Don't call this command yourself unless you know what you are doing. - - Command: digit-argument arg + - Command: digit-argument ARG This command adds to the prefix argument for the following command. The argument ARG is the raw prefix argument as it was before this command; it is used to compute the updated prefix argument. Don't call this command yourself unless you know what you are doing. - - Command: negative-argument arg + - Command: negative-argument ARG This command adds to the numeric argument for the next command. The argument ARG is the raw prefix argument as it was before this command; its value is negated to form the new prefix argument. @@ -302,7 +302,7 @@ commands. `recursive-edit'. This function contains the command loop; it also contains a call to `catch' with tag `exit', which makes it possible to exit the recursive editing level by throwing to `exit' (*note Catch and -Throw::). If you throw a value other than `t', then `recursive-edit' +Throw::.). If you throw a value other than `t', then `recursive-edit' returns normally to the function that called it. The command `C-M-c' (`exit-recursive-edit') does this. Throwing a `t' value causes `recursive-edit' to quit, so that control returns to the command loop @@ -399,12 +399,12 @@ saying the command is disabled includes that string. For example: when a disabled command is invoked interactively. Disabling a command has no effect on calling it as a function from Lisp programs. - - Command: enable-command command + - Command: enable-command COMMAND Allow COMMAND to be executed without special confirmation from now on, and (if the user confirms) alter the user's `.emacs' file so that this will apply to future sessions. - - Command: disable-command command + - Command: disable-command COMMAND Require special confirmation to execute COMMAND from now on, and (if the user confirms) alter the user's `.emacs' file so that this will apply to future sessions. @@ -439,7 +439,7 @@ considered complex. represented as a form to evaluate. It continues to accumulate all complex commands for the duration of the editing session, but all but the first (most recent) thirty elements are deleted when a - garbage collection takes place (*note Garbage Collection::). + garbage collection takes place (*note Garbage Collection::.). command-history => ((switch-to-buffer "chistory.texi") @@ -448,7 +448,7 @@ considered complex. (find-tag "repeat-complex-command")) This history list is actually a special case of minibuffer history -(*note Minibuffer History::), with one special twist: the elements are +(*note Minibuffer History::.), with one special twist: the elements are expressions rather than strings. There are a number of commands devoted to the editing and recall of @@ -467,12 +467,12 @@ Keyboard Macros considered a command and made the definition of a key. The Lisp representation of a keyboard macro is a string or vector containing the events. Don't confuse keyboard macros with Lisp macros (*note -Macros::). +Macros::.). - - Function: execute-kbd-macro macro &optional count + - Function: execute-kbd-macro MACRO &optional COUNT This function executes MACRO as a sequence of events. If MACRO is a string or vector, then the events in it are executed exactly as - if they had been input by the user. The sequence is _not_ + if they had been input by the user. The sequence is *not* expected to be a single key sequence; normally a keyboard macro definition consists of several key sequences concatenated. @@ -549,7 +549,7 @@ be any Lisp objects, though only certain types are meaningful for execution by the command loop). Given an event (or an event type) and a keymap, XEmacs can get the event's definition. Events mapped in keymaps include keypresses, button presses, and button releases (*note -Events::). +Events::.). A sequence of input events that form a unit is called a "key sequence", or "key" for short. A sequence of one event is always a key @@ -604,7 +604,7 @@ Format of Keymaps bindings. Note that this is different from Emacs 18 and FSF Emacs, where keymaps are lists. - - Function: keymapp object + - Function: keymapp OBJECT This function returns `t' if OBJECT is a keymap, `nil' otherwise.  @@ -615,7 +615,7 @@ Creating Keymaps Here we describe the functions for creating keymaps. - - Function: make-keymap &optional name + - Function: make-keymap &optional NAME This function constructs and returns a new keymap object. All entries in it are `nil', meaning "command undefined". @@ -623,7 +623,7 @@ Creating Keymaps as in `set-keymap-name'. This name is only a debugging convenience; it is not used except when printing the keymap. - - Function: make-sparse-keymap &optional name + - Function: make-sparse-keymap &optional NAME This function constructs and returns a new keymap object. All entries in it are `nil', meaning "command undefined". The only difference between this function and `make-keymap' is that this @@ -635,16 +635,16 @@ Creating Keymaps as in `set-keymap-name'. This name is only a debugging convenience; it is not used except when printing the keymap. - - Function: set-keymap-name keymap new-name + - Function: set-keymap-name KEYMAP NEW-NAME This function assigns a "name" to a keymap. The name is only a debugging convenience; it is not used except when printing the keymap. - - Function: keymap-name keymap + - Function: keymap-name KEYMAP This function returns the "name" of a keymap, as assigned using `set-keymap-name'. - - Function: copy-keymap keymap + - Function: copy-keymap KEYMAP This function returns a copy of KEYMAP. Any keymaps that appear directly as bindings in KEYMAP are also copied recursively, and so on to any number of levels. However, recursive copying does not @@ -678,7 +678,7 @@ depth-first search of all the ancestors of the keymap is conducted. `(current-global-map)' is the default parent of all keymaps. - - Function: set-keymap-parents keymap parents + - Function: set-keymap-parents KEYMAP PARENTS This function sets the parent keymaps of KEYMAP to the list PARENTS. @@ -689,7 +689,7 @@ depth-first search of all the ancestors of the keymap is conducted. `define-key' to change KEYMAP, that affects the bindings in that map, but has no effect on any of the keymaps in PARENTS. - - Function: keymap-parents keymap + - Function: keymap-parents KEYMAP This function returns the list of parent keymaps of KEYMAP, or `nil' if KEYMAP has no parents. @@ -701,11 +701,11 @@ format. Note that if you specify a default binding for a keymap, neither the keymap's parents nor the current global map are searched for key bindings. - - Function: set-keymap-default-binding keymap command + - Function: set-keymap-default-binding KEYMAP COMMAND This function sets the default binding of KEYMAP to COMMAND, or `nil' if no default is desired. - - Function: keymap-default-binding keymap + - Function: keymap-default-binding KEYMAP This function returns the default binding of KEYMAP, or `nil' if it has none. @@ -740,7 +740,7 @@ and `(control 98)'. A keystroke may also be represented by an event object, as returned by the `next-command-event' and `read-key-sequence' functions. - Note that in this context, the keystroke `control-b' is _not_ + Note that in this context, the keystroke `control-b' is *not* represented by the number 2 (the ASCII code for `^B') or the character `?\^B'. See below. @@ -807,7 +807,7 @@ it is possible to redefine only one of those sequences like so: system. If you're talking to XEmacs through a TTY connection, you don't get any of these features. - - Function: event-matches-key-specifier-p event key-specifier + - Function: event-matches-key-specifier-p EVENT KEY-SPECIFIER This function returns non-`nil' if EVENT matches KEY-SPECIFIER, which can be any valid form representing a key sequence. This can be useful, e.g., to determine if the user pressed `help-char' or @@ -845,7 +845,7 @@ their keymaps: * `esc-map' is an evil hack that is present for compatibility purposes with Emacs 18. Defining a key in `esc-map' is equivalent to defining the same key in `global-map' but with the - prefix added. You should _not_ use this in your code. (This map is + prefix added. You should *not* use this in your code. (This map is also the function definition of `ESC-prefix'.) The binding of a prefix key is the keymap to use for looking up the @@ -882,7 +882,7 @@ The key sequence `C-p 6' is not found in any active keymap. (key-binding "\C-p6") => nil - - Function: define-prefix-command symbol &optional mapvar + - Function: define-prefix-command SYMBOL &optional MAPVAR This function defines SYMBOL as a prefix command: it creates a keymap and stores it as SYMBOL's function definition. Storing the symbol as the binding of a key makes the key a prefix key that has @@ -962,7 +962,7 @@ the maps. * the current global map. Note that if `overriding-local-map' or -`overriding-terminal-local-map' is non-`nil', _only_ those two maps and +`overriding-terminal-local-map' is non-`nil', *only* those two maps and the current global map are searched. The procedure for searching a single keymap is called "key lookup"; @@ -985,7 +985,7 @@ completion and exit commands. *Note Intro to Minibuffers::. *Note Standard Keymaps::, for a list of standard keymaps. - - Function: current-keymaps &optional event-or-keys + - Function: current-keymaps &optional EVENT-OR-KEYS This function returns a list of the current keymaps that will be searched for bindings. This lists keymaps such as the current local map and the minor-mode maps, but does not list the parents @@ -1040,13 +1040,13 @@ completion and exit commands. *Note Intro to Minibuffers::. This function returns a list of the keymaps of currently enabled minor modes. - - Function: use-global-map keymap + - Function: use-global-map KEYMAP This function makes KEYMAP the new current global keymap. It returns `nil'. It is very unusual to change the global keymap. - - Function: use-local-map keymap &optional buffer + - Function: use-local-map KEYMAP &optional BUFFER This function makes KEYMAP the new local keymap of BUFFER. BUFFER defaults to the current buffer. If KEYMAP is `nil', then the buffer has no local keymap. `use-local-map' returns `nil'. Most @@ -1097,7 +1097,7 @@ completion and exit commands. *Note Intro to Minibuffers::. normal mechanism if there is no binding for that click. This buffer's value of `mode-motion-hook' will be consulted instead of the `mode-motion-hook' of the buffer of the window under the mouse. - You should _bind_ this, not set it. + You should *bind* this, not set it. - Variable: overriding-local-map If non-`nil', this variable holds a keymap to use instead of the diff --git a/info/lispref.info-19 b/info/lispref.info-19 index 946587f..286822b 100644 --- a/info/lispref.info-19 +++ b/info/lispref.info-19 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -141,7 +141,7 @@ SYMBOL its function definition is invalid as a function. It is, however, valid as a key binding. If the definition is a keyboard macro, then the symbol is also valid as an argument to `command-execute' - (*note Interactive Call::). + (*note Interactive Call::.). The symbol `undefined' is worth special mention: it means to treat the key as undefined. Strictly speaking, the key is defined, and @@ -170,7 +170,7 @@ Functions for Key Lookup Here are the functions and variables pertaining to key lookup. - - Function: lookup-key keymap key &optional accept-defaults + - Function: lookup-key KEYMAP KEY &optional ACCEPT-DEFAULTS This function returns the definition of KEY in KEYMAP. If the string or vector KEY is not a valid key sequence according to the prefix keys specified in KEYMAP (which means it is "too long" and @@ -203,7 +203,7 @@ Functions for Key Lookup Unlike `read-key-sequence', this function does not modify the specified events in ways that discard information (*note Key - Sequence Input::). In particular, it does not convert letters to + Sequence Input::.). In particular, it does not convert letters to lower case. - Command: undefined @@ -211,7 +211,7 @@ Functions for Key Lookup this, invoking this key sequence causes a "key undefined" error, just as if the key sequence had no binding. - - Function: key-binding key &optional accept-defaults + - Function: key-binding KEY &optional ACCEPT-DEFAULTS This function returns the binding for KEY in the current keymaps, trying all the active keymaps. The result is `nil' if KEY is undefined in the keymaps. @@ -226,21 +226,21 @@ Functions for Key Lookup (key-binding [escape escape escape]) => keyboard-escape-quit - - Function: local-key-binding key &optional accept-defaults + - Function: local-key-binding KEY &optional ACCEPT-DEFAULTS This function returns the binding for KEY in the current local keymap, or `nil' if it is undefined there. The argument ACCEPT-DEFAULTS controls checking for default bindings, as in `lookup-key' (above). - - Function: global-key-binding key &optional accept-defaults + - Function: global-key-binding KEY &optional ACCEPT-DEFAULTS This function returns the binding for command KEY in the current global keymap, or `nil' if it is undefined there. The argument ACCEPT-DEFAULTS controls checking for default bindings, as in `lookup-key' (above). - - Function: minor-mode-key-binding key &optional accept-defaults + - Function: minor-mode-key-binding KEY &optional ACCEPT-DEFAULTS This function returns a list of all the active minor mode bindings of KEY. More precisely, it returns an alist of pairs `(MODENAME . BINDING)', where MODENAME is the variable that enables the minor @@ -259,9 +259,9 @@ Functions for Key Lookup This variable is the meta-prefix character code. It is used when translating a two-character sequence to a meta character so it can be looked up in a keymap. For useful results, the value should be - a prefix event (*note Prefix Keys::). The default value is `?\^[' - (integer 27), which is the ASCII character usually produced by the - key. + a prefix event (*note Prefix Keys::.). The default value is + `?\^[' (integer 27), which is the ASCII character usually produced + by the key. As long as the value of `meta-prefix-char' remains `?\^[', key lookup translates ` b' into `M-b', which is normally defined @@ -274,14 +274,18 @@ Functions for Key Lookup meta-prefix-char ; The default value. => ?\^[ ; Under XEmacs 20. => 27 ; Under XEmacs 19. + (key-binding "\eb") => backward-word + ?\C-x ; The print representation ; of a character. => ?\^X ; Under XEmacs 20. => 24 ; Under XEmacs 19. + (setq meta-prefix-char 24) => 24 + (key-binding "\C-xb") => backward-word ; Now, typing `C-x b' is ; like typing `M-b'. @@ -303,19 +307,19 @@ buffers (though it has no direct effect in buffers that shadow the global binding with a local one). If you change the current buffer's local map, that usually affects all buffers using the same major mode. The `global-set-key' and `local-set-key' functions are convenient -interfaces for these operations (*note Key Binding Commands::). You +interfaces for these operations (*note Key Binding Commands::.). You can also use `define-key', a more general function; then you must specify explicitly the map to change. The way to specify the key sequence that you want to rebind is -described above (*note Key Sequences::). +described above (*note Key Sequences::.). For the functions below, an error is signaled if KEYMAP is not a keymap or if KEY is not a string or vector representing a key sequence. You can use event types (symbols) as shorthand for events that are lists. - - Function: define-key keymap key binding + - Function: define-key KEYMAP KEY BINDING This function sets the binding for KEY in KEYMAP. (If KEY is more than one event long, the change is actually made in another keymap reached from KEYMAP.) The argument BINDING can be any Lisp @@ -335,17 +339,20 @@ bindings in it: (setq map (make-sparse-keymap)) => # + (define-key map "\C-f" 'forward-char) => forward-char + map => # (describe-bindings-internal map) => ; (Inserted in buffer) C-f forward-char - + ;; Build sparse submap for `C-x' and bind `f' in that. (define-key map "\C-xf" 'forward-word) => forward-word + map => # (describe-bindings-internal map) @@ -354,15 +361,16 @@ bindings in it: C-x << Prefix Command >> C-x f forward-word - + ;; Bind `C-p' to the `ctl-x-map'. (define-key map "\C-p" ctl-x-map) ;; `ctl-x-map' => # - + ;; Bind `C-f' to `foo' in the `ctl-x-map'. (define-key map "\C-p\C-f" 'foo) => foo + map => # (describe-bindings-internal map) @@ -401,8 +409,8 @@ Note that storing a new binding for `C-p C-f' actually works by changing an entry in `ctl-x-map', and this has the effect of changing the bindings of both `C-p C-f' and `C-x C-f' in the default global map. - - Function: substitute-key-definition olddef newdef keymap &optional - oldmap + - Function: substitute-key-definition OLDDEF NEWDEF KEYMAP &optional + OLDMAP This function replaces OLDDEF with NEWDEF for any keys in KEYMAP that were bound to OLDDEF. In other words, OLDDEF is replaced with NEWDEF wherever it appears. The function returns `nil'. @@ -426,7 +434,7 @@ the bindings of both `C-p C-f' and `C-x C-f' in the default global map. are globally bound to the standard deletion command. - - Function: suppress-keymap keymap &optional nodigits + - Function: suppress-keymap KEYMAP &optional NODIGITS This function changes the contents of the full keymap KEYMAP by making all the printing characters undefined. More precisely, it binds them to the command `undefined'. This makes ordinary @@ -439,7 +447,7 @@ the bindings of both `C-p C-f' and `C-x C-f' in the default global map. The `suppress-keymap' function does not make it impossible to modify a buffer, as it does not suppress commands such as `yank' and `quoted-insert'. To prevent any modification of a buffer, make - it read-only (*note Read Only Buffers::). + it read-only (*note Read Only Buffers::.). Since this function modifies KEYMAP, you would normally use it on a newly created keymap. Operating on an existing keymap that is @@ -453,7 +461,7 @@ the bindings of both `C-p C-f' and `C-x C-f' in the default global map. from the file `emacs/lisp/dired.el', showing how the local keymap for Dired mode is set up: - ... + ... (setq dired-mode-map (make-keymap)) (suppress-keymap dired-mode-map) (define-key dired-mode-map "r" 'dired-rename-file) @@ -493,7 +501,7 @@ redefines `C-x C-\' to move down a line. redefines the first (leftmost) mouse button, typed with the Meta key, to set point where you click. - - Command: global-set-key key definition + - Command: global-set-key KEY DEFINITION This function sets the binding of KEY in the current global map to DEFINITION. @@ -501,7 +509,7 @@ set point where you click. == (define-key (current-global-map) KEY DEFINITION) - - Command: global-unset-key key + - Command: global-unset-key KEY This function removes the binding of KEY from the current global map. @@ -511,6 +519,7 @@ set point where you click. (global-unset-key "\C-l") => nil + (global-set-key "\C-l\C-l" 'redraw-display) => nil @@ -520,7 +529,7 @@ set point where you click. == (define-key (current-global-map) KEY nil) - - Command: local-set-key key definition + - Command: local-set-key KEY DEFINITION This function sets the binding of KEY in the current local keymap to DEFINITION. @@ -528,7 +537,7 @@ set point where you click. == (define-key (current-local-map) KEY DEFINITION) - - Command: local-unset-key key + - Command: local-unset-key KEY This function removes the binding of KEY from the current local map. @@ -546,7 +555,7 @@ Scanning Keymaps keymaps, or all keys within a keymap, for the sake of printing help information. - - Function: accessible-keymaps keymap &optional prefix + - Function: accessible-keymaps KEYMAP &optional PREFIX This function returns a list of all the keymaps that can be accessed (via prefix keys) from KEYMAP. The value is an association list with elements of the form `(KEY . MAP)', where @@ -613,7 +622,7 @@ information. 8 entries 0x3ef>) 2 entries 0x3f5>)) - - Function: map-keymap function keymap &optional sort-first + - Function: map-keymap FUNCTION KEYMAP &optional SORT-FIRST This function applies FUNCTION to each element of `KEYMAP'. FUNCTION will be called with two arguments: a key-description list, and the binding. The order in which the elements of the @@ -623,7 +632,7 @@ information. the function more than once. The function will not be called on elements of this keymap's - parents (*note Inheritance and Keymaps::) or upon keymaps which + parents (*note Inheritance and Keymaps::.) or upon keymaps which are contained within this keymap (multi-character definitions). It will be called on characters since they are not really two-character sequences. @@ -633,11 +642,11 @@ information. canonical order. Otherwise, they will be passed in hash (that is, random) order, which is faster. - - Function: keymap-fullness keymap + - Function: keymap-fullness KEYMAP This function returns the number of bindings in the keymap. - - Function: where-is-internal definition &optional keymaps firstonly - noindirect event-or-keys + - Function: where-is-internal DEFINITION &optional KEYMAPS FIRSTONLY + NOINDIRECT EVENT-OR-KEYS This function returns a list of key sequences (of any length) that are bound to DEFINITION in a set of keymaps. @@ -669,8 +678,8 @@ information. (where-is-internal 'describe-function) => ([(control h) d] [(control h) f] [f1 d] [f1 f]) - - Function: describe-bindings-internal map &optional all shadow prefix - mouse-only-p + - Function: describe-bindings-internal MAP &optional ALL SHADOW PREFIX + MOUSE-ONLY-P This function inserts (into the current buffer) a list of all defined keys and their definitions in MAP. Optional second argument ALL says whether to include even "uninteresting" @@ -685,7 +694,7 @@ information. `describe-bindings-internal' is used to implement the help command `describe-bindings'. - - Command: describe-bindings prefix mouse-only-p + - Command: describe-bindings PREFIX MOUSE-ONLY-P This function creates a listing of all defined keys and their definitions. It writes the listing in a buffer named `*Help*' and displays it in a window. @@ -712,13 +721,13 @@ File: lispref.info, Node: Other Keymap Functions, Prev: Scanning Keymaps, Up: Other Keymap Functions ====================== - - Function: set-keymap-prompt keymap new-prompt + - Function: set-keymap-prompt KEYMAP NEW-PROMPT This function sets the "prompt" of KEYMAP to string NEW-PROMPT, or `nil' if no prompt is desired. The prompt is shown in the echo-area when reading a key-sequence to be looked-up in this keymap. - - Function: keymap-prompt keymap &optional use-inherited + - Function: keymap-prompt KEYMAP &optional USE-INHERITED This function returns the "prompt" of the given keymap. If USE-INHERITED is non-`nil', any parent keymaps will also be searched for a prompt. @@ -1014,12 +1023,12 @@ menubar. They are equivalent to doing the appropriate action to change `current-menubar', and then calling `set-menubar-dirty-flag'. Note that these functions copy their argument using `copy-sequence'. - - Function: set-menubar menubar + - Function: set-menubar MENUBAR This function sets the default menubar to be MENUBAR (*note Menu - Format::). This is the menubar that will be visible in buffers + Format::.). This is the menubar that will be visible in buffers that have not defined their own, buffer-local menubar. - - Function: set-buffer-menubar menubar + - Function: set-buffer-menubar MENUBAR This function sets the buffer-local menubar to be MENUBAR. This does not change the menubar in any buffers other than the current one. @@ -1078,7 +1087,7 @@ also specifies a particular item to be modified. For example, `("File" menu. `("Menu" "Foo" "Item")' means the menu item called "Item" under the "Foo" submenu of "Menu". - - Function: add-submenu menu-path submenu &optional before + - Function: add-submenu MENU-PATH SUBMENU &optional BEFORE This function adds a menu to the menubar or one of its submenus. If the named menu exists already, it is changed. @@ -1086,13 +1095,13 @@ the "Foo" submenu of "Menu". inserted. If MENU-PATH is `nil', then the menu will be added to the menubar itself. - SUBMENU is the new menu to add (*note Menu Format::). + SUBMENU is the new menu to add (*note Menu Format::.). BEFORE, if provided, is the name of a menu before which this menu should be added, if this menu is not on its parent already. If the menu is already present, it will not be moved. - - Function: add-menu-button menu-path menu-leaf &optional before + - Function: add-menu-button MENU-PATH MENU-LEAF &optional BEFORE This function adds a menu item to some menu, creating the menu first if necessary. If the named item exists already, it is changed. @@ -1100,25 +1109,25 @@ the "Foo" submenu of "Menu". MENU-PATH identifies the menu under which the new menu item should be inserted. - MENU-LEAF is a menubar leaf node (*note Menu Format::). + MENU-LEAF is a menubar leaf node (*note Menu Format::.). BEFORE, if provided, is the name of a menu before which this item should be added, if this item is not on the menu already. If the item is already present, it will not be moved. - - Function: delete-menu-item menu-item-path + - Function: delete-menu-item MENU-ITEM-PATH This function removes the menu item specified by MENU-ITEM-PATH from the menu hierarchy. - - Function: enable-menu-item menu-item-path + - Function: enable-menu-item MENU-ITEM-PATH This function makes the menu item specified by MENU-ITEM-PATH be selectable. - - Function: disable-menu-item menu-item-path + - Function: disable-menu-item MENU-ITEM-PATH This function makes the menu item specified by MENU-ITEM-PATH be unselectable. - - Function: relabel-menu-item menu-item-path new-name + - Function: relabel-menu-item MENU-ITEM-PATH NEW-NAME This function changes the string of the menu item specified by MENU-ITEM-PATH. NEW-NAME is the string that the menu item will be printed as from now on. @@ -1126,7 +1135,7 @@ the "Foo" submenu of "Menu". The following function can be used to search for a particular item in a menubar specification, given a path to the item. - - Function: find-menu-item menubar menu-item-path &optional parent + - Function: find-menu-item MENUBAR MENU-ITEM-PATH &optional PARENT This function searches MENUBAR for the item given by MENU-ITEM-PATH starting from PARENT (`nil' means start at the top of MENUBAR). This function returns `(ITEM . PARENT)', where @@ -1140,7 +1149,7 @@ a menubar specification, given a path to the item. existing code can be understood. You should not use these functions in new code. - - Function: add-menu menu-path menu-name menu-items &optional before + - Function: add-menu MENU-PATH MENU-NAME MENU-ITEMS &optional BEFORE This function adds a menu to the menubar or one of its submenus. If the named menu exists already, it is changed. This is obsolete; use `add-submenu' instead. @@ -1152,14 +1161,14 @@ new code. MENU-NAME is the string naming the menu to be added; MENU-ITEMS is a list of menu items, strings, and submenus. These two arguments are the same as the first and following elements of a menu - description (*note Menu Format::). + description (*note Menu Format::.). BEFORE, if provided, is the name of a menu before which this menu should be added, if this menu is not on its parent already. If the menu is already present, it will not be moved. - - Function: add-menu-item menu-path item-name function enabled-p - &optional before + - Function: add-menu-item MENU-PATH ITEM-NAME FUNCTION ENABLED-P + &optional BEFORE This function adds a menu item to some menu, creating the menu first if necessary. If the named item exists already, it is changed. This is obsolete; use `add-menu-button' instead. @@ -1167,7 +1176,7 @@ new code. MENU-PATH identifies the menu under which the new menu item should be inserted. ITEM-NAME, FUNCTION, and ENABLED-P are the first, second, and third elements of a menu item vector (*note Menu - Format::). + Format::.). BEFORE, if provided, is the name of a menu item before which this item should be added, if this item is not on the menu already. If @@ -1183,7 +1192,7 @@ Menu Filters `default-menubar'. You may want to use them in your own menubar description. - - Function: file-menu-filter menu-items + - Function: file-menu-filter MENU-ITEMS This function changes the arguments and sensitivity of these File menu items: @@ -1207,7 +1216,7 @@ description. `Delete Frame' Sensitive only when there is more than one visible frame. - - Function: edit-menu-filter menu-items + - Function: edit-menu-filter MENU-ITEMS This function changes the arguments and sensitivity of these Edit menu items: @@ -1230,7 +1239,7 @@ description. Sensitive only when there is undo information. While in the midst of an undo, this is changed to `Undo More'. - - Function: buffers-menu-filter menu-items + - Function: buffers-menu-filter MENU-ITEMS This function sets up the Buffers menu. *Note Buffers Menu::, for more information. diff --git a/info/lispref.info-2 b/info/lispref.info-2 index 671fdba..0b003f1 100644 --- a/info/lispref.info-2 +++ b/info/lispref.info-2 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -667,7 +667,7 @@ and "after" versions of the text. These examples show the contents of the buffer in question between two lines of dashes containing the buffer name. In addition, `-!-' indicates the location of point. (The symbol for point, of course, is not part of the text in the buffer; it -indicates the place _between_ two characters where point is located.) +indicates the place *between* two characters where point is located.) ---------- Buffer: foo ---------- This is the -!-contents of foo. @@ -723,7 +723,7 @@ Do not write `&rest' when you call the function. Here is a description of an imaginary function `foo': - - Function: foo integer1 &optional integer2 &rest integers + - Function: foo INTEGER1 &optional INTEGER2 &rest INTEGERS The function `foo' subtracts INTEGER1 from INTEGER2, then adds all the rest of the arguments to the result. If INTEGER2 is not supplied, then the number 19 is used by default. @@ -939,7 +939,7 @@ signals the error `invalid-read-syntax' whenever it encounters `#<'. When you evaluate an expression interactively, the Lisp interpreter first reads the textual representation of it, producing a Lisp object, -and then evaluates that object (*note Evaluation::). However, +and then evaluates that object (*note Evaluation::.). However, evaluation and reading are separate activities. Reading returns the Lisp object represented by the text that is read; the object may or may not be evaluated later. *Note Input Functions::, for a description of @@ -962,7 +962,7 @@ system. The `#@COUNT' construct, which skips the next COUNT characters, is useful for program-generated comments containing binary data. The XEmacs Lisp byte compiler uses this in its output files (*note Byte -Compilation::). It isn't meant for source files, however. +Compilation::.). It isn't meant for source files, however. *Note Comment Tips::, for conventions for formatting comments. @@ -1138,7 +1138,7 @@ Integer Type machines, in particular 64-bit machines such as the DEC Alpha, may provide a wider range.) It is important to note that the XEmacs Lisp arithmetic functions do not check for overflow. Thus `(1+ 134217727)' -is -134217728 on most machines. (However, you _will_ get an error if +is -134217728 on most machines. (However, you *will* get an error if you attempt to read an out-of-range number using the Lisp reader.) The read syntax for integers is a sequence of (base ten) digits with diff --git a/info/lispref.info-20 b/info/lispref.info-20 index 1be9fa5..1c0f637 100644 --- a/info/lispref.info-20 +++ b/info/lispref.info-20 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -55,9 +55,9 @@ File: lispref.info, Node: Pop-Up Menus, Next: Menu Filters, Prev: Modifying M Pop-Up Menus ============ - - Function: popup-menu menu-desc + - Function: popup-menu MENU-DESC This function pops up a menu specified by MENU-DESC, which is a - menu description (*note Menu Format::). The menu is displayed at + menu description (*note Menu Format::.). The menu is displayed at the current mouse position. - Function: popup-menu-up-p @@ -100,11 +100,11 @@ the binding for button3. The following convenience functions are provided for displaying pop-up menus. - - Function: popup-buffer-menu event + - Function: popup-buffer-menu EVENT This function pops up a copy of the `Buffers' menu (from the menubar) where the mouse is clicked. - - Function: popup-menubar-menu event + - Function: popup-menubar-menu EVENT This function pops up a copy of menu that also appears in the menubar. @@ -263,7 +263,7 @@ existence, and is updated dynamically. then all buffers will be shown. Setting this to a large number or `nil' will slow down menu responsiveness. - - Function: format-buffers-menu-line buffer + - Function: format-buffers-menu-line BUFFER This function returns a string to represent BUFFER in the `Buffers' menu. `nil' means the buffer shouldn't be listed. You can redefine this. @@ -334,9 +334,9 @@ File: lispref.info, Node: Dialog Box Functions, Prev: Dialog Box Format, Up: Dialog Box Functions ==================== - - Function: popup-dialog-box dbox-desc + - Function: popup-dialog-box DBOX-DESC This function pops up a dialog box. DBOX-DESC describes how the - dialog box will appear (*note Dialog Box Format::). + dialog box will appear (*note Dialog Box Format::.). *Note Yes-or-No Queries::, for functions to ask a yes/no question using a dialog box. @@ -372,7 +372,7 @@ the minibuffer when the mouse is over the button. the frame, and two or more different edges can be displaying toolbars simultaneously. The contents, thickness, and visibility of the toolbars can be controlled separately, and the values can be -per-buffer, per-frame, etc., using specifiers (*note Specifiers::). +per-buffer, per-frame, etc., using specifiers (*note Specifiers::.). Normally, there is one toolbar displayed in a frame. Usually, this is the standard toolbar, but certain modes will override this and @@ -483,15 +483,15 @@ others specify blank areas in the toolbar. area. If omitted, it defaults to a device-specific value (8 pixels for X devices). - - Function: toolbar-make-button-list up &optional down disabled cap-up - cap-down cap-disabled + - Function: toolbar-make-button-list UP &optional DOWN DISABLED CAP-UP + CAP-DOWN CAP-DISABLED This function calls `make-glyph' on each arg and returns a list of the results. This is useful for setting the first argument of a toolbar button descriptor (typically, the result of this function is assigned to a symbol, which is specified as the first argument of the toolbar button descriptor). - - Function: check-toolbar-button-syntax button &optional noerror + - Function: check-toolbar-button-syntax BUTTON &optional NOERROR Verify the syntax of entry BUTTON in a toolbar description list. If you want to verify the syntax of a toolbar description list as a whole, use `check-valid-instantiator' with a specifier type of @@ -531,9 +531,9 @@ thickness is controlled by the specifiers `top-toolbar-height', `right-toolbar-width', and the visibility status is controlled by the specifiers `top-toolbar-visible-p', `bottom-toolbar-visible-p', `left-toolbar-visible-p', and `right-toolbar-visible-p' (*note Other -Toolbar Variables::). +Toolbar Variables::.). - - Function: set-default-toolbar-position position + - Function: set-default-toolbar-position POSITION This function sets the position that the `default-toolbar' will be displayed at. Valid positions are the symbols `top', `bottom', `left' and `right'. What this actually does is set the fallback @@ -543,7 +543,7 @@ Toolbar Variables::). same thing for the position-specific thickness and visibility specifiers, which inherit from one of `default-toolbar-height' or `default-toolbar-width', and from `default-toolbar-visible-p', - respectively (*note Other Toolbar Variables::). + respectively (*note Other Toolbar Variables::.). - Function: default-toolbar-position This function returns the position that the `default-toolbar' will @@ -568,11 +568,11 @@ this position. - Specifier: right-toolbar Specifier for the toolbar at the right edge of the frame. - - Function: toolbar-specifier-p object + - Function: toolbar-specifier-p OBJECT This function returns non-nil if OBJECT is a toolbar specifier. Toolbar specifiers are the actual objects contained in the toolbar variables described above, and their valid instantiators are - toolbar descriptors (*note Toolbar Descriptor Format::). + toolbar descriptors (*note Toolbar Descriptor Format::.).  File: lispref.info, Node: Other Toolbar Variables, Prev: Specifying the Toolbar, Up: Toolbar @@ -688,7 +688,7 @@ File: lispref.info, Node: Drag and Drop, Next: Modes, Prev: Scrollbars, Up: Drag and Drop ************* - _WARNING_: the Drag'n'Drop API is still under development and the + *WARNING*: the Drag'n'Drop API is still under development and the interface may change! The current implementation is considered experimental. @@ -732,7 +732,7 @@ File: lispref.info, Node: OffiX DND, Next: CDE dt, Up: Supported Protocols OffiX DND --------- - _WARNING_: If you compile in OffiX, you may not be able to use + *WARNING*: If you compile in OffiX, you may not be able to use multiple X displays successfully. If the two servers are from different vendors, the results may be unpredictable. @@ -873,7 +873,7 @@ writing a minor mode, which is often difficult). modify the old one to serve two purposes, since it may become harder to use and maintain. Instead, copy and rename an existing major mode definition and alter the copy--or define a "derived mode" (*note -Derived Modes::). For example, Rmail Edit mode, which is in +Derived Modes::.). For example, Rmail Edit mode, which is in `emacs/lisp/rmailedit.el', is a major mode that is very similar to Text mode except that it provides three additional commands. Its definition is distinct from that of Text mode, but was derived from it. @@ -1044,18 +1044,18 @@ conventions listed above: ;; Create mode-specific tables. (defvar text-mode-syntax-table nil "Syntax table used while in text mode.") - + (if text-mode-syntax-table () ; Do not change the table if it is already set up. (setq text-mode-syntax-table (make-syntax-table)) (modify-syntax-entry ?\" ". " text-mode-syntax-table) (modify-syntax-entry ?\\ ". " text-mode-syntax-table) (modify-syntax-entry ?' "w " text-mode-syntax-table)) - + (defvar text-mode-abbrev-table nil "Abbrev table used while in text mode.") (define-abbrev-table 'text-mode-abbrev-table ()) - + (defvar text-mode-map nil) ; Create a mode-specific keymap. (if text-mode-map @@ -1070,10 +1070,12 @@ conventions listed above: (defun text-mode () "Major mode for editing text intended for humans to read. Special commands: \\{text-mode-map} + Turning on text-mode runs the hook `text-mode-hook'." (interactive) (kill-all-local-variables) - (use-local-map text-mode-map) ; This provides the local keymap. + + (use-local-map text-mode-map) ; This provides the local keymap. (setq mode-name "Text") ; This name goes into the modeline. (setq major-mode 'text-mode) ; This is how `describe-mode' ; finds the doc string to print. @@ -1091,24 +1093,26 @@ correspondingly more complicated. Here are excerpts from (defvar lisp-mode-syntax-table nil "") (defvar emacs-lisp-mode-syntax-table nil "") (defvar lisp-mode-abbrev-table nil "") - + (if (not emacs-lisp-mode-syntax-table) ; Do not change the table ; if it is already set. (let ((i 0)) (setq emacs-lisp-mode-syntax-table (make-syntax-table)) - - ;; Set syntax of chars up to 0 to class of chars that are + + ;; Set syntax of chars up to 0 to class of chars that are ;; part of symbol names but not words. ;; (The number 0 is `48' in the ASCII character set.) (while (< i ?0) (modify-syntax-entry i "_ " emacs-lisp-mode-syntax-table) (setq i (1+ i))) ... - ;; Set the syntax for other characters. + + ;; Set the syntax for other characters. (modify-syntax-entry ? " " emacs-lisp-mode-syntax-table) (modify-syntax-entry ?\t " " emacs-lisp-mode-syntax-table) ... - (modify-syntax-entry ?\( "() " emacs-lisp-mode-syntax-table) + + (modify-syntax-entry ?\( "() " emacs-lisp-mode-syntax-table) (modify-syntax-entry ?\) ")( " emacs-lisp-mode-syntax-table) ...)) ;; Create an abbrev table for lisp-mode. @@ -1126,7 +1130,8 @@ mode functions: ;; The Emacs Lisp mode syntax table always exists, but ;; the Lisp Mode syntax table is created the first time a ;; mode that needs it is called. This is to save space. - (progn (setq lisp-mode-syntax-table + + (progn (setq lisp-mode-syntax-table (copy-syntax-table emacs-lisp-mode-syntax-table)) ;; Change some entries for Lisp mode. (modify-syntax-entry ?\| "\" " @@ -1135,7 +1140,8 @@ mode functions: lisp-mode-syntax-table) (modify-syntax-entry ?\] "_ " lisp-mode-syntax-table))) - (set-syntax-table lisp-mode-syntax-table))) + + (set-syntax-table lisp-mode-syntax-table))) (setq local-abbrev-table lisp-mode-abbrev-table) ...) @@ -1147,12 +1153,13 @@ and the Lisp modes need their own mode-specific `comment-indent-function'. The code to set these variables is the rest of `lisp-mode-variables'. - (make-local-variable 'paragraph-start) + (make-local-variable 'paragraph-start) ;; Having `^' is not clean, but `page-delimiter' ;; has them too, and removing those is a pain. (setq paragraph-start (concat "^$\\|" page-delimiter)) ... - (make-local-variable 'comment-indent-function) + + (make-local-variable 'comment-indent-function) (setq comment-indent-function 'lisp-comment-indent)) Each of the different Lisp modes has a slightly different keymap. @@ -1191,12 +1198,14 @@ Emacs Lisp mode. Delete converts tabs to spaces as it moves back. Blank lines separate paragraphs. Semicolons start comments. \\{emacs-lisp-mode-map} + Entry to this mode runs the hook `emacs-lisp-mode-hook'." (interactive) (kill-all-local-variables) (use-local-map emacs-lisp-mode-map) ; This provides the local keymap. (set-syntax-table emacs-lisp-mode-syntax-table) - (setq major-mode 'emacs-lisp-mode) ; This is how `describe-mode' + + (setq major-mode 'emacs-lisp-mode) ; This is how `describe-mode' ; finds out what to describe. (setq mode-name "Emacs-Lisp") ; This goes into the modeline. (lisp-mode-variables nil) ; This defines various variables. diff --git a/info/lispref.info-21 b/info/lispref.info-21 index 4ade6a9..411b200 100644 --- a/info/lispref.info-21 +++ b/info/lispref.info-21 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -64,11 +64,11 @@ visited. anything in particular. Other major modes are defined in effect by comparison with this one--their definitions say what to change, starting from Fundamental mode. The `fundamental-mode' function - does _not_ run any hooks; you're not supposed to customize it. + does *not* run any hooks; you're not supposed to customize it. (If you want Emacs to behave differently in Fundamental mode, - change the _global_ state of Emacs.) + change the *global* state of Emacs.) - - Command: normal-mode &optional find-file + - Command: normal-mode &optional FIND-FILE This function establishes the proper major mode and local variable bindings for the current buffer. First it calls `set-auto-mode', then it runs `hack-local-variables' to parse, and bind or evaluate @@ -131,7 +131,7 @@ visited. property are those such as Dired and Rmail that are useful only with text that has been specially prepared. - - Function: set-buffer-major-mode buffer + - Function: set-buffer-major-mode BUFFER This function sets the major mode of BUFFER to the value of `default-major-mode'. If that variable is `nil', it uses the current buffer's major mode (if that is suitable). @@ -147,7 +147,7 @@ visited. - Variable: auto-mode-alist This variable contains an association list of file name patterns - (regular expressions; *note Regular Expressions::) and + (regular expressions; *note Regular Expressions::.) and corresponding major mode functions. Usually, the file name patterns test for suffixes, such as `.el' and `.c', but this need not be the case. An ordinary element of the alist looks like @@ -158,13 +158,14 @@ visited. (("^/tmp/fol/" . text-mode) ("\\.texinfo\\'" . texinfo-mode) ("\\.texi\\'" . texinfo-mode) - ("\\.el\\'" . emacs-lisp-mode) + + ("\\.el\\'" . emacs-lisp-mode) ("\\.c\\'" . c-mode) ("\\.h\\'" . c-mode) ...) When you visit a file whose expanded file name (*note File Name - Expansion::) matches a REGEXP, `set-auto-mode' calls the + Expansion::.) matches a REGEXP, `set-auto-mode' calls the corresponding MODE-FUNCTION. This feature enables XEmacs to select the proper major mode for most files. @@ -202,7 +203,7 @@ visited. This variable is applicable only when the `auto-mode-alist' does not indicate which major mode to use. - - Function: hack-local-variables &optional force + - Function: hack-local-variables &optional FORCE This function parses, and binds or evaluates as appropriate, any local variables for the current buffer. @@ -245,7 +246,7 @@ Defining Derived Modes It's often useful to define a new major mode in terms of an existing one. An easy way to do this is to use `define-derived-mode'. - - Macro: define-derived-mode variant parent name docstring body... + - Macro: define-derived-mode VARIANT PARENT NAME DOCSTRING BODY... This construct defines VARIANT as a major mode command, using NAME as the string form of the mode name. @@ -372,7 +373,7 @@ minor modes. (> (prefix-numeric-value arg) 0))) * Add an element to `minor-mode-alist' for each minor mode (*note - Modeline Variables::). This element should be a list of the + Modeline Variables::.). This element should be a list of the following form: (MODE-VARIABLE STRING) @@ -432,11 +433,11 @@ appear the same (except for scrolling percentages and line numbers). The modeline of a window is normally updated whenever a different buffer is shown in the window, or when the buffer's modified-status changes from `nil' to `t' or vice-versa. If you modify any of the -variables referenced by `modeline-format' (*note Modeline Variables::), -you may want to force an update of the modeline so as to display the -new information. +variables referenced by `modeline-format' (*note Modeline +Variables::.), you may want to force an update of the modeline so as to +display the new information. - - Function: redraw-modeline &optional all + - Function: redraw-modeline &optional ALL Force redisplay of the current buffer's modeline. If ALL is non-`nil', then force redisplay of all modelines. @@ -460,7 +461,7 @@ strings, symbols, and numbers kept in the buffer-local variable `mode-line-format'. The data structure is called a "modeline construct", and it is built in recursive fashion out of simpler modeline constructs. The same data structure is used for constructing frame -titles (*note Frame Titles::). +titles (*note Frame Titles::.). - Variable: modeline-format The value of this variable is a modeline construct with overall @@ -523,7 +524,7 @@ value is a list, each element may be a list, a symbol, or a string. If you do alter `modeline-format' itself, the new value should use the same variables that appear in the default value (*note Modeline -Variables::), rather than duplicating their contents or displaying the +Variables::.), rather than duplicating their contents or displaying the information in another fashion. This way, customizations made by the user or by Lisp programs (such as `display-time' and major modes) via changes to those variables remain effective. @@ -782,8 +783,8 @@ name ends in `-hook'. The recommended way to add a hook function to a normal hook is by calling `add-hook' (see below). The hook functions may be any of the valid kinds of functions that `funcall' accepts (*note What Is a -Function::). Most normal hook variables are initially void; `add-hook' -knows how to deal with this. +Function::.). Most normal hook variables are initially void; +`add-hook' knows how to deal with this. As for abnormal hooks, those whose names end in `-function' have a value that is a single function. Those whose names end in `-hooks' @@ -798,7 +799,7 @@ hook" as the last step of initialization. This makes it easy for a user to customize the behavior of the mode, by overriding the local variable assignments already made by the mode. But hooks are used in other contexts too. For example, the hook `suspend-hook' runs just before -XEmacs suspends itself (*note Suspending XEmacs::). +XEmacs suspends itself (*note Suspending XEmacs::.). Here's an expression that uses a mode hook to turn on Auto Fill mode when in Lisp Interaction mode: @@ -846,7 +847,7 @@ modified for a particular class of buffers only. particular hooks. This function calls the hook functions you have added with `add-hooks'. - - Function: run-hooks &rest hookvar + - Function: run-hooks &rest HOOKVAR This function takes one or more hook variable names as arguments, and runs each hook in turn. Each HOOKVAR argument should be a symbol that is a hook variable. These arguments are processed in @@ -862,7 +863,7 @@ added with `add-hooks'. (run-hooks 'emacs-lisp-mode-hook) - - Function: add-hook hook function &optional append local + - Function: add-hook HOOK FUNCTION &optional APPEND LOCAL This function is the handy way to add function FUNCTION to hook variable HOOK. The argument FUNCTION may be any valid Lisp function with the proper number of arguments. For example, @@ -891,7 +892,7 @@ added with `add-hooks'. buffer-local, then the value of LOCAL makes no difference--the hook function is always global. - - Function: remove-hook hook function &optional local + - Function: remove-hook HOOK FUNCTION &optional LOCAL This function removes FUNCTION from the hook variable HOOK. If LOCAL is non-`nil', that says to remove FUNCTION from the local @@ -899,7 +900,7 @@ added with `add-hooks'. itself is not buffer-local, then the value of LOCAL makes no difference. - - Function: make-local-hook hook + - Function: make-local-hook HOOK This function makes the hook variable `hook' local to the current buffer. When a hook variable is local, it can have local and global hook functions, and `run-hooks' runs all of them. @@ -978,7 +979,7 @@ rearranges the key bindings. (*Note Accessing Documentation::.) the function or variable that it describes: * The documentation for a function is stored in the function - definition itself (*note Lambda Expressions::). The function + definition itself (*note Lambda Expressions::.). The function `documentation' knows how to extract it. * The documentation for a variable is stored in the variable's @@ -990,7 +991,7 @@ variables (including primitive functions and autoloaded functions) is stored in the "internal doc file" `DOC'. The documentation for functions and variables loaded during the XEmacs session from byte-compiled files is stored in those very same byte-compiled files -(*note Docs and Compilation::). +(*note Docs and Compilation::.). XEmacs does not keep documentation strings in memory unless necessary. Instead, XEmacs maintains, for preloaded symbols, an @@ -1014,7 +1015,7 @@ File: lispref.info, Node: Accessing Documentation, Next: Keys in Documentation Access to Documentation Strings =============================== - - Function: documentation-property symbol property &optional verbatim + - Function: documentation-property SYMBOL PROPERTY &optional VERBATIM This function returns the documentation string that is recorded in SYMBOL's property list under property PROPERTY. It retrieves the text from a file if necessary, and runs `substitute-command-keys' @@ -1025,10 +1026,11 @@ Access to Documentation Strings (documentation-property 'command-line-processed 'variable-documentation) => "t once command line has been processed" + (symbol-plist 'command-line-processed) => (variable-documentation 188902) - - Function: documentation function &optional verbatim + - Function: documentation FUNCTION &optional VERBATIM This function returns the documentation string of FUNCTION. It reads the text from a file if necessary. Then (unless VERBATIM is non-`nil') it calls `substitute-command-keys', to return a value @@ -1051,7 +1053,8 @@ several symbols in a `*Help*' buffer. (let ((describe-func (function (lambda (s) - ;; Print description of symbol. + + ;; Print description of symbol. (if (fboundp s) ; It is a function. (princ (format "%s\t%s\n%s\n\n" s @@ -1064,26 +1067,29 @@ several symbols in a `*Help*' buffer. keys " ")) "Keys: none")) "Function") - (or (documentation s) + + (or (documentation s) "not documented")))) (if (boundp s) ; It is a variable. - (princ + + (princ (format "%s\t%s\n%s\n\n" s (if (user-variable-p s) "Option " "Variable") - (or (documentation-property + + (or (documentation-property s 'variable-documentation) "not documented"))))))) sym-list) - - ;; Build a list of symbols that match pattern. + + ;; Build a list of symbols that match pattern. (mapatoms (function (lambda (sym) (if (string-match pattern (symbol-name sym)) (setq sym-list (cons sym sym-list)))))) - - ;; Display the data. + + ;; Display the data. (with-output-to-temp-buffer "*Help*" (mapcar describe-func (sort sym-list 'string<)) (print-help-return-message)))) @@ -1096,15 +1102,16 @@ more information. ---------- Buffer: *Help* ---------- goal-column Option *Semipermanent goal column for vertical motion, as set by C-x C-n, or nil. - + set-goal-column Command: C-x C-n Set the current horizontal position as a goal for C-n and C-p. + Those commands will move to this position in the line moved to rather than trying to keep the same horizontal position. With a non-nil argument, clears out the goal column so that C-n and C-p resume vertical motion. The goal column is stored in the variable `goal-column'. - + temporary-goal-column Variable Current goal column for vertical motion. It is the column where point was @@ -1112,7 +1119,7 @@ more information. When the `track-eol' feature is doing its job, the value is 9999. ---------- Buffer: *Help* ---------- - - Function: Snarf-documentation filename + - Function: Snarf-documentation FILENAME This function is used only during XEmacs initialization, just before the runnable XEmacs is dumped. It finds the file offsets of the documentation strings stored in the file FILENAME, and diff --git a/info/lispref.info-22 b/info/lispref.info-22 index 752357b..a88f731 100644 --- a/info/lispref.info-22 +++ b/info/lispref.info-22 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -84,7 +84,7 @@ also call that function yourself. *Please note:* Each `\' must be doubled when written in a string in XEmacs Lisp. - - Function: substitute-command-keys string + - Function: substitute-command-keys STRING This function scans STRING for the above special sequences and replaces them by what they stand for, returning the result as a string. This permits display of documentation that refers @@ -95,7 +95,7 @@ XEmacs Lisp. (substitute-command-keys "To abort recursive edit, type: \\[abort-recursive-edit]") => "To abort recursive edit, type: C-]" - + (substitute-command-keys "The keys that are defined for the minibuffer here are: \\{minibuffer-local-must-match-map}") @@ -108,12 +108,11 @@ XEmacs Lisp. RET minibuffer-complete-and-exit C-g abort-recursive-edit " - (substitute-command-keys "To abort a recursive edit from the minibuffer, type\ \\\\[abort-recursive-edit].") => "To abort a recursive edit from the minibuffer, type C-g." - + (substitute-command-keys "Substrings of the form \\=\\{MAPVAR} are replaced by summaries \(made by describe-bindings) of the value of MAPVAR, taken as a keymap. @@ -143,14 +142,14 @@ convert non-printing and whitespace characters to sequences of printing characters. The description of a non-whitespace printing character is the character itself. - - Function: key-description sequence + - Function: key-description SEQUENCE This function returns a string containing the XEmacs standard notation for the input events in SEQUENCE. The argument SEQUENCE may be a string, vector or list. *Note Events::, for more information about valid events. See also the examples for `single-key-description', below. - - Function: single-key-description key + - Function: single-key-description KEY This function returns a string describing KEY in the standard XEmacs notation for keyboard input. A normal printing character appears as itself, but a control character turns into a string @@ -161,14 +160,17 @@ the character itself. (single-key-description ?\C-x) => "C-x" + (key-description "\C-x \M-y \n \t \r \f123") => "C-x SPC M-y SPC LFD SPC TAB SPC RET SPC C-l 1 2 3" + (single-key-description 'kp_next) => "kp_next" + (single-key-description '(shift button1)) => "Sh-button1" - - Function: text-char-description character + - Function: text-char-description CHARACTER This function returns a string describing CHARACTER in the standard XEmacs notation for characters that appear in text--like `single-key-description', except that control characters are @@ -177,8 +179,10 @@ the character itself. (text-char-description ?\C-c) => "^C" + (text-char-description ?\M-m) => "M-m" + (text-char-description ?\C-\M-m) => "M-^M" @@ -193,10 +197,10 @@ to the user as subcommands of the prefix `C-h', or on some keyboards, `help'. For more information about them, see *Note Help: (emacs)Help. Here we describe some program-level interfaces to the same information. - - Command: apropos regexp &optional do-all predicate + - Command: apropos REGEXP &optional DO-ALL PREDICATE This function finds all symbols whose names contain a match for the regular expression REGEXP, and returns a list of them (*note - Regular Expressions::). It also displays the symbols in a buffer + Regular Expressions::.). It also displays the symbols in a buffer named `*Help*', each with a one-line description. If DO-ALL is non-`nil', then `apropos' also shows key bindings for @@ -215,7 +219,7 @@ Here we describe some program-level interfaces to the same information. => (Buffer-menu-execute command-execute exec-directory exec-path execute-extended-command execute-kbd-macro executing-kbd-macro executing-macro) - + (apropos "exec" nil 'commandp) => (Buffer-menu-execute execute-extended-command) @@ -240,7 +244,7 @@ Here we describe some program-level interfaces to the same information. (define-key global-map "\C-h" 'help-command) (fset 'help-command help-map) - - Function: print-help-return-message &optional function + - Function: print-help-return-message &optional FUNCTION This function builds a string that explains how to restore the previous state of the windows after a help command. After building the message, it applies FUNCTION to it if FUNCTION is @@ -287,7 +291,7 @@ Here we describe some program-level interfaces to the same information. what the input is for and how to enter it properly. Entry to the minibuffer binds this variable to the value of - `minibuffer-help-form' (*note Minibuffer Misc::). + `minibuffer-help-form' (*note Minibuffer Misc::.). - Variable: prefix-help-command This variable holds a function to print help for a prefix @@ -334,7 +338,7 @@ of that function should be told to use the newer one instead. XEmacs Lisp lets you mark a function or variable as "obsolete", and indicate what should be used instead. - - Function: make-obsolete function new + - Function: make-obsolete FUNCTION NEW This function indicates that FUNCTION is an obsolete function, and the function NEW should be used instead. The byte compiler will issue a warning to this effect when it encounters a usage of the @@ -344,16 +348,16 @@ what should be used instead. should be a descriptive statement, such as "use FOO or BAR instead" or "this function is unnecessary". - - Function: make-obsolete-variable variable new + - Function: make-obsolete-variable VARIABLE NEW This is like `make-obsolete' but is for variables instead of functions. - - Function: define-obsolete-function-alias oldfun newfun + - Function: define-obsolete-function-alias OLDFUN NEWFUN This function combines `make-obsolete' and `define-function', declaring OLDFUN to be an obsolete variant of NEWFUN and defining OLDFUN as an alias for NEWFUN. - - Function: define-obsolete-variable-alias oldvar newvar + - Function: define-obsolete-variable-alias OLDVAR NEWVAR This is like `define-obsolete-function-alias' but for variables. Note that you should not normally put obsoleteness information @@ -369,13 +373,13 @@ the user is told about the obsoleteness and is forced to look at the documentation of the new function, making it more likely that he will use the new function. - - Function: function-obsoleteness-doc function + - Function: function-obsoleteness-doc FUNCTION If FUNCTION is obsolete, this function returns a string describing this. This is the message that is printed out during byte compilation or in the function's documentation. If FUNCTION is not obsolete, `nil' is returned. - - Function: variable-obsoleteness-doc variable + - Function: variable-obsoleteness-doc VARIABLE This is like `function-obsoleteness-doc' but for variables. The obsoleteness information is stored internally by putting a @@ -473,7 +477,7 @@ not alter it, the fastest way is to use `insert-file-contents' in a temporary buffer. Visiting the file is not necessary and takes longer. *Note Reading from Files::. - - Command: find-file filename + - Command: find-file FILENAME This command selects a buffer visiting the file FILENAME, using an existing buffer if there is one, and otherwise creating a new buffer and reading the file into it. It also returns that buffer. @@ -488,7 +492,7 @@ temporary buffer. Visiting the file is not necessary and takes longer. When `find-file' is called interactively, it prompts for FILENAME in the minibuffer. - - Function: find-file-noselect filename &optional nowarn + - Function: find-file-noselect FILENAME &optional NOWARN This function is the guts of all the file-visiting functions. It finds or creates a buffer visiting the file FILENAME, and returns it. It uses an existing buffer if there is one, and otherwise @@ -512,7 +516,7 @@ temporary buffer. Visiting the file is not necessary and takes longer. are suppressed. The `find-file-noselect' function calls `after-find-file' after - reading the file (*note Subroutines of Visiting::). That function + reading the file (*note Subroutines of Visiting::.). That function sets the buffer major mode, parses local variables, warns the user if there exists an auto-save file more recent than the file just visited, and finishes by running the functions in @@ -524,21 +528,21 @@ temporary buffer. Visiting the file is not necessary and takes longer. (find-file-noselect "/etc/fstab") => # - - Command: find-file-other-window filename + - Command: find-file-other-window FILENAME This command selects a buffer visiting the file FILENAME, but does so in a window other than the selected window. It may use another existing window or split a window; see *Note Displaying Buffers::. When this command is called interactively, it prompts for FILENAME. - - Command: find-file-read-only filename + - Command: find-file-read-only FILENAME This command selects a buffer visiting the file FILENAME, like `find-file', but it marks the buffer as read-only. *Note Read Only Buffers::, for related functions and variables. When this command is called interactively, it prompts for FILENAME. - - Command: view-file filename + - Command: view-file FILENAME This command visits FILENAME in View mode, and displays it in a recursive edit, returning to the previous buffer when done. View mode is a mode that allows you to skim rapidly through the file @@ -578,13 +582,13 @@ Subroutines of Visiting `after-find-file' functions as subroutines. Sometimes it is useful to call them directly. - - Function: create-file-buffer filename + - Function: create-file-buffer FILENAME This function creates a suitably named buffer for visiting FILENAME, and returns it. It uses FILENAME (sans directory) as the name if that name is free; otherwise, it appends a string such as `<2>' to get an unused name. See also *Note Creating Buffers::. - *Please note:* `create-file-buffer' does _not_ associate the new + *Please note:* `create-file-buffer' does *not* associate the new buffer with a file and does not select the buffer. It also does not use the default major mode. @@ -596,13 +600,13 @@ call them directly. => #> This function is used by `find-file-noselect'. It uses - `generate-new-buffer' (*note Creating Buffers::). + `generate-new-buffer' (*note Creating Buffers::.). - - Function: after-find-file &optional error warn noauto + - Function: after-find-file &optional ERROR WARN NOAUTO This function sets the buffer major mode, and parses local - variables (*note Auto Major Mode::). It is called by + variables (*note Auto Major Mode::.). It is called by `find-file-noselect' and by the default revert function (*note - Reverting::). + Reverting::.). If reading the file got an error because the file does not exist, but its directory does exist, the caller should pass a non-`nil' @@ -631,7 +635,7 @@ copied into the buffer and the copy is what you edit. Changes to the buffer do not change the file until you "save" the buffer, which means copying the contents of the buffer into the file. - - Command: save-buffer &optional backup-option + - Command: save-buffer &optional BACKUP-OPTION This function saves the contents of the current buffer in its visited file if the buffer has been modified since it was last visited or saved. Otherwise it does nothing. @@ -650,7 +654,7 @@ copying the contents of the buffer into the file. `save-buffer' function unconditionally backs up the previous version of the file before saving it. - - Command: save-some-buffers &optional save-silently-p exiting + - Command: save-some-buffers &optional SAVE-SILENTLY-P EXITING This command saves some modified file-visiting buffers. Normally it asks the user about each buffer. But if SAVE-SILENTLY-P is non-`nil', it saves all the file-visiting buffers without querying @@ -670,7 +674,7 @@ copying the contents of the buffer into the file. variable is automatically local in all buffers. Normally, Mail mode (used for editing outgoing mail) sets this to `t'. - - Command: write-file filename + - Command: write-file FILENAME This function writes the current buffer into file FILENAME, makes the buffer visit that file, and marks it not modified. Then it renames the buffer based on FILENAME, appending a string like `<2>' @@ -737,7 +741,7 @@ copying the contents of the buffer into the file. - User Option: require-final-newline This variable determines whether files may be written out that do - _not_ end with a newline. If the value of the variable is `t', + *not* end with a newline. If the value of the variable is `t', then `save-buffer' silently adds a newline at the end of the file whenever the buffer being saved does not already end in one. If the value of the variable is non-`nil', but not `t', then @@ -758,8 +762,8 @@ Reading from Files the `insert-file-contents' function. Don't use the user-level command `insert-file' in a Lisp program, as that sets the mark. - - Function: insert-file-contents filename &optional visit beg end - replace + - Function: insert-file-contents FILENAME &optional VISIT BEG END + REPLACE This function inserts the contents of file FILENAME into the current buffer after point. It returns a list of the absolute file name and the length of the data inserted. An error is @@ -807,7 +811,7 @@ to a file on disk using the `append-to-file' and `write-region' functions. Don't use these functions to write to files that are being visited; that could cause confusion in the mechanisms for visiting. - - Command: append-to-file start end filename + - Command: append-to-file START END FILENAME This function appends the contents of the region delimited by START and END in the current buffer to the end of file FILENAME. If that file does not exist, it is created. If that file exists @@ -816,7 +820,7 @@ visited; that could cause confusion in the mechanisms for visiting. An error is signaled if FILENAME specifies a nonwritable file, or a nonexistent file in a directory where files cannot be created. - - Command: write-region start end filename &optional append visit + - Command: write-region START END FILENAME &optional APPEND VISIT This function writes the region delimited by START and END in the current buffer into the file specified by FILENAME. @@ -873,7 +877,7 @@ still warn the user who saves second. Also, the detection of modification of a buffer visiting a file changed on disk catches some cases of simultaneous editing; see *Note Modification Time::. - - Function: file-locked-p &optional filename + - Function: file-locked-p &optional FILENAME This function returns `nil' if the file FILENAME is not locked by this XEmacs process. It returns `t' if it is locked by this XEmacs, and it returns the name of the user who has locked it if it @@ -882,7 +886,7 @@ cases of simultaneous editing; see *Note Modification Time::. (file-locked-p "foo") => nil - - Function: lock-buffer &optional filename + - Function: lock-buffer &optional FILENAME This function locks the file FILENAME, if the current buffer is modified. The argument FILENAME defaults to the current buffer's visited file. Nothing is done if the current buffer is not @@ -894,7 +898,7 @@ cases of simultaneous editing; see *Note Modification Time::. the file should not be locked, so this function does nothing. It also does nothing if the current buffer is not visiting a file. - - Function: ask-user-about-lock file other-user + - Function: ask-user-about-lock FILE OTHER-USER This function is called when the user tries to modify FILE, but it is locked by another user named OTHER-USER. The value it returns determines what happens next: @@ -949,7 +953,7 @@ Testing Accessibility These functions test for permission to access a file in specific ways. - - Function: file-exists-p filename + - Function: file-exists-p FILENAME This function returns `t' if a file named FILENAME appears to exist. This does not mean you can necessarily read the file, only that you can find out its attributes. (On Unix, this is true if @@ -960,7 +964,7 @@ ways. prevent you from finding the attributes of the file, this function returns `nil'. - - Function: file-readable-p filename + - Function: file-readable-p FILENAME This function returns `t' if a file named FILENAME exists and you can read it. It returns `nil' otherwise. @@ -971,14 +975,14 @@ ways. (file-readable-p "/usr/spool/mqueue") => nil - - Function: file-executable-p filename + - Function: file-executable-p FILENAME This function returns `t' if a file named FILENAME exists and you can execute it. It returns `nil' otherwise. If the file is a directory, execute permission means you can check the existence and attributes of files inside the directory, and open those files if their modes permit. - - Function: file-writable-p filename + - Function: file-writable-p FILENAME This function returns `t' if the file FILENAME can be written or created by you, and `nil' otherwise. A file is writable if the file exists and you can write it. It is creatable if it does not @@ -996,7 +1000,7 @@ ways. (file-writable-p "~/no-such-dir/foo") => nil - - Function: file-accessible-directory-p dirname + - Function: file-accessible-directory-p DIRNAME This function returns `t' if you have permission to open existing files in the directory whose name as a file is DIRNAME; otherwise (or if there is no such directory), it returns `nil'. The value @@ -1011,11 +1015,11 @@ ways. we can deduce that any attempt to read a file in `/foo/' will give an error. - - Function: file-ownership-preserved-p filename + - Function: file-ownership-preserved-p FILENAME This function returns `t' if deleting the file FILENAME and then creating it anew would keep the file's owner unchanged. - - Function: file-newer-than-file-p filename1 filename2 + - Function: file-newer-than-file-p FILENAME1 FILENAME2 This function returns `t' if the file FILENAME1 is newer than file FILENAME2. If FILENAME1 does not exist, it returns `nil'. If FILENAME2 does not exist, it returns `t'. @@ -1045,7 +1049,7 @@ Distinguishing Kinds of Files This section describes how to distinguish various kinds of files, such as directories, symbolic links, and ordinary files. - - Function: file-symlink-p filename + - Function: file-symlink-p FILENAME If the file FILENAME is a symbolic link, the `file-symlink-p' function returns the file name to which it is linked. This may be the name of a text file, a directory, or even another symbolic @@ -1064,7 +1068,7 @@ such as directories, symbolic links, and ordinary files. => "/pub/bin" - - Function: file-directory-p filename + - Function: file-directory-p FILENAME This function returns `t' if FILENAME is the name of an existing directory, `nil' otherwise. @@ -1080,7 +1084,7 @@ such as directories, symbolic links, and ordinary files. (substitute-in-file-name "$HOME")) => t - - Function: file-regular-p filename + - Function: file-regular-p FILENAME This function returns `t' if the file FILENAME exists and is a regular file (not a directory, symbolic link, named pipe, terminal, or other I/O device). @@ -1092,13 +1096,13 @@ Truenames --------- The "truename" of a file is the name that you get by following -symbolic links until none remain, then expanding to get rid of `.' and +symbolic links until none remain, then expanding to get rid of `.' and `..' as components. Strictly speaking, a file need not have a unique truename; the number of distinct truenames a file has is equal to the number of hard links to the file. However, truenames are useful because they eliminate symbolic links as a cause of name variation. - - Function: file-truename filename &optional default + - Function: file-truename FILENAME &optional DEFAULT The function `file-truename' returns the true name of the file FILENAME. This is the name that you get by following symbolic links until none remain. diff --git a/info/lispref.info-23 b/info/lispref.info-23 index f3a4258..82b8556 100644 --- a/info/lispref.info-23 +++ b/info/lispref.info-23 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -61,7 +61,7 @@ mode bits that control access permission, the owner and group numbers, the number of names, the inode number, the size, and the times of access and modification. - - Function: file-modes filename + - Function: file-modes FILENAME This function returns the mode bits of FILENAME, as an integer. The mode bits are also called the file permissions, and they specify access control in the usual Unix fashion. If the @@ -87,7 +87,7 @@ and modification. % ls -l diffs -rw-rw-rw- 1 lewis 0 3063 Oct 30 16:00 diffs - - Function: file-nlinks filename + - Function: file-nlinks FILENAME This functions returns the number of names (i.e., hard links) that file FILENAME has. If the file does not exist, then this function returns `nil'. Note that symbolic links have no effect on this @@ -103,7 +103,7 @@ and modification. (file-nlinks "doesnt-exist") => nil - - Function: file-attributes filename + - Function: file-attributes FILENAME This function returns a list of attributes of file FILENAME. If the specified file cannot be opened, it returns `nil'. @@ -115,7 +115,7 @@ and modification. 1. The number of names the file has. Alternate names, also known as hard links, can be created by using the `add-name-to-file' function (*note Changing File - Attributes::). + Attributes::.). 2. The file's UID. @@ -227,8 +227,8 @@ of the argument OK-IF-ALREADY-EXISTS: * Replace the old file without confirmation if OK-IF-ALREADY-EXISTS is any other value. - - Command: add-name-to-file oldname newname &optional - ok-if-already-exists + - Command: add-name-to-file OLDNAME NEWNAME &optional + OK-IF-ALREADY-EXISTS This function gives the file named OLDNAME the additional name NEWNAME. This means that NEWNAME becomes a new "hard link" to OLDNAME. @@ -272,7 +272,7 @@ of the argument OK-IF-ALREADY-EXISTS: See also `file-nlinks' in *Note File Attributes::. - - Command: rename-file filename newname &optional ok-if-already-exists + - Command: rename-file FILENAME NEWNAME &optional OK-IF-ALREADY-EXISTS This command renames the file FILENAME as NEWNAME. If FILENAME has additional names aside from FILENAME, it continues @@ -284,7 +284,7 @@ of the argument OK-IF-ALREADY-EXISTS: NEWNAME in the minibuffer; also, it requests confirmation if NEWNAME already exists. - - Command: copy-file oldname newname &optional ok-if-exists time + - Command: copy-file OLDNAME NEWNAME &optional OK-IF-EXISTS TIME This command copies the file OLDNAME to NEWNAME. An error is signaled if OLDNAME does not exist. @@ -296,7 +296,7 @@ of the argument OK-IF-ALREADY-EXISTS: NEWNAME in the minibuffer; also, it requests confirmation if NEWNAME already exists. - - Command: delete-file filename + - Command: delete-file FILENAME This command deletes the file FILENAME, like the shell command `rm FILENAME'. If the file has multiple names, it continues to exist under the other names. @@ -307,7 +307,7 @@ of the argument OK-IF-ALREADY-EXISTS: See also `delete-directory' in *Note Create/Delete Dirs::. - - Command: make-symbolic-link filename newname &optional ok-if-exists + - Command: make-symbolic-link FILENAME NEWNAME &optional OK-IF-EXISTS This command makes a symbolic link to FILENAME, named NEWNAME. This is like the shell command `ln -s FILENAME NEWNAME'. @@ -315,15 +315,15 @@ of the argument OK-IF-ALREADY-EXISTS: NEWNAME in the minibuffer; also, it requests confirmation if NEWNAME already exists. - - Function: define-logical-name varname string + - Function: define-logical-name VARNAME STRING This function defines the logical name NAME to have the value STRING. It is available only on VMS. - - Function: set-file-modes filename mode + - Function: set-file-modes FILENAME MODE This function sets mode bits of FILENAME to MODE (which must be an integer). Only the low 12 bits of MODE are used. - - Function: set-default-file-modes mode + - Function: set-default-file-modes MODE This function sets the default file protection for new files created by XEmacs and its subprocesses. Every file created with XEmacs initially has this protection. On Unix, the default @@ -404,7 +404,7 @@ number, but most of the time the file name actually used in XEmacs omits the version number. Version numbers are found mostly in directory lists. - - Function: file-name-directory filename + - Function: file-name-directory FILENAME This function returns the directory part of FILENAME (or `nil' if FILENAME does not include a directory part). On Unix, the function returns a string ending in a slash. On VMS, it returns a @@ -417,7 +417,7 @@ directory lists. (file-name-directory "[X]FOO.TMP") ; VMS example => "[X]" - - Function: file-name-nondirectory filename + - Function: file-name-nondirectory FILENAME This function returns the nondirectory part of FILENAME. (file-name-nondirectory "lewis/foo") @@ -428,8 +428,8 @@ directory lists. (file-name-nondirectory "[X]FOO.TMP") => "FOO.TMP" - - Function: file-name-sans-versions filename &optional - keep-backup-version + - Function: file-name-sans-versions FILENAME &optional + KEEP-BACKUP-VERSION This function returns FILENAME without any file version numbers, backup version numbers, or trailing tildes. @@ -446,7 +446,7 @@ directory lists. (file-name-sans-versions "foo;23") => "foo" - - Function: file-name-sans-extension filename + - Function: file-name-sans-extension FILENAME This function returns FILENAME minus its "extension," if any. The extension, in a file name, is the part that starts with the last `.' in the last name component. For example, @@ -479,7 +479,7 @@ acceptable. names. They do nothing special with environment variable substitutions such as `$HOME', and the constructs `~', and `..'. - - Function: file-name-as-directory filename + - Function: file-name-as-directory FILENAME This function returns a string representing FILENAME in a form that the operating system will interpret as the name of a directory. In Unix, this means appending a slash to the string. @@ -489,7 +489,7 @@ such as `$HOME', and the constructs `~', and `..'. (file-name-as-directory "~rms/lewis") => "~rms/lewis/" - - Function: directory-file-name dirname + - Function: directory-file-name DIRNAME This function returns a string representing DIRNAME in a form that the operating system will interpret as the name of a file. On Unix, this means removing a final slash from the string. On VMS, @@ -508,7 +508,7 @@ abbreviation instead. If you wish to convert a directory name to its abbreviation, use this function: - - Function: abbreviate-file-name dirname &optional hack-homedir + - Function: abbreviate-file-name DIRNAME &optional HACK-HOMEDIR This function applies abbreviations from `directory-abbrev-alist' to its argument, and substitutes `~' for the user's home directory. @@ -549,7 +549,7 @@ relative to a default directory; then it is called a "relative" file name. On Unix, an absolute file name starts with a slash or a tilde (`~'), and a relative one does not. The rules on VMS are complicated. - - Function: file-name-absolute-p filename + - Function: file-name-absolute-p FILENAME This function returns `t' if file FILENAME is an absolute file name, `nil' otherwise. On VMS, this function understands both Unix syntax and VMS syntax. @@ -573,7 +573,7 @@ you must specify the default directory name as well as the file name to be expanded. Expansion also simplifies file names by eliminating redundancies such as `./' and `NAME/../'. - - Function: expand-file-name filename &optional directory + - Function: expand-file-name FILENAME &optional DIRECTORY This function converts FILENAME to an absolute file name. If DIRECTORY is supplied, it is the directory to start with if FILENAME is relative. (The value of DIRECTORY should itself be an @@ -599,10 +599,10 @@ redundancies such as `./' and `NAME/../'. `~/' at the beginning is expanded into the user's home directory. A `/' or `~' following a `/'. - Note that `expand-file-name' does _not_ expand environment + Note that `expand-file-name' does *not* expand environment variables; only `substitute-in-file-name' does that. - - Function: file-relative-name filename &optional directory + - Function: file-relative-name FILENAME &optional DIRECTORY This function does the inverse of expansion--it tries to return a relative name that is equivalent to FILENAME when interpreted relative to DIRECTORY. @@ -628,7 +628,7 @@ redundancies such as `./' and `NAME/../'. default-directory => "/user/lewis/manual/" - - Function: substitute-in-file-name filename + - Function: substitute-in-file-name FILENAME This function replaces environment variable references in FILENAME with the environment variable values. Following standard Unix shell syntax, `$' is the prefix to substitute an environment @@ -683,7 +683,7 @@ processes from trying to use the same name. Note that the `temp-directory' function does not exist under FSF Emacs. - - Function: make-temp-name prefix + - Function: make-temp-name PREFIX This function generates a temporary file name starting with PREFIX. The Emacs process number forms part of the result, so there is no danger of generating a name being used by another @@ -708,7 +708,7 @@ File Name Completion This section describes low-level subroutines for completing a file name. For other completion functions, see *Note Completion::. - - Function: file-name-all-completions partial-filename directory + - Function: file-name-all-completions PARTIAL-FILENAME DIRECTORY This function returns a list of all possible completions for a file whose name starts with PARTIAL-FILENAME in directory DIRECTORY. The order of the completions is the order of the files in the @@ -730,7 +730,7 @@ name. For other completion functions, see *Note Completion::. (file-name-all-completions "fo" "") => ("foo") - - Function: file-name-completion filename directory + - Function: file-name-completion FILENAME DIRECTORY This function completes the file name FILENAME in directory DIRECTORY. It returns the longest prefix common to all file names in directory DIRECTORY that start with FILENAME. @@ -775,7 +775,7 @@ User Name Completion This section describes low-level subroutines for completing a user name. For other completion functions, see *Note Completion::. - - Function: user-name-all-completions partial-username + - Function: user-name-all-completions PARTIAL-USERNAME This function returns a list of all possible completions for a user whose name starts with PARTIAL-USERNAME. The order of the completions is unpredictable and conveys no useful information. @@ -783,7 +783,7 @@ name. For other completion functions, see *Note Completion::. The argument PARTIAL-USERNAME must be a partial user name containing no tilde character and no slash. - - Function: user-name-completion username + - Function: user-name-completion USERNAME This function completes the user name USERNAME. It returns the longest prefix common to all user names that start with USERNAME. @@ -791,7 +791,7 @@ name. For other completion functions, see *Note Completion::. function returns `t'. The function returns `nil' if no user name starting with USERNAME exists. - - Function: user-name-completion-1 username + - Function: user-name-completion-1 USERNAME This function completes the user name USERNAME, like `user-name-completion', differing only in the return value. This function returns the cons of the completion returned by @@ -812,8 +812,8 @@ or display the names in a buffer using the `ls' shell command. In the latter case, it can optionally display information about each file, depending on the value of switches passed to the `ls' command. - - Function: directory-files directory &optional full-name match-regexp - nosort files-only + - Function: directory-files DIRECTORY &optional FULL-NAME MATCH-REGEXP + NOSORT FILES-ONLY This function returns a list of the names of the files in the directory DIRECTORY. By default, the list is in alphabetical order. @@ -847,8 +847,8 @@ depending on the value of switches passed to the `ls' command. An error is signaled if DIRECTORY is not the name of a directory that can be read. - - Function: insert-directory file switches &optional wildcard - full-directory-p + - Function: insert-directory FILE SWITCHES &optional WILDCARD + FULL-DIRECTORY-P This function inserts (in the current buffer) a directory listing for directory FILE, formatted with `ls' according to SWITCHES. It leaves point after the inserted text. @@ -883,7 +883,7 @@ files that are directories. For example, you cannot delete a directory with `delete-file'. These special functions exist to create and delete directories. - - Command: make-directory dirname &optional parents + - Command: make-directory DIRNAME &optional PARENTS This function creates a directory named DIRNAME. Interactively, the default choice of directory to create is the current default directory for file names. That is useful when you have visited a @@ -893,7 +893,7 @@ directories. create parent directories if they don't exist. (Interactively, this always happens.) - - Command: delete-directory dirname + - Command: delete-directory DIRNAME This function deletes the directory named DIRNAME. The function `delete-file' does not work for files that are directories; you must use `delete-directory' in that case. @@ -991,14 +991,14 @@ that have two file names that may each have handlers. - Variable: inhibit-file-name-operation The operation for which certain handlers are presently inhibited. - - Function: find-file-name-handler file operation + - Function: find-file-name-handler FILE OPERATION This function returns the handler function for file name FILE, or `nil' if there is none. The argument OPERATION should be the operation to be performed on the file--the value you will pass to the handler as its first argument when you call it. The operation is needed for comparison with `inhibit-file-name-operation'. - - Function: file-local-copy filename + - Function: file-local-copy FILENAME This function copies file FILENAME to an ordinary non-magic file, if it isn't one already. @@ -1009,7 +1009,7 @@ that have two file names that may each have handlers. If FILENAME is an ordinary file name, not magic, then this function does nothing and returns `nil'. - - Function: unhandled-file-name-directory filename + - Function: unhandled-file-name-directory FILENAME This function returns the name of a directory that is not magic. It uses the directory part of FILENAME if that is not magic. Otherwise, it asks the handler what to do. @@ -1062,7 +1062,7 @@ File: lispref.info, Node: Creating a Partial File, Next: Detached Partial File Creating a Partial File ----------------------- - - Function: make-file-part &optional start end name buffer + - Function: make-file-part &optional START END NAME BUFFER Make a file part on buffer BUFFER out of the region. Call it NAME. This command creates a new buffer containing the contents of the region and marks the buffer as referring to the specified @@ -1197,13 +1197,13 @@ buffer-local variable `buffer-file-format'. encoding functions for the formats listed in `buffer-file-format', in the order of appearance in the list. - - Function: format-write-file file format + - Function: format-write-file FILE FORMAT This command writes the current buffer contents into the file FILE in format FORMAT, and makes that format the default for future saves of the buffer. The argument FORMAT is a list of format names. - - Function: format-find-file file format + - Function: format-find-file FILE FORMAT This command finds the file FILE, converting it according to format FORMAT. It also makes FORMAT the default if the buffer is saved later. @@ -1212,11 +1212,11 @@ the order of appearance in the list. `nil', no conversion takes place. Interactively, typing just for FORMAT specifies `nil'. - - Function: format-insert-file file format &optional beg end + - Function: format-insert-file FILE FORMAT &optional BEG END This command inserts the contents of file FILE, converting it according to format FORMAT. If BEG and END are non-`nil', they specify which part of the file to read, as in - `insert-file-contents' (*note Reading from Files::). + `insert-file-contents' (*note Reading from Files::.). The return value is like what `insert-file-contents' returns: a list of the absolute file name and the length of the data inserted @@ -1226,7 +1226,7 @@ the order of appearance in the list. `nil', no conversion takes place. Interactively, typing just for FORMAT specifies `nil'. - - Function: format-find-file file format + - Function: format-find-file FILE FORMAT This command finds the file FILE, converting it according to format FORMAT. It also makes FORMAT the default if the buffer is saved later. @@ -1235,11 +1235,11 @@ the order of appearance in the list. `nil', no conversion takes place. Interactively, typing just for FORMAT specifies `nil'. - - Function: format-insert-file file format &optional beg end + - Function: format-insert-file FILE FORMAT &optional BEG END This command inserts the contents of file FILE, converting it according to format FORMAT. If BEG and END are non-`nil', they specify which part of the file to read, as in - `insert-file-contents' (*note Reading from Files::). + `insert-file-contents' (*note Reading from Files::.). The return value is like what `insert-file-contents' returns: a list of the absolute file name and the length of the data inserted diff --git a/info/lispref.info-24 b/info/lispref.info-24 index 9fe2d94..94707e1 100644 --- a/info/lispref.info-24 +++ b/info/lispref.info-24 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -72,7 +72,7 @@ visiting a file, and records the decision in the variable file type of the buffer's visited file. The value is `nil' for text, `t' for binary. - - Function: find-buffer-file-type filename + - Function: find-buffer-file-type FILENAME This function determines whether file FILENAME is a text file or a binary file. It returns `nil' for text, `t' for binary. @@ -89,11 +89,11 @@ visiting a file, and records the decision in the variable don't indicate anything in particular. Its value should be `nil' for text, or `t' for binary. - - Command: find-file-text filename + - Command: find-file-text FILENAME Like `find-file', but treat the file as text regardless of its name. - - Command: find-file-binary filename + - Command: find-file-binary FILENAME Like `find-file', but treat the file as binary regardless of its name. @@ -307,7 +307,7 @@ automatically or it can ask the user whether to delete them. variables have the value 2, then the backups numbered 1 and 2 are kept as old versions and those numbered 5 and 7 are kept as new versions; backup version 3 is excess. The function `find-backup-file-name' -(*note Backup Names::) is responsible for determining which backup +(*note Backup Names::.) is responsible for determining which backup versions to delete, but does not delete them itself. - User Option: trim-versions-without-asking @@ -331,13 +331,14 @@ Naming Backup Files customize the naming conventions for backup files by redefining them. If you change one, you probably need to change the rest. - - Function: backup-file-name-p filename + - Function: backup-file-name-p FILENAME This function returns a non-`nil' value if FILENAME is a possible name for a backup file. A file with the name FILENAME need not exist; the function just checks the name. (backup-file-name-p "foo") => nil + (backup-file-name-p "foo~") => 3 @@ -356,7 +357,7 @@ If you change one, you probably need to change the rest. This simple expression is placed in a separate function to make it easy to redefine for customization. - - Function: make-backup-file-name filename + - Function: make-backup-file-name FILENAME This function returns a string that is the name to use for a non-numbered backup file for file FILENAME. On Unix, this is just FILENAME with a tilde appended. @@ -374,11 +375,11 @@ If you change one, you probably need to change the rest. (defun make-backup-file-name (filename) (concat "." filename "~")) - + (make-backup-file-name "backups.texi") => ".backups.texi~" - - Function: find-backup-file-name filename + - Function: find-backup-file-name FILENAME This function computes the file name for a new backup file for FILENAME. It may also propose certain existing backup files for deletion. `find-backup-file-name' returns a list whose CAR is the @@ -397,7 +398,7 @@ If you change one, you probably need to change the rest. (find-backup-file-name "~rms/foo") => ("~rms/foo.~5~" "~rms/foo.~3~") - - Function: file-newest-backup filename + - Function: file-newest-backup FILENAME This function returns the name of the most recent backup file for FILENAME, or `nil' if that file has no backup files. @@ -426,14 +427,14 @@ and the variables that control them. buffer-auto-save-file-name => "/xcssun/users/rms/lewis/#files.texi#" - - Command: auto-save-mode arg + - Command: auto-save-mode ARG When used interactively without an argument, this command is a toggle switch: it turns on auto-saving of the current buffer if it is off, and vice-versa. With an argument ARG, the command turns auto-saving on if the value of ARG is `t', a nonempty list, or a positive integer. Otherwise, it turns auto-saving off. - - Function: auto-save-file-name-p filename + - Function: auto-save-file-name-p FILENAME This function returns a non-`nil' value if FILENAME is a string that could be the name of an auto-save file. It works based on knowledge of the naming convention for auto-save files: a name that @@ -528,7 +529,7 @@ and the variables that control them. If this variable is non-`nil', buffers that are visiting files have auto-saving enabled by default. Otherwise, they do not. - - Command: do-auto-save &optional no-message current-only + - Command: do-auto-save &optional NO-MESSAGE CURRENT-ONLY This function auto-saves all buffers that need to be auto-saved. It saves all buffers for which auto-saving is enabled and that have been changed since the previous auto-save. @@ -598,7 +599,7 @@ mind about them, you can get rid of them by reading in the previous version of the file with the `revert-buffer' command. *Note Reverting a Buffer: (emacs)Reverting. - - Command: revert-buffer &optional check-auto-save noconfirm + - Command: revert-buffer &optional CHECK-AUTO-SAVE NOCONFIRM This command replaces the buffer text with the text of the visited file on disk. This action undoes all changes since the file was visited or saved. @@ -682,7 +683,7 @@ not be displayed in any windows. * Buffer File Name:: The buffer file name indicates which file is visited. * Buffer Modification:: A buffer is "modified" if it needs to be saved. * Modification Time:: Determining whether the visited file was changed - ``behind XEmacs's back''. + "behind XEmacs's back". * Read Only Buffers:: Modifying text is not allowed in a read-only buffer. * The Buffer List:: How to look at all the existing buffers. * Creating Buffers:: Functions that create buffers. @@ -729,7 +730,7 @@ them, see *Note Buffer-Local Variables::. variables related to the display of buffers in windows, see *Note Buffers and Windows::. - - Function: bufferp object + - Function: bufferp OBJECT This function returns `t' if OBJECT is a buffer, `nil' otherwise.  @@ -742,9 +743,9 @@ The Current Buffer time, one of them is designated as the "current buffer". This is the buffer in which most editing takes place, because most of the primitives for examining or changing text in a buffer operate implicitly on the -current buffer (*note Text::). Normally the buffer that is displayed on -the screen in the selected window is the current buffer, but this is not -always so: a Lisp program can designate any buffer as current +current buffer (*note Text::.). Normally the buffer that is displayed +on the screen in the selected window is the current buffer, but this is +not always so: a Lisp program can designate any buffer as current temporarily in order to operate on its contents, without changing what is displayed on the screen. @@ -769,7 +770,7 @@ caller if the subroutine does not change which buffer is current (unless, of course, that is the subroutine's purpose). Therefore, you should normally use `set-buffer' within a `save-excursion' that will restore the current buffer when your function is done (*note -Excursions::). Here is an example, the code for the command +Excursions::.). Here is an example, the code for the command `append-to-buffer' (with the documentation string abridged): (defun append-to-buffer (buffer start end) @@ -805,7 +806,7 @@ unbound. It is not reliable to change the current buffer back with `set-buffer', because that won't do the job if a quit happens while the -wrong buffer is current. Here is what _not_ to do: +wrong buffer is current. Here is what *not* to do: (let (buffer-read-only (obuf (current-buffer))) @@ -827,7 +828,7 @@ Using `save-excursion', as shown below, handles quitting, errors, and (current-buffer) => # - - Function: set-buffer buffer-or-name + - Function: set-buffer BUFFER-OR-NAME This function makes BUFFER-OR-NAME the current buffer. It does not display the buffer in the currently selected window or in any other window, so the user cannot necessarily see the buffer. But @@ -854,7 +855,7 @@ have names starting with a space, so that the `list-buffers' and `buffer-menu' commands don't mention them. A name starting with space also initially disables recording undo information; see *Note Undo::. - - Function: buffer-name &optional buffer + - Function: buffer-name &optional BUFFER This function returns the name of BUFFER as a string. If BUFFER is not supplied, it defaults to the current buffer. @@ -873,7 +874,7 @@ also initially disables recording undo information; see *Note Undo::. foo => # - - Command: rename-buffer newname &optional unique + - Command: rename-buffer NEWNAME &optional UNIQUE This function renames the current buffer to NEWNAME. An error is signaled if NEWNAME is not a string, or if there is already a buffer with that name. The function returns `nil'. @@ -887,7 +888,7 @@ also initially disables recording undo information; see *Note Undo::. to some other name, thus making it possible to create a second shell buffer under the name `*shell*'. - - Function: get-buffer buffer-or-name + - Function: get-buffer BUFFER-OR-NAME This function returns the buffer specified by BUFFER-OR-NAME. If BUFFER-OR-NAME is a string and there is no buffer with that name, the value is `nil'. If BUFFER-OR-NAME is a buffer, it is returned @@ -904,7 +905,7 @@ also initially disables recording undo information; see *Note Undo::. See also the function `get-buffer-create' in *Note Creating Buffers::. - - Function: generate-new-buffer-name starting-name &optional ignore + - Function: generate-new-buffer-name STARTING-NAME &optional IGNORE This function returns a name that would be unique for a new buffer--but does not create the buffer. It starts with STARTING-NAME, and produces a name not currently in use for any @@ -930,7 +931,7 @@ nondirectory part of the buffer file name, but the buffer file name and the buffer name are distinct and can be set independently. *Note Visiting Files::. - - Function: buffer-file-name &optional buffer + - Function: buffer-file-name &optional BUFFER This function returns the absolute file name of the file that BUFFER is visiting. If BUFFER is not visiting any file, `buffer-file-name' returns `nil'. If BUFFER is not supplied, it @@ -971,10 +972,10 @@ Visiting Files::. accessible on the system. See the function `file-attributes', in *Note File Attributes::, for more information about them. - - Function: get-file-buffer filename + - Function: get-file-buffer FILENAME This function returns the buffer visiting file FILENAME. If there is no such buffer, it returns `nil'. The argument FILENAME, which - must be a string, is expanded (*note File Name Expansion::), then + must be a string, is expanded (*note File Name Expansion::.), then compared against the visited file names of all live buffers. (get-file-buffer "buffers.texi") @@ -984,10 +985,10 @@ Visiting Files::. visiting the same file name. In such cases, this function returns the first such buffer in the buffer list. - - Command: set-visited-file-name filename + - Command: set-visited-file-name FILENAME If FILENAME is a non-empty string, this function changes the name of the file visited in current buffer to FILENAME. (If the buffer - had no visited file, this gives it one.) The _next time_ the + had no visited file, this gives it one.) The *next time* the buffer is saved it will go in the newly-specified file. This command marks the buffer as modified, since it does not (as far as XEmacs knows) match the contents of FILENAME, even if it matched @@ -1019,8 +1020,8 @@ record whether you have changed the text of the buffer. This flag is set to `t' whenever you alter the contents of the buffer, and cleared to `nil' when you save it. Thus, the flag shows whether there are unsaved changes. The flag value is normally shown in the modeline -(*note Modeline Variables::), and controls saving (*note Saving -Buffers::) and auto-saving (*note Auto-Saving::). +(*note Modeline Variables::.), and controls saving (*note Saving +Buffers::.) and auto-saving (*note Auto-Saving::.). Some Lisp programs set the flag explicitly. For example, the function `set-visited-file-name' sets the flag to `t', because the text @@ -1030,13 +1031,13 @@ file formerly visited. The functions that modify the contents of buffers are described in *Note Text::. - - Function: buffer-modified-p &optional buffer + - Function: buffer-modified-p &optional BUFFER This function returns `t' if the buffer BUFFER has been modified since it was last read in from a file or saved, or `nil' otherwise. If BUFFER is not supplied, the current buffer is tested. - - Function: set-buffer-modified-p flag + - Function: set-buffer-modified-p FLAG This function marks the current buffer as modified if FLAG is non-`nil', or as unmodified if the flag is `nil'. @@ -1046,14 +1047,14 @@ file formerly visited. (set-buffer-modified-p (buffer-modified-p)) - - Command: not-modified &optional arg + - Command: not-modified &optional ARG This command marks the current buffer as unmodified, and not needing to be saved. (If ARG is non-`nil', the buffer is instead marked as modified.) Don't use this function in programs, since it prints a message in the echo area; use `set-buffer-modified-p' (above) instead. - - Function: buffer-modified-tick &optional buffer + - Function: buffer-modified-tick &optional BUFFER This function returns BUFFER`s modification-count. This is a counter that increments every time the buffer is modified. If BUFFER is `nil' (or omitted), the current buffer is used. @@ -1071,7 +1072,7 @@ be what you want, but usually it would lose valuable information. XEmacs therefore checks the file's modification time using the functions described below before saving the file. - - Function: verify-visited-file-modtime buffer + - Function: verify-visited-file-modtime BUFFER This function compares what BUFFER has recorded for the modification time of its visited file against the actual modification time of the file as recorded by the operating system. @@ -1097,7 +1098,7 @@ described below before saving the file. format that `file-attributes' uses to return time values; see *Note File Attributes::.) - - Function: set-visited-file-modtime &optional time + - Function: set-visited-file-modtime &optional TIME This function updates the buffer's record of the last modification time of the visited file, to the value specified by TIME if TIME is not `nil', and otherwise to the last modification time of the @@ -1111,7 +1112,7 @@ described below before saving the file. normally, or if the file itself has been changed for some known benign reason. - - Function: ask-user-about-supersession-threat filename + - Function: ask-user-about-supersession-threat FILENAME This function is used to ask a user how to proceed after an attempt to modify an obsolete buffer visiting file FILENAME. An "obsolete buffer" is an unmodified buffer for which the associated diff --git a/info/lispref.info-25 b/info/lispref.info-25 index b35c053..10440f3 100644 --- a/info/lispref.info-25 +++ b/info/lispref.info-25 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -72,7 +72,7 @@ that is independent of the buffer list orders for any particular frame. Note that the different buffer lists all contain the same elements. It is only the order of those elements that is different. - - Function: buffer-list &optional frame + - Function: buffer-list &optional FRAME This function returns a list of all buffers, including those whose names begin with a space. The elements are actual buffers, not their names. The order of the list is specific to FRAME, which @@ -96,7 +96,7 @@ It is only the order of those elements that is different. This list is a copy of a list used inside XEmacs; modifying it has no effect on the buffers. - - Function: other-buffer &optional buffer-or-name frame visible-ok + - Function: other-buffer &optional BUFFER-OR-NAME FRAME VISIBLE-OK This function returns the first buffer in the buffer list other than BUFFER-OR-NAME, in FRAME's ordering for the buffer list. (FRAME defaults to the current frame. If FRAME is `t', then the @@ -128,14 +128,14 @@ It is only the order of those elements that is different. VISIBLE-OK is the second argument instead of the third. FSF Emacs 19. - - Command: list-buffers &optional files-only + - Command: list-buffers &optional FILES-ONLY This function displays a listing of the names of existing buffers. It clears the buffer `*Buffer List*', then inserts the listing into that buffer and displays it in a window. `list-buffers' is intended for interactive use, and is described fully in `The XEmacs Reference Manual'. It returns `nil'. - - Command: bury-buffer &optional buffer-or-name + - Command: bury-buffer &optional BUFFER-OR-NAME This function puts BUFFER-OR-NAME at the end of the buffer list without changing the order of any of the other buffers on the list. This buffer therefore becomes the least desirable candidate for @@ -162,11 +162,11 @@ with the specified name; `generate-new-buffer' always creates a new buffer and gives it a unique name. Other functions you can use to create buffers include -`with-output-to-temp-buffer' (*note Temporary Displays::) and -`create-file-buffer' (*note Visiting Files::). Starting a subprocess -can also create a buffer (*note Processes::). +`with-output-to-temp-buffer' (*note Temporary Displays::.) and +`create-file-buffer' (*note Visiting Files::.). Starting a subprocess +can also create a buffer (*note Processes::.). - - Function: get-buffer-create name + - Function: get-buffer-create NAME This function returns a buffer named NAME. It returns an existing buffer with that name, if one exists; otherwise, it creates a new buffer. The buffer does not become the current buffer--this @@ -181,7 +181,7 @@ can also create a buffer (*note Processes::). variable `default-major-mode' is handled at a higher level. *Note Auto Major Mode::. - - Function: generate-new-buffer name + - Function: generate-new-buffer NAME This function returns a newly created, empty buffer, but does not make it current. If there is no buffer named NAME, then that is the name of the new buffer. If that name is in use, this function @@ -234,11 +234,11 @@ buffers, the indirect buffers are automatically killed as well. buffer has been killed, you can either use this feature or the function `buffer-live-p'. - - Function: buffer-live-p buffer + - Function: buffer-live-p BUFFER This function returns `nil' if BUFFER is deleted, and `t' otherwise. - - Command: kill-buffer buffer-or-name + - Command: kill-buffer BUFFER-OR-NAME This function kills the buffer BUFFER-OR-NAME, freeing all its memory for use as space for other buffers. (Emacs version 18 and older was unable to return the memory to the operating system.) @@ -320,7 +320,7 @@ base buffer. Killing an indirect buffer has no effect on its base buffer. Killing the base buffer kills all its indirect children. - - Command: make-indirect-buffer base-buffer name + - Command: make-indirect-buffer BASE-BUFFER NAME This creates an indirect buffer named NAME whose base buffer is BASE-BUFFER. The argument BASE-BUFFER may be a buffer or a string. @@ -330,7 +330,7 @@ the base buffer kills all its indirect children. (make-indirect-buffer "*scratch*" "indirect") => # - - Function: buffer-base-buffer &optional buffer + - Function: buffer-base-buffer &optional BUFFER This function returns the base buffer of BUFFER. If BUFFER is not indirect, the value is `nil'. Otherwise, the value is another buffer, which is never an indirect buffer. If BUFFER is not @@ -339,7 +339,7 @@ the base buffer kills all its indirect children. (buffer-base-buffer (get-buffer "indirect")) => # - - Function: buffer-indirect-children &optional buffer + - Function: buffer-indirect-children &optional BUFFER This function returns a list of all indirect buffers whose base buffer is BUFFER. If BUFFER is indirect, the return value will always be nil; see `make-indirect-buffer'. If BUFFER is not @@ -404,8 +404,8 @@ has been used). *Note Current Buffer::. For practical purposes, a window exists only while it is displayed in a frame. Once removed from the frame, the window is effectively deleted -and should not be used, _even though there may still be references to -it_ from other Lisp objects. Restoring a saved window configuration is +and should not be used, *even though there may still be references to +it* from other Lisp objects. Restoring a saved window configuration is the only way for a window no longer on the screen to come back to life. (*Note Deleting Windows::.) @@ -454,7 +454,7 @@ Windows::, and *Note Size of Window::. *Note Display::, for information on how the contents of the window's buffer are displayed in the window. - - Function: windowp object + - Function: windowp OBJECT This function returns `t' if OBJECT is a window.  @@ -466,13 +466,13 @@ Splitting Windows The functions described here are the primitives used to split a window into two windows. Two higher level functions sometimes split a window, but not always: `pop-to-buffer' and `display-buffer' (*note -Displaying Buffers::). +Displaying Buffers::.). The functions described here do not accept a buffer as an argument. The two "halves" of the split window initially display the same buffer previously visible in the window that was split. - - Function: one-window-p &optional no-mini all-frames + - Function: one-window-p &optional NO-MINI ALL-FRAMES This function returns non-`nil' if there is only one window. The argument NO-MINI, if non-`nil', means don't count the minibuffer even if it is active; otherwise, the minibuffer window is @@ -497,7 +497,7 @@ previously visible in the window that was split. WINDOW's frame are counted, excluding the minibuffer in use if it lies in some other frame. - - Command: split-window &optional window size horizontal + - Command: split-window &optional WINDOW SIZE HORIZONTAL This function splits WINDOW into two windows. The original window WINDOW remains the selected window, but occupies only part of its former screen area. The rest is occupied by a newly created @@ -524,19 +524,21 @@ previously visible in the window that was split. => # (window-edges) ; Edges in order: => (0 0 80 50) ; left-top-right-bottom - + ;; Returns window created (setq w2 (split-window w 15)) => # + (window-edges w2) => (0 15 80 50) ; Bottom window; ; top is line 15 + (window-edges w) => (0 0 80 15) ; Top window The frame looks like this: - __________ + __________ | | line 0 | w | |__________| @@ -550,16 +552,19 @@ previously visible in the window that was split. (setq w3 (split-window w 35 t)) => # + (window-edges w3) => (35 0 80 15) ; Left edge at column 35 + (window-edges w) => (0 0 35 15) ; Right edge at column 35 + (window-edges w2) => (0 15 80 50) ; Bottom window unchanged Now, the screen looks like this: - column 35 + column 35 __________ | | | line 0 | w | w3 | @@ -575,7 +580,7 @@ previously visible in the window that was split. or `|' characters. The display table can specify alternative border characters; see *Note Display Tables::. - - Command: split-window-vertically &optional size + - Command: split-window-vertically &optional SIZE This function splits the selected window into two windows, one above the other, leaving the selected window with SIZE lines. @@ -587,7 +592,7 @@ previously visible in the window that was split. (interactive "P") (split-window nil (and arg (prefix-numeric-value arg)))) - - Command: split-window-horizontally &optional size + - Command: split-window-horizontally &optional SIZE This function splits the selected window into two windows side-by-side, leaving the selected window with SIZE columns. @@ -600,7 +605,7 @@ previously visible in the window that was split. (interactive "P") (split-window nil (and arg (prefix-numeric-value arg)) t)) - - Function: one-window-p &optional no-mini all-frames + - Function: one-window-p &optional NO-MINI ALL-FRAMES This function returns non-`nil' if there is only one window. The argument NO-MINI, if non-`nil', means don't count the minibuffer even if it is active; otherwise, the minibuffer window is @@ -638,21 +643,21 @@ calling certain functions that delete windows. A deleted window cannot appear on the screen, but continues to exist as a Lisp object until there are no references to it. There is no way to cancel the deletion of a window aside from restoring a saved window configuration (*note -Window Configurations::). Restoring a window configuration also +Window Configurations::.). Restoring a window configuration also deletes any windows that aren't part of that configuration. When you delete a window, the space it took up is given to one adjacent sibling. (In Emacs version 18, the space was divided evenly among all the siblings.) - - Function: window-live-p window + - Function: window-live-p WINDOW This function returns `nil' if WINDOW is deleted, and `t' otherwise. *Warning:* Erroneous information or fatal errors may result from using a deleted window as if it were live. - - Command: delete-window &optional window + - Command: delete-window &optional WINDOW This function removes WINDOW from the display. If WINDOW is omitted, then the selected window is deleted. An error is signaled if there is only one window when `delete-window' is called. @@ -662,14 +667,14 @@ among all the siblings.) When `delete-window' is called interactively, WINDOW defaults to the selected window. - - Command: delete-other-windows &optional window + - Command: delete-other-windows &optional WINDOW This function makes WINDOW the only window on its frame, by deleting the other windows in that frame. If WINDOW is omitted or `nil', then the selected window is used by default. The result is `nil'. - - Command: delete-windows-on buffer &optional frame + - Command: delete-windows-on BUFFER &optional FRAME This function deletes all windows showing BUFFER. If there are no windows showing BUFFER, it does nothing. @@ -704,7 +709,7 @@ Selecting Windows When a window is selected, the buffer in the window becomes the current buffer, and the cursor will appear in it. - - Function: selected-window &optional device + - Function: selected-window &optional DEVICE This function returns the selected window. This is the window in which the cursor appears and to which many commands apply. Each separate device can have its own selected window, which is @@ -712,7 +717,7 @@ current buffer, and the cursor will appear in it. argument DEVICE specifies which device to return the selected window for, and defaults to the selected device. - - Function: select-window window &optional norecord + - Function: select-window WINDOW &optional NORECORD This function makes WINDOW the selected window. The cursor then appears in WINDOW (on redisplay). The buffer being displayed in WINDOW is immediately designated the current buffer. @@ -727,7 +732,7 @@ current buffer, and the cursor will appear in it. (select-window w) => # - - Macro: save-selected-window forms... + - Macro: save-selected-window FORMS... This macro records the selected window, executes FORMS in sequence, then restores the earlier selected window. It does not save or restore anything about the sizes, arrangement or contents @@ -737,7 +742,7 @@ current buffer, and the cursor will appear in it. The following functions choose one of the windows on the screen, offering various criteria for the choice. - - Function: get-lru-window &optional frame + - Function: get-lru-window &optional FRAME This function returns the window least recently "used" (that is, selected). The selected window is always the most recently used window. @@ -760,7 +765,7 @@ offering various criteria for the choice. * If it is a frame, consider windows on that frame. - - Function: get-largest-window &optional frame + - Function: get-largest-window &optional FRAME This function returns the window with the largest area (height times width). If there are no side-by-side windows, then this is the window with the most lines. A minibuffer window is never a @@ -796,7 +801,7 @@ horizontal, the ordering is top to bottom in the left part, and so on. In general, within each set of siblings at any level in the window tree, the order is left to right, or top to bottom. - - Function: next-window &optional window minibuf all-frames + - Function: next-window &optional WINDOW MINIBUF ALL-FRAMES This function returns the window following WINDOW in the cyclic ordering of windows. This is the window that `C-x o' would select if typed when WINDOW is selected. If WINDOW is the only window @@ -847,12 +852,12 @@ the order is left to right, or top to bottom. (next-window (next-window (selected-window))) => # - - Function: previous-window &optional window minibuf all-frames + - Function: previous-window &optional WINDOW MINIBUF ALL-FRAMES This function returns the window preceding WINDOW in the cyclic ordering of windows. The other arguments specify which windows to include in the cycle, as in `next-window'. - - Command: other-window count &optional frame + - Command: other-window COUNT &optional FRAME This function selects the COUNTth following window in the cyclic order. If count is negative, then it selects the -COUNTth preceding window. It returns `nil'. @@ -876,7 +881,7 @@ the order is left to right, or top to bottom. * If it is any other value, then the behavior is undefined. - - Function: walk-windows proc &optional minibuf all-frames + - Function: walk-windows PROC &optional MINIBUF ALL-FRAMES This function cycles through all windows, calling `proc' once for each window with the window as its sole argument. @@ -897,14 +902,14 @@ and specify a buffer for it. The functions described there are easier to use than these, but they employ heuristics in choosing or creating a window; use these functions when you need complete control. - - Function: set-window-buffer window buffer-or-name + - Function: set-window-buffer WINDOW BUFFER-OR-NAME This function makes WINDOW display BUFFER-OR-NAME as its contents. It returns `nil'. (set-window-buffer (selected-window) "foo") => nil - - Function: window-buffer &optional window + - Function: window-buffer &optional WINDOW This function returns the buffer that WINDOW is displaying. If WINDOW is omitted, this function returns the buffer for the selected window. @@ -912,7 +917,7 @@ window; use these functions when you need complete control. (window-buffer) => # - - Function: get-buffer-window buffer-or-name &optional frame + - Function: get-buffer-window BUFFER-OR-NAME &optional FRAME This function returns a window currently displaying BUFFER-OR-NAME, or `nil' if there is none. If there are several such windows, then the function returns the first one in the @@ -949,11 +954,11 @@ you more precise control. current so that a Lisp program can access or modify it; they are too drastic for that purpose, since they change the display of buffers in windows, which is gratuitous and will surprise the user. Instead, use -`set-buffer' (*note Current Buffer::) and `save-excursion' (*note -Excursions::), which designate buffers as current for programmed access -without affecting the display of buffers in windows. +`set-buffer' (*note Current Buffer::.) and `save-excursion' (*note +Excursions::.), which designate buffers as current for programmed +access without affecting the display of buffers in windows. - - Command: switch-to-buffer buffer-or-name &optional norecord + - Command: switch-to-buffer BUFFER-OR-NAME &optional NORECORD This function makes BUFFER-OR-NAME the current buffer, and also displays the buffer in the selected window. This means that a human can see the buffer and subsequent keyboard commands will @@ -974,7 +979,7 @@ without affecting the display of buffers in windows. the binding of `C-x b'. It is also used frequently in programs. It always returns `nil'. - - Command: switch-to-buffer-other-window buffer-or-name + - Command: switch-to-buffer-other-window BUFFER-OR-NAME This function makes BUFFER-OR-NAME the current buffer and displays it in a window not currently selected. It then selects that window. The handling of the buffer is the same as in @@ -986,8 +991,8 @@ without affecting the display of buffers in windows. already displaying the buffer, then it continues to do so, but another window is nonetheless found to display it in as well. - - Function: pop-to-buffer buffer-or-name &optional other-window - on-frame + - Function: pop-to-buffer BUFFER-OR-NAME &optional OTHER-WINDOW + ON-FRAME This function makes BUFFER-OR-NAME the current buffer and switches to it in some window, preferably not the window previously selected. The "popped-to" window becomes the selected window @@ -1029,7 +1034,7 @@ without affecting the display of buffers in windows. An example use of this function is found at the end of *Note Filter Functions::. - - Command: replace-buffer-in-windows buffer + - Command: replace-buffer-in-windows BUFFER This function replaces BUFFER with some other buffer in all windows displaying it. The other buffer used is chosen with `other-buffer'. In the usual applications of this function, you @@ -1049,7 +1054,7 @@ display a buffer in--`display-buffer'. All the higher-level functions and commands use this subroutine. Here we describe how to use `display-buffer' and how to customize it. - - Command: display-buffer buffer-or-name &optional not-this-window + - Command: display-buffer BUFFER-OR-NAME &optional NOT-THIS-WINDOW This command makes BUFFER-OR-NAME appear in some window, like `pop-to-buffer', but it does not select that window and does not make the buffer current. The identity of the selected window is @@ -1072,11 +1077,11 @@ and commands use this subroutine. Here we describe how to use XEmacs will not automatically change which buffer appears in the window, such as `display-buffer' might normally do. - - Function: window-dedicated-p window + - Function: window-dedicated-p WINDOW This function returns WINDOW's dedicated object, usually `t' or `nil'. - - Function: set-window-buffer-dedicated window buffer + - Function: set-window-buffer-dedicated WINDOW BUFFER This function makes WINDOW display BUFFER and be dedicated to that buffer. Then XEmacs will not automatically change which buffer appears in WINDOW. If BUFFER is `nil', this function makes WINDOW @@ -1163,7 +1168,7 @@ window, such as `display-buffer' might normally do. The default value of this variable is `special-display-popup-frame'. - - Function: special-display-popup-frame buffer + - Function: special-display-popup-frame BUFFER This function makes BUFFER visible in a frame of its own. If BUFFER is already displayed in a window in some frame, it makes the frame visible and raises it, to use that window. Otherwise, it @@ -1204,11 +1209,11 @@ window, such as `display-buffer' might normally do. A window can be marked as "dedicated" to its buffer. Then `display-buffer' does not try to use that window. - - Function: window-dedicated-p window + - Function: window-dedicated-p WINDOW This function returns `t' if WINDOW is marked as dedicated; otherwise `nil'. - - Function: set-window-dedicated-p window flag + - Function: set-window-dedicated-p WINDOW FLAG This function marks WINDOW as dedicated if FLAG is non-`nil', and nondedicated otherwise. diff --git a/info/lispref.info-26 b/info/lispref.info-26 index d580a61..70ca03b 100644 --- a/info/lispref.info-26 +++ b/info/lispref.info-26 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -80,7 +80,7 @@ to have multiple windows showing one buffer. when the user switches to another buffer, the cursor jumps to the position of point in that buffer. - - Function: window-point window + - Function: window-point WINDOW This function returns the current position of point in WINDOW. For a nonselected window, this is the value point would have (in that window's buffer) if that window were selected. @@ -93,7 +93,7 @@ position of point in that buffer. "top-level" value of point, outside of any `save-excursion' forms. But that value is hard to find. - - Function: set-window-point window position + - Function: set-window-point WINDOW POSITION This function positions point in WINDOW at position POSITION in WINDOW's buffer. @@ -110,7 +110,7 @@ is called the "display-start" position of the window (or just the the upper left corner of the window. It is usually, but not inevitably, at the beginning of a text line. - - Function: window-start &optional window + - Function: window-start &optional WINDOW This function returns the display-start position of window WINDOW. If WINDOW is `nil', the selected window is used. For example, @@ -124,7 +124,7 @@ inevitably, at the beginning of a text line. For a realistic example, see the description of `count-lines' in *Note Text Lines::. - - Function: window-end &optional window + - Function: window-end &optional WINDOW This function returns the position of the end of the display in window WINDOW. If WINDOW is `nil', the selected window is used. @@ -138,7 +138,7 @@ inevitably, at the beginning of a text line. correct. In a future version, `window-end' will return `nil' in that case. - - Function: set-window-start window position &optional noforce + - Function: set-window-start WINDOW POSITION &optional NOFORCE This function sets the display-start position of WINDOW to POSITION in WINDOW's buffer. It returns POSITION. @@ -189,7 +189,7 @@ inevitably, at the beginning of a text line. at the next redisplay, then redisplay computes a new window-start position that works well with point, and thus POSITION is not used. - - Function: pos-visible-in-window-p &optional position window + - Function: pos-visible-in-window-p &optional POSITION WINDOW This function returns `t' if POSITION is within the range of text currently visible on the screen in WINDOW. It returns `nil' if POSITION is scrolled vertically out of view. The argument @@ -236,7 +236,7 @@ names that fit the user's point of view. unpredictable results if the current buffer is different from the buffer that is displayed in the selected window. *Note Current Buffer::. - - Command: scroll-up &optional count + - Command: scroll-up &optional COUNT This function scrolls the text in the selected window upward COUNT lines. If COUNT is negative, scrolling is actually downward. @@ -246,7 +246,7 @@ that is displayed in the selected window. *Note Current Buffer::. `scroll-up' returns `nil'. - - Command: scroll-down &optional count + - Command: scroll-down &optional COUNT This function scrolls the text in the selected window downward COUNT lines. If COUNT is negative, scrolling is actually upward. @@ -256,7 +256,7 @@ that is displayed in the selected window. *Note Current Buffer::. `scroll-down' returns `nil'. - - Command: scroll-other-window &optional count + - Command: scroll-other-window &optional COUNT This function scrolls the text in another window upward COUNT lines. Negative values of COUNT, or `nil', are handled as in `scroll-up'. @@ -302,7 +302,7 @@ that is displayed in the selected window. *Note Current Buffer::. bottom of the window appear instead at the top. The default value is `2'. - - Command: recenter &optional count + - Command: recenter &optional COUNT This function scrolls the selected window to put the text where point is located at a specified vertical position within the window. @@ -361,14 +361,14 @@ far as to reduce the net horizontal scroll to zero. There is no limit to how far left you can scroll, but eventually all the text will disappear off the left edge. - - Command: scroll-left count + - Command: scroll-left COUNT This function scrolls the selected window COUNT columns to the left (or to the right if COUNT is negative). The return value is the total amount of leftward horizontal scrolling in effect after the change--just like the value returned by `window-hscroll' (below). - - Command: scroll-right count + - Command: scroll-right COUNT This function scrolls the selected window COUNT columns to the right (or to the left if COUNT is negative). The return value is the total amount of leftward horizontal scrolling in effect after @@ -379,7 +379,7 @@ disappear off the left edge. normal position where the total leftward scrolling is zero, attempts to scroll any farther right have no effect. - - Function: window-hscroll &optional window + - Function: window-hscroll &optional WINDOW This function returns the total leftward horizontal scrolling of WINDOW--the number of columns by which the text in WINDOW is scrolled left past the left margin. @@ -396,7 +396,7 @@ disappear off the left edge. (window-hscroll) => 5 - - Function: set-window-hscroll window columns + - Function: set-window-hscroll WINDOW COLUMNS This function sets the number of columns from the left margin that WINDOW is scrolled to the value of COLUMNS. The argument COLUMNS should be zero or positive; if not, it is taken as zero. @@ -439,7 +439,7 @@ or various different fonts in the window. The following functions return size information about a window: - - Function: window-height &optional window + - Function: window-height &optional WINDOW This function returns the number of lines in WINDOW, including its modeline but not including the horizontal scrollbar, if any (this is different from `window-pixel-height'). If WINDOW is `nil', the @@ -452,7 +452,7 @@ or various different fonts in the window. (window-height) => 20 - - Function: window-width &optional window + - Function: window-width &optional WINDOW This function returns the number of columns in WINDOW, not including any left margin, right margin, or vertical scrollbar (this is different from `window-pixel-width'). If WINDOW is @@ -477,7 +477,7 @@ they wrap. This is usually the case for horizontally split windows but not for full-frame windows. You can change this using the variables `truncate-lines' and `truncate-partial-width-windows'.) - - Function: window-pixel-height &optional window + - Function: window-pixel-height &optional WINDOW This function returns the height of WINDOW in pixels, including its modeline and horizontal scrollbar, if any. If WINDOW is `nil', the function uses the selected window. @@ -489,7 +489,7 @@ not for full-frame windows. You can change this using the variables (window-pixel-height) => 300 - - Function: window-pixel-width &optional window + - Function: window-pixel-width &optional WINDOW This function returns the width of WINDOW in pixels, including any left margin, right margin, or vertical scrollbar that may be displayed alongside it. If WINDOW is `nil', the function uses the @@ -506,20 +506,20 @@ not for full-frame windows. You can change this using the variables (window-pixel-height) => 600 - - Function: window-text-area-pixel-height &optional window + - Function: window-text-area-pixel-height &optional WINDOW This function returns the height in pixels of the text displaying portion of WINDOW, which defaults to the selected window. Unlike `window-pixel-height', the space occupied by the modeline and horizontal scrollbar, if any, is not counted. - - Function: window-text-area-pixel-width &optional window + - Function: window-text-area-pixel-width &optional WINDOW This function returns the width in pixels of the text displaying portion of WINDOW, which defaults to the selected window. Unlike `window-pixel-width', the space occupied by the vertical scrollbar and divider, if any, is not counted. - - Function: window-displayed-text-pixel-height &optional window - noclipped + - Function: window-displayed-text-pixel-height &optional WINDOW + NOCLIPPED This function returns the height in pixels of the text displayed in WINDOW, which defaults to the selected window. Unlike `window-text-area-pixel-height', any blank space below the end of @@ -537,7 +537,7 @@ The Position of a Window windows within a frame, and the relative location of a window in comparison to other windows in the same frame. - - Function: window-pixel-edges &optional window + - Function: window-pixel-edges &optional WINDOW This function returns a list of the pixel edge coordinates of WINDOW. If WINDOW is `nil', the selected window is used. @@ -561,15 +561,15 @@ comparison to other windows in the same frame. make sense in a world with variable-width and variable-height lines, as are allowed in XEmacs. - - Function: window-highest-p window + - Function: window-highest-p WINDOW This function returns non-`nil' if WINDOW is along the top of its frame. - - Function: window-lowest-p window + - Function: window-lowest-p WINDOW This function returns non-`nil' if WINDOW is along the bottom of its frame. - - Function: window-text-area-pixel-edges &optional window + - Function: window-text-area-pixel-edges &optional WINDOW This function allows one to determine the location of the text-displaying portion of WINDOW, which defaults to the selected window, with respect to the top left corner of the window. It @@ -588,7 +588,7 @@ that change the size of windows and low-level functions that access window size. XEmacs does not permit overlapping windows or gaps between windows, so resizing one window affects other windows. - - Command: enlarge-window size &optional horizontal window + - Command: enlarge-window SIZE &optional HORIZONTAL WINDOW This function makes the selected window SIZE lines taller, stealing lines from neighboring windows. It takes the lines from one window at a time until that window is used up, then takes from @@ -614,20 +614,20 @@ windows, so resizing one window affects other windows. `enlarge-window' returns `nil'. - - Command: enlarge-window-horizontally columns + - Command: enlarge-window-horizontally COLUMNS This function makes the selected window COLUMNS wider. It could be defined as follows: (defun enlarge-window-horizontally (columns) (enlarge-window columns t)) - - Command: enlarge-window-pixels count &optional side window + - Command: enlarge-window-pixels COUNT &optional SIDE WINDOW This function makes the selected window COUNT pixels larger. When called from Lisp, optional second argument SIDE non-`nil' means to grow sideways COUNT pixels, and optional third argument WINDOW specifies the window to change instead of the selected window. - - Command: shrink-window size &optional horizontal window + - Command: shrink-window SIZE &optional HORIZONTAL WINDOW This function is like `enlarge-window' but negates the argument SIZE, making the selected window smaller by giving lines (or columns) to the other windows. If the window shrinks below @@ -639,14 +639,14 @@ windows, so resizing one window affects other windows. If WINDOW is non-`nil', it specifies a window to change instead of the selected window. - - Command: shrink-window-horizontally columns + - Command: shrink-window-horizontally COLUMNS This function makes the selected window COLUMNS narrower. It could be defined as follows: (defun shrink-window-horizontally (columns) (shrink-window columns t)) - - Command: shrink-window-pixels count &optional side window + - Command: shrink-window-pixels COUNT &optional SIDE WINDOW This function makes the selected window COUNT pixels smaller. When called from Lisp, optional second argument SIDE non-`nil' means to shrink sideways COUNT pixels, and optional third argument @@ -717,7 +717,7 @@ Configurations::. the positions of point and the mark. An exception is made for point in the current buffer, whose value is not saved. - - Function: set-window-configuration configuration + - Function: set-window-configuration CONFIGURATION This function restores the configuration of XEmacs's windows and buffers to the state specified by CONFIGURATION. The argument CONFIGURATION must be a value that was previously returned by @@ -737,7 +737,7 @@ Configurations::. ...) (set-window-configuration config))) - - Special Form: save-window-excursion forms... + - Special Form: save-window-excursion FORMS... This special form records the window configuration, executes FORMS in sequence, then restores the earlier window configuration. The window configuration includes the value of point and the portion @@ -768,7 +768,7 @@ Configurations::. => do-something ;; The frame is now split again. - - Function: window-configuration-p object + - Function: window-configuration-p OBJECT This function returns `t' if OBJECT is a window configuration. Primitives to look inside of window configurations would make sense, @@ -795,7 +795,7 @@ a TTY frame; instead, it starts with a single "X window frame". It can display multiple X window frames at the same time, each in its own X window. - - Function: framep object + - Function: framep OBJECT This predicate returns `t' if OBJECT is a frame, and `nil' otherwise. @@ -826,7 +826,7 @@ Creating Frames To create a new frame, call the function `make-frame'. - - Function: make-frame &optional props device + - Function: make-frame &optional PROPS DEVICE This function creates a new frame on DEVICE, if DEVICE permits creation of frames. (An X server does; an ordinary terminal does not (yet).) DEVICE defaults to the selected device if omitted. @@ -878,19 +878,19 @@ Access to Frame Properties These functions let you read and change the properties of a frame. - - Function: frame-properties &optional frame + - Function: frame-properties &optional FRAME This function returns a plist listing all the properties of FRAME and their values. - - Function: frame-property frame property &optional default + - Function: frame-property FRAME PROPERTY &optional DEFAULT This function returns FRAME's value for the property PROPERTY. - - Function: set-frame-properties frame plist + - Function: set-frame-properties FRAME PLIST This function alters the properties of frame FRAME based on the elements of property list PLIST. If you don't mention a property in PLIST, its value doesn't change. - - Function: set-frame-property frame prop val + - Function: set-frame-property FRAME PROP VAL This function sets the property PROP of frame FRAME to the value VAL. @@ -1001,12 +1001,12 @@ information in non-X frames. then POS is positive! `icon-left' - The screen position of the left edge _of the frame's icon_, in + The screen position of the left edge *of the frame's icon*, in pixels, counting from the left edge of the screen. This takes effect if and when the frame is iconified. `icon-top' - The screen position of the top edge _of the frame's icon_, in + The screen position of the top edge *of the frame's icon*, in pixels, counting from the top edge of the screen. This takes effect if and when the frame is iconified. @@ -1083,24 +1083,24 @@ in its usual fashion. Here are some special features for working with sizes and positions: - - Function: set-frame-position frame left top + - Function: set-frame-position FRAME LEFT TOP This function sets the position of the top left corner of FRAME to LEFT and TOP. These arguments are measured in pixels, and count from the top left corner of the screen. Negative property values count up or rightward from the top left corner of the screen. - - Function: frame-height &optional frame - - Function: frame-width &optional frame + - Function: frame-height &optional FRAME + - Function: frame-width &optional FRAME These functions return the height and width of FRAME, measured in lines and columns. If you don't supply FRAME, they use the selected frame. - - Function: frame-pixel-height &optional frame - - Function: frame-pixel-width &optional frame + - Function: frame-pixel-height &optional FRAME + - Function: frame-pixel-width &optional FRAME These functions return the height and width of FRAME, measured in pixels. If you don't supply FRAME, they use the selected frame. - - Function: set-frame-size frame cols rows &optional pretend + - Function: set-frame-size FRAME COLS ROWS &optional PRETEND This function sets the size of FRAME, measured in characters; COLS and ROWS specify the new width and height. (If PRETEND is non-nil, it means that redisplay should act as if the frame's size @@ -1124,7 +1124,7 @@ of the frame. A frame's name is used to look up its resources and does not normally change over the lifetime of a frame. It is perfectly allowable, and quite common, for multiple frames to have the same name. - - Function: frame-name &optional frame + - Function: frame-name &optional FRAME This function returns the name of FRAME, which defaults to the selected frame if not specified. The name of a frame can also be obtained from the frame's properties. *Note Frame Properties::. @@ -1160,7 +1160,7 @@ variable `frame-title-format'. frame, when you have not explicitly specified the frame title. This title appears in the icon itself. - - Function: x-set-frame-icon-pixmap frame pixmap &optional mask + - Function: x-set-frame-icon-pixmap FRAME PIXMAP &optional MASK This function sets the icon of the given frame to the given image instance, which should be an image instance object (as returned by `make-image-instance'), a glyph object (as returned by @@ -1188,11 +1188,11 @@ Deleting Frames them. A deleted frame cannot appear on the screen, but continues to exist as a Lisp object until there are no references to it. - - Command: delete-frame &optional frame + - Command: delete-frame &optional FRAME This function deletes the frame FRAME. By default, FRAME is the selected frame. - - Function: frame-live-p frame + - Function: frame-live-p FRAME The function `frame-live-p' returns non-`nil' if the frame FRAME has not been deleted. diff --git a/info/lispref.info-27 b/info/lispref.info-27 index 7d7f70e..3a75425 100644 --- a/info/lispref.info-27 +++ b/info/lispref.info-27 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -61,18 +61,18 @@ Finding All Frames buffers. The list that you get is newly created, so modifying the list doesn't have any effect on the internals of XEmacs. - - Function: device-frame-list &optional device + - Function: device-frame-list &optional DEVICE This function returns a list of all frames on DEVICE. If DEVICE is `nil', the selected device will be used. - - Function: visible-frame-list &optional device + - Function: visible-frame-list &optional DEVICE This function returns a list of just the currently visible frames. If DEVICE is specified only frames on that device will be returned. *Note Visibility of Frames::. (TTY frames always count as "visible", even though only the selected one is actually displayed.) - - Function: next-frame &optional frame minibuf + - Function: next-frame &optional FRAME MINIBUF The function `next-frame' lets you cycle conveniently through all the frames from an arbitrary starting point. It returns the "next" frame after FRAME in the cycle. If FRAME is omitted or `nil', it @@ -102,7 +102,7 @@ Finding All Frames anything else Consider all frames. - - Function: previous-frame &optional frame minibuf + - Function: previous-frame &optional FRAME MINIBUF Like `next-frame', but cycles through all frames in the opposite direction. @@ -118,11 +118,11 @@ Frames and Windows Each window is part of one and only one frame; you can get the frame with `window-frame'. - - Function: frame-root-window &optional frame + - Function: frame-root-window &optional FRAME This returns the root window of frame FRAME. FRAME defaults to the selected frame if not specified. - - Function: window-frame &optional window + - Function: window-frame &optional WINDOW This function returns the frame that WINDOW is on. WINDOW defaults to the selected window if omitted. @@ -132,7 +132,7 @@ upper left corner, down and to the right, until it reaches the window at the lower right corner (always the minibuffer window, if the frame has one), and then it moves back to the top. - - Function: frame-top-window frame + - Function: frame-top-window FRAME This returns the topmost, leftmost window of frame FRAME. At any time, exactly one window on any frame is "selected within the @@ -140,7 +140,7 @@ frame". The significance of this designation is that selecting the frame also selects this window. You can get the frame's current selected window with `frame-selected-window'. - - Function: frame-selected-window &optional frame + - Function: frame-selected-window &optional FRAME This function returns the window on FRAME that is selected within FRAME. FRAME defaults to the selected frame if not specified. @@ -159,7 +159,7 @@ Minibuffers and Frames Normally, each frame has its own minibuffer window at the bottom, which is used whenever that frame is selected. If the frame has a minibuffer, you can get it with `minibuffer-window' (*note Minibuffer -Misc::). +Misc::.). However, you can also create a frame with no minibuffer. Such a frame must use the minibuffer window of some other frame. When you @@ -184,7 +184,7 @@ selected window always resides on the selected frame. As the focus moves from device to device, the selected frame on each device is remembered and restored when the focus moves back to that device. - - Function: selected-frame &optional device + - Function: selected-frame &optional DEVICE This function returns the selected frame on DEVICE. If DEVICE is not specified, the selected device will be used. If no frames exist on the device, `nil' is returned. @@ -205,9 +205,9 @@ effect lasts until overridden by a subsequent call to `select-frame'. Only the selected terminal frame is actually displayed on the terminal. Each terminal screen except for the initial one has a number, and the number of the selected frame appears in the mode line after the word -`XEmacs' (*note Modeline Variables::). +`XEmacs' (*note Modeline Variables::.). - - Function: select-frame frame + - Function: select-frame FRAME This function selects frame FRAME, temporarily disregarding the focus of the X server if any. The selection of FRAME lasts until the next time the user does something to select a different frame, @@ -224,17 +224,17 @@ number of the selected frame appears in the mode line after the word `set-buffer'. In order to effect a permanent focus change use `focus-frame'. - - Function: focus-frame frame + - Function: focus-frame FRAME This function selects FRAME and gives it the window system focus. The operation of `focus-frame' is not affected by the value of `focus-follows-mouse'. - - Macro: save-selected-frame forms... + - Macro: save-selected-frame FORMS... This macro records the selected frame, executes FORMS in sequence, then restores the earlier selected frame. The value returned is the value of the last form. - - Macro: with-selected-frame frame forms... + - Macro: with-selected-frame FRAME FORMS... This macro records the selected frame, then selects FRAME and executes FORMS in sequence. After the last form is finished, the earlier selected frame is restored. The value returned is the @@ -254,26 +254,26 @@ frame is invisible, it doesn't show on the screen, not even as an icon. Visibility is meaningless for TTY frames, since only the selected one is actually displayed in any case. - - Command: make-frame-visible &optional frame + - Command: make-frame-visible &optional FRAME This function makes frame FRAME visible. If you omit FRAME, it makes the selected frame visible. - - Command: make-frame-invisible &optional frame + - Command: make-frame-invisible &optional FRAME This function makes frame FRAME invisible. - - Command: iconify-frame &optional frame + - Command: iconify-frame &optional FRAME This function iconifies frame FRAME. - - Command: deiconify-frame &optional frame + - Command: deiconify-frame &optional FRAME This function de-iconifies frame FRAME. Under X, this is equivalent to `make-frame-visible'. - - Function: frame-visible-p frame + - Function: frame-visible-p FRAME This returns whether FRAME is currently "visible" (actually in use for display). A frame that is not visible is not updated, and, if it works through a window system, may not show at all. - - Function: frame-iconified-p frame + - Function: frame-iconified-p FRAME This returns whether FRAME is iconified. Not all window managers use icons; some merely unmap the window, so this function is not the inverse of `frame-visible-p'. It is possible for a frame to @@ -282,7 +282,7 @@ one is actually displayed in any case. functionality of this function is obtained through `frame-visible-p'.) - - Function: frame-totally-visible-p frame + - Function: frame-totally-visible-p FRAME This returns whether FRAME is not obscured by any other X windows. On TTY frames, this is the same as `frame-visible-p'. @@ -308,10 +308,10 @@ screen. You can raise and lower XEmacs's X windows with these functions: - - Command: raise-frame &optional frame + - Command: raise-frame &optional FRAME This function raises frame FRAME. - - Command: lower-frame &optional frame + - Command: lower-frame &optional FRAME This function lowers frame FRAME. You can also specify auto-raise (raising automatically when a frame @@ -332,7 +332,7 @@ frame properties.) Auto-raising and auto-lowering is implemented through functions attached to `select-frame-hook' and `deselect-frame-hook' (*note Frame -Hooks::). Under normal circumstances, you should not call these +Hooks::.). Under normal circumstances, you should not call these functions directly. - Function: default-select-frame-hook @@ -356,7 +356,7 @@ all their properties, and the window configuration of each one. This function returns a frame configuration list that describes the current arrangement of frames and their contents. - - Function: set-frame-configuration configuration + - Function: set-frame-configuration CONFIGURATION This function restores the state of frames described in CONFIGURATION. @@ -380,7 +380,7 @@ frame's lifetime. *Note Hooks::. - Variable: select-frame-hook This is a normal hook that is run just after a frame is selected. The function `default-select-frame-hook', which implements - auto-raising (*note Raising and Lowering::), is normally attached + auto-raising (*note Raising and Lowering::.), is normally attached to this hook. Note that calling `select-frame' does not necessarily set the @@ -392,7 +392,7 @@ frame's lifetime. *Note Hooks::. This is a normal hook that is run just before a frame is deselected (and another frame is selected). The function `default-deselect-frame-hook', which implements auto-lowering - (*note Raising and Lowering::), is normally attached to this hook. + (*note Raising and Lowering::.), is normally attached to this hook. - Variable: map-frame-hook This hook is called each time a frame is mapped (i.e. made @@ -449,10 +449,10 @@ example the frame-creation functions) take an optional device argument specifying which device the function pertains to. If the argument is omitted, it defaults to the selected device (see below). - - Function: consolep object + - Function: consolep OBJECT This returns non-`nil' if OBJECT is a console. - - Function: devicep object + - Function: devicep OBJECT This returns non-`nil' if OBJECT is a device. * Menu: @@ -474,7 +474,7 @@ Basic Console Functions - Function: console-list This function returns a list of all existing consoles. - - Function: console-device-list &optional console + - Function: console-device-list &optional CONSOLE This function returns a list of all devices on CONSOLE. If CONSOLE is `nil', the selected console will be used. @@ -487,15 +487,15 @@ Basic Device Functions - Function: device-list This function returns a list of all existing devices. - - Function: device-or-frame-p object + - Function: device-or-frame-p OBJECT This function returns non-`nil' if OBJECT is a device or frame. This function is useful because devices and frames are similar in many respects and many functions can operate on either one. - - Function: device-frame-list device + - Function: device-frame-list DEVICE This function returns a list of all frames on DEVICE. - - Function: frame-device frame + - Function: frame-device FRAME This function returns the device that FRAME is on.  @@ -536,23 +536,23 @@ particular "class", which describes other characteristics of the device `mono' A device that can only display two colors (e.g. black and white). - - Function: device-type device + - Function: device-type DEVICE This function returns the type of DEVICE. This is a symbol whose name is one of the device types mentioned above. - - Function: device-or-frame-type device-or-frame + - Function: device-or-frame-type DEVICE-OR-FRAME This function returns the type of DEVICE-OR-FRAME. - - Function: device-class device + - Function: device-class DEVICE This function returns the class (color behavior) of DEVICE. This is a symbol whose name is one of the device classes mentioned above. - - Function: valid-device-type-p device-type + - Function: valid-device-type-p DEVICE-TYPE This function returns whether DEVICE-TYPE (which should be a symbol) species a valid device type. - - Function: valid-device-class-p device-class + - Function: valid-device-class-p DEVICE-CLASS This function returns whether DEVICE-CLASS (which should be a symbol) species a valid device class. @@ -566,13 +566,13 @@ File: lispref.info, Node: Connecting to a Console or Device, Next: The Selecte Connecting to a Console or Device ================================= - - Function: make-device &optional type device-data + - Function: make-device &optional TYPE DEVICE-DATA This function creates a new device. The following two functions create devices of specific types and are written in terms of `make-device'. - - Function: make-tty-device &optional tty terminal-type + - Function: make-tty-device &optional TTY TERMINAL-TYPE This function creates a new tty device on TTY. This also creates the tty's first frame. TTY should be a string giving the name of a tty device file (e.g. `/dev/ttyp3' under SunOS et al.), as @@ -583,12 +583,12 @@ written in terms of `make-device'. If it is `nil', the terminal type will be inferred from the `TERM' environment variable. - - Function: make-x-device &optional display argv-list + - Function: make-x-device &optional DISPLAY ARGV-LIST This function creates a new device connected to DISPLAY. Optional argument ARGV-LIST is a list of strings describing command line options. - - Function: delete-device device + - Function: delete-device DEVICE This function deletes DEVICE, permanently eliminating it from use. This disconnects XEmacs's connection to the device. @@ -600,15 +600,15 @@ written in terms of `make-device'. This variable, if non-`nil', should contain a list of functions, which are called when a device is deleted. - - Function: console-live-p object + - Function: console-live-p OBJECT This function returns non-`nil' if OBJECT is a console that has not been deleted. - - Function: device-live-p object + - Function: device-live-p OBJECT This function returns non-`nil' if OBJECT is a device that has not been deleted. - - Function: device-x-display device + - Function: device-x-display DEVICE This function returns the X display which DEVICE is connected to, if DEVICE is an X device. @@ -618,7 +618,7 @@ File: lispref.info, Node: The Selected Console and Device, Next: Console and D The Selected Console and Device =============================== - - Function: select-console console + - Function: select-console CONSOLE This function selects the console CONSOLE. Subsequent editing commands apply to its selected device, selected frame, and selected window. The selection of CONSOLE lasts until the next time the @@ -628,10 +628,10 @@ The Selected Console and Device - Function: selected-console This function returns the console which is currently active. - - Function: select-device device + - Function: select-device DEVICE This function selects the device DEVICE. - - Function: selected-device &optional console + - Function: selected-device &optional CONSOLE This function returns the device which is currently active. If optional CONSOLE is non-`nil', this function returns the device that would be currently active if CONSOLE were the selected @@ -643,20 +643,20 @@ File: lispref.info, Node: Console and Device I/O, Prev: The Selected Console a Console and Device I/O ====================== - - Function: console-disable-input console + - Function: console-disable-input CONSOLE This function disables input on console CONSOLE. - - Function: console-enable-input console + - Function: console-enable-input CONSOLE This function enables input on console CONSOLE. Each device has a "baud rate" value associated with it. On most systems, changing this value will affect the amount of padding and other strategic decisions made during redisplay. - - Function: device-baud-rate &optional device + - Function: device-baud-rate &optional DEVICE This function returns the output baud rate of DEVICE. - - Function: set-device-baud-rate device rate + - Function: set-device-baud-rate DEVICE RATE This function sets the output baud rate of DEVICE to RATE.  @@ -702,9 +702,9 @@ the character that immediately follows point; point is actually before the character on which the cursor sits. The value of point is a number between 1 and the buffer size plus 1. -If narrowing is in effect (*note Narrowing::), then point is constrained -to fall within the accessible portion of the buffer (possibly at one end -of it). +If narrowing is in effect (*note Narrowing::.), then point is +constrained to fall within the accessible portion of the buffer +(possibly at one end of it). Each buffer has its own value of point, which is independent of the value of point in other buffers. Each window also has a value of point, @@ -715,35 +715,35 @@ the buffer's point and the window's point normally have the same value, so the distinction is rarely important. *Note Window Point::, for more details. - - Function: point &optional buffer + - Function: point &optional BUFFER This function returns the value of point in BUFFER, as an integer. BUFFER defaults to the current buffer if omitted. (point) => 175 - - Function: point-min &optional buffer + - Function: point-min &optional BUFFER This function returns the minimum accessible value of point in BUFFER. This is normally 1, but if narrowing is in effect, it is the position of the start of the region that you narrowed to. (*Note Narrowing::.) BUFFER defaults to the current buffer if omitted. - - Function: point-max &optional buffer + - Function: point-max &optional BUFFER This function returns the maximum accessible value of point in BUFFER. This is `(1+ (buffer-size buffer))', unless narrowing is in effect, in which case it is the position of the end of the - region that you narrowed to. (*note Narrowing::). BUFFER defaults - to the current buffer if omitted. + region that you narrowed to. (*note Narrowing::.). BUFFER + defaults to the current buffer if omitted. - - Function: buffer-end flag &optional buffer + - Function: buffer-end FLAG &optional BUFFER This function returns `(point-min buffer)' if FLAG is less than 1, `(point-max buffer)' otherwise. The argument FLAG must be a number. BUFFER defaults to the current buffer if omitted. - - Function: buffer-size &optional buffer + - Function: buffer-size &optional BUFFER This function returns the total number of characters in BUFFER. - In the absence of any narrowing (*note Narrowing::), `point-max' + In the absence of any narrowing (*note Narrowing::.), `point-max' returns a value one larger than this. BUFFER defaults to the current buffer if omitted. @@ -786,7 +786,7 @@ Motion by Characters These functions move point based on a count of characters. `goto-char' is the fundamental primitive; the other functions use that. - - Command: goto-char position &optional buffer + - Command: goto-char POSITION &optional BUFFER This function sets point in `buffer' to the value POSITION. If POSITION is less than 1, it moves point to the beginning of the buffer. If POSITION is greater than the length of the buffer, it @@ -804,7 +804,7 @@ Motion by Characters `goto-char' returns POSITION. - - Command: forward-char &optional count buffer + - Command: forward-char &optional COUNT BUFFER This function moves point COUNT characters forward, towards the end of the buffer (or backward, towards the beginning of the buffer, if COUNT is negative). If the function attempts to move @@ -815,7 +815,7 @@ Motion by Characters In an interactive call, COUNT is the numeric prefix argument. - - Command: backward-char &optional count buffer + - Command: backward-char &optional COUNT BUFFER This function moves point COUNT characters backward, towards the beginning of the buffer (or forward, towards the end of the buffer, if COUNT is negative). If the function attempts to move @@ -835,7 +835,7 @@ Motion by Words These functions for parsing words use the syntax table to decide whether a given character is part of a word. *Note Syntax Tables::. - - Command: forward-word count &optional buffer + - Command: forward-word COUNT &optional BUFFER This function moves point forward COUNT words (or backward if COUNT is negative). Normally it returns `t'. If this motion encounters the beginning or end of the buffer, or the limits of the @@ -846,7 +846,7 @@ whether a given character is part of a word. *Note Syntax Tables::. In an interactive call, COUNT is set to the numeric prefix argument. - - Command: backward-word count &optional buffer + - Command: backward-word COUNT &optional BUFFER This function is just like `forward-word', except that it moves backward until encountering the front of a word, rather than forward. BUFFER defaults to the current buffer if omitted. @@ -881,7 +881,7 @@ Likewise, to move to the end of the buffer, use: documented here to warn you not to use them in Lisp programs, because they set the mark and display messages in the echo area. - - Command: beginning-of-buffer &optional n + - Command: beginning-of-buffer &optional N This function moves point to the beginning of the buffer (or the limits of the accessible portion, when narrowing is in effect), setting the mark at the previous position. If N is non-`nil', @@ -893,7 +893,7 @@ they set the mark and display messages in the echo area. Don't use this function in Lisp programs! - - Command: end-of-buffer &optional n + - Command: end-of-buffer &optional N This function moves point to the end of the buffer (or the limits of the accessible portion, when narrowing is in effect), setting the mark at the previous position. If N is non-`nil', then it puts @@ -918,12 +918,12 @@ newline. The division of the buffer into text lines is not affected by the width of the window, by line continuation in display, or by how tabs and control characters are displayed. - - Command: goto-line line + - Command: goto-line LINE This function moves point to the front of the LINEth line, counting from line 1 at beginning of the buffer. If LINE is less than 1, it moves point to the beginning of the buffer. If LINE is greater than the number of lines in the buffer, it moves point to - the end of the buffer--that is, the _end of the last line_ of the + the end of the buffer--that is, the *end of the last line* of the buffer. This is the only case in which `goto-line' does not necessarily move to the beginning of a line. @@ -943,7 +943,7 @@ tabs and control characters are displayed. In an interactive call, LINE is the numeric prefix argument if one has been provided. Otherwise LINE is read in the minibuffer. - - Command: beginning-of-line &optional count buffer + - Command: beginning-of-line &optional COUNT BUFFER This function moves point to the beginning of the current line. With an argument COUNT not `nil' or 1, it moves forward COUNT-1 lines and then to the beginning of the line. BUFFER defaults to @@ -953,7 +953,7 @@ tabs and control characters are displayed. accessible portion, if narrowing is in effect), it positions point there. No error is signaled. - - Command: end-of-line &optional count buffer + - Command: end-of-line &optional COUNT BUFFER This function moves point to the end of the current line. With an argument COUNT not `nil' or 1, it moves forward COUNT-1 lines and then to the end of the line. BUFFER defaults to the current @@ -963,7 +963,7 @@ tabs and control characters are displayed. accessible portion, if narrowing is in effect), it positions point there. No error is signaled. - - Command: forward-line &optional count buffer + - Command: forward-line &optional COUNT BUFFER This function moves point forward COUNT lines, to the beginning of the line. If COUNT is negative, it moves point -COUNT lines backward, to the beginning of a line. If COUNT is zero, it moves @@ -981,7 +981,7 @@ tabs and control characters are displayed. In an interactive call, COUNT is the numeric prefix argument. - - Function: count-lines start end + - Function: count-lines START END This function returns the number of lines between the positions START and END in the current buffer. If START and END are equal, then it returns 0. Otherwise it returns at least 1, even if START @@ -1031,7 +1031,7 @@ thus take time proportional to the distance scanned. If you intend to use them heavily, Emacs provides caches which may improve the performance of your code. *Note cache-long-line-scans: Text Lines. - - Function: vertical-motion count &optional window pixels + - Function: vertical-motion COUNT &optional WINDOW PIXELS This function moves point to the start of the frame line COUNT frame lines down from the frame line containing point. If COUNT is negative, it moves up instead. The optional second argument @@ -1050,7 +1050,7 @@ performance of your code. *Note cache-long-line-scans: Text Lines. WINDOW's point. (This differs from FSF Emacs, which buggily always sets current buffer's point, regardless of WINDOW.) - - Function: vertical-motion-pixels count &optional window how + - Function: vertical-motion-pixels COUNT &optional WINDOW HOW This function moves point to the start of the frame line PIXELS vertical pixels down from the frame line containing point, or up if PIXELS is negative. The optional second argument WINDOW is the @@ -1061,7 +1061,7 @@ performance of your code. *Note cache-long-line-scans: Text Lines. least PIXELS. Any other value indicates that the motion should be as close as possible to PIXELS. - - Command: move-to-window-line count &optional window + - Command: move-to-window-line COUNT &optional WINDOW This function moves point with respect to the text currently displayed in WINDOW, which defaults to the selected window. It moves point to the beginning of the screen line COUNT screen lines @@ -1095,29 +1095,29 @@ Expressions::, for lower-level primitives for scanning sexps or parts of sexps. For user-level commands, see *Note Lists and Sexps: (emacs)Lists and Sexps. - - Command: forward-list &optional arg + - Command: forward-list &optional ARG This function moves forward across ARG balanced groups of parentheses. (Other syntactic entities such as words or paired string quotes are ignored.) ARG defaults to 1 if omitted. If ARG is negative, move backward across that many groups of parentheses. - - Command: backward-list &optional arg + - Command: backward-list &optional ARG This function moves backward across ARG balanced groups of parentheses. (Other syntactic entities such as words or paired string quotes are ignored.) ARG defaults to 1 if omitted. If ARG is negative, move forward across that many groups of parentheses. - - Command: up-list arg + - Command: up-list ARG This function moves forward out of ARG levels of parentheses. A negative argument means move backward but still to a less deep spot. - - Command: down-list arg + - Command: down-list ARG This function moves forward into ARG levels of parentheses. A negative argument means move backward but still go deeper in parentheses (-ARG levels). - - Command: forward-sexp &optional arg + - Command: forward-sexp &optional ARG This function moves forward across ARG balanced expressions. Balanced expressions include both those delimited by parentheses and other kinds, such as words and string constants. ARG defaults @@ -1135,18 +1135,18 @@ sexps. For user-level commands, see *Note Lists and Sexps: (concat "foo " (car x) y-!- z) ---------- Buffer: foo ---------- - - Command: backward-sexp &optional arg + - Command: backward-sexp &optional ARG This function moves backward across ARG balanced expressions. ARG defaults to 1 if omitted. If ARG is negative, move forward across that many balanced expressions. - - Command: beginning-of-defun &optional arg + - Command: beginning-of-defun &optional ARG This function moves back to the ARGth beginning of a defun. If ARG is negative, this actually moves forward, but it still moves to the beginning of a defun, not to the end of one. ARG defaults to 1 if omitted. - - Command: end-of-defun &optional arg + - Command: end-of-defun &optional ARG This function moves forward to the ARGth end of a defun. If ARG is negative, this actually moves backward, but it still moves to the end of a defun, not to the beginning of one. ARG defaults to @@ -1169,7 +1169,7 @@ Skipping Characters characters. For example, they are often used to skip whitespace. For related functions, see *Note Motion and Syntax::. - - Function: skip-chars-forward character-set &optional limit buffer + - Function: skip-chars-forward CHARACTER-SET &optional LIMIT BUFFER This function moves point in BUFFER forward, skipping over a given set of characters. It examines the character following point, then advances point if the character matches CHARACTER-SET. This @@ -1206,7 +1206,7 @@ related functions, see *Note Motion and Syntax::. comes back" twice. ---------- Buffer: foo ---------- - - Function: skip-chars-backward character-set &optional limit buffer + - Function: skip-chars-backward CHARACTER-SET &optional LIMIT BUFFER This function moves point backward, skipping characters that match CHARACTER-SET, until LIMIT. It just like `skip-chars-forward' except for the direction of motion. diff --git a/info/lispref.info-28 b/info/lispref.info-28 index 76b354e..923f3d6 100644 --- a/info/lispref.info-28 +++ b/info/lispref.info-28 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -64,15 +64,15 @@ excursion. The forms for saving and restoring the configuration of windows are described elsewhere (see *Note Window Configurations:: and *note Frame -Configurations::). +Configurations::.). - - Special Form: save-excursion forms... + - Special Form: save-excursion FORMS... The `save-excursion' special form saves the identity of the current buffer and the values of point and the mark in it, evaluates FORMS, and finally restores the buffer and its saved values of point and the mark. All three saved values are restored even in case of an abnormal exit via `throw' or error (*note Nonlocal - Exits::). + Exits::.). The `save-excursion' special form is the standard way to switch buffers or move point within one part of a program and avoid @@ -87,7 +87,7 @@ Configurations::). correspondences altered by functions such as `switch-to-buffer'. One way to restore these correspondences, and the selected window, is to use `save-window-excursion' inside `save-excursion' (*note - Window Configurations::). + Window Configurations::.). The value returned by `save-excursion' is the result of the last of FORMS, or `nil' if no FORMS are given. @@ -104,21 +104,21 @@ Configurations::). (goto-char old-pnt) (set-marker (mark-marker) old-mark))) - - Special Form: save-current-buffer forms... + - Special Form: save-current-buffer FORMS... This special form is similar to `save-excursion' but it only saves and restores the current buffer. Beginning with XEmacs 20.3, `save-current-buffer' is a primitive. - - Special Form: with-current-buffer buffer forms... + - Special Form: with-current-buffer BUFFER FORMS... This special form evaluates FORMS with BUFFER as the current buffer. It returns the value of the last form. - - Special Form: with-temp-file file forms... + - Special Form: with-temp-file FILE FORMS... This special form creates a new buffer, evaluates FORMS there, and writes the buffer to FILE. It returns the value of the last form evaluated. - - Special Form: save-selected-window forms... + - Special Form: save-selected-window FORMS... This special form is similar to `save-excursion' but it saves and restores the selected window and nothing else. @@ -146,7 +146,7 @@ which use them refuse to operate on text that is inaccessible. The commands for saving buffers are unaffected by narrowing; they save the entire buffer regardless of any narrowing. - - Command: narrow-to-region start end &optional buffer + - Command: narrow-to-region START END &optional BUFFER This function sets the accessible portion of BUFFER to start at START and end at END. Both arguments should be character positions. BUFFER defaults to the current buffer if omitted. @@ -154,17 +154,17 @@ save the entire buffer regardless of any narrowing. In an interactive call, START and END are set to the bounds of the current region (point and the mark, with the smallest first). - - Command: narrow-to-page &optional move-count + - Command: narrow-to-page &optional MOVE-COUNT This function sets the accessible portion of the current buffer to include just the current page. An optional first argument MOVE-COUNT non-`nil' means to move forward or backward by MOVE-COUNT pages and then narrow. The variable `page-delimiter' - specifies where pages start and end (*note Standard Regexps::). + specifies where pages start and end (*note Standard Regexps::.). In an interactive call, MOVE-COUNT is set to the numeric prefix argument. - - Command: widen &optional buffer + - Command: widen &optional BUFFER This function cancels any narrowing in BUFFER, so that the entire contents are accessible. This is called "widening". It is equivalent to the following expression: @@ -173,13 +173,13 @@ save the entire buffer regardless of any narrowing. BUFFER defaults to the current buffer if omitted. - - Special Form: save-restriction body... + - Special Form: save-restriction BODY... This special form saves the current bounds of the accessible portion, evaluates the BODY forms, and finally restores the saved bounds, thus restoring the same state of narrowing (or absence thereof) formerly in effect. The state of narrowing is restored even in the event of an abnormal exit via `throw' or error (*note - Nonlocal Exits::). Therefore, this construct is a clean way to + Nonlocal Exits::.). Therefore, this construct is a clean way to narrow a buffer temporarily. The value returned by `save-restriction' is that returned by the @@ -194,7 +194,7 @@ save the entire buffer regardless of any narrowing. restrictions it saved from), but it does not restore the identity of the current buffer. - `save-restriction' does _not_ restore point and the mark; use + `save-restriction' does *not* restore point and the mark; use `save-excursion' for that. If you use both `save-restriction' and `save-excursion' together, `save-excursion' should come first (on the outside). Otherwise, the old point value would be restored @@ -262,8 +262,8 @@ deleted, so that it stays with the two characters on either side of it. * Creating Markers:: Making empty markers or markers at certain places. * Information from Markers:: Finding the marker's buffer or character position. * Changing Markers:: Moving the marker to a new buffer or position. -* The Mark:: How ``the mark'' is implemented with a marker. -* The Region:: How to access ``the region''. +* The Mark:: How "the mark" is implemented with a marker. +* The Region:: How to access "the region".  File: lispref.info, Node: Overview of Markers, Next: Predicates on Markers, Up: Markers @@ -289,7 +289,7 @@ buffer. Relocation changes the integer equivalent of the marker. the characters immediately before and after the deleted text. Inserting text at the position of a marker normally leaves the marker in front of the new text--unless it is inserted with `insert-before-markers' (*note -Insertion::). +Insertion::.). Insertion and deletion in a buffer must check all the markers and relocate them if necessary. This slows processing in a buffer with a @@ -386,24 +386,24 @@ is either an integer or a marker or either an integer, a character, or a marker. The latter tests are useful in connection with the arithmetic functions that work with any of markers, integers, or characters. - - Function: markerp object + - Function: markerp OBJECT This function returns `t' if OBJECT is a marker, `nil' otherwise. Note that integers are not markers, even though many functions will accept either a marker or an integer. - - Function: integer-or-marker-p object + - Function: integer-or-marker-p OBJECT This function returns `t' if OBJECT is an integer or a marker, `nil' otherwise. - - Function: integer-char-or-marker-p object + - Function: integer-char-or-marker-p OBJECT This function returns `t' if OBJECT is an integer, a character, or a marker, `nil' otherwise. - - Function: number-or-marker-p object + - Function: number-or-marker-p OBJECT This function returns `t' if OBJECT is a number (either kind) or a marker, `nil' otherwise. - - Function: number-char-or-marker-p object + - Function: number-char-or-marker-p OBJECT This function returns `t' if OBJECT is a number (either kind), a character, or a marker, `nil' otherwise. @@ -425,7 +425,7 @@ marker. (make-marker) => # - - Function: point-marker &optional dont-copy-p buffer + - Function: point-marker &optional DONT-COPY-P BUFFER This function returns a marker that points to the present position of point in BUFFER, which defaults to the current buffer. *Note Point::. For an example, see `copy-marker', below. @@ -437,13 +437,13 @@ marker. modifying the position of this marker will move point. It is illegal to change the buffer of it, or make it point nowhere. - - Function: point-min-marker &optional buffer + - Function: point-min-marker &optional BUFFER This function returns a new marker that points to the beginning of the accessible portion of BUFFER, which defaults to the current buffer. This will be the beginning of the buffer unless narrowing is in effect. *Note Narrowing::. - - Function: point-max-marker &optional buffer + - Function: point-max-marker &optional BUFFER This function returns a new marker that points to the end of the accessible portion of BUFFER, which defaults to the current buffer. This will be the end of the buffer unless narrowing is in @@ -465,7 +465,7 @@ marker. (point-max-marker) => # - - Function: copy-marker marker-or-integer + - Function: copy-marker MARKER-OR-INTEGER If passed a marker as its argument, `copy-marker' returns a new marker that points to the same place and the same buffer as does MARKER-OR-INTEGER. If passed an integer as its argument, @@ -525,11 +525,11 @@ Information from Markers This section describes the functions for accessing the components of a marker object. - - Function: marker-position marker + - Function: marker-position MARKER This function returns the position that MARKER points to, or `nil' if it points nowhere. - - Function: marker-buffer marker + - Function: marker-buffer MARKER This function returns the buffer that MARKER points into, or `nil' if it points nowhere. @@ -563,7 +563,7 @@ outside of your program, and, if so, what effects will result from moving it--otherwise, confusing things may happen in other parts of Emacs. - - Function: set-marker marker position &optional buffer + - Function: set-marker MARKER POSITION &optional BUFFER This function moves MARKER to POSITION in BUFFER. If BUFFER is not provided, it defaults to the current buffer. @@ -584,7 +584,7 @@ Emacs. (set-marker m 0 b) => # - - Function: move-marker marker position &optional buffer + - Function: move-marker MARKER POSITION &optional BUFFER This is another name for `set-marker'.  @@ -647,7 +647,7 @@ mark on the mark ring. The variable `mark-ring-max' specifies the maximum number of entries in the mark ring; once the list becomes this long, adding a new element deletes the last element. - - Function: mark &optional force buffer + - Function: mark &optional FORCE BUFFER This function returns BUFFER's mark position as an integer. BUFFER defaults to the current buffer if omitted. @@ -662,7 +662,7 @@ long, adding a new element deletes the last element. If you are using this in an editing command, you are most likely making a mistake; see the documentation of `set-mark' below. - - Function: mark-marker inactive-p buffer + - Function: mark-marker INACTIVE-P BUFFER This function returns BUFFER's mark. BUFFER defaults to the current buffer if omitted. This is the very marker that records the mark location inside XEmacs, not a copy. Therefore, changing @@ -684,10 +684,10 @@ long, adding a new element deletes the last element. other than the one of which it is the mark. If you do, it will yield perfectly consistent, but rather odd, results. - - Function: set-mark position &optional buffer + - Function: set-mark POSITION &optional BUFFER This function sets `buffer''s mark to POSITION, and activates the mark. BUFFER defaults to the current buffer if omitted. The old - value of the mark is _not_ pushed onto the mark ring. + value of the mark is *not* pushed onto the mark ring. *Please note:* Use this function only if you want the user to see that the mark has moved, and you want the previous mark position to @@ -707,12 +707,12 @@ long, adding a new element deletes the last element. (forward-line 1) (delete-region beg (point))). - - Command: exchange-point-and-mark &optional dont-activate-region + - Command: exchange-point-and-mark &optional DONT-ACTIVATE-REGION This function exchanges the positions of point and the mark. It is intended for interactive use. The mark is also activated unless DONT-ACTIVATE-REGION is non-`nil'. - - Function: push-mark &optional position nomsg activate buffer + - Function: push-mark &optional POSITION NOMSG ACTIVATE BUFFER This function sets BUFFER's mark to POSITION, and pushes a copy of the previous mark onto `mark-ring'. BUFFER defaults to the current buffer if omitted. If POSITION is `nil', then the value @@ -721,7 +721,7 @@ long, adding a new element deletes the last element. If the last global mark pushed was not in BUFFER, also push POSITION on the global mark ring (see below). - The function `push-mark' normally _does not_ activate the mark. + The function `push-mark' normally *does not* activate the mark. To do that, specify `t' for the argument ACTIVATE. A `Mark set' message is displayed unless NOMSG is non-`nil'. @@ -795,7 +795,7 @@ the beginning and end of the region. This lets other Lisp programs specify the bounds explicitly as arguments and automatically respects the user's setting for ZMACS-REGIONS. (*Note Interactive Codes::.) - - Function: region-beginning &optional buffer + - Function: region-beginning &optional BUFFER This function returns the position of the beginning of BUFFER's region (as an integer). This is the position of either point or the mark, whichever is smaller. BUFFER defaults to the current @@ -804,7 +804,7 @@ the user's setting for ZMACS-REGIONS. (*Note Interactive Codes::.) If the mark does not point anywhere, an error is signaled. Note that this function ignores whether the region is active. - - Function: region-end &optional buffer + - Function: region-end &optional BUFFER This function returns the position of the end of BUFFER's region (as an integer). This is the position of either point or the mark, whichever is larger. BUFFER defaults to the current buffer if @@ -872,7 +872,7 @@ the user's setting for ZMACS-REGIONS. (*Note Interactive Codes::.) - Variable: zmacs-deactivate-region-hook This normal hook is called when an active region becomes inactive. (Calling `zmacs-deactivate-region' when the region is inactive will - _not_ cause this hook to be called.) If ZMACS-REGIONS is false, + *not* cause this hook to be called.) If ZMACS-REGIONS is false, this hook will never get called. - Variable: zmacs-update-region-hook @@ -891,12 +891,12 @@ Text buffer. Most examine, insert, or delete text in the current buffer, often in the vicinity of point. Many are interactive. All the functions that change the text provide for undoing the changes (*note -Undo::). +Undo::.). Many text-related functions operate on a region of text defined by two buffer positions passed in arguments named START and END. These -arguments should be either markers (*note Markers::) or numeric -character positions (*note Positions::). The order of these arguments +arguments should be either markers (*note Markers::.) or numeric +character positions (*note Positions::.). The order of these arguments does not matter; it is all right for START to be the end of the region and END the beginning. For example, `(delete-region 1 10)' and `(delete-region 10 1)' are equivalent. An `args-out-of-range' error is @@ -951,12 +951,13 @@ omitted. (In FSF Emacs, and earlier versions of XEmacs, these functions usually did not have these optional BUFFER arguments and always operated on the current buffer.) - - Function: char-after position &optional buffer + - Function: char-after &optional POSITION BUFFER This function returns the character in the buffer at (i.e., immediately after) position POSITION. If 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 `nil'. If optional argument - BUFFER is `nil', the current buffer is assumed. + or beyond the end, then the value is `nil'. The default for + POSITION is point. If optional argument BUFFER is `nil', the + current buffer is assumed. In the following example, assume that the first character in the buffer is `@': @@ -964,7 +965,15 @@ operated on the current buffer.) (char-to-string (char-after 1)) => "@" - - Function: following-char &optional buffer + - Function: char-before &optional POSITION BUFFER + This function returns the character in the current buffer + immediately before position POSITION. If 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 `nil'. The default for + POSITION is point. If optional argument BUFFER is `nil', the + current buffer is assumed. + + - Function: following-char &optional BUFFER This function returns the character following point in the buffer. This is similar to `(char-after (point))'. However, if point is at the end of the buffer, then the result of `following-char' is 0. @@ -988,32 +997,32 @@ operated on the current buffer.) (char-to-string (following-char)) => "c" - - Function: preceding-char &optional buffer + - Function: preceding-char &optional BUFFER This function returns the character preceding point in the buffer. See above, under `following-char', for an example. If point is at the beginning of the buffer, `preceding-char' returns 0. If optional argument BUFFER is `nil', the current buffer is assumed. - - Function: bobp &optional buffer + - Function: bobp &optional BUFFER This function returns `t' if point is at the beginning of the buffer. If narrowing is in effect, this means the beginning of the accessible portion of the text. If optional argument BUFFER is `nil', the current buffer is assumed. See also `point-min' in *Note Point::. - - Function: eobp &optional buffer + - Function: eobp &optional BUFFER This function returns `t' if point is at the end of the buffer. If narrowing is in effect, this means the end of accessible portion of the text. If optional argument BUFFER is `nil', the current buffer is assumed. See also `point-max' in *Note Point::. - - Function: bolp &optional buffer + - Function: bolp &optional BUFFER This function returns `t' if point is at the beginning of a line. If optional argument BUFFER is `nil', the current buffer is assumed. *Note Text Lines::. The beginning of the buffer (or its accessible portion) always counts as the beginning of a line. - - Function: eolp &optional buffer + - Function: eolp &optional BUFFER This function returns `t' if point is at the end of a line. The end of the buffer is always considered the end of a line. If optional argument BUFFER is `nil', the current buffer is assumed. @@ -1029,8 +1038,8 @@ Examining Buffer Contents This section describes two functions that allow a Lisp program to convert any portion of the text in the buffer into a string. - - Function: buffer-substring start end &optional buffer - - Function: buffer-string start end &optional buffer + - Function: buffer-substring START END &optional BUFFER + - Function: buffer-string START END &optional BUFFER These functions are equivalent and return a string containing a copy of the text of the region defined by positions START and END in the buffer. If the arguments are not positions in the @@ -1066,8 +1075,8 @@ Comparing Text This function lets you compare portions of the text in a buffer, without copying them into strings first. - - Function: compare-buffer-substrings buffer1 start1 end1 buffer2 - start2 end2 + - Function: compare-buffer-substrings BUFFER1 START1 END1 BUFFER2 + START2 END2 This function lets you compare two substrings of the same buffer or two different buffers. The first three arguments specify one substring, giving a buffer and two positions within the buffer. @@ -1104,7 +1113,7 @@ after point. Insertion relocates markers that point at positions after the insertion point, so that they stay with the surrounding text (*note -Markers::). When a marker points at the place of insertion, insertion +Markers::.). When a marker points at the place of insertion, insertion normally doesn't relocate the marker, so that it points to the beginning of the inserted text; however, certain special functions such as `insert-before-markers' relocate such markers to point after the @@ -1126,13 +1135,13 @@ properties as the characters they were copied from. By contrast, characters specified as separate arguments, not part of a string or buffer, inherit their text properties from the neighboring text. - - Function: insert &rest args + - Function: insert &rest ARGS This function inserts the strings and/or characters ARGS into the current buffer, at point, moving point forward. In other words, it inserts the text before point. An error is signaled unless all ARGS are either strings or characters. The value is `nil'. - - Function: insert-before-markers &rest args + - Function: insert-before-markers &rest ARGS This function inserts the strings and/or characters ARGS into the current buffer, at point, moving point forward. An error is signaled unless all ARGS are either strings or characters. The @@ -1142,21 +1151,21 @@ buffer, inherit their text properties from the neighboring text. relocates markers initially pointing at the insertion point, to point after the inserted text. - - Function: insert-string string &optional buffer + - Function: insert-string STRING &optional BUFFER This function inserts STRING into BUFFER before point. BUFFER defaults to the current buffer if omitted. This function is chiefly useful if you want to insert a string in a buffer other than the current one (otherwise you could just use `insert'). - - Function: insert-char character count &optional buffer + - Function: insert-char CHARACTER COUNT &optional BUFFER This function inserts COUNT instances of CHARACTER into BUFFER before point. COUNT must be a number, and CHARACTER must be a character. The value is `nil'. If optional argument BUFFER is `nil', the current buffer is assumed. (In FSF Emacs, the third argument is called INHERIT and refers to text properties.) - - Function: insert-buffer-substring from-buffer-or-name &optional - start end + - Function: insert-buffer-substring FROM-BUFFER-OR-NAME &optional + START END This function inserts a portion of buffer FROM-BUFFER-OR-NAME (which must already exist) into the current buffer before point. The text inserted is the region from START and END. (These diff --git a/info/lispref.info-29 b/info/lispref.info-29 index 0ea1ef6..d0388bd 100644 --- a/info/lispref.info-29 +++ b/info/lispref.info-29 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -59,12 +59,12 @@ User-Level Insertion Commands commands intended primarily for the user but useful also in Lisp programs. - - Command: insert-buffer from-buffer-or-name + - Command: insert-buffer FROM-BUFFER-OR-NAME This command inserts the entire contents of FROM-BUFFER-OR-NAME (which must exist) into the current buffer after point. It leaves the mark after the inserted text. The value is `nil'. - - Command: self-insert-command count + - Command: self-insert-command COUNT This command inserts the last character typed; it does so COUNT times, before point, and returns `nil'. Most printing characters are bound to this command. In routine use, `self-insert-command' @@ -75,7 +75,7 @@ programs. This command calls `auto-fill-function' whenever that is non-`nil' and the character inserted is a space or a newline (*note Auto - Filling::). + Filling::.). This command performs abbrev expansion if Abbrev mode is enabled and the inserted character does not have word-constituent syntax. @@ -83,9 +83,9 @@ programs. This is also responsible for calling `blink-paren-function' when the inserted character has close parenthesis syntax (*note - Blinking::). + Blinking::.). - - Command: newline &optional number-of-newlines + - Command: newline &optional NUMBER-OF-NEWLINES This command inserts newlines into the current buffer before point. If NUMBER-OF-NEWLINES is supplied, that many newline characters are inserted. @@ -125,15 +125,15 @@ Deleting Text ============= Deletion means removing part of the text in a buffer, without saving -it in the kill ring (*note The Kill Ring::). Deleted text can't be -yanked, but can be reinserted using the undo mechanism (*note Undo::). +it in the kill ring (*note The Kill Ring::.). Deleted text can't be +yanked, but can be reinserted using the undo mechanism (*note Undo::.). Some deletion functions do save text in the kill ring in some special cases. All of the deletion functions operate on the current buffer, and all return a value of `nil'. - - Function: erase-buffer &optional buffer + - Function: erase-buffer &optional BUFFER This function deletes the entire text of BUFFER, leaving it empty. If the buffer is read-only, it signals a `buffer-read-only' error. Otherwise, it deletes the text without asking for any @@ -146,12 +146,12 @@ return a value of `nil'. future text is not really related to the former text, and its size should not be compared with that of the former text. - - Command: delete-region start end &optional buffer + - Command: delete-region START END &optional BUFFER This command deletes the text in BUFFER in the region defined by START and END. The value is `nil'. If optional argument BUFFER is `nil', the current buffer is assumed. - - Command: delete-char count &optional killp + - Command: delete-char COUNT &optional KILLP This command deletes COUNT characters directly after point, or before point if COUNT is negative. If KILLP is non-`nil', then it saves the deleted characters in the kill ring. @@ -164,7 +164,7 @@ return a value of `nil'. The value returned is always `nil'. - - Command: delete-backward-char count &optional killp + - Command: delete-backward-char COUNT &optional KILLP This command deletes COUNT characters directly before point, or after point if COUNT is negative. If KILLP is non-`nil', then it saves the deleted characters in the kill ring. @@ -177,7 +177,7 @@ return a value of `nil'. The value returned is always `nil'. - - Command: backward-delete-char-untabify count &optional killp + - Command: backward-delete-char-untabify COUNT &optional KILLP This command deletes COUNT characters backward, changing tabs into spaces. When the next character to be deleted is a tab, it is first replaced with the proper number of spaces to preserve @@ -232,7 +232,7 @@ programs. You thought ---------- Buffer: foo ---------- - - Command: delete-indentation &optional join-following-p + - Command: delete-indentation &optional JOIN-FOLLOWING-P This function joins the line point is on to the previous line, deleting any whitespace at the join and in some cases replacing it with one space. If JOIN-FOLLOWING-P is non-`nil', @@ -254,7 +254,6 @@ programs. (delete-indentation) => nil - ---------- Buffer: foo ---------- When in the course of human-!- events, it becomes necessary ---------- Buffer: foo ---------- @@ -281,12 +280,12 @@ programs. This has too many -!-spaces This has too many spaces at the start of (-!- this list) ---------- Buffer: foo ---------- - + (fixup-whitespace) => nil (fixup-whitespace) => nil - + ---------- Buffer: foo ---------- This has too many spaces This has too many spaces at the start of (this list) @@ -336,7 +335,7 @@ there are also specialized functions, described in this section, that treat it as a ring. Some people think this use of the word "kill" is unfortunate, since -it refers to operations that specifically _do not_ destroy the entities +it refers to operations that specifically *do not* destroy the entities "killed". This is in sharp contrast to ordinary life, in which death is permanent and "killed" entities do not come back to life. Therefore, other metaphors have been proposed. For example, the term @@ -392,7 +391,7 @@ element. It uses the `last-command' variable to determine whether the previous command was a kill command, and if so appends the killed text to the most recent entry. - - Command: kill-region start end + - Command: kill-region START END This function kills the text in the region defined by START and END. The text is deleted but saved in the kill ring, along with its text properties. The value is always `nil'. @@ -404,7 +403,7 @@ to the most recent entry. This is convenient because it lets the user use all the kill commands to copy text into the kill ring from a read-only buffer. - - Command: copy-region-as-kill start end + - Command: copy-region-as-kill START END This command saves the region defined by START and END on the kill ring (including text properties), but does not delete the text from the buffer. It returns `nil'. It also indicates the extent @@ -428,7 +427,7 @@ Functions for Yanking "Yanking" means reinserting an entry of previously killed text from the kill ring. The text properties are copied too. - - Command: yank &optional arg + - Command: yank &optional ARG This command inserts before point the text in the first entry in the kill ring. It positions the mark at the beginning of that text, and point at the end. @@ -444,7 +443,7 @@ the kill ring. The text properties are copied too. `yank' does not alter the contents of the kill ring or rotate it. It returns `nil'. - - Command: yank-pop arg + - Command: yank-pop ARG This command replaces the just-yanked entry from the kill ring with a different entry from the kill ring. @@ -477,7 +476,7 @@ lower level, but still convenient for use in Lisp programs. They take care of interaction with X Window selections. They do not exist in Emacs version 18. - - Function: current-kill n &optional do-not-move + - Function: current-kill N &optional DO-NOT-MOVE The function `current-kill' rotates the yanking pointer which designates the "front" of the kill ring by N places (from newer kills to older ones), and returns the text at that place in the @@ -491,13 +490,13 @@ Emacs version 18. `current-kill' calls the value of `interprogram-paste-function' (documented below) before consulting the kill ring. - - Function: kill-new string + - Function: kill-new STRING This function puts the text STRING into the kill ring as a new entry at the front of the ring. It discards the oldest entry if appropriate. It also invokes the value of `interprogram-cut-function' (see below). - - Function: kill-append string before-p + - Function: kill-append STRING BEFORE-P This function appends the text STRING to the first entry in the kill ring. Normally STRING goes at the end of the entry, but if BEFORE-P is non-`nil', it goes at the beginning. This function @@ -677,7 +676,7 @@ which is in the variable `buffer-undo-list'. `query-replace' calls `undo-boundary' after each replacement, so that the user can undo individual replacements one by one. - - Function: primitive-undo count list + - Function: primitive-undo COUNT LIST This is the basic function for undoing elements of an undo list. It undoes the first COUNT elements of LIST, returning the rest of LIST. You could write this function in Lisp, but it is convenient @@ -706,7 +705,7 @@ undo recording is initially disabled. You can explicitly enable or disable undo recording with the following two functions, or by setting `buffer-undo-list' yourself. - - Command: buffer-enable-undo &optional buffer-or-name + - Command: buffer-enable-undo &optional BUFFER-OR-NAME This command enables recording undo information for buffer BUFFER-OR-NAME, so that subsequent changes can be undone. If no argument is supplied, then the current buffer is used. This @@ -716,8 +715,8 @@ disable undo recording with the following two functions, or by setting In an interactive call, BUFFER-OR-NAME is the current buffer. You cannot specify any other buffer. - - Function: buffer-disable-undo &optional buffer - - Function: buffer-flush-undo &optional buffer + - Function: buffer-disable-undo &optional BUFFER + - Function: buffer-flush-undo &optional BUFFER This function discards the undo list of BUFFER, and disables further recording of undo information. As a result, it is no longer possible to undo either previous changes or any subsequent @@ -762,14 +761,14 @@ inserting spaces to make the left and/or right margins line up precisely. The width is controlled by the variable `fill-column'. For ease of reading, lines should be no longer than 70 or so columns. - You can use Auto Fill mode (*note Auto Filling::) to fill text + You can use Auto Fill mode (*note Auto Filling::.) to fill text automatically as you insert it, but changes to existing text may leave it improperly filled. Then you must fill the text explicitly. Most of the commands in this section return values that are not meaningful. All the functions that do filling take note of the current left margin, current right margin, and current justification style -(*note Margins::). If the current justification style is `none', the +(*note Margins::.). If the current justification style is `none', the filling functions don't actually do anything. Several of the filling functions have an argument JUSTIFY. If it is @@ -782,21 +781,21 @@ justification style for this part of the text (see When you call the filling functions interactively, using a prefix argument implies the value `full' for JUSTIFY. - - Command: fill-paragraph justify + - Command: fill-paragraph JUSTIFY This command fills the paragraph at or after point. If JUSTIFY is non-`nil', each line is justified as well. It uses the ordinary paragraph motion commands to find paragraph boundaries. *Note Paragraphs: (xemacs)Paragraphs. - - Command: fill-region start end &optional justify + - Command: fill-region START END &optional JUSTIFY This command fills each of the paragraphs in the region from START to END. It justifies as well if JUSTIFY is non-`nil'. The variable `paragraph-separate' controls how to distinguish paragraphs. *Note Standard Regexps::. - - Command: fill-individual-paragraphs start end &optional justify - mail-flag + - Command: fill-individual-paragraphs START END &optional JUSTIFY + MAIL-FLAG This command fills each paragraph in the region according to its individual fill prefix. Thus, if the lines of a paragraph were indented with spaces, the filled paragraph will remain indented in @@ -819,7 +818,7 @@ argument implies the value `full' for JUSTIFY. This variable alters the action of `fill-individual-paragraphs' as described above. - - Command: fill-region-as-paragraph start end &optional justify + - Command: fill-region-as-paragraph START END &optional JUSTIFY This command considers a region of text as a paragraph and fills it. If the region was made up of many paragraphs, the blank lines between paragraphs are removed. This function justifies as well @@ -832,7 +831,7 @@ argument implies the value `full' for JUSTIFY. no fill prefix uses the indentation of the second line of the paragraph as the fill prefix. - - Command: justify-current-line how eop nosqueeze + - Command: justify-current-line HOW EOP NOSQUEEZE This command inserts spaces between the words of the current line so that the line ends exactly at `fill-column'. It returns `nil'. @@ -902,7 +901,7 @@ Margins for Filling lines. Its value should be an integer, which is a number of columns. All the filling, justification and centering commands are affected by this variable, including Auto Fill mode (*note - Auto Filling::). + Auto Filling::.). As a practical matter, if you are writing text for other people to read, you should set `fill-column' to no more than 70. Otherwise @@ -916,12 +915,12 @@ Margins for Filling The default value for `default-fill-column' is 70. - - Command: set-left-margin from to margin + - Command: set-left-margin FROM TO MARGIN This sets the `left-margin' property on the text from FROM to TO to the value MARGIN. If Auto Fill mode is enabled, this command also refills the region to fit the new margin. - - Command: set-right-margin from to margin + - Command: set-right-margin FROM TO MARGIN This sets the `right-margin' property on the text from FROM to TO to the value MARGIN. If Auto Fill mode is enabled, this command also refills the region to fit the new margin. @@ -939,7 +938,7 @@ Margins for Filling `fill-column' variable, minus the value of the `right-margin' property of the character after point. - - Command: move-to-left-margin &optional n force + - Command: move-to-left-margin &optional N FORCE This function moves point to the left margin of the current line. The column moved to is determined by calling the function `current-left-margin'. If the argument N is non-`nil', @@ -948,7 +947,7 @@ Margins for Filling If FORCE is non-`nil', that says to fix the line's indentation if that doesn't match the left margin value. - - Function: delete-to-left-margin from to + - Function: delete-to-left-margin FROM TO This function removes left margin indentation from the text between FROM and TO. The amount of indentation to delete is determined by calling `current-left-margin'. In no case does this diff --git a/info/lispref.info-3 b/info/lispref.info-3 index 4a04dc2..18481ca 100644 --- a/info/lispref.info-3 +++ b/info/lispref.info-3 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -83,7 +83,7 @@ integer 65, following the standard ASCII representation of characters. If XEmacs was not compiled with MULE support, the range of this integer will always be 0 to 255 - eight bits, or one byte. (Integers outside this range are accepted but silently truncated; however, you should -most decidedly _not_ rely on this, because it will not work under +most decidedly *not* rely on this, because it will not work under XEmacs with MULE support.) When MULE support is present, the range of character codes is much larger. (Currently, 19 bits are used.) @@ -94,7 +94,7 @@ that does not distinguish between ASCII keys and other keys), so you will never find character codes above 255 in a non-MULE XEmacs. Individual characters are not often used in programs. It is far more -common to work with _strings_, which are sequences composed of +common to work with *strings*, which are sequences composed of characters. *Note String Type::. The read syntax for characters begins with a question mark, followed @@ -104,7 +104,7 @@ print representation. In XEmacs 19, however, where characters are really integers, the printed representation of a character is a decimal number. This is also a possible read syntax for a character, but writing characters that way in Lisp programs is a very bad idea. You -should _always_ use the special read syntax formats that XEmacs Lisp +should *always* use the special read syntax formats that XEmacs Lisp provides for characters. The usual read syntax for alphanumeric characters is a question mark @@ -122,7 +122,7 @@ the character `B', and `?a' for the character `a'. You can use the same syntax for punctuation characters, but it is often a good idea to add a `\' so that the Emacs commands for editing Lisp code don't get confused. For example, `?\ ' is the way to write -the space character. If the character is `\', you _must_ use a second +the space character. If the character is `\', you *must* use a second `\' to quote it: `?\\'. XEmacs 20 always prints punctuation characters with a `\' in front of them, to avoid confusion. @@ -177,7 +177,7 @@ example, both `?\^I' and `?\^i' are valid read syntax for the character There is also a character read syntax beginning with `\M-'. This sets the high bit of the character code (same as adding 128 to the character code). For example, `?\M-A' stands for the character with -character code 193, or 128 plus 65. You should _not_ use this syntax +character code 193, or 128 plus 65. You should *not* use this syntax in your programs. It is a holdover of yet another confoundance disease from earlier Emacsen. (This was used to represent keyboard input with the key set, thus the `M'; however, it conflicts with the @@ -276,8 +276,8 @@ considered a sequence. Arrays are further subdivided into strings, vectors, and bit vectors. Vectors can hold elements of any type, but string elements must be characters, and bit vector elements must be either 0 or 1. However, the -characters in a string can have extents (*note Extents::) and text -properties (*note Text Properties::) like characters in a buffer; +characters in a string can have extents (*note Extents::.) and text +properties (*note Text Properties::.) like characters in a buffer; vectors do not support extents or text properties even when their elements happen to be characters. @@ -357,7 +357,7 @@ cell refers to `nil'. Here is another diagram of the same list, `(rose violet buttercup)', sketched in a different manner: - --------------- ---------------- ------------------- + --------------- ---------------- ------------------- | car | cdr | | car | cdr | | car | cdr | | rose | o-------->| violet | o-------->| buttercup | nil | | | | | | | | | | @@ -614,13 +614,13 @@ Function Type functions in Lisp are primarily Lisp objects, and only secondarily the text which represents them. These Lisp objects are lambda expressions: lists whose first element is the symbol `lambda' (*note Lambda -Expressions::). +Expressions::.). In most programming languages, it is impossible to have a function without a name. In Lisp, a function has no intrinsic name. A lambda expression is also called an "anonymous function" (*note Anonymous -Functions::). A named function in Lisp is actually a symbol with a -valid function in its function cell (*note Defining Functions::). +Functions::.). A named function in Lisp is actually a symbol with a +valid function in its function cell (*note Defining Functions::.). Most of the time, functions are called when their names are written in Lisp expressions in Lisp programs. However, you can construct or @@ -655,7 +655,7 @@ in the C programming language. Primitive functions are also called "subrs" or "built-in functions". (The word "subr" is derived from "subroutine".) Most primitive functions evaluate all their arguments when they are called. A primitive function that does not evaluate all -its arguments is called a "special form" (*note Special Forms::). +its arguments is called a "special form" (*note Special Forms::.). It does not matter to the caller of a function whether the function is primitive. However, this does matter if you try to substitute a @@ -825,10 +825,10 @@ Buffer Type ----------- A "buffer" is an object that holds text that can be edited (*note -Buffers::). Most buffers hold the contents of a disk file (*note -Files::) so they can be edited, but some are used for other purposes. +Buffers::.). Most buffers hold the contents of a disk file (*note +Files::.) so they can be edited, but some are used for other purposes. Most buffers are also meant to be seen by the user, and therefore -displayed, at some time, in a window (*note Windows::). But a buffer +displayed, at some time, in a window (*note Windows::.). But a buffer need not be displayed in any window. The contents of a buffer are much like a string, but buffers are not @@ -839,21 +839,21 @@ concatenating substrings, and the result is an entirely new string object. Each buffer has a designated position called "point" (*note -Positions::). At any time, one buffer is the "current buffer". Most +Positions::.). At any time, one buffer is the "current buffer". Most editing commands act on the contents of the current buffer in the neighborhood of point. Many of the standard Emacs functions manipulate or test the characters in the current buffer; a whole chapter in this -manual is devoted to describing these functions (*note Text::). +manual is devoted to describing these functions (*note Text::.). Several other data structures are associated with each buffer: - * a local syntax table (*note Syntax Tables::); + * a local syntax table (*note Syntax Tables::.); - * a local keymap (*note Keymaps::); + * a local keymap (*note Keymaps::.); - * a local variable binding list (*note Buffer-Local Variables::); + * a local variable binding list (*note Buffer-Local Variables::.); - * a list of extents (*note Extents::); + * a list of extents (*note Extents::.); * and various other related properties. @@ -1104,8 +1104,8 @@ streams (character sinks) send characters to a buffer, such as a The object `nil', in addition to its other meanings, may be used as a stream. It stands for the value of the variable `standard-input' or `standard-output'. Also, the object `t' as a stream specifies input -using the minibuffer (*note Minibuffers::) or output in the echo area -(*note The Echo Area::). +using the minibuffer (*note Minibuffers::.) or output in the echo area +(*note The Echo Area::.). Streams have no special printed representation or read syntax, and print as whatever primitive type they are. @@ -1137,7 +1137,7 @@ Syntax Table Type Under XEmacs 20, a "syntax table" is a particular type of char table. Under XEmacs 19, a syntax table a vector of 256 integers. In both cases, each element defines how one character is interpreted when -it appears in a buffer. For example, in C mode (*note Major Modes::), +it appears in a buffer. For example, in C mode (*note Major Modes::.), the `+' character is punctuation, but in Lisp mode it is a valid character in a symbol. These modes specify different interpretations by changing the syntax table entry for `+'. diff --git a/info/lispref.info-30 b/info/lispref.info-30 index 308e0ad..f6dca17 100644 --- a/info/lispref.info-30 +++ b/info/lispref.info-30 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -57,11 +57,11 @@ Sorting Text The sorting functions described in this section all rearrange text in a buffer. This is in contrast to the function `sort', which rearranges -the order of the elements of a list (*note Rearrangement::). The +the order of the elements of a list (*note Rearrangement::.). The values returned by these functions are not meaningful. - - Function: sort-subr reverse nextrecfun endrecfun &optional - startkeyfun endkeyfun + - Function: sort-subr REVERSE NEXTRECFUN ENDRECFUN &optional + STARTKEYFUN ENDKEYFUN This function is the general text-sorting routine that divides a buffer into records and sorts them. Most of the commands in this section use this function. @@ -143,8 +143,8 @@ values returned by these functions are not meaningful. (skip-chars-forward "\n \t\f"))) 'forward-paragraph) - - Command: sort-regexp-fields reverse record-regexp key-regexp start - end + - Command: sort-regexp-fields REVERSE RECORD-REGEXP KEY-REGEXP START + END This command sorts the region between START and END alphabetically as specified by RECORD-REGEXP and KEY-REGEXP. If REVERSE is a negative integer, then sorting is in reverse order. @@ -206,29 +206,29 @@ values returned by these functions are not meaningful. If you call `sort-regexp-fields' interactively, it prompts for RECORD-REGEXP and KEY-REGEXP in the minibuffer. - - Command: sort-lines reverse start end + - Command: sort-lines REVERSE START END This command alphabetically sorts lines in the region between START and END. If REVERSE is non-`nil', the sort is in reverse order. - - Command: sort-paragraphs reverse start end + - Command: sort-paragraphs REVERSE START END This command alphabetically sorts paragraphs in the region between START and END. If REVERSE is non-`nil', the sort is in reverse order. - - Command: sort-pages reverse start end + - Command: sort-pages REVERSE START END This command alphabetically sorts pages in the region between START and END. If REVERSE is non-`nil', the sort is in reverse order. - - Command: sort-fields field start end + - Command: sort-fields FIELD START END This command sorts lines in the region between START and END, comparing them alphabetically by the FIELDth field of each line. Fields are separated by whitespace and numbered starting from 1. If FIELD is negative, sorting is by the -FIELDth field from the end of the line. This command is useful for sorting tables. - - Command: sort-numeric-fields field start end + - Command: sort-numeric-fields FIELD START END This command sorts lines in the region between START and END, comparing them numerically by the FIELDth field of each line. The specified field must contain a number in each line of the region. @@ -236,7 +236,7 @@ values returned by these functions are not meaningful. If FIELD is negative, sorting is by the -FIELDth field from the end of the line. This command is useful for sorting tables. - - Command: sort-columns reverse &optional beg end + - Command: sort-columns REVERSE &optional BEG END This command sorts the lines in the region between BEG and END, comparing them alphabetically by a certain range of columns. The column positions of BEG and END bound the range of columns to sort @@ -281,7 +281,7 @@ arbitrarily high. The first (or leftmost) column is numbered 0. For an example of using `current-column', see the description of `count-lines' in *Note Text Lines::. - - Function: move-to-column column &optional force + - Function: move-to-column COLUMN &optional FORCE This function moves point to COLUMN in the current line. The calculation of COLUMN takes into account the widths of the displayed representations of the characters between the start of @@ -343,7 +343,7 @@ primitives. contents are entirely blank, then this is the horizontal position of the end of the line. - - Command: indent-to column &optional minimum + - Command: indent-to COLUMN &optional MINIMUM This function indents from point with tabs and spaces until COLUMN is reached. If MINIMUM is specified and non-`nil', then at least that many spaces are inserted even if this requires going beyond @@ -421,7 +421,7 @@ Indenting an Entire Region This section describes commands that indent all the lines in the region. They return unpredictable values. - - Command: indent-region start end to-column + - Command: indent-region START END TO-COLUMN This command indents each nonblank line starting between START (inclusive) and END (exclusive). If TO-COLUMN is `nil', `indent-region' indents each nonblank line by calling the current @@ -455,7 +455,7 @@ region. They return unpredictable values. `indent-region' with a non-`nil' argument TO-COLUMN has a different meaning and does not use this variable. - - Command: indent-rigidly start end count + - Command: indent-rigidly START END COUNT This command indents all lines starting between START (inclusive) and END (exclusive) sideways by COUNT columns. This "preserves the shape" of the affected region, moving it as a rigid unit. @@ -470,8 +470,8 @@ region. They return unpredictable values. `indent-rigidly' to indent the text copied from the message being replied to. - - Function: indent-code-rigidly start end columns &optional - nochange-regexp + - Function: indent-code-rigidly START END COLUMNS &optional + NOCHANGE-REGEXP This is like `indent-rigidly', except that it doesn't alter lines that start within strings or comments. @@ -487,7 +487,7 @@ Indentation Relative to Previous Lines This section describes two commands that indent the current line based on the contents of previous lines. - - Command: indent-relative &optional unindented-ok + - Command: indent-relative &optional UNINDENTED-OK This command inserts whitespace at point, extending to the same column as the next "indent point" of the previous nonblank line. An indent point is a non-whitespace character following @@ -548,7 +548,7 @@ because the feature is similar to that of the tab stops on a typewriter. The feature works by inserting an appropriate number of spaces and tab characters to reach the next tab stop column; it does not affect the display of tab characters in the buffer (*note Usual -Display::). Note that the character as input uses this tab stop +Display::.). Note that the character as input uses this tab stop feature only in a few major modes, such as Text mode. - Command: tab-to-tab-stop @@ -580,11 +580,11 @@ indentation in the text. the current line (which is the line in which point is located). It returns `nil'. - - Command: backward-to-indentation arg + - Command: backward-to-indentation ARG This command moves point backward ARG lines and then to the first nonblank character on that line. It returns `nil'. - - Command: forward-to-indentation arg + - Command: forward-to-indentation ARG This command moves point forward ARG lines and then to the first nonblank character on that line. It returns `nil'. @@ -599,7 +599,7 @@ buffer. *Note Character Case::, for case conversion commands that work on strings and characters. *Note Case Tables::, for how to customize which characters are upper or lower case and how to convert them. - - Command: capitalize-region start end + - Command: capitalize-region START END This function capitalizes all words in the region defined by START and END. To capitalize means to convert each word's first character to upper case and convert the rest of each word to lower @@ -622,21 +622,21 @@ which characters are upper or lower case and how to convert them. This Is The Contents Of The 5th Foo. ---------- Buffer: foo ---------- - - Command: downcase-region start end + - Command: downcase-region START END This function converts all of the letters in the region defined by START and END to lower case. The function returns `nil'. When `downcase-region' is called interactively, START and END are point and the mark, with the smallest first. - - Command: upcase-region start end + - Command: upcase-region START END This function converts all of the letters in the region defined by START and END to upper case. The function returns `nil'. When `upcase-region' is called interactively, START and END are point and the mark, with the smallest first. - - Command: capitalize-word count + - Command: capitalize-word COUNT This function capitalizes COUNT words after point, moving point over as it does. To capitalize means to convert each word's first character to upper case and convert the rest of each word to lower @@ -650,7 +650,7 @@ which characters are upper or lower case and how to convert them. When `capitalize-word' is called interactively, COUNT is set to the numeric prefix argument. - - Command: downcase-word count + - Command: downcase-word COUNT This function converts the COUNT words after point to all lower case, moving point over as it does. If COUNT is negative, it converts the -COUNT previous words but does not move point. The @@ -659,7 +659,7 @@ which characters are upper or lower case and how to convert them. When `downcase-word' is called interactively, COUNT is set to the numeric prefix argument. - - Command: upcase-word count + - Command: upcase-word COUNT This function converts the COUNT words after point to all upper case, moving point over as it does. If COUNT is negative, it converts the -COUNT previous words but does not move point. The @@ -675,14 +675,14 @@ Text Properties =============== Text properties are an alternative interface to extents (*note -Extents::), and are built on top of them. They are useful when you +Extents::.), and are built on top of them. They are useful when you want to view textual properties as being attached to the characters themselves rather than to intervals of characters. The text property interface is compatible with FSF Emacs. Each character position in a buffer or a string can have a "text property list", much like the property list of a symbol (*note Property -Lists::). The properties belong to a particular character at a +Lists::.). The properties belong to a particular character at a particular place, such as, the letter `T' at the beginning of this sentence or the first `o' in `foo'--if the same character occurs in two different places, the two occurrences generally have different @@ -724,17 +724,17 @@ to examine the properties of a number of characters at once. positions in a string start from 0, whereas positions in a buffer start from 1.) - - Function: get-text-property pos prop &optional object + - Function: get-text-property POS PROP &optional OBJECT This function returns the value of the PROP property of the character after position POS in OBJECT (a buffer or string). The argument OBJECT is optional and defaults to the current buffer. - - Function: get-char-property pos prop &optional object + - Function: get-char-property POS PROP &optional OBJECT This function is like `get-text-property', except that it checks all extents, not just text-property extents. - - Function: text-properties-at position &optional object + - Function: text-properties-at POSITION &optional OBJECT This function returns the entire property list of the character at POSITION in the string or buffer OBJECT. If OBJECT is `nil', it defaults to the current buffer. @@ -767,20 +767,20 @@ name. Since text properties are considered part of the buffer's contents, and can affect how the buffer looks on the screen, any change in the text properties is considered a buffer modification. Buffer text -property changes are undoable (*note Undo::). +property changes are undoable (*note Undo::.). - - Function: put-text-property start end prop value &optional object + - Function: put-text-property START END PROP VALUE &optional OBJECT This function sets the PROP property to VALUE for the text between START and END in the string or buffer OBJECT. If OBJECT is `nil', it defaults to the current buffer. - - Function: add-text-properties start end props &optional object + - Function: add-text-properties START END PROPS &optional OBJECT This function modifies the text properties for the text between START and END in the string or buffer OBJECT. If OBJECT is `nil', it defaults to the current buffer. The argument PROPS specifies which properties to change. It - should have the form of a property list (*note Property Lists::): + should have the form of a property list (*note Property Lists::.): a list whose elements include the property names followed alternately by the corresponding values. @@ -794,13 +794,13 @@ property changes are undoable (*note Undo::). (add-text-properties START END '(comment t face highlight)) - - Function: remove-text-properties start end props &optional object + - Function: remove-text-properties START END PROPS &optional OBJECT This function deletes specified text properties from the text between START and END in the string or buffer OBJECT. If OBJECT is `nil', it defaults to the current buffer. The argument PROPS specifies which properties to delete. It - should have the form of a property list (*note Property Lists::): + should have the form of a property list (*note Property Lists::.): a list whose elements are property names alternating with corresponding values. But only the names matter--the values that accompany them are ignored. For example, here's how to remove the @@ -812,7 +812,7 @@ property changes are undoable (*note Undo::). property's value; `nil' otherwise (if PROPS is `nil' or if no character in the specified text had any of those properties). - - Function: set-text-properties start end props &optional object + - Function: set-text-properties START END PROPS &optional OBJECT This function completely replaces the text property list for the text between START and END in the string or buffer OBJECT. If OBJECT is `nil', it defaults to the current buffer. @@ -830,7 +830,7 @@ property changes are undoable (*note Undo::). (set-text-properties START END nil) See also the function `buffer-substring-without-properties' (*note -Buffer Contents::) which copies text from the buffer but does not copy +Buffer Contents::.) which copies text from the buffer but does not copy its properties.  @@ -857,7 +857,7 @@ the buffer, if the property you are interested in does not change. position returned by these functions is between two characters with different properties. - - Function: next-property-change pos &optional object limit + - Function: next-property-change POS &optional OBJECT LIMIT The function scans the text forward from position POS in the string or buffer OBJECT till it finds a change in some text property, then returns the position of the change. In other @@ -885,7 +885,7 @@ different properties. Process text from point to NEXT-CHANGE... (goto-char next-change))) - - Function: next-single-property-change pos prop &optional object limit + - Function: next-single-property-change POS PROP &optional OBJECT LIMIT The function scans the text forward from position POS in the string or buffer OBJECT till it finds a change in the PROP property, then returns the position of the change. In other @@ -902,19 +902,19 @@ different properties. it is a position greater than or equal to POS; it equals POS only if LIMIT equals POS. - - Function: previous-property-change pos &optional object limit + - Function: previous-property-change POS &optional OBJECT LIMIT This is like `next-property-change', but scans back from POS instead of forward. If the value is non-`nil', it is a position less than or equal to POS; it equals POS only if LIMIT equals POS. - - Function: previous-single-property-change pos prop &optional object - limit + - Function: previous-single-property-change POS PROP &optional OBJECT + LIMIT This is like `next-single-property-change', but scans back from POS instead of forward. If the value is non-`nil', it is a position less than or equal to POS; it equals POS only if LIMIT equals POS. - - Function: text-property-any start end prop value &optional object + - Function: text-property-any START END PROP VALUE &optional OBJECT This function returns non-`nil' if at least one character between START and END has a property PROP whose value is VALUE. More precisely, it returns the position of the first such character. @@ -924,7 +924,7 @@ different properties. buffer to scan. Positions are relative to OBJECT. The default for OBJECT is the current buffer. - - Function: text-property-not-all start end prop value &optional object + - Function: text-property-not-all START END PROP VALUE &optional OBJECT This function returns non-`nil' if at least one character between START and END has a property PROP whose value differs from VALUE. More precisely, it returns the position of the first such @@ -1019,8 +1019,8 @@ Substituting for a Character Code The following functions replace characters within a specified region based on their character codes. - - Function: subst-char-in-region start end old-char new-char &optional - noundo + - Function: subst-char-in-region START END OLD-CHAR NEW-CHAR &optional + NOUNDO This function replaces all occurrences of the character OLD-CHAR with the character NEW-CHAR in the region of the current buffer defined by START and END. @@ -1028,7 +1028,7 @@ based on their character codes. If NOUNDO is non-`nil', then `subst-char-in-region' does not record the change for undo and does not mark the buffer as modified. This feature is used for controlling selective display - (*note Selective Display::). + (*note Selective Display::.). `subst-char-in-region' does not move point and returns `nil'. @@ -1043,7 +1043,7 @@ based on their character codes. ThXs Xs the contents of the buffer before. ---------- Buffer: foo ---------- - - Function: translate-region start end table + - Function: translate-region START END TABLE This function applies a translation table to the characters in the buffer between positions START and END. The translation table TABLE can be either a string, a vector, or a char-table. @@ -1121,19 +1121,19 @@ otherwise stated. represents a rectangle; its elements are strings, one per line of the rectangle. - - Function: get-register reg + - Function: get-register REG This function returns the contents of the register REG, or `nil' if it has no contents. - - Function: set-register reg value + - Function: set-register REG VALUE This function sets the contents of register REG to VALUE. A register can be set to any value, but the other register functions expect only certain data types. The return value is VALUE. - - Command: view-register reg + - Command: view-register REG This command displays what is contained in register REG. - - Command: insert-register reg &optional beforep + - Command: insert-register REG &optional BEFOREP This command inserts contents of register REG into the current buffer. @@ -1160,8 +1160,8 @@ Transposition of Text This subroutine is used by the transposition commands. - - Function: transpose-regions start1 end1 start2 end2 &optional - leave-markers + - Function: transpose-regions START1 END1 START2 END2 &optional + LEAVE-MARKERS This function exchanges two nonoverlapping portions of the buffer. Arguments START1 and END1 specify the bounds of one portion and arguments START2 and END2 specify the bounds of the other portion. diff --git a/info/lispref.info-31 b/info/lispref.info-31 index 6924c2f..99f580d 100644 --- a/info/lispref.info-31 +++ b/info/lispref.info-31 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -118,7 +118,7 @@ target digest. MD5 is used heavily by various authentication schemes. Emacs Lisp interface to MD5 consists of a single function `md5': - - Function: md5 object &optional start end + - Function: md5 OBJECT &optional START END This function returns the MD5 message digest of OBJECT, a buffer or string. @@ -146,7 +146,7 @@ binary bodies, and to encode binary characters in message headers. The Lisp interface to base64 consists of four functions: - - Function: base64-encode-region beg end &optional no-line-break + - Function: base64-encode-region BEG END &optional NO-LINE-BREAK This function encodes the region between BEG and END of the current buffer to base64 format. This means that the original region is deleted, and replaced with its base64 equivalent. @@ -169,7 +169,7 @@ binary bodies, and to encode binary characters in message headers. The function can also be used interactively, in which case it works on the currently active region. - - Function: base64-encode-string string + - Function: base64-encode-string STRING This function encodes STRING to base64, and returns the encoded string. @@ -179,7 +179,7 @@ binary bodies, and to encode binary characters in message headers. (base64-encode-string "fubar") => "ZnViYXI=" - - Function: base64-decode-region beg end + - Function: base64-decode-region BEG END This function decodes the region between BEG and END of the current buffer. The region should be in base64 encoding. @@ -190,7 +190,7 @@ binary bodies, and to encode binary characters in message headers. ;; Decode a base64 buffer, and replace it with the decoded version (base64-decode-region (point-min) (point-max)) - - Function: base64-decode-string string + - Function: base64-decode-string STRING This function decodes STRING to base64, and returns the decoded string. STRING should be valid base64-encoded text. @@ -240,7 +240,7 @@ buffer. They are meant for use in programs, but you may call them interactively. If you do so, they prompt for the search string; LIMIT and NOERROR are set to `nil', and REPEAT is set to 1. - - Command: search-forward string &optional limit noerror repeat + - Command: search-forward STRING &optional LIMIT NOERROR REPEAT This function searches forward from point for an exact match for STRING. If successful, it sets point to the end of the occurrence found, and returns the new value of point. If no match is found, @@ -281,12 +281,12 @@ and NOERROR are set to `nil', and REPEAT is set to 1. succeed, the function succeeds, moving point and returning its new value. Otherwise the search fails. - - Command: search-backward string &optional limit noerror repeat + - Command: search-backward STRING &optional LIMIT NOERROR REPEAT This function searches backward from point for STRING. It is just like `search-forward' except that it searches backwards and leaves point at the beginning of the match. - - Command: word-search-forward string &optional limit noerror repeat + - Command: word-search-forward STRING &optional LIMIT NOERROR REPEAT This function searches forward from point for a "word" match for STRING. If it finds a match, it sets point to the end of the match found, and returns the new value of point. @@ -327,7 +327,7 @@ and NOERROR are set to `nil', and REPEAT is set to 1. If REPEAT is non-`nil', then the search is repeated that many times. Point is positioned at the end of the last match. - - Command: word-search-backward string &optional limit noerror repeat + - Command: word-search-backward STRING &optional LIMIT NOERROR REPEAT This function searches backward from point for a word match to STRING. This function is just like `word-search-forward' except that it searches backward and normally leaves point at the @@ -379,7 +379,7 @@ unless a `\' precedes it. For example, `f' is not a special character, so it is ordinary, and therefore `f' is a regular expression that matches the string `f' and -no other string. (It does _not_ match the string `ff'.) Likewise, `o' +no other string. (It does *not* match the string `ff'.) Likewise, `o' is a regular expression that matches only `o'. Any two regular expressions A and B can be concatenated. The result @@ -404,7 +404,7 @@ to use one of the special characters. Here is a list of them: matches one `f' followed by any number of `o's. The case of zero `o's is allowed: `fo*' does match `f'. - `*' always applies to the _smallest_ possible preceding + `*' always applies to the *smallest* possible preceding expression. Thus, `fo*' has a repeating `o', not a repeating `fo'. The matcher processes a `*' construct by matching, immediately, as @@ -493,7 +493,7 @@ to use one of the special characters. Here is a list of them: `[^ ... ]' `[^' begins a "complement character set", which matches any character except the ones specified. Thus, `[^a-z0-9A-Z]' matches - all characters _except_ letters and digits. + all characters *except* letters and digits. `^' is not special in a character set unless it is the first character. The character following the `^' is treated as if it @@ -527,7 +527,7 @@ to use one of the special characters. Here is a list of them: that matches only `[', and so on. Note that `\' also has special meaning in the read syntax of Lisp - strings (*note String Type::), and must be quoted with `\'. For + strings (*note String Type::.), and must be quoted with `\'. For example, the regular expression that matches the `\' character is `\\'. To write a Lisp string that contains the characters `\\', Lisp syntax requires you to quote each `\' with another `\'. @@ -660,7 +660,7 @@ match depends on the context. separate word. `\B' - matches the empty string, but _not_ at the beginning or end of a + matches the empty string, but *not* at the beginning or end of a word. `\<' @@ -675,7 +675,7 @@ exceptions, such as `[]]'), and so is a string that ends with a single `\'. If an invalid regular expression is passed to any of the search functions, an `invalid-regexp' error is signaled. - - Function: regexp-quote string + - Function: regexp-quote STRING This function returns a regular expression string that matches exactly STRING and nothing else. This allows you to request an exact string match when calling a function that wants a regular @@ -760,7 +760,7 @@ incrementally or not. Incremental search commands are described in the (emacs)Regexp Search. Here we describe only the search functions useful in programs. The principal one is `re-search-forward'. - - Command: re-search-forward regexp &optional limit noerror repeat + - Command: re-search-forward REGEXP &optional LIMIT NOERROR REPEAT This function searches forward in the current buffer for a string of text that is matched by the regular expression REGEXP. The function skips over any amount of text that is not matched by @@ -801,7 +801,7 @@ useful in programs. The principal one is `re-search-forward'. comes back" twice. ---------- Buffer: foo ---------- - - Command: re-search-backward regexp &optional limit noerror repeat + - Command: re-search-backward REGEXP &optional LIMIT NOERROR REPEAT This function searches backward in the current buffer for a string of text that is matched by the regular expression REGEXP, leaving point at the beginning of the first text found. @@ -820,7 +820,7 @@ useful in programs. The principal one is `re-search-forward'. feature for matching regexps from end to beginning. It's not worth the trouble of implementing that. - - Function: string-match regexp string &optional start + - Function: string-match REGEXP STRING &optional START This function returns the index of the start of the first match for the regular expression REGEXP in STRING, or `nil' if there is no match. If START is non-`nil', the search starts at that index in @@ -849,7 +849,7 @@ useful in programs. The principal one is `re-search-forward'. (match-end 0) => 32 - - Function: split-string string &optional pattern + - Function: split-string STRING &optional PATTERN This function splits STRING to substrings delimited by PATTERN, and returns a list of substrings. If PATTERN is omitted, it defaults to `[ \f\t\n\r\v]+', which means that it splits STRING by @@ -867,13 +867,13 @@ useful in programs. The principal one is `re-search-forward'. (split-string ":a::b:c" ":") => ("" "a" "" "b" "c") - - Function: split-path path + - Function: split-path PATH This function splits a search path into a list of strings. The path components are separated with the characters specified with `path-separator'. Under Unix, `path-separator' will normally be `:', while under Windows, it will be `;'. - - Function: looking-at regexp + - Function: looking-at REGEXP This function determines whether the text in the current buffer directly following point matches the regular expression REGEXP. "Directly following" means precisely that: the search is @@ -904,7 +904,7 @@ POSIX Regular Expression Searching The usual regular expression functions do backtracking when necessary to handle the `\|' and repetition constructs, but they continue this -only until they find _some_ match. Then they succeed and report the +only until they find *some* match. Then they succeed and report the first match found. This section describes alternative search functions which perform the @@ -917,22 +917,22 @@ functions only when you really need the longest match. In Emacs versions prior to 19.29, these functions did not exist, and the functions described above implemented full POSIX backtracking. - - Function: posix-search-forward regexp &optional limit noerror repeat + - Function: posix-search-forward REGEXP &optional LIMIT NOERROR REPEAT This is like `re-search-forward' except that it performs the full backtracking specified by the POSIX standard for regular expression matching. - - Function: posix-search-backward regexp &optional limit noerror repeat + - Function: posix-search-backward REGEXP &optional LIMIT NOERROR REPEAT This is like `re-search-backward' except that it performs the full backtracking specified by the POSIX standard for regular expression matching. - - Function: posix-looking-at regexp + - Function: posix-looking-at REGEXP This is like `looking-at' except that it performs the full backtracking specified by the POSIX standard for regular expression matching. - - Function: posix-string-match regexp string &optional start + - Function: posix-string-match REGEXP STRING &optional START This is like `string-match' except that it performs the full backtracking specified by the POSIX standard for regular expression matching. @@ -943,8 +943,8 @@ File: lispref.info, Node: Search and Replace, Next: Match Data, Prev: POSIX R Search and Replace ================== - - Function: perform-replace from-string replacements query-flag - regexp-flag delimited-flag &optional repeat-count map + - Function: perform-replace FROM-STRING REPLACEMENTS QUERY-FLAG + REGEXP-FLAG DELIMITED-FLAG &optional REPEAT-COUNT MAP This function is the guts of `query-replace' and related commands. It searches for occurrences of FROM-STRING and replaces some or all of them. If QUERY-FLAG is `nil', it replaces all occurrences; @@ -1075,7 +1075,7 @@ numbered 1, the second 2, and so on. Only regular expressions can have subexpressions--after a simple string search, the only information available is about the entire match. - - Function: match-string count &optional in-string + - Function: match-string COUNT &optional IN-STRING This function returns, as a string, the text matched in the last search or match operation. It returns the entire text if COUNT is zero, or just the portion corresponding to the COUNTth @@ -1090,7 +1090,7 @@ available is about the entire match. make sure that the current buffer when you call `match-string' is the one in which you did the searching or matching. - - Function: match-beginning count + - Function: match-beginning COUNT This function returns the position of the start of text matched by the last regular expression searched for, or a subexpression of it. @@ -1102,7 +1102,7 @@ available is about the entire match. The value is `nil' for a subexpression inside a `\|' alternative that wasn't used in the match. - - Function: match-end count + - Function: match-end COUNT This function is like `match-beginning' except that it returns the position of the end of the match, rather than the position of the beginning. @@ -1164,8 +1164,8 @@ Replacing the Text That Matched This function replaces the text matched by the last search with REPLACEMENT. - - Function: replace-match replacement &optional fixedcase literal - string + - Function: replace-match REPLACEMENT &optional FIXEDCASE LITERAL + STRING This function replaces the text in the buffer (or in STRING) that was matched by the last search. It replaces that text with REPLACEMENT. diff --git a/info/lispref.info-32 b/info/lispref.info-32 index 731b5f1..06552b3 100644 --- a/info/lispref.info-32 +++ b/info/lispref.info-32 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -85,7 +85,7 @@ entire match data, all at once. # #) - - Function: set-match-data match-list + - Function: set-match-data MATCH-LIST This function sets the match data from the elements of MATCH-LIST, which should be a list that was the value of a previous call to `match-data'. @@ -116,7 +116,7 @@ that shows the problem that arises if you fail to save the match data: You can save and restore the match data with `save-match-data': - - Macro: save-match-data body... + - Macro: save-match-data BODY... This special form executes BODY, saving and restoring the match data around it. @@ -130,8 +130,8 @@ writing code that can run in Emacs 18. Here is how: (set-match-data data))) Emacs automatically saves and restores the match data when it runs -process filter functions (*note Filter Functions::) and process -sentinels (*note Sentinels::). +process filter functions (*note Filter Functions::.) and process +sentinels (*note Sentinels::.).  File: lispref.info, Node: Searching and Case, Next: Standard Regexps, Prev: Match Data, Up: Searching and Matching @@ -190,7 +190,7 @@ used for certain purposes in editing: The default value is `"^\014"' (i.e., `"^^L"' or `"^\C-l"'); this matches a line that starts with a formfeed character. - The following two regular expressions should _not_ assume the match + The following two regular expressions should *not* assume the match always starts at the beginning of a line; they should not use `^' to anchor the match. Most often, the paragraph commands do check for a match only at the beginning of a line, which means that `^' would be @@ -208,7 +208,7 @@ never used. - Variable: paragraph-start This is the regular expression for recognizing the beginning of a - line that starts _or_ separates paragraphs. The default value is + line that starts *or* separates paragraphs. The default value is `"[ \t\n\f]"', which matches a line starting with a space, tab, newline, or form feed (after its left margin). @@ -236,8 +236,8 @@ Syntax Tables character. This information is used by the parsing commands, the complex movement commands, and others to determine where words, symbols, and other syntactic constructs begin and end. The current syntax table -controls the meaning of the word motion functions (*note Word Motion::) -and the list motion functions (*note List Motion::) as well as the +controls the meaning of the word motion functions (*note Word Motion::.) +and the list motion functions (*note List Motion::.) as well as the functions in this chapter. * Menu: @@ -262,12 +262,12 @@ the syntactic use of each character in a buffer. This information is used by the parsing commands, the complex movement commands, and others to determine where words, symbols, and other syntactic constructs begin and end. The current syntax table controls the meaning of the word -motion functions (*note Word Motion::) and the list motion functions -(*note List Motion::) as well as the functions in this chapter. +motion functions (*note Word Motion::.) and the list motion functions +(*note List Motion::.) as well as the functions in this chapter. Under XEmacs 20, a syntax table is a particular subtype of the -primitive char table type (*note Char Tables::), and each element of the -char table is an integer that encodes the syntax of the character in +primitive char table type (*note Char Tables::.), and each element of +the char table is an integer that encodes the syntax of the character in question, or a cons of such an integer and a matching character (for characters with parenthesis syntax). @@ -301,7 +301,7 @@ useful with character sets such as ISO Latin-1 that have additional alphabetic characters in the range 128 to 255. Just changing the standard syntax for these characters affects all major modes. - - Function: syntax-table-p object + - Function: syntax-table-p OBJECT This function returns `t' if OBJECT is a vector of length 256 elements. This means that the vector may be a syntax table. However, according to this test, any vector of length 256 is @@ -488,11 +488,11 @@ characters `1', `2', `3', `4', `b' and `p'. All the flags except `p' are used to describe multi-character comment delimiters. The digit flags indicate that a character can -_also_ be part of a comment sequence, in addition to the syntactic +*also* be part of a comment sequence, in addition to the syntactic properties associated with its character class. The flags are independent of the class and each other for the sake of characters such -as `*' in C mode, which is a punctuation character, _and_ the second -character of a start-of-comment sequence (`/*'), _and_ the first +as `*' in C mode, which is a punctuation character, *and* the second +character of a start-of-comment sequence (`/*'), *and* the first character of an end-of-comment sequence (`*/'). The flags for a character C are: @@ -571,7 +571,7 @@ Syntax Table Functions In this section we describe functions for creating, accessing and altering syntax tables. - - Function: make-syntax-table &optional table + - Function: make-syntax-table &optional TABLE This function creates a new syntax table. Character codes 0 through 31 and 128 through 255 are set up to inherit from the standard syntax table. The other character codes are set up by @@ -579,13 +579,13 @@ altering syntax tables. Most major mode syntax tables are created in this way. - - Function: copy-syntax-table &optional table + - Function: copy-syntax-table &optional TABLE This function constructs a copy of TABLE and returns it. If TABLE is not supplied (or is `nil'), it returns a copy of the current syntax table. Otherwise, an error is signaled if TABLE is not a syntax table. - - Command: modify-syntax-entry char syntax-descriptor &optional table + - Command: modify-syntax-entry CHAR SYNTAX-DESCRIPTOR &optional TABLE This function sets the syntax entry for CHAR according to SYNTAX-DESCRIPTOR. The syntax is changed only for TABLE, which defaults to the current buffer's syntax table, and not in any @@ -624,9 +624,9 @@ altering syntax tables. (modify-syntax-entry ?/ ". 14") => nil - - Function: char-syntax character + - Function: char-syntax CHARACTER This function returns the syntax class of CHARACTER, represented - by its mnemonic designator character. This _only_ returns the + by its mnemonic designator character. This *only* returns the class, not any matching parenthesis or flags. An error is signaled if CHAR is not a character. @@ -648,11 +648,11 @@ altering syntax tables. (char-to-string (char-syntax ?\()) => "(" - - Function: set-syntax-table table &optional buffer + - Function: set-syntax-table TABLE &optional BUFFER This function makes TABLE the syntax table for BUFFER, which defaults to the current buffer if omitted. It returns TABLE. - - Function: syntax-table &optional buffer + - Function: syntax-table &optional BUFFER This function returns the syntax table for BUFFER, which defaults to the current buffer if omitted. @@ -666,14 +666,14 @@ Motion and Syntax certain syntax classes. None of these functions exists in Emacs version 18 or earlier. - - Function: skip-syntax-forward syntaxes &optional limit buffer + - Function: skip-syntax-forward SYNTAXES &optional LIMIT BUFFER This function moves point forward across characters having syntax classes mentioned in SYNTAXES. It stops when it encounters the end of the buffer, or position LIMIT (if specified), or a character it is not supposed to skip. Optional argument BUFFER defaults to the current buffer if omitted. - - Function: skip-syntax-backward syntaxes &optional limit buffer + - Function: skip-syntax-backward SYNTAXES &optional LIMIT BUFFER This function moves point backward across characters whose syntax classes are mentioned in SYNTAXES. It stops when it encounters the beginning of the buffer, or position LIMIT (if specified), or a @@ -681,7 +681,7 @@ version 18 or earlier. defaults to the current buffer if omitted. - - Function: backward-prefix-chars &optional buffer + - Function: backward-prefix-chars &optional BUFFER This function moves point backward over any number of characters with expression prefix syntax. This includes both characters in the expression prefix syntax class, and characters with the `p' @@ -701,8 +701,8 @@ these functions can be used for Lisp expressions when in Lisp mode and for C expressions when in C mode. *Note List Motion::, for convenient higher-level functions for moving over balanced expressions. - - Function: parse-partial-sexp start limit &optional target-depth - stop-before state stop-comment buffer + - Function: parse-partial-sexp START LIMIT &optional TARGET-DEPTH + STOP-BEFORE STATE STOP-COMMENT BUFFER This function parses a sexp in the current buffer starting at START, not scanning past LIMIT. It stops at position LIMIT or when certain criteria described below are met, and sets point to @@ -757,7 +757,7 @@ higher-level functions for moving over balanced expressions. This function is most often used to compute indentation for languages that have nested parentheses. - - Function: scan-lists from count depth &optional buffer noerror + - Function: scan-lists FROM COUNT DEPTH &optional BUFFER NOERROR This function scans forward COUNT balanced parenthetical groupings from character number FROM. It returns the character position where the scan stops. @@ -782,7 +782,7 @@ higher-level functions for moving over balanced expressions. If optional arg NOERROR is non-`nil', `scan-lists' will return `nil' instead of signalling an error. - - Function: scan-sexps from count &optional buffer noerror + - Function: scan-sexps FROM COUNT &optional BUFFER NOERROR This function scans forward COUNT sexps from character position FROM. It returns the character position where the scan stops. @@ -813,7 +813,7 @@ higher-level functions for moving over balanced expressions. You can use `forward-comment' to move forward or backward over one comment or several comments. - - Function: forward-comment count &optional buffer + - Function: forward-comment COUNT &optional BUFFER This function moves point forward across COUNT comments (backward, if COUNT is negative). If it finds anything other than a comment or whitespace, it stops, leaving point at the place where it @@ -860,7 +860,7 @@ Syntax Table Internals of one character: the syntax class, possible matching character, and flags. Lisp programs don't usually work with the elements directly; the Lisp-level syntax table functions usually work with syntax descriptors -(*note Syntax Descriptors::). +(*note Syntax Descriptors::.). The low 8 bits of each element of a syntax table indicate the syntax class. @@ -933,7 +933,7 @@ abbrev table. Normally both are used. An abbrev table is represented as an obarray containing a symbol for each abbreviation. The symbol's name is the abbreviation; its value is the expansion; its function definition is the hook function to do the -expansion (*note Defining Abbrevs::); its property list cell contains +expansion (*note Defining Abbrevs::.); its property list cell contains the use count, the number of times the abbreviation has been expanded. Because these symbols are not interned in the usual obarray, they will never appear as the result of reading a Lisp expression; in fact, @@ -986,11 +986,11 @@ Abbrev Tables This function creates and returns a new, empty abbrev table--an obarray containing no symbols. It is a vector filled with zeros. - - Function: clear-abbrev-table table + - Function: clear-abbrev-table TABLE This function undefines all the abbrevs in abbrev table TABLE, leaving it empty. The function returns `nil'. - - Function: define-abbrev-table tabname definitions + - Function: define-abbrev-table TABNAME DEFINITIONS This function defines TABNAME (a symbol) as an abbrev table name, i.e., as a variable whose value is an abbrev table. It defines abbrevs in the table according to DEFINITIONS, a list of elements @@ -1001,7 +1001,7 @@ Abbrev Tables This is a list of symbols whose values are abbrev tables. `define-abbrev-table' adds the new abbrev table name to this list. - - Function: insert-abbrev-table-description name &optional human + - Function: insert-abbrev-table-description NAME &optional HUMAN This function inserts before point a description of the abbrev table named NAME. The argument NAME is a symbol whose value is an abbrev table. The value is always `nil'. @@ -1021,7 +1021,7 @@ Defining Abbrevs `define-abbrev' is the low-level basic function, while `add-abbrev' is used by commands that ask for information from the user. - - Function: add-abbrev table type arg + - Function: add-abbrev TABLE TYPE ARG This function adds an abbreviation to abbrev table TABLE based on information from the user. The argument TYPE is a string describing in English the kind of abbrev this will be (typically, @@ -1032,7 +1032,7 @@ used by commands that ask for information from the user. abbrev, or `nil' if the user declines to confirm redefining an existing abbrev. - - Function: define-abbrev table name expansion hook + - Function: define-abbrev TABLE NAME EXPANSION HOOK This function defines an abbrev in TABLE named NAME, to expand to EXPANSION, and call HOOK. The return value is an uninterned symbol that represents the abbrev inside XEmacs; its name is NAME. @@ -1063,7 +1063,7 @@ Saving Abbrevs in Files A file of saved abbrev definitions is actually a file of Lisp code. The abbrevs are saved in the form of a Lisp program to define the same abbrev tables with the same contents. Therefore, you can load the file -with `load' (*note How Programs Do Loading::). However, the function +with `load' (*note How Programs Do Loading::.). However, the function `quietly-read-abbrev-file' is provided as a more convenient interface. User-level facilities such as `save-some-buffers' can save abbrevs @@ -1072,7 +1072,7 @@ in a file automatically, under the control of variables described here. - User Option: abbrev-file-name This is the default file name for reading and saving abbrevs. - - Function: quietly-read-abbrev-file filename + - Function: quietly-read-abbrev-file FILENAME This function reads abbrev definitions from a file named FILENAME, previously written with `write-abbrev-file'. If FILENAME is `nil', the file specified in `abbrev-file-name' is used. @@ -1090,7 +1090,7 @@ in a file automatically, under the control of variables described here. abbrevs. This serves as a flag for various XEmacs commands to offer to save your abbrevs. - - Command: write-abbrev-file filename + - Command: write-abbrev-file FILENAME Save all abbrev definitions, in all abbrev tables, in the file FILENAME, in the form of a Lisp program that when loaded will define the same abbrevs. This function returns `nil'. @@ -1106,7 +1106,7 @@ including `self-insert-command'. This section describes the subroutines used in writing such functions, as well as the variables they use for communication. - - Function: abbrev-symbol abbrev &optional table + - Function: abbrev-symbol ABBREV &optional TABLE This function returns the symbol representing the abbrev named ABBREV. The value returned is `nil' if that abbrev is not defined. The optional second argument TABLE is the abbrev table @@ -1114,7 +1114,7 @@ they use for communication. the current buffer's local abbrev table, and second the global abbrev table. - - Function: abbrev-expansion abbrev &optional table + - Function: abbrev-expansion ABBREV &optional TABLE This function returns the string that ABBREV would expand into (as defined by the abbrev tables used for the current buffer). The optional argument TABLE specifies the abbrev table to use, as in @@ -1125,7 +1125,7 @@ they use for communication. does not follow an abbrev, this command does nothing. The command returns `t' if it did expansion, `nil' otherwise. - - Command: abbrev-prefix-mark &optional arg + - Command: abbrev-prefix-mark &optional ARG Mark current point as the beginning of an abbrev. The next call to `expand-abbrev' will use the text from here to point (where it is then) as the abbrev to expand, rather than using the previous word diff --git a/info/lispref.info-33 b/info/lispref.info-33 index a7cb988..d427271 100644 --- a/info/lispref.info-33 +++ b/info/lispref.info-33 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -61,7 +61,7 @@ other properties such as being read-only. Extents can overlap each other. XEmacs efficiently handles buffers with large numbers of extents in them. - - Function: extentp object + - Function: extentp OBJECT This returns `t' if OBJECT is an extent. * Menu: @@ -92,7 +92,7 @@ Extents can freely overlap each other in a buffer or string. Extents are invisible to functions that merely examine the text of a buffer or string. - _Please note:_ An alternative way to add properties to a buffer or + *Please note:* An alternative way to add properties to a buffer or string is to use text properties. *Note Text Properties::. An extent is logically a Lisp object consisting of a start position, @@ -158,30 +158,30 @@ File: lispref.info, Node: Creating and Modifying Extents, Next: Extent Endpoin Creating and Modifying Extents ============================== - - Function: make-extent from to &optional object + - Function: make-extent FROM TO &optional OBJECT This function makes an extent for the range [FROM, TO) in OBJECT (a buffer or string). OBJECT defaults to the current buffer. Insertions at point TO will be outside of the extent; insertions at FROM will be inside the extent, causing the extent to grow - (*note Extent Endpoints::). This is the same way that markers + (*note Extent Endpoints::.). This is the same way that markers behave. The extent is initially detached if both FROM and TO are `nil', and in this case OBJECT defaults to `nil', meaning the - extent is in no buffer or string (*note Detached Extents::). + extent is in no buffer or string (*note Detached Extents::.). - - Function: delete-extent extent + - Function: delete-extent EXTENT This function removes EXTENT from its buffer and destroys it. This does not modify the buffer's text, only its display properties. The extent cannot be used thereafter. To remove an extent in such a way that it can be re-inserted later, use `detach-extent'. *Note Detached Extents::. - - Function: extent-object extent + - Function: extent-object EXTENT This function returns the buffer or string that EXTENT is in. If the return value is `nil', this means that the extent is detached; however, a detached extent will not necessarily return a value of `nil'. - - Function: extent-live-p extent + - Function: extent-live-p EXTENT This function returns `nil' if EXTENT is deleted, and `t' otherwise. @@ -210,10 +210,10 @@ equivalent to `start-open' and `end-open' with the opposite sense. Both endpoints can be equal, in which case the extent includes no characters but still exists in the buffer or string. Zero-length -extents are used to represent annotations (*note Annotations::) and can +extents are used to represent annotations (*note Annotations::.) and can be used as a more powerful form of a marker. Deletion of all the characters in an extent may or may not result in a zero-length extent; -this depends on the `detachable' property (*note Detached Extents::). +this depends on the `detachable' property (*note Detached Extents::.). Insertion at the position of a zero-length extent expands the extent if both endpoints are closed; goes before the extent if it has the `start-open' property; and goes after the extent if it has the @@ -228,20 +228,20 @@ open, the extent remains in the buffer, moving as necessary. position, and then by decreasing end position (this is called the "display order"). - - Function: extent-start-position extent + - Function: extent-start-position EXTENT This function returns the start position of EXTENT. - - Function: extent-end-position extent + - Function: extent-end-position EXTENT This function returns the end position of EXTENT. - - Function: extent-length extent + - Function: extent-length EXTENT This function returns the length of EXTENT in characters. If the extent is detached, this returns `0'. If the extent is not detached, this is equivalent to (- (extent-end-position EXTENT) (extent-start-position EXTENT)) - - Function: set-extent-endpoints extent start end &optional - buffer-or-string + - Function: set-extent-endpoints EXTENT START END &optional + BUFFER-OR-STRING This function sets the start and end position of EXTENT to START and END. If both are `nil', this is equivalent to `detach-extent'. @@ -262,11 +262,11 @@ Finding Extents The following functions provide a simple way of determining the extents in a buffer or string. A number of more sophisticated primitives for mapping over the extents in a range of a buffer or string -are also provided (*note Mapping Over Extents::). When reading through +are also provided (*note Mapping Over Extents::.). When reading through this section, keep in mind the way that extents are ordered (*note -Extent Endpoints::). +Extent Endpoints::.). - - Function: extent-list &optional buffer-or-string from to flags + - Function: extent-list &optional BUFFER-OR-STRING FROM TO FLAGS This function returns a list of the extents in BUFFER-OR-STRING. BUFFER-OR-STRING defaults to the current buffer if omitted. FROM and TO can be used to limit the range over which extents are @@ -287,7 +287,7 @@ functions. To deal with this, functions typically mark their own extents by setting a particular property on them. The following function makes it easier to locate those extents. - - Function: extent-at pos &optional object property before at-flag + - Function: extent-at POS &optional OBJECT PROPERTY BEFORE AT-FLAG This function finds the "smallest" extent (i.e., the last one in the display order) at (i.e., overlapping) POS in OBJECT (a buffer or string) having PROPERTY set. OBJECT defaults to the current @@ -325,12 +325,12 @@ operation, you should probably use `mapcar-extents' or `map-extents', or loop using the BEFORE argument to `extent-at', rather than creating a loop using `next-extent'. - - Function: next-extent extent + - Function: next-extent EXTENT Given an extent EXTENT, this function returns the next extent in the buffer or string's display order. If EXTENT is a buffer or string, this returns the first extent in the buffer or string. - - Function: previous-extent extent + - Function: previous-extent EXTENT Given an extent EXTENT, this function returns the previous extent in the buffer or string's display order. If EXTENT is a buffer or string, this returns the last extent in the buffer or string. @@ -346,10 +346,10 @@ called `map-extents'. You should read through the definition of this function to familiarize yourself with the concepts and optional arguments involved. However, in practice you may find it more convenient to use the function `mapcar-extents' or to create a loop -using the `before' argument to `extent-at' (*note Finding Extents::). +using the `before' argument to `extent-at' (*note Finding Extents::.). - - Function: map-extents function &optional object from to maparg flags - property value + - Function: map-extents FUNCTION &optional OBJECT FROM TO MAPARG FLAGS + PROPERTY VALUE This function maps FUNCTION over the extents which overlap a region in OBJECT. OBJECT is normally a buffer or string but could be an extent (see below). The region is normally bounded by @@ -426,7 +426,7 @@ using the `before' argument to `extent-at' (*note Finding Extents::). region. `negate-in-region' - The condition specified by a `*-in-region' flag must _not_ + The condition specified by a `*-in-region' flag must *not* hold for the extent to be considered. At most one of `all-extents-closed', `all-extents-open', @@ -445,8 +445,8 @@ using the `before' argument to `extent-at' (*note Finding Extents::). If you want to map over extents and accumulate a list of results, the following function may be more convenient than `map-extents'. - - Function: mapcar-extents function &optional predicate - buffer-or-string from to flags property value + - Function: mapcar-extents FUNCTION &optional PREDICATE + BUFFER-OR-STRING FROM TO FLAGS PROPERTY VALUE This function applies FUNCTION to all extents which overlap a region in BUFFER-OR-STRING. The region is delimited by FROM and TO. FUNCTION is called with one argument, the extent. A list of @@ -456,8 +456,8 @@ the following function may be more convenient than `map-extents'. VALUE may also be used to control the extents passed to PREDICATE or FUNCTION, and have the same meaning as in `map-extents'. - - Function: map-extent-children function &optional object from to - maparg flags property value + - Function: map-extent-children FUNCTION &optional OBJECT FROM TO + MAPARG FLAGS PROPERTY VALUE This function is similar to `map-extents', but differs in that: * It only visits extents which start in the given region. @@ -470,7 +470,7 @@ the following function may be more convenient than `map-extents'. (defun walk-extents (buffer &optional ignore) (map-extent-children 'walk-extents buffer)) - - Function: extent-in-region-p extent &optional from to flags + - Function: extent-in-region-p EXTENT &optional FROM TO FLAGS This function returns T if `map-extents' would visit EXTENT if called with the given arguments. @@ -497,21 +497,21 @@ from that parent (or from the root ancestor if the parent in turn has a parent), and setting a property of the extent actually sets that property on the parent. *Note Extent Parents::. - - Function: extent-property extent property + - Function: extent-property EXTENT PROPERTY This function returns the value of PROPERTY in EXTENT. If PROPERTY is undefined, `nil' is returned. - - Function: extent-properties extent + - Function: extent-properties EXTENT This function returns a list of all of EXTENT's properties that do not have the value of `nil' (or the default value, for properties with predefined meanings). - - Function: set-extent-property extent property value + - Function: set-extent-property EXTENT PROPERTY VALUE This function sets PROPERTY to VALUE in EXTENT. (If PROPERTY has a predefined meaning, only certain values are allowed, and some values may be converted to others before being stored.) - - Function: set-extent-properties extent plist + - Function: set-extent-properties EXTENT PLIST Change some properties of EXTENT. PLIST is a property list. This is useful to change many extent properties at once. @@ -638,7 +638,7 @@ along with their allowable values. The following convenience functions are provided for accessing particular properties of an extent. - - Function: extent-face extent + - Function: extent-face EXTENT This function returns the `face' property of EXTENT. This might also return a list of face names. Do not modify this list directly! Instead, use `set-extent-face'. @@ -649,7 +649,7 @@ particular properties of an extent. the return value of `extent-face' on the two extents will return the identical list. - - Function: extent-mouse-face extent + - Function: extent-mouse-face EXTENT This function returns the `mouse-face' property of EXTENT. This might also return a list of face names. Do not modify this list directly! Instead, use `set-extent-mouse-face'. @@ -657,26 +657,26 @@ particular properties of an extent. Note that you can use `eq' to compare lists of faces as returned by `extent-mouse-face', just like for `extent-face'. - - Function: extent-priority extent + - Function: extent-priority EXTENT This function returns the `priority' property of EXTENT. - - Function: extent-keymap extent + - Function: extent-keymap EXTENT This function returns the `keymap' property of EXTENT. - - Function: extent-begin-glyph-layout extent + - Function: extent-begin-glyph-layout EXTENT This function returns the `begin-glyph-layout' property of EXTENT, i.e. the layout policy associated with the EXTENT's begin glyph. - - Function: extent-end-glyph-layout extent + - Function: extent-end-glyph-layout EXTENT This function returns the `end-glyph-layout' property of EXTENT, i.e. the layout policy associated with the EXTENT's end glyph. - - Function: extent-begin-glyph extent + - Function: extent-begin-glyph EXTENT This function returns the `begin-glyph' property of EXTENT, i.e. the glyph object displayed at the beginning of EXTENT. If there is none, `nil' is returned. - - Function: extent-end-glyph extent + - Function: extent-end-glyph EXTENT This function returns the `end-glyph' property of EXTENT, i.e. the glyph object displayed at the end of EXTENT. If there is none, `nil' is returned. @@ -684,38 +684,38 @@ particular properties of an extent. The following convenience functions are provided for setting particular properties of an extent. - - Function: set-extent-priority extent pri + - Function: set-extent-priority EXTENT PRI This function sets the `priority' property of EXTENT to PRI. - - Function: set-extent-face extent face + - Function: set-extent-face EXTENT FACE This function sets the `face' property of EXTENT to FACE. - - Function: set-extent-mouse-face extent face + - Function: set-extent-mouse-face EXTENT FACE This function sets the `mouse-face' property of EXTENT to FACE. - - Function: set-extent-keymap extent keymap + - Function: set-extent-keymap EXTENT KEYMAP This function sets the `keymap' property of EXTENT to KEYMAP. KEYMAP must be either a keymap object, or `nil'. - - Function: set-extent-begin-glyph-layout extent layout + - Function: set-extent-begin-glyph-layout EXTENT LAYOUT This function sets the `begin-glyph-layout' property of EXTENT to LAYOUT. - - Function: set-extent-end-glyph-layout extent layout + - Function: set-extent-end-glyph-layout EXTENT LAYOUT This function sets the `end-glyph-layout' property of EXTENT to LAYOUT. - - Function: set-extent-begin-glyph extent begin-glyph &optional layout + - Function: set-extent-begin-glyph EXTENT BEGIN-GLYPH &optional LAYOUT This function sets the `begin-glyph' and `glyph-layout' properties of EXTENT to BEGIN-GLYPH and LAYOUT, respectively. (LAYOUT defaults to `text' if not specified.) - - Function: set-extent-end-glyph extent end-glyph &optional layout + - Function: set-extent-end-glyph EXTENT END-GLYPH &optional LAYOUT This function sets the `end-glyph' and `glyph-layout' properties of EXTENT to END-GLYPH and LAYOUT, respectively. (LAYOUT defaults to `text' if not specified.) - - Function: set-extent-initial-redisplay-function extent function + - Function: set-extent-initial-redisplay-function EXTENT FUNCTION This function sets the `initial-redisplay-function' property of the extent to FUNCTION. @@ -734,21 +734,21 @@ this property is not set, the extent becomes a zero-length extent. (Zero-length extents with the `detachable' property set behave specially. *Note zero-length extents: Extent Endpoints.) - - Function: detach-extent extent + - Function: detach-extent EXTENT This function detaches EXTENT from its buffer or string. If EXTENT has the `duplicable' property, its detachment is tracked by the undo mechanism. *Note Duplicable Extents::. - - Function: extent-detached-p extent + - Function: extent-detached-p EXTENT This function returns `nil' if EXTENT is detached, and `t' otherwise. - - Function: copy-extent extent &optional object + - Function: copy-extent EXTENT &optional OBJECT This function makes a copy of EXTENT. It is initially detached. Optional argument OBJECT defaults to EXTENT's object (normally a buffer or string, but could be `nil'). - - Function: insert-extent extent &optional start end no-hooks object + - Function: insert-extent EXTENT &optional START END NO-HOOKS OBJECT This function inserts EXTENT from START to END in OBJECT (a buffer or string). If EXTENT is detached from a different buffer or string, or in most cases when EXTENT is already attached, the @@ -779,20 +779,20 @@ you cannot create an inheritance loop - this is explicitly disallowed. Parent extents are used to implement the extents over the modeline. - - Function: set-extent-parent extent parent + - Function: set-extent-parent EXTENT PARENT This function sets the parent of EXTENT to PARENT. If PARENT is `nil', the extent is set to have no parent. - - Function: extent-parent extent + - Function: extent-parent EXTENT This function return the parents (if any) of EXTENT, or `nil'. - - Function: extent-children extent + - Function: extent-children EXTENT This function returns a list of the children (if any) of EXTENT. The children of an extent are all those extents whose parent is that extent. This function does not recursively trace children of children. - - Function: extent-descendants extent + - Function: extent-descendants EXTENT This function returns a list of all descendants of EXTENT, including EXTENT. This recursively applies `extent-children' to any children of EXTENT, until no more children can be found. @@ -811,12 +811,12 @@ strings, so that kill, yank, and undo commands will restore or copy it. * When a string is created using `buffer-substring' or `buffer-string', any duplicable extents in the region corresponding to the string will be copied into the string (*note Buffer - Contents::). When the string in inserted into a buffer using + Contents::.). When the string in inserted into a buffer using `insert', `insert-before-markers', `insert-buffer' or `insert-buffer-substring', the extents in the string will be copied - back into the buffer (*note Insertion::). The extents in a string - can, of course, be retrieved explicitly using the standard extent - primitives over the string. + back into the buffer (*note Insertion::.). The extents in a + string can, of course, be retrieved explicitly using the standard + extent primitives over the string. * Similarly, when text is copied or cut into the kill ring, any duplicable extents will be remembered and reinserted later when @@ -874,7 +874,7 @@ highlighted when the mouse passes over it. Highlighting is accomplished by merging the extent's face with the face or faces specified by the `mouse-face' property. The effect is as if a pseudo-extent with the `mouse-face' face were inserted after the extent in the display order -(*note Extent Endpoints::, display order). +(*note Extent Endpoints::., display order). - Variable: mouse-highlight-priority This variable holds the priority to use when merging in the @@ -887,13 +887,13 @@ by merging the extent's face with the face or faces specified by the extent at a time can be highlighted in this fashion, and any other highlighted extent will be de-highlighted. - - Function: highlight-extent extent &optional highlight-p + - Function: highlight-extent EXTENT &optional HIGHLIGHT-P This function highlights (if HIGHLIGHT-P is non-`nil') or de-highlights (if HIGHLIGHT-P is `nil') EXTENT, if EXTENT has the `mouse-face' property. (Nothing happens if EXTENT does not have the `mouse-face' property.) - - Function: force-highlight-extent extent &optional highlight-p + - Function: force-highlight-extent EXTENT &optional HIGHLIGHT-P This function is similar to `highlight-extent' but highlights or de-highlights the extent regardless of whether it has the `mouse-face' property. @@ -931,7 +931,7 @@ and `top-toolbar-height', is actually a specifier object. The specifier object, in turn, is "instanced" in a particular situation to yield the real value of the property in that situation. - - Function: specifierp object + - Function: specifierp OBJECT This function returns non-`nil' if OBJECT is a specifier. * Menu: @@ -941,10 +941,10 @@ yield the real value of the property in that situation. (under user control) in a wide variety of contexts. * Specifiers In-Depth:: Gory details about specifier innards. -* Specifier Instancing:: Instancing means obtaining the ``value'' of +* Specifier Instancing:: Instancing means obtaining the "value" of a specifier in a particular context. * Specifier Types:: Specifiers come in different flavors. -* Adding Specifications:: Specifications control a specifier's ``value'' +* Adding Specifications:: Specifications control a specifier's "value" by giving conditions under which a particular value is valid. * Retrieving Specifications:: Querying a specifier's specifications. @@ -1058,10 +1058,10 @@ instantiable over that device. (A null tag set is perfectly valid.) The valid device types (normally `x', `tty', and `stream') and device classes (normally `color', `grayscale', and `mono') can always be used as tags, and match devices of the associated type or class -(*note Consoles and Devices::). User-defined tags may be defined, with -an optional predicate specified. An application can create its own -tag, use it to mark all its instantiators, and be fairly confident that -it will not interfere with other applications that modify the same +(*note Consoles and Devices::.). User-defined tags may be defined, +with an optional predicate specified. An application can create its +own tag, use it to mark all its instantiators, and be fairly confident +that it will not interfere with other applications that modify the same specifier - Functions that add a specification to a specifier usually only overwrite existing inst-pairs with the same tag set as was given, and a particular tag or tag set can be specified when removing diff --git a/info/lispref.info-34 b/info/lispref.info-34 index e47b116..8353e6b 100644 --- a/info/lispref.info-34 +++ b/info/lispref.info-34 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -195,7 +195,7 @@ fonts, colors, and face-boolean specifiers. *Note Glyphs::, for more information about image specifiers. *Note Toolbar::, for more information on toolbar specifiers. - - Function: specifier-type specifier + - Function: specifier-type SPECIFIER This function returns the type of SPECIFIER. The returned value will be a symbol: one of `integer', `boolean', etc., as listed in the above table. @@ -203,32 +203,32 @@ information on toolbar specifiers. Functions are also provided to query whether an object is a particular kind of specifier: - - Function: boolean-specifier-p object + - Function: boolean-specifier-p OBJECT This function returns non-`nil' if OBJECT is a boolean specifier. - - Function: integer-specifier-p object + - Function: integer-specifier-p OBJECT This function returns non-`nil' if OBJECT is an integer specifier. - - Function: natnum-specifier-p object + - Function: natnum-specifier-p OBJECT This function returns non-`nil' if OBJECT is a natnum specifier. - - Function: generic-specifier-p object + - Function: generic-specifier-p OBJECT This function returns non-`nil' if OBJECT is a generic specifier. - - Function: face-boolean-specifier-p object + - Function: face-boolean-specifier-p OBJECT This function returns non-`nil' if OBJECT is a face-boolean specifier. - - Function: toolbar-specifier-p object + - Function: toolbar-specifier-p OBJECT This function returns non-`nil' if OBJECT is a toolbar specifier. - - Function: font-specifier-p object + - Function: font-specifier-p OBJECT This function returns non-`nil' if OBJECT is a font specifier. - - Function: color-specifier-p object + - Function: color-specifier-p OBJECT This function returns non-`nil' if OBJECT is a color specifier. - - Function: image-specifier-p object + - Function: image-specifier-p OBJECT This function returns non-`nil' if OBJECT is an image specifier.  @@ -237,8 +237,8 @@ File: lispref.info, Node: Adding Specifications, Next: Retrieving Specificatio Adding specifications to a Specifier ==================================== - - Function: add-spec-to-specifier specifier instantiator &optional - locale tag-set how-to-add + - Function: add-spec-to-specifier SPECIFIER INSTANTIATOR &optional + LOCALE TAG-SET HOW-TO-ADD This function adds a specification to SPECIFIER. The specification maps from LOCALE (which should be a window, buffer, frame, device, or the symbol `global', and defaults to `global') @@ -290,8 +290,8 @@ Adding specifications to a Specifier locale type with the function `specifier-spec-list' or `specifier-specs'. - - Function: add-spec-list-to-specifier specifier spec-list &optional - how-to-add + - Function: add-spec-list-to-specifier SPECIFIER SPEC-LIST &optional + HOW-TO-ADD This function adds a "spec-list" (a list of specifications) to SPECIFIER. The format of a spec-list is @@ -304,7 +304,7 @@ Adding specifications to a Specifier * TAG-SET := an unordered list of zero or more TAGS, each of which is a symbol - * TAG := a device class (*note Consoles and Devices::), a + * TAG := a device class (*note Consoles and Devices::.), a device type, or a tag defined with `define-specifier-tag' * INSTANTIATOR := format determined by the type of specifier @@ -321,7 +321,7 @@ Adding specifications to a Specifier In many circumstances, the higher-level function `set-specifier' is more convenient and should be used instead. - - Macro: let-specifier specifier-list &rest body + - Macro: let-specifier SPECIFIER-LIST &rest BODY This special form temporarily adds specifications to specifiers, evaluates forms in BODY and restores the specifiers to their previous states. The specifiers and their temporary @@ -355,7 +355,7 @@ Adding specifications to a Specifier (let-specifier ((modeline-shadow-thickness 0 (selected-window))) (sit-for 1)) - - Function: set-specifier specifier value &optional how-to-add + - Function: set-specifier SPECIFIER VALUE &optional HOW-TO-ADD This function adds some specifications to SPECIFIER. VALUE can be a single instantiator or tagged instantiator (added as a global specification), a list of tagged and/or untagged instantiators @@ -382,8 +382,8 @@ Adding specifications to a Specifier functions always work with fully-qualified spec-lists; thus, there is no ambiguity. - - Function: canonicalize-inst-pair inst-pair specifier-type &optional - noerror + - Function: canonicalize-inst-pair INST-PAIR SPECIFIER-TYPE &optional + NOERROR This function canonicalizes the given INST-PAIR. SPECIFIER-TYPE specifies the type of specifier that this SPEC-LIST @@ -397,8 +397,8 @@ Adding specifications to a Specifier If NOERROR is non-`nil', signal an error if the inst-pair is invalid; otherwise return `t'. - - Function: canonicalize-inst-list inst-list specifier-type &optional - noerror + - Function: canonicalize-inst-list INST-LIST SPECIFIER-TYPE &optional + NOERROR This function canonicalizes the given INST-LIST (a list of inst-pairs). @@ -413,7 +413,7 @@ Adding specifications to a Specifier If NOERROR is non-`nil', signal an error if the inst-list is invalid; otherwise return `t'. - - Function: canonicalize-spec spec specifier-type &optional noerror + - Function: canonicalize-spec SPEC SPECIFIER-TYPE &optional NOERROR This function canonicalizes the given SPEC (a specification). SPECIFIER-TYPE specifies the type of specifier that this SPEC-LIST @@ -427,8 +427,8 @@ Adding specifications to a Specifier If NOERROR is `nil', signal an error if the specification is invalid; otherwise return `t'. - - Function: canonicalize-spec-list spec-list specifier-type &optional - noerror + - Function: canonicalize-spec-list SPEC-LIST SPECIFIER-TYPE &optional + NOERROR This function canonicalizes the given SPEC-LIST (a list of specifications). @@ -455,8 +455,8 @@ File: lispref.info, Node: Retrieving Specifications, Next: Specifier Tag Funct Retrieving the Specifications from a Specifier ============================================== - - Function: specifier-spec-list specifier &optional locale tag-set - exact-p + - Function: specifier-spec-list SPECIFIER &optional LOCALE TAG-SET + EXACT-P This function returns the spec-list of specifications for SPECIFIER in LOCALE. @@ -482,7 +482,7 @@ Retrieving the Specifications from a Specifier is non-`nil', however, TAG-SET must be equal to an instantiator's tag set for the instantiator to be returned. - - Function: specifier-specs specifier &optional locale tag-set exact-p + - Function: specifier-specs SPECIFIER &optional LOCALE TAG-SET EXACT-P This function returns the specification(s) for SPECIFIER in LOCALE. If LOCALE is a single locale or is a list of one element @@ -507,7 +507,7 @@ Retrieving the Specifications from a Specifier from there being no instantiators at all. - - Function: specifier-fallback specifier + - Function: specifier-fallback SPECIFIER This function returns the fallback value for SPECIFIER. Fallback values are provided by the C code for certain built-in specifiers to make sure that instancing won't fail even if all specs are @@ -556,25 +556,25 @@ all tags in the tag set attached to that instantiator. Most of the time, a tag set is not specified, and the instantiator gets a null tag set, which matches all devices. - - Function: valid-specifier-tag-p tag + - Function: valid-specifier-tag-p TAG This function returns non-`nil' if TAG is a valid specifier tag. - - Function: valid-specifier-tag-set-p tag-set + - Function: valid-specifier-tag-set-p TAG-SET This function returns non-`nil' if TAG-SET is a valid specifier tag set. - - Function: canonicalize-tag-set tag-set + - Function: canonicalize-tag-set TAG-SET This function canonicalizes the given tag set. Two canonicalized tag sets can be compared with `equal' to see if they represent the same tag set. (Specifically, canonicalizing involves sorting by symbol name and removing duplicates.) - - Function: device-matches-specifier-tag-set-p device tag-set + - Function: device-matches-specifier-tag-set-p DEVICE TAG-SET This function returns non-`nil' if DEVICE matches specifier tag set TAG-SET. This means that DEVICE matches each tag in the tag set. - - Function: define-specifier-tag tag &optional predicate + - Function: define-specifier-tag TAG &optional PREDICATE This function defines a new specifier tag. If PREDICATE is specified, it should be a function of one argument (a device) that specifies whether the tag matches that particular device. If @@ -584,7 +584,7 @@ gets a null tag set, which matches all devices. you cannot redefine the built-in specifier tags (the device types and classes) or the symbols `nil', `t', `all', or `global'. - - Function: device-matching-specifier-tag-list &optional device + - Function: device-matching-specifier-tag-list &optional DEVICE This function returns a list of all specifier tags matching DEVICE. DEVICE defaults to the selected device if omitted. @@ -593,7 +593,7 @@ gets a null tag set, which matches all devices. tags. This includes the built-in ones (the device types and classes). - - Function: specifier-tag-predicate tag + - Function: specifier-tag-predicate TAG This function returns the predicate for the given specifier tag.  @@ -602,8 +602,8 @@ File: lispref.info, Node: Specifier Instancing Functions, Next: Specifier Exam Functions for Instancing a Specifier ==================================== - - Function: specifier-instance specifier &optional domain default - no-fallback + - Function: specifier-instance SPECIFIER &optional DOMAIN DEFAULT + NO-FALLBACK This function instantiates SPECIFIER (return its value) in DOMAIN. If no instance can be generated for this domain, return DEFAULT. @@ -655,8 +655,8 @@ Functions for Instancing a Specifier function), the returned value will be a font-instance object. For images, the returned value will be a string, pixmap, or subwindow. - - Function: specifier-instance-from-inst-list specifier domain - inst-list &optional default + - Function: specifier-instance-from-inst-list SPECIFIER DOMAIN + INST-LIST &optional DEFAULT This function attempts to convert a particular inst-list into an instance. This attempts to instantiate INST-LIST in the given DOMAIN, as if INST-LIST existed in a specification in SPECIFIER. @@ -738,7 +738,7 @@ File: lispref.info, Node: Creating Specifiers, Next: Specifier Validation Func Creating New Specifier Objects ============================== - - Function: make-specifier type + - Function: make-specifier TYPE This function creates a new specifier. A specifier is an object that can be used to keep track of a @@ -763,8 +763,8 @@ Creating New Specifier Objects `font-specifier-p', `image-specifier-p', `face-boolean-specifier-p', and `toolbar-specifier-p'. - - Function: make-specifier-and-init type spec-list &optional - dont-canonicalize + - Function: make-specifier-and-init TYPE SPEC-LIST &optional + DONT-CANONICALIZE This function creates and initialize a new specifier. This is a front-end onto `make-specifier' that allows you to create @@ -783,53 +783,53 @@ File: lispref.info, Node: Specifier Validation Functions, Next: Other Specific Functions for Checking the Validity of Specifier Components =========================================================== - - Function: valid-specifier-domain-p domain + - Function: valid-specifier-domain-p DOMAIN This function returns non-`nil' if DOMAIN is a valid specifier domain. A domain is used to instance a specifier (i.e. determine the specifier's value in that domain). Valid domains are a window, frame, or device. (`nil' is not valid.) - - Function: valid-specifier-locale-p locale + - Function: valid-specifier-locale-p LOCALE This function returns non-`nil' if LOCALE is a valid specifier locale. Valid locales are a device, a frame, a window, a buffer, and `global'. (`nil' is not valid.) - - Function: valid-specifier-locale-type-p locale-type + - Function: valid-specifier-locale-type-p LOCALE-TYPE Given a specifier LOCALE-TYPE, this function returns non-nil if it is valid. Valid locale types are the symbols `global', `device', `frame', `window', and `buffer'. (Note, however, that in functions that accept either a locale or a locale type, `global' is considered an individual locale.) - - Function: valid-specifier-type-p specifier-type + - Function: valid-specifier-type-p SPECIFIER-TYPE Given a SPECIFIER-TYPE, this function returns non-`nil' if it is valid. Valid types are `generic', `integer', `boolean', `color', `font', `image', `face-boolean', and `toolbar'. - - Function: valid-specifier-tag-p tag + - Function: valid-specifier-tag-p TAG This function returns non-`nil' if TAG is a valid specifier tag. - - Function: valid-instantiator-p instantiator specifier-type + - Function: valid-instantiator-p INSTANTIATOR SPECIFIER-TYPE This function returns non-`nil' if INSTANTIATOR is valid for SPECIFIER-TYPE. - - Function: valid-inst-list-p inst-list type + - Function: valid-inst-list-p INST-LIST TYPE This function returns non-`nil' if INST-LIST is valid for specifier type TYPE. - - Function: valid-spec-list-p spec-list type + - Function: valid-spec-list-p SPEC-LIST TYPE This function returns non-`nil' if SPEC-LIST is valid for specifier type TYPE. - - Function: check-valid-instantiator instantiator specifier-type + - Function: check-valid-instantiator INSTANTIATOR SPECIFIER-TYPE This function signals an error if INSTANTIATOR is invalid for SPECIFIER-TYPE. - - Function: check-valid-inst-list inst-list type + - Function: check-valid-inst-list INST-LIST TYPE This function signals an error if INST-LIST is invalid for specifier type TYPE. - - Function: check-valid-spec-list spec-list type + - Function: check-valid-spec-list SPEC-LIST TYPE This function signals an error if SPEC-LIST is invalid for specifier type TYPE. @@ -839,8 +839,8 @@ File: lispref.info, Node: Other Specification Functions, Prev: Specifier Valid Other Functions for Working with Specifications in a Specifier ============================================================== - - Function: copy-specifier specifier &optional dest locale tag-set - exact-p how-to-add + - Function: copy-specifier SPECIFIER &optional DEST LOCALE TAG-SET + EXACT-P HOW-TO-ADD This function copies SPECIFIER to DEST, or creates a new one if DEST is `nil'. @@ -869,7 +869,7 @@ Other Functions for Working with Specifications in a Specifier types are copied will first be completely erased in DEST. Otherwise, it is the same as in `add-spec-to-specifier'. - - Function: remove-specifier specifier &optional locale tag-set exact-p + - Function: remove-specifier SPECIFIER &optional LOCALE TAG-SET EXACT-P This function removes specification(s) for SPECIFIER. If LOCALE is a particular locale (a buffer, window, frame, device, @@ -894,7 +894,7 @@ Other Functions for Working with Specifications in a Specifier is non-`nil', however, TAG-SET must be equal to an instantiator's tag set for the instantiator to be removed. - - Function: map-specifier specifier func &optional locale maparg + - Function: map-specifier SPECIFIER FUNC &optional LOCALE MAPARG This function applies FUNC to the specification(s) for LOCALE in SPECIFIER. @@ -909,7 +909,7 @@ Other Functions for Working with Specifications in a Specifier will stop and the returned value becomes the value returned from `map-specifier'. Otherwise, `map-specifier' returns `nil'. - - Function: specifier-locale-type-from-locale locale + - Function: specifier-locale-type-from-locale LOCALE Given a specifier LOCALE, this function returns its type.  @@ -945,11 +945,11 @@ for more information. The face named `default' is used for ordinary text. The face named `modeline' is used for displaying the modeline. The face named -`highlight' is used for highlighted extents (*note Extents::). The +`highlight' is used for highlighted extents (*note Extents::.). The faces named `left-margin' and `right-margin' are used for the left and -right margin areas, respectively (*note Annotations::). The face named -`zmacs-region' is used for the highlighted region between point and -mark. +right margin areas, respectively (*note Annotations::.). The face +named `zmacs-region' is used for the highlighted region between point +and mark. * Menu: @@ -1019,7 +1019,7 @@ the corresponding property of the `default' face. Here are the basic primitives for working with faces. - - Function: make-face name &optional doc-string temporary + - Function: make-face NAME &optional DOC-STRING TEMPORARY This function defines and returns a new face named NAME, initially with all properties unspecified. It does nothing if there is already a face named NAME. Optional argument DOC-STRING specifies @@ -1029,20 +1029,20 @@ the corresponding property of the `default' face. or Lisp code (otherwise, the face will continue to exist indefinitely even if it is not used). - - Function: face-list &optional temporary + - Function: face-list &optional TEMPORARY This function returns a list of the names of all defined faces. If TEMPORARY is `nil', only the permanent faces are included. If it is `t', only the temporary faces are included. If it is any other non-`nil' value both permanent and temporary are included. - - Function: facep object + - Function: facep OBJECT This function returns whether the given object is a face. - - Function: copy-face old-face new-name &optional locale how-to-add + - Function: copy-face OLD-FACE NEW-NAME &optional LOCALE HOW-TO-ADD This function defines a new face named NEW-NAME which is a copy of the existing face named OLD-FACE. If there is already a face named NEW-NAME, then it alters the face to have the same properties as OLD-FACE. LOCALE and HOW-TO-ADD let you copy just parts of the old face rather than the whole face, and are as in - `copy-specifier' (*note Specifiers::). + `copy-specifier' (*note Specifiers::.). diff --git a/info/lispref.info-35 b/info/lispref.info-35 index 6c3b144..3ef0f49 100644 --- a/info/lispref.info-35 +++ b/info/lispref.info-35 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -100,8 +100,8 @@ the following functions. specifier, unlike all the other built-in properties, and cannot contain locale-specific values. - - Function: set-face-property face property value &optional locale tag - how-to-add + - Function: set-face-property FACE PROPERTY VALUE &optional LOCALE TAG + HOW-TO-ADD This function changes a property of a FACE. For built-in properties, the actual value of the property is a @@ -159,7 +159,7 @@ the following functions. If the value of the property is not a specifier, it will automatically be converted into a `generic' specifier. - - Function: face-property face property &optional locale + - Function: face-property FACE PROPERTY &optional LOCALE This function returns FACE's value of the given PROPERTY. If LOCALE is omitted, the FACE's actual value for PROPERTY will be @@ -204,8 +204,8 @@ the following functions. `face-property-instance' actually does all this, and is used to determine how to display the face. - - Function: face-property-instance face property &optional domain - default no-fallback + - Function: face-property-instance FACE PROPERTY &optional DOMAIN + DEFAULT NO-FALLBACK This function returns the instance of FACE's PROPERTY in the specified DOMAIN. @@ -254,69 +254,69 @@ File: lispref.info, Node: Face Convenience Functions, Next: Other Face Display Face Convenience Functions -------------------------- - - Function: set-face-foreground face color &optional locale tag - how-to-add - - Function: set-face-background face color &optional locale tag - how-to-add + - Function: set-face-foreground FACE COLOR &optional LOCALE TAG + HOW-TO-ADD + - Function: set-face-background FACE COLOR &optional LOCALE TAG + HOW-TO-ADD These functions set the foreground (respectively, background) color of face FACE to COLOR. The argument COLOR should be a string (the name of a color) or a color object as returned by - `make-color' (*note Colors::). + `make-color' (*note Colors::.). - - Function: set-face-background-pixmap face pixmap &optional locale - tag how-to-add + - Function: set-face-background-pixmap FACE PIXMAP &optional LOCALE + TAG HOW-TO-ADD This function sets the background pixmap of face FACE to PIXMAP. The argument PIXMAP should be a string (the name of a bitmap or pixmap file; the directories listed in the variable `x-bitmap-file-path' will be searched) or a glyph object as - returned by `make-glyph' (*note Glyphs::). The argument may also + returned by `make-glyph' (*note Glyphs::.). The argument may also be a list of the form `(WIDTH HEIGHT DATA)' where WIDTH and HEIGHT are the size in pixels, and DATA is a string, containing the raw bits of the bitmap. - - Function: set-face-font face font &optional locale tag how-to-add + - Function: set-face-font FACE FONT &optional LOCALE TAG HOW-TO-ADD This function sets the font of face FACE. The argument FONT should be a string or a font object as returned by `make-font' - (*note Fonts::). + (*note Fonts::.). - - Function: set-face-underline-p face underline-p &optional locale tag - how-to-add + - Function: set-face-underline-p FACE UNDERLINE-P &optional LOCALE TAG + HOW-TO-ADD This function sets the underline property of face FACE. - - Function: face-foreground face &optional locale - - Function: face-background face &optional locale + - Function: face-foreground FACE &optional LOCALE + - Function: face-background FACE &optional LOCALE These functions return the foreground (respectively, background) color specifier of face FACE. *Note Colors::. - - Function: face-background-pixmap face &optional locale + - Function: face-background-pixmap FACE &optional LOCALE This function return the background-pixmap glyph object of face FACE. - - Function: face-font face &optional locale + - Function: face-font FACE &optional LOCALE This function returns the font specifier of face FACE. (Note: This is not the same as the function `face-font' in FSF Emacs.) *Note Fonts::. - - Function: face-font-name face &optional domain + - Function: face-font-name FACE &optional DOMAIN This function returns the name of the font of face FACE, or `nil' if it is unspecified. This is basically equivalent to `(font-name (face-font FACE) DOMAIN)' except that it does not cause an error if FACE's font is `nil'. (This function is named `face-font' in FSF Emacs.) - - Function: face-underline-p face &optional locale + - Function: face-underline-p FACE &optional LOCALE This function returns the underline property of face FACE. - - Function: face-foreground-instance face &optional domain - - Function: face-background-instance face &optional domain + - Function: face-foreground-instance FACE &optional DOMAIN + - Function: face-background-instance FACE &optional DOMAIN These functions return the foreground (respectively, background) color specifier of face FACE. *Note Colors::. - - Function: face-background-pixmap-instance face &optional domain + - Function: face-background-pixmap-instance FACE &optional DOMAIN This function return the background-pixmap glyph object of face FACE. - - Function: face-font-instance face &optional domain + - Function: face-font-instance FACE &optional DOMAIN This function returns the font specifier of face FACE. *Note Fonts::. @@ -326,17 +326,17 @@ File: lispref.info, Node: Other Face Display Functions, Prev: Face Convenience Other Face Display Functions ---------------------------- - - Function: invert-face face &optional locale + - Function: invert-face FACE &optional LOCALE Swap the foreground and background colors of face FACE. If the face doesn't specify both foreground and background, then its foreground and background are set to the default background and foreground. - - Function: face-equal face1 face2 &optional domain + - Function: face-equal FACE1 FACE2 &optional DOMAIN This returns `t' if the faces FACE1 and FACE2 will display in the same way. DOMAIN is as in `face-property-instance'. - - Function: face-differs-from-default-p face &optional domain + - Function: face-differs-from-default-p FACE &optional DOMAIN This returns `t' if the face FACE displays differently from the default face. DOMAIN is as in `face-property-instance'. @@ -366,7 +366,7 @@ File: lispref.info, Node: Font Specifiers, Next: Font Instances, Up: Fonts Font Specifiers --------------- - - Function: font-specifier-p object + - Function: font-specifier-p OBJECT This predicate returns `t' if OBJECT is a font specifier, and `nil' otherwise. @@ -376,11 +376,11 @@ File: lispref.info, Node: Font Instances, Next: Font Instance Names, Prev: Fo Font Instances -------------- - - Function: font-instance-p object + - Function: font-instance-p OBJECT This predicate returns `t' if OBJECT is a font instance, and `nil' otherwise. - - Function: make-font-instance name &optional device noerror + - Function: make-font-instance NAME &optional DEVICE NOERROR This function creates a new font-instance object of the specified name. DEVICE specifies the device this object applies to and defaults to the selected device. An error is signalled if the @@ -399,15 +399,15 @@ File: lispref.info, Node: Font Instance Names, Next: Font Instance Size, Prev Font Instance Names ------------------- - - Function: list-fonts pattern &optional device + - Function: list-fonts PATTERN &optional DEVICE This function returns a list of font names matching the given pattern. DEVICE specifies which device to search for names, and defaults to the currently selected device. - - Function: font-instance-name font-instance + - Function: font-instance-name FONT-INSTANCE This function returns the name used to allocate FONT-INSTANCE. - - Function: font-instance-truename font-instance + - Function: font-instance-truename FONT-INSTANCE This function returns the canonical name of the given font instance. Font names are patterns which may match any number of fonts, of which the first found is used. This returns an @@ -420,21 +420,21 @@ File: lispref.info, Node: Font Instance Size, Next: Font Instance Characterist Font Instance Size ------------------ - - Function: x-font-size font + - Function: x-font-size FONT This function returns the nominal size of the given font. This is done by parsing its name, so it's likely to lose. X fonts can be specified (by the user) in either pixels or 10ths of points, and this returns the first one it finds, so you have to decide which units the returned value is measured in yourself ... - - Function: x-find-larger-font font &optional device + - Function: x-find-larger-font FONT &optional DEVICE This function loads a new, slightly larger version of the given font (or font name). Returns the font if it succeeds, `nil' otherwise. If scalable fonts are available, this returns a font which is 1 point larger. Otherwise, it returns the next larger version of this font that is defined. - - Function: x-find-smaller-font font &optional device + - Function: x-find-smaller-font FONT &optional DEVICE This function loads a new, slightly smaller version of the given font (or font name). Returns the font if it succeeds, `nil' otherwise. If scalable fonts are available, this returns a font @@ -447,27 +447,27 @@ File: lispref.info, Node: Font Instance Characteristics, Next: Font Convenienc Font Instance Characteristics ----------------------------- - - Function: font-instance-properties font + - Function: font-instance-properties FONT This function returns the properties (an alist or `nil') of FONT-INSTANCE. - - Function: x-make-font-bold font &optional device + - Function: x-make-font-bold FONT &optional DEVICE Given an X font specification, this attempts to make a "bold" font. If it fails, it returns `nil'. - - Function: x-make-font-unbold font &optional device + - Function: x-make-font-unbold FONT &optional DEVICE Given an X font specification, this attempts to make a non-bold font. If it fails, it returns `nil'. - - Function: x-make-font-italic font &optional device + - Function: x-make-font-italic FONT &optional DEVICE Given an X font specification, this attempts to make an "italic" font. If it fails, it returns `nil'. - - Function: x-make-font-unitalic font &optional device + - Function: x-make-font-unitalic FONT &optional DEVICE Given an X font specification, this attempts to make a non-italic font. If it fails, it returns `nil'. - - Function: x-make-font-bold-italic font &optional device + - Function: x-make-font-bold-italic FONT &optional DEVICE Given an X font specification, this attempts to make a "bold-italic" font. If it fails, it returns `nil'. @@ -477,21 +477,21 @@ File: lispref.info, Node: Font Convenience Functions, Prev: Font Instance Char Font Convenience Functions -------------------------- - - Function: font-name font &optional domain + - Function: font-name FONT &optional DOMAIN This function returns the name of the FONT in the specified DOMAIN, if any. FONT should be a font specifier object and DOMAIN is normally a window and defaults to the selected window if omitted. This is equivalent to using `specifier-instance' and applying `font-instance-name' to the result. - - Function: font-truename font &optional domain + - Function: font-truename FONT &optional DOMAIN This function returns the truename of the FONT in the specified DOMAIN, if any. FONT should be a font specifier object and DOMAIN is normally a window and defaults to the selected window if omitted. This is equivalent to using `specifier-instance' and applying `font-instance-truename' to the result. - - Function: font-properties font &optional domain + - Function: font-properties FONT &optional DOMAIN This function returns the properties of the FONT in the specified DOMAIN, if any. FONT should be a font specifier object and DOMAIN is normally a window and defaults to the selected window if @@ -519,7 +519,7 @@ File: lispref.info, Node: Color Specifiers, Next: Color Instances, Up: Colors Color Specifiers ---------------- - - Function: color-specifier-p object + - Function: color-specifier-p OBJECT This function returns non-`nil' if OBJECT is a color specifier.  @@ -539,7 +539,7 @@ specifier is instanced in a particular domain. Functions such as color of the `default' face is displayed in the next window after the selected one. - - Function: color-instance-p object + - Function: color-instance-p OBJECT This function returns non-`nil' if OBJECT is a color-instance.  @@ -548,10 +548,10 @@ File: lispref.info, Node: Color Instance Properties, Next: Color Convenience F Color Instance Properties ------------------------- - - Function: color-instance-name color-instance + - Function: color-instance-name COLOR-INSTANCE This function returns the name used to allocate COLOR-INSTANCE. - - Function: color-instance-rgb-components color-instance + - Function: color-instance-rgb-components COLOR-INSTANCE This function returns a three element list containing the red, green, and blue color components of COLOR-INSTANCE. @@ -565,14 +565,14 @@ File: lispref.info, Node: Color Convenience Functions, Prev: Color Instance Pr Color Convenience Functions --------------------------- - - Function: color-name color &optional domain + - Function: color-name COLOR &optional DOMAIN This function returns the name of the COLOR in the specified DOMAIN, if any. COLOR should be a color specifier object and DOMAIN is normally a window and defaults to the selected window if omitted. This is equivalent to using `specifier-instance' and applying `color-instance-name' to the result. - - Function: color-rgb-components color &optional domain + - Function: color-rgb-components COLOR &optional DOMAIN This function returns the RGB components of the COLOR in the specified DOMAIN, if any. COLOR should be a color specifier object and DOMAIN is normally a window and defaults to the @@ -606,7 +606,7 @@ glyph object is made because the glyph includes other properties than just the actual image: e.g. the face it is displayed in (for text images), the alignment of the image (when it is in a buffer), etc. - - Function: glyphp object + - Function: glyphp OBJECT This function returns `t' if OBJECT is a glyph. * Menu: @@ -640,7 +640,7 @@ File: lispref.info, Node: Creating Glyphs, Next: Glyph Properties, Up: Glyph Creating Glyphs --------------- - - Function: make-glyph &optional spec-list type + - Function: make-glyph &optional SPEC-LIST TYPE This function creates a new glyph object of type TYPE. SPEC-LIST is used to initialize the glyph's image. It is @@ -660,14 +660,14 @@ Creating Glyphs for the mouse-pointer), or `icon' (used for a frame's icon), and defaults to `buffer'. *Note Glyph Types::. - - Function: make-glyph-internal &optional type + - Function: make-glyph-internal &optional TYPE This function creates a new, uninitialized glyph of type TYPE. - - Function: make-pointer-glyph &optional spec-list + - Function: make-pointer-glyph &optional SPEC-LIST This function is equivalent to calling `make-glyph' with a TYPE of `pointer'. - - Function: make-icon-glyph &optional spec-list + - Function: make-icon-glyph &optional SPEC-LIST This function is equivalent to calling `make-glyph' with a TYPE of `icon'. @@ -693,10 +693,10 @@ predefined meanings: Only for glyphs displayed inside of a buffer. `face' - Face of this glyph (_not_ a specifier). + Face of this glyph (*not* a specifier). - - Function: set-glyph-property glyph property value &optional locale - tag-set how-to-add + - Function: set-glyph-property GLYPH PROPERTY VALUE &optional LOCALE + TAG-SET HOW-TO-ADD This function changes a property of a GLYPH. For built-in properties, the actual value of the property is a @@ -754,7 +754,7 @@ predefined meanings: If the value of the property is not a specifier, it will automatically be converted into a `generic' specifier. - - Function: glyph-property glyph property &optional locale + - Function: glyph-property GLYPH PROPERTY &optional LOCALE This function returns GLYPH's value of the given PROPERTY. If LOCALE is omitted, the GLYPH's actual value for PROPERTY will @@ -799,8 +799,8 @@ predefined meanings: `glyph-property-instance' actually does all this, and is used to determine how to display the glyph. - - Function: glyph-property-instance glyph property &optional domain - default no-fallback + - Function: glyph-property-instance GLYPH PROPERTY &optional DOMAIN + DEFAULT NO-FALLBACK This function returns the instance of GLYPH's PROPERTY in the specified DOMAIN. @@ -842,8 +842,8 @@ predefined meanings: Optional arguments DEFAULT and NO-FALLBACK are the same as in `specifier-instance'. *Note Specifiers::. - - Function: remove-glyph-property glyph property &optional locale - tag-set exact-p + - Function: remove-glyph-property GLYPH PROPERTY &optional LOCALE + TAG-SET EXACT-P This function removes a property from a glyph. For built-in properties, this is analogous to `remove-specifier'. *Note remove-specifier-p: Specifiers, for the meaning of the LOCALE, @@ -867,19 +867,19 @@ height, use `glyph-contrib-p-instance', not `glyph-contrib-p'. (The latter will return a boolean specifier or a list of specifications, and you probably aren't concerned with these.) - - Function: glyph-image glyph &optional locale + - Function: glyph-image GLYPH &optional LOCALE This function is equivalent to calling `glyph-property' with a property of `image'. The return value will be an image specifier if LOCALE is `nil' or omitted; otherwise, it will be a specification or list of specifications. - - Function: set-glyph-image glyph spec &optional locale tag-set - how-to-add + - Function: set-glyph-image GLYPH SPEC &optional LOCALE TAG-SET + HOW-TO-ADD This function is equivalent to calling `set-glyph-property' with a property of `image'. - - Function: glyph-image-instance glyph &optional domain default - no-fallback + - Function: glyph-image-instance GLYPH &optional DOMAIN DEFAULT + NO-FALLBACK This function returns the instance of GLYPH's image in the given DOMAIN, and is equivalent to calling `glyph-property-instance' with a property of `image'. The return value will be an image @@ -889,38 +889,38 @@ you probably aren't concerned with these.) window), and an instance object describing how the image appears in that particular window and buffer will be returned. - - Function: glyph-contrib-p glyph &optional locale + - Function: glyph-contrib-p GLYPH &optional LOCALE This function is equivalent to calling `glyph-property' with a property of `contrib-p'. The return value will be a boolean specifier if LOCALE is `nil' or omitted; otherwise, it will be a specification or list of specifications. - - Function: set-glyph-contrib-p glyph spec &optional locale tag-set - how-to-add + - Function: set-glyph-contrib-p GLYPH SPEC &optional LOCALE TAG-SET + HOW-TO-ADD This function is equivalent to calling `set-glyph-property' with a property of `contrib-p'. - - Function: glyph-contrib-p-instance glyph &optional domain default - no-fallback + - Function: glyph-contrib-p-instance GLYPH &optional DOMAIN DEFAULT + NO-FALLBACK This function returns whether the glyph contributes to its line height in the given DOMAIN, and is equivalent to calling `glyph-property-instance' with a property of `contrib-p'. The return value will be either `nil' or `t'. (Normally DOMAIN will be a window or `nil', meaning the selected window.) - - Function: glyph-baseline glyph &optional locale + - Function: glyph-baseline GLYPH &optional LOCALE This function is equivalent to calling `glyph-property' with a property of `baseline'. The return value will be a specifier if LOCALE is `nil' or omitted; otherwise, it will be a specification or list of specifications. - - Function: set-glyph-baseline glyph spec &optional locale tag-set - how-to-add + - Function: set-glyph-baseline GLYPH SPEC &optional LOCALE TAG-SET + HOW-TO-ADD This function is equivalent to calling `set-glyph-property' with a property of `baseline'. - - Function: glyph-baseline-instance glyph &optional domain default - no-fallback + - Function: glyph-baseline-instance GLYPH &optional DOMAIN DEFAULT + NO-FALLBACK This function returns the instance of GLYPH's baseline value in the given DOMAIN, and is equivalent to calling `glyph-property-instance' with a property of `baseline'. The @@ -930,11 +930,11 @@ you probably aren't concerned with these.) window), and an instance object describing the baseline value appears in that particular window and buffer will be returned. - - Function: glyph-face glyph + - Function: glyph-face GLYPH This function returns the face of GLYPH. (Remember, this is not a specifier, but a simple property.) - - Function: set-glyph-face glyph face + - Function: set-glyph-face GLYPH FACE This function changes the face of GLYPH to FACE.  @@ -943,22 +943,22 @@ File: lispref.info, Node: Glyph Dimensions, Prev: Glyph Convenience Functions, Glyph Dimensions ---------------- - - Function: glyph-width glyph &optional window + - Function: glyph-width GLYPH &optional WINDOW This function returns the width of GLYPH on WINDOW. This may not be exact as it does not take into account all of the context that redisplay will. - - Function: glyph-ascent glyph &optional window + - Function: glyph-ascent GLYPH &optional WINDOW This function returns the ascent value of GLYPH on WINDOW. This may not be exact as it does not take into account all of the context that redisplay will. - - Function: glyph-descent glyph &optional window + - Function: glyph-descent GLYPH &optional WINDOW This function returns the descent value of GLYPH on WINDOW. This may not be exact as it does not take into account all of the context that redisplay will. - - Function: glyph-height glyph &optional window + - Function: glyph-height GLYPH &optional WINDOW This function returns the height of GLYPH on WINDOW. (This is equivalent to the sum of the ascent and descent values.) This may not be exact as it does not take into account all of the context diff --git a/info/lispref.info-36 b/info/lispref.info-36 index ff77d12..3306150 100644 --- a/info/lispref.info-36 +++ b/info/lispref.info-36 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -56,22 +56,22 @@ Image Specifiers ---------------- An image specifier is used to describe the actual image of a glyph. -It works like other specifiers (*note Specifiers::), in that it contains -a number of specifications describing how the image should appear in a -variety of circumstances. These specifications are called "image -instantiators". When XEmacs wants to display the image, it instantiates -the image into an "image instance". Image instances are their own -primitive object type (similar to font instances and color instances), -describing how the image appears in a particular domain. (On the other -hand, image instantiators, which are just descriptions of how the image -should appear, are represented using strings or vectors.) - - - Function: image-specifier-p object +It works like other specifiers (*note Specifiers::.), in that it +contains a number of specifications describing how the image should +appear in a variety of circumstances. These specifications are called +"image instantiators". When XEmacs wants to display the image, it +instantiates the image into an "image instance". Image instances are +their own primitive object type (similar to font instances and color +instances), describing how the image appears in a particular domain. +(On the other hand, image instantiators, which are just descriptions of +how the image should appear, are represented using strings or vectors.) + + - Function: image-specifier-p OBJECT This function returns non-`nil' if OBJECT is an image specifier. Usually, an image specifier results from calling `glyph-image' on a glyph. - - Function: make-image-specifier spec-list + - Function: make-image-specifier SPEC-LIST This function creates a new image specifier object and initializes it according to SPEC-LIST. It is unlikely that you will ever want to do this, but this function is provided for completeness and for @@ -262,7 +262,7 @@ implies that the file must exist when the instantiator is added to the image, but does not need to exist at any other time (e.g. it may safely be a temporary file). - - Function: valid-image-instantiator-format-p format + - Function: valid-image-instantiator-format-p FORMAT This function returns non-`nil' if FORMAT is a valid image instantiator format. Note that the return value for many formats listed above depends on whether XEmacs was compiled with support @@ -277,7 +277,7 @@ be a temporary file). `(COLOR-NAME FORM-TO-EVALUATE)'. The COLOR-NAME should be a string, which is the name of the color to define; the FORM-TO-EVALUATE should evaluate to a color specifier object, or a - string to be passed to `make-color-instance' (*note Colors::). If + string to be passed to `make-color-instance' (*note Colors::.). If a loaded XPM file references a symbolic color called COLOR-NAME, it will display as the computed color instead. @@ -298,7 +298,7 @@ File: lispref.info, Node: Image Instantiator Conversion, Next: Image Instances Image Instantiator Conversion ----------------------------- - - Function: set-console-type-image-conversion-list console-type list + - Function: set-console-type-image-conversion-list CONSOLE-TYPE LIST This function sets the image-conversion-list for consoles of the given CONSOLE-TYPE. The image-conversion-list specifies how image instantiators that are strings should be interpreted. Each @@ -315,7 +315,7 @@ Image Instantiator Conversion affects newly-added instantiators. Existing instantiators in glyphs and image specifiers will not be affected. - - Function: console-type-image-conversion-list console-type + - Function: console-type-image-conversion-list CONSOLE-TYPE This function returns the image-conversion-list for consoles of the given CONSOLE-TYPE. @@ -333,7 +333,7 @@ instances; use a glyph instead. However, it may occasionally be useful to explicitly create image instances, if you want more control over the instantiation process. - - Function: image-instance-p object + - Function: image-instance-p OBJECT This function returns non-`nil' if OBJECT is an image instance. * Menu: @@ -381,39 +381,39 @@ string, a mono pixmap, a color pixmap, etc. another program to be responsible for drawing into the window. Not currently implemented. - - Function: valid-image-instance-type-p type + - Function: valid-image-instance-type-p TYPE This function returns non-`nil' if TYPE is a valid image instance type. - Function: image-instance-type-list This function returns a list of the valid image instance types. - - Function: image-instance-type image-instance + - Function: image-instance-type IMAGE-INSTANCE This function returns the type of the given image instance. The return value will be one of `nothing', `text', `mono-pixmap', `color-pixmap', `pointer', or `subwindow'. - - Function: text-image-instance-p object + - Function: text-image-instance-p OBJECT This function returns non-`nil' if OBJECT is an image instance of type `text'. - - Function: mono-pixmap-image-instance-p object + - Function: mono-pixmap-image-instance-p OBJECT This function returns non-`nil' if OBJECT is an image instance of type `mono-pixmap'. - - Function: color-pixmap-image-instance-p object + - Function: color-pixmap-image-instance-p OBJECT This function returns non-`nil' if OBJECT is an image instance of type `color-pixmap'. - - Function: pointer-image-instance-p object + - Function: pointer-image-instance-p OBJECT This function returns non-`nil' if OBJECT is an image instance of type `pointer'. - - Function: subwindow-image-instance-p object + - Function: subwindow-image-instance-p OBJECT This function returns non-`nil' if OBJECT is an image instance of type `subwindow'. - - Function: nothing-image-instance-p object + - Function: nothing-image-instance-p OBJECT This function returns non-`nil' if OBJECT is an image instance of type `nothing'. @@ -423,12 +423,12 @@ File: lispref.info, Node: Image Instance Functions, Prev: Image Instance Types Image Instance Functions ........................ - - Function: make-image-instance data &optional device dest-types - no-error + - Function: make-image-instance DATA &optional DEVICE DEST-TYPES + NO-ERROR This function creates a new image-instance object. DATA is an image instantiator, which describes the image (*note - Image Specifiers::). + Image Specifiers::.). DEST-TYPES should be a list of allowed image instance types that can be generated. The DEST-TYPES list is unordered. If multiple @@ -454,8 +454,8 @@ Image Instance Functions generated and this function returns NIL. If anything else, a warning message is generated and this function returns NIL. - - Function: colorize-image-instance image-instance foreground - background + - Function: colorize-image-instance IMAGE-INSTANCE FOREGROUND + BACKGROUND This function makes the image instance be displayed in the given colors. Image instances come in two varieties: bitmaps, which are 1 bit deep which are rendered in the prevailing foreground and @@ -465,32 +465,32 @@ Image Instance Functions instance was a pixmap already, nothing is done (and `nil' is returned). Otherwise `t' is returned. - - Function: image-instance-name image-instance + - Function: image-instance-name IMAGE-INSTANCE This function returns the name of the given image instance. - - Function: image-instance-string image-instance + - Function: image-instance-string IMAGE-INSTANCE This function returns the string of the given image instance. This will only be non-`nil' for text image instances. - - Function: image-instance-file-name image-instance + - Function: image-instance-file-name IMAGE-INSTANCE This function returns the file name from which IMAGE-INSTANCE was read, if known. - - Function: image-instance-mask-file-name image-instance + - Function: image-instance-mask-file-name IMAGE-INSTANCE This function returns the file name from which IMAGE-INSTANCE's mask was read, if known. - - Function: image-instance-depth image-instance + - Function: image-instance-depth IMAGE-INSTANCE This function returns the depth of the image instance. This is 0 for a mono pixmap, or a positive integer for a color pixmap. - - Function: image-instance-height image-instance + - Function: image-instance-height IMAGE-INSTANCE This function returns the height of the image instance, in pixels. - - Function: image-instance-width image-instance + - Function: image-instance-width IMAGE-INSTANCE This function returns the width of the image instance, in pixels. - - Function: image-instance-hotspot-x image-instance + - Function: image-instance-hotspot-x IMAGE-INSTANCE This function returns the X coordinate of the image instance's hotspot, if known. This is a point relative to the origin of the pixmap. When an image is used as a mouse pointer, the hotspot is @@ -500,16 +500,16 @@ Image Instance Functions This will always be `nil' for a non-pointer image instance. - - Function: image-instance-hotspot-y image-instance + - Function: image-instance-hotspot-y IMAGE-INSTANCE This function returns the Y coordinate of the image instance's hotspot, if known. - - Function: image-instance-foreground image-instance + - Function: image-instance-foreground IMAGE-INSTANCE This function returns the foreground color of IMAGE-INSTANCE, if applicable. This will be a color instance or `nil'. (It will only be non-`nil' for colorized mono pixmaps and for pointers.) - - Function: image-instance-background image-instance + - Function: image-instance-background IMAGE-INSTANCE This function returns the background color of IMAGE-INSTANCE, if applicable. This will be a color instance or `nil'. (It will only be non-`nil' for colorized mono pixmaps and for pointers.) @@ -540,25 +540,25 @@ glyph's type. iconified. Their image can be instantiated as `mono-pixmap' and `color-pixmap'. - - Function: glyph-type glyph + - Function: glyph-type GLYPH This function returns the type of the given glyph. The return value will be a symbol, one of `buffer', `pointer', or `icon'. - - Function: valid-glyph-type-p glyph-type + - Function: valid-glyph-type-p GLYPH-TYPE Given a GLYPH-TYPE, this function returns non-`nil' if it is valid. - Function: glyph-type-list This function returns a list of valid glyph types. - - Function: buffer-glyph-p object + - Function: buffer-glyph-p OBJECT This function returns non-`nil' if OBJECT is a glyph of type `buffer'. - - Function: icon-glyph-p object + - Function: icon-glyph-p OBJECT This function returns non-`nil' if OBJECT is a glyph of type `icon'. - - Function: pointer-glyph-p object + - Function: pointer-glyph-p OBJECT This function returns non-`nil' if OBJECT is a glyph of type `pointer'. @@ -574,7 +574,7 @@ a glyph is a specifier, it can be controlled on a per-buffer, per-frame, per-window, or per-device basis. You should use `set-glyph-image' to set the following variables, -_not_ `setq'. +*not* `setq'. - Glyph: text-pointer-glyph This variable specifies the shape of the mouse pointer when over @@ -629,7 +629,7 @@ _not_ `setq'. mouse moves. That function calls `set-frame-pointer', which sets the current mouse pointer for a frame. - - Function: set-frame-pointer frame image-instance + - Function: set-frame-pointer FRAME IMAGE-INSTANCE This function sets the mouse pointer of FRAME to the given pointer image instance. You should not call this function directly. (If you do, the pointer will change again the next time the mouse @@ -676,7 +676,7 @@ Subwindows Subwindows are not currently implemented. - - Function: subwindowp object + - Function: subwindowp OBJECT This function returns non-`nil' if OBJECT is a subwindow.  @@ -690,7 +690,7 @@ text but is displayed next to a particular location in a buffer. Annotations can be displayed intermixed with text, in any whitespace at the beginning or end of a line, or in a special area at the left or right side of the frame called a "margin", whose size is controllable. -Annotations are implemented using extents (*note Extents::); but you +Annotations are implemented using extents (*note Extents::.); but you can work with annotations without knowing how extents work. * Menu: @@ -802,8 +802,8 @@ File: lispref.info, Node: Annotation Primitives, Next: Annotation Properties, Annotation Primitives ===================== - - Function: make-annotation glyph &optional position layout buffer - with-event d-glyph rightp + - Function: make-annotation GLYPH &optional POSITION LAYOUT BUFFER + WITH-EVENT D-GLYPH RIGHTP This function creates a marginal annotation at position POS in BUFFER. The annotation is displayed using GLYPH, which should be a glyph object or a string, and is positioned using layout policy @@ -820,11 +820,11 @@ Annotation Primitives The newly created annotation is returned. - - Function: delete-annotation annotation + - Function: delete-annotation ANNOTATION This function removes ANNOTATION from its buffer. This does not modify the buffer text. - - Function: annotationp annotation + - Function: annotationp ANNOTATION This function returns `t' if ANNOTATION is an annotation, `nil' otherwise. @@ -834,74 +834,74 @@ File: lispref.info, Node: Annotation Properties, Next: Margin Primitives, Pre Annotation Properties ===================== - - Function: annotation-glyph annotation + - Function: annotation-glyph ANNOTATION This function returns the glyph object used to display ANNOTATION. - - Function: set-annotation-glyph annotation glyph &optional layout side + - Function: set-annotation-glyph ANNOTATION GLYPH &optional LAYOUT SIDE This function sets the glyph of ANNOTATION to GLYPH, which should be a glyph object. If LAYOUT is non-`nil', set the layout policy of ANNOTATION to LAYOUT. If SIDE is `left' or `right', change the side of the buffer at which the annotation is displayed to the given side. The new value of `annotation-glyph' is returned. - - Function: annotation-down-glyph annotation + - Function: annotation-down-glyph ANNOTATION This function returns the glyph used to display ANNOTATION when the left mouse button is depressed on the annotation. - - Function: set-annotation-down-glyph annotation glyph + - Function: set-annotation-down-glyph ANNOTATION GLYPH This function returns the glyph used to display ANNOTATION when the left mouse button is depressed on the annotation to GLYPH, which should be a glyph object. - - Function: annotation-face annotation + - Function: annotation-face ANNOTATION This function returns the face associated with ANNOTATION. - - Function: set-annotation-face annotation face + - Function: set-annotation-face ANNOTATION FACE This function sets the face associated with ANNOTATION to FACE. - - Function: annotation-layout annotation + - Function: annotation-layout ANNOTATION This function returns the layout policy of ANNOTATION. - - Function: set-annotation-layout annotation layout + - Function: set-annotation-layout ANNOTATION LAYOUT This function sets the layout policy of ANNOTATION to LAYOUT. - - Function: annotation-side annotation + - Function: annotation-side ANNOTATION This function returns the side of the buffer that ANNOTATION is displayed on. Return value is a symbol, either `left' or `right'. - - Function: annotation-data annotation + - Function: annotation-data ANNOTATION This function returns the data associated with ANNOTATION. - - Function: set-annotation-data annotation data + - Function: set-annotation-data ANNOTATION DATA This function sets the data field of ANNOTATION to DATA. DATA is returned. - - Function: annotation-action annotation + - Function: annotation-action ANNOTATION This function returns the action associated with ANNOTATION. - - Function: set-annotation-action annotation action + - Function: set-annotation-action ANNOTATION ACTION This function sets the action field of ANNOTATION to ACTION. ACTION is returned.. - - Function: annotation-menu annotation + - Function: annotation-menu ANNOTATION This function returns the menu associated with ANNOTATION. - - Function: set-annotation-menu annotation menu + - Function: set-annotation-menu ANNOTATION MENU This function sets the menu associated with ANNOTATION to MENU. This menu will be displayed when the right mouse button is pressed over the annotation. - - Function: annotation-visible annotation + - Function: annotation-visible ANNOTATION This function returns `t' if there is enough available space to display ANNOTATION, `nil' otherwise. - - Function: annotation-width annotation + - Function: annotation-width ANNOTATION This function returns the width of ANNOTATION in pixels. - - Function: hide-annotation annotation + - Function: hide-annotation ANNOTATION This function removes ANNOTATION's glyph, making it invisible. - - Function: reveal-annotation annotation + - Function: reveal-annotation ANNOTATION This function restores ANNOTATION's glyph, making it visible.  @@ -910,16 +910,16 @@ File: lispref.info, Node: Locating Annotations, Next: Annotation Hooks, Prev: Locating Annotations ==================== - - Function: annotations-in-region start end buffer + - Function: annotations-in-region START END BUFFER This function returns a list of all annotations in BUFFER which are between START and END inclusively. - - Function: annotations-at &optional position buffer + - Function: annotations-at &optional POSITION BUFFER This function returns a list of all annotations at POSITION in BUFFER. If POSITION is `nil' point is used. If BUFFER is `nil' the current buffer is used. - - Function: annotation-list &optional buffer + - Function: annotation-list &optional BUFFER This function returns a list of all annotations in BUFFER. If BUFFER is `nil', the current buffer is used. @@ -959,12 +959,12 @@ of specifiers. *Note Specifiers::. to `nil'. This is a specifier variable; use `set-specifier' to change its value. - - Function: window-left-margin-pixel-width &optional window + - Function: window-left-margin-pixel-width &optional WINDOW This function returns the width in pixels of the left outside margin of WINDOW. If WINDOW is `nil', the selected window is assumed. - - Function: window-right-margin-pixel-width &optional window + - Function: window-right-margin-pixel-width &optional WINDOW This function returns the width in pixels of the right outside margin of WINDOW. If WINDOW is `nil', the selected window is assumed. @@ -1028,12 +1028,12 @@ Refreshing the Screen The function `redraw-frame' redisplays the entire contents of a given frame. *Note Frames::. - - Function: redraw-frame frame + - Function: redraw-frame FRAME This function clears and redisplays frame FRAME. Even more powerful is `redraw-display': - - Command: redraw-display &optional device + - Command: redraw-display &optional DEVICE This function redraws all frames on DEVICE marked as having their image garbled. DEVICE defaults to the selected device. If DEVICE is `t', all devices will have their frames checked. @@ -1108,12 +1108,12 @@ Filling::. - User Option: truncate-partial-width-windows This variable controls display of lines that extend beyond the right edge of the window, in side-by-side windows (*note Splitting - Windows::). If it is non-`nil', these lines are truncated; + Windows::.). If it is non-`nil', these lines are truncated; otherwise, `truncate-lines' says what to do with them. The backslash and curved arrow used to indicate truncated or continued lines are only defaults, and can be changed. These images -are actually glyphs (*note Glyphs::). XEmacs provides a great deal of +are actually glyphs (*note Glyphs::.). XEmacs provides a great deal of flexibility in how glyphs can be controlled. (This differs from FSF Emacs, which uses display tables to control these images.) diff --git a/info/lispref.info-37 b/info/lispref.info-37 index d15f1e0..50538a1 100644 --- a/info/lispref.info-37 +++ b/info/lispref.info-37 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -65,10 +65,10 @@ The Minibuffer: (emacs)Minibuffer.). Error messages appear in the echo area; see *Note Errors::. You can write output in the echo area by using the Lisp printing -functions with `t' as the stream (*note Output Functions::), or as +functions with `t' as the stream (*note Output Functions::.), or as follows: - - Function: message string &rest arguments + - Function: message STRING &rest ARGUMENTS This function displays a one-line message in the echo area. The argument STRING is similar to a C language `printf' control string. See `format' in *Note String Conversion::, for the details @@ -115,7 +115,7 @@ standard labels are: programs may access these messages, or remove them as appropriate, via the message stack. - - Function: display-message label message &optional frame stdout-p + - Function: display-message LABEL MESSAGE &optional FRAME STDOUT-P This function displays MESSAGE (a string) labeled as LABEL, as described above. @@ -125,7 +125,7 @@ the message stack. (display-message 'command "Mark set") - - Function: lmessage label string &rest arguments + - Function: lmessage LABEL STRING &rest ARGUMENTS This function displays a message STRING with label LABEL. It is similar to `message' in that it accepts a `printf'-like strings and any number of arguments. @@ -139,7 +139,7 @@ the message stack. ;; Display a message that should not be logged. (lmessage 'no-log "Done") - - Function: clear-message &optional label frame stdout-p no-restore + - Function: clear-message &optional LABEL FRAME STDOUT-P NO-RESTORE This function remove any message with the given LABEL from the message-stack, erasing it from the echo area if it's currently displayed there. @@ -166,7 +166,7 @@ the message stack. Unless you need the return value or you need to specify a label, you should just use `(message nil)'. - - Function: current-message &optional frame + - Function: current-message &optional FRAME This function returns the current message in the echo area, or `nil'. The FRAME argument is currently unused. @@ -245,7 +245,7 @@ The recognized warning levels, in increased order of priority, are: `debug', `info', `notice', `warning', `error', `critical', `alert' and `emergency'. - - Function: display-warning class message &optional level + - Function: display-warning CLASS MESSAGE &optional LEVEL This function displays a warning message MESSAGE (a string). CLASS should be a warning class symbol, as described above, or a list of such symbols. LEVEL describes the warning priority level. @@ -270,7 +270,7 @@ The recognized warning levels, in increased order of priority, are: you use the specifier and/or `set-face-*' functions. ---------- Warning buffer ---------- - - Function: lwarn class level message &rest args + - Function: lwarn CLASS LEVEL MESSAGE &rest ARGS This function displays a formatted labeled warning message. As above, CLASS should be the warning class symbol, or a list of such symbols, and LEVEL should specify the warning priority level @@ -325,7 +325,7 @@ property or a property of an overlay. character invisible. This is the default case--if you don't alter the default value of `buffer-invisibility-spec', this is how the `invisibility' property works. This feature is much like selective -display (*note Selective Display::), but more general and cleaner. +display (*note Selective Display::.), but more general and cleaner. More generally, you can use the variable `buffer-invisibility-spec' to control which values of the `invisible' property make text @@ -383,7 +383,8 @@ the screen. a Lisp program. The program controls which lines are hidden by altering the text. Outline mode has traditionally used this variant. It has been partially replaced by the invisible text feature (*note Invisible -Text::); there is a new version of Outline mode which uses that instead. +Text::.); there is a new version of Outline mode which uses that +instead. In the second variant, the choice of lines to hide is made automatically based on indentation. This variant is designed to be a @@ -427,9 +428,9 @@ effect is seen only within XEmacs. not skip the invisible portion, and it is possible (if tricky) to insert or delete text in an invisible portion. - In the examples below, we show the _display appearance_ of the + In the examples below, we show the *display appearance* of the buffer `foo', which changes with the value of `selective-display'. - The _contents_ of the buffer do not change. + The *contents* of the buffer do not change. (setq selective-display nil) => nil @@ -486,7 +487,7 @@ about to be executed. This variable holds the string to display to call attention to a particular line, or `nil' if the arrow feature is not in use. Despite its name, the value of this variable can be either a string - or a glyph (*note Glyphs::). + or a glyph (*note Glyphs::.). - Variable: overlay-arrow-position This variable holds a marker that indicates where to display the @@ -513,7 +514,7 @@ Temporary Displays and then present it to the user for perusal rather than for editing. Many of the help commands use this feature. - - Special Form: with-output-to-temp-buffer buffer-name forms... + - Special Form: with-output-to-temp-buffer BUFFER-NAME FORMS... This function executes FORMS while arranging to insert any output they print into the buffer named BUFFER-NAME. The buffer is then shown in some window for viewing, displayed but not selected. @@ -556,8 +557,8 @@ Many of the help commands use this feature. In Emacs versions 18 and earlier, this variable was called `temp-buffer-show-hook'. - - Function: momentary-string-display string position &optional char - message + - Function: momentary-string-display STRING POSITION &optional CHAR + MESSAGE This function momentarily displays STRING in the current buffer at POSITION. It has no effect on the undo list or on the buffer's modification status. @@ -653,7 +654,8 @@ open parenthesis when the user inserts a close parenthesis. (defun interactive-blink-matching-open () "Indicate momentarily the start of sexp before point." (interactive) - (let ((blink-matching-paren-distance + + (let ((blink-matching-paren-distance (buffer-size)) (blink-matching-paren t)) (blink-matching-open))) @@ -666,7 +668,7 @@ Usual Display Conventions The usual display conventions define how to display each character code. You can override these conventions by setting up a display table -(*note Display Tables::). Here are the usual display conventions: +(*note Display Tables::.). Here are the usual display conventions: * Character codes 32 through 126 map to glyph codes 32 through 126. Normally this means they display as themselves. @@ -756,9 +758,9 @@ used. *Note Truncation::.) The 256 elements correspond to character codes; the Nth element says how to display the character code N. The value should be `nil', a string, a glyph, or a vector of strings and glyphs (*note Character -Descriptors::). If an element is `nil', it says to display that +Descriptors::.). If an element is `nil', it says to display that character according to the usual display conventions (*note Usual -Display::). +Display::.). If you use the display table to change the display of newline characters, the whole buffer will be displayed as one long "line." @@ -824,7 +826,7 @@ a vector `nil' Display according to the standard interpretation (*note Usual - Display::). + Display::.).  File: lispref.info, Node: Beeping, Prev: Display Tables, Up: Display @@ -837,7 +839,7 @@ attract the user's attention. Be conservative about how often you do this; frequent bells can become irritating. Also be careful not to use beeping alone when signaling an error is appropriate. (*Note Errors::.) - - Function: ding &optional dont-terminate sound device + - Function: ding &optional DONT-TERMINATE SOUND DEVICE This function beeps, or flashes the screen (see `visible-bell' below). It also terminates any keyboard macro currently executing unless DONT-TERMINATE is non-`nil'. If SOUND is specified, it @@ -849,7 +851,7 @@ beeping alone when signaling an error is appropriate. (*Note Errors::.) specifies what device to make the sound on, and defaults to the selected device. - - Function: beep &optional dont-terminate sound device + - Function: beep &optional DONT-TERMINATE SOUND DEVICE This is a synonym for `ding'. - User Option: visible-bell @@ -934,21 +936,21 @@ beeping alone when signaling an error is appropriate. (*Note Errors::.) - Command: load-default-sounds This function loads and installs some sound files as beep-types. - - Command: load-sound-file filename sound-name &optional volume + - Command: load-sound-file FILENAME SOUND-NAME &optional VOLUME This function reads in an audio file and adds it to `sound-alist'. The sound file must be in the Sun/NeXT U-LAW format. SOUND-NAME should be a symbol, specifying the name of the sound. If VOLUME is specified, the sound will be played at that volume; otherwise, the value of BELL-VOLUME will be used. - - Function: play-sound sound &optional volume device + - Function: play-sound SOUND &optional VOLUME DEVICE This function plays sound SOUND, which should be a symbol mentioned in `sound-alist'. If VOLUME is specified, it overrides the value (if any) specified in `sound-alist'. DEVICE specifies the device to play the sound on, and defaults to the selected device. - - Command: play-sound-file file &optional volume device + - Command: play-sound-file FILE &optional VOLUME DEVICE This function plays the named sound file at volume VOLUME, which defaults to `bell-volume'. DEVICE specifies the device to play the sound on, and defaults to the selected device. @@ -959,7 +961,7 @@ File: lispref.info, Node: Hash Tables, Next: Range Tables, Prev: Display, Up Hash Tables *********** - - Function: hash-table-p object + - Function: hash-table-p OBJECT This function returns `t' if OBJECT is a hash table, else `nil'. * Menu: @@ -982,7 +984,7 @@ arbitrary Lisp objects called "keys" to other arbitrary Lisp objects called "values". A key/value pair is sometimes called an "entry" in the hash table. There are many ways other than hash tables of implementing the same sort of mapping, e.g. association lists (*note -Association Lists::) and property lists (*note Property Lists::), but +Association Lists::.) and property lists (*note Property Lists::.), but hash tables provide much faster lookup when there are many entries in the mapping. Hash tables are an implementation of the abstract data type "dictionary", also known as "associative array". @@ -1065,33 +1067,33 @@ which specifies the initial hash table contents. remain in the hash table if the value is pointed to by something other than a weak hash table, even if the key is not. - - Function: copy-hash-table hash-table + - Function: copy-hash-table HASH-TABLE This function returns a new hash table which contains the same keys and values as HASH-TABLE. The keys and values will not themselves be copied. - - Function: hash-table-count hash-table + - Function: hash-table-count HASH-TABLE This function returns the number of entries in HASH-TABLE. - - Function: hash-table-test hash-table + - Function: hash-table-test HASH-TABLE This function returns the test function of HASH-TABLE. This can be one of `eq', `eql' or `equal'. - - Function: hash-table-size hash-table + - Function: hash-table-size HASH-TABLE This function returns the current number of slots in HASH-TABLE, whether occupied or not. - - Function: hash-table-rehash-size hash-table + - Function: hash-table-rehash-size HASH-TABLE This function returns the current rehash size of HASH-TABLE. This is a float greater than 1.0; the factor by which HASH-TABLE is enlarged when the rehash threshold is exceeded. - - Function: hash-table-rehash-threshold hash-table + - Function: hash-table-rehash-threshold HASH-TABLE This function returns the current rehash threshold of HASH-TABLE. This is a float between 0.0 and 1.0; the maximum "load factor" of HASH-TABLE, beyond which the HASH-TABLE is enlarged by rehashing. - - Function: hash-table-weakness hash-table + - Function: hash-table-weakness HASH-TABLE This function returns the weakness of HASH-TABLE. This can be one of `nil', `t', `key' or `value'. @@ -1101,23 +1103,23 @@ File: lispref.info, Node: Working With Hash Tables, Next: Weak Hash Tables, P Working With Hash Tables ======================== - - Function: puthash key value hash-table + - Function: puthash KEY VALUE HASH-TABLE This function hashes KEY to VALUE in HASH-TABLE. - - Function: gethash key hash-table &optional default + - Function: gethash KEY HASH-TABLE &optional DEFAULT This function finds the hash value for KEY in HASH-TABLE. If there is no entry for KEY in HASH-TABLE, DEFAULT is returned (which in turn defaults to `nil'). - - Function: remhash key hash-table + - Function: remhash KEY HASH-TABLE This function removes the entry for KEY from HASH-TABLE. Does nothing if there is no entry for KEY in HASH-TABLE. - - Function: clrhash hash-table + - Function: clrhash HASH-TABLE This function removes all entries from HASH-TABLE, leaving it empty. - - Function: maphash function hash-table + - Function: maphash FUNCTION HASH-TABLE This function maps FUNCTION over entries in HASH-TABLE, calling it with two args, each key and value in the hash table. @@ -1185,7 +1187,7 @@ ranges of integers. This maps integers in the range (-3, 2) to `foo' and integers in the range (5, 20) to `bar'. - - Function: range-table-p object + - Function: range-table-p OBJECT Return non-`nil' if OBJECT is a range table. * Menu: @@ -1203,7 +1205,7 @@ Introduction to Range Tables - Function: make-range-table Make a new, empty range table. - - Function: copy-range-table old-table + - Function: copy-range-table OLD-TABLE Make a new range table which contains the same values for the same ranges as the given table. The values will not themselves be copied. @@ -1214,21 +1216,21 @@ File: lispref.info, Node: Working With Range Tables, Prev: Introduction to Ran Working With Range Tables ========================= - - Function: get-range-table pos table &optional default + - Function: get-range-table POS TABLE &optional DEFAULT This function finds value for position POS in TABLE. If there is no corresponding value, return DEFAULT (defaults to `nil'). - - Function: put-range-table start end val table + - Function: put-range-table START END VAL TABLE This function sets the value for range (START, END) to be VAL in TABLE. - - Function: remove-range-table start end table + - Function: remove-range-table START END TABLE This function removes the value for range (START, END) in TABLE. - - Function: clear-range-table table + - Function: clear-range-table TABLE This function flushes TABLE. - - Function: map-range-table function table + - Function: map-range-table FUNCTION TABLE This function maps FUNCTION over entries in TABLE, calling it with three args, the beginning and end of the range and the corresponding value. @@ -1239,7 +1241,7 @@ File: lispref.info, Node: Databases, Next: Processes, Prev: Range Tables, Up Databases ********* - - Function: databasep object + - Function: databasep OBJECT This function returns non-`nil' if OBJECT is a database. * Menu: @@ -1254,7 +1256,7 @@ File: lispref.info, Node: Connecting to a Database, Next: Working With a Datab Connecting to a Database ======================== - - Function: open-database file &optional type subtype access mode + - Function: open-database FILE &optional TYPE SUBTYPE ACCESS MODE This function opens database FILE, using database method TYPE and SUBTYPE, with access rights ACCESS and permissions MODE. ACCESS can be any combination of `r' `w' and `+', for read, write, and @@ -1271,10 +1273,10 @@ Connecting to a Database available: `'hash', `'btree', and `'recno'. See the manpages for the Berkeley DB functions to more information about these types. - - Function: close-database obj + - Function: close-database OBJ This function closes database OBJ. - - Function: database-live-p obj + - Function: database-live-p OBJ This function returns `t' iff OBJ is an active database, else `nil'. diff --git a/info/lispref.info-38 b/info/lispref.info-38 index 55418af..5dffcd3 100644 --- a/info/lispref.info-38 +++ b/info/lispref.info-38 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -55,21 +55,21 @@ File: lispref.info, Node: Working With a Database, Next: Other Database Functi Working With a Database ======================= - - Function: get-database key dbase &optional default + - Function: get-database KEY DBASE &optional DEFAULT This function finds the value for KEY in DATABASE. If there is no corresponding value, DEFAULT is returned (`nil' if DEFAULT is omitted). - - Function: map-database function dbase + - Function: map-database FUNCTION DBASE This function maps FUNCTION over entries in DATABASE, calling it with two args, each key and value in the database. - - Function: put-database key val dbase &optional replace + - Function: put-database KEY VAL DBASE &optional REPLACE This function stores KEY and VAL in DATABASE. If optional fourth arg REPLACE is non-`nil', replace any existing entry in the database. - - Function: remove-database key dbase + - Function: remove-database KEY DBASE This function removes KEY from DATABASE.  @@ -78,17 +78,17 @@ File: lispref.info, Node: Other Database Functions, Prev: Working With a Datab Other Database Functions ======================== - - Function: database-file-name obj + - Function: database-file-name OBJ This function returns the filename associated with the database OBJ. - - Function: database-last-error &optional obj + - Function: database-last-error &optional OBJ This function returns the last error associated with database OBJ. - - Function: database-subtype obj + - Function: database-subtype OBJ This function returns the subtype of database OBJ, if any. - - Function: database-type obj + - Function: database-type OBJ This function returns the type of database OBJ.  @@ -114,7 +114,7 @@ with the subprocess or to control it. For example, you can send signals, obtain status information, receive output from the process, or send input to it. - - Function: processp object + - Function: processp OBJECT This function returns `t' if OBJECT is a process, `nil' otherwise. * Menu: @@ -143,10 +143,10 @@ Functions that Create Subprocesses There are three functions that create a new subprocess in which to run a program. One of them, `start-process', creates an asynchronous -process and returns a process object (*note Asynchronous Processes::). +process and returns a process object (*note Asynchronous Processes::.). The other two, `call-process' and `call-process-region', create a synchronous process and do not return a process object (*note -Synchronous Processes::). +Synchronous Processes::.). Synchronous and asynchronous processes are explained in following sections. Since the three functions are all called in a similar @@ -160,7 +160,8 @@ contains a list of directories to search. Emacs initializes variable `PATH'. The standard file name constructs, `~', `.', and `..', are interpreted as usual in `exec-path', but environment variable substitutions (`$HOME', etc.) are not recognized; use -`substitute-in-file-name' to perform them (*note File Name Expansion::). +`substitute-in-file-name' to perform them (*note File Name +Expansion::.). Each of the subprocess-creating functions has a BUFFER-OR-NAME argument which specifies where the standard output from the program will @@ -181,7 +182,7 @@ program; it may not contain any command-line arguments. You must use ARGS to provide those. The subprocess gets its current directory from the value of -`default-directory' (*note File Name Expansion::). +`default-directory' (*note File Name Expansion::.). The subprocess inherits its environment from XEmacs; but you can specify overrides for it with `process-environment'. *Note System @@ -227,8 +228,8 @@ and quits immediately. *Note Quitting::. The synchronous subprocess functions returned `nil' in version 18. In version 19, they return an indication of how the process terminated. - - Function: call-process program &optional infile destination display - &rest args + - Function: call-process PROGRAM &optional INFILE DESTINATION DISPLAY + &rest ARGS This function calls PROGRAM in a separate process and waits for it to finish. @@ -296,7 +297,7 @@ In version 19, they return an indication of how the process terminated. ---------- Buffer: foo ---------- /usr/user/lewis/manual ---------- Buffer: foo ---------- - + (call-process "grep" nil "bar" nil "lewis" "/etc/passwd") => nil @@ -313,8 +314,8 @@ In version 19, they return an indication of how the process terminated. (concat (file-name-as-directory file) ".") file)) - - Function: call-process-region start end program &optional delete - destination display &rest args + - Function: call-process-region START END PROGRAM &optional DELETE + DESTINATION DISPLAY &rest ARGS This function sends the text between START to END as standard input to a process running PROGRAM. It deletes the text sent if DELETE is non-`nil'; this is useful when BUFFER is `t', to insert @@ -344,7 +345,7 @@ In version 19, they return an indication of how the process terminated. ---------- Buffer: foo ---------- input-!- ---------- Buffer: foo ---------- - + (call-process-region 1 6 "cat" nil t) => nil @@ -402,7 +403,7 @@ run in parallel with Emacs, and the two may communicate with each other using the functions described in following sections. Here we describe how to create an asynchronous process with `start-process'. - - Function: start-process name buffer-or-name program &rest args + - Function: start-process NAME BUFFER-OR-NAME PROGRAM &rest ARGS This function creates a new asynchronous subprocess and starts the program PROGRAM running in it. It returns a process object that stands for the new subprocess in Lisp. The argument NAME @@ -425,7 +426,7 @@ how to create an asynchronous process with `start-process'. (start-process "my-process" "foo" "sleep" "100") => # - + (start-process "my-process" "foo" "ls" "-l" "/user/lewis/bin") => #> @@ -439,8 +440,8 @@ how to create an asynchronous process with `start-process'. Process my-process finished ---------- Buffer: foo ---------- - - Function: start-process-shell-command name buffer-or-name command - &rest command-args + - Function: start-process-shell-command NAME BUFFER-OR-NAME COMMAND + &rest COMMAND-ARGS This function is like `start-process' except that it uses a shell to execute the specified command. The argument COMMAND is a shell command name, and COMMAND-ARGS are the arguments for the shell @@ -469,7 +470,7 @@ how to create an asynchronous process with `start-process'. To determine whether a given subprocess actually got a pipe or a PTY, use the function `process-tty-name' (*note Process - Information::). + Information::.).  File: lispref.info, Node: Deleting Processes, Next: Process Information, Prev: Asynchronous Processes, Up: Processes @@ -495,7 +496,7 @@ deleted automatically, no harm results. `list-processes'. Otherwise, they are deleted immediately after they exit. - - Function: delete-process name + - Function: delete-process NAME This function deletes the process associated with NAME, killing it with a `SIGHUP' signal. The argument NAME may be a process, the name of a process, a buffer, or the name of a buffer. @@ -503,12 +504,12 @@ deleted automatically, no harm results. (delete-process "*shell*") => nil - - Function: process-kill-without-query process &optional - require-query-p + - Function: process-kill-without-query PROCESS &optional + REQUIRE-QUERY-P This function declares that XEmacs need not query the user if PROCESS is still running when XEmacs is exited. The process will be deleted silently. If REQUIRE-QUERY-P is non-`nil', then XEmacs - _will_ query the user (this is the default). The return value is + *will* query the user (this is the default). The return value is `t' if a query was formerly required, and `nil' otherwise. (process-kill-without-query (get-process "shell")) @@ -535,14 +536,14 @@ Process Information (process-list) => (# #) - - Function: get-process name + - Function: get-process NAME This function returns the process named NAME, or `nil' if there is none. An error is signaled if NAME is not a string. (get-process "shell") => # - - Function: process-command process + - Function: process-command PROCESS This function returns the command that was executed to start PROCESS. This is a list of strings, the first string being the program executed and the rest of the strings being the arguments @@ -551,17 +552,17 @@ Process Information (process-command (get-process "shell")) => ("/bin/csh" "-i") - - Function: process-id process + - Function: process-id PROCESS This function returns the PID of PROCESS. This is an integer that distinguishes the process PROCESS from all other processes running on the same computer at the current time. The PID of a process is chosen by the operating system kernel when the process is started and remains constant as long as the process exists. - - Function: process-name process + - Function: process-name PROCESS This function returns the name of PROCESS. - - Function: process-status process-name + - Function: process-status PROCESS-NAME This function returns the status of PROCESS-NAME as a symbol. The argument PROCESS-NAME must be a process, a buffer, a process name (string) or a buffer name (string). @@ -593,8 +594,10 @@ Process Information (process-status "shell") => run + (process-status (get-buffer "*shell*")) => run + x => #> (process-status x) @@ -607,18 +610,18 @@ Process Information In earlier Emacs versions (prior to version 19), the status of a network connection was `run' if open, and `exit' if closed. - - Function: process-kill-without-query-p process + - Function: process-kill-without-query-p PROCESS This function returns whether PROCESS will be killed without querying the user, if it is running when XEmacs is exited. The default value is `nil'. - - Function: process-exit-status process + - Function: process-exit-status PROCESS This function returns the exit status of PROCESS or the signal number that killed it. (Use the result of `process-status' to determine which of those it is.) If PROCESS has not yet terminated, the value is 0. - - Function: process-tty-name process + - Function: process-tty-name PROCESS This function returns the terminal name that PROCESS is using for its communication with Emacs--or `nil' if it is using pipes instead of a terminal (see `process-connection-type' in *Note @@ -640,7 +643,7 @@ PTY. On these systems, Emacs sends an EOF periodically amidst the other characters, to force them through. For most programs, these EOFs do no harm. - - Function: process-send-string process-name string + - Function: process-send-string PROCESS-NAME STRING This function sends PROCESS-NAME the contents of STRING as standard input. The argument PROCESS-NAME must be a process or the name of a process. If it is `nil', the current buffer's @@ -650,8 +653,7 @@ do no harm. (process-send-string "shell<1>" "ls\n") => nil - - + ---------- Buffer: *shell* ---------- ... introduction.texi syntax-tables.texi~ @@ -660,7 +662,7 @@ do no harm. ... ---------- Buffer: *shell* ---------- - - Command: process-send-region process-name start end + - Command: process-send-region PROCESS-NAME START END This function sends the text in the region defined by START and END as standard input to PROCESS-NAME, which is a process or a process name. (If it is `nil', the current buffer's process is @@ -670,7 +672,7 @@ do no harm. markers that indicate positions in the current buffer. (It is unimportant which number is larger.) - - Function: process-send-eof &optional process-name + - Function: process-send-eof &optional PROCESS-NAME This function makes PROCESS-NAME see an end-of-file in its input. The EOF comes after any text already sent to it. @@ -734,7 +736,7 @@ support the distinction in the case of pipes. For the same reason, job-control shells won't work when a pipe is used. See `process-connection-type' in *Note Asynchronous Processes::. - - Function: interrupt-process &optional process-name current-group + - Function: interrupt-process &optional PROCESS-NAME CURRENT-GROUP This function interrupts the process PROCESS-NAME by sending the signal `SIGINT'. Outside of XEmacs, typing the "interrupt character" (normally `C-c' on some systems, and `DEL' on others) @@ -742,17 +744,17 @@ job-control shells won't work when a pipe is used. See you can think of this function as "typing `C-c'" on the terminal by which XEmacs talks to the subprocess. - - Function: kill-process &optional process-name current-group + - Function: kill-process &optional PROCESS-NAME CURRENT-GROUP This function kills the process PROCESS-NAME by sending the signal `SIGKILL'. This signal kills the subprocess immediately, and cannot be handled by the subprocess. - - Function: quit-process &optional process-name current-group + - Function: quit-process &optional PROCESS-NAME CURRENT-GROUP This function sends the signal `SIGQUIT' to the process PROCESS-NAME. This signal is the one sent by the "quit character" (usually `C-b' or `C-\') when you are not inside XEmacs. - - Function: stop-process &optional process-name current-group + - Function: stop-process &optional PROCESS-NAME CURRENT-GROUP This function stops the process PROCESS-NAME by sending the signal `SIGTSTP'. Use `continue-process' to resume its execution. @@ -761,12 +763,12 @@ job-control shells won't work when a pipe is used. See non-`nil', you can think of this function as "typing `C-z'" on the terminal XEmacs uses to communicate with the subprocess. - - Function: continue-process &optional process-name current-group + - Function: continue-process &optional PROCESS-NAME CURRENT-GROUP This function resumes execution of the process PROCESS by sending it the signal `SIGCONT'. This presumes that PROCESS-NAME was stopped previously. - - Function: signal-process pid signal + - Function: signal-process PID SIGNAL This function sends a signal to process PID, which need not be a child of XEmacs. The argument SIGNAL specifies which signal to send; it should be an integer. @@ -805,19 +807,19 @@ normal practice only one process is associated with any given buffer. Many applications of processes also use the buffer for editing input to be sent to the process, but this is not built into XEmacs Lisp. - Unless the process has a filter function (*note Filter Functions::), + Unless the process has a filter function (*note Filter Functions::.), its output is inserted in the associated buffer. The position to insert the output is determined by the `process-mark', which is then updated to point to the end of the text just inserted. Usually, but not always, the `process-mark' is at the end of the buffer. - - Function: process-buffer process + - Function: process-buffer PROCESS This function returns the associated buffer of the process PROCESS. (process-buffer (get-process "shell")) => # - - Function: process-mark process + - Function: process-mark PROCESS This function returns the process marker for PROCESS, which is the marker that says where to insert output from the process. @@ -838,11 +840,11 @@ always, the `process-mark' is at the end of the buffer. transmission to the process, the process marker is useful for distinguishing the new input from previous output. - - Function: set-process-buffer process buffer + - Function: set-process-buffer PROCESS BUFFER This function sets the buffer associated with PROCESS to BUFFER. If BUFFER is `nil', the process becomes associated with no buffer. - - Function: get-buffer-process buffer-or-name + - Function: get-buffer-process BUFFER-OR-NAME This function returns the process associated with BUFFER-OR-NAME. If there are several processes associated with it, then one is chosen. (Presently, the one chosen is the one most recently @@ -853,7 +855,7 @@ always, the `process-mark' is at the end of the buffer. => # Killing the process's buffer deletes the process, which kills the - subprocess with a `SIGHUP' signal (*note Signals to Processes::). + subprocess with a `SIGHUP' signal (*note Signals to Processes::.).  File: lispref.info, Node: Filter Functions, Next: Accepting Output, Prev: Process Buffers, Up: Output from Processes @@ -863,7 +865,7 @@ Process Filter Functions A process "filter function" is a function that receives the standard output from the associated process. If a process has a filter, then -_all_ output from that process is passed to the filter. The process +*all* output from that process is passed to the filter. The process buffer is used directly for output from the process only when there is no filter. @@ -876,9 +878,9 @@ terminal input, or for time to elapse, or for process output). This avoids the timing errors that could result from running filters at random places in the middle of other Lisp programs. You may explicitly cause Emacs to wait, so that filter functions will run, by calling -`sit-for' or `sleep-for' (*note Waiting::), or `accept-process-output' -(*note Accepting Output::). Emacs is also waiting when the command loop -is reading input. +`sit-for' or `sleep-for' (*note Waiting::.), or `accept-process-output' +(*note Accepting Output::.). Emacs is also waiting when the command +loop is reading input. Quitting is normally inhibited within a filter function--otherwise, the effect of typing `C-g' at command level or to quit a user command @@ -907,7 +909,8 @@ Here is how to do these things: (let (moving) (set-buffer (process-buffer proc)) (setq moving (= (point) (process-mark proc))) - (save-excursion + + (save-excursion ;; Insert the text, moving the process-marker. (goto-char (process-mark proc)) (insert string) @@ -943,7 +946,7 @@ insert into a dead buffer, it will get an error. If the buffer is dead, that produces the same output twice in a row may send it as one batch of 200 characters one time, and five batches of 40 characters the next. - - Function: set-process-filter process filter + - Function: set-process-filter PROCESS FILTER This function gives PROCESS the filter function FILTER. If FILTER is `nil', then the process will have no filter. If FILTER is `t', then no output from the process will be accepted until the filter @@ -951,7 +954,7 @@ of 200 characters one time, and five batches of 40 characters the next. but is queued, and will be processed as soon as the filter is changed.) - - Function: process-filter process + - Function: process-filter PROCESS This function returns the filter function of PROCESS, or `nil' if it has none. `t' means that output processing has been stopped. @@ -960,14 +963,18 @@ of 200 characters one time, and five batches of 40 characters the next. (defun keep-output (process output) (setq kept (cons output kept))) => keep-output + (setq kept nil) => nil + (set-process-filter (get-process "shell") 'keep-output) => keep-output + (process-send-string "shell" "ls ~/other\n") => nil kept => ("lewis@slug[8] % " + "FINAL-W87-SHORT.MSS backup.otl kolstad.mss~ address.txt backup.psf kolstad.psf backup.bib~ david.mss resume-Dec-86.mss~ @@ -989,7 +996,7 @@ or terminal input. Occasionally it is useful in a Lisp program to explicitly permit output to arrive at a specific point, or even to wait until output arrives from a process. - - Function: accept-process-output &optional process seconds millisec + - Function: accept-process-output &optional PROCESS SECONDS MILLISEC This function allows XEmacs to read pending output from processes. The output is inserted in the associated buffers or given to their filter functions. If PROCESS is non-`nil' then this @@ -1038,7 +1045,7 @@ input, or for time to elapse, or for process output). This avoids the timing errors that could result from running them at random places in the middle of other Lisp programs. A program can wait, so that sentinels will run, by calling `sit-for' or `sleep-for' (*note -Waiting::), or `accept-process-output' (*note Accepting Output::). +Waiting::.), or `accept-process-output' (*note Accepting Output::.). Emacs is also waiting when the command loop is reading input. Quitting is normally inhibited within a sentinel--otherwise, the @@ -1063,7 +1070,7 @@ or matching had to explicitly save and restore the match data. Now Emacs does this automatically; sentinels never need to do it explicitly. *Note Match Data::. - - Function: set-process-sentinel process sentinel + - Function: set-process-sentinel PROCESS SENTINEL This function associates SENTINEL with PROCESS. If SENTINEL is `nil', then the process will have no sentinel. The default behavior when there is no sentinel is to insert a message in the @@ -1074,11 +1081,12 @@ Emacs does this automatically; sentinels never need to do it explicitly. (format "Process: %s had the event `%s'" process event))) (set-process-sentinel (get-process "shell") 'msg-me) => msg-me + (kill-process (get-process "shell")) -| Process: # had the event `killed' => # - - Function: process-sentinel process + - Function: process-sentinel PROCESS This function returns the sentinel of PROCESS, or `nil' if it has none. @@ -1094,7 +1102,7 @@ File: lispref.info, Node: Process Window Size, Next: Transaction Queues, Prev Process Window Size =================== - - Function: set-process-window-size process height width + - Function: set-process-window-size PROCESS HEIGHT WIDTH This function tells PROCESS that its logical window size is HEIGHT by WIDTH characters. This is principally useful with pty's. @@ -1109,14 +1117,14 @@ with subprocesses using transactions. First use `tq-create' to create a transaction queue communicating with a specified process. Then you can call `tq-enqueue' to send a transaction. - - Function: tq-create process + - Function: tq-create PROCESS This function creates and returns a transaction queue communicating with PROCESS. The argument PROCESS should be a subprocess capable of sending and receiving streams of bytes. It may be a child process, or it may be a TCP connection to a server, possibly on another machine. - - Function: tq-enqueue queue question regexp closure fn + - Function: tq-enqueue QUEUE QUESTION REGEXP CLOSURE FN This function sends a transaction to queue QUEUE. Specifying the queue has the effect of specifying the subprocess to talk to. @@ -1131,7 +1139,7 @@ can call `tq-enqueue' to send a transaction. The return value of `tq-enqueue' itself is not meaningful. - - Function: tq-close queue + - Function: tq-close QUEUE Shut down transaction queue QUEUE, waiting for all pending transactions to complete, and then terminate the connection or child process. @@ -1160,7 +1168,7 @@ function. It always returns either `open' or `closed' for a network connection, and it never returns either of those values for a real subprocess. *Note Process Information::. - - Function: open-network-stream name buffer-or-name host service + - Function: open-network-stream NAME BUFFER-OR-NAME HOST SERVICE This function opens a TCP connection for a service to a host. It returns a process object to represent the connection. diff --git a/info/lispref.info-39 b/info/lispref.info-39 index b4f7bd5..fd25493 100644 --- a/info/lispref.info-39 +++ b/info/lispref.info-39 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -199,7 +199,7 @@ file instead of yours. *Note Entering XEmacs: (xemacs)Entering XEmacs. A site may have a "default init file", which is the library named `default.el'. XEmacs finds the `default.el' file through the standard -search path for libraries (*note How Programs Do Loading::). The +search path for libraries (*note How Programs Do Loading::.). The XEmacs distribution does not come with this file; sites may provide one for local customizations. If the default init file exists, it is loaded whenever you start Emacs, except in batch mode or if `-q' is @@ -208,7 +208,7 @@ it sets `inhibit-default-init' to a non-`nil' value, then XEmacs does not subsequently load the `default.el' file. Another file for site-customization is `site-start.el'. Emacs loads -this _before_ the user's init file. You can inhibit the loading of +this *before* the user's init file. You can inhibit the loading of this file with the option `-no-site-file'. - Variable: site-run-file @@ -217,8 +217,8 @@ this file with the option `-no-site-file'. If there is a great deal of code in your `.emacs' file, you should move it into another file named `SOMETHING.el', byte-compile it (*note -Byte Compilation::), and make your `.emacs' file load the other file -using `load' (*note Loading::). +Byte Compilation::.), and make your `.emacs' file load the other file +using `load' (*note Loading::.). *Note Init File Examples: (xemacs)Init File Examples, for examples of how to make various commonly desired customizations in your `.emacs' @@ -415,7 +415,7 @@ Killing XEmacs parent process normally resumes control. The low-level primitive for killing XEmacs is `kill-emacs'. - - Function: kill-emacs &optional exit-data + - Function: kill-emacs &optional EXIT-DATA This function exits the XEmacs process and kills it. If EXIT-DATA is an integer, then it is used as the exit status of @@ -469,7 +469,7 @@ case you can give input to some other job such as a shell merely by moving to a different window. Therefore, suspending is not allowed when XEmacs is an X client. - - Function: suspend-emacs string + - Function: suspend-emacs STRING This function stops XEmacs and returns control to the superior process. If and when the superior process resumes XEmacs, `suspend-emacs' returns `nil' to its caller in Lisp. @@ -490,14 +490,14 @@ when XEmacs is an X client. The next redisplay after resumption will redraw the entire screen, unless the variable `no-redraw-on-reenter' is non-`nil' (*note - Refresh Screen::). + Refresh Screen::.). In the following example, note that `pwd' is not echoed after XEmacs is suspended. But it is read and executed by the shell. (suspend-emacs) => nil - + (add-hook 'suspend-hook (function (lambda () (or (y-or-n-p @@ -506,19 +506,22 @@ when XEmacs is an X client. => (lambda nil (or (y-or-n-p "Really suspend? ") (error "Suspend cancelled"))) + (add-hook 'suspend-resume-hook (function (lambda () (message "Resumed!")))) => (lambda nil (message "Resumed!")) + (suspend-emacs "pwd") => nil + ---------- Buffer: Minibuffer ---------- Really suspend? y ---------- Buffer: Minibuffer ---------- - + ---------- Parent Shell ---------- lewis@slug[23] % /user/lewis/manual lewis@slug[24] % fg - + ---------- Echo Area ---------- Resumed! @@ -608,7 +611,7 @@ name of the system, the user's UID, and so on. fact, the function returns whatever value the variable `system-name' currently holds. Thus, you can set the variable `system-name' in case Emacs is confused about the name of your system. The variable is also -useful for constructing frame titles (*note Frame Titles::). +useful for constructing frame titles (*note Frame Titles::.). - Variable: mail-host-address If this variable is non-`nil', it is used instead of `system-name' @@ -618,7 +621,7 @@ useful for constructing frame titles (*note Frame Titles::). starts up, the value actually used is the one saved when XEmacs was dumped. *Note Building XEmacs::.) - - Function: getenv var + - Function: getenv VAR This function returns the value of the environment variable VAR, as a string. Within XEmacs, the environment variable values are kept in the Lisp variable `process-environment'. @@ -633,7 +636,7 @@ useful for constructing frame titles (*note Frame Titles::). SHELL=/bin/csh HOME=/user/lewis - - Command: setenv variable value + - Command: setenv VARIABLE VALUE This command sets the value of the environment variable named VARIABLE to VALUE. Both arguments should be strings. This function works by modifying `process-environment'; binding that @@ -648,7 +651,8 @@ useful for constructing frame titles (*note Frame Titles::). => ("l=/usr/stanford/lib/gnuemacs/lisp" "PATH=.:/user/lewis/bin:/usr/class:/nfsusr/local/bin" "USER=lewis" - "TERM=ibmapa16" + + "TERM=ibmapa16" "SHELL=/bin/csh" "HOME=/user/lewis") @@ -675,7 +679,7 @@ useful for constructing frame titles (*note Frame Titles::). locations, but can find them in a directory related somehow to the one containing the Emacs executable. - - Function: load-average &optional use-floats + - Function: load-average &optional USE-FLOATS This function returns a list of the current 1-minute, 5-minute and 15-minute load averages. The values are integers that are 100 times the system load averages. (The load averages indicate the @@ -704,7 +708,7 @@ useful for constructing frame titles (*note Frame Titles::). - Function: emacs-pid This function returns the process ID of the Emacs process. - - Function: setprv privilege-name &optional setp getprv + - Function: setprv PRIVILEGE-NAME &optional SETP GETPRV This function sets or resets a VMS privilege. (It does not exist on Unix.) The first arg is the privilege name, as a string. The second argument, SETP, is `t' or `nil', indicating whether the @@ -727,7 +731,7 @@ User Identification usually right, but users often set this themselves when the default value is not right. - - Function: user-login-name &optional uid + - Function: user-login-name &optional UID If you don't specify UID, this function returns the name under which the user is logged in. If the environment variable `LOGNAME' is set, that value is used. Otherwise, if the environment variable @@ -751,7 +755,7 @@ User Identification variable. You can change the value of this variable to alter the result of the `user-full-name' function. - - Function: user-full-name &optional user + - Function: user-full-name &optional USER This function returns the full name of USER. If USER is `nil', it defaults to the user running this Emacs. In that case, the value of `user-full-name' variable, if non-`nil', will be used. @@ -772,7 +776,7 @@ User Identification return the same values that the variables hold. These variables allow you to "fake out" Emacs by telling the functions what to return. The variables are also useful for constructing frame titles (*note Frame -Titles::). +Titles::.). - Function: user-real-uid This function returns the real UID of the user. @@ -815,7 +819,7 @@ Time of Day This section explains how to determine the current time and the time zone. - - Function: current-time-string &optional time-value + - Function: current-time-string &optional TIME-VALUE This function returns the current time and date as a humanly-readable string. The format of the string is unvarying; the number of characters used for each part is always the same, so @@ -828,7 +832,7 @@ zone. instead of the current time. The argument should be a list whose first two elements are integers. Thus, you can use times obtained from `current-time' (see below) and from `file-attributes' (*note - File Attributes::). + File Attributes::.). (current-time-string) => "Wed Oct 14 22:21:05 1987" @@ -847,7 +851,7 @@ zone. as you get with the function `file-attributes'. *Note File Attributes::. - - Function: current-time-zone &optional time-value + - Function: current-time-zone &optional TIME-VALUE This function returns a list describing the time zone that the user is in. @@ -867,7 +871,7 @@ zone. instead of the current time. The argument should be a cons cell containing two integers, or a list whose first two elements are integers. Thus, you can use times obtained from `current-time' - (see above) and from `file-attributes' (*note File Attributes::). + (see above) and from `file-attributes' (*note File Attributes::.).  File: lispref.info, Node: Time Conversion, Next: Timers, Prev: Time of Day, Up: System Interface @@ -878,10 +882,10 @@ Time Conversion These functions convert time values (lists of two or three integers) to strings or to calendrical information. There is also a function to convert calendrical information to a time value. You can get time -values from the functions `current-time' (*note Time of Day::) and -`file-attributes' (*note File Attributes::). +values from the functions `current-time' (*note Time of Day::.) and +`file-attributes' (*note File Attributes::.). - - Function: format-time-string format-string &optional time + - Function: format-time-string FORMAT-STRING &optional TIME This function converts TIME to a string according to FORMAT-STRING. If TIME is omitted, it defaults to the current time. The argument FORMAT-STRING may contain `%'-sequences which @@ -990,7 +994,7 @@ values from the functions `current-time' (*note Time of Day::) and `%Z' This stands for the time zone abbreviation. - - Function: decode-time time + - Function: decode-time TIME This function converts a time value into calendrical information. The return value is a list of nine elements, as follows: @@ -1031,8 +1035,8 @@ values from the functions `current-time' (*note Time of Day::) and Note that Common Lisp has different meanings for DOW and ZONE. - - Function: encode-time seconds minutes hour day month year &optional - zone + - Function: encode-time SECONDS MINUTES HOUR DAY MONTH YEAR &optional + ZONE This function is the inverse of `decode-time'. It converts seven items of calendrical data into a time value. For the meanings of the arguments, see the table above under `decode-time'. @@ -1055,7 +1059,7 @@ Timers for Delayed Execution You can set up a timer to call a function at a specified future time. - - Function: add-timeout secs function object &optional resignal + - Function: add-timeout SECS FUNCTION OBJECT &optional RESIGNAL This function adds a timeout, to be signaled after the timeout period has elapsed. SECS is a number of seconds, expressed as an integer or a float. FUNCTION will be called after that many @@ -1087,7 +1091,7 @@ Timers for Delayed Execution (NOTE: In FSF Emacs, this function is called `run-at-time' and has different semantics.) - - Function: disable-timeout id + - Function: disable-timeout ID Cancel the requested action for ID, which should be a value previously returned by `add-timeout'. This cancels the effect of that call to `add-timeout'; the arrival of the specified time will @@ -1117,7 +1121,7 @@ File: lispref.info, Node: Input Modes, Next: Translating Input, Up: Terminal Input Modes ----------- - - Function: set-input-mode interrupt flow meta quit-char + - Function: set-input-mode INTERRUPT FLOW META QUIT-CHAR This function sets the mode for reading keyboard input. If INTERRUPT is non-null, then XEmacs uses input interrupts. If it is `nil', then it uses CBREAK mode. When XEmacs communicates @@ -1185,7 +1189,7 @@ other input events before they become part of key sequences. events. If `function-key-map' "binds" a key sequence K to a vector V, then - when K appears as a subsequence _anywhere_ in a key sequence, it + when K appears as a subsequence *anywhere* in a key sequence, it is replaced with the events in V. For example, VT100 terminals send ` O P' when the keypad PF1 @@ -1270,7 +1274,7 @@ File: lispref.info, Node: Recording Input, Prev: Translating Input, Up: Termi Recording Input --------------- - - Function: recent-keys &optional number + - Function: recent-keys &optional NUMBER This function returns a vector containing recent input events from the keyboard or mouse. By default, 100 events are recorded, which is how many `recent-keys' returns. @@ -1290,7 +1294,7 @@ Recording Input internally. This is also the maximum number of events `recent-keys' can return. By default, 100 events are stored. - - Function: set-recent-keys-ring-size size + - Function: set-recent-keys-ring-size SIZE This function changes the number of events stored by XEmacs and returned by `recent-keys'. @@ -1298,7 +1302,7 @@ Recording Input remember last 250 events and will make `recent-keys' return last 250 events by default. - - Command: open-dribble-file filename + - Command: open-dribble-file FILENAME This function opens a "dribble file" named FILENAME. When a dribble file is open, each input event from the keyboard or mouse (but not those from keyboard macros) is written in that file. A @@ -1314,5 +1318,5 @@ Recording Input (open-dribble-file "~/dribble") => nil - See also the `open-termscript' function (*note Terminal Output::). + See also the `open-termscript' function (*note Terminal Output::.). diff --git a/info/lispref.info-4 b/info/lispref.info-4 index 96b4bfd..4355c9f 100644 --- a/info/lispref.info-4 +++ b/info/lispref.info-4 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -445,10 +445,10 @@ with references to further information. The most general way to check the type of an object is to call the function `type-of'. Recall that each object belongs to one and only one primitive type; `type-of' tells you which one (*note Lisp Data -Types::). But `type-of' knows nothing about non-primitive types. In +Types::.). But `type-of' knows nothing about non-primitive types. In most cases, it is more convenient to use type predicates than `type-of'. - - Function: type-of object + - Function: type-of OBJECT This function returns a symbol naming the primitive type of OBJECT. The value is one of `bit-vector', `buffer', `char-table', `character', `charset', `coding-system', `cons', `color-instance', @@ -480,7 +480,7 @@ objects. Other functions test equality between objects of specific types, e.g., strings. For these predicates, see the appropriate chapter describing the data type. - - Function: eq object1 object2 + - Function: eq OBJECT1 OBJECT2 This function returns `t' if OBJECT1 and OBJECT2 are the same object, `nil' otherwise. The "same object" means that a change in one will be reflected by the same change in the other. @@ -530,12 +530,12 @@ describing the data type. => nil - - Function: old-eq obj1 obj2 + - Function: old-eq OBJ1 OBJ2 This function exists under XEmacs 20 and is exactly like `eq' except that it suffers from the char-int confoundance disease. In other words, it returns `t' if given a character and the equivalent integer, even though the objects are of different types! - You should _not_ ever call this function explicitly in your code. + You should *not* ever call this function explicitly in your code. However, be aware that all calls to `eq' in byte code compiled under version 19 map to `old-eq' in XEmacs 20. (Likewise for `old-equal', `old-memq', `old-member', `old-assq' and @@ -551,7 +551,7 @@ describing the data type. (eq ?A 65) => nil ; We are still healthy. - - Function: equal object1 object2 + - Function: equal OBJECT1 OBJECT2 This function returns `t' if OBJECT1 and OBJECT2 have equal components, `nil' otherwise. Whereas `eq' tests if its arguments are the same object, `equal' looks inside nonidentical arguments @@ -655,7 +655,7 @@ optional initial sign and optional final period. -0 ; The integer 0. To understand how various functions work on integers, especially the -bitwise operators (*note Bitwise Operations::), it is often helpful to +bitwise operators (*note Bitwise Operations::.), it is often helpful to view the numbers in their binary form. In 28-bit binary, the decimal integer 5 looks like this: @@ -727,7 +727,7 @@ NaNs or infinities; perhaps we should create a syntax in the future. You can use `logb' to extract the binary exponent of a floating point number (or estimate the logarithm of an integer): - - Function: logb number + - Function: logb NUMBER This function returns the binary exponent of NUMBER. More precisely, the value is the logarithm of NUMBER base 2, rounded down to an integer. @@ -746,27 +746,27 @@ predicate requires a number as its argument. See also `integer-or-marker-p', `integer-char-or-marker-p', `number-or-marker-p' and `number-char-or-marker-p', in *Note Predicates on Markers::. - - Function: floatp object + - Function: floatp OBJECT This predicate tests whether its argument is a floating point number and returns `t' if so, `nil' otherwise. `floatp' does not exist in Emacs versions 18 and earlier. - - Function: integerp object + - Function: integerp OBJECT This predicate tests whether its argument is an integer, and returns `t' if so, `nil' otherwise. - - Function: numberp object + - Function: numberp OBJECT This predicate tests whether its argument is a number (either integer or floating point), and returns `t' if so, `nil' otherwise. - - Function: natnump object + - Function: natnump OBJECT The `natnump' predicate (whose name comes from the phrase "natural-number-p") tests to see whether its argument is a nonnegative integer, and returns `t' if so, `nil' otherwise. 0 is considered non-negative. - - Function: zerop number + - Function: zerop NUMBER This predicate tests whether its argument is zero, and returns `t' if so, `nil' otherwise. The argument must be a number. @@ -781,7 +781,7 @@ Comparison of Numbers To test numbers for numerical equality, you should normally use `=', not `eq'. There can be many distinct floating point number objects with the same numeric value. If you use `eq' to compare them, then you -test whether two values are the same _object_. By contrast, `=' +test whether two values are the same *object*. By contrast, `=' compares only the numeric values of the objects. At present, each integer value has a unique Lisp object in XEmacs @@ -816,7 +816,7 @@ Here's a function to do this: characters and markers as arguments, and treat them as their number equivalents. - - Function: = number &rest more-numbers + - Function: = NUMBER &rest MORE-NUMBERS This function returns `t' if all of its arguments are numerically equal, `nil' otherwise. @@ -829,7 +829,7 @@ equivalents. (= 5 5 6) => nil - - Function: /= number &rest more-numbers + - Function: /= NUMBER &rest MORE-NUMBERS This function returns `t' if no two arguments are numerically equal, `nil' otherwise. @@ -840,7 +840,7 @@ equivalents. (/= 5 6 1) => t - - Function: < number &rest more-numbers + - Function: < NUMBER &rest MORE-NUMBERS This function returns `t' if the sequence of its arguments is monotonically increasing, `nil' otherwise. @@ -851,7 +851,7 @@ equivalents. (< 5 6 7) => t - - Function: <= number &rest more-numbers + - Function: <= NUMBER &rest MORE-NUMBERS This function returns `t' if the sequence of its arguments is monotonically nondecreasing, `nil' otherwise. @@ -862,15 +862,15 @@ equivalents. (<= 5 6 5) => nil - - Function: > number &rest more-numbers + - Function: > NUMBER &rest MORE-NUMBERS This function returns `t' if the sequence of its arguments is monotonically decreasing, `nil' otherwise. - - Function: >= number &rest more-numbers + - Function: >= NUMBER &rest MORE-NUMBERS This function returns `t' if the sequence of its arguments is monotonically nonincreasing, `nil' otherwise. - - Function: max number &rest more-numbers + - Function: max NUMBER &rest MORE-NUMBERS This function returns the largest of its arguments. (max 20) @@ -880,7 +880,7 @@ equivalents. (max 1 3 2.5) => 3 - - Function: min number &rest more-numbers + - Function: min NUMBER &rest MORE-NUMBERS This function returns the smallest of its arguments. (min -4 1) @@ -894,7 +894,7 @@ Numeric Conversions To convert an integer to floating point, use the function `float'. - - Function: float number + - Function: float NUMBER This returns NUMBER converted to floating point. If NUMBER is already a floating point number, `float' returns it unchanged. @@ -902,11 +902,11 @@ Numeric Conversions integers; they differ in how they round. These functions accept integer arguments also, and return such arguments unchanged. - - Function: truncate number + - Function: truncate NUMBER This returns NUMBER, converted to an integer by rounding towards zero. - - Function: floor number &optional divisor + - Function: floor NUMBER &optional DIVISOR This returns NUMBER, converted to an integer by rounding downward (towards negative infinity). @@ -914,11 +914,11 @@ integer arguments also, and return such arguments unchanged. floor is taken; this is the division operation that corresponds to `mod'. An `arith-error' results if DIVISOR is 0. - - Function: ceiling number + - Function: ceiling NUMBER This returns NUMBER, converted to an integer by rounding upward (towards positive infinity). - - Function: round number + - Function: round NUMBER This returns NUMBER, converted to an integer by rounding towards the nearest integer. Rounding a value equidistant between two integers may choose the integer closer to zero, or it may prefer @@ -943,7 +943,7 @@ any argument is floating. not check for overflow. Thus `(1+ 134217727)' may evaluate to -134217728, depending on your hardware. - - Function: 1+ number-or-marker + - Function: 1+ NUMBER-OR-MARKER This function returns NUMBER-OR-MARKER plus 1. For example, (setq foo 4) @@ -968,13 +968,13 @@ not check for overflow. Thus `(1+ 134217727)' may evaluate to more convenient and natural way to increment a variable is `(incf foo)'. - - Function: 1- number-or-marker + - Function: 1- NUMBER-OR-MARKER This function returns NUMBER-OR-MARKER minus 1. - - Function: abs number + - Function: abs NUMBER This returns the absolute value of NUMBER. - - Function: + &rest numbers-or-markers + - Function: + &rest NUMBERS-OR-MARKERS This function adds its arguments together. When given no arguments, `+' returns 0. @@ -985,7 +985,7 @@ not check for overflow. Thus `(1+ 134217727)' may evaluate to (+ 1 2 3 4) => 10 - - Function: - &optional number-or-marker &rest other-numbers-or-markers + - Function: - &optional NUMBER-OR-MARKER &rest OTHER-NUMBERS-OR-MARKERS The `-' function serves two purposes: negation and subtraction. When `-' has a single argument, the value is the negative of the argument. When there are multiple arguments, `-' subtracts each of @@ -999,7 +999,7 @@ not check for overflow. Thus `(1+ 134217727)' may evaluate to (-) => 0 - - Function: * &rest numbers-or-markers + - Function: * &rest NUMBERS-OR-MARKERS This function multiplies its arguments together, and returns the product. When given no arguments, `*' returns 1. @@ -1010,7 +1010,7 @@ not check for overflow. Thus `(1+ 134217727)' may evaluate to (* 1 2 3 4) => 24 - - Function: / dividend divisor &rest divisors + - Function: / DIVIDEND DIVISOR &rest DIVISORS This function divides DIVIDEND by DIVISOR and returns the quotient. If there are additional arguments DIVISORS, then it divides DIVIDEND by each divisor in turn. Each argument may be a @@ -1039,7 +1039,7 @@ not check for overflow. Thus `(1+ 134217727)' may evaluate to The result of `(/ -17 6)' could in principle be -3 on some machines. - - Function: % dividend divisor + - Function: % DIVIDEND DIVISOR This function returns the integer remainder after division of DIVIDEND by DIVISOR. The arguments must be integers or markers. @@ -1065,7 +1065,7 @@ not check for overflow. Thus `(1+ 134217727)' may evaluate to always equals DIVIDEND. - - Function: mod dividend divisor + - Function: mod DIVIDEND DIVISOR This function returns the value of DIVIDEND modulo DIVISOR; in other words, the remainder after division of DIVIDEND by DIVISOR, but with the same sign as DIVISOR. The arguments must be numbers @@ -1110,19 +1110,19 @@ is a nearby integer. `ffloor' returns the nearest integer below; `fceiling', the nearest integer above; `ftruncate', the nearest integer in the direction towards zero; `fround', the nearest integer. - - Function: ffloor float + - Function: ffloor FLOAT This function rounds FLOAT to the next lower integral value, and returns that value as a floating point number. - - Function: fceiling float + - Function: fceiling FLOAT This function rounds FLOAT to the next higher integral value, and returns that value as a floating point number. - - Function: ftruncate float + - Function: ftruncate FLOAT This function rounds FLOAT towards zero to an integral value, and returns that value as a floating point number. - - Function: fround float + - Function: fround FLOAT This function rounds FLOAT to the nearest integral value, and returns that value as a floating point number. @@ -1140,7 +1140,7 @@ reproducing the same pattern "moved over". The bitwise operations in XEmacs Lisp apply only to integers. - - Function: lsh integer1 count + - Function: lsh INTEGER1 COUNT `lsh', which is an abbreviation for "logical shift", shifts the bits in INTEGER1 to the left COUNT places, or to the right if COUNT is negative, bringing zeros into the vacated bits. If COUNT @@ -1208,7 +1208,7 @@ reproducing the same pattern "moved over". ;; Decimal -2 1111 1111 1111 1111 1111 1111 1110 - - Function: ash integer1 count + - Function: ash INTEGER1 COUNT `ash' ("arithmetic shift") shifts the bits in INTEGER1 to the left COUNT places, or to the right if COUNT is negative. @@ -1237,26 +1237,31 @@ reproducing the same pattern "moved over". Here are other examples: - ; 28-bit binary values + ; 28-bit binary values (lsh 5 2) ; 5 = 0000 0000 0000 0000 0000 0000 0101 => 20 ; = 0000 0000 0000 0000 0000 0001 0100 + (ash 5 2) => 20 (lsh -5 2) ; -5 = 1111 1111 1111 1111 1111 1111 1011 => -20 ; = 1111 1111 1111 1111 1111 1110 1100 (ash -5 2) => -20 + (lsh 5 -2) ; 5 = 0000 0000 0000 0000 0000 0000 0101 => 1 ; = 0000 0000 0000 0000 0000 0000 0001 + (ash 5 -2) => 1 + (lsh -5 -2) ; -5 = 1111 1111 1111 1111 1111 1111 1011 => 4194302 ; = 0011 1111 1111 1111 1111 1111 1110 + (ash -5 -2) ; -5 = 1111 1111 1111 1111 1111 1111 1011 => -2 ; = 1111 1111 1111 1111 1111 1111 1110 - - Function: logand &rest ints-or-markers + - Function: logand &rest INTS-OR-MARKERS This function returns the "logical and" of the arguments: the Nth bit is set in the result if, and only if, the Nth bit is set in all the arguments. ("Set" means that the value of the bit is 1 @@ -1280,57 +1285,57 @@ reproducing the same pattern "moved over". representation consists entirely of ones. If `logand' is passed just one argument, it returns that argument. - ; 28-bit binary values + ; 28-bit binary values (logand 14 13) ; 14 = 0000 0000 0000 0000 0000 0000 1110 ; 13 = 0000 0000 0000 0000 0000 0000 1101 => 12 ; 12 = 0000 0000 0000 0000 0000 0000 1100 - + (logand 14 13 4) ; 14 = 0000 0000 0000 0000 0000 0000 1110 ; 13 = 0000 0000 0000 0000 0000 0000 1101 ; 4 = 0000 0000 0000 0000 0000 0000 0100 => 4 ; 4 = 0000 0000 0000 0000 0000 0000 0100 - + (logand) => -1 ; -1 = 1111 1111 1111 1111 1111 1111 1111 - - Function: logior &rest ints-or-markers + - Function: logior &rest INTS-OR-MARKERS This function returns the "inclusive or" of its arguments: the Nth bit is set in the result if, and only if, the Nth bit is set in at least one of the arguments. If there are no arguments, the result is zero, which is an identity element for this operation. If `logior' is passed just one argument, it returns that argument. - ; 28-bit binary values + ; 28-bit binary values (logior 12 5) ; 12 = 0000 0000 0000 0000 0000 0000 1100 ; 5 = 0000 0000 0000 0000 0000 0000 0101 => 13 ; 13 = 0000 0000 0000 0000 0000 0000 1101 - + (logior 12 5 7) ; 12 = 0000 0000 0000 0000 0000 0000 1100 ; 5 = 0000 0000 0000 0000 0000 0000 0101 ; 7 = 0000 0000 0000 0000 0000 0000 0111 => 15 ; 15 = 0000 0000 0000 0000 0000 0000 1111 - - Function: logxor &rest ints-or-markers + - Function: logxor &rest INTS-OR-MARKERS This function returns the "exclusive or" of its arguments: the Nth bit is set in the result if, and only if, the Nth bit is set in an odd number of the arguments. If there are no arguments, the result is 0, which is an identity element for this operation. If `logxor' is passed just one argument, it returns that argument. - ; 28-bit binary values + ; 28-bit binary values (logxor 12 5) ; 12 = 0000 0000 0000 0000 0000 0000 1100 ; 5 = 0000 0000 0000 0000 0000 0000 0101 => 9 ; 9 = 0000 0000 0000 0000 0000 0000 1001 - + (logxor 12 5 7) ; 12 = 0000 0000 0000 0000 0000 0000 1100 ; 5 = 0000 0000 0000 0000 0000 0000 0101 ; 7 = 0000 0000 0000 0000 0000 0000 0111 => 14 ; 14 = 0000 0000 0000 0000 0000 0000 1110 - - Function: lognot integer + - Function: lognot INTEGER This function returns the logical complement of its argument: the Nth bit is one in the result if, and only if, the Nth bit is zero in INTEGER, and vice-versa. @@ -1351,61 +1356,61 @@ Standard Mathematical Functions supported (which is the normal state of affairs). They allow integers as well as floating point numbers as arguments. - - Function: sin arg - - Function: cos arg - - Function: tan arg + - Function: sin ARG + - Function: cos ARG + - Function: tan ARG These are the ordinary trigonometric functions, with argument measured in radians. - - Function: asin arg + - Function: asin ARG The value of `(asin ARG)' is a number between -pi/2 and pi/2 (inclusive) whose sine is ARG; if, however, ARG is out of range (outside [-1, 1]), then the result is a NaN. - - Function: acos arg + - Function: acos ARG The value of `(acos ARG)' is a number between 0 and pi (inclusive) whose cosine is ARG; if, however, ARG is out of range (outside [-1, 1]), then the result is a NaN. - - Function: atan arg + - Function: atan ARG The value of `(atan ARG)' is a number between -pi/2 and pi/2 (exclusive) whose tangent is ARG. - - Function: sinh arg - - Function: cosh arg - - Function: tanh arg + - Function: sinh ARG + - Function: cosh ARG + - Function: tanh ARG These are the ordinary hyperbolic trigonometric functions. - - Function: asinh arg - - Function: acosh arg - - Function: atanh arg + - Function: asinh ARG + - Function: acosh ARG + - Function: atanh ARG These are the inverse hyperbolic trigonometric functions. - - Function: exp arg + - Function: exp ARG This is the exponential function; it returns e to the power ARG. e is a fundamental mathematical constant also called the base of natural logarithms. - - Function: log arg &optional base + - Function: log ARG &optional BASE This function returns the logarithm of ARG, with base BASE. If you don't specify BASE, the base E is used. If ARG is negative, the result is a NaN. - - Function: log10 arg + - Function: log10 ARG This function returns the logarithm of ARG, with base 10. If ARG is negative, the result is a NaN. `(log10 X)' == `(log X 10)', at least approximately. - - Function: expt x y + - Function: expt X Y This function returns X raised to power Y. If both arguments are integers and Y is positive, the result is an integer; in this case, it is truncated to fit the range of possible integer values. - - Function: sqrt arg + - Function: sqrt ARG This returns the square root of ARG. If ARG is negative, the value is a NaN. - - Function: cube-root arg + - Function: cube-root ARG This returns the cube root of ARG.  @@ -1434,7 +1439,7 @@ debugging. t)'. This chooses a new seed based on the current time of day and on XEmacs's process ID number. - - Function: random &optional limit + - Function: random &optional LIMIT This function returns a pseudo-random integer. Repeated calls return a series of pseudo-random integers. diff --git a/info/lispref.info-40 b/info/lispref.info-40 index 8eac218..6a878ae 100644 --- a/info/lispref.info-40 +++ b/info/lispref.info-40 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -59,7 +59,7 @@ Terminal Output track of output sent to the terminal. The function `device-baud-rate' tells you what XEmacs thinks is the output speed of the terminal. - - Function: device-baud-rate &optional device + - Function: device-baud-rate &optional DEVICE This function's value is the output speed of the terminal associated with DEVICE, as far as XEmacs knows. DEVICE defaults to the selected device (usually the only device) if omitted. @@ -82,13 +82,13 @@ the proper value, but others do not. If XEmacs has the wrong value, it makes decisions that are less than optimal. To fix the problem, use `set-device-baud-rate'. - - Function: set-device-baud-rate &optional device + - Function: set-device-baud-rate &optional DEVICE This function sets the output speed of DEVICE. See `device-baud-rate'. DEVICE defaults to the selected device (usually the only device) if omitted. - - Function: send-string-to-terminal char-or-string &optional stdout-p - device + - Function: send-string-to-terminal CHAR-OR-STRING &optional STDOUT-P + DEVICE This function sends CHAR-OR-STRING to the terminal without alteration. Control characters in CHAR-OR-STRING have terminal-dependent effects. @@ -107,7 +107,7 @@ makes decisions that are less than optimal. To fix the problem, use (send-string-to-terminal "\eF4\^U\^F") => nil - - Command: open-termscript filename + - Command: open-termscript FILENAME This function is used to open a "termscript file" that will record all the characters sent by XEmacs to the terminal. (If there are multiple tty or stream devices, all characters sent to all such @@ -173,12 +173,12 @@ it: call the function `enable-flow-control'. This function enables use of `C-s' and `C-q' for output flow control, and provides the characters `C-\' and `C-^' as aliases for them using `keyboard-translate-table' (*note Translating - Input::). + Input::.). You can use the function `enable-flow-control-on' in your `.emacs' file to enable flow control automatically on certain terminal types. - - Function: enable-flow-control-on &rest termtypes + - Function: enable-flow-control-on &rest TERMTYPES This function enables flow control, and the aliases `C-\' and `C-^', if the terminal type is one of TERMTYPES. For example: @@ -267,7 +267,7 @@ distinguished by "selection types", represented in XEmacs by symbols. X clients including XEmacs can read or set the selection for any given type. - - Function: x-own-selection data &optional type + - Function: x-own-selection DATA &optional TYPE This function sets a "selection" in the X server. It takes two arguments: a value, DATA, and the selection type TYPE to assign it to. DATA may be a string, a cons of two markers, or an extent. @@ -286,7 +286,7 @@ type. This function accesses selections set up by XEmacs or by other X clients. It returns the value of the current primary selection. - - Function: x-disown-selection &optional secondary-p + - Function: x-disown-selection &optional SECONDARY-P Assuming we own the selection, this function disowns it. If SECONDARY-P is non-`nil', the secondary selection instead of the primary selection is discarded. @@ -296,11 +296,11 @@ store text or other data being moved between applications. Cut buffers are considered obsolete, but XEmacs supports them for the sake of X clients that still use them. - - Function: x-get-cutbuffer &optional n + - Function: x-get-cutbuffer &optional N This function returns the contents of cut buffer number N. (This function is called `x-get-cut-buffer' in FSF Emacs.) - - Function: x-store-cutbuffer string + - Function: x-store-cutbuffer STRING This function stores STRING into the first cut buffer (cut buffer 0), moving the other values down through the series of cut buffers, kill-ring-style. (This function is called `x-set-cut-buffer' in FSF @@ -331,8 +331,8 @@ Resources This function return the default X device for resourcing. This is the first-created X device that still exists. - - Function: x-get-resource name class type &optional locale device - noerror + - Function: x-get-resource NAME CLASS TYPE &optional LOCALE DEVICE + NOERROR This function retrieves a resource value from the X resource manager. @@ -425,7 +425,7 @@ Resources `boolean', then the returned value is the list `(t)' for true, `(nil)' for false, and is `nil' to mean "unspecified". - - Function: x-put-resource resource-line &optional device + - Function: x-put-resource RESOURCE-LINE &optional DEVICE This function adds a resource to the resource database for DEVICE. RESOURCE-LINE specifies the resource to add and should be a standard resource specification. @@ -455,17 +455,17 @@ get information about the capabilities and origin of the X server corresponding to a particular device. The device argument is generally optional and defaults to the selected device. - - Function: x-server-version &optional device + - Function: x-server-version &optional DEVICE This function returns the list of version numbers of the X server DEVICE is on. The returned value is a list of three integers: the major and minor version numbers of the X protocol in use, and the vendor-specific release number. - - Function: x-server-vendor &optional device + - Function: x-server-vendor &optional DEVICE This function returns the vendor supporting the X server DEVICE is on. - - Function: x-display-visual-class &optional device + - Function: x-display-visual-class &optional DEVICE This function returns the visual class of the display DEVICE is on. The value is one of the symbols `static-gray', `gray-scale', `static-color', `pseudo-color', `true-color', and `direct-color'. @@ -478,7 +478,7 @@ File: lispref.info, Node: Grabs, Prev: Server Data, Up: X Server Restricting Access to the Server by Other Apps ---------------------------------------------- - - Function: x-grab-keyboard &optional device + - Function: x-grab-keyboard &optional DEVICE This function grabs the keyboard on the given device (defaulting to the selected one). So long as the keyboard is grabbed, all keyboard events will be delivered to XEmacs - it is not possible @@ -486,10 +486,10 @@ Restricting Access to the Server by Other Apps with `x-ungrab-keyboard' (use an `unwind-protect'). Returns `t' if the grab was successful; `nil' otherwise. - - Function: x-ungrab-keyboard &optional device + - Function: x-ungrab-keyboard &optional DEVICE This function releases a keyboard grab made with `x-grab-keyboard'. - - Function: x-grab-pointer &optional device cursor ignore-keyboard + - Function: x-grab-pointer &optional DEVICE CURSOR IGNORE-KEYBOARD This function grabs the pointer and restricts it to its current window. If optional DEVICE argument is `nil', the selected device will be used. If optional CURSOR argument is non-`nil', change @@ -499,7 +499,7 @@ Restricting Access to the Server by Other Apps all keyboard events during the grab. Returns `t' if the grab is successful, `nil' otherwise. - - Function: x-ungrab-pointer &optional device + - Function: x-ungrab-pointer &optional DEVICE This function releases a pointer grab made with `x-grab-pointer'. If optional first arg DEVICE is `nil' the selected device is used. If it is `t' the pointer will be released on all X devices. @@ -521,13 +521,13 @@ Miscellaneous X Functions and Variables This variable holds the search path used by `read-color' to find `rgb.txt'. - - Function: x-valid-keysym-name-p keysym + - Function: x-valid-keysym-name-p KEYSYM This function returns true if KEYSYM names a keysym that the X library knows about. Valid keysyms are listed in the files `/usr/include/X11/keysymdef.h' and in `/usr/lib/X11/XKeysymDB', or whatever the equivalents are on your system. - - Function: x-window-id &optional frame + - Function: x-window-id &optional FRAME This function returns the ID of the X11 window. This gives us a chance to manipulate the Emacs window from within a different program. Since the ID is an unsigned long, we return it as a @@ -538,7 +538,7 @@ Miscellaneous X Functions and Variables ignored. Beware: allowing XEmacs to process SendEvents opens a big security hole. - - Function: x-debug-mode arg &optional device + - Function: x-debug-mode ARG &optional DEVICE With a true arg, make the connection to the X server synchronous. With false, make it asynchronous. Synchronous connections are much slower, but are useful for debugging. (If you get X errors, @@ -649,7 +649,7 @@ File: lispref.info, Node: Elisp Interface for Sending Messages, Prev: Example Elisp Interface for Sending Messages ------------------------------------ - - Function: make-tooltalk-message attributes + - Function: make-tooltalk-message ATTRIBUTES Create a ToolTalk message and initialize its attributes. The value of ATTRIBUTES must be a list of alternating keyword/values, where keywords are symbols that name valid message attributes. @@ -682,20 +682,20 @@ Elisp Interface for Sending Messages the `ToolTalk Programmer's Guide'. - - Function: send-tooltalk-message msg + - Function: send-tooltalk-message MSG Send the message on its way. Once the message has been sent it's almost always a good idea to get rid of it with `destroy-tooltalk-message'. - - Function: return-tooltalk-message msg &optional mode + - Function: return-tooltalk-message MSG &optional MODE Send a reply to this message. The second argument can be `reply', `reject' or `fail'; the default is `reply'. Before sending a reply, all message arguments whose mode is `TT_INOUT' or `TT_OUT' should have been filled in - see `set-tooltalk-message-attribute'. - - Function: get-tooltalk-message-attribute msg attribute &optional argn + - Function: get-tooltalk-message-attribute MSG ATTRIBUTE &optional ARGN Returns the indicated ToolTalk message attribute. Attributes are identified by symbols with the same name (underscores and all) as the suffix of the ToolTalk `tt_message_' function that @@ -731,8 +731,8 @@ Elisp Interface for Sending Messages `arg_bval' like a string is fine. - - Function: set-tooltalk-message-attribute value msg attribute - &optional argn + - Function: set-tooltalk-message-attribute VALUE MSG ATTRIBUTE + &optional ARGN Initialize one ToolTalk message attribute. Attribute names and values are the same as for @@ -753,7 +753,7 @@ Elisp Interface for Sending Messages with `add-tooltalk-message-arg'. - - Function: add-tooltalk-message-arg msg mode type &optional value + - Function: add-tooltalk-message-arg MSG MODE TYPE &optional VALUE Append one new argument to the message. MODE must be one of `TT_IN', `TT_INOUT', or `TT_OUT', TYPE must be a string, and VALUE can be a string or an integer. ToolTalk doesn't define any @@ -774,7 +774,7 @@ Elisp Interface for Sending Messages initialize a message. - - Function: destroy-tooltalk-message msg + - Function: destroy-tooltalk-message MSG Apply `tt_message_destroy' to the message. It's not necessary to destroy messages after they've been processed by a message or pattern callback, the Lisp/ToolTalk callback machinery does this @@ -820,7 +820,7 @@ File: lispref.info, Node: Elisp Interface for Receiving Messages, Prev: Exampl Elisp Interface for Receiving Messages -------------------------------------- - - Function: make-tooltalk-pattern attributes + - Function: make-tooltalk-pattern ATTRIBUTES Create a ToolTalk pattern and initialize its attributes. The value of attributes must be a list of alternating keyword/values, where keywords are symbols that name valid pattern attributes or @@ -857,13 +857,13 @@ Elisp Interface for Receiving Messages the `ToolTalk Programmer's Guide'. - - Function: register-tooltalk-pattern pat + - Function: register-tooltalk-pattern PAT XEmacs will begin receiving messages that match this pattern. - - Function: unregister-tooltalk-pattern pat + - Function: unregister-tooltalk-pattern PAT XEmacs will stop receiving messages that match this pattern. - - Function: add-tooltalk-pattern-attribute value pat indicator + - Function: add-tooltalk-pattern-attribute VALUE PAT INDICATOR Add one value to the indicated pattern attribute. The names of attributes are the same as the ToolTalk accessors used to set them less the `tooltalk_pattern_' prefix and the `_add' suffix. For @@ -877,7 +877,7 @@ Elisp Interface for Receiving Messages argument. It will be called each time the pattern matches an incoming message. - - Function: add-tooltalk-pattern-arg pat mode type value + - Function: add-tooltalk-pattern-arg PAT MODE TYPE VALUE Add one fully-specified argument to a ToolTalk pattern. MODE must be one of `TT_IN', `TT_INOUT', or `TT_OUT'. TYPE must be a string. VALUE can be an integer, string or `nil'. If VALUE is an @@ -890,11 +890,11 @@ Elisp Interface for Receiving Messages Create a new ToolTalk pattern and initialize its session attribute to be the default session. - - Function: destroy-tooltalk-pattern pat + - Function: destroy-tooltalk-pattern PAT Apply `tt_pattern_destroy' to the pattern. This effectively unregisters the pattern. - - Function: describe-tooltalk-message msg &optional stream + - Function: describe-tooltalk-message MSG &optional STREAM Print the message's attributes and arguments to STREAM. This is often useful for debugging. @@ -924,12 +924,12 @@ Building XEmacs with LDAP support linking to an external LDAP client library. As of 21.2, XEmacs has been successfully built and tested with - * OpenLDAP 1.0.3 () + * OpenLDAP 1.0.3 (`http://www.openldap.org/') * University of Michigan's LDAP 3.3 - () + (`http://www.umich.edu/~dirsvcs/ldap/') - * LDAP SDK 1.0 from Netscape Corp. () + * LDAP SDK 1.0 from Netscape Corp. (`http://developer.netscape.com/') Other libraries conforming to RFC 1823 will probably work also but may require some minor tweaking at C level. @@ -980,7 +980,7 @@ LDAP Variables - Variable: ldap-host-parameters-alist An alist of per host options for LDAP transactions. The list - elements look like `(HOST PROP1 VAL1 PROP2 VAL2 ...)' HOST is the + elements look like `(HOST PROP1 VAL1 PROP2 VAL2 ...)' HOST is the name of an LDAP server. A TCP port number can be appended to that name using a colon as a separator. PROPN and VALN are property/value pairs describing parameters for the server. Valid @@ -1043,15 +1043,16 @@ LDAP searches. Further support is planned in the future. perform LDAP searches. It opens a connection to a host, performs the query and cleanly closes the connection thus insulating the user from all the details of the low-level interface such as LDAP Lisp objects -*note The Low-Level LDAP API:: +*note The Low-Level LDAP API::. - - Function: ldap-search filter &optional host attributes attrsonly + - Function: ldap-search FILTER &optional HOST ATTRIBUTES ATTRSONLY Perform an LDAP search. FILTER is the search filter *note Syntax - of Search Filters:: HOST is the LDAP host on which to perform the - search ATTRIBUTES is the specific attributes to retrieve, `nil' - means retrieve all ATTRSONLY if non-`nil' retrieves the attributes - only without their associated values. Additional search - parameters can be specified through `ldap-host-parameters-alist'. + of Search Filters::. HOST is the LDAP host on which to perform + the search ATTRIBUTES is the specific attributes to retrieve, + `nil' means retrieve all ATTRSONLY if non-`nil' retrieves the + attributes only without their associated values. Additional + search parameters can be specified through + `ldap-host-parameters-alist'.  File: lispref.info, Node: The Low-Level LDAP API, Prev: The High-Level LDAP API, Up: XEmacs LDAP API @@ -1073,13 +1074,13 @@ The LDAP Lisp Object An internal built-in `ldap' lisp object represents a LDAP connection. - - Function: ldapp object + - Function: ldapp OBJECT This function returns non-`nil' if OBJECT is a `ldap' object. - - Function: ldap-host ldap + - Function: ldap-host LDAP Return the server host of the connection represented by LDAP - - Function: ldap-live-p ldap + - Function: ldap-live-p LDAP Return non-`nil' if LDAP is an active LDAP connection  @@ -1088,7 +1089,7 @@ File: lispref.info, Node: Opening and Closing a LDAP Connection, Next: Searchi Opening and Closing a LDAP Connection ..................................... - - Function: ldap-open host &optional plist + - Function: ldap-open HOST &optional PLIST Open a LDAP connection to HOST. PLIST is a property list containing additional parameters for the connection. Valid keys in that list are: @@ -1132,7 +1133,7 @@ Opening and Closing a LDAP Connection The maximum number of matches to return for searches performed on this connection. - - Function: ldap-close ldap + - Function: ldap-close LDAP Close the connection represented by LDAP  @@ -1147,11 +1148,11 @@ thus requiring a preliminary call to `ldap-open'. Multiple searches can be made on the same connection, then the session must be closed with `ldap-close'. - - Function: ldap-search-internal ldap filter base scope attrs attrsonly + - Function: ldap-search-internal LDAP FILTER BASE SCOPE ATTRS ATTRSONLY Perform a search on an open connection LDAP created with `ldap-open'. FILTER is a filter string for the search *note - Syntax of Search Filters:: BASE is the distinguished name at which - to start the search. SCOPE is one of the symbols `base', + Syntax of Search Filters::. BASE is the distinguished name at + which to start the search. SCOPE is one of the symbols `base', `onelevel' or `subtree' indicating the scope of the search limited to a base object, to a single level or to the whole subtree. The default is `subtree'. `attrs' is a list of strings indicating diff --git a/info/lispref.info-41 b/info/lispref.info-41 index 971cd08..975911e 100644 --- a/info/lispref.info-41 +++ b/info/lispref.info-41 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -55,17 +55,17 @@ File: lispref.info, Node: Level 3 Primitives, Next: Dynamic Messaging, Prev: Level 3 Primitives ------------------ - - Function: gettext string + - Function: gettext STRING This function looks up STRING in the default message domain and returns its translation. If `I18N3' was not enabled when XEmacs was compiled, it just returns STRING. - - Function: dgettext domain string + - Function: dgettext DOMAIN STRING This function looks up STRING in the specified message domain and returns its translation. If `I18N3' was not enabled when XEmacs was compiled, it just returns STRING. - - Function: bind-text-domain domain pathname + - Function: bind-text-domain DOMAIN PATHNAME This function associates a pathname with a message domain. Here's how the path to message file is constructed under SunOS 5.x: @@ -74,7 +74,7 @@ Level 3 Primitives If `I18N3' was not enabled when XEmacs was compiled, this function does nothing. - - Special Form: domain string + - Special Form: domain STRING This function specifies the text domain used for translating documentation strings and interactive prompts of a function. For example, write: @@ -85,7 +85,7 @@ Level 3 Primitives The "call" to `domain' is actually a declaration rather than a function; when actually called, `domain' just returns `nil'. - - Function: domain-of function + - Function: domain-of FUNCTION This function returns the text domain of FUNCTION; it returns `nil' if it is the default domain. If `I18N3' was not enabled when XEmacs was compiled, it always returns `nil'. @@ -133,11 +133,11 @@ function body, before the `interactive' form. For variables and constants which have documentation strings, specify the domain after the documentation. - - Special Form: defvar symbol [value [doc-string [domain]]] + - Special Form: defvar SYMBOL [VALUE [DOC-STRING [DOMAIN]]] Example: (defvar weight 250 "Weight of gorilla, in pounds." "emacs-gorilla") - - Special Form: defconst symbol [value [doc-string [domain]]] + - Special Form: defconst SYMBOL [VALUE [DOC-STRING [DOMAIN]]] Example: (defconst limbs 4 "Number of limbs" "emacs-gorilla") @@ -146,8 +146,8 @@ to have a domain specification, because their documentation strings are extracted into the main message base. However, for autoloaded functions which are specified in a separate package, use following syntax: - - Function: autoload symbol filename &optional docstring interactive - macro domain + - Function: autoload SYMBOL FILENAME &optional DOCSTRING INTERACTIVE + MACRO DOMAIN Example: (autoload 'explore "jungle" "Explore the jungle." nil nil "emacs-gorilla") @@ -269,7 +269,7 @@ printing characters are considered). JISX0208, i.e. Japanese Kanji, has thousands of characters, and is of dimension two - every character is indexed by two position codes, each in the range 33 through 126. (Note that the choice of the range here is somewhat arbitrary. -Although a character set such as JISX0208 defines an _ordering_ of all +Although a character set such as JISX0208 defines an *ordering* of all its characters, it does not define the actual mapping between numbers and characters. You could just as easily index the characters in JISX0208 using numbers in the range 0 through 93, 1 through 94, 2 @@ -359,7 +359,7 @@ Charsets character set as well as an ordering of those characters. Charsets are permanent objects and are named using symbols, like faces. - - Function: charsetp object + - Function: charsetp OBJECT This function returns non-`nil' if OBJECT is a charset. * Menu: @@ -474,14 +474,14 @@ File: lispref.info, Node: Basic Charset Functions, Next: Charset Property Func Basic Charset Functions ----------------------- - - Function: find-charset charset-or-name + - Function: find-charset CHARSET-OR-NAME This function retrieves the charset of the given name. If CHARSET-OR-NAME is a charset object, it is simply returned. Otherwise, CHARSET-OR-NAME should be a symbol. If there is no such charset, `nil' is returned. Otherwise the associated charset object is returned. - - Function: get-charset name + - Function: get-charset NAME This function retrieves the charset of the given name. Same as `find-charset' except an error is signalled if there is no such charset instead of returning `nil'. @@ -489,7 +489,7 @@ Basic Charset Functions - Function: charset-list This function returns a list of the names of all defined charsets. - - Function: make-charset name doc-string props + - Function: make-charset NAME DOC-STRING PROPS This function defines a new character set. This function is for use with Mule support. NAME is a symbol, the name by which the character set is normally referred. DOC-STRING is a string @@ -499,19 +499,19 @@ Basic Charset Functions `chars', `final', `graphic', `direction', and `ccl-program', as previously described. - - Function: make-reverse-direction-charset charset new-name + - Function: make-reverse-direction-charset CHARSET NEW-NAME This function makes a charset equivalent to CHARSET but which goes in the opposite direction. NEW-NAME is the name of the new charset. The new charset is returned. - - Function: charset-from-attributes dimension chars final &optional - direction + - Function: charset-from-attributes DIMENSION CHARS FINAL &optional + DIRECTION This function returns a charset with the given DIMENSION, CHARS, FINAL, and DIRECTION. If DIRECTION is omitted, both directions will be checked (left-to-right will be returned if character sets exist for both directions). - - Function: charset-reverse-direction-charset charset + - Function: charset-reverse-direction-charset CHARSET This function returns the charset (if any) with the same dimension, number of characters, and final byte as CHARSET, but which is displayed in the opposite direction. @@ -525,54 +525,54 @@ Charset Property Functions All of these functions accept either a charset name or charset object. - - Function: charset-property charset prop + - Function: charset-property CHARSET PROP This function returns property PROP of CHARSET. *Note Charset Properties::. Convenience functions are also provided for retrieving individual properties of a charset. - - Function: charset-name charset + - Function: charset-name CHARSET This function returns the name of CHARSET. This will be a symbol. - - Function: charset-doc-string charset + - Function: charset-doc-string CHARSET This function returns the doc string of CHARSET. - - Function: charset-registry charset + - Function: charset-registry CHARSET This function returns the registry of CHARSET. - - Function: charset-dimension charset + - Function: charset-dimension CHARSET This function returns the dimension of CHARSET. - - Function: charset-chars charset + - Function: charset-chars CHARSET This function returns the number of characters per dimension of CHARSET. - - Function: charset-columns charset + - Function: charset-columns CHARSET This function returns the number of display columns per character (in TTY mode) of CHARSET. - - Function: charset-direction charset + - Function: charset-direction CHARSET This function returns the display direction of CHARSET - either `l2r' or `r2l'. - - Function: charset-final charset + - Function: charset-final CHARSET This function returns the final byte of the ISO 2022 escape sequence designating CHARSET. - - Function: charset-graphic charset + - Function: charset-graphic CHARSET This function returns either 0 or 1, depending on whether the position codes of characters in CHARSET map to the left or right half of their font, respectively. - - Function: charset-ccl-program charset + - Function: charset-ccl-program CHARSET This function returns the CCL program, if any, for converting position codes of characters in CHARSET into font indices. The only property of a charset that can currently be set after the charset has been created is the CCL program. - - Function: set-charset-ccl-program charset ccl-program + - Function: set-charset-ccl-program CHARSET CCL-PROGRAM This function sets the `ccl-program' property of CHARSET to CCL-PROGRAM. @@ -643,22 +643,22 @@ File: lispref.info, Node: MULE Characters, Next: Composite Characters, Prev: MULE Characters =============== - - Function: make-char charset arg1 &optional arg2 + - Function: make-char CHARSET ARG1 &optional ARG2 This function makes a multi-byte character from CHARSET and octets ARG1 and ARG2. - - Function: char-charset ch + - Function: char-charset CH This function returns the character set of char CH. - - Function: char-octet ch &optional n + - Function: char-octet CH &optional N This function returns the octet (i.e. position code) numbered N (should be 0 or 1) of char CH. N defaults to 0 if omitted. - - Function: find-charset-region start end &optional buffer + - Function: find-charset-region START END &optional BUFFER This function returns a list of the charsets in the region between START and END. BUFFER defaults to the current buffer if omitted. - - Function: find-charset-string string + - Function: find-charset-string STRING This function returns a list of the charsets in STRING.  @@ -669,22 +669,22 @@ Composite Characters Composite characters are not yet completely implemented. - - Function: make-composite-char string + - Function: make-composite-char STRING This function converts a string into a single composite character. The character is the result of overstriking all the characters in the string. - - Function: composite-char-string ch + - Function: composite-char-string CH This function returns a string of the characters comprising a composite character. - - Function: compose-region start end &optional buffer + - Function: compose-region START END &optional BUFFER This function composes the characters in the region from START to END in BUFFER into one composite character. The composite character replaces the composed characters. BUFFER defaults to the current buffer if omitted. - - Function: decompose-region start end &optional buffer + - Function: decompose-region START END &optional BUFFER This function decomposes any composite characters in the region from START to END in BUFFER. This converts each composite character into one or more characters, the individual characters @@ -898,7 +898,7 @@ symbol is accepted in place of the actual coding system object whenever a coding system is called for. (This is similar to how faces and charsets work.) - - Function: coding-system-p object + - Function: coding-system-p OBJECT This function returns non-`nil' if OBJECT is a coding system. * Menu: @@ -1107,7 +1107,7 @@ File: lispref.info, Node: Basic Coding System Functions, Next: Coding System P Basic Coding System Functions ----------------------------- - - Function: find-coding-system coding-system-or-name + - Function: find-coding-system CODING-SYSTEM-OR-NAME This function retrieves the coding system of the given name. If CODING-SYSTEM-OR-NAME is a coding-system object, it is simply @@ -1115,7 +1115,7 @@ Basic Coding System Functions If there is no such coding system, `nil' is returned. Otherwise the associated coding system object is returned. - - Function: get-coding-system name + - Function: get-coding-system NAME This function retrieves the coding system of the given name. Same as `find-coding-system' except an error is signalled if there is no such coding system instead of returning `nil'. @@ -1124,10 +1124,10 @@ Basic Coding System Functions This function returns a list of the names of all defined coding systems. - - Function: coding-system-name coding-system + - Function: coding-system-name CODING-SYSTEM This function returns the name of the given coding system. - - Function: make-coding-system name type &optional doc-string props + - Function: make-coding-system NAME TYPE &optional DOC-STRING PROPS This function registers symbol NAME as a coding system. TYPE describes the conversion method used and should be one of the @@ -1139,11 +1139,11 @@ Basic Coding System Functions character set. Recognized properties are as in *Note Coding System Properties::. - - Function: copy-coding-system old-coding-system new-name + - Function: copy-coding-system OLD-CODING-SYSTEM NEW-NAME This function copies OLD-CODING-SYSTEM to NEW-NAME. If NEW-NAME does not name an existing coding system, a new one will be created. - - Function: subsidiary-coding-system coding-system eol-type + - Function: subsidiary-coding-system CODING-SYSTEM EOL-TYPE This function returns the subsidiary coding system of CODING-SYSTEM with eol type EOL-TYPE. @@ -1153,13 +1153,13 @@ File: lispref.info, Node: Coding System Property Functions, Next: Encoding and Coding System Property Functions -------------------------------- - - Function: coding-system-doc-string coding-system + - Function: coding-system-doc-string CODING-SYSTEM This function returns the doc string for CODING-SYSTEM. - - Function: coding-system-type coding-system + - Function: coding-system-type CODING-SYSTEM This function returns the type of CODING-SYSTEM. - - Function: coding-system-property coding-system prop + - Function: coding-system-property CODING-SYSTEM PROP This function returns the PROP property of CODING-SYSTEM.  @@ -1168,8 +1168,8 @@ File: lispref.info, Node: Encoding and Decoding Text, Next: Detection of Textu Encoding and Decoding Text -------------------------- - - Function: decode-coding-region start end coding-system &optional - buffer + - Function: decode-coding-region START END CODING-SYSTEM &optional + BUFFER This function decodes the text between START and END which is encoded in CODING-SYSTEM. This is useful if you've read in encoded text from a file without decoding it (e.g. you read in a @@ -1178,8 +1178,8 @@ Encoding and Decoding Text encoded text is returned. BUFFER defaults to the current buffer if unspecified. - - Function: encode-coding-region start end coding-system &optional - buffer + - Function: encode-coding-region START END CODING-SYSTEM &optional + BUFFER This function encodes the text between START and END using CODING-SYSTEM. This will, for example, convert Japanese characters into stuff such as `^[$B!8', `//', they return parts of their values in `r7'. Y may be an expression, register, or integer, while Z must be a register or an integer. -Name Operator Code C-like Description -CCL_PLUS `+' 0x00 X = Y + Z -CCL_MINUS `-' 0x01 X = Y - Z -CCL_MUL `*' 0x02 X = Y * Z -CCL_DIV `/' 0x03 X = Y / Z -CCL_MOD `%' 0x04 X = Y % Z -CCL_AND `&' 0x05 X = Y & Z -CCL_OR `|' 0x06 X = Y | Z -CCL_XOR `^' 0x07 X = Y ^ Z -CCL_LSH `<<' 0x08 X = Y << Z -CCL_RSH `>>' 0x09 X = Y >> Z -CCL_LSH8 `<8' 0x0A X = (Y << 8) | Z -CCL_RSH8 `>8' 0x0B X = Y >> 8, r[7] = Y & 0xFF -CCL_DIVMOD `//' 0x0C X = Y / Z, r[7] = Y % Z -CCL_LS `<' 0x10 X = (X < Y) -CCL_GT `>' 0x11 X = (X > Y) -CCL_EQ `==' 0x12 X = (X == Y) -CCL_LE `<=' 0x13 X = (X <= Y) -CCL_GE `>=' 0x14 X = (X >= Y) -CCL_NE `!=' 0x15 X = (X != Y) -CCL_ENCODE_SJIS `en-sjis' 0x16 X = HIGHER_BYTE (SJIS (Y, Z)) - r[7] = LOWER_BYTE (SJIS (Y, Z) -CCL_DECODE_SJIS `de-sjis' 0x17 X = HIGHER_BYTE (DE-SJIS (Y, Z)) - r[7] = LOWER_BYTE (DE-SJIS (Y, Z)) +Name Operator Code C-like Description +CCL_PLUS `+' 0x00 X = Y + Z +CCL_MINUS `-' 0x01 X = Y - Z +CCL_MUL `*' 0x02 X = Y * Z +CCL_DIV `/' 0x03 X = Y / Z +CCL_MOD `%' 0x04 X = Y % Z +CCL_AND `&' 0x05 X = Y & Z +CCL_OR `|' 0x06 X = Y | Z +CCL_XOR `^' 0x07 X = Y ^ Z +CCL_LSH `<<' 0x08 X = Y << Z +CCL_RSH `>>' 0x09 X = Y >> Z +CCL_LSH8 `<8' 0x0A X = (Y << 8) | Z +CCL_RSH8 `>8' 0x0B X = Y >> 8, r[7] = Y & 0xFF +CCL_DIVMOD `//' 0x0C X = Y / Z, r[7] = Y % Z +CCL_LS `<' 0x10 X = (X < Y) +CCL_GT `>' 0x11 X = (X > Y) +CCL_EQ `==' 0x12 X = (X == Y) +CCL_LE `<=' 0x13 X = (X <= Y) +CCL_GE `>=' 0x14 X = (X >= Y) +CCL_NE `!=' 0x15 X = (X != Y) +CCL_ENCODE_SJIS `en-sjis' 0x16 X = HIGHER_BYTE (SJIS (Y, Z)) + r[7] = LOWER_BYTE (SJIS (Y, Z) +CCL_DECODE_SJIS `de-sjis' 0x17 X = HIGHER_BYTE (DE-SJIS (Y, Z)) + r[7] = LOWER_BYTE (DE-SJIS (Y, Z)) The CCL operators are as in C, with the addition of CCL_LSH8, CCL_RSH8, CCL_DIVMOD, CCL_ENCODE_SJIS, and CCL_DECODE_SJIS. The @@ -363,10 +363,10 @@ Calling CCL CCL programs are called automatically during Emacs buffer I/O when the external representation has a coding system type of `shift-jis', `big5', or `ccl'. The program is specified by the coding system (*note -Coding Systems::). You can also call CCL programs from other CCL +Coding Systems::.). You can also call CCL programs from other CCL programs, and from Lisp using these functions: - - Function: ccl-execute ccl-program status + - Function: ccl-execute CCL-PROGRAM STATUS Execute CCL-PROGRAM with registers initialized by STATUS. CCL-PROGRAM is a vector of compiled CCL code created by `ccl-compile'. It is an error for the program to try to execute a @@ -379,8 +379,8 @@ programs, and from Lisp using these functions: side-effect) to contain the ending values for the corresponding registers and IC. - - Function: ccl-execute-on-string ccl-program status str &optional - continue + - Function: ccl-execute-on-string CCL-PROGRAM STATUS STR &optional + CONTINUE Execute CCL-PROGRAM with initial STATUS on STRING. CCL-PROGRAM is a vector of compiled CCL code created by `ccl-compile'. STATUS must be a vector of nine values, specifying the initial value for @@ -398,7 +398,7 @@ programs, and from Lisp using these functions: To call a CCL program from another CCL program, it must first be registered: - - Function: register-ccl-program name ccl-program + - Function: register-ccl-program NAME CCL-PROGRAM Register NAME for CCL program PROGRAM in `ccl-program-table'. PROGRAM should be the compiled form of a CCL program, or nil. Return index number of the registered CCL program. @@ -451,10 +451,10 @@ the character is in that category. Special Lisp functions are provided that abstract this, so you do not have to directly manipulate bit vectors. - - Function: category-table-p obj + - Function: category-table-p OBJ This function returns `t' if ARG is a category table. - - Function: category-table &optional buffer + - Function: category-table &optional BUFFER This function returns the current category table. This is the one specified by the current buffer, or by BUFFER if it is non-`nil'. @@ -462,21 +462,21 @@ have to directly manipulate bit vectors. This function returns the standard category table. This is the one used for new buffers. - - Function: copy-category-table &optional table + - Function: copy-category-table &optional TABLE This function constructs a new category table and return it. It is a copy of the TABLE, which defaults to the standard category table. - - Function: set-category-table table &optional buffer + - Function: set-category-table TABLE &optional BUFFER This function selects a new category table for BUFFER. One argument, a category table. BUFFER defaults to the current buffer if omitted. - - Function: category-designator-p obj + - Function: category-designator-p OBJ This function returns `t' if ARG is a category designator (a char in the range `' '' to `'~''). - - Function: category-table-value-p obj + - Function: category-table-value-p OBJ This function returns `t' if ARG is a category table value. Valid values are `nil' or a bit vector of size 95. @@ -553,7 +553,7 @@ intended for widespread use: right. *Note Compiling Macros::. Using `eval-when-compile' avoids loading BAR when the compiled - version of FOO is _used_. + version of FOO is *used*. * If you define a major mode, make sure to run a hook variable using `run-hooks', just as the existing major modes do. *Note Hooks::. @@ -612,7 +612,7 @@ intended for widespread use: * When a package provides a modification of ordinary Emacs behavior, it is good to include a command to enable and disable the feature, Provide a command named `WHATEVER-mode' which turns the feature on - or off, and make it autoload (*note Autoload::). Design the + or off, and make it autoload (*note Autoload::.). Design the package so that simply loading it has no visible effect--that should not enable the feature. Users will request the feature by invoking the command. @@ -734,8 +734,8 @@ programs. the function is handled specially. For example, the following input will show you that `aref' is - compiled specially (*note Array Functions::) while `elt' is not - (*note Sequence Functions::): + compiled specially (*note Array Functions::.) while `elt' is not + (*note Sequence Functions::.): (get 'aref 'byte-compile) => byte-compile-two-args diff --git a/info/lispref.info-43 b/info/lispref.info-43 index 8ae2af4..cb0a7a1 100644 --- a/info/lispref.info-43 +++ b/info/lispref.info-43 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -82,7 +82,7 @@ installed. To create `xemacs', use the command `temacs -batch -l loadup dump'. The purpose of `-batch' here is to tell `temacs' to run in -non-interactive, command-line mode. (`temacs' can _only_ run in this +non-interactive, command-line mode. (`temacs' can *only* run in this fashion. Part of the code required to initialize frames and faces is in Lisp, and must be loaded before XEmacs is able to create any frames.) The argument `dump' tells `loadup.el' to dump a new executable named @@ -112,7 +112,7 @@ files even if they exist.) You can specify additional files to preload by writing a library named `site-load.el' that loads them. You may need to increase the value of `PURESIZE', in `src/puresize.h', to make room for the -additional files. You should _not_ modify this file directly, however; +additional files. You should *not* modify this file directly, however; instead, use the `--puresize' configuration option. (If you run out of pure space while dumping `xemacs', you will be told how much pure space you actually will need.) However, the advantage of preloading @@ -129,11 +129,11 @@ override them if they wish. *Note Start-up Summary::. Before `loadup.el' dumps the new executable, it finds the documentation strings for primitive and preloaded functions (and variables) in the file where they are stored, by calling -`Snarf-documentation' (*note Accessing Documentation::). These strings -were moved out of the `xemacs' executable to make it smaller. *Note -Documentation Basics::. +`Snarf-documentation' (*note Accessing Documentation::.). These +strings were moved out of the `xemacs' executable to make it smaller. +*Note Documentation Basics::. - - Function: dump-emacs to-file from-file + - Function: dump-emacs TO-FILE FROM-FILE This function dumps the current state of XEmacs into an executable file TO-FILE. It takes symbols from FROM-FILE (this is normally the executable file `temacs'). @@ -142,10 +142,10 @@ Documentation Basics::. must set `command-line-processed' to `nil' first for good results. *Note Command Line Arguments::. - - Function: run-emacs-from-temacs &rest args + - Function: run-emacs-from-temacs &rest ARGS This is the function that implements the `run-temacs' command-line argument. It is called from `loadup.el' as appropriate. You - should most emphatically _not_ call this yourself; it will + should most emphatically *not* call this yourself; it will reinitialize your XEmacs process and you'll be sorry. - Command: emacs-version @@ -208,7 +208,7 @@ must increase the compilation parameter `PURESIZE' using the you try to preload additional libraries or add features to the standard ones. - - Function: purecopy object + - Function: purecopy OBJECT This function makes a copy of OBJECT in pure storage and returns it. It copies strings by simply making a new string with the same characters in pure storage. It recursively copies the contents of @@ -650,143 +650,143 @@ automatically local (when set) in each buffer. Many Lisp packages define such variables for their internal use; we don't list them here. `abbrev-mode' - *note Abbrevs:: + *note Abbrevs::. `auto-fill-function' - *note Auto Filling:: + *note Auto Filling::. `buffer-auto-save-file-name' - *note Auto-Saving:: + *note Auto-Saving::. `buffer-backed-up' - *note Backup Files:: + *note Backup Files::. `buffer-display-table' - *note Display Tables:: + *note Display Tables::. `buffer-file-format' - *note Format Conversion:: + *note Format Conversion::. `buffer-file-name' - *note Buffer File Name:: + *note Buffer File Name::. `buffer-file-number' - *note Buffer File Name:: + *note Buffer File Name::. `buffer-file-truename' - *note Buffer File Name:: + *note Buffer File Name::. `buffer-file-type' - *note Files and MS-DOS:: + *note Files and MS-DOS::. `buffer-invisibility-spec' - *note Invisible Text:: + *note Invisible Text::. `buffer-offer-save' - *note Saving Buffers:: + *note Saving Buffers::. `buffer-read-only' - *note Read Only Buffers:: + *note Read Only Buffers::. `buffer-saved-size' - *note Point:: + *note Point::. `buffer-undo-list' - *note Undo:: + *note Undo::. `cache-long-line-scans' - *note Text Lines:: + *note Text Lines::. `case-fold-search' - *note Searching and Case:: + *note Searching and Case::. `ctl-arrow' - *note Usual Display:: + *note Usual Display::. `comment-column' *note Comments: (emacs)Comments. `default-directory' - *note System Environment:: + *note System Environment::. `defun-prompt-regexp' - *note List Motion:: + *note List Motion::. `fill-column' - *note Auto Filling:: + *note Auto Filling::. `goal-column' *note Moving Point: (emacs)Moving Point. `left-margin' - *note Indentation:: + *note Indentation::. `local-abbrev-table' - *note Abbrevs:: + *note Abbrevs::. `local-write-file-hooks' - *note Saving Buffers:: + *note Saving Buffers::. `major-mode' - *note Mode Help:: + *note Mode Help::. `mark-active' - *note The Mark:: + *note The Mark::. `mark-ring' - *note The Mark:: + *note The Mark::. `minor-modes' - *note Minor Modes:: + *note Minor Modes::. `modeline-format' - *note Modeline Data:: + *note Modeline Data::. `modeline-buffer-identification' - *note Modeline Variables:: + *note Modeline Variables::. `modeline-format' - *note Modeline Data:: + *note Modeline Data::. `modeline-modified' - *note Modeline Variables:: + *note Modeline Variables::. `modeline-process' - *note Modeline Variables:: + *note Modeline Variables::. `mode-name' - *note Modeline Variables:: + *note Modeline Variables::. `overwrite-mode' - *note Insertion:: + *note Insertion::. `paragraph-separate' - *note Standard Regexps:: + *note Standard Regexps::. `paragraph-start' - *note Standard Regexps:: + *note Standard Regexps::. `point-before-scroll' Used for communication between mouse commands and scroll-bar commands. `require-final-newline' - *note Insertion:: + *note Insertion::. `selective-display' - *note Selective Display:: + *note Selective Display::. `selective-display-ellipses' - *note Selective Display:: + *note Selective Display::. `tab-width' - *note Usual Display:: + *note Usual Display::. `truncate-lines' - *note Truncation:: + *note Truncation::. `vc-mode' - *note Modeline Variables:: + *note Modeline Variables::.  File: lispref.info, Node: Standard Keymaps, Next: Standard Hooks, Prev: Standard Buffer-Local Variables, Up: Top diff --git a/info/lispref.info-44 b/info/lispref.info-44 index c4d32ed..194e4fb 100644 --- a/info/lispref.info-44 +++ b/info/lispref.info-44 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -100,13 +100,10 @@ Index * <: Comparison of Numbers. * <=: Comparison of Numbers. * : Functions for Key Lookup. -* in minibuffer: Text from Minibuffer. -* in minibuffer: Text from Minibuffer. * =: Comparison of Numbers. * >: Comparison of Numbers. * >=: Comparison of Numbers. * ? in character constant: Character Type. -* ? in minibuffer: Text from Minibuffer. * ? in regexp: Syntax of Regexps. * @ in interactive: Using Interactive. * [ in regexp: Syntax of Regexps. @@ -539,6 +536,7 @@ Index * changing window size: Resizing Windows. * char table type: Char Table Type. * char-after: Near Point. +* char-before: Near Point. * char-charset: MULE Characters. * char-equal: Text Comparison. * char-int: Character Codes. @@ -590,18 +588,18 @@ Index * check-valid-spec-list: Specifier Validation Functions. * child process: Processes. * children, of extent: Extent Parents. -* CL note--allocate more storage: Garbage Collection. -* CL note--case of letters: Symbol Type. -* CL note--default optional arg: Argument List. -* CL note--integers vrs eq: Comparison of Numbers. -* CL note--lack union, set: Sets And Lists. -* CL note--no continuable errors: Signaling Errors. -* CL note--only throw in Emacs: Catch and Throw. -* CL note--rplaca vrs setcar: Modifying Lists. -* CL note--set local: Setting Variables. -* CL note--special forms compared: Special Forms. -* CL note--special variables: Variable Scoping. -* CL note--symbol in obarrays: Creating Symbols. +* CL note---allocate more storage: Garbage Collection. +* CL note---case of letters: Symbol Type. +* CL note---default optional arg: Argument List. +* CL note---integers vrs eq: Comparison of Numbers. +* CL note---lack union, set: Sets And Lists. +* CL note---no continuable errors: Signaling Errors. +* CL note---only throw in Emacs: Catch and Throw. +* CL note---rplaca vrs setcar: Modifying Lists. +* CL note---set local: Setting Variables. +* CL note---special forms compared: Special Forms. +* CL note---special variables: Variable Scoping. +* CL note---symbol in obarrays: Creating Symbols. * cl-read: Reading in Edebug. * cl-specs.el: Instrumenting. * cl.el (Edebug): Instrumenting. @@ -2120,7 +2118,6 @@ Index * minibuffer-local-map: Text from Minibuffer. * minibuffer-local-must-match-map <1>: Standard Keymaps. * minibuffer-local-must-match-map: Completion Commands. -* minibuffer-local-ns-map: Text from Minibuffer. * minibuffer-prompt: Minibuffer Misc. * minibuffer-prompt-width: Minibuffer Misc. * minibuffer-scroll-window: Minibuffer Misc. @@ -2299,6 +2296,9 @@ Index * parse-sexp-ignore-comments: Parsing Expressions. * parsing: Syntax Tables. * partial files: Partial Files. +* passwd-echo: Reading a Password. +* passwd-invert-frame-when-keyboard-grabbed: Reading a Password. +* passwords, reading: Reading a Password. * PATH environment variable: Subprocess Creation. * path-separator: System Environment. * pausing: Waiting. @@ -2519,9 +2519,9 @@ Index * read-from-string: Input Functions. * read-key-sequence: Key Sequence Input. * read-minibuffer: Object from Minibuffer. -* read-no-blanks-input: Text from Minibuffer. * read-only buffer: Read Only Buffers. * read-only buffers in interactive: Using Interactive. +* read-passwd: Reading a Password. * read-quoted-char: Quoted Character Input. * read-quoted-char quitting: Quitting. * read-shell-command-map: Standard Keymaps. diff --git a/info/lispref.info-5 b/info/lispref.info-5 index 7c590db..b0ff36f 100644 --- a/info/lispref.info-5 +++ b/info/lispref.info-5 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -62,7 +62,7 @@ integers; whether an integer was intended as a character or not is determined only by how it is used. *Note Character Type::. The length of a string (like any array) is fixed and independent of -the string contents, and cannot be altered. Strings in Lisp are _not_ +the string contents, and cannot be altered. Strings in Lisp are *not* terminated by a distinguished character code. (By contrast, strings in C are terminated by a character with ASCII code 0.) This means that any character, including the null character (ASCII code 0), is a valid @@ -71,22 +71,22 @@ element of a string. Since strings are considered arrays, you can operate on them with the general array functions. (*Note Sequences Arrays Vectors::.) For example, you can access or change individual characters in a string -using the functions `aref' and `aset' (*note Array Functions::). +using the functions `aref' and `aset' (*note Array Functions::.). Strings use an efficient representation for storing the characters in them, and thus take up much less memory than a vector of the same length. Sometimes you will see strings used to hold key sequences. This -exists for backward compatibility with Emacs 18, but should _not_ be +exists for backward compatibility with Emacs 18, but should *not* be used in new code, since many key chords can't be represented at all and others (in particular meta key chords) are confused with accented characters. Strings are useful for holding regular expressions. You can also -match regular expressions against strings (*note Regexp Search::). The -functions `match-string' (*note Simple Match Data::) and -`replace-match' (*note Replacing Match::) are useful for decomposing +match regular expressions against strings (*note Regexp Search::.). The +functions `match-string' (*note Simple Match Data::.) and +`replace-match' (*note Replacing Match::.) are useful for decomposing and modifying strings based on regular expression matching. Like a buffer, a string can contain extents in it. These extents are @@ -108,10 +108,10 @@ The Predicates for Strings For more information about general sequence and array predicates, see *Note Sequences Arrays Vectors::, and *Note Arrays::. - - Function: stringp object + - Function: stringp OBJECT This function returns `t' if OBJECT is a string, `nil' otherwise. - - Function: char-or-string-p object + - Function: char-or-string-p OBJECT This function returns `t' if OBJECT is a string or a character, `nil' otherwise. @@ -129,7 +129,7 @@ Creating Strings The following functions create strings, either from scratch, or by putting strings together, or by taking them apart. - - Function: string &rest characters + - Function: string &rest CHARACTERS This function returns a new string made up of CHARACTERS. (string ?X ?E ?m ?a ?c ?s) @@ -138,11 +138,11 @@ putting strings together, or by taking them apart. => "" Analogous functions operating on other data types include `list', - `cons' (*note Building Lists::), `vector' (*note Vectors::) and - `bit-vector' (*note Bit Vectors::). This function has not been + `cons' (*note Building Lists::.), `vector' (*note Vectors::.) and + `bit-vector' (*note Bit Vectors::.). This function has not been available in XEmacs prior to 21.0 and FSF Emacs prior to 20.3. - - Function: make-string count character + - Function: make-string COUNT CHARACTER This function returns a string made up of COUNT repetitions of CHARACTER. If COUNT is negative, an error is signaled. @@ -152,10 +152,10 @@ putting strings together, or by taking them apart. => "" Other functions to compare with this one include `char-to-string' - (*note String Conversion::), `make-vector' (*note Vectors::), and - `make-list' (*note Building Lists::). + (*note String Conversion::.), `make-vector' (*note Vectors::.), and + `make-list' (*note Building Lists::.). - - Function: substring string start &optional end + - Function: substring STRING START &optional END This function returns a new string which consists of those characters from STRING in the range from (and including) the character at the index START up to (but excluding) the character @@ -195,7 +195,7 @@ putting strings together, or by taking them apart. => "abcdefg" But we recommend `copy-sequence' for this purpose (*note Sequence - Functions::). + Functions::.). If the characters copied from STRING have duplicable extents or text properties, those are copied into the new string also. *Note @@ -207,11 +207,11 @@ putting strings together, or by taking them apart. either integer is out of range for STRING. Contrast this function with `buffer-substring' (*note Buffer - Contents::), which returns a string containing a portion of the + Contents::.), which returns a string containing a portion of the text in the current buffer. The beginning of a string is at index 0, but the beginning of a buffer is at index 1. - - Function: concat &rest sequences + - Function: concat &rest SEQUENCES This function returns a new string consisting of the characters in the arguments passed to it (along with their text properties, if any). The arguments may be strings, lists of numbers, or vectors @@ -242,8 +242,8 @@ putting strings together, or by taking them apart. representation of the integer. *Don't use this feature; we plan to eliminate it. If you already use this feature, change your programs now!* The proper way to convert an integer to a decimal - number in this way is with `format' (*note Formatting Strings::) or - `number-to-string' (*note String Conversion::). + number in this way is with `format' (*note Formatting Strings::.) + or `number-to-string' (*note String Conversion::.). (concat 137) => "137" @@ -261,7 +261,7 @@ File: lispref.info, Node: Predicates for Characters, Next: Character Codes, P The Predicates for Characters ============================= - - Function: characterp object + - Function: characterp OBJECT This function returns `t' if OBJECT is a character. Some functions that work on integers (e.g. the comparison functions @@ -275,7 +275,7 @@ The Predicates for Characters in the future; therefore, do not rely on them. Instead, convert the characters explicitly using `char-int'. - - Function: integer-or-char-p object + - Function: integer-or-char-p OBJECT This function returns `t' if OBJECT is an integer or character.  @@ -284,7 +284,7 @@ File: lispref.info, Node: Character Codes, Next: Text Comparison, Prev: Predi Character Codes =============== - - Function: char-int ch + - Function: char-int CH This function converts a character into an equivalent integer. The resulting integer will always be non-negative. The integers in the range 0 - 255 map to characters as follows: @@ -307,17 +307,17 @@ Character Codes XEmacs, the order in which character sets were loaded, etc., and you should not depend on them. - - Function: int-char integer + - Function: int-char INTEGER This function converts an integer into the equivalent character. Not all integers correspond to valid characters; use `char-int-p' to determine whether this is the case. If the integer cannot be converted, `nil' is returned. - - Function: char-int-p object + - Function: char-int-p OBJECT This function returns `t' if OBJECT is an integer that can be converted into a character. - - Function: char-or-char-int-p object + - Function: char-or-char-int-p OBJECT This function returns `t' if OBJECT is a character or an integer that can be converted into one. @@ -327,7 +327,7 @@ File: lispref.info, Node: Text Comparison, Next: String Conversion, Prev: Cha Comparison of Characters and Strings ==================================== - - Function: char-equal character1 character2 + - Function: char-equal CHARACTER1 CHARACTER2 This function returns `t' if the arguments represent the same character, `nil' otherwise. This function ignores differences in case if `case-fold-search' is non-`nil'. @@ -341,7 +341,7 @@ Comparison of Characters and Strings (char-equal ?x ?X)) => nil - - Function: char= character1 character2 + - Function: char= CHARACTER1 CHARACTER2 This function returns `t' if the arguments represent the same character, `nil' otherwise. Case is significant. @@ -356,7 +356,7 @@ Comparison of Characters and Strings (char-equal ?x ?X)) => nil - - Function: string= string1 string2 + - Function: string= STRING1 STRING2 This function returns `t' if the characters of the two strings match exactly; case is significant. @@ -368,10 +368,10 @@ Comparison of Characters and Strings => nil - - Function: string-equal string1 string2 + - Function: string-equal STRING1 STRING2 `string-equal' is another name for `string='. - - Function: string< string1 string2 + - Function: string< STRING1 STRING2 This function compares two strings a character at a time. First it scans both the strings at once to find the first pair of corresponding characters that do not match. If the lesser @@ -410,7 +410,7 @@ Comparison of Characters and Strings (string< "" "") => nil - - Function: string-lessp string1 string2 + - Function: string-lessp STRING1 STRING2 `string-lessp' is another name for `string<'. See also `compare-buffer-substrings' in *Note Comparing Text::, for @@ -426,8 +426,8 @@ Conversion of Characters and Strings This section describes functions for conversions between characters, strings and integers. `format' and `prin1-to-string' (*note Output -Functions::) can also convert Lisp objects into strings. -`read-from-string' (*note Input Functions::) can "convert" a string +Functions::.) can also convert Lisp objects into strings. +`read-from-string' (*note Input Functions::.) can "convert" a string representation of a Lisp object into an object. *Note Documentation::, for functions that produce textual @@ -435,7 +435,7 @@ descriptions of text characters and general input events (`single-key-description' and `text-char-description'). These functions are used primarily for making help messages. - - Function: char-to-string character + - Function: char-to-string CHARACTER This function returns a new string with a length of one character. The value of CHARACTER, modulo 256, is used to initialize the element of the string. @@ -452,7 +452,7 @@ functions are used primarily for making help messages. (make-string 1 ?x) => "x" - - Function: string-to-char string + - Function: string-to-char STRING This function returns the first character in STRING. If the string is empty, the function returns 0. (Under XEmacs 19, the value is also 0 when the first character of STRING is the null @@ -473,7 +473,7 @@ functions are used primarily for making help messages. This function may be eliminated in the future if it does not seem useful enough to retain. - - Function: number-to-string number + - Function: number-to-string NUMBER This function returns a string consisting of the printed representation of NUMBER, which may be an integer or a floating point number. The value starts with a sign if the argument is @@ -490,7 +490,7 @@ functions are used primarily for making help messages. See also the function `format' in *Note Formatting Strings::. - - Function: string-to-number string &optional base + - Function: string-to-number STRING &optional BASE This function returns the numeric value of the characters in STRING, read in BASE. It skips spaces and tabs at the beginning of STRING, then reads as much of STRING as it can interpret as a @@ -530,7 +530,7 @@ character. string is created) and is incremented each time a change is made to that string. - - Function: string-modified-tick string + - Function: string-modified-tick STRING This function returns the tick counter for `string'.  @@ -565,7 +565,7 @@ In fact, the functions `message' and `error' provide the same formatting feature described here; they differ from `format' only in how they use the result of formatting. - - Function: format string &rest objects + - Function: format STRING &rest OBJECTS This function returns a new string that is made by copying STRING and then replacing any format specification in the copy with encodings of the corresponding OBJECTS. The arguments OBJECTS are @@ -747,11 +747,11 @@ truncated. In the third case, the padding is on the right. (format "The word `%7s' actually has %d letters in it." "foo" (length "foo")) => "The word ` foo' actually has 3 letters in it." - + (format "The word `%7s' actually has %d letters in it." "specification" (length "specification")) => "The word `specification' actually has 13 letters in it." - + (format "The word `%-7s' actually has %d letters in it." "foo" (length "foo")) => "The word `foo ' actually has 3 letters in it." @@ -793,7 +793,7 @@ that are passed to them as arguments. The examples below use the characters `X' and `x' which have ASCII codes 88 and 120 respectively. - - Function: downcase string-or-char + - Function: downcase STRING-OR-CHAR This function converts a character or a string to lower case. When the argument to `downcase' is a string, the function creates @@ -811,7 +811,7 @@ codes 88 and 120 respectively. => ?x ;; Under XEmacs 20. => 120 ;; Under XEmacs 19. - - Function: upcase string-or-char + - Function: upcase STRING-OR-CHAR This function converts a character or a string to upper case. When the argument to `upcase' is a string, the function creates @@ -831,7 +831,7 @@ codes 88 and 120 respectively. => ?X ;; Under XEmacs 20. => 88 ;; Under XEmacs 19. - - Function: capitalize string-or-char + - Function: capitalize STRING-OR-CHAR This function capitalizes strings or characters. If STRING-OR-CHAR is a string, the function creates and returns a new string, whose contents are a copy of STRING-OR-CHAR in which each @@ -841,7 +841,7 @@ codes 88 and 120 respectively. The definition of a word is any sequence of consecutive characters that are assigned to the word constituent syntax class in the - current syntax table (*note Syntax Class Table::). + current syntax table (*note Syntax Class Table::.). When the argument to `capitalize' is a character, `capitalize' has the same result as `upcase'. @@ -866,8 +866,8 @@ The Case Table table". A case table specifies the mapping between upper case and lower case letters. It affects both the string and character case conversion functions (see the previous section) and those that apply to text in the -buffer (*note Case Changes::). You need a case table if you are using a -language which has letters other than the standard ASCII letters. +buffer (*note Case Changes::.). You need a case table if you are using +a language which has letters other than the standard ASCII letters. A case table is a list of this form: @@ -907,10 +907,10 @@ Changing the standard case table doesn't affect any existing buffers. Here are the functions for working with case tables: - - Function: case-table-p object + - Function: case-table-p OBJECT This predicate returns non-`nil' if OBJECT is a valid case table. - - Function: set-standard-case-table table + - Function: set-standard-case-table TABLE This function makes TABLE the standard case table, so that it will apply to any buffers created subsequently. @@ -920,7 +920,7 @@ Changing the standard case table doesn't affect any existing buffers. - Function: current-case-table This function returns the current buffer's case table. - - Function: set-case-table table + - Function: set-case-table TABLE This sets the current buffer's case table to TABLE. The following three functions are convenient subroutines for packages @@ -929,15 +929,15 @@ DOWNCASE-TABLE provided as an argument; this should be a string to be used as the DOWNCASE part of a case table. They also modify the standard syntax table. *Note Syntax Tables::. - - Function: set-case-syntax-pair uc lc downcase-table + - Function: set-case-syntax-pair UC LC DOWNCASE-TABLE This function specifies a pair of corresponding letters, one upper case and one lower case. - - Function: set-case-syntax-delims l r downcase-table + - Function: set-case-syntax-delims L R DOWNCASE-TABLE This function makes characters L and R a matching pair of case-invariant delimiters. - - Function: set-case-syntax char syntax downcase-table + - Function: set-case-syntax CHAR SYNTAX DOWNCASE-TABLE This function makes CHAR case-invariant, with syntax SYNTAX. - Command: describe-buffer-case-table @@ -984,7 +984,7 @@ assigned values are * a single character - - Function: char-table-p object + - Function: char-table-p OBJECT This function returns non-`nil' if OBJECT is a char table. * Menu: @@ -1026,13 +1026,13 @@ different sorts of values. The different char table types are character. Higher-level Lisp functions are provided for working with syntax tables. The valid values are integers. - - Function: char-table-type table + - Function: char-table-type TABLE This function returns the type of char table TABLE. - Function: char-table-type-list This function returns a list of the recognized char table types. - - Function: valid-char-table-type-p type + - Function: valid-char-table-type-p TYPE This function returns `t' if TYPE if a recognized char table type.  @@ -1041,12 +1041,12 @@ File: lispref.info, Node: Working With Char Tables, Prev: Char Table Types, U Working With Char Tables ------------------------ - - Function: make-char-table type + - Function: make-char-table TYPE This function makes a new, empty char table of type TYPE. TYPE should be a symbol, one of `char', `category', `display', `generic', or `syntax'. - - Function: put-char-table range val table + - Function: put-char-table RANGE VAL TABLE This function sets the value for chars in RANGE to be VAL in TABLE. RANGE specifies one or more characters to be affected and should be @@ -1063,17 +1063,17 @@ Working With Char Tables VAL must be a value appropriate for the type of TABLE. - - Function: get-char-table ch table + - Function: get-char-table CH TABLE This function finds the value for char CH in TABLE. - - Function: get-range-char-table range table &optional multi + - Function: get-range-char-table RANGE TABLE &optional MULTI This function finds the value for a range in TABLE. If there is more than one value, MULTI is returned (defaults to `nil'). - - Function: reset-char-table table + - Function: reset-char-table TABLE This function resets a char table to its default state. - - Function: map-char-table function table &optional range + - Function: map-char-table FUNCTION TABLE &optional RANGE This function maps FUNCTION over entries in TABLE, calling it with two args, each key and value in the table. @@ -1081,11 +1081,11 @@ Working With Char Tables as the RANGE argument to `put-range-table'. If omitted or `t', it defaults to the entire table. - - Function: valid-char-table-value-p value char-table-type + - Function: valid-char-table-value-p VALUE CHAR-TABLE-TYPE This function returns non-`nil' if VALUE is a valid value for CHAR-TABLE-TYPE. - - Function: check-valid-char-table-value value char-table-type + - Function: check-valid-char-table-value VALUE CHAR-TABLE-TYPE This function signals an error if VALUE is not a valid value for CHAR-TABLE-TYPE. @@ -1222,18 +1222,18 @@ cons cell or is a list, or whether it is the distinguished object `nil'. (Many of these predicates can be defined in terms of the others, but they are used so often that it is worth having all of them.) - - Function: consp object + - Function: consp OBJECT This function returns `t' if OBJECT is a cons cell, `nil' - otherwise. `nil' is not a cons cell, although it _is_ a list. + otherwise. `nil' is not a cons cell, although it *is* a list. - - Function: atom object + - Function: atom OBJECT This function returns `t' if OBJECT is an atom, `nil' otherwise. All objects except cons cells are atoms. The symbol `nil' is an atom and is also a list; it is the only Lisp object that is both. (atom OBJECT) == (not (consp OBJECT)) - - Function: listp object + - Function: listp OBJECT This function returns `t' if OBJECT is a cons cell or `nil'. Otherwise, it returns `nil'. @@ -1242,13 +1242,13 @@ others, but they are used so often that it is worth having all of them.) (listp '()) => t - - Function: nlistp object + - Function: nlistp OBJECT This function is the opposite of `listp': it returns `t' if OBJECT is not a list. Otherwise, it returns `nil'. (listp OBJECT) == (not (nlistp OBJECT)) - - Function: null object + - Function: null OBJECT This function returns `t' if OBJECT is `nil', and returns `nil' otherwise. This function is identical to `not', but as a matter of clarity we use `null' when OBJECT is considered a list and diff --git a/info/lispref.info-6 b/info/lispref.info-6 index 212bafa..f568b98 100644 --- a/info/lispref.info-6 +++ b/info/lispref.info-6 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -55,7 +55,7 @@ File: lispref.info, Node: List Elements, Next: Building Lists, Prev: List-rel Accessing Elements of Lists =========================== - - Function: car cons-cell + - Function: car CONS-CELL This function returns the value pointed to by the first pointer of the cons cell CONS-CELL. Expressed another way, this function returns the CAR of CONS-CELL. @@ -69,7 +69,7 @@ Accessing Elements of Lists (car '()) => nil - - Function: cdr cons-cell + - Function: cdr CONS-CELL This function returns the value pointed to by the second pointer of the cons cell CONS-CELL. Expressed another way, this function returns the CDR of CONS-CELL. @@ -83,7 +83,7 @@ Accessing Elements of Lists (cdr '()) => nil - - Function: car-safe object + - Function: car-safe OBJECT This function lets you take the CAR of a cons cell while avoiding errors for other data types. It returns the CAR of OBJECT if OBJECT is a cons cell, `nil' otherwise. This is in contrast to @@ -96,7 +96,7 @@ Accessing Elements of Lists (car x) nil)) - - Function: cdr-safe object + - Function: cdr-safe OBJECT This function lets you take the CDR of a cons cell while avoiding errors for other data types. It returns the CDR of OBJECT if OBJECT is a cons cell, `nil' otherwise. This is in contrast to @@ -109,7 +109,7 @@ Accessing Elements of Lists (cdr x) nil)) - - Function: nth n list + - Function: nth N LIST This function returns the Nth element of LIST. Elements are numbered starting with zero, so the CAR of LIST is element number zero. If the length of LIST is N or less, the value is `nil'. @@ -125,7 +125,7 @@ Accessing Elements of Lists (nth n x) == (car (nthcdr n x)) - - Function: nthcdr n list + - Function: nthcdr N LIST This function returns the Nth CDR of LIST. In other words, it removes the first N links of LIST and returns what follows. @@ -143,34 +143,34 @@ Accessing Elements of Lists access particular elements in a nested list. All of these can be rewritten in terms of the functions just described. - - Function: caar cons-cell - - Function: cadr cons-cell - - Function: cdar cons-cell - - Function: cddr cons-cell - - Function: caaar cons-cell - - Function: caadr cons-cell - - Function: cadar cons-cell - - Function: caddr cons-cell - - Function: cdaar cons-cell - - Function: cdadr cons-cell - - Function: cddar cons-cell - - Function: cdddr cons-cell - - Function: caaaar cons-cell - - Function: caaadr cons-cell - - Function: caadar cons-cell - - Function: caaddr cons-cell - - Function: cadaar cons-cell - - Function: cadadr cons-cell - - Function: caddar cons-cell - - Function: cadddr cons-cell - - Function: cdaaar cons-cell - - Function: cdaadr cons-cell - - Function: cdadar cons-cell - - Function: cdaddr cons-cell - - Function: cddaar cons-cell - - Function: cddadr cons-cell - - Function: cdddar cons-cell - - Function: cddddr cons-cell + - Function: caar CONS-CELL + - Function: cadr CONS-CELL + - Function: cdar CONS-CELL + - Function: cddr CONS-CELL + - Function: caaar CONS-CELL + - Function: caadr CONS-CELL + - Function: cadar CONS-CELL + - Function: caddr CONS-CELL + - Function: cdaar CONS-CELL + - Function: cdadr CONS-CELL + - Function: cddar CONS-CELL + - Function: cdddr CONS-CELL + - Function: caaaar CONS-CELL + - Function: caaadr CONS-CELL + - Function: caadar CONS-CELL + - Function: caaddr CONS-CELL + - Function: cadaar CONS-CELL + - Function: cadadr CONS-CELL + - Function: caddar CONS-CELL + - Function: cadddr CONS-CELL + - Function: cdaaar CONS-CELL + - Function: cdaadr CONS-CELL + - Function: cdadar CONS-CELL + - Function: cdaddr CONS-CELL + - Function: cddaar CONS-CELL + - Function: cddadr CONS-CELL + - Function: cdddar CONS-CELL + - Function: cddddr CONS-CELL Each of these functions is equivalent to one or more applications of `car' and/or `cdr'. For example, @@ -191,22 +191,22 @@ rewritten in terms of the functions just described. That is to say, read the a's and d's from right to left and apply a `car' or `cdr' for each a or d found, respectively. - - Function: first list + - Function: first LIST This is equivalent to `(nth 0 LIST)', i.e. the first element of LIST. (Note that this is also equivalent to `car'.) - - Function: second list + - Function: second LIST This is equivalent to `(nth 1 LIST)', i.e. the second element of LIST. - - Function: third list - - Function: fourth list - - Function: fifth list - - Function: sixth list - - Function: seventh list - - Function: eighth list - - Function: ninth list - - Function: tenth list + - Function: third LIST + - Function: fourth LIST + - Function: fifth LIST + - Function: sixth LIST + - Function: seventh LIST + - Function: eighth LIST + - Function: ninth LIST + - Function: tenth LIST These are equivalent to `(nth 2 LIST)' through `(nth 9 LIST)' respectively, i.e. the third through tenth elements of LIST. @@ -221,7 +221,7 @@ Lisp. `cons' is the fundamental list-building function; however, it is interesting to note that `list' is used more times in the source code for Emacs than `cons'. - - Function: cons object1 object2 + - Function: cons OBJECT1 OBJECT2 This function is the fundamental function used to build new list structure. It creates a new cons cell, making OBJECT1 the CAR, and OBJECT2 the CDR. It then returns the new cons cell. The @@ -245,7 +245,7 @@ for Emacs than `cons'. used in this example and the function named `list' described below; any symbol can serve both purposes. - - Function: list &rest objects + - Function: list &rest OBJECTS This function creates a list with OBJECTS as its elements. The resulting list is always `nil'-terminated. If no OBJECTS are given, the empty list is returned. @@ -257,17 +257,17 @@ for Emacs than `cons'. (list) => nil - - Function: make-list length object + - Function: make-list LENGTH OBJECT This function creates a list of length LENGTH, in which all the elements have the identical value OBJECT. Compare `make-list' - with `make-string' (*note Creating Strings::). + with `make-string' (*note Creating Strings::.). (make-list 3 'pigs) => (pigs pigs pigs) (make-list 0 'pigs) => nil - - Function: append &rest sequences + - Function: append &rest SEQUENCES This function returns a list containing all the elements of SEQUENCES. The SEQUENCES may be lists, vectors, or strings, but the last one should be a list. All arguments except the last one @@ -357,12 +357,12 @@ for Emacs than `cons'. of the original integers. *Don't use this feature; we plan to eliminate it. If you already use this feature, change your programs now!* The proper way to convert an integer to a decimal - number in this way is with `format' (*note Formatting Strings::) - or `number-to-string' (*note String Conversion::). + number in this way is with `format' (*note Formatting Strings::.) + or `number-to-string' (*note String Conversion::.). - - Function: reverse list + - Function: reverse LIST This function creates a new list whose elements are the elements of - LIST, but in reverse order. The original argument LIST is _not_ + LIST, but in reverse order. The original argument LIST is *not* altered. (setq x '(1 2 3 4)) @@ -403,7 +403,7 @@ Altering List Elements with `setcar' a list, `setcar' replaces one element of a list with a different element. - - Function: setcar cons object + - Function: setcar CONS OBJECT This function stores OBJECT as the new CAR of CONS, replacing its previous CAR. It returns the value OBJECT. For example: @@ -481,7 +481,7 @@ Altering the CDR of a List The lowest-level primitive for modifying a CDR is `setcdr': - - Function: setcdr cons object + - Function: setcdr CONS OBJECT This function stores OBJECT as the new CDR of CONS, replacing its previous CDR. It returns the value OBJECT. @@ -535,7 +535,7 @@ list. Here is this result in box notation: - -------------- ------------- ------------- + -------------- ------------- ------------- | car | cdr | | car | cdr | | car | cdr | | a | o | -->| b | o------->| c | nil | | | | | | | | | | | | @@ -563,9 +563,9 @@ to them as arguments, to produce a new list that is the returned value. See `delq', in *Note Sets And Lists::, for another function that modifies cons cells. - - Function: nconc &rest lists + - Function: nconc &rest LISTS This function returns a list containing all the elements of LISTS. - Unlike `append' (*note Building Lists::), the LISTS are _not_ + Unlike `append' (*note Building Lists::.), the LISTS are *not* copied. Instead, the last CDR of each of the LISTS is changed to refer to the following list. The last of the LISTS is not altered. For example: @@ -595,21 +595,23 @@ modifies cons cells. (defun add-foo (x) ; We want this function to add (nconc '(foo) x)) ; `foo' to the front of its arg. - + (symbol-function 'add-foo) => (lambda (x) (nconc (quote (foo)) x)) - + (setq xx (add-foo '(1 2))) ; It seems to work. => (foo 1 2) + (setq xy (add-foo '(3 4))) ; What happened? => (foo 1 2 3 4) + (eq xx xy) => t - + (symbol-function 'add-foo) => (lambda (x) (nconc (quote (foo 1 2 3 4) x))) - - Function: nreverse list + - Function: nreverse LIST This function reverses the order of the elements of LIST. Unlike `reverse', `nreverse' alters its argument by reversing the CDRs in the cons cells forming the list. The cons cell that used to be @@ -644,7 +646,7 @@ modifies cons cells. | | | | ------------- ------------ - - Function: sort list predicate + - Function: sort LIST PREDICATE This function sorts LIST stably, though destructively, and returns the sorted list. It compares elements using PREDICATE. A stable sort is one in which elements with equal sort keys maintain their @@ -708,7 +710,7 @@ versions, `member' and `delete'. XEmacs Lisp does not have them. You can write them in Lisp if you wish. - - Function: memq object list + - Function: memq OBJECT LIST This function tests to see whether OBJECT is a member of LIST. If it is, `memq' returns a list starting with the first occurrence of OBJECT. Otherwise, it returns `nil'. The letter `q' in `memq' @@ -720,7 +722,7 @@ versions, `member' and `delete'. (memq '(2) '((1) (2))) ; `(2)' and `(2)' are not `eq'. => nil - - Function: delq object list + - Function: delq OBJECT LIST This function destructively removes all elements `eq' to OBJECT from LIST. The letter `q' in `delq' says that it uses `eq' to compare OBJECT against the elements of the list, like `memq'. @@ -732,7 +734,7 @@ after those elements: (delq 'a '(a b c)) == (cdr '(a b c)) When an element to be deleted appears in the middle of the list, -removing it involves changing the CDRs (*note Setcdr::). +removing it involves changing the CDRs (*note Setcdr::.). (setq sample-list '(a b c (4))) => (a b c (4)) @@ -764,7 +766,7 @@ and the `(4)' in the `sample-list' are not `eq': The following two functions are like `memq' and `delq' but use `equal' rather than `eq' to compare elements. They are new in Emacs 19. - - Function: member object list + - Function: member OBJECT LIST The function `member' tests to see whether OBJECT is a member of LIST, comparing members with OBJECT using `equal'. If OBJECT is a member, `member' returns a list starting with its first occurrence @@ -780,7 +782,7 @@ and the `(4)' in the `sample-list' are not `eq': (member "foo" '("foo" "bar")) => ("foo" "bar") - - Function: delete object list + - Function: delete OBJECT LIST This function destructively removes all elements `equal' to OBJECT from LIST. It is to `delq' as `member' is to `memq': it uses `equal' to compare elements with OBJECT, like `member'; when it @@ -818,7 +820,7 @@ key `maple' is associated with `seeds'. The associated values in an alist may be any Lisp objects; so may the keys. For example, in the following alist, the symbol `a' is associated with the number `1', and the string `"b"' is associated with -the _list_ `(2 3)', which is the CDR of the alist element: +the *list* `(2 3)', which is the CDR of the alist element: ((a . 1) ("b" 2 3)) @@ -845,7 +847,7 @@ the front of the list. When searching an association list for an association with a given key, the first one found is returned, if there is more than one. - In XEmacs Lisp, it is _not_ an error if an element of an association + In XEmacs Lisp, it is *not* an error if an element of an association list is not a cons cell. The alist search functions simply ignore such elements. Many other versions of Lisp signal errors in such cases. @@ -854,10 +856,10 @@ respects. A property list behaves like an association list in which each key can occur only once. *Note Property Lists::, for a comparison of property lists and association lists. - - Function: assoc key alist + - Function: assoc KEY ALIST This function returns the first association for KEY in ALIST. It compares KEY against the alist elements using `equal' (*note - Equality Predicates::). It returns `nil' if no association in + Equality Predicates::.). It returns `nil' if no association in ALIST has a CAR `equal' to KEY. For example: (setq trees '((pine . cones) (oak . acorns) (maple . seeds))) @@ -882,7 +884,7 @@ of property lists and association lists. (cdr (assoc 2 needles-per-cluster)) => ("Austrian Pine" "Red Pine") - - Function: rassoc value alist + - Function: rassoc VALUE ALIST This function returns the first association with value VALUE in ALIST. It returns `nil' if no association in ALIST has a CDR `equal' to VALUE. @@ -891,7 +893,7 @@ of property lists and association lists. ALIST association instead of the CAR. You can think of this as "reverse `assoc'", finding the key for a given value. - - Function: assq key alist + - Function: assq KEY ALIST This function is like `assoc' in that it returns the first association for KEY in ALIST, but it makes the comparison using `eq' instead of `equal'. `assq' returns `nil' if no association @@ -916,7 +918,7 @@ of property lists and association lists. (assoc "simple leaves" leaves) => ("simple leaves" . oak) - - Function: rassq value alist + - Function: rassq VALUE ALIST This function returns the first association with value VALUE in ALIST. It returns `nil' if no association in ALIST has a CDR `eq' to VALUE. @@ -948,7 +950,7 @@ of property lists and association lists. (lily white) == (lily . (white)) - - Function: remassoc key alist + - Function: remassoc KEY ALIST This function deletes by side effect any associations with key KEY in ALIST - i.e. it removes any elements from ALIST whose `car' is `equal' to KEY. The modified ALIST is returned. @@ -958,7 +960,7 @@ of property lists and association lists. `(setq foo (remassoc key foo))' to be sure of changing the value of `foo'. - - Function: remassq key alist + - Function: remassq KEY ALIST This function deletes by side effect any associations with key KEY in ALIST - i.e. it removes any elements from ALIST whose `car' is `eq' to KEY. The modified ALIST is returned. @@ -966,7 +968,7 @@ of property lists and association lists. This function is exactly like `remassoc', but comparisons between KEY and keys in ALIST are done using `eq' instead of `equal'. - - Function: remrassoc value alist + - Function: remrassoc VALUE ALIST This function deletes by side effect any associations with value VALUE in ALIST - i.e. it removes any elements from ALIST whose `cdr' is `equal' to VALUE. The modified ALIST is returned. @@ -981,7 +983,7 @@ of property lists and association lists. as "reverse `remassoc'", removing an association based on its value instead of its key. - - Function: remrassq value alist + - Function: remrassq VALUE ALIST This function deletes by side effect any associations with value VALUE in ALIST - i.e. it removes any elements from ALIST whose `cdr' is `eq' to VALUE. The modified ALIST is returned. @@ -989,7 +991,7 @@ of property lists and association lists. This function is exactly like `remrassoc', but comparisons between VALUE and values in ALIST are done using `eq' instead of `equal'. - - Function: copy-alist alist + - Function: copy-alist ALIST This function returns a two-level deep copy of ALIST: it creates a new copy of each association, so that you can alter the associations of the new alist without changing the old one. @@ -1060,13 +1062,13 @@ association lists generally are not. compared with `eq', and "lax" plists, whose keys are compared with `equal', - - Function: valid-plist-p plist + - Function: valid-plist-p PLIST Given a plist, this function returns non-`nil' if its format is correct. If it returns `nil', `check-valid-plist' will signal an error when given the plist; that means it's a malformed or circular plist or has non-symbols as keywords. - - Function: check-valid-plist plist + - Function: check-valid-plist PLIST Given a plist, this function signals an error if there is anything wrong with it. This means that it's a malformed or circular plist. @@ -1082,25 +1084,25 @@ File: lispref.info, Node: Working With Normal Plists, Next: Working With Lax P Working With Normal Plists -------------------------- - - Function: plist-get plist prop &optional default + - Function: plist-get PLIST PROP &optional DEFAULT This function extracts a value from a property list. The function returns the value corresponding to the given PROP, or DEFAULT if PROP is not one of the properties on the list. - - Function: plist-put plist prop val + - Function: plist-put PLIST PROP VAL This function changes the value in PLIST of PROP to VAL. If PROP is already a property on the list, its value is set to VAL, otherwise the new PROP VAL pair is added. The new plist is returned; use `(setq x (plist-put x prop val))' to be sure to use the new value. The PLIST is modified by side effects. - - Function: plist-remprop plist prop + - Function: plist-remprop PLIST PROP This function removes from PLIST the property PROP and its value. The new plist is returned; use `(setq x (plist-remprop x prop val))' to be sure to use the new value. The PLIST is modified by side effects. - - Function: plist-member plist prop + - Function: plist-member PLIST PROP This function returns `t' if PROP has a value specified in PLIST. In the following functions, if optional arg NIL-MEANS-NOT-PRESENT is @@ -1109,16 +1111,16 @@ This feature is a virus that has infected old Lisp implementations (and thus E-Lisp, due to RMS's enamorment with old Lisps), but should not be used except for backward compatibility. - - Function: plists-eq a b &optional nil-means-not-present + - Function: plists-eq A B &optional NIL-MEANS-NOT-PRESENT This function returns non-`nil' if property lists A and B are `eq' (i.e. their values are `eq'). - - Function: plists-equal a b &optional nil-means-not-present + - Function: plists-equal A B &optional NIL-MEANS-NOT-PRESENT This function returns non-`nil' if property lists A and B are `equal' (i.e. their values are `equal'; their keys are still compared using `eq'). - - Function: canonicalize-plist plist &optional nil-means-not-present + - Function: canonicalize-plist PLIST &optional NIL-MEANS-NOT-PRESENT This function destructively removes any duplicate entries from a plist. In such cases, the first entry applies. @@ -1135,21 +1137,21 @@ Working With Lax Plists Recall that a "lax plist" is a property list whose keys are compared using `equal' instead of `eq'. - - Function: lax-plist-get lax-plist prop &optional default + - Function: lax-plist-get LAX-PLIST PROP &optional DEFAULT This function extracts a value from a lax property list. The function returns the value corresponding to the given PROP, or DEFAULT if PROP is not one of the properties on the list. - - Function: lax-plist-put lax-plist prop val + - Function: lax-plist-put LAX-PLIST PROP VAL This function changes the value in LAX-PLIST of PROP to VAL. - - Function: lax-plist-remprop lax-plist prop + - Function: lax-plist-remprop LAX-PLIST PROP This function removes from LAX-PLIST the property PROP and its value. The new plist is returned; use `(setq x (lax-plist-remprop x prop val))' to be sure to use the new value. The LAX-PLIST is modified by side effects. - - Function: lax-plist-member lax-plist prop + - Function: lax-plist-member LAX-PLIST PROP This function returns `t' if PROP has a value specified in LAX-PLIST. @@ -1159,17 +1161,17 @@ This feature is a virus that has infected old Lisp implementations (and thus E-Lisp, due to RMS's enamorment with old Lisps), but should not be used except for backward compatibility. - - Function: lax-plists-eq a b &optional nil-means-not-present + - Function: lax-plists-eq A B &optional NIL-MEANS-NOT-PRESENT This function returns non-`nil' if lax property lists A and B are `eq' (i.e. their values are `eq'; their keys are still compared using `equal'). - - Function: lax-plists-equal a b &optional nil-means-not-present + - Function: lax-plists-equal A B &optional NIL-MEANS-NOT-PRESENT This function returns non-`nil' if lax property lists A and B are `equal' (i.e. their values are `equal'). - - Function: canonicalize-lax-plist lax-plist &optional - nil-means-not-present + - Function: canonicalize-lax-plist LAX-PLIST &optional + NIL-MEANS-NOT-PRESENT This function destructively removes any duplicate entries from a lax plist. In such cases, the first entry applies. @@ -1183,7 +1185,7 @@ File: lispref.info, Node: Converting Plists To/From Alists, Prev: Working With Converting Plists To/From Alists -------------------------------- - - Function: alist-to-plist alist + - Function: alist-to-plist ALIST This function converts association list ALIST into the equivalent property-list form. The plist is returned. This converts from @@ -1195,7 +1197,7 @@ Converting Plists To/From Alists The original alist is not modified. - - Function: plist-to-alist plist + - Function: plist-to-alist PLIST This function converts property list PLIST into the equivalent association-list form. The alist is returned. This converts from @@ -1212,11 +1214,11 @@ except that they destructively modify their arguments, using cons cells from the original list to form the new list rather than allocating new cons cells. - - Function: destructive-alist-to-plist alist + - Function: destructive-alist-to-plist ALIST This function destructively converts association list ALIST into the equivalent property-list form. The plist is returned. - - Function: destructive-plist-to-alist plist + - Function: destructive-plist-to-alist PLIST This function destructively converts property list PLIST into the equivalent association-list form. The alist is returned. @@ -1241,9 +1243,9 @@ parent will still be reclaimed, and will automatically be removed from its parent's list of children. Weak lists are similar to weak hash tables (*note Weak Hash -Tables::). +Tables::.). - - Function: weak-list-p object + - Function: weak-list-p OBJECT This function returns non-`nil' if OBJECT is a weak list. Weak lists come in one of four types: @@ -1264,18 +1266,18 @@ Tables::). Objects in the list disappear if they are conses and the cdr is not referenced outside of the list. - - Function: make-weak-list &optional type + - Function: make-weak-list &optional TYPE This function creates a new weak list of type TYPE. TYPE is a symbol (one of `simple', `assoc', `key-assoc', or `value-assoc', as described above) and defaults to `simple'. - - Function: weak-list-type weak + - Function: weak-list-type WEAK This function returns the type of the given weak-list object. - - Function: weak-list-list weak + - Function: weak-list-list WEAK This function returns the list contained in a weak-list object. - - Function: set-weak-list-list weak new-list + - Function: set-weak-list-list WEAK NEW-LIST This function changes the list contained in a weak-list object.  diff --git a/info/lispref.info-7 b/info/lispref.info-7 index 7c4b616..1c5826c 100644 --- a/info/lispref.info-7 +++ b/info/lispref.info-7 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -60,11 +60,11 @@ vector, or a string. The common property that all sequences have is that each is an ordered collection of elements. This section describes functions that accept any kind of sequence. - - Function: sequencep object + - Function: sequencep OBJECT Returns `t' if OBJECT is a list, vector, bit vector, or string, `nil' otherwise. - - Function: copy-sequence sequence + - Function: copy-sequence SEQUENCE Returns a copy of SEQUENCE. The copy is the same type of object as the original sequence, and it has the same elements in the same order. @@ -115,7 +115,7 @@ functions that accept any kind of sequence. (bit-vector 1 0 1 1 0 1 0 0) => #*10110100 - - Function: length sequence + - Function: length SEQUENCE Returns the number of elements in SEQUENCE. If SEQUENCE is a cons cell that is not a list (because the final CDR is not `nil'), a `wrong-type-argument' error is signaled. @@ -131,7 +131,7 @@ functions that accept any kind of sequence. (length #*01101) => 5 - - Function: elt sequence index + - Function: elt SEQUENCE INDEX This function returns the element of SEQUENCE indexed by INDEX. Legitimate values of INDEX are integers ranging from 0 up to one less than the length of SEQUENCE. If SEQUENCE is a list, then @@ -151,8 +151,8 @@ functions that accept any kind of sequence. (elt [1 2 3 4] -1) error-->Args out of range: [1 2 3 4], -1 - This function generalizes `aref' (*note Array Functions::) and - `nth' (*note List Elements::). + This function generalizes `aref' (*note Array Functions::.) and + `nth' (*note List Elements::.).  File: lispref.info, Node: Arrays, Next: Array Functions, Prev: Sequence Functions, Up: Sequences Arrays Vectors @@ -188,7 +188,7 @@ Type::, *Note Vector Type::, and *Note Bit Vector Type::. * The elements of an array may be referenced or changed with the functions `aref' and `aset', respectively (*note Array - Functions::). + Functions::.). In principle, if you wish to have an array of text characters, you could use either a string or a vector. In practice, we always choose @@ -233,7 +233,7 @@ Functions that Operate on Arrays In this section, we describe the functions that accept strings, vectors, and bit vectors. - - Function: arrayp object + - Function: arrayp OBJECT This function returns `t' if OBJECT is an array (i.e., a string, vector, or bit vector). @@ -244,7 +244,7 @@ vectors, and bit vectors. (arrayp #*101) => t - - Function: aref array index + - Function: aref ARRAY INDEX This function returns the INDEXth element of ARRAY. The first element is at index zero. @@ -263,7 +263,7 @@ vectors, and bit vectors. See also the function `elt', in *Note Sequence Functions::. - - Function: aset array index object + - Function: aset ARRAY INDEX OBJECT This function sets the INDEXth element of ARRAY to be OBJECT. It returns OBJECT. @@ -291,7 +291,7 @@ vectors, and bit vectors. If ARRAY is a string and OBJECT is not a character, a `wrong-type-argument' error results. - - Function: fillarray array object + - Function: fillarray ARRAY OBJECT This function fills the array ARRAY with OBJECT, so that each element of ARRAY is OBJECT. It returns ARRAY. @@ -364,7 +364,7 @@ Functions That Operate on Vectors Here are some functions that relate to vectors: - - Function: vectorp object + - Function: vectorp OBJECT This function returns `t' if OBJECT is a vector. (vectorp [a]) @@ -372,7 +372,7 @@ Functions That Operate on Vectors (vectorp "asdf") => nil - - Function: vector &rest objects + - Function: vector &rest OBJECTS This function creates and returns a vector whose elements are the arguments, OBJECTS. @@ -381,14 +381,14 @@ Functions That Operate on Vectors (vector) => [] - - Function: make-vector length object + - Function: make-vector LENGTH OBJECT This function returns a new vector consisting of LENGTH elements, each initialized to OBJECT. (setq sleepy (make-vector 9 'Z)) => [Z Z Z Z Z Z Z Z Z] - - Function: vconcat &rest sequences + - Function: vconcat &rest SEQUENCES This function returns a new vector containing all the elements of the SEQUENCES. The arguments SEQUENCES may be lists, vectors, or strings. If no SEQUENCES are given, an empty vector is returned. @@ -411,8 +411,8 @@ Functions That Operate on Vectors of the original integers. *Don't use this feature; we plan to eliminate it. If you already use this feature, change your programs now!* The proper way to convert an integer to a decimal - number in this way is with `format' (*note Formatting Strings::) - or `number-to-string' (*note String Conversion::). + number in this way is with `format' (*note Formatting Strings::.) + or `number-to-string' (*note String Conversion::.). For other concatenation functions, see `mapconcat' in *Note Mapping Functions::, `concat' in *Note Creating Strings::, `append' @@ -420,7 +420,7 @@ Functions That Operate on Vectors Functions::. The `append' function provides a way to convert a vector into a list -with the same elements (*note Building Lists::): +with the same elements (*note Building Lists::.): (setq avector [1 two (quote (three)) "four" [five]]) => [1 two (quote (three)) "four" [five]] @@ -458,7 +458,7 @@ Functions That Operate on Bit Vectors Here are some functions that relate to bit vectors: - - Function: bit-vector-p object + - Function: bit-vector-p OBJECT This function returns `t' if OBJECT is a bit vector. (bit-vector-p #*01) @@ -468,10 +468,10 @@ Functions That Operate on Bit Vectors (bit-vector-p "01") => nil - - Function: bitp object + - Function: bitp OBJECT This function returns `t' if OBJECT is either 0 or 1. - - Function: bit-vector &rest objects + - Function: bit-vector &rest OBJECTS This function creates and returns a bit vector whose elements are the arguments OBJECTS. The elements must be either of the two integers 0 or 1. @@ -481,14 +481,14 @@ Functions That Operate on Bit Vectors (bit-vector) => #* - - Function: make-bit-vector length object + - Function: make-bit-vector LENGTH OBJECT This function creates and returns a bit vector consisting of LENGTH elements, each initialized to OBJECT. (setq picket-fence (make-bit-vector 9 1)) => #*111111111 - - Function: bvconcat &rest sequences + - Function: bvconcat &rest SEQUENCES This function returns a new bit vector containing all the elements of the SEQUENCES. The arguments SEQUENCES may be lists, vectors, or bit vectors, all of whose elements are the integers 0 or 1. If @@ -512,7 +512,7 @@ Functions That Operate on Bit Vectors Building Lists::. The `append' function provides a way to convert a bit vector into a -list with the same elements (*note Building Lists::): +list with the same elements (*note Building Lists::.): (setq bv #*00001110) => #*00001110 @@ -535,7 +535,7 @@ Type::. You can test whether an arbitrary Lisp object is a symbol with `symbolp': - - Function: symbolp object + - Function: symbolp OBJECT This function returns `t' if OBJECT is a symbol, `nil' otherwise. * Menu: @@ -594,15 +594,15 @@ Symbols::.) In normal usage, the function cell usually contains a function or macro, as that is what the Lisp interpreter expects to see there (*note -Evaluation::). Keyboard macros (*note Keyboard Macros::), keymaps -(*note Keymaps::) and autoload objects (*note Autoloading::) are also +Evaluation::.). Keyboard macros (*note Keyboard Macros::.), keymaps +(*note Keymaps::.) and autoload objects (*note Autoloading::.) are also sometimes stored in the function cell of symbols. We often refer to "the function `foo'" when we really mean the function stored in the function cell of the symbol `foo'. We make the distinction only when necessary. The property list cell normally should hold a correctly formatted -property list (*note Property Lists::), as a number of functions expect +property list (*note Property Lists::.), as a number of functions expect to see a property list there. The function cell or the value cell may be "void", which means that @@ -635,9 +635,9 @@ file. (29529 is the offset from the beginning of the `DOC' file to where that documentation string begins.) The function cell contains the function for returning the name of the file. `buffer-file-name' names a primitive function, which has no read syntax and prints in hash -notation (*note Primitive Function Type::). A symbol naming a function -written in Lisp would have a lambda expression (or a byte-code object) -in this cell. +notation (*note Primitive Function Type::.). A symbol naming a +function written in Lisp would have a lambda expression (or a byte-code +object) in this cell.  File: lispref.info, Node: Definitions, Next: Creating Symbols, Prev: Symbol Components, Up: Symbols @@ -679,7 +679,7 @@ as a variable or function. Thus, you can make a symbol a global variable with `setq', whether you define it first or not. The real purpose of definitions is to guide programmers and programming tools. They inform programmers who read the code that certain symbols are -_intended_ to be used as variables, or as functions. In addition, +*intended* to be used as variables, or as functions. In addition, utilities such as `etags' and `make-docfile' recognize definitions, and add appropriate information to tag tables and the `DOC' file. *Note Accessing Documentation::. @@ -744,7 +744,7 @@ symbol in the obarray bucket. The results would be unpredictable. It is possible for two different symbols to have the same name in different obarrays; these symbols are not `eq' or `equal'. However, this normally happens only as part of the abbrev mechanism (*note -Abbrevs::). +Abbrevs::.). Common Lisp note: In Common Lisp, a single symbol may be interned in several obarrays. @@ -753,7 +753,7 @@ Abbrevs::). arguments. A `wrong-type-argument' error is signaled if the name is not a string, or if the obarray is not a vector. - - Function: symbol-name symbol + - Function: symbol-name SYMBOL This function returns the string that is SYMBOL's name. For example: @@ -764,7 +764,7 @@ not a string, or if the obarray is not a vector. the name of the symbol, but fails to update the obarray, so don't do it! - - Function: make-symbol name + - Function: make-symbol NAME This function returns a newly-allocated, uninterned symbol whose name is NAME (which must be a string). Its value and function definition are void, and its property list is `nil'. In the @@ -776,7 +776,7 @@ not a string, or if the obarray is not a vector. (eq sym 'foo) => nil - - Function: intern name &optional obarray + - Function: intern NAME &optional OBARRAY This function returns the interned symbol whose name is NAME. If there is no such symbol in the obarray OBARRAY, `intern' creates a new one, adds it to the obarray, and returns it. If OBARRAY is @@ -792,7 +792,7 @@ not a string, or if the obarray is not a vector. (eq sym 'foo) => nil - - Function: intern-soft name &optional obarray + - Function: intern-soft NAME &optional OBARRAY This function returns the symbol in OBARRAY whose name is NAME, or `nil' if OBARRAY has no symbol with that name. Therefore, you can use `intern-soft' to test whether a symbol with a given name is @@ -805,10 +805,13 @@ not a string, or if the obarray is not a vector. => frazzle (intern-soft "frazzle") ; That one cannot be found. => nil + (setq sym (intern "frazzle")) ; Create an interned one. => frazzle + (intern-soft "frazzle") ; That one can be found! => frazzle + (eq sym 'frazzle) ; And it is the same one. => t @@ -816,7 +819,7 @@ not a string, or if the obarray is not a vector. This variable is the standard obarray for use by `intern' and `read'. - - Function: mapatoms function &optional obarray + - Function: mapatoms FUNCTION &optional OBARRAY This function calls FUNCTION for each symbol in the obarray OBARRAY. It returns `nil'. If OBARRAY is omitted, it defaults to the value of `obarray', the standard obarray for ordinary symbols. @@ -834,7 +837,7 @@ not a string, or if the obarray is not a vector. See `documentation' in *Note Accessing Documentation::, for another example using `mapatoms'. - - Function: unintern symbol &optional obarray + - Function: unintern SYMBOL &optional OBARRAY This function deletes SYMBOL from the obarray OBARRAY. If `symbol' is not actually in the obarray, `unintern' does nothing. If OBARRAY is `nil', the current obarray is used. @@ -888,7 +891,7 @@ File: lispref.info, Node: Plists and Alists, Next: Symbol Plists, Up: Symbol Property Lists and Association Lists ------------------------------------ - Association lists (*note Association Lists::) are very similar to + Association lists (*note Association Lists::.) are very similar to property lists. In contrast to association lists, the order of the pairs in the property list is not significant since the property names must be distinct. @@ -921,10 +924,10 @@ File: lispref.info, Node: Symbol Plists, Next: Other Plists, Prev: Plists and Property List Functions for Symbols ----------------------------------- - - Function: symbol-plist symbol + - Function: symbol-plist SYMBOL This function returns the property list of SYMBOL. - - Function: setplist symbol plist + - Function: setplist SYMBOL PLIST This function sets SYMBOL's property list to PLIST. Normally, PLIST should be a well-formed property list, but this is not enforced. @@ -937,9 +940,9 @@ Property List Functions for Symbols For symbols in special obarrays, which are not used for ordinary purposes, it may make sense to use the property list cell in a nonstandard fashion; in fact, the abbrev mechanism does so (*note - Abbrevs::). + Abbrevs::.). - - Function: get symbol property + - Function: get SYMBOL PROPERTY This function finds the value of the property named PROPERTY in SYMBOL's property list. If there is no such property, `nil' is returned. Thus, there is no distinction between a value of `nil' @@ -950,7 +953,7 @@ Property List Functions for Symbols See `put' for an example. - - Function: put symbol property value + - Function: put SYMBOL PROPERTY VALUE This function puts VALUE onto SYMBOL's property list under the property name PROPERTY, replacing any previous property value. The `put' function returns VALUE. @@ -973,14 +976,14 @@ Property Lists Outside Symbols These functions are useful for manipulating property lists that are stored in places other than symbols: - - Function: getf plist property &optional default + - Function: getf PLIST PROPERTY &optional DEFAULT This returns the value of the PROPERTY property stored in the property list PLIST. For example, (getf '(foo 4) 'foo) => 4 - - Function: putf plist property value + - Function: putf PLIST PROPERTY VALUE This stores VALUE as the value of the PROPERTY property in the property list PLIST. It may modify PLIST destructively, or it may construct a new list structure without altering the old. The @@ -994,13 +997,13 @@ stored in places other than symbols: (setq my-plist (putf my-plist 'quux '(a))) => (quux (a) bar t foo 5) - - Function: plists-eq a b + - Function: plists-eq A B This function returns non-`nil' if property lists A and B are `eq'. This means that the property lists have the same values for all the same properties, where comparison between values is done using `eq'. - - Function: plists-equal a b + - Function: plists-equal A B This function returns non-`nil' if property lists A and B are `equal'. @@ -1084,7 +1087,7 @@ function `car'. in it. *Note Functions::. The execution of the function may itself work by evaluating the function definition; or the function may be a Lisp primitive implemented in C, or it may be a byte-compiled function -(*note Byte Compilation::). +(*note Byte Compilation::.). The evaluation of forms takes place in a context called the "environment", which consists of the current values and bindings of all @@ -1093,14 +1096,14 @@ creating a new binding for it, the value of the binding in the current environment is used. *Note Variables::. Evaluation of a form may create new environments for recursive -evaluation by binding variables (*note Local Variables::). These +evaluation by binding variables (*note Local Variables::.). These environments are temporary and vanish by the time evaluation of the form is complete. The form may also make changes that persist; these changes are called "side effects". An example of a form that produces side effects is `(setq foo 1)'. The details of what evaluation means for each kind of form are -described below (*note Forms::). +described below (*note Forms::.). ---------- Footnotes ---------- @@ -1126,13 +1129,13 @@ ability to pass information to them as arguments. The functions and variables described in this section evaluate forms, specify limits to the evaluation process, or record recently returned -values. Loading a file also does evaluation (*note Loading::). +values. Loading a file also does evaluation (*note Loading::.). - - Function: eval form + - Function: eval FORM This is the basic function for performing evaluation. It evaluates FORM in the current environment and returns the result. How the evaluation proceeds depends on the type of the object (*note - Forms::). + Forms::.). Since `eval' is a function, the argument expression that appears in a call to `eval' is evaluated twice: once as preparation before @@ -1152,7 +1155,7 @@ values. Loading a file also does evaluation (*note Loading::). The number of currently active calls to `eval' is limited to `max-lisp-eval-depth' (see below). - - Command: eval-region start end &optional stream + - Command: eval-region START END &optional STREAM This function evaluates the forms in the current buffer in the region defined by the positions START and END. It reads forms from the region and calls `eval' on them until the end of the region is @@ -1167,7 +1170,7 @@ values. Loading a file also does evaluation (*note Loading::). `eval-region' always returns `nil'. - - Command: eval-buffer buffer &optional stream + - Command: eval-buffer BUFFER &optional STREAM This is like `eval-region' except that it operates on the whole contents of BUFFER. @@ -1240,7 +1243,7 @@ starting with "all other types" which are self-evaluating forms. we find the real function via the symbol. * Function Forms:: Forms that call functions. * Macro Forms:: Forms that call macros. -* Special Forms:: ``Special forms'' are idiosyncratic primitives, +* Special Forms:: "Special forms" are idiosyncratic primitives, most of them extremely important. * Autoloading:: Functions set up to load files containing their real definitions. diff --git a/info/lispref.info-8 b/info/lispref.info-8 index a6423b1..ea85fa2 100644 --- a/info/lispref.info-8 +++ b/info/lispref.info-8 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -91,7 +91,7 @@ macro, or special form. The first step in evaluating a nonempty list is to examine its first element. This element alone determines what kind of form the list is and how the rest of the list is to be processed. The first element is -_not_ evaluated, as it would be in some Lisp dialects such as Scheme. +*not* evaluated, as it would be in some Lisp dialects such as Scheme.  File: lispref.info, Node: Function Indirection, Next: Function Forms, Prev: Classifying Lists, Up: Forms @@ -122,7 +122,7 @@ these types, the error `invalid-function' is signaled. The following example illustrates the symbol indirection process. We use `fset' to set the function cell of a symbol and `symbol-function' -to get the function cell contents (*note Function Cells::). +to get the function cell contents (*note Function Cells::.). Specifically, we store the symbol `car' into the function cell of `first', and the symbol `first' into the function cell of `erste'. @@ -133,10 +133,13 @@ Specifically, we store the symbol `car' into the function cell of (symbol-function 'car) => # + (fset 'first 'car) => car + (fset 'erste 'first) => first + (erste '(1 2 3)) ; Call the function referenced by `erste'. => 1 @@ -154,7 +157,7 @@ symbol function indirection when calling `erste'. The built-in function `indirect-function' provides an easy way to perform symbol function indirection explicitly. - - Function: indirect-function function + - Function: indirect-function FUNCTION This function returns the meaning of FUNCTION as a function. If FUNCTION is a symbol, then it finds FUNCTION's function definition and starts over with that value. If FUNCTION is not a symbol, @@ -183,9 +186,9 @@ a "function call". For example, here is a call to the function `+': remaining elements of the list from left to right. The results are the actual argument values, one value for each list element. The next step is to call the function with this list of arguments, effectively using -the function `apply' (*note Calling Functions::). If the function is +the function `apply' (*note Calling Functions::.). If the function is written in Lisp, the arguments are used to bind the argument variables -of the function (*note Lambda Expressions::); then the forms in the +of the function (*note Lambda Expressions::.); then the forms in the function body are evaluated in order, and the value of the last body form becomes the value of the function call. @@ -197,7 +200,7 @@ Lisp Macro Evaluation If the first element of a list being evaluated is a macro object, then the list is a "macro call". When a macro call is evaluated, the -elements of the rest of the list are _not_ initially evaluated. +elements of the rest of the list are *not* initially evaluated. Instead, these elements themselves are used as the arguments of the macro. The macro definition computes a replacement form, called the "expansion" of the macro, to be evaluated in place of the original @@ -247,82 +250,82 @@ evaluated may depend on the results of evaluating other arguments. XEmacs Lisp with a reference to where each is described. `and' - *note Combining Conditions:: + *note Combining Conditions::. `catch' - *note Catch and Throw:: + *note Catch and Throw::. `cond' - *note Conditionals:: + *note Conditionals::. `condition-case' - *note Handling Errors:: + *note Handling Errors::. `defconst' - *note Defining Variables:: + *note Defining Variables::. `defmacro' - *note Defining Macros:: + *note Defining Macros::. `defun' - *note Defining Functions:: + *note Defining Functions::. `defvar' - *note Defining Variables:: + *note Defining Variables::. `function' - *note Anonymous Functions:: + *note Anonymous Functions::. `if' - *note Conditionals:: + *note Conditionals::. `interactive' - *note Interactive Call:: + *note Interactive Call::. `let' `let*' - *note Local Variables:: + *note Local Variables::. `or' - *note Combining Conditions:: + *note Combining Conditions::. `prog1' `prog2' `progn' - *note Sequencing:: + *note Sequencing::. `quote' - *note Quoting:: + *note Quoting::. `save-current-buffer' - *note Excursions:: + *note Excursions::. `save-excursion' - *note Excursions:: + *note Excursions::. `save-restriction' - *note Narrowing:: + *note Narrowing::. `save-selected-window' - *note Excursions:: + *note Excursions::. `save-window-excursion' - *note Window Configurations:: + *note Window Configurations::. `setq' - *note Setting Variables:: + *note Setting Variables::. `setq-default' - *note Creating Buffer-Local:: + *note Creating Buffer-Local::. `unwind-protect' - *note Nonlocal Exits:: + *note Nonlocal Exits::. `while' - *note Iteration:: + *note Iteration::. `with-output-to-temp-buffer' - *note Temporary Displays:: + *note Temporary Displays::. Common Lisp note: here are some comparisons of special forms in XEmacs Lisp and Common Lisp. `setq', `if', and `catch' are @@ -358,7 +361,7 @@ and lists, which are not self-evaluating objects, in a program. (It is not necessary to quote self-evaluating objects such as numbers, strings, and vectors.) - - Special Form: quote object + - Special Form: quote OBJECT This special form returns OBJECT, without evaluating it. Because `quote' is used so often in programs, Lisp provides a @@ -383,9 +386,9 @@ syntax `'x' is an abbreviation for `(quote x)'. => [(quote foo)] Other quoting constructs include `function' (*note Anonymous -Functions::), which causes an anonymous lambda expression written in -Lisp to be compiled, and ``' (*note Backquote::), which is used to quote -only part of a list, while computing and substituting other parts. +Functions::.), which causes an anonymous lambda expression written in +Lisp to be compiled, and ``' (*note Backquote::.), which is used to +quote only part of a list, while computing and substituting other parts.  File: lispref.info, Node: Control Structures, Next: Variables, Prev: Evaluation, Up: Top @@ -393,7 +396,7 @@ File: lispref.info, Node: Control Structures, Next: Variables, Prev: Evaluati Control Structures ****************** - A Lisp program consists of expressions or "forms" (*note Forms::). + A Lisp program consists of expressions or "forms" (*note Forms::.). We control the order of execution of the forms by enclosing them in "control structures". Control structures are special forms which control when, whether, or how many times to execute the forms they @@ -415,7 +418,7 @@ other varieties of sequencing, conditionals, iteration, and (controlled) jumps--all discussed below. The built-in control structures are special forms since their subforms are not necessarily evaluated or not evaluated sequentially. You can use macros to define your own control -structure constructs (*note Macros::). +structure constructs (*note Macros::.). * Menu: @@ -455,7 +458,7 @@ structures likewise contain an implicit `progn'. As a result, `progn' is not used as often as it used to be. It is needed now most often inside an `unwind-protect', `and', `or', or in the THEN-part of an `if'. - - Special Form: progn forms... + - Special Form: progn FORMS... This special form evaluates all of the FORMS, in textual order, returning the result of the final form. @@ -470,7 +473,7 @@ inside an `unwind-protect', `and', `or', or in the THEN-part of an `if'. Two other control constructs likewise evaluate a series of forms but return a different value: - - Special Form: prog1 form1 forms... + - Special Form: prog1 FORM1 FORMS... This special form evaluates FORM1 and all of the FORMS, in textual order, returning the result of FORM1. @@ -487,7 +490,7 @@ return a different value: (prog1 (car x) (setq x (cdr x))) - - Special Form: prog2 form1 form2 forms... + - Special Form: prog2 FORM1 FORM2 FORMS... This special form evaluates FORM1, FORM2, and all of the following FORMS, in textual order, returning the result of FORM2. @@ -509,7 +512,7 @@ Conditionals Lisp has two conditional forms: `if', which is much the same as in other languages, and `cond', which is a generalized case statement. - - Special Form: if condition then-form else-forms... + - Special Form: if CONDITION THEN-FORM ELSE-FORMS... `if' chooses between the THEN-FORM and the ELSE-FORMS based on the value of CONDITION. If the evaluated CONDITION is non-`nil', THEN-FORM is evaluated and the result returned. Otherwise, the @@ -529,7 +532,7 @@ languages, and `cond', which is a generalized case statement. 'very-false) => very-false - - Special Form: cond clause... + - Special Form: cond CLAUSE... `cond' chooses among an arbitrary number of alternatives. Each CLAUSE in the `cond' must be a list. The CAR of this list is the CONDITION; the remaining elements, if any, the BODY-FORMS. Thus, @@ -600,13 +603,13 @@ with `if' and `cond' to express complicated conditions. The constructs `and' and `or' can also be used individually as kinds of multiple conditional constructs. - - Function: not condition + - Function: not CONDITION This function tests for the falsehood of CONDITION. It returns `t' if CONDITION is `nil', and `nil' otherwise. The function `not' is identical to `null', and we recommend using the name `null' if you are testing for an empty list. - - Special Form: and conditions... + - Special Form: and CONDITIONS... The `and' special form tests whether all the CONDITIONS are true. It works by evaluating the CONDITIONS one by one in the order written. @@ -645,7 +648,7 @@ conditional constructs. == (cond (ARG1 (cond (ARG2 ARG3)))) - - Special Form: or conditions... + - Special Form: or CONDITIONS... The `or' special form tests whether at least one of the CONDITIONS is true. It works by evaluating all the CONDITIONS one by one in the order written. @@ -693,7 +696,7 @@ example, you might want to repeat some computation once for each element of a list, or once for each integer from 0 to N. You can do this in XEmacs Lisp with the special form `while': - - Special Form: while condition forms... + - Special Form: while CONDITION FORMS... `while' first evaluates CONDITION. If the result is non-`nil', it evaluates FORMS in textual order. Then it reevaluates CONDITION, and if the result is non-`nil', it evaluates FORMS again. This @@ -701,7 +704,8 @@ XEmacs Lisp with the special form `while': There is no limit on the number of iterations that may occur. The loop will continue until either CONDITION evaluates to `nil' or - until an error or `throw' jumps out of it (*note Nonlocal Exits::). + until an error or `throw' jumps out of it (*note Nonlocal + Exits::.). The value of a `while' form is always `nil'. @@ -782,12 +786,12 @@ innermost one takes precedence. `catch', including function calls. When binding constructs such as `let' or function calls are exited in this way, the bindings are unbound, just as they are when these constructs exit normally (*note -Local Variables::). Likewise, `throw' restores the buffer and position -saved by `save-excursion' (*note Excursions::), and the narrowing -status saved by `save-restriction' and the window selection saved by -`save-window-excursion' (*note Window Configurations::). It also runs -any cleanups established with the `unwind-protect' special form when it -exits that form (*note Cleanups::). +Local Variables::.). Likewise, `throw' restores the buffer and +position saved by `save-excursion' (*note Excursions::.), and the +narrowing status saved by `save-restriction' and the window selection +saved by `save-window-excursion' (*note Window Configurations::.). It +also runs any cleanups established with the `unwind-protect' special +form when it exits that form (*note Cleanups::.). The `throw' need not appear lexically within the `catch' that it jumps to. It can equally well be called from another function called @@ -795,14 +799,14 @@ within the `catch'. As long as the `throw' takes place chronologically after entry to the `catch', and chronologically before exit from it, it has access to that `catch'. This is why `throw' can be used in commands such as `exit-recursive-edit' that throw back to the editor -command loop (*note Recursive Editing::). +command loop (*note Recursive Editing::.). Common Lisp note: Most other versions of Lisp, including Common Lisp, have several ways of transferring control nonsequentially: `return', `return-from', and `go', for example. XEmacs Lisp has only `throw'. - - Special Form: catch tag body... + - Special Form: catch TAG BODY... `catch' establishes a return point for the `throw' function. The return point is distinguished from other such return points by TAG, which may be any Lisp object. The argument TAG is evaluated @@ -817,7 +821,7 @@ command loop (*note Recursive Editing::). the `catch' exits immediately; the value it returns is whatever was specified as the second argument of `throw'. - - Function: throw tag value + - Function: throw TAG VALUE The purpose of `throw' is to return from a return point previously established with `catch'. The argument TAG is used to choose among the various existing return points; it must be `eq' to the @@ -943,10 +947,10 @@ can also signal errors explicitly with the functions `error' and Quitting, which happens when the user types `C-g', is not considered an error, but it is handled almost like an error. *Note Quitting::. - - Function: error format-string &rest args + - Function: error FORMAT-STRING &rest ARGS This function signals an error with an error message constructed by - applying `format' (*note String Conversion::) to FORMAT-STRING and - ARGS. + applying `format' (*note String Conversion::.) to FORMAT-STRING + and ARGS. These examples show typical uses of `error': @@ -967,7 +971,7 @@ an error, but it is handled almost like an error. *Note Quitting::. will be interpreted as a format specifier, with undesirable results. Instead, use `(error "%s" STRING)'. - - Function: signal error-symbol data + - Function: signal ERROR-SYMBOL DATA This function signals an error named by ERROR-SYMBOL. The argument DATA is a list of additional Lisp objects relevant to the circumstances of the error. @@ -986,15 +990,15 @@ an error, but it is handled almost like an error. *Note Quitting::. Both ERROR-SYMBOL and DATA are available to any error handlers that handle the error: `condition-case' binds a local variable to a list of the form `(ERROR-SYMBOL . DATA)' (*note Handling - Errors::). If the error is not handled, these two values are used - in printing the error message. + Errors::.). If the error is not handled, these two values are + used in printing the error message. The function `signal' never returns (though in older Emacs versions it could sometimes return). (signal 'wrong-number-of-arguments '(x y)) error--> Wrong number of arguments: x, y - + (signal 'no-such-error '("My unknown error condition.")) error--> peculiar error: "My unknown error condition." @@ -1024,8 +1028,8 @@ print an error message. An error that has no explicit handler may call the Lisp debugger. The debugger is enabled if the variable `debug-on-error' (*note Error -Debugging::) is non-`nil'. Unlike error handlers, the debugger runs in -the environment of the error, so that you can examine values of +Debugging::.) is non-`nil'. Unlike error handlers, the debugger runs +in the environment of the error, so that you can examine values of variables precisely as they were at the time of the error.  @@ -1095,7 +1099,7 @@ caught by a `catch', and a `throw' cannot be handled by an error handler (though using `throw' when there is no suitable `catch' signals an error that can be handled). - - Special Form: condition-case var protected-form handlers... + - Special Form: condition-case VAR PROTECTED-FORM HANDLERS... This special form establishes the error handlers HANDLERS around the execution of PROTECTED-FORM. If PROTECTED-FORM executes without error, the value it returns becomes the value of the @@ -1119,9 +1123,9 @@ an error that can be handled). Each error that occurs has an "error symbol" that describes what kind of error it is. The `error-conditions' property of this - symbol is a list of condition names (*note Error Symbols::). Emacs - searches all the active `condition-case' forms for a handler that - specifies one or more of these condition names; the innermost + symbol is a list of condition names (*note Error Symbols::.). + Emacs searches all the active `condition-case' forms for a handler + that specifies one or more of these condition names; the innermost matching `condition-case' handles the error. Within this `condition-case', the first applicable handler handles the error. @@ -1153,7 +1157,7 @@ message and returns a very large number. (princ (format "Arithmetic error: %s" err)) 1000000))) => safe-divide - + (safe-divide 5 0) -| Arithmetic error: (arith-error) => 1000000 @@ -1170,7 +1174,7 @@ including those signaled with `error': (setq baz 34) => 34 - + (condition-case err (if (eq baz 35) t @@ -1232,7 +1236,7 @@ classification; and `error', which is the widest of all. not end with a period. This is for consistency with the rest of Emacs. Naturally, XEmacs will never signal `new-error' on its own; only an -explicit call to `signal' (*note Signaling Errors::) in your code can +explicit call to `signal' (*note Signaling Errors::.) in your code can do this: (signal 'new-error '(x y)) diff --git a/info/lispref.info-9 b/info/lispref.info-9 index 8a8df7b..6d2fafc 100644 --- a/info/lispref.info-9 +++ b/info/lispref.info-9 @@ -1,5 +1,5 @@ -This is ../info/lispref.info, produced by makeinfo version 3.12s from -lispref/lispref.texi. +This is Info file ../info/lispref.info, produced by Makeinfo version +1.68 from the input file lispref/lispref.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -59,7 +59,7 @@ Cleaning Up from Nonlocal Exits put a data structure in an inconsistent state; it permits you to ensure the data are consistent in the event of an error or throw. - - Special Form: unwind-protect body cleanup-forms... + - Special Form: unwind-protect BODY CLEANUP-FORMS... `unwind-protect' executes the BODY with a guarantee that the CLEANUP-FORMS will be evaluated if control leaves BODY, no matter how that happens. The BODY may complete normally, or execute a @@ -73,14 +73,14 @@ the data are consistent in the event of an error or throw. Only the BODY is actually protected by the `unwind-protect'. If any of the CLEANUP-FORMS themselves exits nonlocally (e.g., via a - `throw' or an error), `unwind-protect' is _not_ guaranteed to + `throw' or an error), `unwind-protect' is *not* guaranteed to evaluate the rest of them. If the failure of one of the CLEANUP-FORMS has the potential to cause trouble, then protect it with another `unwind-protect' around that form. The number of currently active `unwind-protect' forms counts, together with the number of local variable bindings, against the - limit `max-specpdl-size' (*note Local Variables::). + limit `max-specpdl-size' (*note Local Variables::.). For example, here we make an invisible buffer for temporary use, and make sure to kill it before finishing: @@ -100,7 +100,7 @@ another `save-excursion' around the body, to ensure that the temporary buffer becomes current in time to kill it.) Here is an actual example taken from the file `ftp.el'. It creates -a process (*note Processes::) to try to establish a connection to a +a process (*note Processes::.) to try to establish a connection to a remote machine. As the function `ftp-login' is highly susceptible to numerous problems that the writer of the function cannot anticipate, it is protected with a form that guarantees deletion of the process in the @@ -247,7 +247,7 @@ variables; these last until exit from the `let' form. one) of the variable. When the life span of the local value is over, the previous value is restored. In the mean time, we say that the previous value is "shadowed" and "not visible". Both global and local -values may be shadowed (*note Scope::). +values may be shadowed (*note Scope::.). If you set a variable (such as with `setq') while it is local, this replaces the local value; it does not alter the global value, or @@ -277,7 +277,7 @@ binding. The special forms `let' and `let*' exist to create local bindings. - - Special Form: let (bindings...) forms... + - Special Form: let (BINDINGS...) FORMS... This special form binds variables according to BINDINGS and then evaluates all of the FORMS in textual order. The `let'-form returns the value of the last form in FORMS. @@ -288,7 +288,7 @@ binding. evaluating VALUE-FORM. If VALUE-FORM is omitted, `nil' is used. All of the VALUE-FORMs in BINDINGS are evaluated in the order they - appear and _before_ any of the symbols are bound. Here is an + appear and *before* any of the symbols are bound. Here is an example of this: `Z' is bound to the old value of `Y', which is 2, not the new value, 1. @@ -299,7 +299,7 @@ binding. (list Y Z)) => (1 2) - - Special Form: let* (bindings...) forms... + - Special Form: let* (BINDINGS...) FORMS... This special form is like `let', but it binds each variable right after computing its local value, before computing the local value for the next variable. Therefore, an expression in BINDINGS can @@ -317,21 +317,21 @@ binding. Here is a complete list of the other facilities that create local bindings: - * Function calls (*note Functions::). + * Function calls (*note Functions::.). - * Macro calls (*note Macros::). + * Macro calls (*note Macros::.). - * `condition-case' (*note Errors::). + * `condition-case' (*note Errors::.). Variables can also have buffer-local bindings (*note Buffer-Local -Variables::). These kinds of bindings work somewhat like ordinary local -bindings, but they are localized depending on "where" you are in Emacs, -rather than localized in time. +Variables::.). These kinds of bindings work somewhat like ordinary +local bindings, but they are localized depending on "where" you are in +Emacs, rather than localized in time. - Variable: max-specpdl-size This variable defines the limit on the total number of local variable bindings and `unwind-protect' cleanups (*note Nonlocal - Exits::) that are allowed before signaling an error (with data + Exits::.) that are allowed before signaling an error (with data `"Variable binding depth exceeds max-specpdl-size"'). This limit, with the associated error when it is exceeded, is one @@ -356,13 +356,13 @@ value. Note that a value of `nil' is not the same as void. The symbol `nil' is a Lisp object and can be the value of a variable just as any -other object can be; but it is _a value_. A void variable does not +other object can be; but it is *a value*. A void variable does not have any value. After you have given a variable a value, you can make it void once more using `makunbound'. - - Function: makunbound symbol + - Function: makunbound SYMBOL This function makes the current binding of SYMBOL void. Subsequent attempts to use this symbol's value as a variable will signal the error `void-variable', unless or until you set it again. @@ -390,6 +390,7 @@ more using `makunbound'. (makunbound 'x) ; Void the local binding. x) error--> Symbol's value as variable is void: x + x ; The global binding is unchanged. => 1 @@ -398,7 +399,7 @@ more using `makunbound'. (makunbound 'x) ; Void the innermost-local binding. x)) ; And refer: it's void. error--> Symbol's value as variable is void: x - + (let ((x 2)) (let ((x 3)) (makunbound 'x)) ; Void inner binding, then remove it. @@ -412,20 +413,24 @@ always been void. You can use the function `boundp' to test whether a variable is currently void. - - Function: boundp variable + - Function: boundp VARIABLE `boundp' returns `t' if VARIABLE (a symbol) is not void; more precisely, if its current binding is not void. It returns `nil' otherwise. (boundp 'abracadabra) ; Starts out void. => nil + (let ((abracadabra 5)) ; Locally bind it. (boundp 'abracadabra)) => t + (boundp 'abracadabra) ; Still globally void. => nil + (setq abracadabra 5) ; Make it globally nonvoid. => 5 + (boundp 'abracadabra) => t @@ -440,7 +445,7 @@ with a "variable definition": a special form, either `defconst' or `defvar'. In XEmacs Lisp, definitions serve three purposes. First, they inform -people who read the code that certain symbols are _intended_ to be used +people who read the code that certain symbols are *intended* to be used a certain way (as variables). Second, they inform the Lisp system of these things, supplying a value and documentation. Third, they provide information to utilities such as `etags' and `make-docfile', which @@ -462,7 +467,7 @@ Users would like to be able to set user options in their init files, and override the default values given in the definitions. For this reason, user options must be defined with `defvar'. - - Special Form: defvar symbol [value [doc-string]] + - Special Form: defvar SYMBOL [VALUE [DOC-STRING]] This special form defines SYMBOL as a value and initializes it. The definition informs a person reading your code that SYMBOL is used as a variable that programs are likely to set or change. It @@ -490,7 +495,7 @@ reason, user options must be defined with `defvar'. for the variable. (This opportunity to specify documentation is one of the main benefits of defining the variable.) The documentation is stored in the symbol's `variable-documentation' - property. The XEmacs help functions (*note Documentation::) look + property. The XEmacs help functions (*note Documentation::.) look for this property. If the first character of DOC-STRING is `*', it means that this @@ -534,7 +539,7 @@ reason, user options must be defined with `defvar'. The `defvar' form returns SYMBOL, but it is normally used at top level in a file where its value does not matter. - - Special Form: defconst symbol [value [doc-string]] + - Special Form: defconst SYMBOL [VALUE [DOC-STRING]] This special form defines SYMBOL as a value and initializes it. It informs a person reading your code that SYMBOL has a global value, established here, that will not normally be changed or @@ -565,7 +570,7 @@ reason, user options must be defined with `defvar'. pi => 3 - - Function: user-variable-p variable + - Function: user-variable-p VARIABLE This function returns `t' if VARIABLE is a user option--a variable intended to be set by the user for customization--and `nil' otherwise. (Variables other than user options exist for the @@ -596,12 +601,12 @@ Accessing Variable Values ========================= The usual way to reference a variable is to write the symbol which -names it (*note Symbol Forms::). This requires you to specify the +names it (*note Symbol Forms::.). This requires you to specify the variable name when you write the program. Usually that is exactly what you want to do. Occasionally you need to choose at run time which variable to reference; then you can use `symbol-value'. - - Function: symbol-value symbol + - Function: symbol-value SYMBOL This function returns the value of SYMBOL. This is the value in the innermost local binding of the symbol, or its global value if it has no local bindings. @@ -640,7 +645,7 @@ How to Alter a Variable Value form `setq'. When you need to compute the choice of variable at run time, use the function `set'. - - Special Form: setq [symbol form]... + - Special Form: setq [SYMBOL FORM]... This special form is the most common method of changing a variable's value. Each SYMBOL is given a new value, which is the result of evaluating the corresponding FORM. The most-local @@ -671,7 +676,7 @@ time, use the function `set'. y (1+ x)) ; the value of `y' is computed. => 11 - - Function: set symbol value + - Function: set SYMBOL VALUE This function sets SYMBOL's value to VALUE, then returns VALUE. Since `set' is a function, the expression written for SYMBOL is evaluated to obtain the symbol to set. @@ -720,7 +725,7 @@ time, use the function `set'. One other function for setting a variable is designed to add an element to a list if it is not already present in the list. - - Function: add-to-list symbol element + - Function: add-to-list SYMBOL ELEMENT This function sets the variable SYMBOL by consing ELEMENT onto the old value, if ELEMENT is not already a member of that value. It returns the resulting list, whether updated or not. The value of @@ -761,10 +766,10 @@ binding. The most recently established binding takes precedence over the others. Local bindings in XEmacs Lisp have "indefinite scope" and "dynamic -extent". "Scope" refers to _where_ textually in the source code the +extent". "Scope" refers to *where* textually in the source code the binding can be accessed. Indefinite scope means that any part of the program can potentially access the variable binding. "Extent" refers -to _when_, as the program is executing, the binding exists. Dynamic +to *when*, as the program is executing, the binding exists. Dynamic extent means that the binding lasts as long as the activation of the construct that established it. @@ -817,7 +822,7 @@ established in `binder', depending on circumstances: (user)) * If we define `foo' as follows and call `binder', then the binding - made in `binder' _will not_ be seen in `user': + made in `binder' *will not* be seen in `user': (defun foo (x) (user)) @@ -1012,7 +1017,7 @@ File: lispref.info, Node: Creating Buffer-Local, Next: Default Value, Prev: I Creating and Deleting Buffer-Local Bindings ------------------------------------------- - - Command: make-local-variable variable + - Command: make-local-variable VARIABLE This function creates a buffer-local binding in the current buffer for VARIABLE (a symbol). Other buffers are not affected. The value returned is VARIABLE. @@ -1046,21 +1051,21 @@ Creating and Deleting Buffer-Local Bindings *Please note:* do not use `make-local-variable' for a hook variable. Instead, use `make-local-hook'. *Note Hooks::. - - Command: make-variable-buffer-local variable + - Command: make-variable-buffer-local VARIABLE This function marks VARIABLE (a symbol) automatically buffer-local, so that any subsequent attempt to set it will make it local to the current buffer at the time. The value returned is VARIABLE. - - Function: local-variable-p variable &optional buffer + - Function: local-variable-p VARIABLE &optional BUFFER This returns `t' if VARIABLE is buffer-local in buffer BUFFER (which defaults to the current buffer); otherwise, `nil'. - - Function: buffer-local-variables &optional buffer + - Function: buffer-local-variables &optional BUFFER This function returns a list describing the buffer-local variables in buffer BUFFER. It returns an association list (*note - Association Lists::) in which each association contains one + Association Lists::.) in which each association contains one buffer-local variable and its value. When a buffer-local variable is void in BUFFER, then it appears directly in the resulting list. If BUFFER is omitted, the current buffer is used. @@ -1082,9 +1087,9 @@ Creating and Deleting Buffer-Local Bindings (bind-me . 69)) Note that storing new values into the CDRs of cons cells in this - list does _not_ change the local values of the variables. + list does *not* change the local values of the variables. - - Command: kill-local-variable variable + - Command: kill-local-variable VARIABLE This function deletes the buffer-local binding (if any) for VARIABLE (a symbol) in the current buffer. As a result, the global (default) binding of VARIABLE becomes visible in this @@ -1146,13 +1151,13 @@ buffer-local value for this variable. The special forms `defvar' and `defconst' also set the default value (if they set the variable at all), rather than any local value. - - Function: default-value symbol + - Function: default-value SYMBOL This function returns SYMBOL's default value. This is the value that is seen in buffers that do not have their own values for this variable. If SYMBOL is not buffer-local, this is equivalent to - `symbol-value' (*note Accessing Variables::). + `symbol-value' (*note Accessing Variables::.). - - Function: default-boundp symbol + - Function: default-boundp SYMBOL The function `default-boundp' tells you whether SYMBOL's default value is nonvoid. If `(default-boundp 'foo)' returns `nil', then `(default-value 'foo)' would get an error. @@ -1160,7 +1165,7 @@ buffer-local value for this variable. `default-boundp' is to `default-value' as `boundp' is to `symbol-value'. - - Special Form: setq-default symbol value + - Special Form: setq-default SYMBOL VALUE This sets the default value of SYMBOL to VALUE. It does not evaluate SYMBOL, but does evaluate VALUE. The value of the `setq-default' form is VALUE. @@ -1200,7 +1205,7 @@ buffer-local value for this variable. (default-value 'local) => another-default - - Function: set-default symbol value + - Function: set-default SYMBOL VALUE This function is like `setq-default', except that SYMBOL is evaluated. diff --git a/info/new-users-guide.info b/info/new-users-guide.info index 41ab099..04758b0 100644 --- a/info/new-users-guide.info +++ b/info/new-users-guide.info @@ -1,5 +1,5 @@ -This is ../info/new-users-guide.info, produced by makeinfo version -3.12s from new-users-guide/new-users-guide.texi. +This is Info file ../info/new-users-guide.info, produced by Makeinfo +version 1.68 from the input file new-users-guide/new-users-guide.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -18,59 +18,59 @@ preserved on all copies.  Indirect: -new-users-guide.info-1: 637 -new-users-guide.info-2: 50473 -new-users-guide.info-3: 99975 +new-users-guide.info-1: 661 +new-users-guide.info-2: 50497 +new-users-guide.info-3: 100000  Tag Table: (Indirect) -Node: Top637 -Node: Intro4617 -Node: Entering7200 -Node: Enter8714 -Node: Frame9396 -Node: Exiting11065 -Node: Mode Line12265 -Node: Echo Area14412 -Node: Windows and Menus15767 -Node: XEmacs Window16220 -Node: Pull-down Menus19841 -Node: File menu20720 -Node: Edit menu23979 -Node: Options Menu26505 -Node: Buffers Menu31287 -Node: Help menu31673 -Node: Edit32171 -Node: Insert33765 -Node: Cursor Position35093 -Node: Erase37164 -Node: Numeric Argument38318 -Node: Undo39502 -Node: Customization Basics40265 -Node: Customizing key Bindings41494 -Node: Customizing Menus44984 -Node: Help50473 -Node: The Help Menu51161 -Node: Modes56086 -Node: Major Modes57002 -Node: Minor Modes60951 -Node: Files65037 -Node: File Names65759 -Node: Visiting67562 -Node: Saving Files69686 -Node: Other Customizations73063 -Node: Setting Variables75531 -Node: Init File78740 -Node: Select and Move84210 -Node: Selecting Text85164 -Node: Mouse86677 -Node: Region Operation88002 -Node: Moving Text89262 -Node: Accumulating text90502 -Node: Search and Replace92822 -Node: Key Index96686 -Node: Command Index99975 -Node: Variable Index104077 -Node: Concept Index104654 +Node: Top661 +Node: Intro4639 +Node: Entering7222 +Node: Enter8736 +Node: Frame9418 +Node: Exiting11087 +Node: Mode Line12287 +Node: Echo Area14434 +Node: Windows and Menus15789 +Node: XEmacs Window16242 +Node: Pull-down Menus19863 +Node: File menu20742 +Node: Edit menu24001 +Node: Options Menu26528 +Node: Buffers Menu31310 +Node: Help menu31696 +Node: Edit32194 +Node: Insert33788 +Node: Cursor Position35116 +Node: Erase37187 +Node: Numeric Argument38341 +Node: Undo39525 +Node: Customization Basics40288 +Node: Customizing key Bindings41517 +Node: Customizing Menus45007 +Node: Help50497 +Node: The Help Menu51185 +Node: Modes56110 +Node: Major Modes57026 +Node: Minor Modes60975 +Node: Files65061 +Node: File Names65783 +Node: Visiting67586 +Node: Saving Files69710 +Node: Other Customizations73088 +Node: Setting Variables75557 +Node: Init File78766 +Node: Select and Move84235 +Node: Selecting Text85189 +Node: Mouse86702 +Node: Region Operation88027 +Node: Moving Text89287 +Node: Accumulating text90527 +Node: Search and Replace92847 +Node: Key Index96711 +Node: Command Index100000 +Node: Variable Index104102 +Node: Concept Index104679  End Tag Table diff --git a/info/new-users-guide.info-1 b/info/new-users-guide.info-1 index d2a595e..4771478 100644 --- a/info/new-users-guide.info-1 +++ b/info/new-users-guide.info-1 @@ -1,5 +1,5 @@ -This is ../info/new-users-guide.info, produced by makeinfo version -3.12s from new-users-guide/new-users-guide.texi. +This is Info file ../info/new-users-guide.info, produced by Makeinfo +version 1.68 from the input file new-users-guide/new-users-guide.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -51,7 +51,7 @@ Other Features of XEmacs - --- The Detailed Node Listing --- + -- The Detailed Node Listing -- Entering and Exiting Emacs @@ -617,7 +617,7 @@ Undo Cut Removes the selected text block from the current buffer, makes it the X clipboard selection, and places it in the kill ring (*note - Moving Text::). Before executing this command, you have to select + Moving Text::.). Before executing this command, you have to select a region using Emacs region selection commands or with the mouse. *Note Selecting Text::. @@ -1156,7 +1156,7 @@ are: first if necessary. If the named item already exists, the menu will remain unchanged. For example, if you add the following example to your `.emacs' file or evaluate it (*note Customization - Basics::), + Basics::.), (add-menu-item '("Edit") "Replace String" replace-string t "Clear") diff --git a/info/new-users-guide.info-2 b/info/new-users-guide.info-2 index b66855c..bf56032 100644 --- a/info/new-users-guide.info-2 +++ b/info/new-users-guide.info-2 @@ -1,5 +1,5 @@ -This is ../info/new-users-guide.info, produced by makeinfo version -3.12s from new-users-guide/new-users-guide.texi. +This is Info file ../info/new-users-guide.info, produced by Makeinfo +version 1.68 from the input file new-users-guide/new-users-guide.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -546,7 +546,7 @@ if you set the variable MAKE-BACKUP-FILES to non-NIL i.e. `t', Emacs will create a "backup" file. Select the Describe variable option from the Help menu and look at the documentation for this variable. Its default value should be `t'. However, if its not then use `M-x -set-variable' to set it to `t' (*note Setting Variables::). The backup +set-variable' to set it to `t' (*note Setting Variables::.). The backup file will contain the contents from the last time you visited the file. Emacs also provides options for creating numbered backups. For more information on backups, *Note Backup: (xemacs)Backup. @@ -596,9 +596,9 @@ turn on the auto-fill-mode, add the appropriate hook as shown in the example above. Similarly, to enable the "font-lock mode" which displays your -program in different fonts and colors(*note Modes::), put the following -in your `.emacs' file. The comments above the statement explain what the -statements do. +program in different fonts and colors(*note Modes::.), put the +following in your `.emacs' file. The comments above the statement +explain what the statements do. ;;; enables the font-lock-mode in Lisp Mode (add-hook 'lisp-mode-hook 'turn-on-font-lock) @@ -870,7 +870,6 @@ find any of them useful, just type them in your `.emacs' file: examples in `/usr/local/lib/xemacs-20.0/lisp/packages/big-menubar.el' file. - For more information on initializing your `.emacs' file, *Note Init File: (xemacs)Init File. You should also look at `/usr/local/lib/xemacs-20.0/etc/sample.emacs', which is a sample diff --git a/info/new-users-guide.info-3 b/info/new-users-guide.info-3 index f29fc2e..0ddb41a 100644 --- a/info/new-users-guide.info-3 +++ b/info/new-users-guide.info-3 @@ -1,5 +1,5 @@ -This is ../info/new-users-guide.info, produced by makeinfo version -3.12s from new-users-guide/new-users-guide.texi. +This is Info file ../info/new-users-guide.info, produced by Makeinfo +version 1.68 from the input file new-users-guide/new-users-guide.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY diff --git a/info/standards.info b/info/standards.info index 94102b9..76887c1 100644 --- a/info/standards.info +++ b/info/standards.info @@ -1,5 +1,5 @@ -This is ../info/standards.info, produced by makeinfo version 3.12s from -standards.texi. +This is Info file ../info/standards.info, produced by Makeinfo version +1.68 from the input file standards.texi. START-INFO-DIR-ENTRY * Standards: (standards). GNU coding standards. @@ -24,62 +24,61 @@ translation approved by the Free Software Foundation.  Indirect: -standards.info-1: 976 -standards.info-2: 48771 -standards.info-3: 97948 +standards.info-1: 1000 +standards.info-2: 48794 +standards.info-3: 97971  Tag Table: (Indirect) -Node: Top976 -Node: Preface1567 -Node: Legal Issues2584 -Node: Reading Non-Free Code2950 -Node: Contributions4673 -Node: Design Advice6803 -Node: Compatibility7311 -Node: Using Extensions8822 -Node: ANSI C10324 -Node: Source Language12447 -Node: Program Behavior13940 -Node: Semantics14649 -Node: Libraries18966 -Node: Errors20201 -Node: User Interfaces21977 -Node: Option Table28854 -Node: Memory Usage43664 -Node: Writing C44658 -Node: Formatting45499 -Node: Comments48771 -Node: Syntactic Conventions52069 -Node: Names55007 -Node: System Portability56941 -Node: CPU Portability58538 -Node: System Functions60795 -Node: Internationalization65899 -Node: Mmap69047 -Node: Documentation69752 -Node: GNU Manuals70387 -Node: Manual Structure Details74635 -Node: License for Manuals75968 -Node: NEWS File76552 -Node: Change Logs77228 -Node: Change Log Concepts77945 -Node: Style of Change Logs79800 -Node: Simple Changes81354 -Node: Conditional Changes82545 -Node: Man Pages83922 -Node: Reading other Manuals85541 -Node: Managing Releases86325 -Node: Configuration87080 -Node: Makefile Conventions94020 -Node: Makefile Basics94779 -Node: Utilities in Makefiles97948 -Node: Command Variables100084 -Node: Directory Variables103585 -Node: Standard Targets114462 -Ref: Standard Targets-Footnote-1124901 -Node: Install Command Categories125001 -Node: Releases129574 -Node: References133657 +Node: Top1000 +Node: Preface1591 +Node: Legal Issues2608 +Node: Reading Non-Free Code2974 +Node: Contributions4697 +Node: Design Advice6827 +Node: Compatibility7335 +Node: Using Extensions8846 +Node: ANSI C10348 +Node: Source Language12471 +Node: Program Behavior13964 +Node: Semantics14673 +Node: Libraries18990 +Node: Errors20225 +Node: User Interfaces22001 +Node: Option Table28879 +Node: Memory Usage43689 +Node: Writing C44683 +Node: Formatting45522 +Node: Comments48794 +Node: Syntactic Conventions52092 +Node: Names55030 +Node: System Portability56964 +Node: CPU Portability58561 +Node: System Functions60818 +Node: Internationalization65922 +Node: Mmap69070 +Node: Documentation69775 +Node: GNU Manuals70410 +Node: Manual Structure Details74658 +Node: License for Manuals75991 +Node: NEWS File76575 +Node: Change Logs77251 +Node: Change Log Concepts77968 +Node: Style of Change Logs79823 +Node: Simple Changes81377 +Node: Conditional Changes82568 +Node: Man Pages83945 +Node: Reading other Manuals85564 +Node: Managing Releases86348 +Node: Configuration87103 +Node: Makefile Conventions94043 +Node: Makefile Basics94802 +Node: Utilities in Makefiles97971 +Node: Command Variables100107 +Node: Directory Variables103608 +Node: Standard Targets114485 +Node: Install Command Categories125025 +Node: Releases129598 +Node: References133681  End Tag Table diff --git a/info/standards.info-1 b/info/standards.info-1 index b1d8299..b0b8bcd 100644 --- a/info/standards.info-1 +++ b/info/standards.info-1 @@ -1,5 +1,5 @@ -This is ../info/standards.info, produced by makeinfo version 3.12s from -standards.texi. +This is Info file ../info/standards.info, produced by Makeinfo version +1.68 from the input file standards.texi. START-INFO-DIR-ENTRY * Standards: (standards). GNU coding standards. @@ -124,7 +124,7 @@ Accepting Contributions If the program you are working on is copyrighted by the Free Software Foundation, then when someone else sends you a piece of code to add to the program, we need legal papers to use it--just as we asked you to -sign papers initially. _Each_ person who makes a nontrivial +sign papers initially. *Each* person who makes a nontrivial contribution to a program must sign some sort of legal papers in order for us to have clear title to the program; the main author alone is not enough. @@ -366,14 +366,14 @@ File: standards.info, Node: Semantics, Next: Libraries, Up: Program Behavior Writing Robust Programs ======================= - Avoid arbitrary limits on the length or number of _any_ data + Avoid arbitrary limits on the length or number of *any* data structure, including file names, lines, files, and symbols, by allocating all data structures dynamically. In most Unix utilities, "long lines are silently truncated". This is not acceptable in a GNU utility. Utilities reading files should not drop NUL characters, or any other -nonprinting characters _including those with codes above 0177_. The +nonprinting characters *including those with codes above 0177*. The only sensible exceptions would be utilities specifically intended for interface to certain types of terminals or printers that can't handle those characters. Whenever possible, try to make programs work @@ -382,7 +382,7 @@ using encodings such as UTF-8 and others. Check every system call for an error return, unless you know you wish to ignore errors. Include the system error text (from `perror' or -equivalent) in _every_ error message resulting from a failing system +equivalent) in *every* error message resulting from a failing system call, as well as the name of the file if any and the name of the utility. Just "cannot open foo.c" or "stat failed" is not sufficient. @@ -440,7 +440,7 @@ are easy to examine with the debugger, so there is no point moving them elsewhere. Do not use a count of errors as the exit status for a program. -_That does not work_, because exit status values are limited to 8 bits +*That does not work*, because exit status values are limited to 8 bits (0 through 255). A single run of the program might have 256 errors; if you try to return 256 as the exit status, the parent process will see 0 as the status, and it will appear that the program succeeded. @@ -581,7 +581,7 @@ consistent from program to program. For example, users should be able to expect the "verbose" option of any GNU program which has one, to be spelled precisely `--verbose'. To achieve this uniformity, look at the table of common long-option names when you choose the option names for -your program (*note Option Table::). +your program (*note Option Table::.). It is usually a good idea for file names given as ordinary arguments to be input files only; any output files would be specified using @@ -606,7 +606,7 @@ among GNU utilities, and fewer idiosyncracies for users to remember. GNU Emacs 19.30 - The program's name should be a constant string; _don't_ compute it + The program's name should be a constant string; *don't* compute it from `argv[0]'. The idea is to state the standard or canonical name for the program, not its file name. There are other ways to find out the precise file name where a command is found in `PATH'. @@ -1796,7 +1796,7 @@ writing GNU software. * Names:: Naming Variables and Functions * System Portability:: Portability between different operating systems * CPU Portability:: Supporting the range of CPU types -* System Functions:: Portability and ``standard'' library functions +* System Functions:: Portability and "standard" library functions * Internationalization:: Techniques for internationalization * Mmap:: How you can safely use `mmap'. diff --git a/info/standards.info-2 b/info/standards.info-2 index f997e27..36b3808 100644 --- a/info/standards.info-2 +++ b/info/standards.info-2 @@ -1,5 +1,5 @@ -This is ../info/standards.info, produced by makeinfo version 3.12s from -standards.texi. +This is Info file ../info/standards.info, produced by Makeinfo version +1.68 from the input file standards.texi. START-INFO-DIR-ENTRY * Standards: (standards). GNU coding standards. @@ -78,9 +78,9 @@ function itself would be off the bottom of the screen. Every `#endif' should have a comment, except in the case of short conditionals (just a few lines) that are not nested. The comment should -state the condition of the conditional that is ending, _including its -sense_. `#else' should have a comment describing the condition _and -sense_ of the code that follows. For example: +state the condition of the conditional that is ending, *including its +sense*. `#else' should have a comment describing the condition *and +sense* of the code that follows. For example: #ifdef foo ... @@ -331,7 +331,7 @@ that pass their arguments along to `printf' and friends: In practice, this works on all machines, since a pointer is generally the widest possible kind of argument, and it is much simpler than any -"correct" alternative. Be sure _not_ to use a prototype for such +"correct" alternative. Be sure *not* to use a prototype for such functions. However, avoid casting pointers to integers unless you really need @@ -604,7 +604,7 @@ have its own manual. That would be following the structure of the implementation, rather than the structure that helps the user understand. - Instead, each manual should cover a coherent _topic_. For example, + Instead, each manual should cover a coherent *topic*. For example, instead of a manual for `diff' and a manual for `diff3', we have one manual for "comparison of files" which covers both of those programs, as well as `cmp'. By documenting these programs together, we can make @@ -629,8 +629,8 @@ what we mean. logical breakdown of its topic, but order the sections, and write their text, so that reading the chapter straight through makes sense. Do likewise when structuring the book into chapters, and when structuring a -section into paragraphs. The watchword is, _at each point, address the -most fundamental and important issue raised by the preceding text._ +section into paragraphs. The watchword is, *at each point, address the +most fundamental and important issue raised by the preceding text.* If necessary, add extra chapters at the beginning of the manual which are purely tutorial and cover the basics of the subject. These provide @@ -644,7 +644,7 @@ course exceptions.) Also Unix man pages use a particular format which is different from what we use in GNU manuals. Please include an email address in the manual for where to report -bugs _in the manual_. +bugs *in the manual*. Please do not use the term "pathname" that is used in Unix documentation; use "file name" (two words) instead. We use the term @@ -872,7 +872,7 @@ are contained in a `#ifdef HAVE_LIBNCURSES' conditional: * dispnew.c (init_display) [HAVE_LIBNCURSES]: If X, call tgetent. Here is an entry for a change that takes affect only when a certain -macro is _not_ defined: +macro is *not* defined: (gethostname) [!HAVE_SOCKETS]: Replace with winsock version. @@ -963,12 +963,12 @@ they affect compilation. One way to do this is to make a link from a standard name such as `config.h' to the proper configuration file for the chosen system. If -you use this technique, the distribution should _not_ contain a file +you use this technique, the distribution should *not* contain a file named `config.h'. This is so that people won't be able to build the program without configuring it first. Another thing that `configure' can do is to edit the Makefile. If -you do this, the distribution should _not_ contain a file named +you do this, the distribution should *not* contain a file named `Makefile'. Instead, it should include a file `Makefile.in' which contains the input used for editing. Once again, this is so that people won't be able to build the program without configuring it first. diff --git a/info/standards.info-3 b/info/standards.info-3 index 0244350..c21b67c 100644 --- a/info/standards.info-3 +++ b/info/standards.info-3 @@ -1,5 +1,5 @@ -This is ../info/standards.info, produced by makeinfo version 3.12s from -standards.texi. +This is Info file ../info/standards.info, produced by Makeinfo version +1.68 from the input file standards.texi. START-INFO-DIR-ENTRY * Standards: (standards). GNU coding standards. @@ -105,7 +105,7 @@ compilation command that runs the preprocessor, and use `LDFLAGS' in any compilation command that does linking as well as in any direct use of `ld'. - If there are C compiler options that _must_ be used for proper + If there are C compiler options that *must* be used for proper compilation of certain files, do not include them in `CFLAGS'. Users expect to be able to specify `CFLAGS' freely themselves. Instead, arrange to pass the necessary options to the C compiler independently @@ -118,7 +118,7 @@ by defining an implicit rule, like this: $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $< Do include the `-g' option in `CFLAGS', because that is not -_required_ for proper compilation. You can consider it a default that +*required* for proper compilation. You can consider it a default that is only recommended. If the package is set up so that it is compiled with GCC by default, then you might as well include `-O' in the default value of `CFLAGS' as well. @@ -450,7 +450,7 @@ Makefiles: that don't have the Unix man page documentation system installed. The way to install Info files is to copy them into `$(infodir)' - with `$(INSTALL_DATA)' (*note Command Variables::), and then run + with `$(INSTALL_DATA)' (*note Command Variables::.), and then run the `install-info' program if it is present. `install-info' is a program that edits the Info `dir' file to add or update the menu entry for the given Info file; it is part of the Texinfo package. @@ -685,7 +685,7 @@ variable, plus an optional comment at the end. There are three variables you can use, one for each category; the variable name specifies the category. Category lines are no-ops in ordinary execution because these three Make variables are normally undefined (and you -_should not_ define them in the makefile). +*should not* define them in the makefile). Here are the three possible category lines, each with a comment that explains what it means: @@ -709,7 +709,7 @@ classified as normal. from the Info directory. If the `install' or `uninstall' target has any dependencies which -act as subroutines of installation, then you should start _each_ +act as subroutines of installation, then you should start *each* dependency's commands with a category line, and start the main target's commands with a category line also. This way, you can ensure that each command is placed in the right category regardless of which of the diff --git a/info/texinfo.info b/info/texinfo.info index 586bcfc..2986f92 100644 --- a/info/texinfo.info +++ b/info/texinfo.info @@ -1,5 +1,5 @@ -This is ../info/texinfo.info, produced by makeinfo version 3.12s from -texinfo.texi. +This is Info file ../info/texinfo.info, produced by Makeinfo version +1.68 from the input file texinfo.texi. INFO-DIR-SECTION Texinfo documentation system START-INFO-DIR-ENTRY @@ -34,317 +34,306 @@ translation approved by the Free Software Foundation.  Indirect: -texinfo.info-1: 1486 -texinfo.info-2: 48705 -texinfo.info-3: 96679 -texinfo.info-4: 146071 -texinfo.info-5: 196044 -texinfo.info-6: 245136 -texinfo.info-7: 293731 -texinfo.info-8: 343546 -texinfo.info-9: 392859 -texinfo.info-10: 435237 -texinfo.info-11: 481353 -texinfo.info-12: 519513 +texinfo.info-1: 1510 +texinfo.info-2: 48723 +texinfo.info-3: 96698 +texinfo.info-4: 146082 +texinfo.info-5: 196057 +texinfo.info-6: 245140 +texinfo.info-7: 294058 +texinfo.info-8: 343872 +texinfo.info-9: 393199 +texinfo.info-10: 435577 +texinfo.info-11: 481692 +texinfo.info-12: 519851  Tag Table: (Indirect) -Node: Top1486 -Node: Copying23801 -Node: Overview25806 -Node: Overview-Footnotes27235 -Ref: Overview-Footnote-127299 -Node: Using Texinfo27771 -Node: Info Files30254 -Node: Info Files-Footnotes34290 -Ref: Info Files-Footnote-134358 -Node: Printed Books34537 -Node: Printed Books-Footnotes37209 -Ref: Printed Books-Footnote-137283 -Node: Formatting Commands37493 -Node: Formatting Commands-Footnotes40320 -Ref: Formatting Commands-Footnote-140406 -Node: Conventions41022 -Node: Comments43584 -Node: Minimum45007 -Node: Six Parts47193 -Node: Short Sample48705 -Node: Acknowledgements52841 -Node: Texinfo Mode53676 -Node: Texinfo Mode Overview55048 -Node: Emacs Editing55824 -Node: Inserting57954 -Node: Showing the Structure62235 -Node: Updating Nodes and Menus64762 -Node: Updating Commands65835 -Node: Updating Requirements71896 -Node: Other Updating Commands74193 -Node: Info Formatting77461 -Node: Printing78719 -Node: Texinfo Mode Summary81064 -Node: Beginning a File85818 -Node: Four Parts86709 -Node: Sample Beginning88179 -Node: Header89799 -Node: First Line91151 -Node: Start of Header92140 -Node: setfilename92853 -Node: settitle94789 -Node: setchapternewpage96679 -Node: paragraphindent99440 -Node: End of Header100922 -Node: Info Summary and Permissions101761 -Node: Titlepage & Copyright Page102780 -Node: titlepage104386 -Node: titlepage-Footnotes106668 -Ref: titlepage-Footnote-1106734 -Node: titlefont center sp107008 -Node: title subtitle author108234 -Node: Copyright & Permissions110506 -Node: end titlepage112507 -Node: headings on off114213 -Node: The Top Node116258 -Node: Title of Top Node117413 -Node: Master Menu Parts118666 -Node: Software Copying Permissions120903 -Node: Ending a File122071 -Node: Printing Indices & Menus122919 -Node: Contents125228 -Node: File End127568 -Node: Structuring128241 -Node: Tree Structuring129898 -Node: Structuring Command Types131341 -Node: makeinfo top133668 -Node: chapter134201 -Node: unnumbered & appendix135225 -Node: majorheading & chapheading136064 -Node: section136885 -Node: unnumberedsec appendixsec heading137649 -Node: subsection138638 -Node: unnumberedsubsec appendixsubsec subheading139210 -Node: subsubsection140163 -Node: Raise/lower sections141713 -Node: Nodes143848 -Node: Two Paths144785 -Node: Node Menu Illustration146071 -Node: node149766 -Node: Node Names152462 -Node: Writing a Node153538 -Node: Node Line Tips155556 -Node: Node Line Requirements156350 -Node: First Node157951 -Node: makeinfo top command159395 -Node: Top Node Summary160574 -Node: makeinfo Pointer Creation162024 -Node: Menus163271 -Node: Menus-Footnotes164210 -Ref: Menus-Footnote-1164268 -Node: Menu Location164561 -Node: Writing a Menu166238 -Node: Menu Parts167204 -Node: Less Cluttered Menu Entry168362 -Node: Menu Example168987 -Node: Other Info Files170508 -Node: Cross References172364 -Node: References173321 -Node: Cross Reference Commands175068 -Node: Cross Reference Parts176127 -Node: xref178963 -Node: Reference Syntax179762 -Node: One Argument181416 -Node: Two Arguments182428 -Node: Three Arguments183543 -Node: Four and Five Arguments185934 -Node: Top Node Naming188346 -Node: ref189356 -Node: pxref190746 -Node: inforef193128 -Node: uref194421 -Node: Marking Text195420 -Node: Indicating196044 -Node: Useful Highlighting197949 -Node: code199338 -Node: kbd202376 -Node: key204246 -Node: samp205579 -Node: var207166 -Node: file208959 -Node: dfn209566 -Node: cite210476 -Node: url210930 -Node: email211494 -Node: Emphasis212306 -Node: emph & strong213206 -Node: Smallcaps214192 -Node: Fonts215519 -Node: Customized Highlighting216607 -Node: Customized Highlighting-Footnotes219422 -Ref: Customized Highlighting-Footnote-1219516 -Node: Quotations and Examples219642 -Node: Block Enclosing Commands221264 -Node: quotation223289 -Node: example224379 -Node: noindent226434 -Node: Lisp Example227898 -Node: Lisp Example-Footnotes228600 -Ref: Lisp Example-Footnote-1228672 -Node: smallexample & smalllisp228790 -Node: display230815 -Node: format231447 -Node: exdent231908 -Node: flushleft & flushright232988 -Node: cartouche234254 -Node: Lists and Tables235021 -Node: Introducing Lists235697 -Node: itemize237362 -Node: enumerate239509 -Node: Two-column Tables242014 -Node: table242703 -Node: ftable vtable245136 -Node: itemx246237 -Node: Multi-column Tables247248 -Node: Multitable Column Widths247919 -Node: Multitable Rows249373 -Node: Indices251150 -Node: Index Entries252300 -Node: Predefined Indices253433 -Node: Indexing Commands254430 -Node: Combining Indices258970 -Node: syncodeindex260333 -Node: synindex261995 -Node: New Indices262520 -Node: Insertions264345 -Node: Braces Atsigns265529 -Node: Inserting An Atsign266081 -Node: Inserting Braces266355 -Node: Inserting Space266718 -Node: Not Ending a Sentence267222 -Node: Ending a Sentence268576 -Node: Multiple Spaces269705 -Node: dmn270924 -Node: Inserting Accents272131 -Node: Dots Bullets273888 -Node: dots274710 -Node: bullet275234 -Node: TeX and copyright275631 -Node: tex276198 -Node: copyright symbol276614 -Node: pounds276874 -Node: minus277238 -Node: math278160 -Node: Glyphs278888 -Node: Glyphs Summary280001 -Node: result280629 -Node: expansion281114 -Node: Print Glyph282070 -Node: Error Glyph282947 -Node: Equivalence283780 -Node: Point Glyph284468 -Node: Images286025 -Node: Breaks287692 -Node: Break Commands289123 -Node: Line Breaks289964 -Node: - and hyphenation290982 -Node: w292232 -Node: sp292945 -Node: page293354 -Node: group293731 -Node: need295474 -Node: Definition Commands296204 -Node: Def Cmd Template297775 -Node: Optional Arguments300772 -Node: deffnx302360 -Node: Def Cmds in Detail303315 -Node: Functions Commands304425 -Node: Variables Commands307430 -Node: Typed Functions309516 -Node: Typed Variables313058 -Node: Abstract Objects315041 -Node: Data Types320266 -Node: Def Cmd Conventions321521 -Node: Sample Function Definition322084 -Node: Footnotes324968 -Node: Footnotes-Footnotes325356 -Ref: Footnotes-Footnote-1325422 -Node: Footnote Commands325702 -Node: Footnote Commands-Footnotes327199 -Ref: Footnote Commands-Footnote-1327281 -Node: Footnote Styles327317 -Node: Conditionals329903 -Node: Conditional Commands330714 -Node: Conditional Not Commands332207 -Node: Raw Formatter Commands332952 -Node: set clear value334782 -Node: ifset ifclear335583 -Node: value338762 -Node: value Example340174 -Node: Macros341752 -Node: Defining Macros342457 -Node: Invoking Macros343546 -Node: Format/Print Hardcopy344652 -Node: Use TeX346489 -Node: Format with tex/texindex347117 -Node: Format with texi2dvi350758 -Node: Print with lpr351349 -Node: Within Emacs352203 -Node: Texinfo Mode Printing353122 -Node: Compile-Command356532 -Node: Requirements Summary357420 -Node: Preparing for TeX358733 -Node: Overfull hboxes361520 -Node: smallbook363079 -Node: A4 Paper364597 -Node: Cropmarks and Magnification365822 -Node: Create an Info File367763 -Node: makeinfo advantages369066 -Node: Invoking makeinfo369982 -Node: makeinfo options370670 -Node: Pointer Validation376154 -Node: makeinfo in Emacs377498 -Node: texinfo-format commands380056 -Node: Batch Formatting381327 -Node: Tag and Split Files382543 -Node: Install an Info File385897 -Node: Directory file386715 -Node: New Info File388583 -Node: Other Info Directories389644 -Node: Installing Dir Entries392859 -Node: Invoking install-info394852 -Node: Command List397267 -Node: Tips435237 -Node: Sample Texinfo File446647 -Node: Sample Permissions448766 -Node: Inserting Permissions449809 -Node: ifinfo Permissions452115 -Node: Titlepage Permissions453736 -Node: Include Files454998 -Node: Using Include Files456085 -Node: texinfo-multiple-files-update458040 -Node: Include File Requirements460401 -Node: Sample Include File461646 -Node: Include Files Evolution463165 -Node: Headings465136 -Node: Headings Introduced465773 -Node: Heading Format467661 -Node: Heading Choice470113 -Node: Custom Headings471485 -Node: Catching Mistakes475813 -Node: makeinfo Preferred477102 -Node: Debugging with Info478007 -Node: Debugging with TeX481353 -Node: Using texinfo-show-structure485633 -Node: Using occur488732 -Node: Running Info-Validate490269 -Node: Using Info-validate491330 -Node: Unsplit493172 -Node: Tagifying494218 -Node: Splitting495070 -Node: Refilling Paragraphs496686 -Node: Refilling Paragraphs-Footnotes498340 -Ref: Refilling Paragraphs-Footnote-1498428 -Node: Command Syntax498591 -Node: Obtaining TeX501548 -Node: Command and Variable Index503661 -Node: Concept Index519513 +Node: Top1510 +Node: Copying23823 +Node: Overview25828 +Node: Overview-Footnotes27256 +Node: Using Texinfo27792 +Node: Info Files30275 +Node: Info Files-Footnotes34310 +Node: Printed Books34557 +Node: Printed Books-Footnotes37228 +Node: Formatting Commands37512 +Node: Formatting Commands-Footnotes40338 +Node: Conventions41040 +Node: Comments43602 +Node: Minimum45025 +Node: Six Parts47211 +Node: Short Sample48723 +Node: Acknowledgements52858 +Node: Texinfo Mode53693 +Node: Texinfo Mode Overview55065 +Node: Emacs Editing55841 +Node: Inserting57971 +Node: Showing the Structure62252 +Node: Updating Nodes and Menus64779 +Node: Updating Commands65852 +Node: Updating Requirements71913 +Node: Other Updating Commands74210 +Node: Info Formatting77478 +Node: Printing78736 +Node: Texinfo Mode Summary81082 +Node: Beginning a File85836 +Node: Four Parts86727 +Node: Sample Beginning88197 +Node: Header89817 +Node: First Line91169 +Node: Start of Header92158 +Node: setfilename92872 +Node: settitle94808 +Node: setchapternewpage96698 +Node: paragraphindent99459 +Node: End of Header100941 +Node: Info Summary and Permissions101780 +Node: Titlepage & Copyright Page102799 +Node: titlepage104405 +Node: titlepage-Footnotes106686 +Node: titlefont center sp107026 +Node: title subtitle author108252 +Node: Copyright & Permissions110524 +Node: end titlepage112525 +Node: headings on off114231 +Node: The Top Node116276 +Node: Title of Top Node117431 +Node: Master Menu Parts118684 +Node: Software Copying Permissions120921 +Node: Ending a File122089 +Node: Printing Indices & Menus122937 +Node: Contents125239 +Node: File End127579 +Node: Structuring128252 +Node: Tree Structuring129910 +Node: Structuring Command Types131353 +Node: makeinfo top133679 +Node: chapter134212 +Node: unnumbered & appendix135236 +Node: majorheading & chapheading136075 +Node: section136896 +Node: unnumberedsec appendixsec heading137660 +Node: subsection138649 +Node: unnumberedsubsec appendixsubsec subheading139221 +Node: subsubsection140174 +Node: Raise/lower sections141724 +Node: Nodes143859 +Node: Two Paths144796 +Node: Node Menu Illustration146082 +Node: node149777 +Node: Node Names152473 +Node: Writing a Node153549 +Node: Node Line Tips155567 +Node: Node Line Requirements156361 +Node: First Node157962 +Node: makeinfo top command159408 +Node: Top Node Summary160587 +Node: makeinfo Pointer Creation162037 +Node: Menus163284 +Node: Menus-Footnotes164222 +Node: Menu Location164573 +Node: Writing a Menu166250 +Node: Menu Parts167216 +Node: Less Cluttered Menu Entry168374 +Node: Menu Example168999 +Node: Other Info Files170520 +Node: Cross References172376 +Node: References173333 +Node: Cross Reference Commands175080 +Node: Cross Reference Parts176139 +Node: xref178975 +Node: Reference Syntax179774 +Node: One Argument181429 +Node: Two Arguments182441 +Node: Three Arguments183556 +Node: Four and Five Arguments185947 +Node: Top Node Naming188359 +Node: ref189369 +Node: pxref190759 +Node: inforef193141 +Node: uref194434 +Node: Marking Text195433 +Node: Indicating196057 +Node: Useful Highlighting197962 +Node: code199351 +Node: kbd202389 +Node: key204259 +Node: samp205592 +Node: var207179 +Node: file208972 +Node: dfn209579 +Node: cite210489 +Node: url210943 +Node: email211507 +Node: Emphasis212319 +Node: emph & strong213219 +Node: Smallcaps214205 +Node: Fonts215532 +Node: Customized Highlighting216620 +Node: Customized Highlighting-Footnotes219434 +Node: Quotations and Examples219654 +Node: Block Enclosing Commands221276 +Node: quotation223301 +Node: example224391 +Node: noindent226446 +Node: Lisp Example227911 +Node: Lisp Example-Footnotes228612 +Node: smallexample & smalllisp228802 +Node: display230827 +Node: format231459 +Node: exdent231920 +Node: flushleft & flushright233000 +Node: cartouche234266 +Node: Lists and Tables235033 +Node: Introducing Lists235709 +Node: itemize237371 +Node: enumerate239518 +Node: Two-column Tables242017 +Node: table242706 +Node: ftable vtable245140 +Node: itemx246241 +Node: Multi-column Tables247252 +Node: Multitable Column Widths247923 +Node: Multitable Rows249377 +Node: Indices251250 +Node: Index Entries252401 +Node: Predefined Indices253534 +Node: Indexing Commands254531 +Node: Combining Indices259072 +Node: syncodeindex260435 +Node: synindex262097 +Node: New Indices262622 +Node: Insertions264448 +Node: Braces Atsigns265632 +Node: Inserting An Atsign266184 +Node: Inserting Braces266458 +Node: Inserting Space266821 +Node: Not Ending a Sentence267325 +Node: Ending a Sentence268679 +Node: Multiple Spaces269808 +Node: dmn271028 +Node: Inserting Accents272236 +Node: Dots Bullets274212 +Node: dots275035 +Node: bullet275559 +Node: TeX and copyright275956 +Node: tex276523 +Node: copyright symbol276939 +Node: pounds277199 +Node: minus277563 +Node: math278485 +Node: Glyphs279214 +Node: Glyphs Summary280327 +Node: result280955 +Node: expansion281440 +Node: Print Glyph282396 +Node: Error Glyph283273 +Node: Equivalence284106 +Node: Point Glyph284794 +Node: Images286351 +Node: Breaks288018 +Node: Break Commands289449 +Node: Line Breaks290290 +Node: - and hyphenation291308 +Node: w292559 +Node: sp293272 +Node: page293681 +Node: group294058 +Node: need295801 +Node: Definition Commands296531 +Node: Def Cmd Template298102 +Node: Optional Arguments301099 +Node: deffnx302687 +Node: Def Cmds in Detail303642 +Node: Functions Commands304752 +Node: Variables Commands307757 +Node: Typed Functions309843 +Node: Typed Variables313385 +Node: Abstract Objects315368 +Node: Data Types320593 +Node: Def Cmd Conventions321848 +Node: Sample Function Definition322411 +Node: Footnotes325295 +Node: Footnotes-Footnotes325682 +Node: Footnote Commands326028 +Node: Footnote Commands-Footnotes327524 +Node: Footnote Styles327642 +Node: Conditionals330228 +Node: Conditional Commands331039 +Node: Conditional Not Commands332532 +Node: Raw Formatter Commands333277 +Node: set clear value335107 +Node: ifset ifclear335908 +Node: value339087 +Node: value Example340499 +Node: Macros342077 +Node: Defining Macros342783 +Node: Invoking Macros343872 +Node: Format/Print Hardcopy344978 +Node: Use TeX346815 +Node: Format with tex/texindex347443 +Node: Format with texi2dvi351086 +Node: Print with lpr351677 +Node: Within Emacs352531 +Node: Texinfo Mode Printing353450 +Node: Compile-Command356860 +Node: Requirements Summary357748 +Node: Preparing for TeX359061 +Node: Overfull hboxes361850 +Node: smallbook363409 +Node: A4 Paper364929 +Node: Cropmarks and Magnification366155 +Node: Create an Info File368097 +Node: makeinfo advantages369400 +Node: Invoking makeinfo370316 +Node: makeinfo options371004 +Node: Pointer Validation376493 +Node: makeinfo in Emacs377837 +Node: texinfo-format commands380395 +Node: Batch Formatting381667 +Node: Tag and Split Files382883 +Node: Install an Info File386237 +Node: Directory file387055 +Node: New Info File388923 +Node: Other Info Directories389984 +Node: Installing Dir Entries393199 +Node: Invoking install-info395192 +Node: Command List397607 +Node: Tips435577 +Node: Sample Texinfo File446987 +Node: Sample Permissions449105 +Node: Inserting Permissions450148 +Node: ifinfo Permissions452454 +Node: Titlepage Permissions454075 +Node: Include Files455337 +Node: Using Include Files456424 +Node: texinfo-multiple-files-update458379 +Node: Include File Requirements460740 +Node: Sample Include File461985 +Node: Include Files Evolution463504 +Node: Headings465475 +Node: Headings Introduced466112 +Node: Heading Format468000 +Node: Heading Choice470452 +Node: Custom Headings471824 +Node: Catching Mistakes476152 +Node: makeinfo Preferred477441 +Node: Debugging with Info478346 +Node: Debugging with TeX481692 +Node: Using texinfo-show-structure485973 +Node: Using occur489072 +Node: Running Info-Validate490609 +Node: Using Info-validate491670 +Node: Unsplit493512 +Node: Tagifying494558 +Node: Splitting495410 +Node: Refilling Paragraphs497026 +Node: Refilling Paragraphs-Footnotes498679 +Node: Command Syntax498930 +Node: Obtaining TeX501887 +Node: Command and Variable Index503999 +Node: Concept Index519851  End Tag Table diff --git a/info/texinfo.info-1 b/info/texinfo.info-1 index 398ba54..bc542dc 100644 --- a/info/texinfo.info-1 +++ b/info/texinfo.info-1 @@ -1,5 +1,5 @@ -This is ../info/texinfo.info, produced by makeinfo version 3.12s from -texinfo.texi. +This is Info file ../info/texinfo.info, produced by Makeinfo version +1.68 from the input file texinfo.texi. INFO-DIR-SECTION Texinfo documentation system START-INFO-DIR-ENTRY @@ -91,7 +91,7 @@ menu lists all the lower level nodes in the document. * Concept Index:: A menu covering many topics. - --- The Detailed Node Listing --- + -- The Detailed Node Listing -- Overview of Texinfo @@ -556,7 +556,7 @@ File: texinfo.info, Node: Overview, Next: Texinfo Mode, Prev: Copying, Up: T Overview of Texinfo ******************* - "Texinfo"(1) (*note Overview-Footnote-1::) is a documentation system + "Texinfo"(1) (*note Overview-Footnotes::) is a documentation system that uses a single source file to produce both on-line information and printed output. This means that instead of writing two different documents, one for the on-line help or other on-line information and @@ -679,7 +679,7 @@ Normally the order in this chain is the same as the order of the children in the parent's menu. Each child node records the parent node name as its `Up' pointer. The last child has no `Next' pointer, and the first child has the parent both as its `Previous' and as its `Up' -pointer.(1) (*note Info Files-Footnote-1::) +pointer.(1) (*note Info Files-Footnotes::) The book-like structuring of an Info file into nodes that correspond to chapters, sections, and the like is a matter of convention, not a @@ -735,7 +735,7 @@ Printed Books A Texinfo file can be formatted and typeset as a printed book or manual. To do this, you need TeX, a powerful, sophisticated typesetting -program written by Donald Knuth.(1) (*note Printed Books-Footnote-1::) +program written by Donald Knuth.(1) (*note Printed Books-Footnotes::) A Texinfo-based book is similar to any other typeset, printed work: it can have a title page, copyright page, table of contents, and preface, @@ -812,7 +812,7 @@ characters. Similarly, you can print the output generated by TeX on a wide variety of printers. Depending on what they do or what arguments(1) (*note Formatting -Commands-Footnote-1::) they take, you need to write @-commands on lines +Commands-Footnotes::) they take, you need to write @-commands on lines of their own or as part of sentences: * Write a command such as `@noindent' at the beginning of a line as diff --git a/info/texinfo.info-10 b/info/texinfo.info-10 index f746dad..7b4fbcc 100644 --- a/info/texinfo.info-10 +++ b/info/texinfo.info-10 @@ -1,5 +1,5 @@ -This is ../info/texinfo.info, produced by makeinfo version 3.12s from -texinfo.texi. +This is Info file ../info/texinfo.info, produced by Makeinfo version +1.68 from the input file texinfo.texi. INFO-DIR-SECTION Texinfo documentation system START-INFO-DIR-ENTRY @@ -247,7 +247,7 @@ In this case, the text should be formatted with `@table', `@item', and Periods Outside of Quotes ......................... - Place periods and other punctuation marks _outside_ of quotations, + Place periods and other punctuation marks *outside* of quotations, unless the punctuation is part of the quotation. This practice goes against publishing conventions in the United States, but enables the reader to distinguish between the contents of the quotation and the @@ -258,7 +258,7 @@ outside the end quotation marks: Evidently, `au' is an abbreviation for ``author''. -since `au' does _not_ serve as an abbreviation for `author.' (with a +since `au' does *not* serve as an abbreviation for `author.' (with a period following the word). Introducing New Terms @@ -372,7 +372,6 @@ A Sample Texinfo File You can see this file, with comments, in the first chapter. *Note A Short Sample Texinfo File: Short Sample. - \input texinfo @c -*-texinfo-*- @c %**start of header @setfilename sample.info @@ -725,8 +724,8 @@ hierarchical level in the file structure. Usually, each is an each included file contains one, and only one, chapter or equivalent-level node. - The outer file should contain only _one_ node, the `Top' node. It -should _not_ contain any nodes besides the single `Top' node. The + The outer file should contain only *one* node, the `Top' node. It +should *not* contain any nodes besides the single `Top' node. The `texinfo-multiple-files-update' command will not process them.  @@ -1065,7 +1064,7 @@ and `@end iftex' commands. For `@include' files only: expands to the name of the current `@include' file. If the current Texinfo source file is not an `@include' file, this command has no effect. This command does - _not_ provide the name of the current Texinfo source file unless + *not* provide the name of the current Texinfo source file unless it is an `@include' file. (*Note Include Files::, for more information about `@include' files.) diff --git a/info/texinfo.info-11 b/info/texinfo.info-11 index e102b6a..79b8377 100644 --- a/info/texinfo.info-11 +++ b/info/texinfo.info-11 @@ -1,5 +1,5 @@ -This is ../info/texinfo.info, produced by makeinfo version 3.12s from -texinfo.texi. +This is Info file ../info/texinfo.info, produced by Makeinfo version +1.68 from the input file texinfo.texi. INFO-DIR-SECTION Texinfo documentation system START-INFO-DIR-ENTRY @@ -103,7 +103,7 @@ three things. prompt. Please note that if you are running TeX inside Emacs, you need to -switch to the shell buffer and line at which TeX offers the `?' prompt. +switch to the shell buffer and line at which TeX offers the `?' prompt. Sometimes TeX will format a file without producing error messages even though there is a problem. This usually occurs if a command is not @@ -417,7 +417,7 @@ Refilling Paragraphs ******************** The `@refill' command refills and, optionally, indents the first line -of a paragraph.(1) (*note Refilling Paragraphs-Footnote-1::) The +of a paragraph.(1) (*note Refilling Paragraphs-Footnotes::) The `@refill' command is no longer important, but we describe it here because you once needed it. You will see it in many old Texinfo files. @@ -432,7 +432,7 @@ automatically.) Now, all the Info formatters automatically fill and indent those paragraphs that need to be filled and indented. The `@refill' command causes `texinfo-format-region' and -`texinfo-format-buffer' to refill a paragraph in the Info file _after_ +`texinfo-format-buffer' to refill a paragraph in the Info file *after* all the other processing has been done. For this reason, you can not use `@refill' with a paragraph containing either `@*' or `@w{ ... }' since the refilling action will override those two commands. @@ -503,7 +503,7 @@ uses the rest of the line as its argument. Emacs paragraph and filling commands work properly. There is only one exception to this rule: the command `@refill', which is always used at the end of a paragraph immediately following the final period or other -punctuation character. `@refill' takes no argument and does _not_ +punctuation character. `@refill' takes no argument and does *not* require braces. `@refill' never confuses the Emacs paragraph commands because it cannot appear at the beginning of a line. @@ -562,7 +562,6 @@ the TeX Users Group co-sponsors a complete CD-ROM TeX distribution. sites: please add to the base cost, if desired, $20.00 for shipment via air parcel post, or $30.00 for shipment via courier. - Many other TeX distributions are available; see `http://tug.org/'.  diff --git a/info/texinfo.info-12 b/info/texinfo.info-12 index 58b9177..1e064ab 100644 --- a/info/texinfo.info-12 +++ b/info/texinfo.info-12 @@ -1,5 +1,5 @@ -This is ../info/texinfo.info, produced by makeinfo version 3.12s from -texinfo.texi. +This is Info file ../info/texinfo.info, produced by Makeinfo version +1.68 from the input file texinfo.texi. INFO-DIR-SECTION Texinfo documentation system START-INFO-DIR-ENTRY @@ -42,43 +42,39 @@ Concept Index * !: Inserting Accents. * (dir) as Up node of Top node: First Node. -* --delete: Invoking install-info. -* --dir-file=NAME: Invoking install-info. -* --entry=TEXT: Invoking install-info. -* --error-limit=LIMIT: makeinfo options. -* --fill-column=WIDTH: makeinfo options. -* --footnote-style=STYLE: makeinfo options. -* --force: makeinfo options. -* --help <1>: Invoking install-info. -* --help: makeinfo options. -* --info-dir=DIR: Invoking install-info. -* --info-file=FILE: Invoking install-info. -* --item=TEXT: Invoking install-info. -* --no-headers: makeinfo options. -* --no-number-footnotes: makeinfo options. -* --no-pointer-validate: makeinfo options. -* --no-split: makeinfo options. -* --no-validate: makeinfo options. -* --no-warn: makeinfo options. -* --output=FILE: makeinfo options. -* --paragraph-indent=INDENT: makeinfo options. -* --quiet: Invoking install-info. -* --reference-limit=LIMIT: makeinfo options. -* --remove: Invoking install-info. -* --section=SEC: Invoking install-info. -* --verbose: makeinfo options. -* --version <1>: Invoking install-info. -* --version: makeinfo options. * -D VAR: makeinfo options. +* -delete: Invoking install-info. +* -dir-file=NAME: Invoking install-info. +* -entry=TEXT: Invoking install-info. +* -error-limit=LIMIT: makeinfo options. +* -fill-column=WIDTH: makeinfo options. +* -footnote-style=STYLE: makeinfo options. +* -force: makeinfo options. +* -help <1>: Invoking install-info. +* -help: makeinfo options. * -I DIR: makeinfo options. +* -info-dir=DIR: Invoking install-info. +* -info-file=FILE: Invoking install-info. +* -item=TEXT: Invoking install-info. +* -no-headers: makeinfo options. +* -no-number-footnotes: makeinfo options. +* -no-pointer-validate: makeinfo options. +* -no-split: makeinfo options. +* -no-validate: makeinfo options. +* -no-warn: makeinfo options. * -o FILE: makeinfo options. +* -output=FILE: makeinfo options. * -P DIR: makeinfo options. +* -paragraph-indent=INDENT: makeinfo options. +* -quiet: Invoking install-info. +* -reference-limit=LIMIT: makeinfo options. +* -remove: Invoking install-info. +* -section=SEC: Invoking install-info. +* -verbose: makeinfo options. +* -version <1>: Invoking install-info. +* -version: makeinfo options. * .cshrc initialization file: Preparing for TeX. * .profile initialization file: Preparing for TeX. -* /L: Inserting Accents. -* /l: Inserting Accents. -* /O: Inserting Accents. -* /o: Inserting Accents. * ?: Inserting Accents. * @-command in nodename: Node Line Requirements. * @-command list: Command List. @@ -186,7 +182,7 @@ Concept Index * Definition template: Def Cmd Template. * Definitions grouped together: deffnx. * Description for menu, start: Inserting. -* Dido^t points: Images. +* Did^ot points: Images. * Different cross reference commands: Cross Reference Commands. * Dimension formatting: dmn. * Dimensions and image sizes: Images. @@ -348,6 +344,8 @@ Concept Index * keyboard input: kbd. * Keys, recommended names: key. * Knuth, Donald: Printed Books. +* L/: Inserting Accents. +* l/: Inserting Accents. * Larger or smaller pages: Cropmarks and Magnification. * Less cluttered menu entry: Less Cluttered Menu Entry. * License agreement: Software Copying Permissions. @@ -426,6 +424,8 @@ Concept Index * Nodes, catching mistakes: Catching Mistakes. * Nodes, checking for badly referenced: Running Info-Validate. * Not ending a sentence: Not Ending a Sentence. +* O/: Inserting Accents. +* o/: Inserting Accents. * Obtaining TeX: Obtaining TeX. * Occurrences, listing with @occur: Using occur. * OE: Inserting Accents. diff --git a/info/texinfo.info-2 b/info/texinfo.info-2 index a2ae54e..1697d67 100644 --- a/info/texinfo.info-2 +++ b/info/texinfo.info-2 @@ -1,5 +1,5 @@ -This is ../info/texinfo.info, produced by makeinfo version 3.12s from -texinfo.texi. +This is Info file ../info/texinfo.info, produced by Makeinfo version +1.68 from the input file texinfo.texi. INFO-DIR-SECTION Texinfo documentation system START-INFO-DIR-ENTRY @@ -44,7 +44,7 @@ titlepage', look more intimidating than they are. Most of the material is standard boilerplate; when you write a manual, simply insert the names for your own manual in this segment. (*Note Beginning a File::.) -In the following, the sample text is _indented_; comments on it are +In the following, the sample text is *indented*; comments on it are not. The complete file, without any comments, is shown in *Note Sample Texinfo File::. @@ -160,7 +160,6 @@ The Results Here is what the contents of the first chapter of the sample look like: - This is the contents of the first chapter. Here is a numbered list. @@ -372,7 +371,7 @@ first letter of the @-command: however, more mnemonic; hence the two keybindings. (Also, you can move out from between braces by typing `C-f'.) - To put a command such as `@code{...}' around an _existing_ word, + To put a command such as `@code{...}' around an *existing* word, position the cursor in front of the word and type `C-u 1 C-c C-c c'. This makes it easy to edit existing plain text. The value of the prefix argument tells Emacs how many words following point to include @@ -520,7 +519,7 @@ or an `@ifinfo' line. followed by a node with an `@chapter' or equivalent-level command. Note that the menu updating commands will not create a main or master menu for a Texinfo file that has only `@chapter'-level nodes! The menu -updating commands only create menus _within_ nodes for lower level +updating commands only create menus *within* nodes for lower level nodes. To create a menu of chapters, you must provide a `Top' node. The menu updating commands remove menu entries that refer to other @@ -786,7 +785,7 @@ an Info file: or M-x makeinfo-buffer - For TeX or the Info formatting commands to work, the file _must_ + For TeX or the Info formatting commands to work, the file *must* include a line that has `@setfilename' in its header. *Note Create an Info File::, for details about Info formatting. @@ -803,7 +802,7 @@ print the file. Optionally, you may also create indices. To do this, you must run the `texindex' command after first running the `tex' typesetting command; and then you must run the `tex' command again. Or else run the `texi2dvi' command which automatically creates indices as -needed (*note Format with texi2dvi::). +needed (*note Format with texi2dvi::.). Often, when you are writing a document, you want to typeset and print only part of a file to see what it will look like. You can use the @@ -837,7 +836,7 @@ only part of a file to see what it will look like. You can use the `texinfo-tex-buffer' or `texinfo-tex-region'. For `texinfo-tex-region' or `texinfo-tex-buffer' to work, the file -_must_ start with a `\input texinfo' line and must include an +*must* start with a `\input texinfo' line and must include an `@settitle' line. The file must end with `@bye' on a line by itself. (When you use `texinfo-tex-region', you must surround the `@settitle' line with start-of-header and end-of-header lines.) @@ -1182,7 +1181,7 @@ Start of Header Follow the start-of-header line with `@setfilename' and `@settitle' lines and, optionally, with other command lines, such as `@smallbook' or `@footnotestyle'; and then by an end-of-header line (*note End of -Header::). +Header::.). With these lines, you can format part of a Texinfo file for Info or typeset part for printing. diff --git a/info/texinfo.info-3 b/info/texinfo.info-3 index a18f73e..e95f8a8 100644 --- a/info/texinfo.info-3 +++ b/info/texinfo.info-3 @@ -1,5 +1,5 @@ -This is ../info/texinfo.info, produced by makeinfo version 3.12s from -texinfo.texi. +This is Info file ../info/texinfo.info, produced by Makeinfo version +1.68 from the input file texinfo.texi. INFO-DIR-SECTION Texinfo documentation system START-INFO-DIR-ENTRY @@ -181,8 +181,8 @@ and be put on a line by itself. appendix to this manual; see *Note `ifinfo' Copying Permissions: ifinfo Permissions, for the complete text. - The permissions text appears in an Info file _before_ the first node. -This mean that a reader does _not_ see this text when reading the file + The permissions text appears in an Info file *before* the first node. +This mean that a reader does *not* see this text when reading the file using Info, except when using the advanced Info command `g *'.  @@ -245,7 +245,7 @@ command, but that would have been rather long!) version of the program to which the manual applies on the title page. If the manual changes more frequently than the program or is independent of it, you should also include an edition number(1) (*note -titlepage-Footnote-1::) for the manual. This helps readers keep track +titlepage-Footnotes::) for the manual. This helps readers keep track of which manual is for which version of the program. (The `Top' node should also contain this information; see *Note `@top': makeinfo top.) @@ -727,16 +727,16 @@ those just cause the raw data for the index to be accumulated. To generate an index, you must include the `@printindex' command at the place in the document where you want the index to appear. Also, as part of the process of creating a printed manual, you must run a -program called `texindex' (*note Format/Print Hardcopy::) to sort the +program called `texindex' (*note Format/Print Hardcopy::.) to sort the raw data to produce a sorted index file. The sorted index file is what is actually used to print the index. Texinfo offers six different types of predefined index: the concept index, the function index, the variables index, the keystroke index, the -program index, and the data type index (*note Predefined Indices::). +program index, and the data type index (*note Predefined Indices::.). Each index type has a two-letter name: `cp', `fn', `vr', `ky', `pg', and `tp'. You may merge indices, or put them into separate sections -(*note Combining Indices::); or you may define your own indices (*note +(*note Combining Indices::.); or you may define your own indices (*note Defining New Indices: New Indices.). The `@printindex' command takes a two-letter index name, reads the @@ -756,13 +756,13 @@ Precede the `@unnumbered' command with an `@node' line. @unnumbered Variable Index @printindex vr - + @node Concept Index, , Variable Index, Top @comment node-name, next, previous, up @unnumbered Concept Index @printindex cp - + @summarycontents @contents @bye @@ -799,7 +799,7 @@ actual table to appear in the manual. To do this, you must use the table of contents in addition to the full table of contents. Write the `@shortcontents' command on a line by itself right - _before_ the `@contents' command. + *before* the `@contents' command. The table of contents commands automatically generate a chapter-like heading at the top of the first table of contents page. Write the table @@ -857,7 +857,7 @@ Contents.). The chapter structuring commands do not create an Info node structure, so normally you should put an `@node' command immediately before each -chapter structuring command (*note Nodes::). The only time you are +chapter structuring command (*note Nodes::.). The only time you are likely to use the chapter structuring commands without using the node structuring commands is if you are writing a document that contains no cross references and will never be transformed into Info format. @@ -959,7 +959,6 @@ that are listed in the table of contents of a printed book or manual. Here are the four groups of chapter structuring commands: - No new pages Numbered Unnumbered Lettered and numbered Unnumbered In contents In contents In contents Not in contents diff --git a/info/texinfo.info-4 b/info/texinfo.info-4 index f75aa98..04bcd4c 100644 --- a/info/texinfo.info-4 +++ b/info/texinfo.info-4 @@ -1,5 +1,5 @@ -This is ../info/texinfo.info, produced by makeinfo version 3.12s from -texinfo.texi. +This is Info file ../info/texinfo.info, produced by Makeinfo version +1.68 from the input file texinfo.texi. INFO-DIR-SECTION Texinfo documentation system START-INFO-DIR-ENTRY @@ -73,7 +73,7 @@ is "Chapter 1", and the name of the `Up' node is "Top". may be at a lower level--a section-level node may follow a chapter-level node, and a subsection-level node may follow a section-level node. `Next' and `Previous' refer to nodes at the - _same_ hierarchical level. (The `Top' node contains the exception + *same* hierarchical level. (The `Top' node contains the exception to this rule. Since the `Top' node is the only node at that level, `Next' refers to the first following node, which is almost always a chapter or chapter-level node.) @@ -316,9 +316,9 @@ The First Node -------------- The first node of a Texinfo file is the "Top" node, except in an -included file (*note Include Files::). The Top node contains the main +included file (*note Include Files::.). The Top node contains the main or master menu for the document, and a short summary of the document -(*note Top Node Summary::). +(*note Top Node Summary::.). The Top node (which must be named `top' or `Top') should have as its `Up' node the name of a node in another file, where there is a menu @@ -433,13 +433,13 @@ Menus ***** "Menus" contain pointers to subordinate nodes.(1) (*note -Menus-Footnote-1::) In Info, you use menus to go to such nodes. Menus +Menus-Footnotes::) In Info, you use menus to go to such nodes. Menus have no effect in printed manuals and do not appear in them. By convention, a menu is put at the end of a node since a reader who uses the menu may not see text that follows it. - A node that has a menu should _not_ contain much text. If you have a + A node that has a menu should *not* contain much text. If you have a lot of text and a menu, move most of the text into a new subnode--all but a few lines. @@ -902,7 +902,7 @@ differently. *Note `@pxref': pxref.) file and in the printed manual. `@xref' must refer to an Info node by name. Use `@node' to define -the node (*note Writing a Node::). +the node (*note Writing a Node::.). `@xref' is followed by several arguments inside braces, separated by commas. Whitespace before and after these commas is ignored. @@ -1215,7 +1215,7 @@ in a printed document, and the following in Info: Sea surges are described in *Note Hurricanes::. - *Caution:* You _must_ write a period or comma immediately after an + *Caution:* You *must* write a period or comma immediately after an `@ref' command with two or more arguments. Otherwise, Info will not find the end of the cross reference entry and its attempt to follow the cross reference will fail. As a general rule, you @@ -1229,7 +1229,7 @@ File: texinfo.info, Node: pxref, Next: inforef, Prev: ref, Up: Cross Referen ======== The parenthetical reference command, `@pxref', is nearly the same as -`@xref', but you use it _only_ inside parentheses and you do _not_ type +`@xref', but you use it *only* inside parentheses and you do *not* type a comma or period after the command's closing brace. The command differs from `@xref' in two ways: @@ -1240,7 +1240,7 @@ differs from `@xref' in two ways: closing colon or period. Because one type of formatting automatically inserts closing -punctuation and the other does not, you should use `@pxref' _only_ +punctuation and the other does not, you should use `@pxref' *only* inside parentheses as part of another sentence. Also, you yourself should not insert punctuation after the reference, as you do with `@xref'. diff --git a/info/texinfo.info-5 b/info/texinfo.info-5 index 8f64324..e7fea89 100644 --- a/info/texinfo.info-5 +++ b/info/texinfo.info-5 @@ -1,5 +1,5 @@ -This is ../info/texinfo.info, produced by makeinfo version 3.12s from -texinfo.texi. +This is Info file ../info/texinfo.info, produced by Makeinfo version +1.68 from the input file texinfo.texi. INFO-DIR-SECTION Texinfo documentation system START-INFO-DIR-ENTRY @@ -43,7 +43,7 @@ of text refers to. For example, metasyntactic variables are marked by `@var', and code by `@code'. Since the pieces of text are labelled by commands that tell what kind of object they are, it is easy to change the way the Texinfo formatters prepare such text. (Texinfo is an -_intentional_ formatting language rather than a _typesetting_ +*intentional* formatting language rather than a *typesetting* formatting language.) For example, in a printed manual, code is usually illustrated in a @@ -523,7 +523,7 @@ File: texinfo.info, Node: emph & strong, Next: Smallcaps, Prev: Emphasis, Up --------------------------------- The `@emph' and `@strong' commands are for emphasis; `@strong' is -stronger. In printed output, `@emph' produces _italics_ and `@strong' +stronger. In printed output, `@emph' produces *italics* and `@strong' produces *bold*. For example, @@ -631,7 +631,7 @@ work only with TeX. `@end ifinfo' to define commands for Info with the same names as new commands for TeX. `@definfoenclose' creates new commands for Info that mark text by enclosing it in strings that precede and follow the text. -(1) (*note Customized Highlighting-Footnote-1::) +(1) (*note Customized Highlighting-Footnotes::) Here is how to create a new @-command called `@phoo' that causes TeX to typeset its argument in italics and causes Info to display the @@ -920,7 +920,7 @@ line, and neither does the `@end example' line. Do not put braces after an `@noindent' command; they are not necessary, since `@noindent' is a command used outside of paragraphs -(*note Command Syntax::). +(*note Command Syntax::.).  File: texinfo.info, Node: Lisp Example, Next: smallexample & smalllisp, Prev: noindent, Up: Quotations and Examples @@ -938,7 +938,7 @@ File: texinfo.info, Node: Lisp Example, Next: smallexample & smalllisp, Prev: the nature of the example. This is useful, for example, if you write a function that evaluates only and all the Lisp code in a Texinfo file. Then you can use the Texinfo file as a Lisp library.(1) (*note Lisp -Example-Footnote-1::) +Example-Footnotes::) Mark the end of `@lisp' with `@end lisp' on a line by itself. @@ -1165,7 +1165,6 @@ itemize' command. Precede each element of a list with an `@item' or `@itemx' command. - Here is an itemized list of the different kinds of table and lists: * Itemized lists with and without bullets. @@ -1174,7 +1173,6 @@ Here is an itemized list of the different kinds of table and lists: * Two-column tables with highlighting. - Here is an enumerated list with the same items: 1. Itemized lists with and without bullets. @@ -1183,7 +1181,6 @@ Here is an enumerated list with the same items: 3. Two-column tables with highlighting. - And here is a two-column table with the same items and their @-commands: `@itemize' @@ -1316,11 +1313,8 @@ This produces: 2. Proximate causes. - - Here is an example with an argument of `3': - @enumerate 3 @item Predisposing causes. @@ -1340,12 +1334,9 @@ This produces: 5. Perpetuating causes. - - Here is a brief summary of the alternatives. The summary is constructed using `@enumerate' with an argument of `a'. - a. `@enumerate' Without an argument, produce a numbered list, starting with the @@ -1398,7 +1389,7 @@ Using the `@table' Command Write the `@table' command at the beginning of a line and follow it on the same line with an argument that is a Texinfo "indicating" command such as `@code', `@samp', `@var', or `@kbd' (*note -Indicating::). Although these commands are usually followed by +Indicating::.). Although these commands are usually followed by arguments in braces, in this case you use the command name without an argument because `@item' will supply the argument. This command will be applied to the text that goes into the first column of each item and diff --git a/info/texinfo.info-6 b/info/texinfo.info-6 index e13c6f4..5b8991a 100644 --- a/info/texinfo.info-6 +++ b/info/texinfo.info-6 @@ -1,5 +1,5 @@ -This is ../info/texinfo.info, produced by makeinfo version 3.12s from -texinfo.texi. +This is Info file ../info/texinfo.info, produced by Makeinfo version +1.68 from the input file texinfo.texi. INFO-DIR-SECTION Texinfo documentation system START-INFO-DIR-ENTRY @@ -179,16 +179,16 @@ your source file as necessary. produces: -Key Command Description -C-x 2 `split-window-vertically' Split the selected window - into two windows, with one - above the other. -C-x 3 `split-window-horizontally' Split the selected window - into two windows positioned - side by side. -C-Mouse-2 In the mode line or scroll - bar of a window, split that - window. +Key Command Description +C-x 2 `split-window-vertically' Split the selected window + into two windows, with one + above the other. +C-x 3 `split-window-horizontally' Split the selected window + into two windows positioned + side by side. +C-Mouse-2 In the mode line or scroll + bar of a window, split that + window.  File: texinfo.info, Node: Indices, Next: Insertions, Prev: Lists and Tables, Up: Top @@ -224,8 +224,8 @@ Making Index Entries ==================== When you are making index entries, it is good practice to think of the -different ways people may look for something. Different people _do -not_ think of the same words when they look something up. A helpful +different ways people may look for something. Different people *do +not* think of the same words when they look something up. A helpful index will have items indexed under all the different words that people may use. For example, one reader may think it obvious that the two-letter names for indices should be listed under "Indices, @@ -322,7 +322,7 @@ case-sensitive, so use upper and lower case as required for them. font and entries for the other indices are printed in a small `@code' font. You may change the way part of an entry is printed with the usual Texinfo commands, such as `@file' for file names and `@emph' for -emphasis (*note Marking Text::). +emphasis (*note Marking Text::.). The six indexing commands for predefined indices are: @@ -525,7 +525,7 @@ roman font. Thus, it parallels the `@findex' command rather than the You should define new indices within or right after the end-of-header line of a Texinfo file, before any `@synindex' or `@syncodeindex' -commands (*note Header::). +commands (*note Header::.).  File: texinfo.info, Node: Insertions, Next: Breaks, Prev: Indices, Up: Top @@ -704,7 +704,7 @@ produces Spacey example. Other possible uses of `@SPACE' have been subsumed by `@multitable' -(*note Multi-column Tables::). +(*note Multi-column Tables::.). Do not follow any of these commands with braces. @@ -734,7 +734,7 @@ produces Not everyone uses this style. Some people prefer `8.27 in.@:' or `8.27 inches' to `8.27@dmn{in}' in the Texinfo file. In these cases, however, the formatters may insert a line break between the number and -the dimension, so use `@w' (*note w::). Also, if you write a period +the dimension, so use `@w' (*note w::.). Also, if you write a period after an abbreviation within a sentence, you should write `@:' after the period to prevent TeX from inserting extra whitespace, as shown here. *Note Inserting Space::. @@ -748,40 +748,40 @@ Inserting Accents Here is a table with the commands Texinfo provides for inserting floating accents. The commands with non-alphabetic names do not take braces around their argument (which is taken to be the next character). -(Exception: `@,' _does_ take braces around its argument.) This is so +(Exception: `@,' *does* take braces around its argument.) This is so as to make the source as convenient to type and read as possible, since accented characters are very common in some languages. -Command Output What -@"o o" umlaut accent -@'o o' acute accent -@,{c} c, cedilla accent -@=o o= macron/overbar accent -@^o o^ circumflex accent -@`o o` grave accent -@~o o~ tilde accent -@dotaccent{o} o. overdot accent -@H{o} o'' long Hungarian umlaut -@ringaccent{o} o* ring accent -@tieaccent{oo} oo[ tie-after accent -@u{o} o( breve accent -@ubaraccent{o} o_ underbar accent -@udotaccent{o} .o underdot accent -@v{o} o< hacek or check accent +Command Output What +@"o "o umlaut accent +@'o 'o acute accent +@,{c} c, cedilla accent +@=o =o macron/overbar accent +@^o ^o circumflex accent +@`o `o grave accent +@~o ~o tilde accent +@dotaccent{o} .o overdot accent +@H{o} ''o long Hungarian umlaut +@ringaccent{o} *o ring accent +@tieaccent{oo} [oo tie-after accent +@u{o} (o breve accent +@ubaraccent{o} o_ underbar accent +@udotaccent{o} o-. underdot accent +@v{o} '. *Note `@result': result. `@ringaccent{C}' - Generate a ring accent over the next character, as in o*. *Note + Generate a ring accent over the next character, as in *o. *Note Inserting Accents::. `@samp{TEXT}' @@ -1021,7 +1020,7 @@ indicates repeated text. `@tieaccent{CC}' Generate a tie-after accent over the next two characters CC, as in - `oo['. *Note Inserting Accents::. + `[oo'. *Note Inserting Accents::. `@tindex ENTRY' Add ENTRY to the index of data types. *Note Defining the Entries @@ -1064,7 +1063,7 @@ indicates repeated text. `@ubaraccent{C}' `@udotaccent{C}' Generate a breve, underbar, or underdot accent, respectively, over - or under the character C, as in o(, o_, .o. *Note Inserting + or under the character C, as in (o, o_, o-.. *Note Inserting Accents::. `@unnumbered TITLE' @@ -1102,7 +1101,7 @@ indicates repeated text. Web. *Note `@url': url. `@v{C}' - Generate check accent over the character C, as in o<. *Note + Generate check accent over the character C, as in ' - - Command: widget-forward &optional count + - Command: widget-forward &optional COUNT Move point COUNT buttons or editing fields forward. `' - - Command: widget-backward &optional count + - Command: widget-backward &optional COUNT Move point COUNT buttons or editing fields backward.  @@ -369,14 +369,14 @@ object. This object can be queried and manipulated by other widget functions, until it is deleted with `widget-delete'. After the widgets have been created, `widget-setup' must be called to enable them. - - Function: widget-create type [ keyword argument ]... + - Function: widget-create TYPE [ KEYWORD ARGUMENT ]... Create and return a widget of type TYPE. The syntax for the TYPE argument is described in *Note Basic Types::. The keyword arguments can be used to overwrite the keyword arguments that are part of TYPE. - - Function: widget-delete widget + - Function: widget-delete WIDGET Delete WIDGET and remove it from the buffer. - Function: widget-setup @@ -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. @@ -480,13 +480,13 @@ widget specific way. Text around %[ %] in the format. These can be - _nil_ + *nil* No text is inserted. - _a string_ + *a string* The string is inserted literally. - _a symbol_ + *a symbol* The value of the symbol is expanded according to this table. `:doc' @@ -539,13 +539,13 @@ 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: - - Function: widget-children-validate widget + - Function: widget-children-validate WIDGET All the `:children' of WIDGET must be valid. `:tab-order' @@ -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. @@ -800,7 +798,7 @@ arguments. widget after it has been created with the function `widget-radio-add-item'. - - Function: widget-radio-add-item widget type + - Function: widget-radio-add-item WIDGET TYPE Add to `radio-button-choice' widget WIDGET a new radio button item of type TYPE. @@ -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. @@ -1198,15 +1196,15 @@ Properties You can examine or set the value of a widget by using the widget object that was returned by `widget-create'. - - Function: widget-value widget + - Function: widget-value WIDGET Return the current value contained in WIDGET. It is an error to call this function on an uninitialized widget. - - Function: widget-value-set widget value + - Function: widget-value-set WIDGET VALUE Set the value contained in WIDGET to VALUE. It is an error to call this function with an invalid VALUE. - *Important:* You _must_ call `widget-setup' after modifying the + *Important:* You *must* call `widget-setup' after modifying the value of a widget before the user is allowed to edit the widget again. It is enough to call `widget-setup' once if you modify multiple widgets. This is currently only necessary if the widget contains an @@ -1217,22 +1215,22 @@ widget objects, for example a reference to the item being edited, it can be done with `widget-put' and `widget-get'. The property names must begin with a `:'. - - Function: widget-put widget property value + - Function: widget-put WIDGET PROPERTY VALUE In WIDGET set PROPERTY to VALUE. PROPERTY should be a symbol, while VALUE can be anything. - - Function: widget-get widget property + - Function: widget-get WIDGET PROPERTY In WIDGET return the value for PROPERTY. PROPERTY should be a symbol, the value is what was last set by `widget-put' for PROPERTY. - - Function: widget-member widget property + - Function: widget-member WIDGET PROPERTY Non-nil if WIDGET has a value (even nil) for property PROPERTY. Occasionally it can be useful to know which kind of widget you have, i.e. the name of the widget type you gave when the widget was created. - - Function: widget-type widget + - Function: widget-type WIDGET Return the name of WIDGET, a symbol. Widgets can be in two states: active, which means they are @@ -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,11 +1272,11 @@ 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 + - Function: widget-define NAME CLASS DOC &rest ARGS Define a new widget type named NAME from `class'. NAME and class should both be symbols, `class' should be one of @@ -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,20 +1305,20 @@ 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: - - Function: widget-types-convert-widget widget + - Function: widget-types-convert-widget WIDGET Convert `:args' as widget types in WIDGET. - - Function: widget-value-convert-widget widget + - Function: widget-value-convert-widget WIDGET Initialize `:value' from `:args' in WIDGET. `: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,18 +1341,18 @@ 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: - - Function: widget-children-value-delete widget + - Function: widget-children-value-delete WIDGET Delete all `:children' and `:buttons' in WIDGET. `:value-get' @@ -1363,7 +1361,7 @@ new widgets: The following predefined function can be used here: - - Function: widget-value-value-get widget + - Function: widget-value-value-get WIDGET Return the `:value' property of WIDGET. `:format-handler' @@ -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' @@ -1382,7 +1380,7 @@ new widgets: The following predefined function can be used here: - - Function: widget-parent-action widget &optional event + - Function: widget-parent-action WIDGET &optional EVENT Tell `:parent' of WIDGET to handle the `:action'. Optional EVENT is the event that triggered the action. @@ -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. @@ -1450,12 +1448,12 @@ File: widget.info, Node: Utilities, Next: Widget Wishlist, Prev: Widget Minor Utilities. ========== - - Function: widget-prompt-value widget prompt [ value unbound ] + - Function: widget-prompt-value WIDGET PROMPT [ VALUE UNBOUND ] Prompt for a value matching WIDGET, using PROMPT. The current value is assumed to be VALUE, unless UNBOUND is non-nil. - - Function: widget-get-sibling widget + - Function: widget-get-sibling WIDGET Get the item WIDGET is assumed to toggle. This is only meaningful for radio buttons or checkboxes in a list. @@ -1514,40 +1512,39 @@ Wishlist symbol, it should pop up a menu. -  Tag Table: -Node: Top203 -Node: Introduction583 -Node: User Interface4066 -Node: Programming Example8961 -Node: Setting Up the Buffer12278 -Node: Basic Types13995 -Node: link20040 -Node: url-link20554 -Node: info-link20866 -Node: push-button21157 -Node: editable-field21730 -Node: text23069 -Node: menu-choice23367 -Node: radio-button-choice24232 +Node: Top227 +Node: Introduction607 +Node: User Interface4090 +Node: Programming Example8985 +Node: Setting Up the Buffer12302 +Node: Basic Types14019 +Node: link20064 +Node: url-link20578 +Node: info-link20890 +Node: push-button21181 +Node: editable-field21754 +Node: text23093 +Node: menu-choice23391 +Node: radio-button-choice24244 Node: item25811 Node: choice-item26199 Node: toggle26697 -Node: checkbox27422 -Node: checklist27728 -Node: editable-list29172 -Node: group30354 -Node: Sexp Types30641 -Node: constants30954 -Node: generic32033 -Node: atoms32566 -Node: composite34513 -Node: Widget Properties36979 -Node: Defining New Widgets40042 -Node: Widget Browser45342 -Node: Widget Minor Mode46200 -Node: Utilities46757 -Node: Widget Wishlist47238 +Node: checkbox27434 +Node: checklist27740 +Node: editable-list29184 +Node: group30366 +Node: Sexp Types30653 +Node: constants30966 +Node: generic32045 +Node: atoms32578 +Node: composite34525 +Node: Widget Properties36995 +Node: Defining New Widgets40060 +Node: Widget Browser45360 +Node: Widget Minor Mode46218 +Node: Utilities46775 +Node: Widget Wishlist47256  End Tag Table diff --git a/info/xemacs-faq.info b/info/xemacs-faq.info index 2e37720..8eceab5 100644 --- a/info/xemacs-faq.info +++ b/info/xemacs-faq.info @@ -1,5 +1,5 @@ -This is ../info/xemacs-faq.info, produced by makeinfo version 3.12s -from xemacs-faq.texi. +This is Info file ../info/xemacs-faq.info, produced by Makeinfo version +1.68 from the input file xemacs-faq.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -8,259 +8,260 @@ END-INFO-DIR-ENTRY  Indirect: -xemacs-faq.info-1: 197 -xemacs-faq.info-2: 47858 -xemacs-faq.info-3: 94967 -xemacs-faq.info-4: 144802 -xemacs-faq.info-5: 194690 +xemacs-faq.info-1: 221 +xemacs-faq.info-2: 48025 +xemacs-faq.info-3: 95739 +xemacs-faq.info-4: 145583 +xemacs-faq.info-5: 195169  Tag Table: (Indirect) -Node: Top197 -Node: Introduction16713 -Node: Q1.0.120232 -Node: Q1.0.220768 -Node: Q1.0.321263 -Node: Q1.0.421525 -Node: Q1.0.522975 -Node: Q1.0.623664 -Node: Q1.0.724670 -Node: Q1.0.824919 -Node: Q1.0.925134 -Node: Q1.0.1025412 -Node: Q1.0.1125655 -Node: Q1.0.1226112 -Node: Q1.0.1326480 -Node: Q1.0.1426715 -Node: Q1.1.127189 -Node: Q1.1.228151 -Node: Q1.1.328544 -Node: Q1.2.129495 -Node: Q1.2.230551 -Node: Q1.2.330985 -Node: Q1.3.131936 -Node: Q1.3.235854 -Node: Q1.3.336409 -Node: Q1.3.436650 -Node: Q1.3.537414 -Node: Q1.3.639829 -Node: Q1.3.741324 -Node: Q1.4.142259 -Node: Q1.4.243121 -Node: Q1.4.343462 -Node: Q1.4.443881 -Node: Q1.4.545421 -Node: Q1.4.645725 -Node: Q1.4.746733 -Node: Installation47858 -Node: Q2.0.150264 -Node: Q2.0.251137 -Node: Q2.0.358340 -Node: Q2.0.459638 -Node: Q2.0.560230 -Node: Q2.0.660598 -Node: Q2.0.760979 -Node: Q2.0.861360 -Node: Q2.0.962938 -Node: Q2.0.1064376 -Node: Q2.0.1165220 -Node: Q2.0.1266161 -Node: Q2.0.1367684 -Node: Q2.0.1468342 -Node: Q2.1.168910 -Node: Q2.1.271652 -Node: Q2.1.372829 -Node: Q2.1.474122 -Node: Q2.1.574921 -Node: Q2.1.675283 -Node: Q2.1.775760 -Node: Q2.1.876113 -Node: Q2.1.977629 -Node: Q2.1.1078051 -Node: Q2.1.1178808 -Node: Q2.1.1279673 -Node: Q2.1.1380628 -Node: Q2.1.1481659 -Node: Q2.1.1582770 -Node: Q2.1.1688728 -Node: Q2.1.1789422 -Node: Q2.1.1890019 -Node: Q2.1.1991816 -Node: Q2.1.2092346 -Node: Q2.1.2192728 -Node: Q2.1.2293018 -Node: Q2.1.2394315 -Node: Customization94967 -Node: Q3.0.199854 -Node: Q3.0.2100560 -Node: Q3.0.3101124 -Node: Q3.0.4101541 -Node: Q3.0.5102374 -Node: Q3.0.6103155 -Node: Q3.0.7103735 -Node: Q3.0.8104399 -Node: Q3.0.9105245 -Node: Q3.1.1105806 -Node: Q3.1.2106543 -Node: Q3.1.3106974 -Node: Q3.1.4107559 -Node: Q3.1.5108095 -Node: Q3.1.6108479 -Node: Q3.1.7109160 -Node: Q3.1.8111384 -Node: Q3.2.1111926 -Node: Q3.2.2113334 -Node: Q3.2.3114133 -Node: Q3.2.4114735 -Node: Q3.2.5115769 -Node: Q3.2.6116236 -Node: Q3.3.1117198 -Node: Q3.3.2117591 -Node: Q3.3.3118222 -Node: Q3.3.4118603 -Node: Q3.3.5119697 -Node: Q3.4.1121191 -Node: Q3.4.2121834 -Node: Q3.5.1122346 -Node: Q3.5.2123800 -Node: Q3.5.3124218 -Node: Q3.5.4125058 -Node: Q3.5.5125890 -Node: Q3.5.6127030 -Node: Q3.5.7128020 -Node: Q3.5.8129372 -Node: Q3.5.9130119 -Node: Q3.5.10130899 -Node: Q3.5.11131535 -Node: Q3.6.1132088 -Node: Q3.6.2132828 -Node: Q3.6.3133256 -Node: Q3.7.1133756 -Node: Q3.7.2134644 -Node: Q3.7.3135303 -Node: Q3.7.4135725 -Node: Q3.7.5136068 -Node: Q3.7.6136536 -Node: Q3.7.7137251 -Node: Q3.7.8138271 -Node: Q3.8.1138690 -Node: Q3.8.2139150 -Node: Q3.8.3139613 -Node: Q3.8.4140219 -Node: Q3.8.5140938 -Node: Q3.9.1141723 -Node: Q3.9.2142663 -Node: Q3.9.3143261 -Node: Q3.9.4143923 -Node: Q3.10.1144802 -Node: Q3.10.2145620 -Node: Q3.10.3146401 -Node: Q3.10.4147129 -Node: Q3.10.5147512 -Node: Subsystems148522 -Node: Q4.0.1151007 -Node: Q4.0.2151532 -Node: Q4.0.3152090 -Node: Q4.0.4152411 -Node: Q4.0.5152653 -Node: Q4.0.6152884 -Node: Q4.0.7153465 -Node: Q4.0.8153790 -Node: Q4.0.9155017 -Node: Q4.0.10157055 -Node: Q4.0.11157509 -Node: Q4.0.12158359 -Node: Q4.1.1159332 -Node: Q4.1.2159735 -Node: Q4.1.3160062 -Node: Q4.2.1160371 -Node: Q4.2.2161001 -Node: Q4.2.3161241 -Node: Q4.2.4161785 -Node: Q4.3.1162438 -Node: Q4.3.2163022 -Node: Q4.3.3164503 -Node: Q4.3.4164775 -Node: Q4.3.5165452 -Node: Q4.4.1166080 -Node: Q4.4.2167566 -Node: Q4.5.1168770 -Node: Q4.6.1169539 -Node: Q4.7.1174799 -Node: Q4.7.2175754 -Node: Q4.7.3176051 -Node: Q4.7.4176397 -Node: Q4.7.5177281 -Node: Q4.7.6178923 -Node: Miscellaneous179517 -Node: Q5.0.1182937 -Node: Q5.0.2183671 -Node: Q5.0.3184525 -Node: Q5.0.4185227 -Node: Q5.0.5186166 -Node: Q5.0.6188146 -Node: Q5.0.7188803 -Node: Q5.0.8189408 -Node: Q5.0.9189927 -Node: Q5.0.10190441 -Node: Q5.0.11190689 -Node: Q5.0.12191250 -Node: Q5.0.13192167 -Node: Q5.0.14192851 -Node: Q5.0.15193616 -Node: Q5.0.16193913 -Node: Q5.0.17194425 -Node: Q5.0.18194690 -Node: Q5.0.19195216 -Node: Q5.0.20195640 -Node: Q5.1.1196555 -Node: Q5.1.2198624 -Node: Q5.1.3199360 -Node: Q5.1.4202754 -Node: Q5.1.5203289 -Node: Q5.1.6205383 -Node: Q5.1.7206772 -Node: Q5.1.8208373 -Node: Q5.1.9208925 -Node: Q5.1.10209810 -Node: Q5.1.11210941 -Node: Q5.2.1211490 -Node: Q5.2.2212061 -Node: Q5.2.3212478 -Node: Q5.2.4212713 -Node: Q5.3.1213623 -Node: Q5.3.2214844 -Node: Q5.3.3215620 -Node: Q5.3.4216104 -Node: Q5.3.5216771 -Node: Q5.3.6217640 -Node: Q5.3.7217885 -Node: Q5.3.8220075 -Node: Q5.3.9220322 -Node: Q5.3.10221275 -Node: Q5.3.11223359 -Node: Q5.3.12224908 -Node: MS Windows226182 -Node: Q6.0.1227513 -Node: Q6.0.2228260 -Node: Q6.0.3228725 -Node: Q6.0.4229005 -Node: Q6.1.1231286 -Node: Q6.1.2232157 -Node: Q6.1.3232438 -Node: Q6.1.4232720 -Node: Q6.1.5233098 -Node: Q6.1.6233930 -Node: Q6.2.1234514 -Node: Q6.2.2235415 -Node: Q6.2.3235816 -Node: Q6.3.1236105 -Node: Q6.3.2237199 -Node: Q6.3.3240380 -Node: Current Events240634 -Node: Q7.0.1241288 -Node: Q7.0.2241927 -Node: Q7.0.3243001 -Node: Q7.0.4243229 +Node: Top221 +Node: Introduction16805 +Node: Q1.0.120286 +Node: Q1.0.220822 +Node: Q1.0.321317 +Node: Q1.0.421579 +Node: Q1.0.523029 +Node: Q1.0.623718 +Node: Q1.0.724724 +Node: Q1.0.824973 +Node: Q1.0.925188 +Node: Q1.0.1025466 +Node: Q1.0.1125709 +Node: Q1.0.1226166 +Node: Q1.0.1326534 +Node: Q1.0.1426769 +Node: Q1.1.127243 +Node: Q1.1.228320 +Node: Q1.1.328713 +Node: Q1.2.129664 +Node: Q1.2.230718 +Node: Q1.2.331151 +Node: Q1.3.132102 +Node: Q1.3.236020 +Node: Q1.3.336575 +Node: Q1.3.436817 +Node: Q1.3.537581 +Node: Q1.3.639996 +Node: Q1.3.741491 +Node: Q1.4.142426 +Node: Q1.4.243288 +Node: Q1.4.343629 +Node: Q1.4.444048 +Node: Q1.4.545588 +Node: Q1.4.645892 +Node: Q1.4.746900 +Node: Installation48025 +Node: Q2.0.150491 +Node: Q2.0.251364 +Node: Q2.0.358567 +Node: Q2.0.459865 +Node: Q2.0.560457 +Node: Q2.0.660825 +Node: Q2.0.761206 +Node: Q2.0.861587 +Node: Q2.0.963165 +Node: Q2.0.1064603 +Node: Q2.0.1165447 +Node: Q2.0.1266388 +Node: Q2.0.1367911 +Node: Q2.0.1468569 +Node: Q2.1.169137 +Node: Q2.1.271879 +Node: Q2.1.373056 +Node: Q2.1.474349 +Node: Q2.1.575148 +Node: Q2.1.675510 +Node: Q2.1.775987 +Node: Q2.1.876340 +Node: Q2.1.977856 +Node: Q2.1.1078278 +Node: Q2.1.1179035 +Node: Q2.1.1279900 +Node: Q2.1.1380855 +Node: Q2.1.1481886 +Node: Q2.1.1582997 +Node: Q2.1.1688954 +Node: Q2.1.1789648 +Node: Q2.1.1890245 +Node: Q2.1.1992042 +Node: Q2.1.2092572 +Node: Q2.1.2192954 +Node: Q2.1.2293244 +Node: Q2.1.2394541 +Node: Q2.1.2495209 +Node: Customization95739 +Node: Q3.0.1100633 +Node: Q3.0.2101339 +Node: Q3.0.3101903 +Node: Q3.0.4102320 +Node: Q3.0.5103153 +Node: Q3.0.6103934 +Node: Q3.0.7104514 +Node: Q3.0.8105178 +Node: Q3.0.9106024 +Node: Q3.1.1106585 +Node: Q3.1.2107322 +Node: Q3.1.3107753 +Node: Q3.1.4108338 +Node: Q3.1.5108874 +Node: Q3.1.6109258 +Node: Q3.1.7109939 +Node: Q3.1.8112163 +Node: Q3.2.1112705 +Node: Q3.2.2114113 +Node: Q3.2.3114912 +Node: Q3.2.4115514 +Node: Q3.2.5116548 +Node: Q3.2.6117015 +Node: Q3.3.1117977 +Node: Q3.3.2118370 +Node: Q3.3.3119001 +Node: Q3.3.4119382 +Node: Q3.3.5120476 +Node: Q3.4.1121970 +Node: Q3.4.2122613 +Node: Q3.5.1123125 +Node: Q3.5.2124580 +Node: Q3.5.3124998 +Node: Q3.5.4125839 +Node: Q3.5.5126671 +Node: Q3.5.6127811 +Node: Q3.5.7128801 +Node: Q3.5.8130153 +Node: Q3.5.9130900 +Node: Q3.5.10131680 +Node: Q3.5.11132316 +Node: Q3.6.1132869 +Node: Q3.6.2133609 +Node: Q3.6.3134037 +Node: Q3.7.1134537 +Node: Q3.7.2135425 +Node: Q3.7.3136084 +Node: Q3.7.4136506 +Node: Q3.7.5136849 +Node: Q3.7.6137317 +Node: Q3.7.7138032 +Node: Q3.7.8139052 +Node: Q3.8.1139471 +Node: Q3.8.2139931 +Node: Q3.8.3140394 +Node: Q3.8.4141000 +Node: Q3.8.5141719 +Node: Q3.9.1142504 +Node: Q3.9.2143444 +Node: Q3.9.3144042 +Node: Q3.9.4144704 +Node: Q3.10.1145583 +Node: Q3.10.2146401 +Node: Q3.10.3147182 +Node: Q3.10.4147910 +Node: Q3.10.5148293 +Node: Subsystems149303 +Node: Q4.0.1151788 +Node: Q4.0.2152313 +Node: Q4.0.3152871 +Node: Q4.0.4153192 +Node: Q4.0.5153434 +Node: Q4.0.6153665 +Node: Q4.0.7154246 +Node: Q4.0.8154571 +Node: Q4.0.9155798 +Node: Q4.0.10157836 +Node: Q4.0.11158290 +Node: Q4.0.12159140 +Node: Q4.1.1160113 +Node: Q4.1.2160516 +Node: Q4.1.3160843 +Node: Q4.2.1161152 +Node: Q4.2.2161782 +Node: Q4.2.3162022 +Node: Q4.2.4162566 +Node: Q4.3.1163219 +Node: Q4.3.2163803 +Node: Q4.3.3165284 +Node: Q4.3.4165556 +Node: Q4.3.5166233 +Node: Q4.4.1166861 +Node: Q4.4.2168347 +Node: Q4.5.1169551 +Node: Q4.6.1170320 +Node: Q4.7.1175580 +Node: Q4.7.2176535 +Node: Q4.7.3176832 +Node: Q4.7.4177178 +Node: Q4.7.5178062 +Node: Q4.7.6179704 +Node: Miscellaneous179993 +Node: Q5.0.1183415 +Node: Q5.0.2184149 +Node: Q5.0.3185003 +Node: Q5.0.4185705 +Node: Q5.0.5186645 +Node: Q5.0.6188625 +Node: Q5.0.7189282 +Node: Q5.0.8189887 +Node: Q5.0.9190406 +Node: Q5.0.10190920 +Node: Q5.0.11191168 +Node: Q5.0.12191729 +Node: Q5.0.13192646 +Node: Q5.0.14193330 +Node: Q5.0.15194095 +Node: Q5.0.16194392 +Node: Q5.0.17194904 +Node: Q5.0.18195169 +Node: Q5.0.19195695 +Node: Q5.0.20196120 +Node: Q5.1.1197035 +Node: Q5.1.2199104 +Node: Q5.1.3199840 +Node: Q5.1.4203234 +Node: Q5.1.5203769 +Node: Q5.1.6205863 +Node: Q5.1.7207252 +Node: Q5.1.8208853 +Node: Q5.1.9209405 +Node: Q5.1.10210290 +Node: Q5.1.11211421 +Node: Q5.2.1211970 +Node: Q5.2.2212541 +Node: Q5.2.3212958 +Node: Q5.2.4213193 +Node: Q5.3.1214103 +Node: Q5.3.2215324 +Node: Q5.3.3216100 +Node: Q5.3.4216584 +Node: Q5.3.5217251 +Node: Q5.3.6218120 +Node: Q5.3.7218365 +Node: Q5.3.8220555 +Node: Q5.3.9220802 +Node: Q5.3.10221755 +Node: Q5.3.11223839 +Node: Q5.3.12225388 +Node: MS Windows226662 +Node: Q6.0.1227993 +Node: Q6.0.2228740 +Node: Q6.0.3229205 +Node: Q6.0.4229485 +Node: Q6.1.1231765 +Node: Q6.1.2232636 +Node: Q6.1.3232917 +Node: Q6.1.4233199 +Node: Q6.1.5233577 +Node: Q6.1.6234408 +Node: Q6.2.1234992 +Node: Q6.2.2235893 +Node: Q6.2.3236294 +Node: Q6.3.1236583 +Node: Q6.3.2237677 +Node: Q6.3.3240855 +Node: Current Events241109 +Node: Q7.0.1241763 +Node: Q7.0.2242402 +Node: Q7.0.3243476 +Node: Q7.0.4243704  End Tag Table diff --git a/info/xemacs-faq.info-1 b/info/xemacs-faq.info-1 index 80b96e3..fda750c 100644 --- a/info/xemacs-faq.info-1 +++ b/info/xemacs-faq.info-1 @@ -1,5 +1,5 @@ -This is ../info/xemacs-faq.info, produced by makeinfo version 3.12s -from xemacs-faq.texi. +This is Info file ../info/xemacs-faq.info, produced by Makeinfo version +1.68 from the input file xemacs-faq.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -43,7 +43,7 @@ archives. * Current Events:: What the Future Holds. - --- The Detailed Node Listing --- + -- The Detailed Node Listing -- Introduction, Policy, Credits @@ -121,7 +121,7 @@ Trouble Shooting: * Q2.1.11:: Can't instantiate image error... in toolbar * Q2.1.12:: Regular Expression Problems on DEC OSF1. * Q2.1.13:: HP/UX 10.10 and `create_process' failure -* Q2.1.14:: C-g doesn't work for me. Is it broken? +* Q2.1.14:: `C-g' doesn't work for me. Is it broken? * Q2.1.15:: How to debug an XEmacs problem with a debugger. * Q2.1.16:: XEmacs crashes in `strcat' on HP/UX 10. * Q2.1.17:: `Marker does not point anywhere'. @@ -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 @@ -177,9 +178,9 @@ The Keyboard: * Q3.5.1:: How can I bind complex functions (or macros) to keys? * Q3.5.2:: How can I stop down-arrow from adding empty lines to the bottom of my buffers? * Q3.5.3:: How do I bind C-. and C-; to scroll one line up and down? -* Q3.5.4:: Globally binding Delete? +* Q3.5.4:: Globally binding `Delete'? * Q3.5.5:: Scrolling one line at a time. -* Q3.5.6:: How to map Help key alone on Sun type4 keyboard? +* Q3.5.6:: How to map `Help' key alone on Sun type4 keyboard? * Q3.5.7:: How can you type in special characters in XEmacs? * Q3.5.8:: Why does `(global-set-key [delete-forward] 'delete-char)' complain? * Q3.5.9:: How do I make the Delete key delete forward? @@ -199,7 +200,7 @@ The Mouse and Highlighting: * Q3.7.5:: Why does cut-and-paste not work between XEmacs and a cmdtool? * Q3.7.6:: How I can set XEmacs up so that it pastes where the text cursor is? * Q3.7.7:: How do I select a rectangular region? -* Q3.7.8:: Why does M-w take so long? +* Q3.7.8:: Why does `M-w' take so long? The Menubar and Toolbar: * Q3.8.1:: How do I get rid of the menu (or menubar)? @@ -218,7 +219,7 @@ Text Selections: * Q3.10.1:: How can I turn off or change highlighted selections? * Q3.10.2:: How do I get that typing on an active region removes it? * Q3.10.3:: Can I turn off the highlight during isearch? -* Q3.10.4:: How do I turn off highlighting after C-x C-p (mark-page)? +* Q3.10.4:: How do I turn off highlighting after `C-x C-p' (mark-page)? * Q3.10.5:: The region disappears when I hit the end of buffer while scrolling. Major Subsystems @@ -318,7 +319,7 @@ Miscellaneous: * Q5.3.1:: How do you make XEmacs indent CL if-clauses correctly? * Q5.3.2:: Fontifying hangs when editing a postscript file. * Q5.3.3:: How can I print WYSIWYG a font-locked buffer? -* Q5.3.4:: Getting M-x lpr to work with postscript printer. +* Q5.3.4:: Getting `M-x lpr' to work with postscript printer. * Q5.3.5:: How do I specify the paths that XEmacs uses for finding files? * Q5.3.6:: [This question intentionally left blank] * Q5.3.7:: Can I have the end of the buffer delimited in some way? @@ -374,25 +375,21 @@ 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 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. + 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. 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 ChristianNybo/. 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: @@ -617,8 +614,8 @@ Q1.0.11: Is there a port of XEmacs to the Macintosh? but no patches have been submitted to the maintainers to get this in the mainstream distribution. - For the MacOS, there is a port of Emacs 18.59 -(ftp://ftp.cs.cornell.edu/pub/parmet/). + For the MacOS, there is a port of +Emacs 18.59 (ftp://ftp.cs.cornell.edu/pub/parmet/).  File: xemacs-faq.info, Node: Q1.0.12, Next: Q1.0.13, Prev: Q1.0.11, Up: Introduction @@ -660,8 +657,9 @@ 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 @@ -732,7 +730,6 @@ developers responsible for the 19.16/20.x releases are: * Hrvoje Niksic - The developers responsible for the 19.14 release are: * Chuck Thompson @@ -742,7 +739,6 @@ developers responsible for the 19.16/20.x releases are: * Ben Wing - * Jamie Zawinski Jamie Zawinski was Mr. Lucid Emacs from 19.0 through 19.10, the @@ -769,7 +765,6 @@ this version of the FAQ (listed in alphabetical order): * Aki Vehtari -  File: xemacs-faq.info, Node: Q1.2.3, Next: Q1.3.1, Prev: Q1.2.2, Up: Introduction @@ -827,7 +822,7 @@ in February 1998. When compiled without MULE support, 20.4 is approximately as stable as 19.16, and probably faster (due to additional optimization work.) - As of XEmacs 20.3, version 20 is _the_ supported version of XEmacs. + As of XEmacs 20.3, version 20 is *the* supported version of XEmacs. This means that 19.16 will optionally receive stability fixes (if any), but that all the real development work will be done on the v20 tree. @@ -872,7 +867,7 @@ for your convenience. characters. If XEmacs was not compiled with MULE support, the range of this integer will always be 0 to 255 - eight bits, or one byte. (Integers outside this range are accepted but silently - truncated; however, you should most decidedly _not_ rely on this, + truncated; however, you should most decidedly *not* rely on this, because it will not work under XEmacs with MULE support.) When MULE support is present, the range of character codes is much larger. (Currently, 19 bits are used.) @@ -885,7 +880,7 @@ for your convenience. XEmacs. Individual characters are not often used in programs. It is far - more common to work with _strings_, which are sequences composed of + more common to work with *strings*, which are sequences composed of characters.  @@ -909,7 +904,7 @@ File: xemacs-faq.info, Node: Q1.3.3, Next: Q1.3.4, Prev: Q1.3.2, Up: Introdu Q1.3.3: How do I type non-ASCII characters? ------------------------------------------- - See question 3.5.7 (*note Q3.5.7::) in part 3 of this FAQ. + See question 3.5.7 (*note Q3.5.7::.) in part 3 of this FAQ.  File: xemacs-faq.info, Node: Q1.3.4, Next: Q1.3.5, Prev: Q1.3.3, Up: Introduction @@ -918,8 +913,8 @@ Q1.3.4: Can XEmacs messages come out in a different language? ------------------------------------------------------------- The message-catalog support has mostly been written but doesn't -currently work. The first release of XEmacs 20 will _not_ support it. -However, menubar localization _does_ work, even in 19.14. To enable +currently work. The first release of XEmacs 20 will *not* support it. +However, menubar localization *does* work, even in 19.14. To enable it, add to your `Emacs' file entries like this: Emacs*XlwMenu.resourceLabels: True diff --git a/info/xemacs-faq.info-2 b/info/xemacs-faq.info-2 index f540c5c..f1e71fc 100644 --- a/info/xemacs-faq.info-2 +++ b/info/xemacs-faq.info-2 @@ -1,5 +1,5 @@ -This is ../info/xemacs-faq.info, produced by makeinfo version 3.12s -from xemacs-faq.texi. +This is Info file ../info/xemacs-faq.info, produced by Makeinfo version +1.68 from the input file xemacs-faq.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -47,7 +47,7 @@ Trouble Shooting: * Q2.1.11:: Can't instantiate image error... in toolbar * Q2.1.12:: Regular Expression Problems on DEC OSF1. * Q2.1.13:: HP/UX 10.10 and `create_process' failure -* Q2.1.14:: C-g doesn't work for me. Is it broken? +* Q2.1.14:: `C-g' doesn't work for me. Is it broken? * Q2.1.15:: How to debug an XEmacs problem with a debugger. * Q2.1.16:: XEmacs crashes in `strcat' on HP/UX 10. * Q2.1.17:: `Marker does not point anywhere'. @@ -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 @@ -180,15 +181,15 @@ still stands true. These are all Emacs Lisp source code and bytecompiled object code. You may safely gzip everything named *.el here. You may remove - any package you don't use. _Nothing bad will happen if you delete - a package that you do not use_. You must be sure you do not use + any package you don't use. *Nothing bad will happen if you delete + a package that you do not use*. You must be sure you do not use it though, so be conservative at first. Possible candidates for deletion include w3 (newer versions exist, or you may just use Lynx or Netscape for web browsing), games, hyperbole, mh-e, hm-html-menus (better packages exist), vm, viper, - oobr, gnus (new versions exist), etc. Ask yourself, _Do I ever - want to use this package?_ If the answer is no, then it is a + oobr, gnus (new versions exist), etc. Ask yourself, *Do I ever + want to use this package?* If the answer is no, then it is a candidate for removal. First, gzip all the .el files. Then go about package by package @@ -358,7 +359,7 @@ ELF libraries are out of date. You have the following options: perl -pi -e 's/_h_errno\0/h_errno\0\0/g' \ /usr/local/bin/xemacs-19.14 - NB: You _must_ patch `/usr/local/bin/xemacs-19.14', and not + NB: You *must* patch `/usr/local/bin/xemacs-19.14', and not `xemacs' because `xemacs' is a link to `xemacs-19.14'; the Perl `-i' option will cause unwanted side-effects if applied to a symbolic link. @@ -409,8 +410,8 @@ PNG Compface `ftp://ftp.cs.indiana.edu/pub/faces/compface/'. This library has been frozen for about 6 years, and is distributed without version - numbers. _It should be compiled with the same options that X11 was - compiled with on your system_. The version of this library at + numbers. *It should be compiled with the same options that X11 was + compiled with on your system*. The version of this library at XEmacs.org includes the `xbm2xface.pl' script, written by , which may be useful when generating your own xface. @@ -905,7 +906,7 @@ Q2.1.14: `C-g' doesn't work for me. Is it broken? Morten Welinder writes: - On some (but _not_ all) machines a hung XEmacs can be revived by + On some (but *not* all) machines a hung XEmacs can be revived by `kill -FPE '. This is a hack, of course, not a solution. This technique works on a Sun4 running 4.1.3_U1. To see if it works for you, start another XEmacs and test with that first. If @@ -1033,7 +1034,6 @@ debugger. Here are some hints: `gdbinit' files provided in the `src' directory. Use the one corresponding to the configure options used when building XEmacs. -  File: xemacs-faq.info, Node: Q2.1.16, Next: Q2.1.17, Prev: Q2.1.15, Up: Installation @@ -1101,12 +1101,12 @@ Q2.1.18: 19.14 hangs on HP/UX 10.10. Apparently somebody has found the reason why there is this `poll: interrupted...' message for each event. For some reason, libcurses reimplements a `select()' system call, in a highly broken fashion. - The fix is to add a -lc to the link line _before_ the -lxcurses. + The fix is to add a -lc to the link line *before* the -lxcurses. XEmacs will then use the right version of `select()'. Alain Fauconnet writes: - The _real_ solution is to _not_ link -lcurses in! I just changed + The *real* solution is to *not* link -lcurses in! I just changed -lcurses to -ltermcap in the Makefile and it fixed: 1. The `poll: interrupted system call' message. @@ -1114,7 +1114,7 @@ Q2.1.18: 19.14 hangs on HP/UX 10.10. 2. A more serious problem I had discovered in the meantime, that is the fact that subprocess handling was seriously broken: subprocesses e.g. started by AUC TeX for TeX compilation of a - buffer would _hang_. Actually they would wait forever for + buffer would *hang*. Actually they would wait forever for emacs to read the socket which connects stdout...  @@ -1189,7 +1189,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 +1206,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/info/xemacs-faq.info-3 b/info/xemacs-faq.info-3 index 0c24c82..d6ddac2 100644 --- a/info/xemacs-faq.info-3 +++ b/info/xemacs-faq.info-3 @@ -1,5 +1,5 @@ -This is ../info/xemacs-faq.info, produced by makeinfo version 3.12s -from xemacs-faq.texi. +This is Info file ../info/xemacs-faq.info, produced by Makeinfo version +1.68 from the input file xemacs-faq.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -17,7 +17,7 @@ section is devoted to Customization and screen settings. * Menu: -Customization---Emacs Lisp and `.emacs': +Customization--Emacs Lisp and `.emacs': * Q3.0.1:: What version of Emacs am I running? * Q3.0.2:: How do I evaluate Elisp expressions? * Q3.0.3:: `(setq tab-width 6)' behaves oddly. @@ -61,9 +61,9 @@ The Modeline: * Q3.5.1:: How can I bind complex functions (or macros) to keys? * Q3.5.2:: How can I stop down-arrow from adding empty lines to the bottom of my buffers? * Q3.5.3:: How do I bind C-. and C-; to scroll one line up and down? -* Q3.5.4:: Globally binding Delete? +* Q3.5.4:: Globally binding `Delete'? * Q3.5.5:: Scrolling one line at a time. -* Q3.5.6:: How to map Help key alone on Sun type4 keyboard? +* Q3.5.6:: How to map `Help' key alone on Sun type4 keyboard? * Q3.5.7:: How can you type in special characters in XEmacs? * Q3.5.8:: Why does `(global-set-key [delete-forward] 'delete-char)' complain? * Q3.5.9:: How do I make the Delete key delete forward? @@ -83,7 +83,7 @@ The Mouse and Highlighting: * Q3.7.5:: Why does cut-and-paste not work between XEmacs and a cmdtool? * Q3.7.6:: How I can set XEmacs up so that it pastes where the text cursor is? * Q3.7.7:: How do I select a rectangular region? -* Q3.7.8:: Why does M-w take so long? +* Q3.7.8:: Why does `M-w' take so long? The Menubar and Toolbar: * Q3.8.1:: How do I get rid of the menu (or menubar)? @@ -102,7 +102,7 @@ Text Selections: * Q3.10.1:: How can I turn off or change highlighted selections? * Q3.10.2:: How do I get that typing on an active region removes it? * Q3.10.3:: Can I turn off the highlight during isearch? -* Q3.10.4:: How do I turn off highlighting after C-x C-p (mark-page)? +* Q3.10.4:: How do I turn off highlighting after `C-x C-p' (mark-page)? * Q3.10.5:: The region disappears when I hit the end of buffer while scrolling.  @@ -228,7 +228,7 @@ Q3.0.7: Font selections in don't get saved after `Save Options'. You have to go to Options->Frame Appearance and unselect `Frame-Local Font Menu'. If this option is selected, font changes - are only applied to the _current_ frame and do _not_ get saved + are only applied to the *current* frame and do *not* get saved when you save options. For XEmacs 19.15 and later: @@ -763,7 +763,7 @@ bound to keys. This is fine if you only need a few functions within the lambda body. If you're doing more it's cleaner to define a separate function as in -question 3.5.3 (*note Q3.5.3::). +question 3.5.3 (*note Q3.5.3::.).  File: xemacs-faq.info, Node: Q3.5.2, Next: Q3.5.3, Prev: Q3.5.1, Up: Customization @@ -799,7 +799,7 @@ and Wayne Newberry ) to `.emacs': The key point is that you can only bind simple functions to keys; you can not bind a key to a function that you're also passing arguments to. -(*note Q3.5.1:: for a better answer). +(*note Q3.5.1::. for a better answer).  File: xemacs-faq.info, Node: Q3.5.4, Next: Q3.5.5, Prev: Q3.5.3, Up: Customization @@ -876,8 +876,8 @@ Q3.5.6: How to map `Help' key alone on Sun type4 keyboard? (global-set-key [(shift help)] 'help-command);; Help But it doesn't work alone. This is in the file `PROBLEMS' which -should have come with your XEmacs installation: _Emacs ignores the -`help' key when running OLWM_. +should have come with your XEmacs installation: *Emacs ignores the +`help' key when running OLWM*. OLWM grabs the `help' key, and retransmits it to the appropriate client using `XSendEvent'. Allowing Emacs to react to synthetic events diff --git a/info/xemacs-faq.info-4 b/info/xemacs-faq.info-4 index 01b60d1..ee917b4 100644 --- a/info/xemacs-faq.info-4 +++ b/info/xemacs-faq.info-4 @@ -1,5 +1,5 @@ -This is ../info/xemacs-faq.info, produced by makeinfo version 3.12s -from xemacs-faq.texi. +This is Info file ../info/xemacs-faq.info, produced by Makeinfo version +1.68 from the input file xemacs-faq.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -386,7 +386,7 @@ Q4.0.12: Customization of VM not covered in the manual, or here. directory of the lisp library. `vm-vars.el' contains, initializes and carefully describes, with - examples of usage, the plethora of user options that _fully_ + examples of usage, the plethora of user options that *fully* control VM's behavior. Enter vm-vars, `forward-search' for toolbar, find the variables @@ -441,7 +441,7 @@ Q4.2.1: GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus, Quassia Gnus, argh! -------------------------------------------------------------------------------- The Gnus numbering issues are not meant for mere mortals to know -them. If you feel you _must_ enter the muddy waters of Gnus, visit the +them. If you feel you *must* enter the muddy waters of Gnus, visit the excellent FAQ, maintained by Justin Sheehy, at: `http://www.ccs.neu.edu/software/contrib/gnus/' @@ -956,15 +956,8 @@ File: xemacs-faq.info, Node: Q4.7.6, Prev: Q4.7.5, Up: Subsystems Q4.7.5: Is there a MatLab mode? ------------------------------- - Is there any way I can get syntax highlighting for MatLab .m files? -Can I "teach" emacs what words are MatLab commands, comments, etc. ? - - Ulrich Elsner writes: - One way to do this (and much more) is by using the matlab mode. - (If someone knows where this can be found, please contact the - XEmacs FAQ maintainer . - - Instructions on how to install this mode are included in this file. + Yes, a matlab mode and other items are available at the +MathWorks' emacs_add_ons ftp directory (ftp://ftp.mathworks.com/pub/contrib/emacs_add_ons).  File: xemacs-faq.info, Node: Miscellaneous, Next: MS Windows, Prev: Subsystems, Up: Top @@ -1023,7 +1016,7 @@ Miscellaneous: * Q5.3.1:: How do you make XEmacs indent CL if-clauses correctly? * Q5.3.2:: Fontifying hangs when editing a postscript file. * Q5.3.3:: How can I print WYSIWYG a font-locked buffer? -* Q5.3.4:: Getting M-x lpr to work with postscript printer. +* Q5.3.4:: Getting `M-x lpr' to work with postscript printer. * Q5.3.5:: How do I specify the paths that XEmacs uses for finding files? * Q5.3.6:: [This question intentionally left blank] * Q5.3.7:: Can I have the end of the buffer delimited in some way? @@ -1119,7 +1112,7 @@ standard with XEmacs. Put this into your `.emacs': You can customize filling and adaptive filling with Customize. Select from the `Options' menu -`Customize->Emacs->->Editing->Fill->Fill...' or type `M-x customize +`Customize->Emacs->->Editing->Fill->Fill...' or type `M-x customize fill '. Note that well-behaving text-lookalike modes will run diff --git a/info/xemacs-faq.info-5 b/info/xemacs-faq.info-5 index a87a738..5bfab0e 100644 --- a/info/xemacs-faq.info-5 +++ b/info/xemacs-faq.info-5 @@ -1,5 +1,5 @@ -This is ../info/xemacs-faq.info, produced by makeinfo version 3.12s -from xemacs-faq.texi. +This is Info file ../info/xemacs-faq.info, produced by Makeinfo version +1.68 from the input file xemacs-faq.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -29,7 +29,7 @@ Q5.0.19: Is there something better than LaTeX mode? The standard TeX modes leave much to be desired, and are somewhat leniently maintained. Serious TeX users use AUC TeX (*note - Q4.7.1::). + Q4.7.1::.).  File: xemacs-faq.info, Node: Q5.0.20, Next: Q5.1.1, Prev: Q5.0.19, Up: Miscellaneous @@ -331,7 +331,7 @@ performance: using the more readable `incf' and `push' forms in your compiled code. - _Interpreted_ code, on the other hand, must expand these macros + *Interpreted* code, on the other hand, must expand these macros every time they are executed. For this reason it is strongly recommended that code making heavy use of macros be compiled. (The features labelled "Special Form" instead of "Function" in this @@ -769,10 +769,10 @@ Q5.3.11: How do I add new Info directories? 1. Emacs Info scans `Info-directory-list' from right-to-left while XEmacs Info reads it from left-to-right, so append to - the _correct_ end of the list. + the *correct* end of the list. 2. Use `Info-default-directory-list' to initialize - `Info-directory-list' _if_ it is available at startup, but not + `Info-directory-list' *if* it is available at startup, but not all Emacsen define it. 3. Emacs Info looks for a standard `dir' file in each of the @@ -950,7 +950,6 @@ ncurses. MS gui requires no additional libraries. * has process support in X & tty. - The disadvantage is that it requires several Unix utilities and the whole Cygwin environment, whereas the native port requires only a suitable MS Windows compiler. Also, it follows the Unix filesystem and @@ -1031,7 +1030,6 @@ Some problems to watch out for: so you will need to manually mount a directory of this form under a unix style directory for a build to work on the directory. -  File: xemacs-faq.info, Node: Q6.1.6, Next: Q6.2.1, Prev: Q6.1.5, Up: MS Windows @@ -1168,7 +1166,6 @@ Could you briefly explain the differences between them? information can be found at `http://www.cs.washington.edu/homes/voelker/ntemacs.html'. - * XEmacs - Beginning with XEmacs 19.12, XEmacs' architecture has been @@ -1192,8 +1189,6 @@ Could you briefly explain the differences between them? unexec, Windows-specific glyphs and toolbars code, and more), Jeff Sparkes (contributed scrollbars support) and many others. - -  File: xemacs-faq.info, Node: Q6.3.3, Prev: Q6.3.2, Up: MS Windows diff --git a/info/xemacs.info b/info/xemacs.info index 17d169c..30b2eb9 100644 --- a/info/xemacs.info +++ b/info/xemacs.info @@ -1,5 +1,5 @@ -This is ../info/xemacs.info, produced by makeinfo version 3.12s from -xemacs/xemacs.texi. +This is Info file ../info/xemacs.info, produced by Makeinfo version +1.68 from the input file xemacs/xemacs.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -31,368 +31,368 @@ translation approved by the author instead of in the original English.  Indirect: -xemacs.info-1: 1352 -xemacs.info-2: 47940 -xemacs.info-3: 95897 -xemacs.info-4: 144001 -xemacs.info-5: 192200 -xemacs.info-6: 241565 -xemacs.info-7: 290381 -xemacs.info-8: 339924 -xemacs.info-9: 385203 -xemacs.info-10: 433027 -xemacs.info-11: 482197 -xemacs.info-12: 531346 -xemacs.info-13: 580170 -xemacs.info-14: 628311 -xemacs.info-15: 677065 -xemacs.info-16: 726590 -xemacs.info-17: 775151 -xemacs.info-18: 819069 -xemacs.info-19: 860232 -xemacs.info-20: 908228 -xemacs.info-21: 948948 +xemacs.info-1: 1376 +xemacs.info-2: 47962 +xemacs.info-3: 95922 +xemacs.info-4: 144039 +xemacs.info-5: 192257 +xemacs.info-6: 241624 +xemacs.info-7: 290451 +xemacs.info-8: 340004 +xemacs.info-9: 385299 +xemacs.info-10: 433131 +xemacs.info-11: 482312 +xemacs.info-12: 531469 +xemacs.info-13: 580295 +xemacs.info-14: 628442 +xemacs.info-15: 677205 +xemacs.info-16: 726733 +xemacs.info-17: 775300 +xemacs.info-18: 819223 +xemacs.info-19: 860399 +xemacs.info-20: 908395 +xemacs.info-21: 949115  Tag Table: (Indirect) -Node: Top1352 -Node: License22511 -Node: Distrib35793 -Node: Intro37457 -Node: Frame40328 -Node: Point43596 -Node: Echo Area45563 -Node: Mode Line47940 -Node: XEmacs under X52371 -Node: Keystrokes55548 -Node: Intro to Keystrokes56392 -Node: Representing Keystrokes58495 -Node: Key Sequences59852 -Node: String Key Sequences63192 -Node: Meta Key63575 -Node: Super and Hyper Keys65048 -Node: Character Representation71272 -Node: Commands72292 -Node: Pull-down Menus75141 -Node: File Menu78490 -Node: Edit Menu82312 -Node: Apps Menu84695 -Node: Options Menu85185 -Node: Buffers Menu89165 -Node: Tools Menu89472 -Node: Help Menu89963 -Node: Menu Customization90364 -Node: Entering Emacs94594 -Node: Exiting95897 -Node: Command Switches98988 -Node: Startup Paths108175 -Node: Basic115755 -Node: Blank Lines125233 -Node: Continuation Lines126659 -Node: Position Info128091 -Node: Arguments131224 -Node: Undo134361 -Node: Minibuffer137308 -Node: Minibuffer File139792 -Node: Minibuffer Edit141428 -Node: Completion144001 -Node: Repetition150876 -Node: M-x153668 -Node: Help158762 -Node: Mark168681 -Node: Setting Mark170535 -Node: Using Region173657 -Node: Marking Objects174394 -Node: Mark Ring176232 -Node: Mouse Selection177948 -Node: Additional Mouse Operations179955 -Node: Killing184159 -Node: Yanking189795 -Node: Kill Ring190598 -Node: Appending Kills192200 -Node: Earlier Kills194237 -Node: Using X Selections196850 -Node: X Clipboard Selection198100 -Node: X Selection Commands200277 -Node: X Cut Buffers201363 -Node: Active Regions202722 -Node: Accumulating Text207302 -Node: Rectangles210375 -Node: Registers213894 -Node: RegPos214928 -Node: RegText215831 -Node: RegRect216915 -Node: Display217655 -Node: Scrolling219150 -Node: Horizontal Scrolling223293 -Node: Selective Display224488 -Node: Display Vars225707 -Node: Search228385 -Node: Incremental Search229578 -Node: Non-Incremental Search238505 -Node: Word Search239947 -Node: Regexp Search241565 -Node: Regexps243101 -Node: Search Case253402 -Node: Replace254183 -Node: Unconditional Replace255131 -Node: Regexp Replace256266 -Node: Replacement and Case257201 -Node: Query Replace258181 -Node: Other Repeating Search261408 -Node: Fixit262663 -Node: Kill Errors263243 -Node: Transpose264576 -Node: Fixing Case266980 -Node: Spelling267626 -Node: Files269087 -Node: File Names270397 -Node: Visiting274734 -Node: Saving281420 -Node: Backup286343 -Node: Backup Names287739 -Node: Backup Deletion289222 -Node: Backup Copying290381 -Node: Interlocking292087 -Node: Reverting296215 -Node: Auto Save298127 -Node: Auto Save Files299094 -Node: Auto Save Control300935 -Node: Recover302773 -Node: Version Control303928 -Node: Concepts of VC305966 -Node: Editing with VC307576 -Node: Variables for Check-in/out312832 -Node: Log Entries314731 -Node: Change Logs and VC315911 -Node: Old Versions319178 -Node: VC Status321181 -Node: Renaming and VC322895 -Node: Snapshots323574 -Node: Making Snapshots324075 -Node: Snapshot Caveats325368 -Node: Version Headers327177 -Node: ListDir329876 -Node: Comparing Files331925 -Node: Dired333458 -Node: Dired Enter334129 -Node: Dired Edit334954 -Node: Dired Deletion336701 -Node: Dired Immed339924 -Node: Misc File Ops341200 -Node: Buffers343688 -Node: Select Buffer345846 -Node: List Buffers347641 -Node: Misc Buffer349386 -Node: Kill Buffer351029 -Node: Several Buffers352159 -Node: Windows356025 -Node: Basic Window356736 -Node: Split Window358455 -Node: Other Window360588 -Node: Pop Up Window363017 -Node: Change Window364522 -Node: Mule367430 -Node: Mule Intro368693 -Node: Language Environments369709 -Node: Input Methods371816 -Node: Select Input Method375536 -Node: Coding Systems377691 -Node: Recognize Coding381877 -Node: Specify Coding385203 -Node: Major Modes390134 -Node: Choosing Modes392353 -Node: Indentation394743 -Node: Indentation Commands396838 -Node: Tab Stops399567 -Node: Just Spaces401416 -Node: Text402231 -Node: Text Mode404214 -Node: Nroff Mode406293 -Node: TeX Mode407936 -Node: TeX Editing410188 -Node: TeX Print413622 -Node: Outline Mode416841 -Node: Outline Format418322 -Node: Outline Motion421122 -Node: Outline Visibility422675 -Node: Words425596 -Node: Sentences428543 -Node: Paragraphs430739 -Node: Pages433027 -Node: Filling435627 -Node: Auto Fill436198 -Node: Fill Commands438345 -Node: Fill Prefix440510 -Node: Case442698 -Node: Programs444726 -Node: Program Modes447275 -Node: Lists449507 -Node: Defuns455347 -Node: Grinding458000 -Node: Basic Indent458628 -Node: Multi-line Indent460649 -Node: Lisp Indent462265 -Node: C Indent465715 -Node: Matching470955 -Node: Comments472477 -Node: Balanced Editing478929 -Node: Lisp Completion479943 -Node: Documentation480958 -Node: Change Log482197 -Node: Tags484775 -Node: Tag Syntax486424 -Node: Create Tags Table490368 -Node: Etags Regexps494428 -Node: Select Tags Table499086 -Node: Find Tag502824 -Node: Tags Search505788 -Node: List Tags509244 -Node: Fortran510273 -Node: Fortran Motion511349 -Node: Fortran Indent512169 -Node: ForIndent Commands512854 -Node: ForIndent Num513999 -Node: ForIndent Conv515273 -Node: ForIndent Vars516049 -Node: Fortran Comments517217 -Node: Fortran Columns520815 -Node: Fortran Abbrev522238 -Node: Asm Mode523147 -Node: Running523699 -Node: Compilation524669 -Node: Lisp Modes529519 -Node: Lisp Libraries530792 -Node: Loading531346 -Node: Compiling Libraries535806 -Node: Mocklisp538697 -Node: Lisp Eval539374 -Node: Lisp Debug543014 -Node: Lisp Interaction548439 -Node: External Lisp549794 -Node: Packages551868 -Node: Package Terminology552609 -Node: Using Packages553967 -Node: Building Packages562756 -Node: Abbrevs565278 -Node: Defining Abbrevs567478 -Node: Expanding Abbrevs569925 -Node: Editing Abbrevs572627 -Node: Saving Abbrevs574495 -Node: Dynamic Abbrevs576435 -Node: Picture577737 -Node: Basic Picture580170 -Node: Insert in Picture582455 -Node: Tabs in Picture583877 -Node: Rectangles in Picture585398 -Node: Sending Mail587306 -Node: Mail Format589017 -Node: Mail Headers590367 -Node: Mail Mode596777 -Node: Reading Mail600390 -Node: Calendar/Diary601965 -Node: Calendar Motion603637 -Node: Calendar Unit Motion604520 -Node: Move to Beginning or End606843 -Node: Specified Dates607976 -Node: Scroll Calendar608864 -Node: Mark and Region610655 -Node: General Calendar612561 -Node: LaTeX Calendar614169 -Node: Holidays616183 -Node: Sunrise/Sunset619285 -Node: Lunar Phases622328 -Node: Other Calendars623713 -Node: Calendar Systems625200 -Node: To Other Calendar628311 -Node: From Other Calendar630302 -Node: Mayan Calendar632607 -Node: Diary635802 -Node: Diary Commands637551 -Node: Format of Diary File640857 -Node: Date Formats643727 -Node: Adding to Diary646301 -Node: Special Diary Entries647932 -Node: Calendar Customization653271 -Node: Calendar Customizing654133 -Node: Holiday Customizing657352 -Node: Date Display Format663820 -Node: Time Display Format664778 -Node: Daylight Savings665916 -Node: Diary Customizing669104 -Node: Hebrew/Islamic Entries673725 -Node: Fancy Diary Display677065 -Node: Included Diary Files678962 -Node: Sexp Diary Entries679943 -Node: Appt Customizing685033 -Node: Sorting686079 -Node: Shell690885 -Node: Single Shell692178 -Node: Interactive Shell693777 -Node: Shell Mode697542 -Node: Terminal emulator700033 -Node: Term Mode702342 -Node: Paging in Term703256 -Node: Narrowing704054 -Node: Hardcopy706004 -Node: Recursive Edit706976 -Node: Dissociated Press709963 -Node: CONX712526 -Node: Amusements713550 -Node: Emulation714030 -Node: Customization715874 -Node: Minor Modes717598 -Node: Variables719230 -Node: Examining721186 -Node: Easy Customization722647 -Node: Customization Groups723661 -Node: Changing an Option726590 -Node: Face Customization732846 -Node: Specific Customization734610 -Node: Edit Options737217 -Node: Locals738801 -Node: File Variables741980 -Node: Keyboard Macros746506 -Node: Basic Kbd Macro748677 -Node: Save Kbd Macro750609 -Node: Kbd Macro Query752278 -Node: Key Bindings754220 -Node: Keymaps755094 -Node: Rebinding758944 -Node: Interactive Rebinding759640 -Node: Programmatic Rebinding761832 -Node: Key Bindings Using Strings764639 -Node: Disabling766245 -Node: Syntax768017 -Node: Syntax Entry768898 -Node: Syntax Change772982 -Node: Init File775151 -Node: Init Syntax776656 -Node: Init Examples779008 -Node: Terminal Init783198 -Node: Audible Bell784908 -Node: Faces788339 -Node: X Resources793176 -Node: Geometry Resources794797 -Node: Iconic Resources797245 -Node: Resource List797717 -Node: Face Resources804224 -Node: Widgets807901 -Node: Menubar Resources808840 -Node: Quitting809773 -Node: Lossage812751 -Node: Stuck Recursive813395 -Node: Screen Garbled814101 -Node: Text Garbled815235 -Node: Unasked-for Search815874 -Node: Emergency Escape816659 -Node: Total Frustration818438 -Node: Bugs819069 -Node: Glossary828603 -Node: Manifesto860232 -Node: Key Index883708 -Node: Command Index908228 -Node: Variable Index948948 -Node: Concept Index964899 +Node: Top1376 +Node: License22528 +Node: Distrib35810 +Node: Intro37474 +Node: Frame40345 +Node: Point43617 +Node: Echo Area45584 +Node: Mode Line47962 +Node: XEmacs under X52393 +Node: Keystrokes55571 +Node: Intro to Keystrokes56415 +Node: Representing Keystrokes58518 +Node: Key Sequences59875 +Node: String Key Sequences63215 +Node: Meta Key63598 +Node: Super and Hyper Keys65071 +Node: Character Representation71295 +Node: Commands72315 +Node: Pull-down Menus75164 +Node: File Menu78513 +Node: Edit Menu82335 +Node: Apps Menu84720 +Node: Options Menu85210 +Node: Buffers Menu89190 +Node: Tools Menu89497 +Node: Help Menu89988 +Node: Menu Customization90389 +Node: Entering Emacs94619 +Node: Exiting95922 +Node: Command Switches99014 +Node: Startup Paths108203 +Node: Basic115784 +Node: Blank Lines125267 +Node: Continuation Lines126693 +Node: Position Info128127 +Node: Arguments131261 +Node: Undo134398 +Node: Minibuffer137345 +Node: Minibuffer File139829 +Node: Minibuffer Edit141466 +Node: Completion144039 +Node: Repetition150914 +Node: M-x153706 +Node: Help158800 +Node: Mark168722 +Node: Setting Mark170576 +Node: Using Region173698 +Node: Marking Objects174443 +Node: Mark Ring176284 +Node: Mouse Selection178000 +Node: Additional Mouse Operations180008 +Node: Killing184212 +Node: Yanking189852 +Node: Kill Ring190655 +Node: Appending Kills192257 +Node: Earlier Kills194294 +Node: Using X Selections196907 +Node: X Clipboard Selection198157 +Node: X Selection Commands200334 +Node: X Cut Buffers201420 +Node: Active Regions202779 +Node: Accumulating Text207359 +Node: Rectangles210432 +Node: Registers213951 +Node: RegPos214986 +Node: RegText215889 +Node: RegRect216973 +Node: Display217713 +Node: Scrolling219208 +Node: Horizontal Scrolling223351 +Node: Selective Display224547 +Node: Display Vars225766 +Node: Search228444 +Node: Incremental Search229637 +Node: Non-Incremental Search238564 +Node: Word Search240006 +Node: Regexp Search241624 +Node: Regexps243160 +Node: Search Case253461 +Node: Replace254242 +Node: Unconditional Replace255190 +Node: Regexp Replace256326 +Node: Replacement and Case257261 +Node: Query Replace258241 +Node: Other Repeating Search261474 +Node: Fixit262729 +Node: Kill Errors263309 +Node: Transpose264642 +Node: Fixing Case267047 +Node: Spelling267693 +Node: Files269154 +Node: File Names270462 +Node: Visiting274800 +Node: Saving281490 +Node: Backup286413 +Node: Backup Names287809 +Node: Backup Deletion289292 +Node: Backup Copying290451 +Node: Interlocking292158 +Node: Reverting296286 +Node: Auto Save298199 +Node: Auto Save Files299166 +Node: Auto Save Control301007 +Node: Recover302846 +Node: Version Control304001 +Node: Concepts of VC306039 +Node: Editing with VC307649 +Node: Variables for Check-in/out312905 +Node: Log Entries314804 +Node: Change Logs and VC315984 +Node: Old Versions319252 +Node: VC Status321256 +Node: Renaming and VC322970 +Node: Snapshots323651 +Node: Making Snapshots324152 +Node: Snapshot Caveats325446 +Node: Version Headers327255 +Node: ListDir329954 +Node: Comparing Files332003 +Node: Dired333536 +Node: Dired Enter334207 +Node: Dired Edit335032 +Node: Dired Deletion336779 +Node: Dired Immed340004 +Node: Misc File Ops341280 +Node: Buffers343769 +Node: Select Buffer345929 +Node: List Buffers347726 +Node: Misc Buffer349472 +Node: Kill Buffer351116 +Node: Several Buffers352246 +Node: Windows356112 +Node: Basic Window356823 +Node: Split Window358542 +Node: Other Window360675 +Node: Pop Up Window363105 +Node: Change Window364612 +Node: Mule367520 +Node: Mule Intro368783 +Node: Language Environments369799 +Node: Input Methods371907 +Node: Select Input Method375627 +Node: Coding Systems377782 +Node: Recognize Coding381970 +Node: Specify Coding385299 +Node: Major Modes390230 +Node: Choosing Modes392452 +Node: Indentation394842 +Node: Indentation Commands396937 +Node: Tab Stops399666 +Node: Just Spaces401515 +Node: Text402330 +Node: Text Mode404313 +Node: Nroff Mode406394 +Node: TeX Mode408038 +Node: TeX Editing410290 +Node: TeX Print413725 +Node: Outline Mode416945 +Node: Outline Format418426 +Node: Outline Motion421226 +Node: Outline Visibility422779 +Node: Words425700 +Node: Sentences428647 +Node: Paragraphs430843 +Node: Pages433131 +Node: Filling435731 +Node: Auto Fill436302 +Node: Fill Commands438450 +Node: Fill Prefix440616 +Node: Case442804 +Node: Programs444832 +Node: Program Modes447390 +Node: Lists449622 +Node: Defuns455462 +Node: Grinding458115 +Node: Basic Indent458743 +Node: Multi-line Indent460764 +Node: Lisp Indent462380 +Node: C Indent465830 +Node: Matching471070 +Node: Comments472592 +Node: Balanced Editing479044 +Node: Lisp Completion480058 +Node: Documentation481073 +Node: Change Log482312 +Node: Tags484890 +Node: Tag Syntax486539 +Node: Create Tags Table490484 +Node: Etags Regexps494545 +Node: Select Tags Table499203 +Node: Find Tag502941 +Node: Tags Search505905 +Node: List Tags509362 +Node: Fortran510391 +Node: Fortran Motion511467 +Node: Fortran Indent512287 +Node: ForIndent Commands512972 +Node: ForIndent Num514117 +Node: ForIndent Conv515391 +Node: ForIndent Vars516167 +Node: Fortran Comments517335 +Node: Fortran Columns520934 +Node: Fortran Abbrev522357 +Node: Asm Mode523267 +Node: Running523819 +Node: Compilation524789 +Node: Lisp Modes529640 +Node: Lisp Libraries530914 +Node: Loading531469 +Node: Compiling Libraries535929 +Node: Mocklisp538820 +Node: Lisp Eval539497 +Node: Lisp Debug543137 +Node: Lisp Interaction548563 +Node: External Lisp549918 +Node: Packages551993 +Node: Package Terminology552734 +Node: Using Packages554092 +Node: Building Packages562881 +Node: Abbrevs565403 +Node: Defining Abbrevs567603 +Node: Expanding Abbrevs570050 +Node: Editing Abbrevs572752 +Node: Saving Abbrevs574620 +Node: Dynamic Abbrevs576560 +Node: Picture577862 +Node: Basic Picture580295 +Node: Insert in Picture582582 +Node: Tabs in Picture584004 +Node: Rectangles in Picture585525 +Node: Sending Mail587434 +Node: Mail Format589145 +Node: Mail Headers590495 +Node: Mail Mode596905 +Node: Reading Mail600518 +Node: Calendar/Diary602093 +Node: Calendar Motion603765 +Node: Calendar Unit Motion604648 +Node: Move to Beginning or End606971 +Node: Specified Dates608104 +Node: Scroll Calendar608993 +Node: Mark and Region610784 +Node: General Calendar612691 +Node: LaTeX Calendar614299 +Node: Holidays616313 +Node: Sunrise/Sunset619416 +Node: Lunar Phases622459 +Node: Other Calendars623844 +Node: Calendar Systems625331 +Node: To Other Calendar628442 +Node: From Other Calendar630433 +Node: Mayan Calendar632739 +Node: Diary635935 +Node: Diary Commands637685 +Node: Format of Diary File640994 +Node: Date Formats643864 +Node: Adding to Diary646438 +Node: Special Diary Entries648069 +Node: Calendar Customization653409 +Node: Calendar Customizing654271 +Node: Holiday Customizing657491 +Node: Date Display Format663959 +Node: Time Display Format664917 +Node: Daylight Savings666055 +Node: Diary Customizing669243 +Node: Hebrew/Islamic Entries673865 +Node: Fancy Diary Display677205 +Node: Included Diary Files679102 +Node: Sexp Diary Entries680083 +Node: Appt Customizing685173 +Node: Sorting686219 +Node: Shell691025 +Node: Single Shell692318 +Node: Interactive Shell693917 +Node: Shell Mode697682 +Node: Terminal emulator700173 +Node: Term Mode702483 +Node: Paging in Term703397 +Node: Narrowing704195 +Node: Hardcopy706145 +Node: Recursive Edit707117 +Node: Dissociated Press710104 +Node: CONX712667 +Node: Amusements713691 +Node: Emulation714171 +Node: Customization716015 +Node: Minor Modes717739 +Node: Variables719371 +Node: Examining721329 +Node: Easy Customization722790 +Node: Customization Groups723804 +Node: Changing an Option726733 +Node: Face Customization732989 +Node: Specific Customization734754 +Node: Edit Options737361 +Node: Locals738945 +Node: File Variables742124 +Node: Keyboard Macros746651 +Node: Basic Kbd Macro748822 +Node: Save Kbd Macro750754 +Node: Kbd Macro Query752426 +Node: Key Bindings754368 +Node: Keymaps755242 +Node: Rebinding759092 +Node: Interactive Rebinding759788 +Node: Programmatic Rebinding761980 +Node: Key Bindings Using Strings764787 +Node: Disabling766393 +Node: Syntax768165 +Node: Syntax Entry769046 +Node: Syntax Change773130 +Node: Init File775300 +Node: Init Syntax776808 +Node: Init Examples779161 +Node: Terminal Init783352 +Node: Audible Bell785062 +Node: Faces788493 +Node: X Resources793330 +Node: Geometry Resources794951 +Node: Iconic Resources797399 +Node: Resource List797871 +Node: Face Resources804378 +Node: Widgets808055 +Node: Menubar Resources808994 +Node: Quitting809927 +Node: Lossage812906 +Node: Stuck Recursive813549 +Node: Screen Garbled814255 +Node: Text Garbled815389 +Node: Unasked-for Search816028 +Node: Emergency Escape816813 +Node: Total Frustration818592 +Node: Bugs819223 +Node: Glossary828758 +Node: Manifesto860399 +Node: Key Index883875 +Node: Command Index908395 +Node: Variable Index949115 +Node: Concept Index965066  End Tag Table diff --git a/info/xemacs.info-1 b/info/xemacs.info-1 index 7b8b001..e202e16 100644 --- a/info/xemacs.info-1 +++ b/info/xemacs.info-1 @@ -1,5 +1,5 @@ -This is ../info/xemacs.info, produced by makeinfo version 3.12s from -xemacs/xemacs.texi. +This is Info file ../info/xemacs.info, produced by Makeinfo version +1.68 from the input file xemacs/xemacs.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -79,7 +79,7 @@ Fundamental Editing Commands * Help:: Commands for asking XEmacs about its commands. Important Text-Changing Commands -* Mark:: The mark: how to delimit a ``region'' of text. +* Mark:: The mark: how to delimit a "region" of text. * Mouse Selection:: Selecting text with the mouse. * Additional Mouse Operations:: @@ -139,7 +139,7 @@ Recovery from Problems. Here are some other nodes which are really inferiors of the ones already listed, mentioned here so you can get to them in one step: - --- The Detailed Node Listing --- + -- The Detailed Node Listing -- The Organization of the Frame @@ -257,7 +257,7 @@ File Handling * Version Control:: Version control systems (RCS and SCCS). * ListDir:: Listing the contents of a file directory. * Comparing Files:: Finding where two files differ. -* Dired:: ``Editing'' a directory to delete, rename, etc. +* Dired:: "Editing" a directory to delete, rename, etc. the files in it. * Misc File Ops:: Other things you can do on files. @@ -534,7 +534,7 @@ Dealing with XEmacs Trouble * Screen Garbled:: Garbage on the screen. * Text Garbled:: Garbage in the text. * Unasked-for Search:: Spontaneous entry to incremental search. -* Emergency Escape:: Emergency escape--- +* Emergency Escape:: Emergency escape-- What to do if XEmacs stops responding. * Total Frustration:: When you are at your wits' end. @@ -880,9 +880,9 @@ commands relevant to a topic. *Note Help::. "Customizable" means you can change the definitions of XEmacs commands. For example, if you use a programming language in which comments start with `<**' and end with `**>', you can tell the XEmacs -comment manipulation commands to use those strings (*note Comments::). -Another sort of customization is rearrangement of the command set. For -example, you can set up the four basic cursor motion commands (up, +comment manipulation commands to use those strings (*note Comments::.). +Another sort of customization is rearrangement of the command set. +For example, you can set up the four basic cursor motion commands (up, down, left and right) on keys in a diamond pattern on the keyboard if you prefer. *Note Customization::. @@ -927,24 +927,24 @@ Window look at two buffers a the same time. * Below each text window's last line is a "mode line" (*note Mode - Line::), which describes what is going on in that window. The + Line::.), which describes what is going on in that window. The mode line is in inverse video if the terminal supports that. If there are several XEmacs windows in one frame, each window has its own mode line. * At the bottom of each XEmacs frame is the "echo area" or - "minibuffer window"(*note Echo Area::). It is used by XEmacs to + "minibuffer window"(*note Echo Area::.). It is used by XEmacs to exchange information with the user. There is only one echo area per XEmacs frame. * If you are running XEmacs under the X Window System, a menu bar at the top of the frame makes shortcuts to several of the commands - available (*note Pull-down Menus::). + available (*note Pull-down Menus::.). You can subdivide the XEmacs frame into multiple text windows, and -use each window for a different file (*note Windows::). Multiple XEmacs -windows are tiled vertically on the XEmacs frame. The upper XEmacs -window is separated from the lower window by its mode line. +use each window for a different file (*note Windows::.). Multiple +XEmacs windows are tiled vertically on the XEmacs frame. The upper +XEmacs window is separated from the lower window by its mode line. When there are multiple, tiled XEmacs windows on a single XEmacs frame, the XEmacs window receiving input from the keyboard has the @@ -1028,7 +1028,7 @@ The Echo Area as you type it. This behavior is designed to give confident users fast response, while giving hesitant users maximum feedback. You can change this behavior by setting a variable (*note Display - Vars::). + Vars::.). * If you issue a command that cannot be executed, XEmacs may print an "error message" in the echo area. Error messages are diff --git a/info/xemacs.info-10 b/info/xemacs.info-10 index ab72b52..9d7ffc3 100644 --- a/info/xemacs.info-10 +++ b/info/xemacs.info-10 @@ -1,5 +1,5 @@ -This is ../info/xemacs.info, produced by makeinfo version 3.12s from -xemacs/xemacs.texi. +This is Info file ../info/xemacs.info, produced by Makeinfo version +1.68 from the input file xemacs/xemacs.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -145,7 +145,7 @@ comment gets too long, the text of the comment is split into two comment lines. Optionally, new comment delimiters are inserted at the end of the first line and the beginning of the second, so that each line is a separate comment. The variable `comment-multi-line' controls the -choice (*note Comments::). +choice (*note Comments::.). Auto Fill mode does not refill entire paragraphs. It can break lines but cannot merge lines. Editing in the middle of a paragraph can @@ -188,7 +188,7 @@ undone with `C-_'. *Note Undo::. the region into paragraphs and fills each of them. `Meta-q' and `Meta-g' use the same criteria as `Meta-h' for finding -paragraph boundaries (*note Paragraphs::). For more control, you can +paragraph boundaries (*note Paragraphs::.). For more control, you can use `M-x fill-region-as-paragraph', which refills everything between point and mark. This command recognizes only blank lines as paragraph separators. @@ -325,30 +325,31 @@ Editing Programs Emacs has many commands designed to understand the syntax of programming languages such as Lisp and C. These commands can: - * Move over or kill balanced expressions or "sexps" (*note Lists::). + * Move over or kill balanced expressions or "sexps" (*note Lists::.). * Move over or mark top-level balanced expressions ("defuns", in Lisp; functions, in C). - * Show how parentheses balance (*note Matching::). + * Show how parentheses balance (*note Matching::.). - * Insert, kill, or align comments (*note Comments::). + * Insert, kill, or align comments (*note Comments::.). * Follow the usual indentation conventions of the language (*note - Grinding::). + Grinding::.). The commands available for words, sentences, and paragraphs are useful in editing code even though their canonical application is for editing human language text. Most symbols contain words (*note -Words::); sentences can be found in strings and comments (*note -Sentences::). Paragraphs per se are not present in code, but the +Words::.); sentences can be found in strings and comments (*note +Sentences::.). Paragraphs per se are not present in code, but the paragraph commands are useful anyway, because Lisp mode and C mode -define paragraphs to begin and end at blank lines (*note Paragraphs::). -Judicious use of blank lines to make the program clearer also provides -interesting chunks of text for the paragraph commands to work on. +define paragraphs to begin and end at blank lines (*note +Paragraphs::.). Judicious use of blank lines to make the program +clearer also provides interesting chunks of text for the paragraph +commands to work on. The selective display feature is useful for looking at the overall -structure of a function (*note Selective Display::). This feature +structure of a function (*note Selective Display::.). This feature causes only the lines that are indented less than a specified amount to appear on the screen. diff --git a/info/xemacs.info-11 b/info/xemacs.info-11 index 7ecfaef..1a93484 100644 --- a/info/xemacs.info-11 +++ b/info/xemacs.info-11 @@ -1,5 +1,5 @@ -This is ../info/xemacs.info, produced by makeinfo version 3.12s from -xemacs/xemacs.texi. +This is Info file ../info/xemacs.info, produced by Makeinfo version +1.68 from the input file xemacs/xemacs.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -215,7 +215,7 @@ Source File Tag Syntax generate a tag. You can also generate tags based on regexp matching (*note Etags -Regexps::) to handle other formats and languages. +Regexps::.) to handle other formats and languages.  File: xemacs.info, Node: Create Tags Table, Next: Etags Regexps, Prev: Tag Syntax, Up: Tags @@ -294,7 +294,7 @@ the file names that follow it. Specify `--language=auto' to tell `etags' to resume guessing the language from the file names and file contents. Specify `--language=none' to turn off language-specific processing entirely; then `etags' recognizes tags by regexp matching -alone (*note Etags Regexps::). +alone (*note Etags Regexps::.). `etags --help' prints the list of the languages `etags' knows, and the file name rules for guessing the language. It also prints a list of @@ -578,7 +578,7 @@ Searching and Replacing with Tags Tables The commands in this section visit and search all the files listed in the selected tags table, one by one. For these commands, the tags table serves only to specify a sequence of files to search. A related -command is `M-x grep' (*note Compilation::). +command is `M-x grep' (*note Compilation::.). `M-x tags-search REGEXP ' Search for REGEXP through the files in the selected tags table. @@ -876,7 +876,7 @@ standard Emacs comment commands and defines some new variables. comments start with `!' and can follow other text. Because only some Fortran compilers accept this syntax, Fortran mode will not insert such comments unless you have specified to do so in advance by setting the -variable `comment-start' to `"!"' (*note Variables::). +variable `comment-start' to `"!"' (*note Variables::.). `M-;' Align comment or insert new comment (`fortran-comment-indent'). @@ -985,7 +985,7 @@ Fortran Keyword Abbrevs Fortran mode provides many built-in abbrevs for common keywords and declarations. These are the same sort of abbrevs that you can define -yourself. To use them, you must turn on Abbrev mode. *note Abbrevs::. +yourself. To use them, you must turn on Abbrev mode. *note Abbrevs::.. The built-in abbrevs are unusual in one way: they all start with a semicolon. You cannot normally use semicolon in an abbrev, but Fortran @@ -1090,7 +1090,7 @@ line is used again. The first `M-x compile' provides `make -k' as the default. The default is taken from the variable `compile-command'; if the appropriate compilation command for a file is something other than `make -k', it can be useful to have the file specify a local value for -`compile-command' (*note File Variables::). +`compile-command' (*note File Variables::.). When you start a compilation, the buffer `*compilation*' is displayed in another window but not selected. Its mode line displays @@ -1176,7 +1176,7 @@ Lisp mode Inferior Lisp mode The mode for an interactive session with an inferior Lisp process. This mode combines the special features of Lisp mode and Shell mode - (*note Shell Mode::). + (*note Shell Mode::.). Scheme mode Like Lisp mode but for Scheme programs. @@ -1193,7 +1193,7 @@ Libraries of Lisp Code for Emacs Lisp code for Emacs editing commands is stored in files whose names conventionally end in `.el'. This ending tells Emacs to edit them in -Emacs-Lisp mode (*note Lisp Modes::). +Emacs-Lisp mode (*note Lisp Modes::.). * Menu: diff --git a/info/xemacs.info-12 b/info/xemacs.info-12 index 4630e51..f306cd4 100644 --- a/info/xemacs.info-12 +++ b/info/xemacs.info-12 @@ -1,5 +1,5 @@ -This is ../info/xemacs.info, produced by makeinfo version 3.12s from -xemacs/xemacs.texi. +This is Info file ../info/xemacs.info, produced by Makeinfo version +1.68 from the input file xemacs/xemacs.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -323,7 +323,7 @@ usual Emacs editing commands are available; you can switch windows to examine the buffer that was being edited at the time of the error, and you can switch buffers, visit files, and perform any other editing operations. However, the debugger is a recursive editing level (*note -Recursive Edit::); it is a good idea to return to the backtrace buffer +Recursive Edit::.); it is a good idea to return to the backtrace buffer and explictly exit the debugger when you don't want to use it any more. Exiting the debugger kills the backtrace buffer. @@ -442,7 +442,7 @@ will go into the buffer, advancing point, and any "terminal input" for Lisp comes from text in the buffer. To give input to Lisp, go to the end of the buffer and type the input, terminated by . The `*lisp*' buffer is in Inferior Lisp mode, which has all the special -characteristics of Lisp mode and Shell mode (*note Shell Mode::). +characteristics of Lisp mode and Shell mode (*note Shell Mode::.). Use Lisp mode to run the source files of programs in external Lisps. You can select this mode with `M-x lisp-mode'. It is used automatically diff --git a/info/xemacs.info-13 b/info/xemacs.info-13 index 870d61e..33e4f4c 100644 --- a/info/xemacs.info-13 +++ b/info/xemacs.info-13 @@ -1,5 +1,5 @@ -This is ../info/xemacs.info, produced by makeinfo version 3.12s from -xemacs/xemacs.texi. +This is Info file ../info/xemacs.info, produced by Makeinfo version +1.68 from the input file xemacs/xemacs.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -50,7 +50,7 @@ character on the line. There was no need to change `C-a', as the choice of screen model does not affect beginnings of lines. Insertion of text is adapted to the quarter-plane screen model -through the use of Overwrite mode (*note Minor Modes::). +through the use of Overwrite mode (*note Minor Modes::.). Self-inserting characters replace existing text, column by column, rather than pushing existing text to the right. runs `picture-newline', which just moves to the beginning of the following @@ -73,7 +73,7 @@ below the current line. To actually delete parts of the picture, use `C-w', or with `C-c C-d' (which is defined as `delete-char', as `C-d' is in other modes), or with one of the picture rectangle commands (*note Rectangles in -Picture::). +Picture::.).  File: xemacs.info, Node: Insert in Picture, Next: Tabs in Picture, Prev: Basic Picture, Up: Picture @@ -158,7 +158,7 @@ Picture Mode Rectangle Commands Picture mode defines commands for working on rectangular pieces of the text in ways that fit with the quarter-plane model. The standard -rectangle commands may also be useful (*note Rectangles::). +rectangle commands may also be useful (*note Rectangles::.). `C-c C-k' Clear out the region-rectangle (`picture-clear-rectangle'). With @@ -725,7 +725,7 @@ the year in its entirety; that is, type `1990', not `90'. `o' (`calendar-other-month') prompts for a month and year, then centers the three-month calendar around that month. - You can return to today's date with `.' (`calendar-goto-today'). + You can return to today's date with `.' (`calendar-goto-today').  File: xemacs.info, Node: Scroll Calendar, Next: Mark and Region, Prev: Calendar Motion, Up: Calendar/Diary @@ -780,7 +780,7 @@ The Mark and the Region ----------------------- The concept of the mark applies to the calendar just as to any other -buffer, but it marks a _date_, not a _position_ in the buffer. The +buffer, but it marks a *date*, not a *position* in the buffer. The region consists of the days between the mark and point (including the starting and stopping dates). @@ -806,11 +806,11 @@ screen. This does not change the extent of the region. To determine the number of days in the region, type `M-=' (`calendar-count-days-region'). The numbers of days printed is -_inclusive_; that is, it includes the days specified by mark and point. +*inclusive*; that is, it includes the days specified by mark and point. The main use of the mark in the calendar is to remember dates that you may want to go back to. To make this feature more useful, the mark -ring (*note Mark Ring::) operates exactly as in other buffers: Emacs +ring (*note Mark Ring::.) operates exactly as in other buffers: Emacs remembers 16 previous locations of the mark. To return to a marked date, type `C-u C-SPC' (or `C-u C-@'); this is the command `calendar-set-mark' given a numeric argument. It moves point to where @@ -975,7 +975,7 @@ holidays in a different face (or places a `*' after these dates, if display with multiple faces is not available). The command applies both to the currently visible months and to other months that subsequently become visible by scrolling. To turn marking off and erase the current -marks, type `u', which also erases any diary marks (*note Diary::). +marks, type `u', which also erases any diary marks (*note Diary::.). To get even more detailed information, use the `a' command, which displays a separate buffer containing a list of all holidays in the @@ -998,8 +998,8 @@ years, and allows you to choose all the holidays or one of several categories of holidays. You can use this command even if you don't have a calendar window. - The dates used by Emacs for holidays are based on _current -practice_, not historical fact. Historically, for instance, the start + The dates used by Emacs for holidays are based on *current +practice*, not historical fact. Historically, for instance, the start of daylight savings time and even its existence have varied from year to year, but present United States law mandates that daylight savings time begins on the first Sunday in April. When the daylight savings rules @@ -1028,7 +1028,7 @@ the times of sunrise and sunset for any date. `C-u M-x sunrise-sunset' Display times of sunrise and sunset for a specified date. - Within the calendar, to display the _local times_ of sunrise and + Within the calendar, to display the *local times* of sunrise and sunset in the echo area, move point to the date you want, and type `S'. Alternatively, click `Button2' on the date, then choose `Sunrise/Sunset' from the menu that appears. The command `M-x @@ -1067,8 +1067,8 @@ The value of `calendar-time-zone' is the number of minutes difference between your local standard time and Coordinated Universal Time (Greenwich time). The values of `calendar-standard-time-zone-name' and `calendar-daylight-time-zone-name' are the abbreviations used in your -time zone. Emacs displays the times of sunrise and sunset _corrected -for daylight savings time_. *Note Daylight Savings::, for how daylight +time zone. Emacs displays the times of sunrise and sunset *corrected +for daylight savings time*. *Note Daylight Savings::, for how daylight savings time is determined. As a user, you might find it convenient to set the calendar location @@ -1117,7 +1117,7 @@ File: xemacs.info, Node: Other Calendars, Next: Calendar Systems, Prev: Lunar Conversion To and From Other Calendars -------------------------------------- - The Emacs calendar displayed is _always_ the Gregorian calendar, + The Emacs calendar displayed is *always* the Gregorian calendar, sometimes called the "new style" calendar, which is used in most of the world today. However, this calendar did not exist before the sixteenth century and was not widely used before the eighteenth century; it did @@ -1157,7 +1157,7 @@ nineteenth century. Astronomers use a simple counting of days elapsed since noon, Monday, January 1, 4713 B.C. on the Julian calendar. The number of days elapsed -is called the _Julian day number_ or the _Astronomical day number_. +is called the *Julian day number* or the *Astronomical day number*. The Hebrew calendar is used by tradition in the Jewish religion. The Emacs calendar program uses the Hebrew calendar to determine the dates @@ -1179,7 +1179,7 @@ measure similar to the metric system. The French government officially abandoned this calendar at the end of 1805. The Maya of Central America used three separate, overlapping calendar -systems, the _long count_, the _tzolkin_, and the _haab_. Emacs knows +systems, the *long count*, the *tzolkin*, and the *haab*. Emacs knows about all three of these calendars. Experts dispute the exact correlation between the Mayan calendar and our calendar; Emacs uses the Goodman-Martinez-Thompson correlation in its calculations. diff --git a/info/xemacs.info-14 b/info/xemacs.info-14 index 3a1dcaf..72a3771 100644 --- a/info/xemacs.info-14 +++ b/info/xemacs.info-14 @@ -1,5 +1,5 @@ -This is ../info/xemacs.info, produced by makeinfo version 3.12s from -xemacs/xemacs.texi. +This is Info file ../info/xemacs.info, produced by Makeinfo version +1.68 from the input file xemacs/xemacs.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -149,7 +149,7 @@ other than Mayan; for the Mayan calendar, see the following section. These commands ask you for a date on the other calendar, move point to the Gregorian calendar date equivalent to that date, and display the other calendar's date in the echo area. Emacs uses strict completion -(*note Completion::) whenever it asks you to type a month name, so you +(*note Completion::.) whenever it asks you to type a month name, so you don't have to worry about the spelling of Hebrew, Islamic, or French names. @@ -227,14 +227,14 @@ date and moves point to the previous occurrence of that date. Similarly, type `g m n h' to go to the next occurrence of a haab date. The Maya also used the combination of the tzolkin date and the haab -date. This combination is a cycle of about 52 years called a _calendar -round_. If you type `g m p c', Emacs asks you for both a haab and a +date. This combination is a cycle of about 52 years called a *calendar +round*. If you type `g m p c', Emacs asks you for both a haab and a tzolkin date and then moves point to the previous occurrence of that combination. Use `g m n c' to move point to the next occurrence of a combination. These commands signal an error if the haab/tzolkin date combination you have typed is impossible. - Emacs uses strict completion (*note Completion::) whenever it asks + Emacs uses strict completion (*note Completion::.) whenever it asks you to type a Mayan name, so you don't have to worry about spelling.  @@ -271,7 +271,7 @@ of the entries. Such formatting is purely a matter of taste. Although you probably will start by creating a diary manually, Emacs provides a number of commands to let you view, add, and change diary entries. You can also share diary entries with other users (*note -Included Diary Files::). +Included Diary Files::.). * Menu: @@ -334,7 +334,7 @@ different face (or places a `+' after these dates, if display with multiple faces is not available). The command applies both to the currently visible months and to other months that subsequently become visible by scrolling. To turn marking off and erase the current marks, -type `u', which also turns off holiday marks (*note Holidays::). +type `u', which also turns off holiday marks (*note Holidays::.). To see the full diary file, rather than just some of the entries, use the `s' command. @@ -344,14 +344,15 @@ to hide entries that don't apply. The diary buffer as you see it is an illusion, so simply printing the buffer does not print what you see on your screen. There is a special -command to print hard copy of the diary buffer _as it appears_; this +command to print hard copy of the diary buffer *as it appears*; this command is `M-x print-diary-entries'. It sends the data directly to -the printer. You can customize it like `lpr-region' (*note Hardcopy::). +the printer. You can customize it like `lpr-region' (*note +Hardcopy::.). The command `M-x diary' displays the diary entries for the current date, independently of the calendar display, and optionally for the next few days as well; the variable `number-of-diary-entries' specifies how -many days to include (*note Customization::). +many days to include (*note Customization::.). If you put `(diary)' in your `.emacs' file, this automatically displays a window with the day's diary entries, when you enter Emacs. @@ -411,13 +412,13 @@ entries, but can cause confusion if you ask for more than one day's entries. You can edit the diary entries as they appear in the window, but it -is important to remember that the buffer displayed contains the _entire_ +is important to remember that the buffer displayed contains the *entire* diary file, with portions of it concealed from view. This means, for instance, that the `C-f' (`forward-char') command can put point at what appears to be the end of the line, but what is in reality the middle of some concealed line. - _Be careful when editing the diary entries!_ Inserting additional + *Be careful when editing the diary entries!* Inserting additional lines or adding/deleting characters in the middle of a visible line cannot cause problems, but editing at the end of a line may not do what you expect. Deleting a line may delete other invisible entries that @@ -465,7 +466,7 @@ any day in March of any year; so does `march *'. If you prefer the European style of writing dates--in which the day comes before the month--type `M-x european-calendar' while in the -calendar, or set the variable `european-calendar-style' to `t' _before_ +calendar, or set the variable `european-calendar-style' to `t' *before* using any calendar or diary command. This mode interprets all dates in the diary in the European manner, and also uses European style for displaying diary dates. (Note that there is no comma after the @@ -597,7 +598,7 @@ calendar style, the month and day are interchanged.) nonmarking entry, give a numeric argument to the command. For example, `C-u i a' makes a nonmarking anniversary diary entry. - Marking sexp diary entries in the calendar is _extremely_ + Marking sexp diary entries in the calendar is *extremely* time-consuming, since every date visible in the calendar window must be individually checked. So it's a good idea to make sexp diary entries nonmarking (with `&') when possible. @@ -623,7 +624,7 @@ year. based on any Emacs Lisp expression. You can use the library of built-in functions or you can write your own functions. The built-in functions include the ones shown in this section, plus a few others (*note Sexp -Diary Entries::). +Diary Entries::.). The generality of sexps lets you specify any diary entry that you can describe algorithmically. Suppose you get paid on the 21st of the month @@ -640,7 +641,7 @@ to just those dates. This example illustrates how the sexp can depend on the variable `date'; this variable is a list (MONTH DAY YEAR) that gives the Gregorian date for which the diary entries are being found. If the value of the sexp is `t', the entry applies to that date. If -the sexp evaluates to `nil', the entry does _not_ apply to that date. +the sexp evaluates to `nil', the entry does *not* apply to that date.  File: xemacs.info, Node: Calendar Customization, Prev: Diary, Up: Calendar/Diary @@ -691,7 +692,7 @@ period. The holiday list appears in a separate window. You can set the variable `mark-diary-entries-in-calendar' to `t' in order to mark any dates with diary entries. This takes effect whenever the calendar window contents are recomputed. There are two ways of -marking these dates: by changing the face (*note Faces::), if the +marking these dates: by changing the face (*note Faces::.), if the display supports that, or by placing a plus sign (`+') beside the date otherwise. @@ -737,7 +738,7 @@ default for this variable when Emacs supports multiple faces on your terminal. A similar normal hook, `today-invisible-calendar-hook' is run if the -current date is _not_ visible in the window. +current date is *not* visible in the window.  File: xemacs.info, Node: Holiday Customizing, Next: Date Display Format, Prev: Calendar Customizing, Up: Calendar Customization @@ -1050,8 +1051,8 @@ order by day and time. the standard American nor European styles suits your needs, by setting the variable `diary-date-forms'. This variable is a list of patterns for recognizing a date. Each date pattern is a list whose elements may -be regular expressions (*note Regexps::) or the symbols `month', `day', -`year', `monthname', and `dayname'. All these elements serve as +be regular expressions (*note Regexps::.) or the symbols `month', +`day', `year', `monthname', and `dayname'. All these elements serve as patterns that match certain kinds of text in the diary file. In order for the date pattern, as a whole, to match, all of its elements must match consecutively. @@ -1082,11 +1083,11 @@ standard syntax table from Fundamental mode (*note Syntax Tables: (lispref)Syntax Tables.), but with the `*' changed so that it is a word constituent. - The date patterns in the list must be _mutually exclusive_ and must + The date patterns in the list must be *mutually exclusive* and must not match any portion of the diary entry itself, just the date and one character of whitespace. If, to be mutually exclusive, the pattern must match a portion of the diary entry text--beyond the whitespace -that ends the date--then the first element of the date pattern _must_ +that ends the date--then the first element of the date pattern *must* be `backup'. This causes the date recognizer to back up to the beginning of the current word of the diary entry, after finishing the match. Even if you use `backup', the date pattern must absolutely not diff --git a/info/xemacs.info-15 b/info/xemacs.info-15 index ebeb838..acd0168 100644 --- a/info/xemacs.info-15 +++ b/info/xemacs.info-15 @@ -1,5 +1,5 @@ -This is ../info/xemacs.info, produced by makeinfo version 3.12s from -xemacs/xemacs.texi. +This is Info file ../info/xemacs.info, produced by Makeinfo version +1.68 from the input file xemacs/xemacs.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -156,7 +156,7 @@ applies to just those dates. This example illustrates how the sexp can depend on the variable `date'; this variable is a list (MONTH DAY YEAR) that gives the Gregorian date for which the diary entries are being found. If the value of the expression is `t', the entry applies to -that date. If the expression evaluates to `nil', the entry does _not_ +that date. If the expression evaluates to `nil', the entry does *not* apply to that date. The following sexp diary entries take advantage of the ability (in @@ -222,7 +222,7 @@ the Hebrew calendar in certain standard ways: scripture reading. `%%(diary-sabbath-candles)' - Make a Friday diary entry that tells the _local time_ of Sabbath + Make a Friday diary entry that tells the *local time* of Sabbath candle lighting. `%%(diary-omer)' @@ -230,7 +230,7 @@ the Hebrew calendar in certain standard ways: `%%(diary-yahrzeit MONTH DAY YEAR) NAME' Make a diary entry marking the anniversary of a date of death. - The date is the _Gregorian_ (civil) date of death. The diary + The date is the *Gregorian* (civil) date of death. The diary entry appears on the proper Hebrew calendar anniversary and on the day before. (In the European style, the order of the parameters is changed to DAY, MONTH, YEAR.) @@ -602,7 +602,7 @@ and output going to that buffer. by XEmacs directly to the subshell, as "terminal input." Any "echo" of your input is the responsibility of the subshell. (The exception is the terminal escape character, which by default is `C-c'. *note Term -Mode::.) Any "terminal output" from the subshell goes into the buffer, +Mode::..) Any "terminal output" from the subshell goes into the buffer, advancing point. Some programs (such as XEmacs itself) need to control the appearance @@ -1063,11 +1063,12 @@ ones that exist for the sake of customization. Emacs does not values, and thereby alter and control the behavior of certain Emacs commands. These variables are called "options". Most options are documented in this manual and appear in the Variable Index (*note -Variable Index::). +Variable Index::.). One example of a variable which is an option is `fill-column', which specifies the position of the right margin (as a number of characters -from the left margin) to be used by the fill commands (*note Filling::). +from the left margin) to be used by the fill commands (*note +Filling::.). * Menu: @@ -1176,7 +1177,7 @@ it. It looks like this, in part: This says that the buffer displays the contents of the `Emacs' group. The other groups are listed because they are its contents. But they -are listed differently, without indentation and dashes, because _their_ +are listed differently, without indentation and dashes, because *their* contents are not included. Each group has a single-line documentation string; the `Emacs' group also has a `[State]' line. diff --git a/info/xemacs.info-16 b/info/xemacs.info-16 index de5c1bf..f5aabf3 100644 --- a/info/xemacs.info-16 +++ b/info/xemacs.info-16 @@ -1,5 +1,5 @@ -This is ../info/xemacs.info, produced by makeinfo version 3.12s from -xemacs/xemacs.texi. +This is Info file ../info/xemacs.info, produced by Makeinfo version +1.68 from the input file xemacs/xemacs.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -202,7 +202,7 @@ field. When the attribute is enabled, you can change the attribute value in the usual ways. Setting, saving and resetting a face work like the same operations -for options (*note Changing an Option::). +for options (*note Changing an Option::.). A face can specify different appearances for different types of display. For example, a face can make text red on a color display, but @@ -261,7 +261,7 @@ can show their contents in the usual way, by invoking `[Show]'. customize-apropos'. You specify a regular expression as argument; then all options, faces and groups whose names match this regular expression are set up in the customization buffer. If you specify an empty regular -expression, this includes _all_ groups, options and faces in the +expression, this includes *all* groups, options and faces in the customization buffer (but that takes a long time). If you change option values and then decide the change was a mistake, @@ -464,8 +464,8 @@ list. That is inappropriate. Whether you use Auto Fill mode or not is a matter of personal taste, not a matter of the contents of particular files. If you want to use Auto Fill, set up major mode hooks with your `.emacs' file to turn it on (when appropriate) for you alone (*note -Init File::). Don't try to use a local variable list that would impose -your taste on everyone working with the file. +Init File::.). Don't try to use a local variable list that would +impose your taste on everyone working with the file. XEmacs allows you to specify local variables in the first line of a file, in addition to specifying them in the `Local Variables' section @@ -604,7 +604,7 @@ one, you must give it a name using `M-x name-last-kbd-macro'. This reads a name as an argument using the minibuffer and defines that name to execute the macro. The macro name is a Lisp symbol, and defining it in this way makes it a valid command name for calling with `M-x' or for -binding a key to with `global-set-key' (*note Keymaps::). If you +binding a key to with `global-set-key' (*note Keymaps::.). If you specify a name that has a prior definition other than another keyboard macro, Emacs prints an error message and nothing is changed. @@ -618,9 +618,9 @@ This inserts some Lisp code that, when executed later, will define the same macro with the same definition it has now. You need not understand Lisp code to do this, because `insert-kbd-macro' writes the Lisp code for you. Then save the file. You can load the file with -`load-file' (*note Lisp Libraries::). If the file you save in is your -initialization file `~/.emacs' (*note Init File::), then the macro will -be defined each time you run Emacs. +`load-file' (*note Lisp Libraries::.). If the file you save in is your +initialization file `~/.emacs' (*note Init File::.), then the macro +will be defined each time you run Emacs. If you give `insert-kbd-macro' a prefix argument, it creates additional Lisp code to record the keys (if any) that you have bound to @@ -1160,7 +1160,7 @@ argument defaults to the current buffer's syntax table. 1. The first character in the string specifies the syntactic class. It is one of the characters in the previous table (*note Syntax - Entry::). + Entry::.). 2. The second character is the matching delimiter. For a character that is not an opening or closing delimiter, this should be a diff --git a/info/xemacs.info-17 b/info/xemacs.info-17 index 93f33a0..34260d2 100644 --- a/info/xemacs.info-17 +++ b/info/xemacs.info-17 @@ -1,5 +1,5 @@ -This is ../info/xemacs.info, produced by makeinfo version 3.12s from -xemacs/xemacs.texi. +This is Info file ../info/xemacs.info, produced by Makeinfo version +1.68 from the input file xemacs/xemacs.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -39,8 +39,8 @@ The Init File, .emacs home directory. This file, if it exists, should contain Lisp code. It is called your initialization file or "init file". Use the command line switch `-q' to tell Emacs whether to load an init file (*note -Entering Emacs::). Use the command line switch `-user-init-file' -(*note Command Switches::) to tell Emacs to load a different file +Entering Emacs::.). Use the command line switch `-user-init-file' +(*note Command Switches::.) to tell Emacs to load a different file instead of `~/.emacs'. When the `.emacs' file is read, the variable `user-init-file' says @@ -56,7 +56,7 @@ loaded. If you have a large amount of code in your `.emacs' file, you should move it into another file named `SOMETHING.el', byte-compile it (*note -Lisp Libraries::), and load that file from your `.emacs' file using +Lisp Libraries::.), and load that file from your `.emacs' file using `load'. * Menu: @@ -75,7 +75,7 @@ Init File Syntax expressions. Each consists of a function name followed by arguments, all surrounded by parentheses. For example, `(setq fill-column 60)' represents a call to the function `setq' which is used to set the -variable `fill-column' (*note Filling::) to 60. +variable `fill-column' (*note Filling::.) to 60. The second argument to `setq' is an expression for the new value of the variable. This can be a constant, a variable, or a function call @@ -191,7 +191,7 @@ Lisp expressions: When the argument to `load' is a relative pathname, not starting with `/' or `~', `load' searches the directories in `load-path' - (*note Loading::). + (*note Loading::.). * Load the compiled Lisp file `foo.elc' from your home directory. @@ -693,7 +693,7 @@ Resource List `topToolBarShadowColor' (class `TopToolBarShadowColor'): color-name `bottomToolBarShadowColor' (class `BottomToolBarShadowColor'): color-name Color of the top and bottom shadows for the toolbars. NOTE: These - resources do _not_ have anything to do with the top and bottom + resources do *not* have anything to do with the top and bottom toolbars (i.e. the toolbars at the top and bottom of the frame)! Rather, they affect the top and bottom shadows around the edges of all four kinds of toolbars. @@ -702,7 +702,7 @@ Resource List `bottomToolBarShadowPixmap' (class `BottomToolBarShadowPixmap'): pixmap-name Pixmap of the top and bottom shadows for the toolbars. If set, these resources override the corresponding color resources. NOTE: - These resources do _not_ have anything to do with the top and + These resources do *not* have anything to do with the top and bottom toolbars (i.e. the toolbars at the top and bottom of the frame)! Rather, they affect the top and bottom shadows around the edges of all four kinds of toolbars. @@ -968,9 +968,9 @@ editing level and cancel the command which invoked it. Quitting with `C-g' does not do this, and could not do this because it is used to cancel a partially typed command within the recursive editing level. Both operations are useful. For example, if you are in the Emacs -debugger (*note Lisp Debug::) and have typed `C-u 8' to enter a numeric -argument, you can cancel that argument with `C-g' and remain in the -debugger. +debugger (*note Lisp Debug::.) and have typed `C-u 8' to enter a +numeric argument, you can cancel that argument with `C-g' and remain in +the debugger. The command `M-x top-level' is equivalent to "enough" `C-]' commands to get you out of all the levels of recursive edits that you are in. @@ -1000,7 +1000,7 @@ work, and how to recognize them and correct them. * Screen Garbled:: Garbage on the screen. * Text Garbled:: Garbage in the text. * Unasked-for Search:: Spontaneous entry to incremental search. -* Emergency Escape:: Emergency escape--- +* Emergency Escape:: Emergency escape-- What to do if Emacs stops responding. * Total Frustration:: When you are at your wits' end. diff --git a/info/xemacs.info-18 b/info/xemacs.info-18 index f97f6ef..0a17cb9 100644 --- a/info/xemacs.info-18 +++ b/info/xemacs.info-18 @@ -1,5 +1,5 @@ -This is ../info/xemacs.info, produced by makeinfo version 3.12s from -xemacs/xemacs.texi. +This is Info file ../info/xemacs.info, produced by Makeinfo version +1.68 from the input file xemacs/xemacs.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -145,7 +145,7 @@ backtrace showing how the Lisp program in Emacs arrived at the error. To make the backtrace, you must execute the Lisp expression `(setq debug-on-error t)' before the error happens (that is to say, you must execute that expression and then make the bug happen). This causes the -Lisp debugger to run (*note Lisp Debug::). The debugger's backtrace +Lisp debugger to run (*note Lisp Debug::.). The debugger's backtrace can be copied as text into the bug report. This use of the debugger is possible only if you know how to make the bug happen again. Do note the error message the first time the bug happens, so if you can't make @@ -253,7 +253,7 @@ Backup File Balance Parentheses Emacs can balance parentheses manually or automatically. Manual balancing is done by the commands to move over balanced expressions - (*note Lists::). Automatic balancing is done by blinking the + (*note Lists::.). Automatic balancing is done by blinking the parenthesis that matches one just inserted (*note Matching Parens: Matching.). @@ -308,8 +308,8 @@ Command Command Name A command name is the name of a Lisp symbol which is a command - (*note Commands::). You can invoke any command by its name using - `M-x' (*note M-x::). + (*note Commands::.). You can invoke any command by its name using + `M-x' (*note M-x::.). Comments A comment is text in a program which is intended only for the @@ -321,8 +321,8 @@ Comments Compilation Compilation is the process of creating an executable program from source code. Emacs has commands for compiling files of Emacs Lisp - code (*note Lisp Libraries::) and programs in C and other languages - (*note Compilation::). + code (*note Lisp Libraries::.) and programs in C and other + languages (*note Compilation::.). Complete Key A complete key is a character or sequence of characters which, @@ -367,7 +367,7 @@ Current Buffer current one. *Note Buffers::. Current Line - The line point is on (*note Point::). + The line point is on (*note Point::.). Current Paragraph The paragraph that point is in. If point is between paragraphs, @@ -387,8 +387,8 @@ Cursor Customization Customization is making minor changes in the way Emacs works. It - is often done by setting variables (*note Variables::) or by - rebinding keys (*note Keymaps::). + is often done by setting variables (*note Variables::.) or by + rebinding keys (*note Keymaps::.). Default Argument The default for an argument is the value that is used if you do not @@ -781,10 +781,10 @@ Prompt A prompt is text printed to ask the user for input. Printing a prompt is called prompting. Emacs prompts always appear in the echo area (q.v.). One kind of prompting happens when the - minibuffer is used to read an argument (*note Minibuffer::); the + minibuffer is used to read an argument (*note Minibuffer::.); the echoing which happens when you pause in the middle of typing a multi-character key is also a kind of prompting (*note Echo - Area::). + Area::.). Quitting Quitting means cancelling a partially typed command or a running @@ -923,7 +923,7 @@ Termscript File explicitly instructed to do so. *Note Bugs::. Text - Text has two meanings (*note Text::): + Text has two meanings (*note Text::.): * Data consisting of a sequence of characters, as opposed to binary numbers, images, graphics commands, executable @@ -946,7 +946,7 @@ Transposition Transposing two units of text means putting each one into the place formerly occupied by the other. There are Emacs commands to transpose two adjacent characters, words, sexps (q.v.), or lines - (*note Transpose::). + (*note Transpose::.). Truncation Truncating text lines in the display means leaving out any text on diff --git a/info/xemacs.info-19 b/info/xemacs.info-19 index 3b4ba89..6b02c95 100644 --- a/info/xemacs.info-19 +++ b/info/xemacs.info-19 @@ -1,5 +1,5 @@ -This is ../info/xemacs.info, produced by makeinfo version 3.12s from -xemacs/xemacs.texi. +This is Info file ../info/xemacs.info, produced by Makeinfo version +1.68 from the input file xemacs/xemacs.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY diff --git a/info/xemacs.info-2 b/info/xemacs.info-2 index 43a9b7e..0aaf39f 100644 --- a/info/xemacs.info-2 +++ b/info/xemacs.info-2 @@ -1,5 +1,5 @@ -This is ../info/xemacs.info, produced by makeinfo version 3.12s from -xemacs/xemacs.texi. +This is Info file ../info/xemacs.info, produced by Makeinfo version +1.68 from the input file xemacs/xemacs.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -135,7 +135,7 @@ manual for information on manipulating X windows. When you are working under X, each X window (that is, each XEmacs frame) has a menu bar for mouse-controlled operations (*note Pull-down -Menus::). +Menus::.). XEmacs under X is also a multi-frame XEmacs. You can use the New Frame menu item from the File menu to create a new XEmacs frame in a @@ -826,7 +826,7 @@ Clear menu items. When you select a menu item, Emacs executes the equivalent command. Most commands on the Edit menu work on a block of text, the X selection. They appear faded until you select a block of text (activate a region) with the mouse. *Note Using X Selections::, -*note Killing::, and *note Yanking:: for more information. +*note Killing::., and *note Yanking::. for more information. Undo Undoes the previous command. Undo is equivalent to the Emacs diff --git a/info/xemacs.info-20 b/info/xemacs.info-20 index c212a61..0b844bd 100644 --- a/info/xemacs.info-20 +++ b/info/xemacs.info-20 @@ -1,5 +1,5 @@ -This is ../info/xemacs.info, produced by makeinfo version 3.12s from -xemacs/xemacs.texi. +This is Info file ../info/xemacs.info, produced by Makeinfo version +1.68 from the input file xemacs/xemacs.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY diff --git a/info/xemacs.info-21 b/info/xemacs.info-21 index 06d3b1e..24632e9 100644 --- a/info/xemacs.info-21 +++ b/info/xemacs.info-21 @@ -1,5 +1,5 @@ -This is ../info/xemacs.info, produced by makeinfo version 3.12s from -xemacs/xemacs.texi. +This is Info file ../info/xemacs.info, produced by Makeinfo version +1.68 from the input file xemacs/xemacs.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY diff --git a/info/xemacs.info-3 b/info/xemacs.info-3 index 41e774e..56cfe9c 100644 --- a/info/xemacs.info-3 +++ b/info/xemacs.info-3 @@ -1,5 +1,5 @@ -This is ../info/xemacs.info, produced by makeinfo version 3.12s from -xemacs/xemacs.texi. +This is Info file ../info/xemacs.info, produced by Makeinfo version +1.68 from the input file xemacs/xemacs.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -91,7 +91,7 @@ normally `C-z' and `C-c'.) This Unix feature is turned off while you are in Emacs. The meanings of `C-z' and `C-x C-c' as keys in Emacs were inspired by the standard Berkeley Unix meanings of `C-z' and `C-c', but that is their only relationship with Unix. You could customize these -keys to do anything (*note Keymaps::). +keys to do anything (*note Keymaps::.).  File: xemacs.info, Node: Command Switches, Next: Startup Paths, Prev: Exiting, Up: Top @@ -221,7 +221,7 @@ order in which they appear in this table. `-debug-paths' Displays information on how XEmacs constructs the various paths - into its hierarchy on startup. (See also *note Startup Paths::.) + into its hierarchy on startup. (See also *note Startup Paths::..) `-unmapped' Do not map the initial frame. This is useful if you want to start @@ -269,7 +269,7 @@ normal processing of the other arguments by setting this variable. xemacs *.c passes each `.c' file as a separate argument to Emacs, so that Emacs -visits each file (*note Visiting::). +visits each file (*note Visiting::.). Here is an advanced example that assumes you have a Lisp program file called `hack-c-program.el' which, when loaded, performs some useful @@ -478,7 +478,7 @@ directly under `', because that is where they are in the XEmacs tarball. If XEmacs runs with the `-debug-paths' option (*note Command -Switches::), it will print the values of these variables, hopefully +Switches::.), it will print the values of these variables, hopefully aiding in debugging any problems which come up. `lisp-directory' @@ -546,7 +546,7 @@ Inserting Text To insert printing characters into the text you are editing, just type them. This inserts the characters into the buffer at the cursor -(that is, at "point"; *note Point::). The cursor moves forward. Any +(that is, at "point"; *note Point::.). The cursor moves forward. Any characters after the cursor move forward too. If the text in the buffer is `FOOBAR', with the cursor before the `B', and you type `XX', the result is `FOOXXBAR', with the cursor still before the `B'. @@ -586,7 +586,7 @@ above 200 octal, you must "quote" it by typing the character with the specified character code. A numeric argument to `C-q' specifies how many copies of the quoted -character should be inserted (*note Arguments::). +character should be inserted (*note Arguments::.). If you prefer to have text characters replace (overwrite) existing text instead of moving it to the right, you can enable Overwrite mode, a @@ -596,7 +596,7 @@ Changing the Location of Point ============================== To do more than insert characters, you have to know how to move point -(*note Point::). Here are a few of the available commands. +(*note Point::.). Here are a few of the available commands. NOTE: Many of the following commands have two versions, one that uses the function keys (e.g. or ) and one that doesn't. The @@ -744,7 +744,7 @@ from Emacs, type: The file name is given as an "argument" to the command `C-x C-f' (`find-file'). The command uses the "minibuffer" to read the argument. -You have to type to terminate the argument (*note Minibuffer::). +You have to type to terminate the argument (*note Minibuffer::.). You can also use the Open... menu item from the File menu, then type the name of the file to the prompt. @@ -765,7 +765,7 @@ which you can insert the text you want to put in the file. When you save the buffer with `C-x C-s', or by choosing Save Buffer from the File menu, the file is created. - To learn more about using files, *note Files::. + To learn more about using files, *note Files::.. Help ==== @@ -832,8 +832,8 @@ Continuation Lines curved arrow at the extreme right margin of all but the last line. The curved arrow indicates that the following screen line is not really a distinct line in the text, but just the "continuation" of a line too -long to fit the frame. You can use Auto Fill mode (*note Filling::) to -have Emacs insert newlines automatically when a line gets too long. +long to fit the frame. You can use Auto Fill mode (*note Filling::.) +to have Emacs insert newlines automatically when a line gets too long. Instead of continuation, long lines can be displayed by "truncation". This means that all the characters that do not fit in the width of the @@ -844,7 +844,7 @@ of the curved arrow inform you that truncation is in effect. To turn off continuation for a particular buffer, set the variable `truncate-lines' to non-`nil' in that buffer. Truncation instead of continuation also happens whenever horizontal scrolling is in use, and -optionally whenever side-by-side windows are in use (*note Windows::). +optionally whenever side-by-side windows are in use (*note Windows::.). Altering the value of `truncate-lines' makes it local to the current buffer; until that time, the default value is in effect. The default is initially `nil'. *Note Locals::. @@ -888,7 +888,7 @@ information, it is not displayed all the time. current page. * `M-=' (`count-lines-region') prints the number of lines in the - region (*note Mark::). + region (*note Mark::.). The command `C-x =' (`what-cursor-position') provides information about point and about the column the cursor is in. It prints a line in @@ -1127,7 +1127,7 @@ where `Find File: ' is the prompt. Typing `buffer.c' specifies the file `..'; thus, if you type `../lisp/simple.el', the file that you visit will be the one named `/u2/emacs/lisp/simple.el'. Alternatively, you can use `M-' to -kill directory names you don't want (*note Words::). +kill directory names you don't want (*note Words::.). You can also type an absolute file name, one starting with a slash or a tilde, ignoring the default directory. For example, to find the diff --git a/info/xemacs.info-4 b/info/xemacs.info-4 index ca4fd3d..c4a0459 100644 --- a/info/xemacs.info-4 +++ b/info/xemacs.info-4 @@ -1,5 +1,5 @@ -This is ../info/xemacs.info, produced by makeinfo version 3.12s from -xemacs/xemacs.texi. +This is Info file ../info/xemacs.info, produced by Makeinfo version +1.68 from the input file xemacs/xemacs.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -570,7 +570,7 @@ you are looking for commands for killing backwards and `C-h a kill-backwards ' doesn't reveal any commands, don't give up. Try just `kill', or just `backwards', or just `back'. Be persistent. Pretend you are playing Adventure. Also note that you can use a -regular expression as the argument (*note Regexps::). +regular expression as the argument (*note Regexps::.). Here is a set of arguments to give to `C-h a' that covers many classes of Emacs commands, since there are strong conventions for naming @@ -611,9 +611,9 @@ normally describes all the commands that are changed in this mode. present information about the current Emacs mode that is not covered by `C-h m'. `C-h b' displays a list of all key bindings currently in effect, with the local bindings of the current major mode first, -followed by the global bindings (*note Key Bindings::). `C-h s' +followed by the global bindings (*note Key Bindings::.). `C-h s' displays the contents of the syntax table with explanations of each -character's syntax (*note Syntax::). +character's syntax (*note Syntax::.). The other `C-h' options display various files of useful information. `C-h C-w' (`describe-no-warranty') displays details on the complete @@ -751,23 +751,23 @@ Operating on the Region Once you have created an active region, you can do many things to the text in it: - * Kill it with `C-w' (*note Killing::). + * Kill it with `C-w' (*note Killing::.). - * Save it in a register with `C-x r s' (*note Registers::). + * Save it in a register with `C-x r s' (*note Registers::.). - * Save it in a buffer or a file (*note Accumulating Text::). + * Save it in a buffer or a file (*note Accumulating Text::.). * Convert case with `C-x C-l' or `C-x C-u' - (*note Case::). + (*note Case::.). * Evaluate it as Lisp code with `M-x eval-region' (*note Lisp - Eval::). + Eval::.). - * Fill it as text with `M-q' (*note Filling::). + * Fill it as text with `M-q' (*note Filling::.). - * Print hardcopy with `M-x print-region' (*note Hardcopy::). + * Print hardcopy with `M-x print-region' (*note Hardcopy::.). - * Indent it with `C-x ' or `C-M-\' (*note Indentation::). + * Indent it with `C-x ' or `C-M-\' (*note Indentation::.).  File: xemacs.info, Node: Marking Objects, Next: Mark Ring, Prev: Using Region, Up: Mark @@ -805,12 +805,12 @@ These characters sometimes save you some typing. thus delimit an object in the buffer. `M-h' (`mark-paragraph') moves point to the beginning of the paragraph that surrounds or follows point, and puts the mark at the end of that paragraph (*note -Paragraphs::). You can then indent, case-convert, or kill the whole +Paragraphs::.). You can then indent, case-convert, or kill the whole paragraph. In the same fashion, `C-M-h' (`mark-defun') puts point before and the mark after the current or following defun (*note -Defuns::). `C-x C-p' (`mark-page') puts point before the current page +Defuns::.). `C-x C-p' (`mark-page') puts point before the current page (or the next or previous, depending on the argument), and mark at the -end (*note Pages::). The mark goes after the terminating page +end (*note Pages::.). The mark goes after the terminating page delimiter (to include it), while point goes after the preceding page delimiter (to exclude it). Finally, `C-x h' (`mark-whole-buffer') sets up the entire buffer as the region by putting point at the beginning @@ -895,7 +895,7 @@ whole lines. The selected region of text is highlighted. Once a region of text is selected, it becomes the primary X selection -(*note Using X Selections::) as well as the Emacs selected region. You +(*note Using X Selections::.) as well as the Emacs selected region. You can paste it into other X applications and use the options from the Edit pull-down menu on it. Since it is also the Emacs region, you can use Emacs region commands on it. @@ -1028,7 +1028,7 @@ distinction is made only for erasing text in the buffer.) The commands' names and individual descriptions use the words `kill' and `delete' to indicate what they do. If you perform a kill or delete command by mistake, use the `C-x u' (`undo') command to undo it (*note -Undo::). The delete commands include `C-d' (`delete-char') and +Undo::.). The delete commands include `C-d' (`delete-char') and (`delete-backward-char'), which delete only one character at a time, and those commands that delete only spaces or newlines. Commands that can destroy significant amounts of nontrivial data usually kill. @@ -1149,8 +1149,8 @@ numeric argument acts as a repeat count. A negative argument means to search backward and kill text before point. Other syntactic units can be killed: words, with `M-' and `M-d' -(*note Words::); sexps, with `C-M-k' (*note Lists::); and sentences, -with `C-x ' and `M-k' (*note Sentences::). +(*note Words::.); sexps, with `C-M-k' (*note Lists::.); and sentences, +with `C-x ' and `M-k' (*note Sentences::.).  File: xemacs.info, Node: Yanking, Next: Using X Selections, Prev: Killing, Up: Top diff --git a/info/xemacs.info-5 b/info/xemacs.info-5 index 0923e18..2c5aa3e 100644 --- a/info/xemacs.info-5 +++ b/info/xemacs.info-5 @@ -1,5 +1,5 @@ -This is ../info/xemacs.info, produced by makeinfo version 3.12s from -xemacs/xemacs.texi. +This is Info file ../info/xemacs.info, produced by Makeinfo version +1.68 from the input file xemacs/xemacs.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -517,7 +517,7 @@ Registers for later use. Text saved in a register can be copied into the buffer once or many times; a position saved in a register is used by moving point to that position. Rectangles can also be copied into and out of -registers (*note Rectangles::). +registers (*note Rectangles::.). Each register has a name, which is a single character. A register can store either a piece of text, a position, or a rectangle, but only @@ -772,7 +772,7 @@ Horizontal Scrolling that each line of text is shifted sideways in the window, and one or more characters at the beginning of each line are not displayed at all. When a window has been scrolled horizontally in this way, text lines -are truncated rather than continued (*note Continuation Lines::), with +are truncated rather than continued (*note Continuation Lines::.), with a `$' appearing in the first column when there is text truncated to the left, and in the last column when there is text truncated to the right. diff --git a/info/xemacs.info-6 b/info/xemacs.info-6 index f4de8e8..a295967 100644 --- a/info/xemacs.info-6 +++ b/info/xemacs.info-6 @@ -1,5 +1,5 @@ -This is ../info/xemacs.info, produced by makeinfo version 3.12s from -xemacs/xemacs.texi. +This is Info file ../info/xemacs.info, produced by Makeinfo version +1.68 from the input file xemacs/xemacs.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -358,7 +358,7 @@ Replacement occurs only after point: if you want to cover the whole buffer you must go to the beginning first. By default, all occurrences up to the end of the buffer are replaced. To limit replacement to part of the buffer, narrow to that part of the buffer before doing the -replacement (*note Narrowing::). +replacement (*note Narrowing::.). When `replace-string' exits, point is left at the last occurrence replaced. The value of point when the `replace-string' command was @@ -457,7 +457,8 @@ or a match for REGEXP are: At this point, you can type `C-r' (see below) to alter the replaced text. To undo the replacement, you can type `C-x u'. This exits the `query-replace'. If you want to do further - replacement you must use `C-x ESC' to restart (*note Repetition::). + replacement you must use `C-x ESC' to restart (*note + Repetition::.). `' to exit without doing any more replacements. @@ -623,7 +624,7 @@ characters between the words do not move. For example, `FOO, BAR' transposes into `BAR, FOO' rather than `BAR FOO,'. `C-M-t' (`transpose-sexps') is a similar command for transposing two -expressions (*note Lists::), and `C-x C-t' (`transpose-lines') +expressions (*note Lists::.), and `C-x C-t' (`transpose-lines') exchanges lines. It works like `M-t' but in determines the division of the text into syntactic units differently. @@ -729,7 +730,7 @@ rename, and append to files, and operate on file directories. * Version Control:: Version control systems (RCS and SCCS). * ListDir:: Listing the contents of a file directory. * Comparing Files:: Finding where two files differ. -* Dired:: ``Editing'' a directory to delete, rename, etc. +* Dired:: "Editing" a directory to delete, rename, etc. the files in it. * Misc File Ops:: Other things you can do on files. @@ -742,7 +743,7 @@ File Names Most Emacs commands that operate on a file require you to specify the file name. (Saving and reverting are exceptions; the buffer knows which file name to use for them.) File names are specified in the minibuffer -(*note Minibuffer::). "Completion" is available, to make it easier to +(*note Minibuffer::.). "Completion" is available, to make it easier to specify long file names. *Note Completion::. There is always a "default file name" which is used if you enter an @@ -866,9 +867,10 @@ the command with the name of the file you wish to visit, terminated by a . If you are using XEmacs under X, you can also use the Open... command from the File menu bar item. - The file name is read using the minibuffer (*note Minibuffer::), with -defaulting and completion in the standard manner (*note File Names::). -While in the minibuffer, you can abort `C-x C-f' by typing `C-g'. + The file name is read using the minibuffer (*note Minibuffer::.), +with defaulting and completion in the standard manner (*note File +Names::.). While in the minibuffer, you can abort `C-x C-f' by typing +`C-g'. `C-x C-f' has completed successfully when text appears on the screen and a new buffer name appears in the mode line. If the specified file @@ -917,7 +919,7 @@ modified). `C-x C-v' is allowed even if the current buffer is not visiting a file. If the file you specify is actually a directory, Dired is called on -that directory (*note Dired::). To inhibit this, set the variable +that directory (*note Dired::.). To inhibit this, set the variable `find-file-run-dired' to `nil'; then it is an error to try to visit a directory. diff --git a/info/xemacs.info-7 b/info/xemacs.info-7 index 45b047d..b04611c 100644 --- a/info/xemacs.info-7 +++ b/info/xemacs.info-7 @@ -1,5 +1,5 @@ -This is ../info/xemacs.info, produced by makeinfo version 3.12s from -xemacs/xemacs.texi. +This is Info file ../info/xemacs.info, produced by Makeinfo version +1.68 from the input file xemacs/xemacs.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -52,7 +52,7 @@ owner is always the person who last edited the file. Occasionally there is a file whose owner should not change. Since most files should change owners, it is a good idea to use local variable lists to set `backup-by-copying-when-mismatch' for the special cases where the owner -should not change (*note File Variables::). +should not change (*note File Variables::.). Three variables control the choice of renaming or copying. Normally, renaming is done. If the variable `backup-by-copying' is @@ -160,7 +160,7 @@ result in very extensive changes, you must confirm it with `yes'. If the current buffer has been auto-saved more recently than it has been saved explicitly, `revert-buffer' offers to read the auto save file -instead of the visited file (*note Auto Save::). Emacs asks you about +instead of the visited file (*note Auto Save::.). Emacs asks you about the auto-save file before the request for confirmation of the `revert-buffer' operation, and demands `y' or `n' as an answer. If you have started to type `yes' for confirmation without realizing that the @@ -254,7 +254,7 @@ Controlling Auto-Saving Each time you visit a file, auto-saving is turned on for that file's buffer if the variable `auto-save-default' is non-`nil' (but not in -batch mode; *note Entering Emacs::). The default for this variable is +batch mode; *note Entering Emacs::.). The default for this variable is `t', so Emacs auto-saves buffers that visit files by default. You can use the command `M-x auto-save-mode' to turn auto-saving for a buffer on or off. Like other minor mode commands, `M-x auto-save-mode' turns @@ -574,7 +574,7 @@ Change Logs and VC ------------------ If you use RCS for a program and also maintain a change log file for -it (*note Change Log::), you can generate change log entries +it (*note Change Log::.), you can generate change log entries automatically from the version control log entries: `C-x v a' @@ -686,7 +686,7 @@ numbers, then compares those versions of the specified file. If you supply a directory name instead of the name of a work file, this command compares the two specified versions of all registered files in that directory and its subdirectories. You can also specify a -snapshot name (*note Snapshots::) instead of one or both version +snapshot name (*note Snapshots::.) instead of one or both version numbers. You can specify a checked-in version by its number; you can specify @@ -744,10 +744,10 @@ Renaming VC Work Files and Master Files When you rename a registered file, you must also rename its master file correspondingly to get proper results. Use `vc-rename-file' to rename the source file as you specify, and rename its master file -accordingly. It also updates any snapshots (*note Snapshots::) that +accordingly. It also updates any snapshots (*note Snapshots::.) that mention the file, so that they use the new name; despite this, the snapshot thus modified may not completely work (*note Snapshot -Caveats::). +Caveats::.). You cannot use `vc-rename-file' on a file that is locked by someone else. @@ -797,7 +797,7 @@ snapshot. Thus, you need not hesitate to create snapshots whenever they are useful. You can give a snapshot name as an argument to `C-x v =' or `C-x v -~' (*note Old Versions::). Thus, you can use it to compare a snapshot +~' (*note Old Versions::.). Thus, you can use it to compare a snapshot against the current files, or two snapshots against each other, or a snapshot against a named version. @@ -1083,11 +1083,11 @@ delete them. `#' Flag all auto-save files (files whose names start and end with `#') - for deletion (*note Auto Save::). + for deletion (*note Auto Save::.). `~' Flag all backup files (files whose names end with `~') for deletion - (*note Backup::). + (*note Backup::.). `. (Period)' Flag excess numeric backup files for deletion. The oldest and diff --git a/info/xemacs.info-8 b/info/xemacs.info-8 index 7f8258b..55cfa43 100644 --- a/info/xemacs.info-8 +++ b/info/xemacs.info-8 @@ -1,5 +1,5 @@ -This is ../info/xemacs.info, produced by makeinfo version 3.12s from -xemacs/xemacs.texi. +This is Info file ../info/xemacs.info, produced by Makeinfo version +1.68 from the input file xemacs/xemacs.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -87,7 +87,7 @@ NEW. `M-x delete-file' deletes a specified file, like the `rm' command in the shell. If you are deleting many files in one directory, it may be -more convenient to use Dired (*note Dired::). +more convenient to use Dired (*note Dired::.). `M-x insert-file' inserts a copy of the contents of a specified file into the current buffer at point, leaving point unchanged before the @@ -140,7 +140,7 @@ commands do. which is displayed there, but at any time only one of the windows is selected and its chosen buffer is the selected buffer. Each window's mode line displays the name of the buffer the window is displaying -(*note Windows::). +(*note Windows::.). Each buffer has a name which can be of any length but is case-sensitive. You can select a buffer using its name. Most buffers @@ -151,7 +151,7 @@ can use for evaluating Lisp expressions in Emacs. Each buffer records what file it is visiting, whether it is modified, and what major mode and minor modes are in effect in it -(*note Major Modes::). Any Emacs variable can be made "local to" a +(*note Major Modes::.). Any Emacs variable can be made "local to" a particular buffer, meaning its value in that buffer can be different from the value in other buffers. *Note Locals::. @@ -183,7 +183,7 @@ Creating and Selecting Buffers To select a buffer named BUFNAME, type `C-x b BUFNAME '. This is the command `switch-to-buffer' with argument BUFNAME. You can use completion on an abbreviation for the buffer name you want (*note -Completion::). An empty argument to `C-x b' specifies the most +Completion::.). An empty argument to `C-x b' specifies the most recently selected buffer that is not displayed in any window. Most buffers are created when you visit files, or use Emacs commands @@ -191,9 +191,9 @@ that display text. You can also create a buffer explicitly by typing `C-x b BUFNAME ', which creates a new, empty buffer that is not visiting any file, and selects it for editing. The new buffer's major mode is determined by the value of `default-major-mode' (*note Major -Modes::). Buffers not visiting files are usually used for making notes -to yourself. If you try to save one, you are asked for the file name -to use. +Modes::.). Buffers not visiting files are usually used for making +notes to yourself. If you try to save one, you are asked for the file +name to use. The function `switch-to-buffer-other-frame' is similar to `switch-to-buffer' except that it creates a new frame in which to @@ -220,7 +220,7 @@ Listing Existing Buffers in the list shows one buffer's name, major mode, and visited file. A `*' at the beginning of a line indicates the buffer has been "modified". If several buffers are modified, it may be time to save -some with `C-x s' (*note Saving::). A `%' indicates a read-only +some with `C-x s' (*note Saving::.). A `%' indicates a read-only buffer. A `.' marks the selected buffer. Here is an example of a buffer list: @@ -277,7 +277,7 @@ you specify a name that is used by a different buffer, an error is signalled and renaming is not done. `M-x view-buffer' is similar to `M-x view-file' (*note Misc File -Ops::), but it examines an already existing Emacs buffer. View mode +Ops::.), but it examines an already existing Emacs buffer. View mode provides convenient commands for scrolling through the buffer but not for changing it. When you exit View mode, the resulting value of point remains in effect. @@ -560,7 +560,7 @@ command selects a window on the next or previous frame instead of wrapping around to the top or bottom of the current frame, when there are no more windows. - The usual scrolling commands (*note Display::) apply to the selected + The usual scrolling commands (*note Display::.) apply to the selected window only. `M-C-v' (`scroll-other-window') scrolls the window that `C-x o' would select. Like `C-v', it takes positive and negative arguments. @@ -604,12 +604,12 @@ buffer to select. `C-x 4 m' Start composing a mail message in another window. This runs `mail-other-window', and its same-window version is `C-x m' (*note - Sending Mail::). + Sending Mail::.). `C-x 4 .' Find a tag in the current tag table in another window. This runs `find-tag-other-window', the multiple-window variant of `M-.' - (*note Tags::). + (*note Tags::.). If the variable `display-buffer-function' is non-`nil', its value is the function to call to handle `display-buffer'. It receives two @@ -756,7 +756,7 @@ defaults. The language environment really represents a choice of preferred script (more or less) rather that a choice of language. The language environment controls which coding systems to recognize -when reading text (*note Recognize Coding::). This applies to files, +when reading text (*note Recognize Coding::.). This applies to files, incoming mail, netnews, and any other text you read into XEmacs. It may also specify the default coding system to use when you create a file. Each language environment also specifies a default input method. @@ -949,12 +949,12 @@ about particular coding systems. You can specify a coding system name as argument; alternatively, with an empty argument, it describes the coding systems currently selected for various purposes, both in the current buffer and as the defaults, and the priority list for -recognizing coding systems (*note Recognize Coding::). +recognizing coding systems (*note Recognize Coding::.). To display a list of all the supported coding systems, type `M-x list-coding-systems'. The list gives information about each coding system, including the letter that stands for it in the mode line (*note -Mode Line::). +Mode Line::.). Each of the coding systems that appear in this list--except for `binary', which means no conversion of any kind--specifies how and @@ -1024,7 +1024,7 @@ finds a coding system that fits the data. Then it converts the file contents assuming that they are represented in this coding system. The priority list of coding systems depends on the selected language -environment (*note Language Environments::). For example, if you use +environment (*note Language Environments::.). For example, if you use French, you probably want XEmacs to prefer Latin-1 to Latin-2; if you use Czech, you probably want Latin-2 to be preferred. This is one of the reasons to specify a language environment. @@ -1051,7 +1051,7 @@ third argument says which coding system to use for these files. You can specify the coding system for a particular file using the `-*-...-*-' construct at the beginning of a file, or a local variables -list at the end (*note File Variables::). You do this by defining a +list at the end (*note File Variables::.). You do this by defining a value for the "variable" named `coding'. XEmacs does not really have a variable `coding'; instead of setting a variable, it uses the specified coding system for the file. For example, `-*-mode: C; coding: @@ -1064,5 +1064,5 @@ system, by default, for operations that write from this buffer into a file. This includes the commands `save-buffer' and `write-region'. If you want to write files from this buffer using a different coding system, you can specify a different coding system for the buffer using -`set-buffer-file-coding-system' (*note Specify Coding::). +`set-buffer-file-coding-system' (*note Specify Coding::.). diff --git a/info/xemacs.info-9 b/info/xemacs.info-9 index 29af4a3..dc22b94 100644 --- a/info/xemacs.info-9 +++ b/info/xemacs.info-9 @@ -1,5 +1,5 @@ -This is ../info/xemacs.info, produced by makeinfo version 3.12s from -xemacs/xemacs.texi. +This is Info file ../info/xemacs.info, produced by Makeinfo version +1.68 from the input file xemacs/xemacs.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -66,7 +66,7 @@ file is saved. the file. First use the command `C-x c' (`universal-coding-system-argument'); this command uses the minibuffer to read a coding system name. After you exit the minibuffer, the -specified coding system is used for _the immediately following command_. +specified coding system is used for *the immediately following command*. So if the immediately following command is `C-x C-f', for example, it reads the file using that coding system (and records the coding @@ -167,9 +167,9 @@ languages. Text mode, Nroff mode, TeX mode, and Outline mode are for editing English text. The remaining major modes are not intended for use on users' files; they are used in buffers created by Emacs for specific purposes and include Dired mode for buffers made by Dired -(*note Dired::), Mail mode for buffers made by `C-x m' (*note Sending -Mail::), and Shell mode for buffers used for communicating with an -inferior shell process (*note Interactive Shell::). +(*note Dired::.), Mail mode for buffers made by `C-x m' (*note Sending +Mail::.), and Shell mode for buffers used for communicating with an +inferior shell process (*note Interactive Shell::.). Most programming language major modes specify that only blank lines separate paragraphs. This is so that the paragraph commands remain @@ -472,15 +472,15 @@ Text Mode edit files of text in a human language. Invoke `M-x text-mode' to enter Text mode. In Text mode, runs the function `tab-to-tab-stop', which allows you to use arbitrary tab stops set with -`M-x edit-tab-stops' (*note Tab Stops::). Features concerned with +`M-x edit-tab-stops' (*note Tab Stops::.). Features concerned with comments in programs are turned off unless they are explicitly invoked. The syntax table is changed so that periods are not considered part of a word, while apostrophes, backspaces and underlines are. A similar variant mode is Indented Text mode, intended for editing text in which most lines are indented. This mode defines to run -`indent-relative' (*note Indentation::), and makes Auto Fill indent the -lines it creates. As a result, a line made by Auto Filling, or by +`indent-relative' (*note Indentation::.), and makes Auto Fill indent +the lines it creates. As a result, a line made by Auto Filling, or by , is normally indented just like the previous line. Use `M-x indented-text-mode' to select this mode. @@ -537,7 +537,7 @@ commands that are not available in Text mode: The other feature of Nroff mode is Electric Nroff newline mode. This is a minor mode that you can turn on or off with `M-x -electric-nroff-mode' (*note Minor Modes::). When the mode is on and +electric-nroff-mode' (*note Minor Modes::.). When the mode is on and you use to end a line containing an nroff command that opens a kind of grouping, Emacs automatically inserts the matching nroff command to close that grouping on the following line. For example, if @@ -666,7 +666,7 @@ paragraph that contains a mismatch, it displays point at the beginning of the paragraph for a few seconds and pushes a mark at that spot. Scanning continues until the whole buffer has been checked or until you type another key. The positions of the last several paragraphs with -mismatches can be found in the mark ring (*note Mark Ring::). +mismatches can be found in the mark ring (*note Mark Ring::.). Note that square brackets and parentheses, not just braces, are matched in TeX mode. This is wrong if you want to check TeX syntax. @@ -721,7 +721,7 @@ being printed. The console output from TeX, including any error messages, appears in a buffer called `*TeX-shell*'. If TeX gets an error, you can switch to this buffer and feed it input (this works as in Shell mode; *note -Interactive Shell::). Without switching to this buffer, you can scroll +Interactive Shell::.). Without switching to this buffer, you can scroll it so that its last line is visible by typing `C-c C-l'. Type `C-c C-k' (`tex-kill-job') to kill the TeX process if you see diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 08d113c..781b26c 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -7,6 +7,26 @@ * update-elc.sh (ignore_dirs): Ignore lisp/utf-2000 subdirectory. +1999-12-31 Martin Buchholz + + * XEmacs 21.2.26 is released. + +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 5b336c9..0abaae8 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1207,6 +1207,75 @@ * files.el (insert-file-contents-literally): Treat file as binary; call file-name-handlers. [sync with Emacs 20.3.10] +1999-12-31 Martin Buchholz + + * XEmacs 21.2.26 is released. + +1999-12-28 Andy Piper + + * wid-edit.el (widget-push-button-value-create): The gui cache + does not agree with native widgets which can only be displayed + once per window. The reasons for caching are diminished now that + we don't hog resources when creating buttons. + (widget-push-button-cache) deleted. + +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. @@ -1237,7 +1306,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 @@ -1408,7 +1477,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. @@ -3144,7 +3213,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 @@ -3342,7 +3411,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 @@ -3417,7 +3486,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). @@ -3473,7 +3542,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. @@ -3862,7 +3931,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. @@ -4702,7 +4771,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 @@ -4789,7 +4858,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 @@ -5224,7 +5293,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 f5d25be..19ae8b1 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -2216,19 +2216,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/lisp/wid-edit.el b/lisp/wid-edit.el index b8eb856..64a3979 100644 --- a/lisp/wid-edit.el +++ b/lisp/wid-edit.el @@ -1898,9 +1898,6 @@ If END is omitted, it defaults to the length of LIST." :group 'widgets :type 'boolean) -;; Cache already created GUI objects. -(defvar widget-push-button-cache nil) - (defcustom widget-push-button-prefix "[" "String used as prefix for buttons." :type 'string @@ -1925,7 +1922,7 @@ If END is omitted, it defaults to the length of LIST." (tag-glyph (widget-get widget :tag-glyph)) (text (concat widget-push-button-prefix tag widget-push-button-suffix)) - (gui-glyphs (lax-plist-get widget-push-button-cache tag))) + gui) (cond (tag-glyph (widget-glyph-insert widget text tag-glyph)) ;; We must check for console-on-window-system-p here, @@ -1933,13 +1930,10 @@ If END is omitted, it defaults to the length of LIST." ;; components for colors, and they are not known on TTYs). ((and widget-push-button-gui (console-on-window-system-p)) - (unless gui-glyphs - (let* ((gui-button-shadow-thickness 1) - (gui (make-glyph - (make-gui-button tag 'widget-gui-action widget)))) - (setq gui-glyphs gui) - (laxputf widget-push-button-cache tag gui-glyphs))) - (widget-glyph-insert-glyph widget gui-glyphs)) + (let* ((gui-button-shadow-thickness 1)) + (setq gui (make-glyph + (make-gui-button tag 'widget-gui-action widget)))) + (widget-glyph-insert-glyph widget gui)) (t (insert text))))) diff --git a/lwlib/ChangeLog b/lwlib/ChangeLog index 545f2c0..655f241 100644 --- a/lwlib/ChangeLog +++ b/lwlib/ChangeLog @@ -1,3 +1,49 @@ +1999-12-31 Martin Buchholz + + * XEmacs 21.2.26 is released. + +1999-12-29 Andy Piper + + * xlwtabs.c (TabsHighlight): use displayChildren for highlighting + not num_children. + (TabsPage): ditto. + +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..5ef2acb 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 - - - } @@ -1068,7 +1086,7 @@ TabsPage(Widget w, XEvent *event, String *params, Cardinal *num_params) Widget newtop = NULL; Widget *childP ; int idx ; - int nc = tw->composite.num_children ; + int nc = tw->tabs.displayChildren ; if( nc <= 0 ) return ; @@ -1132,7 +1150,7 @@ TabsHighlight(Widget w, XEvent *event, String *params, Cardinal *num_params) Widget newhl = NULL; Widget *childP ; int idx ; - int nc = tw->composite.num_children ; + int nc = tw->tabs.displayChildren ; if( nc <= 0 ) return ; @@ -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..a163690 100644 --- a/man/ChangeLog +++ b/man/ChangeLog @@ -1,3 +1,33 @@ +1999-12-31 Martin Buchholz + + * XEmacs 21.2.26 is released. + +1999-12-26 Karl M. Hegbloom + + * internals/internals.texi (garbage_collect_1): Xemacs -> XEmacs + +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 +146,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 +177,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 +288,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 +427,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 +476,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 +515,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 +575,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 +766,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/internals/internals.texi b/man/internals/internals.texi index 1a85269..f738f74 100644 --- a/man/internals/internals.texi +++ b/man/internals/internals.texi @@ -4882,7 +4882,7 @@ right ones during the sweep phase, they also have to be marked manually. That is done by the function @code{mark_profiling_info} @end itemize @item -Hash tables in Xemacs belong to a kind of special objects that +Hash tables in XEmacs belong to a kind of special objects that make use of a concept often called 'weak pointers'. To make a long story short, these kind of pointers are not followed during the estimation of the live objects during garbage collection. 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..993621f 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog @@ -1,8 +1,21 @@ +1999-12-31 Martin Buchholz + + * XEmacs 21.2.26 is released. + +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 +24,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 +61,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 +73,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 +82,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 +101,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 +116,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 +145,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 +221,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 +272,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 +294,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 +323,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 +413,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 +436,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 5bf1d3c..2ba3d85 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1666,6 +1666,243 @@ (Vcharset_thai_tis620): Likewise. (Vcharset_katakana_jisx0201): Likewise. +1999-12-31 Martin Buchholz + + * XEmacs 21.2.26 is released. + +1999-12-31 Andy Piper + + * glyphs-x.c (x_widget_instantiate): Avoid X errors calling + XMapWindow() on a NULL pointer X window. + +1999-12-31 Martin Buchholz + + * data.c (indirect_function): Use signal_void_function_error(). + + * lisp.h: Modify prototypes for signal_*(). Add SUBR_FUNCTION macro. + + * eval.c (PRIMITIVE_FUNCALL): Optimize. + (signal_void_function_error): return result of Fsignal(). + (signal_invalid_function_error): return result of Fsignal(). + (signal_wrong_number_of_arguments_error): return result of Fsignal(). + (signal_malformed_list_error): Add DOESNT_RETURN. + (signal_malformed_property_list_error): Add DOESNT_RETURN. + (signal_circular_list_error): Add DOESNT_RETURN. + (signal_circular_property_list_error): Add DOESNT_RETURN. + (Feval): Use returned results of signal_*(). Avoids a crash! + (Ffuncall): Use returned results of signal_*(). Avoids the crash: + (setq debug-on-error t) (funcall 'foo) kbd{r42} kbd{RET} + - Only check for fun_nargs < subr_min_args if fun_nargs != max_args. + (function_argcount): Use signal_invalid_function_error(). + (funcall_lambda): Use signal_wrong_number_of_arguments_error(). + Use signal_invalid_function_error(). + +1999-12-28 Andy Piper + + * debug.c: rename debug_loop elements to X_ to avoid name clashes. + + * menubar-x.c (menu_item_descriptor_to_widget_value_1): strdup + string_chars. + (menu_item_descriptor_to_widget_value_1): strdup name. + (pre_activate_callback): strdup name. + + * scrollbar-x.c (scrollbar_instance_to_widget_value): strdup name. + (x_update_scrollbar_instance_status): use free_widget_value_tree. + + * dialog-x.c (maybe_run_dbox_text_callback): strdup name. use + free_widget_value_tree. + (dbox_descriptor_to_widget_value): ditto. + + * gui-x.c (widget_value_unwind): use free_widget_value_tree. + (gui_items_to_widget_values_1): ditto. + (gui_items_to_widget_values): ditto. + (free_popup_widget_value_tree): free name. + +1999-12-27 Andy Piper + + * nt.c (fstat): use get_osfhandle rather than the handle + directly. From Fabrice Popineau. + + * process-nt.c (nt_open_network_stream): take types into account + when warning. From Fabrice Popineau. + +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. @@ -1695,7 +1932,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. @@ -2214,7 +2451,7 @@ * esd.c: New file -1999-10-24 Adrian Aichner +1999-10-24 Adrian Aichner * lisp.h (Dynarr_declare): Fix boo-boo. @@ -5871,7 +6108,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. @@ -8366,7 +8603,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 02fe840..e39bf5c 100644 --- a/src/buffer.h +++ b/src/buffer.h @@ -1115,7 +1115,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 ade27a5..d5f53c9 100644 --- a/src/config.h.in +++ b/src/config.h.in @@ -503,6 +503,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. */ @@ -554,15 +564,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/data.c b/src/data.c index a761561..12d4afd 100644 --- a/src/data.c +++ b/src/data.c @@ -660,7 +660,7 @@ indirect_function (Lisp_Object object, int errorp) } if (errorp && UNBOUNDP (hare)) - signal_void_function_error (object); + return signal_void_function_error (object); return hare; } 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/debug.c b/src/debug.c index 3e50d0a..fd0a695 100644 --- a/src/debug.c +++ b/src/debug.c @@ -45,37 +45,37 @@ struct debug_classes active_debug_classes; enum debug_loop { - ADD, - DELETE, - LIST, - ACTIVE, - INIT, - VALIDATE, - TYPE, - SETTYPE + X_ADD, + X_DELETE, + X_LIST, + X_ACTIVE, + X_INIT, + X_VALIDATE, + X_TYPE, + X_SETTYPE }; static Lisp_Object xemacs_debug_loop (enum debug_loop op, Lisp_Object class, Lisp_Object type) { - int flag = (op == ADD) ? 1 : 0; + int flag = (op == X_ADD) ? 1 : 0; Lisp_Object retval = Qnil; #define FROB(item) \ - if (op == LIST || op == ACTIVE || op == INIT || EQ (class, Q##item)) \ + if (op == X_LIST || op == X_ACTIVE || op == X_INIT || EQ (class, Q##item)) \ { \ - if (op == ADD || op == DELETE || op == INIT) \ + if (op == X_ADD || op == X_DELETE || op == X_INIT) \ active_debug_classes.item = flag; \ - else if (op == LIST \ - || (op == ACTIVE && active_debug_classes.item)) \ + else if (op == X_LIST \ + || (op == X_ACTIVE && active_debug_classes.item)) \ retval = Fcons (Q##item, retval); \ - else if (op == VALIDATE) \ + else if (op == X_VALIDATE) \ return Qt; \ - else if (op == SETTYPE) \ + else if (op == X_SETTYPE) \ active_debug_classes.types_of_##item = XINT (type); \ - else if (op == TYPE) \ + else if (op == X_TYPE) \ retval = make_int (active_debug_classes.types_of_##item); \ - if (op == INIT) active_debug_classes.types_of_##item = VALBITS; \ + if (op == X_INIT) active_debug_classes.types_of_##item = VALBITS; \ } FROB (redisplay); @@ -96,12 +96,12 @@ Add a debug class to the list of active classes. */ (class)) { - if (NILP (xemacs_debug_loop (VALIDATE, class, Qnil))) + if (NILP (xemacs_debug_loop (X_VALIDATE, class, Qnil))) error ("No such debug class exists"); else - xemacs_debug_loop (ADD, class, Qnil); + xemacs_debug_loop (X_ADD, class, Qnil); - return (xemacs_debug_loop (ACTIVE, Qnil, Qnil)); + return (xemacs_debug_loop (X_ACTIVE, Qnil, Qnil)); } DEFUN ("delete-debug-class-to-check", Fdelete_debug_class_to_check, 1, 1, 0, /* @@ -109,12 +109,12 @@ Delete a debug class from the list of active classes. */ (class)) { - if (NILP (xemacs_debug_loop (VALIDATE, class, Qnil))) + if (NILP (xemacs_debug_loop (X_VALIDATE, class, Qnil))) error ("No such debug class exists"); else - xemacs_debug_loop (DELETE, class, Qnil); + xemacs_debug_loop (X_DELETE, class, Qnil); - return (xemacs_debug_loop (ACTIVE, Qnil, Qnil)); + return (xemacs_debug_loop (X_ACTIVE, Qnil, Qnil)); } DEFUN ("debug-classes-being-checked", Fdebug_classes_being_checked, 0, 0, 0, /* @@ -122,7 +122,7 @@ Return a list of active debug classes. */ ()) { - return (xemacs_debug_loop (ACTIVE, Qnil, Qnil)); + return (xemacs_debug_loop (X_ACTIVE, Qnil, Qnil)); } DEFUN ("debug-classes-list", Fdebug_classes_list, 0, 0, 0, /* @@ -130,7 +130,7 @@ Return a list of all defined debug classes. */ ()) { - return (xemacs_debug_loop (LIST, Qnil, Qnil)); + return (xemacs_debug_loop (X_LIST, Qnil, Qnil)); } DEFUN ("set-debug-classes-to-check", Fset_debug_classes_to_check, 1, 1, 0, /* @@ -147,14 +147,14 @@ CLASSES should be a list of debug classes. valid, reject the entire list without doing anything. */ LIST_LOOP (rest, classes ) { - if (NILP (xemacs_debug_loop (VALIDATE, XCAR (rest), Qnil))) + if (NILP (xemacs_debug_loop (X_VALIDATE, XCAR (rest), Qnil))) error ("Invalid object in class list"); } LIST_LOOP (rest, classes) Fadd_debug_class_to_check (XCAR (rest)); - return (xemacs_debug_loop (ACTIVE, Qnil, Qnil)); + return (xemacs_debug_loop (X_ACTIVE, Qnil, Qnil)); } DEFUN ("set-debug-class-types-to-check", Fset_debug_class_types_to_check, 2, 2, 0, /* @@ -165,12 +165,12 @@ Lists of defined types and their values are located in the source code. (class, type)) { CHECK_INT (type); - if (NILP (xemacs_debug_loop (VALIDATE, class, Qnil))) + if (NILP (xemacs_debug_loop (X_VALIDATE, class, Qnil))) error ("Invalid debug class"); - xemacs_debug_loop (SETTYPE, class, type); + xemacs_debug_loop (X_SETTYPE, class, type); - return (xemacs_debug_loop (TYPE, class, Qnil)); + return (xemacs_debug_loop (X_TYPE, class, Qnil)); } DEFUN ("debug-types-being-checked", Fdebug_types_being_checked, 1, 1, 0, /* @@ -178,10 +178,10 @@ For the given CLASS, return the associated type value. */ (class)) { - if (NILP (xemacs_debug_loop (VALIDATE, class, Qnil))) + if (NILP (xemacs_debug_loop (X_VALIDATE, class, Qnil))) error ("Invalid debug class"); - return (xemacs_debug_loop (TYPE, class, Qnil)); + return (xemacs_debug_loop (X_TYPE, class, Qnil)); } void @@ -210,7 +210,7 @@ reinit_vars_of_debug (void) the flags should be set here. All functions called by this function are "allowed" according to emacs.c. */ - xemacs_debug_loop (INIT, Qnil, Qnil); + xemacs_debug_loop (X_INIT, Qnil, Qnil); } void diff --git a/src/dialog-x.c b/src/dialog-x.c index a61eee8..dc3ee71 100644 --- a/src/dialog-x.c +++ b/src/dialog-x.c @@ -44,7 +44,7 @@ maybe_run_dbox_text_callback (LWLIB_ID id) widget_value *wv; int got_some; wv = xmalloc_widget_value (); - wv->name = (char *) "value"; + wv->name = xstrdup ("value"); got_some = lw_get_some_values (id, wv); if (got_some) { @@ -56,10 +56,12 @@ maybe_run_dbox_text_callback (LWLIB_ID id) void *tmp = LISP_TO_VOID (list2 (text_field_callback, build_string (text_field_value))); popup_selection_callback (0, id, (XtPointer) tmp); - xfree (text_field_value); } } - free_widget_value (wv); + /* This code tried to optimize, newing/freeing. This is generally + unsafe so we will alwats strdup and always use + free_widget_value_tree. */ + free_widget_value_tree (wv); } static void @@ -144,7 +146,7 @@ dbox_descriptor_to_widget_value (Lisp_Object desc) wv_closure = make_opaque_ptr (kids); record_unwind_protect (widget_value_unwind, wv_closure); - prev->name = (char *) "message"; + prev->name = xstrdup ("message"); prev->value = xstrdup (name); prev->enabled = 1; @@ -166,7 +168,7 @@ dbox_descriptor_to_widget_value (Lisp_Object desc) gui_item = gui_parse_item_keywords (button); if (!button_item_to_widget_value (gui_item, wv, allow_text_p, 1)) { - free_widget_value (wv); + free_widget_value_tree (wv); continue; } @@ -178,8 +180,9 @@ dbox_descriptor_to_widget_value (Lisp_Object desc) else /* it's a button */ { allow_text_p = 0; /* only allow text field at the front */ - wv->value = xstrdup (wv->name); /* what a mess... */ - wv->name = (char *) button_names [n]; + if (wv->value) xfree (wv->value); + wv->value = wv->name; /* what a mess... */ + wv->name = xstrdup (button_names [n]); if (partition_seen) rbuttons++; @@ -202,7 +205,7 @@ dbox_descriptor_to_widget_value (Lisp_Object desc) widget_value *dbox; sprintf (tmp_dbox_name, "%c%dBR%d", type, lbuttons + rbuttons, rbuttons); dbox = xmalloc_widget_value (); - dbox->name = tmp_dbox_name; + dbox->name = xstrdup (tmp_dbox_name); dbox->contents = kids; /* No more need to free the half-filled-in structures. */ 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/eval.c b/src/eval.c index 6ace437..1992302 100644 --- a/src/eval.c +++ b/src/eval.c @@ -77,8 +77,7 @@ struct backtrace *backtrace_list; Lisp_Object *PF_av = (av); \ switch (ac) \ { \ - default: abort(); \ - case 0: rv = PRIMITIVE_FUNCALL_1(PF_fn, PF_av, 0); break; \ + default:rv = PRIMITIVE_FUNCALL_1(PF_fn, PF_av, 0); break; \ case 1: rv = PRIMITIVE_FUNCALL_1(PF_fn, PF_av, 1); break; \ case 2: rv = PRIMITIVE_FUNCALL_1(PF_fn, PF_av, 2); break; \ case 3: rv = PRIMITIVE_FUNCALL_1(PF_fn, PF_av, 3); break; \ @@ -2471,47 +2470,48 @@ signal_quit (void) /* Used in core lisp functions for efficiency */ -void +Lisp_Object signal_void_function_error (Lisp_Object function) { - Fsignal (Qvoid_function, list1 (function)); + return Fsignal (Qvoid_function, list1 (function)); } -static void +Lisp_Object signal_invalid_function_error (Lisp_Object function) { - Fsignal (Qinvalid_function, list1 (function)); + return Fsignal (Qinvalid_function, list1 (function)); } -static void +Lisp_Object signal_wrong_number_of_arguments_error (Lisp_Object function, int nargs) { - Fsignal (Qwrong_number_of_arguments, list2 (function, make_int (nargs))); + return Fsignal (Qwrong_number_of_arguments, + list2 (function, make_int (nargs))); } /* Used in list traversal macros for efficiency. */ -void +DOESNT_RETURN signal_malformed_list_error (Lisp_Object list) { - Fsignal (Qmalformed_list, list1 (list)); + signal_error (Qmalformed_list, list1 (list)); } -void +DOESNT_RETURN signal_malformed_property_list_error (Lisp_Object list) { - Fsignal (Qmalformed_property_list, list1 (list)); + signal_error (Qmalformed_property_list, list1 (list)); } -void +DOESNT_RETURN signal_circular_list_error (Lisp_Object list) { - Fsignal (Qcircular_list, list1 (list)); + signal_error (Qcircular_list, list1 (list)); } -void +DOESNT_RETURN signal_circular_property_list_error (Lisp_Object list) { - Fsignal (Qcircular_property_list, list1 (list)); + signal_error (Qcircular_property_list, list1 (list)); } /************************************************************************/ @@ -3006,7 +3006,7 @@ Evaluate FORM and return its value. else { wrong_number_of_arguments: - signal_wrong_number_of_arguments_error (fun, nargs); + val = signal_wrong_number_of_arguments_error (fun, nargs); } } else if (COMPILED_FUNCTIONP (fun)) @@ -3094,7 +3094,7 @@ Evaluate FORM and return its value. else /* ! (SUBRP (fun) || COMPILED_FUNCTIONP (fun) || CONSP (fun)) */ { invalid_function: - signal_invalid_function_error (fun); + val = signal_invalid_function_error (fun); } lisp_eval_depth--; @@ -3169,14 +3169,15 @@ Thus, (funcall 'cons 'x 'y) returns (x . y). int max_args = subr->max_args; Lisp_Object spacious_args[SUBR_MAX_ARGS]; - if (fun_nargs < subr->min_args) - goto wrong_number_of_arguments; - if (fun_nargs == max_args) /* Optimize for the common case */ { funcall_subr: FUNCALL_SUBR (val, subr, fun_args, max_args); } + else if (fun_nargs < subr->min_args) + { + goto wrong_number_of_arguments; + } else if (fun_nargs < max_args) { Lisp_Object *p = spacious_args; @@ -3192,8 +3193,7 @@ Thus, (funcall 'cons 'x 'y) returns (x . y). } else if (max_args == MANY) { - val = ((Lisp_Object (*) (int, Lisp_Object *)) subr_function (subr)) - (fun_nargs, fun_args); + val = SUBR_FUNCTION (subr, MANY) (fun_nargs, fun_args); } else if (max_args == UNEVALLED) /* Can't funcall a special form */ { @@ -3202,7 +3202,7 @@ Thus, (funcall 'cons 'x 'y) returns (x . y). else { wrong_number_of_arguments: - signal_wrong_number_of_arguments_error (fun, fun_nargs); + val = signal_wrong_number_of_arguments_error (fun, fun_nargs); } } else if (COMPILED_FUNCTIONP (fun)) @@ -3229,12 +3229,12 @@ Thus, (funcall 'cons 'x 'y) returns (x . y). } else if (UNBOUNDP (fun)) { - signal_void_function_error (args[0]); + val = signal_void_function_error (args[0]); } else { invalid_function: - signal_invalid_function_error (fun); + val = signal_invalid_function_error (fun); } lisp_eval_depth--; @@ -3310,7 +3310,7 @@ function_argcount (Lisp_Object function, int function_min_args_p) else { invalid_function: - return Fsignal (Qinvalid_function, list1 (function)); + return signal_invalid_function_error (function); } { @@ -3497,10 +3497,10 @@ funcall_lambda (Lisp_Object fun, int nargs, Lisp_Object args[]) return unbind_to (speccount, Fprogn (body)); wrong_number_of_arguments: - return Fsignal (Qwrong_number_of_arguments, list2 (fun, make_int (nargs))); + return signal_wrong_number_of_arguments_error (fun, nargs); invalid_function: - return Fsignal (Qinvalid_function, list1 (fun)); + return signal_invalid_function_error (fun); } 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..b162822 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; @@ -2469,7 +2465,7 @@ x_widget_instantiate (Lisp_Object image_instance, Lisp_Object instantiator, XtSetArg (al [ac], XtNy, &IMAGE_INSTANCE_X_WIDGET_YOFFSET (ii)); ac++; XtGetValues (FRAME_X_TEXT_WIDGET (f), al, ac); - XtMapWidget (wid); + XtSetMappedWhenManaged (wid, TRUE); free_widget_value_tree (wv); } @@ -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 4a47fd2..e099355 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/gui-x.c b/src/gui-x.c index 9714d02..7cb4f92 100644 --- a/src/gui-x.c +++ b/src/gui-x.c @@ -143,7 +143,7 @@ widget_value_unwind (Lisp_Object closure) widget_value *wv = (widget_value *) get_opaque_ptr (closure); free_opaque_ptr (closure); if (wv) - free_widget_value (wv); + free_widget_value_tree (wv); return Qnil; } @@ -186,6 +186,7 @@ free_popup_widget_value_tree (widget_value *wv) if (! wv) return; if (wv->key) xfree (wv->key); if (wv->value) xfree (wv->value); + if (wv->name) xfree (wv->name); wv->name = wv->value = wv->key = (char *) 0xDEADBEEF; @@ -469,7 +470,7 @@ gui_items_to_widget_values_1 (Lisp_Object items, widget_value* parent, prev->next = wv; if (!button_item_to_widget_value (items, wv, 0, 1)) { - free_widget_value (wv); + free_widget_value_tree (wv); if (parent) parent->contents = 0; else @@ -546,7 +547,7 @@ gui_items_to_widget_values (Lisp_Object items) control = control->contents; tmp->next = 0; tmp->contents = 0; - free_widget_value (tmp); + free_widget_value_tree (tmp); /* No more need to free the half-filled-in structures. */ set_opaque_ptr (wv_closure, 0); 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 8580240..85da011 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -936,7 +936,7 @@ TRUE_LIST_P (Lisp_Object object) #define CHECK_TRUE_LIST(list) do { \ Lisp_Object CTL_list = (list); \ Lisp_Object CTL_hare, CTL_tortoise; \ - EMACS_INT CTL_len; \ + EMACS_INT CTL_len; \ \ for (CTL_hare = CTL_tortoise = CTL_list, CTL_len = 0; \ CONSP (CTL_hare); \ @@ -1173,8 +1173,10 @@ DECLARE_LRECORD (subr, Lisp_Subr); #define CHECK_SUBR(x) CHECK_RECORD (x, subr) #define CONCHECK_SUBR(x) CONCHECK_RECORD (x, subr) -#define subr_function(subr) (subr)->subr_fn -#define subr_name(subr) (subr)->name +#define subr_function(subr) ((subr)->subr_fn) +#define SUBR_FUNCTION(subr,max_args) \ + ((Lisp_Object (*) (EXFUN_##max_args)) (subr)->subr_fn) +#define subr_name(subr) ((subr)->name) /*********** marker ***********/ @@ -2195,11 +2197,15 @@ Lisp_Object signal_simple_continuable_error_2 (CONST char *, Lisp_Object maybe_signal_simple_continuable_error_2 (CONST char *, Lisp_Object, Lisp_Object, Lisp_Object, Error_behavior); -void signal_malformed_list_error (Lisp_Object); -void signal_malformed_property_list_error (Lisp_Object); -void signal_circular_list_error (Lisp_Object); -void signal_circular_property_list_error (Lisp_Object); -void signal_void_function_error (Lisp_Object); +DECLARE_DOESNT_RETURN (signal_malformed_list_error (Lisp_Object)); +DECLARE_DOESNT_RETURN (signal_malformed_property_list_error (Lisp_Object)); +DECLARE_DOESNT_RETURN (signal_circular_list_error (Lisp_Object)); +DECLARE_DOESNT_RETURN (signal_circular_property_list_error (Lisp_Object)); + +Lisp_Object signal_void_function_error (Lisp_Object); +Lisp_Object signal_invalid_function_error (Lisp_Object); +Lisp_Object signal_wrong_number_of_arguments_error (Lisp_Object, int); + Lisp_Object run_hook_with_args_in_buffer (struct buffer *, int, Lisp_Object *, enum run_hooks_condition); Lisp_Object run_hook_with_args (int, Lisp_Object *, enum run_hooks_condition); @@ -2890,7 +2896,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/menubar-x.c b/src/menubar-x.c index fecb4a7..c15e271 100644 --- a/src/menubar-x.c +++ b/src/menubar-x.c @@ -120,7 +120,7 @@ menu_item_descriptor_to_widget_value_1 (Lisp_Object desc, } else { - wv->name = string_chars; + wv->name = xstrdup (string_chars); wv->enabled = 1; /* dverna Dec. 98: command_builder_operate_menu_accelerator will manipulate the accel as a Lisp_Object if the widget has a name. @@ -157,6 +157,7 @@ menu_item_descriptor_to_widget_value_1 (Lisp_Object desc, wv->type = CASCADE_TYPE; wv->enabled = 1; wv->name = (char *) XSTRING_DATA (LISP_GETTEXT (XCAR (desc))); + wv->name = xstrdup (wv->name); accel = gui_name_accelerator (LISP_GETTEXT (XCAR (desc))); wv->accel = LISP_TO_VOID (accel); @@ -226,6 +227,7 @@ menu_item_descriptor_to_widget_value_1 (Lisp_Object desc, incr_wv->type = INCREMENTAL_TYPE; incr_wv->enabled = 1; incr_wv->name = wv->name; + incr_wv->name = xstrdup (wv->name); /* This is automatically GC protected through the call to lw_map_widget_values(); no need to worry. */ @@ -242,7 +244,7 @@ menu_item_descriptor_to_widget_value_1 (Lisp_Object desc, widget_value *title_wv = xmalloc_widget_value (); widget_value *sep_wv = xmalloc_widget_value (); title_wv->type = TEXT_TYPE; - title_wv->name = wv->name; + title_wv->name = xstrdup (wv->name); title_wv->enabled = 1; title_wv->next = sep_wv; sep_wv->type = SEPARATOR_TYPE; @@ -258,7 +260,7 @@ menu_item_descriptor_to_widget_value_1 (Lisp_Object desc, widget_value *dummy; /* Add a fake entry so the menus show up */ wv->contents = dummy = xmalloc_widget_value (); - dummy->name = "(inactive)"; + dummy->name = xstrdup ("(inactive)"); dummy->accel = LISP_TO_VOID (Qnil); dummy->enabled = 0; dummy->selected = 0; @@ -273,7 +275,7 @@ menu_item_descriptor_to_widget_value_1 (Lisp_Object desc, } else if (menubar_root_p) { - wv->name = (char *) "menubar"; + wv->name = xstrdup ("menubar"); wv->type = CASCADE_TYPE; /* Well, nothing else seems to fit and this is ignored anyway... */ } @@ -469,7 +471,7 @@ pre_activate_callback (Widget widget, LWLIB_ID id, XtPointer client_data) wv->accel = LISP_TO_VOID (Qnil); wv->contents = xmalloc_widget_value (); wv->contents->type = TEXT_TYPE; - wv->contents->name = (char *) "No menu"; + wv->contents->name = xstrdup ("No menu"); wv->contents->next = NULL; wv->contents->accel = LISP_TO_VOID (Qnil); } diff --git a/src/nt.c b/src/nt.c index 0c99c25..45e9ae5 100644 --- a/src/nt.c +++ b/src/nt.c @@ -1331,7 +1331,7 @@ fstat (int handle, struct stat *buffer) buffer->st_ctime = 0; buffer->st_mtime = 0; buffer->st_nlink = 0; - ret = GetFileInformationByHandle((HANDLE) handle, &lpFileInfo); + ret = GetFileInformationByHandle((HANDLE) _get_osfhandle(handle), &lpFileInfo); if (!ret) { return -1; 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/process-nt.c b/src/process-nt.c index 1bdc703..2afa597 100644 --- a/src/process-nt.c +++ b/src/process-nt.c @@ -1027,10 +1027,18 @@ nt_open_network_stream (Lisp_Object name, Lisp_Object host, Lisp_Object service, connect_failed: closesocket (s); - warn_when_safe(Qstream, Qwarning, - "failure to open network stream to host \"%s\" for service \"%s\"", - XSTRING_DATA (host), - XSTRING_DATA (service)); + if (INTP (service)) { + warn_when_safe(Qstream, Qwarning, + "failure to open network stream to host \"%s\" for service \"%d\"", + XSTRING_DATA (host), + (unsigned short) XINT (service)); + } + else { + warn_when_safe(Qstream, Qwarning, + "failure to open network stream to host \"%s\" for service \"%s\"", + XSTRING_DATA (host), + XSTRING_DATA (service)); + } report_file_error ("connection failed", list2 (host, name)); } 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 ea20973..156ff35 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 c5cdf34..386d2a1 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/scrollbar-x.c b/src/scrollbar-x.c index 7034321..e06f598 100644 --- a/src/scrollbar-x.c +++ b/src/scrollbar-x.c @@ -215,6 +215,7 @@ scrollbar_instance_to_widget_value (struct scrollbar_instance *instance) wv->scrollbar_data = xnew (scrollbar_values); wv->name = SCROLLBAR_X_NAME (instance); + wv->name = xstrdup (wv->name); wv->value = 0; wv->key = 0; wv->enabled = instance->scrollbar_is_active; @@ -278,9 +279,7 @@ x_update_scrollbar_instance_status (struct window *w, int active, int size, } if (!wv->scrollbar_data) abort (); - xfree (wv->scrollbar_data); - wv->scrollbar_data = 0; - free_widget_value (wv); + free_widget_value_tree (wv); } else if (managed) { 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..b4234ab 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,26 @@ +1999-12-31 Martin Buchholz + + * XEmacs 21.2.26 is released. + +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 new file mode 100644 index 0000000..fee7225 --- /dev/null +++ b/tests/automated/base64-tests.el @@ -0,0 +1,249 @@ +;; Copyright (C) 1999 Free Software Foundation, Inc. + +;; Author: Hrvoje Niksic +;; Maintainer: Hrvoje Niksic +;; Created: 1999 +;; Keywords: tests + +;; This file is part of XEmacs. + +;; XEmacs is free software; you can redistribute it and/or modify it +;; under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 2, or (at your option) +;; any later version. + +;; XEmacs is distributed in the hope that it will be useful, but +;; WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with XEmacs; see the file COPYING. If not, write to the Free +;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +;; 02111-1307, USA. + +;;; Synched up with: Not in FSF. + +;;; Commentary: + +;; Test base64 functions. +;; See test-harness.el for instructions on how to run these tests. + +(eval-when-compile + (condition-case nil + (require 'test-harness) + (file-error + (push "." load-path) + (when (and (boundp 'load-file-name) (stringp load-file-name)) + (push (file-name-directory load-file-name) load-path)) + (require 'test-harness)))) + +;; We need to test the buffer and string functions. We do it by +;; testing them in various circumstances, asserting the same result, +;; and returning that result. + +(defvar bt-test-buffer (get-buffer-create " *base64-workhorse*")) + +(defun bt-base64-encode-string (string &optional no-line-break) + (let ((string-result (base64-encode-string string no-line-break)) + length) + (with-current-buffer bt-test-buffer + ;; the whole buffer + (erase-buffer) + (insert string) + (setq length (base64-encode-region (point-min) (point-max) no-line-break)) + (Assert (eq length (- (point-max) (point-min)))) + (Assert (equal (buffer-string) string-result)) + ;; partial + (erase-buffer) + (insert "random junk........\0\0';'eqwrkw[erpqf") + (let ((p1 (point)) p2) + (insert string) + (setq p2 (point-marker)) + (insert "...more random junk.q,f3/.qrm314.r,m2typ' 2436T@W$^@$#^T@") + (setq length (base64-encode-region p1 p2 no-line-break)) + (Assert (eq length (- p2 p1))) + (Assert (equal (buffer-substring p1 p2) string-result)))) + string-result)) + +(defun bt-base64-decode-string (string) + (let ((string-result (base64-decode-string string)) + length) + (with-current-buffer bt-test-buffer + ;; the whole buffer + (erase-buffer) + (insert string) + (setq length (base64-decode-region (point-min) (point-max))) + (cond (string-result + (Assert (eq length (- (point-max) (point-min)))) + (Assert (equal (buffer-string) string-result))) + (t + (Assert (null length)) + ;; The buffer should not have been modified. + (Assert (equal (buffer-string) string)))) + ;; partial + (erase-buffer) + (insert "random junk........\0\0';'eqwrkw[erpqf") + (let ((p1 (point)) p2) + (insert string) + (setq p2 (point-marker)) + (insert "...more random junk.q,f3/.qrm314.\0\0r,m2typ' 2436T@W$^@$#T@") + (setq length (base64-decode-region p1 p2)) + (cond (string-result + (Assert (eq length (- p2 p1))) + (Assert (equal (buffer-substring p1 p2) string-result))) + (t + (Assert (null length)) + ;; The buffer should not have been modified. + (Assert (equal (buffer-substring p1 p2) string)))))) + string-result)) + +(defun bt-remove-newlines (str) + (apply #'string (delete ?\n (mapcar #'identity str)))) + +(defconst bt-allchars + (let ((str (make-string 256 ?\0))) + (dotimes (i 256) + (aset str i (int-char i))) + str)) + +(defconst bt-test-strings + `(("" "") + ("foo" "Zm9v") + ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" + "QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAx +MjM0NTY3ODk=") + (,bt-allchars + "AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1 +Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWpr +bG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6Ch +oqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX +2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/w==") + )) + +;;----------------------------------------------------- +;; Encoding base64 +;;----------------------------------------------------- + +(loop for (raw encoded) in bt-test-strings do + (Assert (equal (bt-base64-encode-string raw) encoded)) + ;; test the NO-LINE-BREAK flag + (Assert (equal (bt-base64-encode-string raw t) (bt-remove-newlines encoded)))) + +;; When Mule is around, Lisp programmers should make sure that the +;; buffer contains only characters whose `char-int' is in the [0, 256) +;; range. If this condition is not satisfied for any character, an +;; error is signaled. +(when (featurep 'mule) + ;; #### remove subtraction of 128 -- no longer needed with make-char + ;; patch! + (let* ((mule-string (format "Hrvoje Nik%ci%c" + ;; scaron == 185 in Latin 2 + (make-char 'latin-iso8859-2 (- 185 128)) + ;; cacute == 230 in Latin 2 + (make-char 'latin-iso8859-2 (- 230 128))))) + (Check-Error-Message error "Non-ascii character in base64 input" + (bt-base64-encode-string mule-string)))) + +;;----------------------------------------------------- +;; Decoding base64 +;;----------------------------------------------------- + +(loop for (raw encoded) in bt-test-strings do + (Assert (equal (bt-base64-decode-string encoded) raw)) + (Assert (equal (bt-base64-decode-string (bt-remove-newlines encoded)) raw))) + +;; Test errors +(dolist (str `("foo" "AAC" "foo\0bar" "====" "Zm=9v" ,bt-allchars)) + (Check-Error error (base64-decode-string str))) + +;; base64-decode-string should ignore non-base64 characters anywhere +;; in the string. We test this in the cheesiest manner possible, by +;; inserting non-base64 chars at the beginning, at the end, and in the +;; middle of the string. + +(defconst bt-base64-chars '(?A ?B ?C ?D ?E ?F ?G ?H ?I ?J + ;; sometimes I hate Emacs indentation. + ?K ?L ?M ?N ?O ?P ?Q ?R ?S ?T + ?U ?V ?W ?X ?Y ?Z ?a ?b ?c ?d + ?e ?f ?g ?h ?i ?j ?k ?l ?m ?n + ?o ?p ?q ?r ?s ?t ?u ?v ?w ?x + ?y ?z ?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 + ?8 ?9 ?+ ?/ ?=)) + +(defconst bt-nonbase64-chars (set-difference (mapcar #'identity bt-allchars) + bt-base64-chars)) + +(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)) + (left (substring encoded 0 middlepos)) + (right (substring encoded middlepos))) + ;; Whitespace at the beginning, end, and middle. + (let ((mangled (concat bt-nonbase64-chars left bt-nonbase64-chars right + bt-nonbase64-chars))) + (Assert (equal (bt-base64-decode-string mangled) raw))) + + ;; Whitespace between every char. + (let ((mangled (concat bt-nonbase64-chars + ;; ENCODED with bt-nonbase64-chars + ;; between every character. + (mapconcat #'char-to-string encoded + (apply #'string bt-nonbase64-chars)) + bt-nonbase64-chars))) + (Assert (equal (bt-base64-decode-string mangled) raw)))))) + ) + +;;----------------------------------------------------- +;; Mixed... +;;----------------------------------------------------- + +;; The whole point of base64 is to ensure that an arbitrary sequence +;; of bytes passes through gateway hellfire unscathed, protected by +;; the asbestos suit of base64. Here we test that +;; (base64-decode-string (base64-decode-string FOO)) equals FOO for +;; any FOO we can think of. The following stunts stress-test +;; practically all aspects of the encoding and decoding process. + +(loop for (raw ignored) in bt-test-strings do + (Assert (equal (bt-base64-decode-string + (bt-base64-encode-string raw)) + raw)) + (Assert (equal (bt-base64-decode-string + (bt-base64-decode-string + (bt-base64-encode-string + (bt-base64-encode-string raw)))) + raw)) + (Assert (equal (bt-base64-decode-string + (bt-base64-decode-string + (bt-base64-decode-string + (bt-base64-encode-string + (bt-base64-encode-string + (bt-base64-encode-string raw)))))) + raw)) + (Assert (equal (bt-base64-decode-string + (bt-base64-decode-string + (bt-base64-decode-string + (bt-base64-decode-string + (bt-base64-encode-string + (bt-base64-encode-string + (bt-base64-encode-string + (bt-base64-encode-string raw)))))))) + raw)) + (Assert (equal (bt-base64-decode-string + (bt-base64-decode-string + (bt-base64-decode-string + (bt-base64-decode-string + (bt-base64-decode-string + (bt-base64-encode-string + (bt-base64-encode-string + (bt-base64-encode-string + (bt-base64-encode-string + (bt-base64-encode-string raw)))))))))) + raw))) 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..97bafe3 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=26 +xemacs_codename="Millenium" infodock_major_version=4 infodock_minor_version=0 infodock_build_version=8 -- 1.7.10.4