diff -r -u -N xemacs-21.1.12/ChangeLog xemacs-21.1.13/ChangeLog --- xemacs-21.1.12/ChangeLog Fri Aug 4 21:31:41 2000 +++ xemacs-21.1.13/ChangeLog Sun Jan 7 15:57:57 2001 @@ -1,3 +1,59 @@ +2001-01-07 XEmacs Build Bot + + * XEmacs 21.1.13 is released + +2000-12-26 Stephen J. Turnbull + + * PROBLEMS (Running/Linux): Mandrake, use Alt for M-, color-gcc. + +1999-11-17 Isaac Hollander + + * Makefile.in: add and use TAR macro. Sometimes tar only copies + symlinks instead of the actual files + +2000-11-01 Martin Buchholz + + * configure.in: Handle alloca with Compaq C on Alpha Linux. + +2000-11-19 Vin Shelton + + * ChangeLog, etc/xemacs-ja.1, etc/xemacs.1, + info/xemacs-faq.info-1, info/xemacs-faq.info-3, lib-src/etags.c, + lib-src/ootags.c, lisp/ChangeLog.1, man/xemacs-faq.texi: + Changed mly@adoc.xerox.com to Mly@POBox.COM. + +2000-10-19 Stephen J. Turnbull + + * README.packages: Add "uninstalled package" FAQ. + + * etc/PACKAGES: Add details on os-utils contents. + +2000-09-13 Martin Buchholz + + * frame.c (next_frame_internal): + We've passed a frame if we've passed its device. + Fixes this crash: + (gdb) run -eval '(progn (make-frame nil (make-device (quote x) "polgar:0")) (next-window (minibuffer-window) t (quote visible) (second (device-list))))' +Fatal error: assertion failed, file /project/xemacs/ws/dev/src/frame.h, line 245, RECORD_TYPEP (obj, lrecord_type_frame) + +2000-08-24 Adrian Aichner + + * find-paths.el (paths-decode-directory-path): Trivial typo fix. + * simple.el (display-warning-suppressed-classes): Ditto. + +2000-08-22 Stephen J. Turnbull + + * etc/Emacs.ad (Fonts.): Fix typo and clarify. + +2000-08-22 SL Baur + + * configure.in (after_morecore_hook_exists): Don't add /usr/shlib + to link path if compiling on Alpha/Linux. + +2000-08-31 Martin Buchholz + + * configure.in: Make Balloon Help conditional on finding shape.h + 2000-08-04 XEmacs Build Bot * XEmacs 21.1.12 is released @@ -823,7 +879,7 @@ Sat Apr 24 1998 Andy Piper - * configure.in: make graphic libraries tests be dependant on a + * configure.in: make graphic libraries tests be dependent on a window system not X11 only. Fri Apr 24 19:38:19 1998 Andy Piper @@ -3560,7 +3616,7 @@ * XEmacs 20.0 beta 33 is released. * XEmacs 19.15 beta 6 is released. -Fri Dec 27 20:34:58 1996 Richard Mlynarik +Fri Dec 27 20:34:58 1996 Richard Mlynarik * etc/yow.lines: 20k of new zippy quotes. diff -r -u -N xemacs-21.1.12/INSTALL xemacs-21.1.13/INSTALL --- xemacs-21.1.12/INSTALL Fri Jul 14 20:44:34 2000 +++ xemacs-21.1.13/INSTALL Sat Dec 16 21:08:15 2000 @@ -83,11 +83,11 @@ install without any packages present at least some additional lisp packages are needed to bring XEmacs up to "normal" editor functionality. Installation and upgrading of the packages can be done -almost automatically when from inside XEmacs when it has been compiled +almost automatically from inside XEmacs when it has been compiled and installed. -More information and suggestions for which packages to install see the -file README.packages. +For more information and suggestions regarding packages to install see +the file README.packages. IMPORTANT! The file README.packages contain information vital to have a fully working XEmacs. This information was not included in this file diff -r -u -N xemacs-21.1.12/Makefile.in xemacs-21.1.13/Makefile.in --- xemacs-21.1.12/Makefile.in Mon May 1 05:18:23 2000 +++ xemacs-21.1.13/Makefile.in Sun Dec 17 22:03:32 2000 @@ -55,6 +55,7 @@ LANG = C RM = rm -f pwd = /bin/pwd +TAR = tar ## ==================== Things `configure' Might Edit ==================== @@ -424,8 +425,8 @@ -a "`(cd $${dir} && $(pwd))`" != \ "`(cd $${dest} && $(pwd))`" \ && (echo "Copying $${dir}..." ; \ - (cd $${dir} && tar -cf - . ) | \ - (cd $${dest} && umask 022 && tar -xf - );\ + (cd $${dir} && $(TAR) -cf - . ) | \ + (cd $${dest} && umask 022 && $(TAR) -xf - );\ chmod 0755 $${dest}; \ for subdir in `find $${dest} -type d ! -name RCS ! -name SCCS ! -name CVS -print` ; do \ (cd $${subdir} && $(RM) -r RCS CVS SCCS \#* *~) ; \ diff -r -u -N xemacs-21.1.12/PROBLEMS xemacs-21.1.13/PROBLEMS --- xemacs-21.1.12/PROBLEMS Wed Aug 2 21:58:57 2000 +++ xemacs-21.1.13/PROBLEMS Sat Jan 6 22:21:52 2001 @@ -1026,7 +1026,7 @@ Or you could set TERMCAP only when you set TERM--which should not happen in a non-login shell. -*** The popup menu appears at the buttom/right of my screen. +*** The popup menu appears at the bottom/right of my screen. You probably have something like the following in your ~/.Xdefaults @@ -1239,6 +1239,52 @@ ** Linux +*** Mandrake + +The Mandrake Linux distribution is attempting to comprehensively +update the user interface, and make it consistent across +applications. This is very difficult, and will occasionally cause +conflicts with applications like Emacs with their own long-established +interfaces. Known issues specific to Mandrake or especially common: + +Some versions of XEmacs distributed with Mandrake were patched to make +the Meta and Alt keysyms synonymous. These normally work as expected +in the Mandrake environment. However, custom-built XEmacsen will seem +to "inexplicably" not respect the "Alt-invokes-Meta-commands" convention. +See "I want XEmacs to use the Alt key" below. + +The color-gcc wrapper (see below) is in common use on the Mandrake +platform. + +*** I want XEmacs to use the Alt key, not the XXX key, for Meta commands + +For historical reasons, XEmacs looks for a Meta key, then an Alt key. +It binds Meta commands to the X11 modifier bit attached to the first +of these it finds. On PCs, the Windows key is often assigned the Meta +bit, but many desktop environments go to great lengths to get all apps +to use the Alt key, and reserve the Windows key to (sensibly enough) +the window manager. + +One correct way to implement this was suggested on comp.emacs.xemacs +(by Kilian Foth and in more detail by Michael Piotrowski): unmap the +Meta modifier using xmodmap or xkb, and then map the Meta/Windows key +to the Super or Hyper keysym and an appropriate mod bit. XEmacs will +not find the Meta keysym, and default to using the Alt key for Meta +keybindings. Typically few applications use the (X11) Meta modifier; +it is tedious but not too much so to teach the ones you need to use +Super instead of Meta. There may be further useful hints in the +discussion of keymapping on non-Linux platforms. + +*** The color-gcc wrapper + +This wrapper colorizes the error messages from gcc. By default XEmacs +does not interpret the escape sequences used to generate colors, +resulting in a cluttered, hard-to-read buffer. You can remove or +defeat the wrapper, or you may get good results from the ansi-color.el +library: + +http://www.geocities.com/kensanata/color-emacs.html#ansicolors + *** `C-z', or `M-x suspend-emacs' hangs instead of suspending. If you build with `gpm' support on Linux, you cannot suspend XEmacs @@ -1398,7 +1444,7 @@ launched. Forcing a static link of libc.a alone by adding /usr/lib/libc.a at the end of the link line solves this. Note that my 9.07 build of 19.14b17 and my (old) build of 19.13 both exhibit - the same behaviour. I've tried various hpux patches to no avail. If + the same behavior. I've tried various hpux patches to no avail. If this problem cannot be solved before the release date, binary kits for HP *must* be linked statically against libc, otherwise this problem will show up. (This is directed at whoever will volunteer diff -r -u -N xemacs-21.1.12/README.packages xemacs-21.1.13/README.packages --- xemacs-21.1.12/README.packages Mon Feb 7 21:54:37 2000 +++ xemacs-21.1.13/README.packages Sun Nov 19 22:25:13 2000 @@ -19,6 +19,13 @@ A. You can grab all the packages at once like you used to with old XEmacs versions, skip to the 'Sumo Tarball' section below. +Q. After installing, I want XEmacs to do `foo', but when I invoke it + (or click the toolbar button or select the menu item), nothing (or + an error) happens, and it used to work. +A. See the first FAQ; you may be missing a package that is essential to + you. You can either track it down and install it, or install the + `Sumo Tarball' (see the second FAQ). + A note of caution ----------------- diff -r -u -N xemacs-21.1.12/configure xemacs-21.1.13/configure --- xemacs-21.1.12/configure Thu Aug 3 22:49:54 2000 +++ xemacs-21.1.13/configure Sat Dec 16 21:08:15 2000 @@ -5489,7 +5489,9 @@ break; fi done - if test "$GCC" = yes -a -d /usr/shlib; then X_LIBS="$X_LIBS -L/usr/shlib" && if test "$extra_verbose" = "yes"; then echo " Appending \"-L/usr/shlib\" to \$X_LIBS"; fi; fi + case "$opsys" in + decosf*) if test "$GCC" = yes -a -d /usr/shlib; then X_LIBS="$X_LIBS -L/usr/shlib" && if test "$extra_verbose" = "yes"; then echo " Appending \"-L/usr/shlib\" to \$X_LIBS"; fi; fi ;; + esac ld_switch_x_site="$X_LIBS" @@ -5583,7 +5585,7 @@ echo "checking for X defines extracted by xmkmf" 1>&6 -echo "configure:5587: checking for X defines extracted by xmkmf" >&5 +echo "configure:5589: checking for X defines extracted by xmkmf" >&5 rm -fr conftestdir if mkdir conftestdir; then cd conftestdir @@ -5630,15 +5632,15 @@ ac_safe=`echo "X11/Intrinsic.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for X11/Intrinsic.h""... $ac_c" 1>&6 -echo "configure:5634: checking for X11/Intrinsic.h" >&5 +echo "configure:5636: 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:5642: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5644: \"$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* @@ -5662,12 +5664,12 @@ echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6 -echo "configure:5666: checking for XOpenDisplay in -lX11" >&5 +echo "configure:5668: 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:5684: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5703,12 +5705,12 @@ 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:5707: checking "$xe_msg_checking"" >&5 +echo "configure:5709: 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:5725: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5746,12 +5748,12 @@ echo $ac_n "checking for XShapeSelectInput in -lXext""... $ac_c" 1>&6 -echo "configure:5750: checking for XShapeSelectInput in -lXext" >&5 +echo "configure:5752: 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:5768: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5785,12 +5787,12 @@ echo $ac_n "checking for XtOpenDisplay in -lXt""... $ac_c" 1>&6 -echo "configure:5789: checking for XtOpenDisplay in -lXt" >&5 +echo "configure:5791: 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:5807: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5824,14 +5826,14 @@ echo $ac_n "checking the version of X11 being used""... $ac_c" 1>&6 -echo "configure:5828: checking the version of X11 being used" >&5 +echo "configure:5830: 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:5835: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:5837: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ./conftest foobar; x11_release=$? else @@ -5856,15 +5858,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5860: checking for $ac_hdr" >&5 +echo "configure:5862: 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:5868: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5870: \"$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* @@ -5895,7 +5897,7 @@ echo $ac_n "checking for XFree86""... $ac_c" 1>&6 -echo "configure:5899: checking for XFree86" >&5 +echo "configure:5901: checking for XFree86" >&5 if test -d "/usr/X386/include" -o \ -f "/etc/XF86Config" -o \ -f "/etc/X11/XF86Config" -o \ @@ -5915,12 +5917,12 @@ test -z "$with_xmu" && { echo $ac_n "checking for XmuReadBitmapDataFromFile in -lXmu""... $ac_c" 1>&6 -echo "configure:5919: checking for XmuReadBitmapDataFromFile in -lXmu" >&5 +echo "configure:5921: 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:5937: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5970,19 +5972,19 @@ echo $ac_n "checking for main in -lXbsd""... $ac_c" 1>&6 -echo "configure:5974: checking for main in -lXbsd" >&5 +echo "configure:5976: 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:5988: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6019,22 +6021,22 @@ fi if test "$with_msw" != "no"; then echo "checking for MS-Windows" 1>&6 -echo "configure:6023: checking for MS-Windows" >&5 +echo "configure:6025: checking for MS-Windows" >&5 echo $ac_n "checking for main in -lgdi32""... $ac_c" 1>&6 -echo "configure:6026: checking for main in -lgdi32" >&5 +echo "configure:6028: 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:6040: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6100,12 +6102,12 @@ fi fi cat > conftest.$ac_ext < int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; } EOF -if { (eval echo configure:6109: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:6111: \"$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 @@ -6171,6 +6173,50 @@ done fi +if test "$with_x11" = "yes"; then + ac_safe=`echo "X11/extensions/shape.h" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for X11/extensions/shape.h""... $ac_c" 1>&6 +echo "configure:6180: checking for X11/extensions/shape.h" >&5 + +cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:6188: \"$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 + + { test "$extra_verbose" = "yes" && cat << \EOF + Defining HAVE_BALLOON_HELP +EOF +cat >> confdefs.h <<\EOF +#define HAVE_BALLOON_HELP 1 +EOF +} + + extra_objs="$extra_objs balloon_help.o balloon-x.o" && if test "$extra_verbose" = "yes"; then + echo " xemacs will be linked with \"balloon_help.o balloon-x.o\"" + fi +else + echo "$ac_t""no" 1>&6 +fi + +fi + bitmapdir= case "$window_system" in @@ -6185,7 +6231,7 @@ esac echo "checking for session-management option" 1>&6 -echo "configure:6189: checking for session-management option" >&5; +echo "configure:6235: checking for session-management option" >&5; if test "$with_session" != "no"; then { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_SESSION @@ -6200,15 +6246,15 @@ 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:6204: checking for X11/Xauth.h" >&5 +echo "configure:6250: 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:6212: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6258: \"$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* @@ -6231,12 +6277,12 @@ } test -z "$with_xauth" && { echo $ac_n "checking for XauGetAuthByAddr in -lXau""... $ac_c" 1>&6 -echo "configure:6235: checking for XauGetAuthByAddr in -lXau" >&5 +echo "configure:6281: 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:6297: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6292,15 +6338,15 @@ for dir in "" "Tt/" "desktop/" ; do ac_safe=`echo "${dir}tt_c.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ${dir}tt_c.h""... $ac_c" 1>&6 -echo "configure:6296: checking for ${dir}tt_c.h" >&5 +echo "configure:6342: 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:6304: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6350: \"$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* @@ -6336,12 +6382,12 @@ xe_msg_checking="for tt_message_create in -ltt" test -n "$extra_libs" && xe_msg_checking="$xe_msg_checking using extra libs $extra_libs" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:6340: checking "$xe_msg_checking"" >&5 +echo "configure:6386: 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:6402: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6409,15 +6455,15 @@ test -z "$with_cde" && { ac_safe=`echo "Dt/Dt.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for Dt/Dt.h""... $ac_c" 1>&6 -echo "configure:6413: checking for Dt/Dt.h" >&5 +echo "configure:6459: 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:6421: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6467: \"$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* @@ -6440,12 +6486,12 @@ } test -z "$with_cde" && { echo $ac_n "checking for DtDndDragStart in -lDtSvc""... $ac_c" 1>&6 -echo "configure:6444: checking for DtDndDragStart in -lDtSvc" >&5 +echo "configure:6490: 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:6506: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6525,7 +6571,7 @@ fi echo $ac_n "checking if drag and drop API is needed""... $ac_c" 1>&6 -echo "configure:6529: checking if drag and drop API is needed" >&5 +echo "configure:6575: checking if drag and drop API is needed" >&5 if test "$with_dragndrop" != "no" ; then if test -n "$dragndrop_proto" ; then with_dragndrop=yes @@ -6546,18 +6592,18 @@ fi echo "checking for LDAP" 1>&6 -echo "configure:6550: checking for LDAP" >&5 +echo "configure:6596: 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:6553: checking for ldap.h" >&5 +echo "configure:6599: 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:6561: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6607: \"$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* @@ -6580,15 +6626,15 @@ } test -z "$with_ldap" && { ac_safe=`echo "lber.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for lber.h""... $ac_c" 1>&6 -echo "configure:6584: checking for lber.h" >&5 +echo "configure:6630: 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:6592: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6638: \"$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* @@ -6612,12 +6658,12 @@ if test "$with_ldap" != "no"; then echo $ac_n "checking for ldap_search in -lldap""... $ac_c" 1>&6 -echo "configure:6616: checking for ldap_search in -lldap" >&5 +echo "configure:6662: 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:6678: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6653,12 +6699,12 @@ xe_msg_checking="for ldap_open in -lldap" test -n "-llber" && xe_msg_checking="$xe_msg_checking using extra libs -llber" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:6657: checking "$xe_msg_checking"" >&5 +echo "configure:6703: 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:6719: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6694,12 +6740,12 @@ xe_msg_checking="for ldap_open in -lldap" test -n "-llber -lkrb" && xe_msg_checking="$xe_msg_checking using extra libs -llber -lkrb" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:6698: checking "$xe_msg_checking"" >&5 +echo "configure:6744: 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:6760: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6735,12 +6781,12 @@ xe_msg_checking="for ldap_open in -lldap" test -n "-llber -lkrb -ldes" && xe_msg_checking="$xe_msg_checking using extra libs -llber -lkrb -ldes" echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6 -echo "configure:6739: checking "$xe_msg_checking"" >&5 +echo "configure:6785: 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:6801: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6802,10 +6848,10 @@ for ac_func in ldap_set_option ldap_get_lderrno ldap_result2error ldap_parse_result do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6806: checking for $ac_func" >&5 +echo "configure:6852: 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:6878: \"$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 @@ -6860,16 +6906,16 @@ if test "$window_system" != "none"; then echo "checking for graphics libraries" 1>&6 -echo "configure:6864: checking for graphics libraries" >&5 +echo "configure:6910: checking for graphics libraries" >&5 echo $ac_n "checking for __T_9__nothrow in -lCsup""... $ac_c" 1>&6 -echo "configure:6868: checking for __T_9__nothrow in -lCsup" >&5 +echo "configure:6914: checking for __T_9__nothrow in -lCsup" >&5 ac_lib_var=`echo Csup'_'__T_9__nothrow | sed 'y%./+-%__p_%'` xe_check_libs=" -lCsup " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6930: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6904,10 +6950,10 @@ 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:6908: checking for Xpm - no older than 3.4f" >&5 +echo "configure:6954: checking for Xpm - no older than 3.4f" >&5 xe_check_libs=-lXpm cat > conftest.$ac_ext < int main(int c, char **v) { @@ -6915,7 +6961,7 @@ XpmIncludeVersion != XpmLibraryVersion() ? 1 : XpmIncludeVersion < 30406 ? 2 : 0 ;} EOF -if { (eval echo configure:6919: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:6965: \"$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 @@ -6957,17 +7003,17 @@ 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:6961: checking for \"FOR_MSW\" xpm" >&5 +echo "configure:7007: 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:7017: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* xpm_for_msw=no else @@ -7009,12 +7055,12 @@ if test "$with_png $with_tiff" != "no no"; then echo $ac_n "checking for inflate in -lc""... $ac_c" 1>&6 -echo "configure:7013: checking for inflate in -lc" >&5 +echo "configure:7059: 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:7075: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7044,12 +7090,12 @@ echo "$ac_t""no" 1>&6 echo $ac_n "checking for inflate in -lz""... $ac_c" 1>&6 -echo "configure:7048: checking for inflate in -lz" >&5 +echo "configure:7094: 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:7110: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7079,12 +7125,12 @@ echo "$ac_t""no" 1>&6 echo $ac_n "checking for inflate in -lgz""... $ac_c" 1>&6 -echo "configure:7083: checking for inflate in -lgz" >&5 +echo "configure:7129: 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:7145: \"$ac_link\") 1>&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,15 +7171,15 @@ test -z "$with_jpeg" && { ac_safe=`echo "jpeglib.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for jpeglib.h""... $ac_c" 1>&6 -echo "configure:7129: checking for jpeglib.h" >&5 +echo "configure:7175: 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:7137: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7183: \"$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* @@ -7156,12 +7202,12 @@ } test -z "$with_jpeg" && { echo $ac_n "checking for jpeg_destroy_decompress in -ljpeg""... $ac_c" 1>&6 -echo "configure:7160: checking for jpeg_destroy_decompress in -ljpeg" >&5 +echo "configure:7206: 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:7222: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7208,10 +7254,10 @@ png_problem="" test -z "$with_png" && { echo $ac_n "checking for pow""... $ac_c" 1>&6 -echo "configure:7212: checking for pow" >&5 +echo "configure:7258: checking for pow" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7284: \"$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 @@ -7255,15 +7301,15 @@ } test -z "$with_png" && { ac_safe=`echo "png.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for png.h""... $ac_c" 1>&6 -echo "configure:7259: checking for png.h" >&5 +echo "configure:7305: 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:7267: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7313: \"$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* @@ -7286,12 +7332,12 @@ } test -z "$with_png" && { echo $ac_n "checking for png_read_image in -lpng""... $ac_c" 1>&6 -echo "configure:7290: checking for png_read_image in -lpng" >&5 +echo "configure:7336: 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:7352: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7325,10 +7371,10 @@ } if test -z "$with_png"; then echo $ac_n "checking for workable png version information""... $ac_c" 1>&6 -echo "configure:7329: checking for workable png version information" >&5 +echo "configure:7375: checking for workable png version information" >&5 xe_check_libs="-lpng -lz" cat > conftest.$ac_ext < int main(int c, char **v) { @@ -7336,7 +7382,7 @@ if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING) != 0) return 1; return (PNG_LIBPNG_VER < 10002) ? 2 : 0 ;} EOF -if { (eval echo configure:7340: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:7386: \"$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 @@ -7379,15 +7425,15 @@ test -z "$with_tiff" && { ac_safe=`echo "tiffio.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for tiffio.h""... $ac_c" 1>&6 -echo "configure:7383: checking for tiffio.h" >&5 +echo "configure:7429: 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:7391: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7437: \"$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* @@ -7410,12 +7456,12 @@ } test -z "$with_tiff" && { echo $ac_n "checking for TIFFClientOpen in -ltiff""... $ac_c" 1>&6 -echo "configure:7414: checking for TIFFClientOpen in -ltiff" >&5 +echo "configure:7460: 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:7476: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7465,19 +7511,19 @@ if test "$with_x11" = "yes"; then echo "checking for X11 graphics libraries" 1>&6 -echo "configure:7469: checking for X11 graphics libraries" >&5 +echo "configure:7515: checking for X11 graphics libraries" >&5 test -z "$with_xface" && { ac_safe=`echo "compface.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for compface.h""... $ac_c" 1>&6 -echo "configure:7473: checking for compface.h" >&5 +echo "configure:7519: 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:7481: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7527: \"$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* @@ -7500,12 +7546,12 @@ } test -z "$with_xface" && { echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6 -echo "configure:7504: checking for UnGenFace in -lcompface" >&5 +echo "configure:7550: 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:7566: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7552,12 +7598,12 @@ echo $ac_n "checking for XawScrollbarSetThumb in -lXaw""... $ac_c" 1>&6 -echo "configure:7556: checking for XawScrollbarSetThumb in -lXaw" >&5 +echo "configure:7602: checking for XawScrollbarSetThumb in -lXaw" >&5 ac_lib_var=`echo Xaw'_'XawScrollbarSetThumb | sed 'y%./+-%__p_%'` xe_check_libs=" -lXaw " cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7618: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7592,15 +7638,15 @@ ac_safe=`echo "Xm/Xm.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for Xm/Xm.h""... $ac_c" 1>&6 -echo "configure:7596: checking for Xm/Xm.h" >&5 +echo "configure:7642: 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:7604: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7650: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -7617,12 +7663,12 @@ echo "$ac_t""yes" 1>&6 echo $ac_n "checking for XmStringFree in -lXm""... $ac_c" 1>&6 -echo "configure:7621: checking for XmStringFree in -lXm" >&5 +echo "configure:7667: 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:7683: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7662,9 +7708,9 @@ if test "$have_motif" = "yes"; then echo $ac_n "checking for Lesstif""... $ac_c" 1>&6 -echo "configure:7666: checking for Lesstif" >&5 +echo "configure:7712: checking for Lesstif" >&5 cat > conftest.$ac_ext < #ifdef LESSTIF_VERSION @@ -7948,7 +7994,7 @@ if test "$with_mule" = "yes" ; then echo "checking for Mule-related features" 1>&6 -echo "configure:7952: checking for Mule-related features" >&5 +echo "configure:7998: checking for Mule-related features" >&5 { test "$extra_verbose" = "yes" && cat << \EOF Defining MULE EOF @@ -7973,15 +8019,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:7977: checking for $ac_hdr" >&5 +echo "configure:8023: 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:7985: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8031: \"$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* @@ -8012,12 +8058,12 @@ echo $ac_n "checking for strerror in -lintl""... $ac_c" 1>&6 -echo "configure:8016: checking for strerror in -lintl" >&5 +echo "configure:8062: 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:8078: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8061,18 +8107,18 @@ echo "checking for Mule input methods" 1>&6 -echo "configure:8065: checking for Mule input methods" >&5 +echo "configure:8111: checking for Mule input methods" >&5 case "$with_xim" in "" | "yes" ) echo "checking for XIM" 1>&6 -echo "configure:8068: checking for XIM" >&5 +echo "configure:8114: checking for XIM" >&5 echo $ac_n "checking for XOpenIM in -lX11""... $ac_c" 1>&6 -echo "configure:8071: checking for XOpenIM in -lX11" >&5 +echo "configure:8117: 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:8133: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8107,12 +8153,12 @@ if test "$have_motif $have_lesstif" = "yes no"; then echo $ac_n "checking for XmImMbLookupString in -lXm""... $ac_c" 1>&6 -echo "configure:8111: checking for XmImMbLookupString in -lXm" >&5 +echo "configure:8157: 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:8173: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8188,15 +8234,15 @@ if test "$with_xfs" = "yes" ; then echo "checking for XFontSet" 1>&6 -echo "configure:8192: checking for XFontSet" >&5 +echo "configure:8238: checking for XFontSet" >&5 echo $ac_n "checking for XmbDrawString in -lX11""... $ac_c" 1>&6 -echo "configure:8195: checking for XmbDrawString in -lX11" >&5 +echo "configure:8241: 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:8257: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8247,15 +8293,15 @@ test "$with_wnn6" = "yes" && with_wnn=yes # wnn6 implies wnn support test -z "$with_wnn" && { ac_safe=`echo "wnn/jllib.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for wnn/jllib.h""... $ac_c" 1>&6 -echo "configure:8251: checking for wnn/jllib.h" >&5 +echo "configure:8297: 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:8259: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8305: \"$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* @@ -8280,10 +8326,10 @@ for ac_func in crypt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8284: checking for $ac_func" >&5 +echo "configure:8330: 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:8356: \"$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 @@ -8335,12 +8381,12 @@ test "$ac_cv_func_crypt" != "yes" && { echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6 -echo "configure:8339: checking for crypt in -lcrypt" >&5 +echo "configure:8385: 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:8401: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8386,12 +8432,12 @@ if test -z "$with_wnn" -o "$with_wnn" = "yes"; then echo $ac_n "checking for jl_dic_list_e in -lwnn""... $ac_c" 1>&6 -echo "configure:8390: checking for jl_dic_list_e in -lwnn" >&5 +echo "configure:8436: 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:8452: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8420,12 +8466,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for jl_dic_list_e in -lwnn4""... $ac_c" 1>&6 -echo "configure:8424: checking for jl_dic_list_e in -lwnn4" >&5 +echo "configure:8470: 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:8486: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8454,12 +8500,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for jl_dic_list_e in -lwnn6""... $ac_c" 1>&6 -echo "configure:8458: checking for jl_dic_list_e in -lwnn6" >&5 +echo "configure:8504: 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:8520: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8488,12 +8534,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for dic_list_e in -lwnn6_fromsrc""... $ac_c" 1>&6 -echo "configure:8492: checking for dic_list_e in -lwnn6_fromsrc" >&5 +echo "configure:8538: 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:8554: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8552,12 +8598,12 @@ if test "$with_wnn6" != "no"; then echo $ac_n "checking for jl_fi_dic_list in -l$libwnn""... $ac_c" 1>&6 -echo "configure:8556: checking for jl_fi_dic_list in -l$libwnn" >&5 +echo "configure:8602: 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:8618: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8603,15 +8649,15 @@ if test "$with_canna" != "no"; then ac_safe=`echo "canna/jrkanji.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for canna/jrkanji.h""... $ac_c" 1>&6 -echo "configure:8607: checking for canna/jrkanji.h" >&5 +echo "configure:8653: 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:8615: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8661: \"$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* @@ -8638,15 +8684,15 @@ c_switch_site="$c_switch_site -I/usr/local/canna/include" ac_safe=`echo "canna/jrkanji.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for canna/jrkanji.h""... $ac_c" 1>&6 -echo "configure:8642: checking for canna/jrkanji.h" >&5 +echo "configure:8688: 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:8650: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8696: \"$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* @@ -8674,15 +8720,15 @@ test -z "$with_canna" && { ac_safe=`echo "canna/RK.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for canna/RK.h""... $ac_c" 1>&6 -echo "configure:8678: checking for canna/RK.h" >&5 +echo "configure:8724: 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:8686: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8732: \"$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* @@ -8705,12 +8751,12 @@ } test -z "$with_canna" && { echo $ac_n "checking for RkBgnBun in -lRKC""... $ac_c" 1>&6 -echo "configure:8709: checking for RkBgnBun in -lRKC" >&5 +echo "configure:8755: 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:8771: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8744,12 +8790,12 @@ } test -z "$with_canna" && { echo $ac_n "checking for jrKanjiControl in -lcanna""... $ac_c" 1>&6 -echo "configure:8748: checking for jrKanjiControl in -lcanna" >&5 +echo "configure:8794: 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:8810: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8809,12 +8855,12 @@ libs_x="-lXm $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-lXm\" to \$libs_x"; fi echo $ac_n "checking for layout_object_getvalue in -li18n""... $ac_c" 1>&6 -echo "configure:8813: checking for layout_object_getvalue in -li18n" >&5 +echo "configure:8859: 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:8875: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8911,10 +8957,10 @@ for ac_func in cbrt closedir dup2 eaccess fmod fpathconf frexp ftime gethostname getpagesize gettimeofday getcwd getwd logb lrand48 matherr mkdir mktime perror poll random rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask snprintf strcasecmp strerror tzset ulimit usleep utimes waitpid vsnprintf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8915: checking for $ac_func" >&5 +echo "configure:8961: 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:8987: \"$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 @@ -8971,10 +9017,10 @@ for ac_func in grantpt unlockpt getpt ptsname do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8975: checking for $ac_func" >&5 +echo "configure:9021: 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:9047: \"$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 @@ -9038,10 +9084,10 @@ * ) for ac_func in realpath do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:9042: checking for $ac_func" >&5 +echo "configure:9088: 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:9114: \"$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 @@ -9098,16 +9144,16 @@ esac echo $ac_n "checking whether netdb declares h_errno""... $ac_c" 1>&6 -echo "configure:9102: checking whether netdb declares h_errno" >&5 +echo "configure:9148: checking whether netdb declares h_errno" >&5 cat > conftest.$ac_ext < int main() { return h_errno; ; return 0; } EOF -if { (eval echo configure:9111: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9157: \"$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 @@ -9127,16 +9173,16 @@ rm -f conftest* echo $ac_n "checking for sigsetjmp""... $ac_c" 1>&6 -echo "configure:9131: checking for sigsetjmp" >&5 +echo "configure:9177: checking for sigsetjmp" >&5 cat > conftest.$ac_ext < int main() { sigjmp_buf bar; sigsetjmp (bar, 0); ; return 0; } EOF -if { (eval echo configure:9140: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:9186: \"$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 @@ -9156,11 +9202,11 @@ rm -f conftest* echo $ac_n "checking whether localtime caches TZ""... $ac_c" 1>&6 -echo "configure:9160: checking whether localtime caches TZ" >&5 +echo "configure:9206: checking whether localtime caches TZ" >&5 if test "$ac_cv_func_tzset" = "yes"; then cat > conftest.$ac_ext < #if STDC_HEADERS @@ -9195,7 +9241,7 @@ exit (0); } EOF -if { (eval echo configure:9199: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:9245: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then emacs_cv_localtime_cache=no else @@ -9225,9 +9271,9 @@ if test "$HAVE_TIMEVAL" = "yes"; then echo $ac_n "checking whether gettimeofday accepts one or two arguments""... $ac_c" 1>&6 -echo "configure:9229: checking whether gettimeofday accepts one or two arguments" >&5 +echo "configure:9275: 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:9299: \"$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 @@ -9271,19 +9317,19 @@ echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:9275: checking for inline" >&5 +echo "configure:9321: 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:9333: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -9330,20 +9376,21 @@ fi +if test "$__DECC" != "yes"; then # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 -echo "configure:9337: checking for working alloca.h" >&5 +echo "configure:9384: 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:9347: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9394: \"$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 @@ -9367,10 +9414,10 @@ fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:9371: checking for alloca" >&5 +echo "configure:9418: checking for alloca" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9449: \"$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 @@ -9437,10 +9484,10 @@ echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:9441: checking whether alloca needs Cray hooks" >&5 +echo "configure:9488: checking whether alloca needs Cray hooks" >&5 cat > conftest.$ac_ext <&6 -echo "configure:9468: checking for $ac_func" >&5 +echo "configure:9515: 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:9541: \"$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 @@ -9520,10 +9567,10 @@ fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:9524: checking stack direction for C alloca" >&5 +echo "configure:9571: 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:9593: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_c_stack_direction=1 else @@ -9568,18 +9615,19 @@ test -n "$ALLOCA" && extra_objs="$extra_objs $ALLOCA" && if test "$extra_verbose" = "yes"; then echo " xemacs will be linked with \"$ALLOCA\"" fi +fi ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for vfork.h""... $ac_c" 1>&6 -echo "configure:9575: checking for vfork.h" >&5 +echo "configure:9623: 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:9583: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9631: \"$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* @@ -9607,10 +9655,10 @@ fi echo $ac_n "checking for working vfork""... $ac_c" 1>&6 -echo "configure:9611: checking for working vfork" >&5 +echo "configure:9659: checking for working vfork" >&5 cat > conftest.$ac_ext < @@ -9705,7 +9753,7 @@ } } EOF -if { (eval echo configure:9709: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:9757: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_vfork_works=yes else @@ -9731,10 +9779,10 @@ echo $ac_n "checking for working strcoll""... $ac_c" 1>&6 -echo "configure:9735: checking for working strcoll" >&5 +echo "configure:9783: checking for working strcoll" >&5 cat > conftest.$ac_ext < main () @@ -9744,7 +9792,7 @@ strcoll ("123", "456") >= 0); } EOF -if { (eval echo configure:9748: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:9796: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_strcoll_works=yes else @@ -9772,10 +9820,10 @@ for ac_func in getpgrp do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:9776: checking for $ac_func" >&5 +echo "configure:9824: 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:9850: \"$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 @@ -9826,10 +9874,10 @@ done echo $ac_n "checking whether getpgrp takes no argument""... $ac_c" 1>&6 -echo "configure:9830: checking whether getpgrp takes no argument" >&5 +echo "configure:9878: 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:9936: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then ac_cv_func_getpgrp_void=yes else @@ -9911,10 +9959,10 @@ echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:9915: checking for working mmap" >&5 +echo "configure:9963: checking for working mmap" >&5 case "$opsys" in ultrix* ) have_mmap=no ;; *) cat > conftest.$ac_ext < #include @@ -9947,7 +9995,7 @@ return 1; } EOF -if { (eval echo configure:9951: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:9999: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then have_mmap=yes else @@ -9982,15 +10030,15 @@ ac_safe=`echo "termios.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for termios.h""... $ac_c" 1>&6 -echo "configure:9986: checking for termios.h" >&5 +echo "configure:10034: 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:9994: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10042: \"$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* @@ -10033,15 +10081,15 @@ echo "$ac_t""no" 1>&6 ac_safe=`echo "termio.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for termio.h""... $ac_c" 1>&6 -echo "configure:10037: checking for termio.h" >&5 +echo "configure:10085: 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:10045: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10093: \"$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* @@ -10073,10 +10121,10 @@ echo $ac_n "checking for socket""... $ac_c" 1>&6 -echo "configure:10077: checking for socket" >&5 +echo "configure:10125: checking for socket" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10151: \"$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 @@ -10114,15 +10162,15 @@ echo "$ac_t""yes" 1>&6 ac_safe=`echo "netinet/in.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for netinet/in.h""... $ac_c" 1>&6 -echo "configure:10118: checking for netinet/in.h" >&5 +echo "configure:10166: 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:10126: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10174: \"$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* @@ -10139,15 +10187,15 @@ echo "$ac_t""yes" 1>&6 ac_safe=`echo "arpa/inet.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for arpa/inet.h""... $ac_c" 1>&6 -echo "configure:10143: checking for arpa/inet.h" >&5 +echo "configure:10191: 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:10151: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10199: \"$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* @@ -10172,9 +10220,9 @@ } echo $ac_n "checking "for sun_len member in struct sockaddr_un"""... $ac_c" 1>&6 -echo "configure:10176: checking "for sun_len member in struct sockaddr_un"" >&5 +echo "configure:10224: checking "for sun_len member in struct sockaddr_un"" >&5 cat > conftest.$ac_ext < @@ -10185,7 +10233,7 @@ static struct sockaddr_un x; x.sun_len = 1; ; return 0; } EOF -if { (eval echo configure:10189: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10237: \"$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 @@ -10203,9 +10251,9 @@ fi rm -f conftest* echo $ac_n "checking "for ip_mreq struct in netinet/in.h"""... $ac_c" 1>&6 -echo "configure:10207: checking "for ip_mreq struct in netinet/in.h"" >&5 +echo "configure:10255: checking "for ip_mreq struct in netinet/in.h"" >&5 cat > conftest.$ac_ext < @@ -10215,7 +10263,7 @@ static struct ip_mreq x; ; return 0; } EOF -if { (eval echo configure:10219: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10267: \"$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 @@ -10246,10 +10294,10 @@ echo $ac_n "checking for msgget""... $ac_c" 1>&6 -echo "configure:10250: checking for msgget" >&5 +echo "configure:10298: checking for msgget" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10324: \"$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 @@ -10287,15 +10335,15 @@ echo "$ac_t""yes" 1>&6 ac_safe=`echo "sys/ipc.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for sys/ipc.h""... $ac_c" 1>&6 -echo "configure:10291: checking for sys/ipc.h" >&5 +echo "configure:10339: 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:10299: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10347: \"$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* @@ -10312,15 +10360,15 @@ echo "$ac_t""yes" 1>&6 ac_safe=`echo "sys/msg.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for sys/msg.h""... $ac_c" 1>&6 -echo "configure:10316: checking for sys/msg.h" >&5 +echo "configure:10364: 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:10324: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10372: \"$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* @@ -10358,15 +10406,15 @@ ac_safe=`echo "dirent.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for dirent.h""... $ac_c" 1>&6 -echo "configure:10362: checking for dirent.h" >&5 +echo "configure:10410: 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:10370: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10418: \"$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* @@ -10393,15 +10441,15 @@ echo "$ac_t""no" 1>&6 ac_safe=`echo "sys/dir.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for sys/dir.h""... $ac_c" 1>&6 -echo "configure:10397: checking for sys/dir.h" >&5 +echo "configure:10445: 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:10405: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10453: \"$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* @@ -10434,15 +10482,15 @@ ac_safe=`echo "nlist.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for nlist.h""... $ac_c" 1>&6 -echo "configure:10438: checking for nlist.h" >&5 +echo "configure:10486: 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:10446: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10494: \"$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* @@ -10472,7 +10520,7 @@ echo "checking "for sound support"" 1>&6 -echo "configure:10476: checking "for sound support"" >&5 +echo "configure:10524: checking "for sound support"" >&5 case "$with_sound" in native | both ) with_native_sound=yes;; nas | no ) with_native_sound=no;; @@ -10483,15 +10531,15 @@ 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:10487: checking for multimedia/audio_device.h" >&5 +echo "configure:10535: 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:10495: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10543: \"$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* @@ -10539,15 +10587,15 @@ if test -z "$native_sound_lib"; then ac_safe=`echo "audio.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for audio.h""... $ac_c" 1>&6 -echo "configure:10543: checking for audio.h" >&5 +echo "configure:10591: checking for audio.h" >&5 cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10551: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10599: \"$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* @@ -10565,12 +10613,12 @@ echo $ac_n "checking for ALopenport in -laudio""... $ac_c" 1>&6 -echo "configure:10569: checking for ALopenport in -laudio" >&5 +echo "configure:10617: 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:10633: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10617,12 +10665,12 @@ if test -z "$native_sound_lib"; then echo $ac_n "checking for AOpenAudio in -lAlib""... $ac_c" 1>&6 -echo "configure:10621: checking for AOpenAudio in -lAlib" >&5 +echo "configure:10669: 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:10685: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10671,15 +10719,15 @@ for dir in "machine" "sys" "linux"; do ac_safe=`echo "${dir}/soundcard.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ${dir}/soundcard.h""... $ac_c" 1>&6 -echo "configure:10675: checking for ${dir}/soundcard.h" >&5 +echo "configure:10723: 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:10683: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10731: \"$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* @@ -10749,7 +10797,7 @@ fi libs_x="-laudio $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-laudio\" to \$libs_x"; fi cat > conftest.$ac_ext < EOF @@ -10770,7 +10818,7 @@ rm -f conftest* cat > conftest.$ac_ext < #ifdef NAS_BIG_ENDIAN @@ -10799,7 +10847,7 @@ if test "$with_tty" = "yes" ; then echo "checking for TTY-related features" 1>&6 -echo "configure:10803: checking for TTY-related features" >&5 +echo "configure:10851: checking for TTY-related features" >&5 { test "$extra_verbose" = "yes" && cat << \EOF Defining HAVE_TTY EOF @@ -10815,12 +10863,12 @@ if test -z "$with_ncurses"; then echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6 -echo "configure:10819: checking for tgetent in -lncurses" >&5 +echo "configure:10867: 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:10883: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10864,15 +10912,15 @@ ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6 -echo "configure:10868: checking for ncurses/curses.h" >&5 +echo "configure:10916: 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:10876: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10924: \"$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* @@ -10894,15 +10942,15 @@ ac_safe=`echo "ncurses/term.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ncurses/term.h""... $ac_c" 1>&6 -echo "configure:10898: checking for ncurses/term.h" >&5 +echo "configure:10946: 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:10906: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10954: \"$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* @@ -10932,15 +10980,15 @@ c_switch_site="$c_switch_site -I/usr/include/ncurses" ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6 -echo "configure:10936: checking for ncurses/curses.h" >&5 +echo "configure:10984: 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:10944: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10992: \"$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* @@ -10975,12 +11023,12 @@ for lib in curses termlib termcap; do echo $ac_n "checking for tgetent in -l$lib""... $ac_c" 1>&6 -echo "configure:10979: checking for tgetent in -l$lib" >&5 +echo "configure:11027: 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:11043: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11022,12 +11070,12 @@ else echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6 -echo "configure:11026: checking for tgetent in -lcurses" >&5 +echo "configure:11074: 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:11090: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11056,12 +11104,12 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6 -echo "configure:11060: checking for tgetent in -ltermcap" >&5 +echo "configure:11108: 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:11124: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11120,15 +11168,15 @@ test -z "$with_gpm" && { ac_safe=`echo "gpm.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for gpm.h""... $ac_c" 1>&6 -echo "configure:11124: checking for gpm.h" >&5 +echo "configure:11172: 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:11132: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11180: \"$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* @@ -11151,12 +11199,12 @@ } test -z "$with_gpm" && { echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6 -echo "configure:11155: checking for Gpm_Open in -lgpm" >&5 +echo "configure:11203: 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:11219: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11216,20 +11264,20 @@ echo "checking for database support" 1>&6 -echo "configure:11220: checking for database support" >&5 +echo "configure:11268: checking for database support" >&5 if test "$with_database_gnudbm $with_database_dbm" != "no no"; then ac_safe=`echo "ndbm.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for ndbm.h""... $ac_c" 1>&6 -echo "configure:11225: checking for ndbm.h" >&5 +echo "configure:11273: 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:11233: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11281: \"$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* @@ -11259,12 +11307,12 @@ if test "$with_database_gnudbm" != "no"; then echo $ac_n "checking for dbm_open in -lgdbm""... $ac_c" 1>&6 -echo "configure:11263: checking for dbm_open in -lgdbm" >&5 +echo "configure:11311: 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:11327: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11303,10 +11351,10 @@ if test "$with_database_dbm" != "no"; then echo $ac_n "checking for dbm_open""... $ac_c" 1>&6 -echo "configure:11307: checking for dbm_open" >&5 +echo "configure:11355: 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:11381: \"$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 @@ -11348,12 +11396,12 @@ echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6 -echo "configure:11352: checking for dbm_open in -ldbm" >&5 +echo "configure:11400: 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:11416: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11406,10 +11454,10 @@ if test "$with_database_berkdb" != "no"; then echo $ac_n "checking for Berkeley db.h""... $ac_c" 1>&6 -echo "configure:11410: checking for Berkeley db.h" >&5 +echo "configure:11458: checking for Berkeley db.h" >&5 for path in "db/db.h" "db.h"; do cat > conftest.$ac_ext < @@ -11431,7 +11479,7 @@ ; return 0; } EOF -if { (eval echo configure:11435: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11483: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* db_h_path="$path"; break else @@ -11447,9 +11495,9 @@ if test "$with_database_berkdb" != "no"; then echo $ac_n "checking for Berkeley DB version""... $ac_c" 1>&6 -echo "configure:11451: checking for Berkeley DB version" >&5 +echo "configure:11499: checking for Berkeley DB version" >&5 cat > conftest.$ac_ext < #if DB_VERSION_MAJOR > 1 @@ -11468,10 +11516,10 @@ rm -f conftest* echo $ac_n "checking for $dbfunc""... $ac_c" 1>&6 -echo "configure:11472: checking for $dbfunc" >&5 +echo "configure:11520: checking for $dbfunc" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11546: \"$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 @@ -11513,12 +11561,12 @@ echo $ac_n "checking for $dbfunc in -ldb""... $ac_c" 1>&6 -echo "configure:11517: checking for $dbfunc in -ldb" >&5 +echo "configure:11565: 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:11581: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11593,12 +11641,12 @@ if test "$with_socks" = "yes"; then echo $ac_n "checking for SOCKSinit in -lsocks""... $ac_c" 1>&6 -echo "configure:11597: checking for SOCKSinit in -lsocks" >&5 +echo "configure:11645: 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:11661: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11668,15 +11716,15 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11672: checking for $ac_hdr" >&5 +echo "configure:11720: 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:11680: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11728: \"$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* @@ -11707,12 +11755,12 @@ test -z "$with_shlib" && test ! -z "$have_dlfcn" && { echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 -echo "configure:11711: checking for dlopen in -ldl" >&5 +echo "configure:11759: 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:11775: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11752,12 +11800,12 @@ } test -z "$with_shlib" && test ! -z "$have_dlfcn" && { echo $ac_n "checking for _dlopen in -lc""... $ac_c" 1>&6 -echo "configure:11756: checking for _dlopen in -lc" >&5 +echo "configure:11804: 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:11820: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11797,12 +11845,12 @@ } test -z "$with_shlib" && test ! -z "$have_dlfcn" && { echo $ac_n "checking for dlopen in -lc""... $ac_c" 1>&6 -echo "configure:11801: checking for dlopen in -lc" >&5 +echo "configure:11849: 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:11865: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11842,12 +11890,12 @@ } test -z "$with_shlib" && { echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 -echo "configure:11846: checking for shl_load in -ldld" >&5 +echo "configure:11894: 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:11910: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11887,12 +11935,12 @@ } test -z "$with_shlib" && { echo $ac_n "checking for dld_init in -ldld""... $ac_c" 1>&6 -echo "configure:11891: checking for dld_init in -ldld" >&5 +echo "configure:11939: 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:11955: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11953,7 +12001,7 @@ dll_oflags="-o " echo $ac_n "checking how to build a shared library""... $ac_c" 1>&6 -echo "configure:11957: checking how to build a shared library" >&5 +echo "configure:12005: checking how to build a shared library" >&5 case `uname -rs` in UNIX_SV*|UNIX_System_V*) dll_lflags="-G" @@ -12044,10 +12092,10 @@ for ac_func in dlerror do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:12048: checking for $ac_func" >&5 +echo "configure:12096: 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:12122: \"$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 @@ -12106,11 +12154,11 @@ fi cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 +if { (eval echo configure:12162: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5 then : else diff -r -u -N xemacs-21.1.12/configure.in xemacs-21.1.13/configure.in --- xemacs-21.1.12/configure.in Thu Aug 3 22:49:59 2000 +++ xemacs-21.1.13/configure.in Sat Dec 16 21:08:20 2000 @@ -2333,7 +2333,9 @@ done dnl Avoid version mismatch for shared library libXm.so on osf4 - if test "$GCC" = yes -a -d /usr/shlib; then XE_APPEND(-L/usr/shlib, X_LIBS); fi + case "$opsys" in + decosf*) if test "$GCC" = yes -a -d /usr/shlib; then XE_APPEND(-L/usr/shlib, X_LIBS); fi ;; + esac ld_switch_x_site="$X_LIBS" @@ -2558,6 +2560,14 @@ done fi +dnl Balloon Help requires the Shape extension, not available everywhere, +dnl for example not on AIX 4.3. +if test "$with_x11" = "yes"; then + AC_CHECK_HEADER(X11/extensions/shape.h, [ + AC_DEFINE(HAVE_BALLOON_HELP) + XE_ADD_OBJS(balloon_help.o balloon-x.o)]) +fi + dnl FSF 19.29 has some bitmapdir stuff here. bitmapdir= @@ -3236,8 +3246,11 @@ dnl AC_CHECK_FUNC(alloca, [:], [AC_CHECK_LIB(PW, alloca)]) dnl esac +dnl AC_FUNC_ALLOCA doesn't know about DEC C's #pragma intrinsic(alloca) +if test "$__DECC" != "yes"; then AC_FUNC_ALLOCA test -n "$ALLOCA" && XE_ADD_OBJS($ALLOCA) +fi dnl Check whether vfork exists and works correctly. (This does more dnl than just check for its existence.) If so, it defines HAVE_VFORK_H. @@ -3435,7 +3448,7 @@ XE_ADD_OBJS(nas.o) XE_PREPEND(-laudio, libs_x) dnl If the nas library does not contain the error jump point, - dnl then we force safer behaviour. + dnl then we force safer behavior. AC_EGREP_HEADER(AuXtErrorJump,audio/Xtutil.h,,[AC_DEFINE(NAS_NO_ERROR_JUMP)]) dnl NAS <= 1.2p5 defines {BIG,LITTLE}_ENDIAN in conflict with GNU libc etc dnl Recent NAS prefixes NAS_ to avoid polluting namespace diff -r -u -N xemacs-21.1.12/dynodump/dynodump.c xemacs-21.1.13/dynodump/dynodump.c --- xemacs-21.1.12/dynodump/dynodump.c Tue Mar 31 15:10:55 1998 +++ xemacs-21.1.13/dynodump/dynodump.c Thu Nov 16 22:21:17 2000 @@ -68,7 +68,7 @@ * Note. under this mechanism, any data item that undergoes * relocation and is then further modified during the execution of * the image before dynodump(3x) is called will lose the - * modification that occured during the applications execution. + * modification that occurred during the applications execution. * * N.B. The above commentary is not quite correct in the flags have been hardwired * to RTLD_SAVREL. diff -r -u -N xemacs-21.1.12/etc/Emacs.ad xemacs-21.1.13/etc/Emacs.ad --- xemacs-21.1.12/etc/Emacs.ad Wed Aug 2 21:59:05 2000 +++ xemacs-21.1.13/etc/Emacs.ad Thu Nov 16 22:21:18 2000 @@ -189,8 +189,9 @@ ! are X toolkit widgets and thus outside the domain of XEmacs proper. ! ! When X Font Sets are enabled with ./configure --with-xfs (eg, for -! multilingual menubars and XIM), some .font resources are ignored in favor -! of .fontSet resources. This examples is for Japanese menubars): +! multilingual menubars and XIM), some .font resources (those specific to +! the Lucid widget set) are ignored in favor of .fontSet resources. This +! example shows how to add fonts for Japanese menubars: ! ! *menubar*FontSet: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*, \ ! -*-*-*-*-*-*-*-120-*-jisx0208.1983-0 diff -r -u -N xemacs-21.1.12/etc/NEWS xemacs-21.1.13/etc/NEWS --- xemacs-21.1.12/etc/NEWS Sun Jun 13 01:16:42 1999 +++ xemacs-21.1.13/etc/NEWS Thu Nov 16 22:21:18 2000 @@ -101,7 +101,7 @@ is initialized using the environment variable NAME and (failing that) the user's system name. -The behaviour of the `user-full-name' function with an argument +The behavior of the `user-full-name' function with an argument specified is unchanged. ** The new command `M-x customize-changed-options' lets you customize @@ -316,7 +316,7 @@ subsystem. If the `dir' file does not exist in an Info directory, the relevant information will be generated on-the-fly. -This behaviour can be customized, look for `Info-auto-generate-directory' +This behavior can be customized, look for `Info-auto-generate-directory' and `Info-save-auto-generated-dir' in the `info' customization group. ** Version Control is no longer automatically loaded. Users must @@ -610,14 +610,14 @@ *** Loading `jka-compr' no longer enables on-the-fly compression. Use `toggle-auto-compression' instead. -*** Loading `id-select' no longer enables its behaviour. Use +*** Loading `id-select' no longer enables its behavior. Use `id-select-install' instead. ** Zmacs region is not deactivated when an error is signaled. The behavior of the zmacs region can now be controlled in the event of a signaled error. The new variable `errors-deactivate-region' may be -set to nil to revert to the old behaviour. As before, typing C-g +set to nil to revert to the old behavior. As before, typing C-g deactivates the region. ** Multiple Info `dir' functionality has been merged with GNU Emacs @@ -727,7 +727,7 @@ ** The default format for ChangeLog entries (as created by `C-x 4 a') is now the international ISO 8601 format. -To revert to the old behaviour, use: +To revert to the old behavior, use: (setq add-log-time-format 'current-time-string) diff -r -u -N xemacs-21.1.12/etc/PACKAGES xemacs-21.1.13/etc/PACKAGES --- xemacs-21.1.12/etc/PACKAGES Mon Feb 15 10:37:51 1999 +++ xemacs-21.1.13/etc/PACKAGES Sun Nov 19 22:25:15 2000 @@ -227,7 +227,8 @@ *** os-utils -Miscellaneous single-file O/S utilities. +Miscellaneous single-file O/S utilities, for printing, archiving, +compression, remote shells, etc. *** view-process diff -r -u -N xemacs-21.1.12/etc/etags.1 xemacs-21.1.13/etc/etags.1 --- xemacs-21.1.12/etc/etags.1 Sun Sep 19 22:20:50 1999 +++ xemacs-21.1.13/etc/etags.1 Thu Nov 16 22:21:19 2000 @@ -174,12 +174,12 @@ final brace of a function or structure definition in C and C++. .TP .B \-t, \-\-typedefs -Record typedefs in C code as tags. Since this is the default behaviour +Record typedefs in C code as tags. Since this is the default behavior of \fBetags\fP, only \fBctags\fP accepts this option. .TP .B \-T, \-\-typedefs\-and\-c++ Generate tag entries for typedefs, struct, enum, and union tags, and -C++ member functions. Since this is the default behaviour +C++ member functions. Since this is the default behavior of \fBetags\fP, only \fBctags\fP accepts this option. .TP .B \-u, \-\-update diff -r -u -N xemacs-21.1.12/etc/xemacs-fe.sh xemacs-21.1.13/etc/xemacs-fe.sh --- xemacs-21.1.12/etc/xemacs-fe.sh Wed Jul 23 03:13:26 1997 +++ xemacs-21.1.13/etc/xemacs-fe.sh Thu Nov 16 22:21:19 2000 @@ -109,7 +109,7 @@ # # The largish sed script prefixes all version numbers with a sort key. # That key is constructed by padding out any single or double digits to 3 -# digits from the version number, then converting all occurences of `.' to +# digits from the version number, then converting all occurrences of `.' to # `0', and prefixing and suffixing the entire result with an additional # zero. After sorting, the sort key is stripped from the output. # We do all this because `sort' cannot numerically sort decimal numbers and diff -r -u -N xemacs-21.1.12/etc/xemacs-ja.1 xemacs-21.1.13/etc/xemacs-ja.1 --- xemacs-21.1.12/etc/xemacs-ja.1 Tue Jun 30 02:35:14 1998 +++ xemacs-21.1.13/etc/xemacs-ja.1 Sun Nov 19 22:25:16 2000 @@ -680,7 +680,7 @@ .PP .B XEmacs ¤Ï¡¢Chuck Thompson ¡¢Ben Wing ¡¢ -Jamie Zawinski ¡¢Richard Mlynarik ¡¢ +Jamie Zawinski ¡¢Richard Mlynarik ¡¢ Martin Buchholz ¾¡¢¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤Þ¤·¤¿¡£ Free Software Foundation ¤Î Richard Stallman ¤Î½ñ¤¤¤¿ .B "GNU Emacs " diff -r -u -N xemacs-21.1.12/etc/xemacs.1 xemacs-21.1.13/etc/xemacs.1 --- xemacs-21.1.12/etc/xemacs.1 Sun Mar 21 18:51:25 1999 +++ xemacs-21.1.13/etc/xemacs.1 Sun Nov 19 22:25:16 2000 @@ -1,4 +1,4 @@ -.TH XEMACS 1 "1998 January 13" +.TH XEMACS 1 "2000-09-20" .UC 4 .SH NAME xemacs \- Emacs: The Next Generation @@ -151,7 +151,7 @@ , .B \-no-site-file , and -.B \-no-packages +.B \-no-early-packages \. .TP .BI \-u " user, " \-user " user" @@ -318,7 +318,7 @@ .BI \-xrm " argument" This allows you to set an arbitrary resource on the command line. .I argument -should be a resource specification, as might as in your +should be a resource specification, as might be found in your .I \.Xresources or .I \.Xdefaults @@ -439,7 +439,7 @@ .IR on , the window will be displayed in reverse video. Consider explicitly setting the foreground and background colors instead -of using this resources. +of using this resource. .TP .B borderWidth (\fPclass\fB BorderWidth) Sets the window's border width in pixels. @@ -511,7 +511,7 @@ Sets the position of vertical and horizontal scrollbars. Should be one of the strings "top-left", "bottom-left", "top-right", or "bottom-right". The default is "bottom-right" for the Motif and Lucid scrollbars and -"buttom-left" for the Athena scrollbars. +"bottom-left" for the Athena scrollbars. .TP .B topToolBarHeight (\fPclass\fB TopToolBarHeight) Sets the height of the top toolbar, in pixels. 0 means no top toolbar. @@ -741,7 +741,7 @@ was written by Steve Baur , Martin Buchholz , -Richard Mlynarik , +Richard Mlynarik , Hrvoje Niksic , Chuck Thompson , Ben Wing , diff -r -u -N xemacs-21.1.12/info/cl.info xemacs-21.1.13/info/cl.info --- xemacs-21.1.12/info/cl.info Fri Aug 4 21:31:15 2000 +++ xemacs-21.1.13/info/cl.info Sun Jan 7 15:57:30 2001 @@ -1,4 +1,4 @@ -This is ../info/cl.info, produced by makeinfo version 4.0 from cl.texi. +This is ../info/cl.info, produced by makeinfo version 4.0a from cl.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -28,79 +28,79 @@  Indirect: -cl.info-1: 1164 -cl.info-2: 46622 -cl.info-3: 89403 -cl.info-4: 139179 -cl.info-5: 183399 -cl.info-6: 226009 +cl.info-1: 1165 +cl.info-2: 46623 +cl.info-3: 89404 +cl.info-4: 139180 +cl.info-5: 183400 +cl.info-6: 226010  Tag Table: (Indirect) -Node: Top1164 -Node: Overview2716 -Node: Usage4995 -Node: Organization5645 -Node: Installation7468 -Node: Naming Conventions8621 -Node: Program Structure10760 -Node: Argument Lists11228 -Node: Time of Evaluation21011 -Node: Function Aliases26991 -Node: Predicates27575 -Node: Type Predicates27895 -Node: Equality Predicates32937 -Node: Control Structure35995 -Node: Assignment36799 -Node: Generalized Variables38040 -Node: Basic Setf39347 -Node: Modify Macros46622 -Node: Customizing Setf53831 -Node: Variable Bindings61120 -Node: Dynamic Bindings61701 -Node: Lexical Bindings62591 -Node: Function Bindings66695 -Node: Macro Bindings69082 -Node: Conditionals72005 -Node: Blocks and Exits75088 -Node: Iteration78144 -Node: Loop Facility83617 -Node: Loop Basics84544 -Node: Loop Examples87144 -Node: For Clauses89403 -Node: Iteration Clauses101293 -Node: Accumulation Clauses103134 -Node: Other Clauses105478 -Node: Multiple Values111547 -Node: Macros113440 -Node: Declarations116658 -Node: Symbols125155 -Node: Property Lists125455 -Node: Creating Symbols128656 -Node: Numbers130734 -Node: Predicates on Numbers131214 -Node: Numerical Functions132243 -Node: Random Numbers136470 -Node: Implementation Parameters139179 -Node: Sequences142751 -Node: Sequence Basics143424 -Node: Mapping over Sequences147002 -Node: Sequence Functions152856 -Node: Searching Sequences159031 -Node: Sorting Sequences162068 -Node: Lists164616 -Node: List Functions165041 -Node: Substitution of Expressions169304 -Node: Lists as Sets171190 -Node: Association Lists175252 -Node: Hash Tables176955 -Node: Structures183399 -Node: Assertions198182 -Node: Efficiency Concerns201125 -Node: Common Lisp Compatibility207452 -Node: Old CL Compatibility210608 -Node: Porting Common Lisp214991 -Node: Function Index226009 -Node: Variable Index237650 +Node: Top1165 +Node: Overview2717 +Node: Usage4996 +Node: Organization5646 +Node: Installation7469 +Node: Naming Conventions8622 +Node: Program Structure10761 +Node: Argument Lists11229 +Node: Time of Evaluation21012 +Node: Function Aliases26992 +Node: Predicates27576 +Node: Type Predicates27896 +Node: Equality Predicates32938 +Node: Control Structure35996 +Node: Assignment36800 +Node: Generalized Variables38041 +Node: Basic Setf39348 +Node: Modify Macros46623 +Node: Customizing Setf53832 +Node: Variable Bindings61121 +Node: Dynamic Bindings61702 +Node: Lexical Bindings62592 +Node: Function Bindings66696 +Node: Macro Bindings69083 +Node: Conditionals72006 +Node: Blocks and Exits75089 +Node: Iteration78145 +Node: Loop Facility83618 +Node: Loop Basics84545 +Node: Loop Examples87145 +Node: For Clauses89404 +Node: Iteration Clauses101294 +Node: Accumulation Clauses103135 +Node: Other Clauses105479 +Node: Multiple Values111548 +Node: Macros113441 +Node: Declarations116659 +Node: Symbols125156 +Node: Property Lists125456 +Node: Creating Symbols128657 +Node: Numbers130735 +Node: Predicates on Numbers131215 +Node: Numerical Functions132244 +Node: Random Numbers136471 +Node: Implementation Parameters139180 +Node: Sequences142752 +Node: Sequence Basics143425 +Node: Mapping over Sequences147003 +Node: Sequence Functions152857 +Node: Searching Sequences159032 +Node: Sorting Sequences162069 +Node: Lists164617 +Node: List Functions165042 +Node: Substitution of Expressions169305 +Node: Lists as Sets171191 +Node: Association Lists175253 +Node: Hash Tables176956 +Node: Structures183400 +Node: Assertions198183 +Node: Efficiency Concerns201126 +Node: Common Lisp Compatibility207453 +Node: Old CL Compatibility210609 +Node: Porting Common Lisp214992 +Node: Function Index226010 +Node: Variable Index237651  End Tag Table diff -r -u -N xemacs-21.1.12/info/cl.info-1 xemacs-21.1.13/info/cl.info-1 --- xemacs-21.1.12/info/cl.info-1 Fri Aug 4 21:31:15 2000 +++ xemacs-21.1.13/info/cl.info-1 Sun Jan 7 15:57:30 2001 @@ -1,4 +1,4 @@ -This is ../info/cl.info, produced by makeinfo version 4.0 from cl.texi. +This is ../info/cl.info, produced by makeinfo version 4.0a from cl.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY diff -r -u -N xemacs-21.1.12/info/cl.info-2 xemacs-21.1.13/info/cl.info-2 --- xemacs-21.1.12/info/cl.info-2 Fri Aug 4 21:31:15 2000 +++ xemacs-21.1.13/info/cl.info-2 Sun Jan 7 15:57:30 2001 @@ -1,4 +1,4 @@ -This is ../info/cl.info, produced by makeinfo version 4.0 from cl.texi. +This is ../info/cl.info, produced by makeinfo version 4.0a from cl.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY diff -r -u -N xemacs-21.1.12/info/cl.info-3 xemacs-21.1.13/info/cl.info-3 --- xemacs-21.1.12/info/cl.info-3 Fri Aug 4 21:31:15 2000 +++ xemacs-21.1.13/info/cl.info-3 Sun Jan 7 15:57:30 2001 @@ -1,4 +1,4 @@ -This is ../info/cl.info, produced by makeinfo version 4.0 from cl.texi. +This is ../info/cl.info, produced by makeinfo version 4.0a from cl.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY diff -r -u -N xemacs-21.1.12/info/cl.info-4 xemacs-21.1.13/info/cl.info-4 --- xemacs-21.1.12/info/cl.info-4 Fri Aug 4 21:31:15 2000 +++ xemacs-21.1.13/info/cl.info-4 Sun Jan 7 15:57:30 2001 @@ -1,4 +1,4 @@ -This is ../info/cl.info, produced by makeinfo version 4.0 from cl.texi. +This is ../info/cl.info, produced by makeinfo version 4.0a from cl.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY diff -r -u -N xemacs-21.1.12/info/cl.info-5 xemacs-21.1.13/info/cl.info-5 --- xemacs-21.1.12/info/cl.info-5 Fri Aug 4 21:31:15 2000 +++ xemacs-21.1.13/info/cl.info-5 Sun Jan 7 15:57:30 2001 @@ -1,4 +1,4 @@ -This is ../info/cl.info, produced by makeinfo version 4.0 from cl.texi. +This is ../info/cl.info, produced by makeinfo version 4.0a from cl.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY diff -r -u -N xemacs-21.1.12/info/cl.info-6 xemacs-21.1.13/info/cl.info-6 --- xemacs-21.1.12/info/cl.info-6 Fri Aug 4 21:31:15 2000 +++ xemacs-21.1.13/info/cl.info-6 Sun Jan 7 15:57:30 2001 @@ -1,4 +1,4 @@ -This is ../info/cl.info, produced by makeinfo version 4.0 from cl.texi. +This is ../info/cl.info, produced by makeinfo version 4.0a from cl.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY diff -r -u -N xemacs-21.1.12/info/custom.info xemacs-21.1.13/info/custom.info --- xemacs-21.1.12/info/custom.info Fri Aug 4 21:31:15 2000 +++ xemacs-21.1.13/info/custom.info Sun Jan 7 15:57:30 2001 @@ -1,4 +1,4 @@ -This is ../info/custom.info, produced by makeinfo version 4.0 from +This is ../info/custom.info, produced by makeinfo version 4.0a from custom.texi. INFO-DIR-SECTION XEmacs Editor @@ -385,13 +385,13 @@  Tag Table: -Node: Top213 -Node: Declaring Groups1634 -Node: Declaring Variables2735 -Node: Declaring Faces5826 -Node: Usage for Package Authors7524 -Node: Utilities8303 -Node: The Init File9387 -Node: Wishlist9839 +Node: Top214 +Node: Declaring Groups1635 +Node: Declaring Variables2736 +Node: Declaring Faces5827 +Node: Usage for Package Authors7525 +Node: Utilities8304 +Node: The Init File9388 +Node: Wishlist9840  End Tag Table diff -r -u -N xemacs-21.1.12/info/external-widget.info xemacs-21.1.13/info/external-widget.info --- xemacs-21.1.12/info/external-widget.info Fri Aug 4 21:31:15 2000 +++ xemacs-21.1.13/info/external-widget.info Sun Jan 7 15:57:30 2001 @@ -1,4 +1,4 @@ -This is ../info/external-widget.info, produced by makeinfo version 4.0 +This is ../info/external-widget.info, produced by makeinfo version 4.0a from external-widget.texi. INFO-DIR-SECTION XEmacs Editor @@ -130,9 +130,9 @@  Tag Table: -Node: Top241 -Node: Using an External Client Widget671 -Node: External Client Widget Resource Settings2386 -Node: Motif-Specific Info About the External Client Widget5129 +Node: Top242 +Node: Using an External Client Widget672 +Node: External Client Widget Resource Settings2387 +Node: Motif-Specific Info About the External Client Widget5130  End Tag Table diff -r -u -N xemacs-21.1.12/info/info.info xemacs-21.1.13/info/info.info --- xemacs-21.1.12/info/info.info Fri Aug 4 21:31:15 2000 +++ xemacs-21.1.13/info/info.info Sun Jan 7 15:57:30 2001 @@ -1,4 +1,4 @@ -This is ../info/info.info, produced by makeinfo version 4.0 from +This is ../info/info.info, produced by makeinfo version 4.0a from info.texi. INFO-DIR-SECTION Texinfo documentation system @@ -222,7 +222,7 @@ lot of Deletes. You can also type simply `b' for beginning. >> Try that now. (We have put in enough verbiage to push this past the first screenful, but screens are so big nowadays that perhaps it isn't -enough. You may need to shrink your Emacs or Info window.) Then come +enough. You may need to shrink your XEmacs or Info window.) Then come back, with Spaces. If your screen is very tall, all of this node might fit at once. In @@ -519,7 +519,7 @@ * Cross-refs:: How to add cross-references to Info nodes. * Tags:: How to make tag tables for Info files. * Checking:: Checking an Info File -* Emacs Info Variables:: Variables modifying the behavior of Emacs Info. +* XEmacs Info Variables:: Variables modifying the behavior of XEmacs Info.  File: info.info, Node: Expert, Next: Add, Up: Advanced Info @@ -562,16 +562,16 @@ the first item in the current node's menu; `2' goes through the second item, etc. - If you display supports multiple fonts, and you are using Emacs' Info -mode to read Info files, the `*' for the fifth menu item is underlines, -and so is the `*' for the ninth item; these underlines make it easy to -see at a glance which number to use for an item. + If you display supports multiple fonts, and you are using XEmacs' +Info mode to read Info files, the `*' for the fifth menu item is +underlines, and so is the `*' for the ninth item; these underlines make +it easy to see at a glance which number to use for an item. On ordinary terminals, you won't have underlining. If you need to actually count items, it is better to use `m' instead, and specify the name. - The Info command `e' changes from Info mode to an ordinary Emacs + The Info command `e' changes from Info mode to an ordinary XEmacs editing mode, so that you can edit the text of the current node. Type `C-c C-c' to switch back to Info. The `e' command is allowed only if the variable `Info-enable-edit' is non-`nil'. @@ -728,7 +728,7 @@ an Info file lives inside the file itself and is used automatically whenever Info reads in the file. - To make a tag table, go to a node in the file using Emacs Info mode + To make a tag table, go to a node in the file using XEmacs Info mode and type `M-x Info-tagify'. Then you must use `C-x C-s' to save the file. @@ -754,7 +754,7 @@ beginning of the node.  -File: info.info, Node: Checking, Next: Emacs Info Variables, Prev: Tags, Up: Advanced Info +File: info.info, Node: Checking, Next: XEmacs Info Variables, Prev: Tags, Up: Advanced Info Checking an Info File ===================== @@ -771,18 +771,18 @@ other files would be terribly slow. But those are usually few. To check an Info file, do `M-x Info-validate' while looking at any -node of the file with Emacs Info mode. +node of the file with XEmacs Info mode.  -File: info.info, Node: Emacs Info Variables, Prev: Checking, Up: Advanced Info +File: info.info, Node: XEmacs Info Variables, Prev: Checking, Up: Advanced Info -Emacs Info-mode Variables -========================= +XEmacs Info-mode Variables +========================== The following variables may modify the behaviour of Info-mode in -Emacs; you may wish to set one or several of these variables +XEmacs; you may wish to set one or several of these variables interactively, or in your `~/.emacs' init file. *Note Examining and -Setting Variables: (emacs)Examining. +Setting Variables: (xemacs)Examining. `Info-enable-edit' Set to `nil', disables the `e' (`Info-edit') command. A non-`nil' @@ -808,7 +808,7 @@ ****************************************** `makeinfo' is a utility that converts a Texinfo file into an Info -file; `texinfo-format-region' and `texinfo-format-buffer' are GNU Emacs +file; `texinfo-format-region' and `texinfo-format-buffer' are XEmacs functions that do the same. *Note Creating an Info File: (texinfo)Create an Info File, to learn @@ -820,25 +820,25 @@  Tag Table: -Node: Top1059 -Node: Getting Started1744 -Node: Help-Small-Screen2492 -Node: Help4241 -Node: Help-P5271 -Node: Help-^L6133 -Node: Help-M9011 -Node: Help-FOO15021 -Node: Help-Adv15759 -Node: Help-Cross18434 -Node: Help-Q19080 -Node: Advanced Info19707 -Node: Expert20683 -Node: Add23196 -Node: Menus26555 -Node: Cross-refs29429 -Node: Tags30131 -Node: Checking31433 -Node: Emacs Info Variables32386 -Node: Create an Info File33375 +Node: Top1060 +Node: Getting Started1745 +Node: Help-Small-Screen2493 +Node: Help4242 +Node: Help-P5272 +Node: Help-^L6134 +Node: Help-M9013 +Node: Help-FOO15023 +Node: Help-Adv15761 +Node: Help-Cross18436 +Node: Help-Q19082 +Node: Advanced Info19709 +Node: Expert20687 +Node: Add23202 +Node: Menus26561 +Node: Cross-refs29435 +Node: Tags30137 +Node: Checking31440 +Node: XEmacs Info Variables32395 +Node: Create an Info File33389  End Tag Table diff -r -u -N xemacs-21.1.12/info/internals.info xemacs-21.1.13/info/internals.info --- xemacs-21.1.12/info/internals.info Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/internals.info Sun Jan 7 15:57:35 2001 @@ -1,4 +1,4 @@ -This is ../../info/internals.info, produced by makeinfo version 4.0 +This is ../../info/internals.info, produced by makeinfo version 4.0a from internals.texi. INFO-DIR-SECTION XEmacs Editor @@ -39,10 +39,10 @@  Indirect: -internals.info-1: 1762 -internals.info-2: 44124 -internals.info-3: 93490 -internals.info-4: 142828 +internals.info-1: 1763 +internals.info-2: 44125 +internals.info-3: 93491 +internals.info-4: 142829 internals.info-5: 188786 internals.info-6: 230455 internals.info-7: 277746 @@ -50,49 +50,49 @@  Tag Table: (Indirect) -Node: Top1762 -Node: A History of Emacs6338 -Node: Through Version 187863 -Node: Lucid Emacs11284 -Node: GNU Emacs 1914302 -Node: GNU Emacs 2016485 -Node: XEmacs16912 -Node: XEmacs From the Outside20091 -Node: The Lisp Language21859 -Node: XEmacs From the Perspective of Building29845 -Node: XEmacs From the Inside35741 -Node: The XEmacs Object System (Abstractly Speaking)44124 -Node: How Lisp Objects Are Represented in C58178 -Node: Rules When Writing New C Code64727 -Node: General Coding Rules65531 -Node: Writing Lisp Primitives69413 -Node: Adding Global Lisp Variables80248 -Node: Coding for Mule83886 -Node: Character-Related Data Types84856 -Node: Working With Character and Byte Positions87519 -Node: Conversion of External Data91113 -Node: General Guidelines for Writing Mule-Aware Code93490 -Node: An Example of Mule-Aware Code95512 -Node: Techniques for XEmacs Developers97495 -Node: A Summary of the Various XEmacs Modules99859 -Node: Low-Level Modules100679 -Node: Basic Lisp Modules108639 -Node: Modules for Standard Editing Operations117113 -Node: Editor-Level Control Flow Modules123209 -Node: Modules for the Basic Displayable Lisp Objects126810 -Node: Modules for other Display-Related Lisp Objects129540 -Node: Modules for the Redisplay Mechanism130934 -Node: Modules for Interfacing with the File System133439 -Node: Modules for Other Aspects of the Lisp Interpreter and Object System137264 -Node: Modules for Interfacing with the Operating System142828 -Node: Modules for Interfacing with X Windows151662 -Node: Modules for Internationalization155567 -Node: Allocation of Objects in XEmacs Lisp158367 -Node: Introduction to Allocation158912 -Node: Garbage Collection164366 -Node: GCPROing167319 -Node: Garbage Collection - Step by Step174130 -Node: Invocation174522 +Node: Top1763 +Node: A History of Emacs6339 +Node: Through Version 187864 +Node: Lucid Emacs11285 +Node: GNU Emacs 1914303 +Node: GNU Emacs 2016486 +Node: XEmacs16913 +Node: XEmacs From the Outside20092 +Node: The Lisp Language21860 +Node: XEmacs From the Perspective of Building29846 +Node: XEmacs From the Inside35742 +Node: The XEmacs Object System (Abstractly Speaking)44125 +Node: How Lisp Objects Are Represented in C58179 +Node: Rules When Writing New C Code64728 +Node: General Coding Rules65532 +Node: Writing Lisp Primitives69414 +Node: Adding Global Lisp Variables80249 +Node: Coding for Mule83887 +Node: Character-Related Data Types84857 +Node: Working With Character and Byte Positions87520 +Node: Conversion of External Data91114 +Node: General Guidelines for Writing Mule-Aware Code93491 +Node: An Example of Mule-Aware Code95513 +Node: Techniques for XEmacs Developers97496 +Node: A Summary of the Various XEmacs Modules99860 +Node: Low-Level Modules100680 +Node: Basic Lisp Modules108640 +Node: Modules for Standard Editing Operations117114 +Node: Editor-Level Control Flow Modules123210 +Node: Modules for the Basic Displayable Lisp Objects126811 +Node: Modules for other Display-Related Lisp Objects129541 +Node: Modules for the Redisplay Mechanism130935 +Node: Modules for Interfacing with the File System133440 +Node: Modules for Other Aspects of the Lisp Interpreter and Object System137265 +Node: Modules for Interfacing with the Operating System142829 +Node: Modules for Interfacing with X Windows151663 +Node: Modules for Internationalization155568 +Node: Allocation of Objects in XEmacs Lisp158368 +Node: Introduction to Allocation158913 +Node: Garbage Collection164367 +Node: GCPROing167320 +Node: Garbage Collection - Step by Step174131 +Node: Invocation174523 Node: garbage_collect_1177494 Node: mark_object186974 Node: gc_sweep188786 diff -r -u -N xemacs-21.1.12/info/internals.info-1 xemacs-21.1.13/info/internals.info-1 --- xemacs-21.1.12/info/internals.info-1 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/internals.info-1 Sun Jan 7 15:57:35 2001 @@ -1,4 +1,4 @@ -This is ../../info/internals.info, produced by makeinfo version 4.0 +This is ../../info/internals.info, produced by makeinfo version 4.0a from internals.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/internals.info-2 xemacs-21.1.13/info/internals.info-2 --- xemacs-21.1.12/info/internals.info-2 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/internals.info-2 Sun Jan 7 15:57:35 2001 @@ -1,4 +1,4 @@ -This is ../../info/internals.info, produced by makeinfo version 4.0 +This is ../../info/internals.info, produced by makeinfo version 4.0a from internals.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/internals.info-3 xemacs-21.1.13/info/internals.info-3 --- xemacs-21.1.12/info/internals.info-3 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/internals.info-3 Sun Jan 7 15:57:35 2001 @@ -1,4 +1,4 @@ -This is ../../info/internals.info, produced by makeinfo version 4.0 +This is ../../info/internals.info, produced by makeinfo version 4.0a from internals.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/internals.info-4 xemacs-21.1.13/info/internals.info-4 --- xemacs-21.1.12/info/internals.info-4 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/internals.info-4 Sun Jan 7 15:57:35 2001 @@ -1,4 +1,4 @@ -This is ../../info/internals.info, produced by makeinfo version 4.0 +This is ../../info/internals.info, produced by makeinfo version 4.0a from internals.texi. INFO-DIR-SECTION XEmacs Editor @@ -825,8 +825,8 @@ example `or', `and', `if', `cond', `while', `setq', etc., miscellaneous `gui_item_...' functions, everything related to `eval' (`Feval_buffer', `call0', ...) and inside `Fsignal'. The latter is used to handle -signals, as for example the ones raised by every `QUITE'-macro -triggered after pressing Ctrl-g. +signals, as for example the ones raised by every `QUIT'-macro triggered +after pressing Ctrl-g.  File: internals.info, Node: garbage_collect_1, Next: mark_object, Prev: Invocation, Up: Garbage Collection - Step by Step diff -r -u -N xemacs-21.1.12/info/internals.info-5 xemacs-21.1.13/info/internals.info-5 --- xemacs-21.1.12/info/internals.info-5 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/internals.info-5 Sun Jan 7 15:57:35 2001 @@ -1,4 +1,4 @@ -This is ../../info/internals.info, produced by makeinfo version 4.0 +This is ../../info/internals.info, produced by makeinfo version 4.0a from internals.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/internals.info-6 xemacs-21.1.13/info/internals.info-6 --- xemacs-21.1.12/info/internals.info-6 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/internals.info-6 Sun Jan 7 15:57:35 2001 @@ -1,4 +1,4 @@ -This is ../../info/internals.info, produced by makeinfo version 4.0 +This is ../../info/internals.info, produced by makeinfo version 4.0a from internals.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/internals.info-7 xemacs-21.1.13/info/internals.info-7 --- xemacs-21.1.12/info/internals.info-7 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/internals.info-7 Sun Jan 7 15:57:35 2001 @@ -1,4 +1,4 @@ -This is ../../info/internals.info, produced by makeinfo version 4.0 +This is ../../info/internals.info, produced by makeinfo version 4.0a from internals.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/internals.info-8 xemacs-21.1.13/info/internals.info-8 --- xemacs-21.1.12/info/internals.info-8 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/internals.info-8 Sun Jan 7 15:57:35 2001 @@ -1,4 +1,4 @@ -This is ../../info/internals.info, produced by makeinfo version 4.0 +This is ../../info/internals.info, produced by makeinfo version 4.0a from internals.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info xemacs-21.1.13/info/lispref.info --- xemacs-21.1.12/info/lispref.info Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor @@ -52,836 +52,836 @@  Indirect: -lispref.info-1: 2370 -lispref.info-2: 48389 -lispref.info-3: 96934 -lispref.info-4: 146771 -lispref.info-5: 195427 -lispref.info-6: 243112 -lispref.info-7: 291395 -lispref.info-8: 340531 -lispref.info-9: 387853 -lispref.info-10: 436492 -lispref.info-11: 484435 -lispref.info-12: 530994 -lispref.info-13: 579580 -lispref.info-14: 627803 -lispref.info-15: 676057 -lispref.info-16: 725259 -lispref.info-17: 772499 -lispref.info-18: 819349 -lispref.info-19: 866400 -lispref.info-20: 915130 -lispref.info-21: 964552 -lispref.info-22: 1011471 -lispref.info-23: 1058498 -lispref.info-24: 1106455 -lispref.info-25: 1156128 -lispref.info-26: 1205293 -lispref.info-27: 1254516 -lispref.info-28: 1303283 -lispref.info-29: 1352210 -lispref.info-30: 1393545 -lispref.info-31: 1443303 -lispref.info-32: 1492032 -lispref.info-33: 1539477 -lispref.info-34: 1586411 -lispref.info-35: 1632043 -lispref.info-36: 1673359 -lispref.info-37: 1718300 -lispref.info-38: 1768114 -lispref.info-39: 1815426 -lispref.info-40: 1862966 -lispref.info-41: 1912619 -lispref.info-42: 1961610 -lispref.info-43: 2005502 -lispref.info-44: 2043757 +lispref.info-1: 2371 +lispref.info-2: 48390 +lispref.info-3: 96933 +lispref.info-4: 146770 +lispref.info-5: 195426 +lispref.info-6: 243111 +lispref.info-7: 291394 +lispref.info-8: 340540 +lispref.info-9: 387862 +lispref.info-10: 436501 +lispref.info-11: 484444 +lispref.info-12: 531003 +lispref.info-13: 579589 +lispref.info-14: 627812 +lispref.info-15: 676066 +lispref.info-16: 725268 +lispref.info-17: 772508 +lispref.info-18: 819358 +lispref.info-19: 866409 +lispref.info-20: 915140 +lispref.info-21: 964562 +lispref.info-22: 1011484 +lispref.info-23: 1058511 +lispref.info-24: 1106468 +lispref.info-25: 1156143 +lispref.info-26: 1205308 +lispref.info-27: 1254532 +lispref.info-28: 1303304 +lispref.info-29: 1352231 +lispref.info-30: 1393566 +lispref.info-31: 1443324 +lispref.info-32: 1492059 +lispref.info-33: 1539505 +lispref.info-34: 1586439 +lispref.info-35: 1632071 +lispref.info-36: 1673387 +lispref.info-37: 1718328 +lispref.info-38: 1768144 +lispref.info-39: 1815456 +lispref.info-40: 1862996 +lispref.info-41: 1912649 +lispref.info-42: 1961640 +lispref.info-43: 2005533 +lispref.info-44: 2043790  Tag Table: (Indirect) -Node: Top2370 -Node: Copying48389 -Node: Introduction67547 -Node: Caveats69138 -Node: Lisp History70877 -Node: Conventions72133 -Node: Some Terms72948 -Node: nil and t73669 -Node: Evaluation Notation75346 -Node: Printing Notation76259 -Node: Error Messages77133 -Node: Buffer Text Notation77574 -Node: Format of Descriptions78449 -Node: A Sample Function Description79303 -Node: A Sample Variable Description83289 -Node: Acknowledgements84197 -Node: Lisp Data Types86175 -Node: Printed Representation88729 -Node: Comments90771 -Node: Primitive Types91668 -Node: Programming Types93326 -Node: Integer Type95278 -Node: Floating Point Type96315 -Node: Character Type96934 -Node: Symbol Type104840 -Node: Sequence Type107535 -Node: Cons Cell Type109054 -Node: Dotted Pair Notation113538 -Node: Association List Type115659 -Node: Array Type116542 -Node: String Type118008 -Node: Vector Type120689 -Node: Bit Vector Type121461 -Node: Function Type122323 -Node: Macro Type123436 -Node: Primitive Function Type124133 -Node: Compiled-Function Type125659 -Node: Autoload Type126213 -Node: Char Table Type127227 -Node: Hash Table Type127401 -Node: Range Table Type128378 -Node: Weak List Type129231 -Node: Editing Types129381 -Node: Buffer Type131008 -Node: Marker Type133035 -Node: Extent Type133759 -Node: Window Type135027 -Node: Frame Type136438 -Node: Device Type137233 -Node: Console Type138059 -Node: Window Configuration Type139260 -Node: Event Type139958 -Node: Process Type140122 -Node: Stream Type141157 -Node: Keymap Type142280 -Node: Syntax Table Type142818 -Node: Display Table Type143841 -Node: Database Type144280 -Node: Charset Type144446 -Node: Coding System Type144610 -Node: ToolTalk Message Type144794 -Node: ToolTalk Pattern Type144993 -Node: Window-System Types145165 -Node: Face Type146311 -Node: Glyph Type146442 -Node: Specifier Type146598 -Node: Font Instance Type146771 -Node: Color Instance Type146961 -Node: Image Instance Type147158 -Node: Toolbar Button Type147356 -Node: Subwindow Type147549 -Node: X Resource Type147728 -Node: Type Predicates147881 -Node: Equality Predicates157005 -Node: Numbers161810 -Node: Integer Basics163265 -Node: Float Basics165614 -Node: Predicates on Numbers167356 -Node: Comparison of Numbers168989 -Node: Numeric Conversions172810 -Node: Arithmetic Operations174276 -Node: Rounding Operations179741 -Node: Bitwise Operations180846 -Node: Math Functions189892 -Node: Random Numbers192208 -Node: Strings and Characters193974 -Node: String Basics195427 -Node: Predicates for Strings197845 -Node: Creating Strings198608 -Node: Predicates for Characters203925 -Node: Character Codes204996 -Node: Text Comparison206409 -Node: String Conversion209771 -Node: Modifying Strings213447 -Node: String Properties214088 -Node: Formatting Strings214731 -Node: Character Case224349 -Node: Case Tables227495 -Node: Char Tables231393 -Node: Char Table Types232785 -Node: Working With Char Tables234360 -Node: Lists236309 -Node: Cons Cells237432 -Node: Lists as Boxes238768 -Node: List-related Predicates241410 -Node: List Elements243112 -Node: Building Lists248141 -Node: Modifying Lists254133 -Node: Setcar254945 -Node: Setcdr257366 -Node: Rearrangement259877 -Node: Sets And Lists265463 -Node: Association Lists269691 -Ref: Association Lists-Footnote-1278986 -Node: Property Lists279191 -Node: Working With Normal Plists280739 -Node: Working With Lax Plists283007 -Node: Converting Plists To/From Alists285247 -Node: Weak Lists286595 -Node: Sequences Arrays Vectors288759 -Node: Sequence Functions291395 -Node: Arrays295054 -Node: Array Functions298118 -Node: Vectors300651 -Node: Vector Functions302149 -Node: Bit Vectors304720 -Node: Bit Vector Functions305565 -Node: Symbols307815 -Node: Symbol Components308864 -Node: Definitions313037 -Node: Creating Symbols315262 -Node: Symbol Properties322296 -Node: Plists and Alists323812 -Node: Symbol Plists325561 -Node: Other Plists327370 -Node: Evaluation329148 -Node: Intro Eval329953 -Ref: Intro Eval-Footnote-1333306 -Node: Eval333441 -Node: Forms337859 -Node: Self-Evaluating Forms339018 -Node: Symbol Forms340531 -Node: Classifying Lists341448 -Node: Function Indirection342204 -Node: Function Forms345315 -Node: Macro Forms346312 -Node: Special Forms347912 -Node: Autoloading350221 -Node: Quoting350719 -Node: Control Structures352080 -Node: Sequencing353700 -Node: Conditionals356565 -Node: Combining Conditions359988 -Node: Iteration363258 -Node: Nonlocal Exits365037 -Node: Catch and Throw365739 -Node: Examples of Catch369578 -Node: Errors371597 -Node: Signaling Errors373086 -Node: Processing of Errors376162 -Node: Handling Errors377491 -Node: Error Symbols384407 -Node: Cleanups387853 -Node: Variables391631 -Node: Global Variables393400 -Node: Constant Variables394476 -Node: Local Variables395102 -Node: Void Variables400039 -Node: Defining Variables403555 -Node: Accessing Variables410719 -Node: Setting Variables412144 -Node: Variable Scoping416663 -Node: Scope418262 -Node: Extent419787 -Node: Impl of Scope421266 -Node: Using Scoping423229 -Node: Buffer-Local Variables424751 -Node: Intro to Buffer-Local425587 -Node: Creating Buffer-Local428130 -Node: Default Value433349 -Node: Variable Aliases436492 -Node: Functions438277 -Node: What Is a Function439371 -Node: Lambda Expressions443417 -Node: Lambda Components444327 -Node: Simple Lambda446159 -Node: Argument List447816 -Node: Function Documentation451544 -Node: Function Names453486 -Node: Defining Functions456059 -Node: Calling Functions459099 -Node: Mapping Functions462948 -Node: Anonymous Functions465341 -Node: Function Cells468586 -Node: Inline Functions473396 -Node: Related Topics475206 -Node: Macros476259 -Node: Simple Macro477543 -Node: Expansion478278 -Node: Compiling Macros481282 -Node: Defining Macros483118 -Node: Backquote484435 -Node: Problems with Macros486779 -Node: Argument Evaluation487474 -Node: Surprising Local Vars490389 -Node: Eval During Expansion492457 -Node: Repeated Expansion494150 -Node: Customization496066 -Node: Common Keywords496535 -Node: Group Definitions499380 -Node: Variable Definitions501572 -Node: Customization Types506555 -Node: Simple Types507990 -Node: Composite Types510147 -Node: Splicing into Lists514837 -Node: Type Keywords516672 -Node: Loading520192 -Node: How Programs Do Loading521867 -Node: Autoload530994 -Node: Repeated Loading537073 -Node: Named Features539186 -Node: Unloading545618 -Node: Hooks for Loading547774 -Node: Byte Compilation548491 -Node: Speed of Byte-Code550105 -Node: Compilation Functions551336 -Node: Docs and Compilation557602 -Node: Dynamic Loading560171 -Node: Eval During Compile562535 -Node: Compiled-Function Objects563800 -Node: Disassembly568568 -Node: Debugging577023 -Node: Debugger578435 -Node: Error Debugging579580 -Node: Infinite Loops582333 -Node: Function Debugging583577 -Node: Explicit Debug586367 -Node: Using Debugger587138 -Node: Debugger Commands589000 -Node: Invoking the Debugger593317 -Node: Internals of Debugger597232 -Node: Syntax Errors602119 -Node: Excess Open603367 -Node: Excess Close605242 -Node: Compilation Errors606663 -Node: Edebug607951 -Node: Using Edebug610059 -Node: Instrumenting612756 -Node: Edebug Execution Modes616245 -Node: Jumping619355 -Node: Edebug Misc621698 -Node: Breakpoints623087 -Node: Global Break Condition625893 -Node: Embedded Breakpoints626848 -Node: Trapping Errors627803 -Node: Edebug Views629879 -Node: Edebug Eval631844 -Node: Eval List633021 -Node: Reading in Edebug636406 -Node: Printing in Edebug637205 -Node: Tracing638920 -Node: Coverage Testing640806 -Node: The Outside Context642847 -Node: Checking Whether to Stop643796 -Node: Edebug Display Update644443 -Node: Edebug Recursive Edit646466 -Node: Instrumenting Macro Calls648121 -Node: Specification List650603 -Node: Backtracking660014 -Node: Debugging Backquote661952 -Node: Specification Examples665658 -Node: Edebug Options667725 -Node: Read and Print673062 -Node: Streams Intro674039 -Node: Input Streams676057 -Node: Input Functions680958 -Node: Output Streams683018 -Node: Output Functions687069 -Node: Output Variables691369 -Node: Minibuffers696168 -Node: Intro to Minibuffers697253 -Node: Text from Minibuffer699579 -Node: Object from Minibuffer704241 -Node: Minibuffer History707458 -Node: Completion710368 -Node: Basic Completion712343 -Node: Minibuffer Completion717367 -Node: Completion Commands720612 -Node: High-Level Completion725259 -Node: Reading File Names729283 -Node: Programmed Completion732972 -Node: Yes-or-No Queries735182 -Node: Multiple Queries740919 -Node: Minibuffer Misc744983 -Node: Command Loop749849 -Node: Command Overview751193 -Node: Defining Commands754471 -Node: Using Interactive755219 -Node: Interactive Codes759992 -Node: Interactive Examples765784 -Node: Interactive Call767098 -Node: Command Loop Info772499 -Node: Events777478 -Node: Event Types778938 -Node: Event Contents780861 -Node: Event Predicates785337 -Node: Accessing Mouse Event Positions786662 -Node: Frame-Level Event Position Info787361 -Node: Window-Level Event Position Info788401 -Node: Event Text Position Info790165 -Node: Event Glyph Position Info792657 -Node: Event Toolbar Position Info793980 -Node: Other Event Position Info794651 -Node: Accessing Other Event Info795060 -Node: Working With Events796680 -Node: Converting Events802668 -Node: Reading Input805621 -Node: Key Sequence Input806623 -Node: Reading One Event808577 -Node: Dispatching an Event811338 -Node: Quoted Character Input811789 -Node: Peeking and Discarding813137 -Node: Waiting817041 -Node: Quitting819349 -Node: Prefix Command Arguments823757 -Node: Recursive Editing828844 -Node: Disabling Commands833640 -Node: Command History835708 -Node: Keyboard Macros837445 -Node: Keymaps839662 -Node: Keymap Terminology841239 -Node: Format of Keymaps844168 -Node: Creating Keymaps844579 -Node: Inheritance and Keymaps846658 -Node: Key Sequences849030 -Node: Prefix Keys853600 -Node: Active Keymaps857185 -Node: Key Lookup866400 -Node: Functions for Key Lookup871563 -Node: Changing Key Bindings877260 -Node: Key Binding Commands884157 -Node: Scanning Keymaps886222 -Node: Other Keymap Functions894733 -Node: Menus895355 -Node: Menu Format895897 -Node: Menubar Format904482 -Node: Menubar905107 -Node: Modifying Menus908220 -Node: Menu Filters913234 -Node: Pop-Up Menus915130 -Node: Menu Accelerators917335 -Node: Creating Menu Accelerators918057 -Node: Keyboard Menu Traversal919375 -Node: Menu Accelerator Functions920102 -Node: Buffers Menu923137 -Node: Dialog Boxes924431 -Node: Dialog Box Format924598 -Node: Dialog Box Functions925968 -Node: Toolbar926365 -Node: Toolbar Intro926690 -Node: Toolbar Descriptor Format929100 -Node: Specifying the Toolbar933594 -Node: Other Toolbar Variables937199 -Node: Scrollbars941626 -Node: Drag and Drop941762 -Node: Supported Protocols942838 -Node: OffiX DND943341 -Node: CDE dt944348 -Node: MSWindows OLE944939 -Node: Loose ends945110 -Node: Drop Interface945502 -Node: Drag Interface946524 -Node: Modes946698 -Node: Major Modes947649 -Node: Major Mode Conventions950564 -Node: Example Major Modes956519 -Node: Auto Major Mode964552 -Node: Mode Help972000 -Node: Derived Modes973101 -Node: Minor Modes975292 -Node: Minor Mode Conventions976594 -Node: Keymaps and Minor Modes979457 -Node: Modeline Format980292 -Node: Modeline Data982060 -Node: Modeline Variables986330 -Node: %-Constructs991046 -Node: Hooks993957 -Node: Documentation1000719 -Node: Documentation Basics1002142 -Node: Accessing Documentation1005192 -Node: Keys in Documentation1011471 -Node: Describing Characters1014950 -Node: Help Functions1017299 -Node: Obsoleteness1023750 -Node: Files1026744 -Node: Visiting Files1028669 -Node: Visiting Functions1030174 -Node: Subroutines of Visiting1035221 -Node: Saving Buffers1037294 -Node: Reading from Files1043387 -Node: Writing to Files1045544 -Node: File Locks1048261 -Node: Information about Files1051314 -Node: Testing Accessibility1052075 -Node: Kinds of Files1055815 -Node: Truenames1057496 -Node: File Attributes1058498 -Node: Changing File Attributes1063637 -Node: File Names1069043 -Node: File Name Components1070579 -Node: Directory Names1073680 -Node: Relative File Names1077133 -Node: File Name Expansion1078211 -Node: Unique File Names1082118 -Node: File Name Completion1083733 -Node: Contents of Directories1086365 -Node: Create/Delete Dirs1089678 -Node: Magic File Names1090784 -Node: Partial Files1096414 -Node: Intro to Partial Files1096642 -Node: Creating a Partial File1097882 -Node: Detached Partial Files1098817 -Node: Format Conversion1099939 -Node: Files and MS-DOS1106455 -Node: Backups and Auto-Saving1108519 -Node: Backup Files1109194 -Node: Making Backups1110591 -Node: Rename or Copy1113340 -Node: Numbered Backups1115833 -Node: Backup Names1118068 -Node: Auto-Saving1121360 -Node: Reverting1129502 -Node: Buffers1132660 -Node: Buffer Basics1134077 -Node: Current Buffer1136130 -Node: Buffer Names1140818 -Node: Buffer File Name1144023 -Node: Buffer Modification1148142 -Node: Modification Time1150335 -Node: Read Only Buffers1153710 -Node: The Buffer List1156128 -Node: Creating Buffers1160958 -Node: Killing Buffers1163104 -Node: Indirect Buffers1166835 -Node: Windows1168662 -Node: Basic Windows1170140 -Node: Splitting Windows1173238 -Node: Deleting Windows1180127 -Node: Selecting Windows1182807 -Node: Cyclic Window Ordering1185936 -Node: Buffers and Windows1190560 -Node: Displaying Buffers1192401 -Node: Choosing Window1197577 -Node: Window Point1205293 -Node: Window Start1207339 -Node: Vertical Scrolling1211829 -Node: Horizontal Scrolling1217966 -Node: Size of Window1221475 -Node: Position of Window1226193 -Node: Resizing Windows1228433 -Node: Window Configurations1233862 -Node: Frames1237287 -Node: Creating Frames1239056 -Node: Frame Properties1240397 -Node: Property Access1241213 -Node: Initial Properties1242062 -Node: X Frame Properties1244548 -Node: Size and Position1249182 -Node: Frame Name1251178 -Node: Frame Titles1252092 -Node: Deleting Frames1253916 -Node: Finding All Frames1254516 -Node: Frames and Windows1256510 -Node: Minibuffers and Frames1258215 -Node: Input Focus1259133 -Node: Visibility of Frames1262210 -Node: Raising and Lowering1264129 -Node: Frame Configurations1266505 -Node: Frame Hooks1267099 -Node: Consoles and Devices1268904 -Node: Basic Console Functions1271648 -Node: Basic Device Functions1272071 -Node: Console Types and Device Classes1272787 -Node: Connecting to a Console or Device1274984 -Node: The Selected Console and Device1277147 -Node: Console and Device I/O1278173 -Node: Positions1278937 -Node: Point1279906 -Node: Motion1282996 -Node: Character Motion1283763 -Node: Word Motion1286000 -Node: Buffer End Motion1287501 -Node: Text Lines1288998 -Node: Screen Lines1293593 -Node: List Motion1297656 -Node: Skipping Characters1301064 -Node: Excursions1303283 -Node: Narrowing1306315 -Node: Markers1311640 -Node: Overview of Markers1312546 -Node: Predicates on Markers1317238 -Node: Creating Markers1318484 -Node: Information from Markers1322521 -Node: Changing Markers1323619 -Node: The Mark1324997 -Node: The Region1333491 -Node: Text1339178 -Node: Near Point1341832 -Node: Buffer Contents1345554 -Node: Comparing Text1346960 -Node: Insertion1348368 -Node: Commands for Insertion1352210 -Node: Deletion1355166 -Node: User-Level Deletion1358761 -Node: The Kill Ring1362922 -Node: Kill Ring Concepts1365096 -Node: Kill Functions1366150 -Node: Yank Commands1368055 -Node: Low-Level Kill Ring1369926 -Node: Internals of Kill Ring1372712 -Node: Undo1375492 -Node: Maintaining Undo1379821 -Node: Filling1382441 -Node: Margins1388435 -Node: Auto Filling1392364 -Node: Sorting1393545 -Node: Columns1402845 -Node: Indentation1405361 -Node: Primitive Indent1406140 -Node: Mode-Specific Indent1407384 -Node: Region Indent1409895 -Node: Relative Indent1412843 -Node: Indent Tabs1415225 -Node: Motion by Indent1416546 -Node: Case Changes1417325 -Node: Text Properties1420576 -Node: Examining Properties1422389 -Node: Changing Properties1424256 -Node: Property Search1427847 -Node: Special Properties1432558 -Node: Saving Properties1432839 -Node: Substitution1435981 -Node: Registers1437850 -Node: Transposition1440393 -Node: Change Hooks1441287 -Node: Searching and Matching1443303 -Node: String Search1444434 -Node: Regular Expressions1449158 -Node: Syntax of Regexps1450568 -Node: Regexp Example1467473 -Node: Regexp Search1469643 -Node: POSIX Regexps1475731 -Node: Search and Replace1477566 -Node: Match Data1480931 -Node: Simple Match Data1482061 -Node: Replacing Match1486326 -Node: Entire Match Data1488660 -Node: Saving Match Data1490651 -Node: Searching and Case1492032 -Node: Standard Regexps1494066 -Node: Syntax Tables1496264 -Node: Syntax Basics1497378 -Node: Syntax Descriptors1500350 -Node: Syntax Class Table1502200 -Node: Syntax Flags1508238 -Node: Syntax Table Functions1511455 -Node: Motion and Syntax1515319 -Node: Parsing Expressions1516771 -Node: Standard Syntax Tables1522840 -Node: Syntax Table Internals1523684 -Node: Abbrevs1524710 -Node: Abbrev Mode1526513 -Node: Abbrev Tables1527233 -Node: Defining Abbrevs1528766 -Node: Abbrev Files1530671 -Node: Abbrev Expansion1532444 -Node: Standard Abbrev Tables1537075 -Node: Extents1538234 -Node: Intro to Extents1539477 -Node: Creating and Modifying Extents1543471 -Node: Extent Endpoints1544978 -Node: Finding Extents1548241 -Node: Mapping Over Extents1551990 -Node: Extent Properties1558107 -Node: Detached Extents1568251 -Node: Extent Parents1570110 -Node: Duplicable Extents1571805 -Node: Extents and Events1575026 -Node: Atomic Extents1576933 -Node: Specifiers1577380 -Node: Introduction to Specifiers1579187 -Node: Specifiers In-Depth1581497 -Node: Specifier Instancing1586411 -Node: Specifier Types1589673 -Node: Adding Specifications1594747 -Node: Retrieving Specifications1604109 -Node: Specifier Tag Functions1607844 -Node: Specifier Instancing Functions1611078 -Node: Specifier Example1614485 -Node: Creating Specifiers1617591 -Node: Specifier Validation Functions1619840 -Node: Other Specification Functions1622224 -Node: Faces and Window-System Objects1626043 -Node: Faces1626367 -Node: Merging Faces1627984 -Node: Basic Face Functions1629945 -Node: Face Properties1632043 -Node: Face Convenience Functions1641602 -Node: Other Face Display Functions1644732 -Node: Fonts1645545 -Node: Font Specifiers1646246 -Node: Font Instances1646487 -Node: Font Instance Names1647454 -Node: Font Instance Size1648295 -Node: Font Instance Characteristics1649581 -Node: Font Convenience Functions1650750 -Node: Colors1652040 -Node: Color Specifiers1652480 -Node: Color Instances1652707 -Node: Color Instance Properties1653451 -Node: Color Convenience Functions1654077 -Node: Glyphs1655130 -Node: Glyph Functions1656722 -Node: Creating Glyphs1657129 -Node: Glyph Properties1658716 -Node: Glyph Convenience Functions1667883 -Node: Glyph Dimensions1671830 -Node: Images1672910 -Node: Image Specifiers1673359 -Node: Image Instantiator Conversion1684781 -Node: Image Instances1686146 -Node: Image Instance Types1686897 -Node: Image Instance Functions1689552 -Node: Glyph Types1694121 -Node: Mouse Pointer1695893 -Node: Redisplay Glyphs1698896 -Node: Subwindows1699929 -Node: Annotations1700172 -Node: Annotation Basics1701188 -Node: Annotation Primitives1705126 -Node: Annotation Properties1706455 -Node: Locating Annotations1709495 -Node: Margin Primitives1710332 -Node: Annotation Hooks1712226 -Node: Display1712886 -Node: Refresh Screen1713864 -Node: Truncation1715775 -Node: The Echo Area1718300 -Node: Warnings1724735 -Node: Invisible Text1729171 -Node: Selective Display1731750 -Node: Overlay Arrow1735876 -Node: Temporary Displays1737229 -Node: Blinking1741350 -Node: Usual Display1743535 -Node: Display Tables1746084 -Node: Display Table Format1746888 -Node: Active Display Table1748330 -Node: Character Descriptors1749522 -Node: Beeping1750279 -Node: Hash Tables1755045 -Node: Introduction to Hash Tables1755645 -Node: Working With Hash Tables1758011 -Node: Weak Hash Tables1758839 -Node: Range Tables1761063 -Node: Introduction to Range Tables1761752 -Node: Working With Range Tables1762183 -Node: Databases1763068 -Node: Connecting to a Database1763367 -Node: Working With a Database1764458 -Node: Other Database Functions1765316 -Node: Processes1765890 -Node: Subprocess Creation1768114 -Node: Synchronous Processes1771403 -Node: MS-DOS Subprocesses1778121 -Node: Asynchronous Processes1779195 -Node: Deleting Processes1782908 -Node: Process Information1784779 -Node: Input to Processes1788705 -Node: Signals to Processes1790995 -Node: Output from Processes1795415 -Node: Process Buffers1796227 -Node: Filter Functions1799094 -Node: Accepting Output1804664 -Node: Sentinels1806191 -Node: Process Window Size1809681 -Node: Transaction Queues1810030 -Node: Network1811728 -Node: System Interface1813562 -Node: Starting Up1814832 -Node: Start-up Summary1815426 -Node: Init File1818980 -Node: Terminal-Specific1821361 -Node: Command Line Arguments1824520 -Node: Getting Out1828009 -Node: Killing XEmacs1828578 -Node: Suspending XEmacs1830247 -Node: System Environment1833589 -Node: User Identification1840256 -Node: Time of Day1843785 -Node: Time Conversion1846572 -Node: Timers1851612 -Node: Terminal Input1853785 -Node: Input Modes1854288 -Node: Translating Input1856701 -Node: Recording Input1860866 -Node: Terminal Output1862966 -Node: Flow Control1866589 -Node: Batch Mode1870381 -Node: X-Windows1871763 -Node: X Selections1872575 -Node: X Server1874785 -Node: Resources1875186 -Node: Server Data1880327 -Node: Grabs1881534 -Node: X Miscellaneous1883115 -Node: ToolTalk Support1885500 -Node: XEmacs ToolTalk API Summary1885717 -Node: Sending Messages1887017 -Node: Example of Sending Messages1887268 -Node: Elisp Interface for Sending Messages1888330 -Node: Receiving Messages1894723 -Node: Example of Receiving Messages1894946 -Node: Elisp Interface for Receiving Messages1895782 -Node: LDAP Support1899607 -Node: Building XEmacs with LDAP support1900103 -Node: XEmacs LDAP API1901031 -Node: LDAP Variables1901761 -Node: The High-Level LDAP API1904056 -Node: The Low-Level LDAP API1905161 -Node: The LDAP Lisp Object1905435 -Node: Opening and Closing a LDAP Connection1905988 -Node: Searching on a LDAP Server (Low-level)1907771 -Node: Syntax of Search Filters1909164 -Node: Internationalization1910462 -Node: I18N Levels 1 and 21910799 -Node: I18N Level 31911505 -Node: Level 3 Basics1911786 -Node: Level 3 Primitives1912619 -Node: Dynamic Messaging1914225 -Node: Domain Specification1914688 -Node: Documentation String Extraction1916591 -Node: I18N Level 41917509 -Node: MULE1917701 -Node: Internationalization Terminology1918812 -Node: Charsets1927351 -Node: Charset Properties1928047 -Node: Basic Charset Functions1932733 -Node: Charset Property Functions1934914 -Node: Predefined Charsets1936957 -Node: MULE Characters1939877 -Node: Composite Characters1940724 -Node: ISO 20221941978 -Node: Coding Systems1947700 -Node: Coding System Types1949622 -Node: EOL Conversion1951441 -Node: Coding System Properties1952624 -Node: Basic Coding System Functions1956476 -Node: Coding System Property Functions1958380 -Node: Encoding and Decoding Text1958938 -Node: Detection of Textual Encoding1960074 -Node: Big5 and Shift-JIS Functions1961610 -Node: CCL1962698 -Node: CCL Syntax1965802 -Node: CCL Statements1967390 -Node: CCL Expressions1972038 -Node: Calling CCL1974577 -Node: CCL Examples1977566 -Node: Category Tables1977703 -Node: Tips1980062 -Node: Style Tips1980703 -Node: Compilation Tips1990222 -Node: Documentation Tips1992136 -Node: Comment Tips1997645 -Node: Library Headers2000647 -Node: Building XEmacs and Object Allocation2004619 -Node: Building XEmacs2005502 -Node: Pure Storage2011837 -Node: Garbage Collection2014625 -Node: Standard Errors2025762 -Node: Standard Buffer-Local Variables2029892 -Node: Standard Keymaps2032525 -Node: Standard Hooks2036257 -Node: Index2043757 +Node: Top2371 +Node: Copying48390 +Node: Introduction67546 +Node: Caveats69137 +Node: Lisp History70876 +Node: Conventions72132 +Node: Some Terms72947 +Node: nil and t73668 +Node: Evaluation Notation75345 +Node: Printing Notation76258 +Node: Error Messages77132 +Node: Buffer Text Notation77573 +Node: Format of Descriptions78448 +Node: A Sample Function Description79302 +Node: A Sample Variable Description83288 +Node: Acknowledgements84196 +Node: Lisp Data Types86174 +Node: Printed Representation88728 +Node: Comments90770 +Node: Primitive Types91667 +Node: Programming Types93325 +Node: Integer Type95277 +Node: Floating Point Type96314 +Node: Character Type96933 +Node: Symbol Type104839 +Node: Sequence Type107534 +Node: Cons Cell Type109053 +Node: Dotted Pair Notation113537 +Node: Association List Type115658 +Node: Array Type116541 +Node: String Type118007 +Node: Vector Type120688 +Node: Bit Vector Type121460 +Node: Function Type122322 +Node: Macro Type123435 +Node: Primitive Function Type124132 +Node: Compiled-Function Type125658 +Node: Autoload Type126212 +Node: Char Table Type127226 +Node: Hash Table Type127400 +Node: Range Table Type128377 +Node: Weak List Type129230 +Node: Editing Types129380 +Node: Buffer Type131007 +Node: Marker Type133034 +Node: Extent Type133758 +Node: Window Type135026 +Node: Frame Type136437 +Node: Device Type137232 +Node: Console Type138058 +Node: Window Configuration Type139259 +Node: Event Type139957 +Node: Process Type140121 +Node: Stream Type141156 +Node: Keymap Type142279 +Node: Syntax Table Type142817 +Node: Display Table Type143840 +Node: Database Type144279 +Node: Charset Type144445 +Node: Coding System Type144609 +Node: ToolTalk Message Type144793 +Node: ToolTalk Pattern Type144992 +Node: Window-System Types145164 +Node: Face Type146310 +Node: Glyph Type146441 +Node: Specifier Type146597 +Node: Font Instance Type146770 +Node: Color Instance Type146960 +Node: Image Instance Type147157 +Node: Toolbar Button Type147355 +Node: Subwindow Type147548 +Node: X Resource Type147727 +Node: Type Predicates147880 +Node: Equality Predicates157004 +Node: Numbers161809 +Node: Integer Basics163264 +Node: Float Basics165613 +Node: Predicates on Numbers167355 +Node: Comparison of Numbers168988 +Node: Numeric Conversions172809 +Node: Arithmetic Operations174275 +Node: Rounding Operations179740 +Node: Bitwise Operations180845 +Node: Math Functions189891 +Node: Random Numbers192207 +Node: Strings and Characters193973 +Node: String Basics195426 +Node: Predicates for Strings197844 +Node: Creating Strings198607 +Node: Predicates for Characters203924 +Node: Character Codes204995 +Node: Text Comparison206408 +Node: String Conversion209770 +Node: Modifying Strings213446 +Node: String Properties214087 +Node: Formatting Strings214730 +Node: Character Case224348 +Node: Case Tables227494 +Node: Char Tables231392 +Node: Char Table Types232784 +Node: Working With Char Tables234359 +Node: Lists236308 +Node: Cons Cells237431 +Node: Lists as Boxes238767 +Node: List-related Predicates241409 +Node: List Elements243111 +Node: Building Lists248140 +Node: Modifying Lists254132 +Node: Setcar254944 +Node: Setcdr257365 +Node: Rearrangement259876 +Node: Sets And Lists265462 +Node: Association Lists269690 +Ref: Association Lists-Footnote-1278985 +Node: Property Lists279190 +Node: Working With Normal Plists280738 +Node: Working With Lax Plists283006 +Node: Converting Plists To/From Alists285246 +Node: Weak Lists286594 +Node: Sequences Arrays Vectors288758 +Node: Sequence Functions291394 +Node: Arrays295053 +Node: Array Functions298117 +Node: Vectors300650 +Node: Vector Functions302148 +Node: Bit Vectors304719 +Node: Bit Vector Functions305564 +Node: Symbols307814 +Node: Symbol Components308863 +Node: Definitions313046 +Node: Creating Symbols315271 +Node: Symbol Properties322305 +Node: Plists and Alists323821 +Node: Symbol Plists325570 +Node: Other Plists327379 +Node: Evaluation329157 +Node: Intro Eval329962 +Ref: Intro Eval-Footnote-1333315 +Node: Eval333450 +Node: Forms337868 +Node: Self-Evaluating Forms339027 +Node: Symbol Forms340540 +Node: Classifying Lists341457 +Node: Function Indirection342213 +Node: Function Forms345324 +Node: Macro Forms346321 +Node: Special Forms347921 +Node: Autoloading350230 +Node: Quoting350728 +Node: Control Structures352089 +Node: Sequencing353709 +Node: Conditionals356574 +Node: Combining Conditions359997 +Node: Iteration363267 +Node: Nonlocal Exits365046 +Node: Catch and Throw365748 +Node: Examples of Catch369587 +Node: Errors371606 +Node: Signaling Errors373095 +Node: Processing of Errors376171 +Node: Handling Errors377500 +Node: Error Symbols384416 +Node: Cleanups387862 +Node: Variables391640 +Node: Global Variables393409 +Node: Constant Variables394485 +Node: Local Variables395111 +Node: Void Variables400048 +Node: Defining Variables403564 +Node: Accessing Variables410728 +Node: Setting Variables412153 +Node: Variable Scoping416672 +Node: Scope418271 +Node: Extent419796 +Node: Impl of Scope421275 +Node: Using Scoping423238 +Node: Buffer-Local Variables424760 +Node: Intro to Buffer-Local425596 +Node: Creating Buffer-Local428139 +Node: Default Value433358 +Node: Variable Aliases436501 +Node: Functions438286 +Node: What Is a Function439380 +Node: Lambda Expressions443426 +Node: Lambda Components444336 +Node: Simple Lambda446168 +Node: Argument List447825 +Node: Function Documentation451553 +Node: Function Names453495 +Node: Defining Functions456068 +Node: Calling Functions459108 +Node: Mapping Functions462957 +Node: Anonymous Functions465350 +Node: Function Cells468595 +Node: Inline Functions473405 +Node: Related Topics475215 +Node: Macros476268 +Node: Simple Macro477552 +Node: Expansion478287 +Node: Compiling Macros481291 +Node: Defining Macros483127 +Node: Backquote484444 +Node: Problems with Macros486788 +Node: Argument Evaluation487483 +Node: Surprising Local Vars490398 +Node: Eval During Expansion492466 +Node: Repeated Expansion494159 +Node: Customization496075 +Node: Common Keywords496544 +Node: Group Definitions499389 +Node: Variable Definitions501581 +Node: Customization Types506564 +Node: Simple Types507999 +Node: Composite Types510156 +Node: Splicing into Lists514846 +Node: Type Keywords516681 +Node: Loading520201 +Node: How Programs Do Loading521876 +Node: Autoload531003 +Node: Repeated Loading537082 +Node: Named Features539195 +Node: Unloading545627 +Node: Hooks for Loading547783 +Node: Byte Compilation548500 +Node: Speed of Byte-Code550114 +Node: Compilation Functions551345 +Node: Docs and Compilation557611 +Node: Dynamic Loading560180 +Node: Eval During Compile562544 +Node: Compiled-Function Objects563809 +Node: Disassembly568577 +Node: Debugging577032 +Node: Debugger578444 +Node: Error Debugging579589 +Node: Infinite Loops582342 +Node: Function Debugging583586 +Node: Explicit Debug586376 +Node: Using Debugger587147 +Node: Debugger Commands589009 +Node: Invoking the Debugger593326 +Node: Internals of Debugger597241 +Node: Syntax Errors602128 +Node: Excess Open603376 +Node: Excess Close605251 +Node: Compilation Errors606672 +Node: Edebug607960 +Node: Using Edebug610068 +Node: Instrumenting612765 +Node: Edebug Execution Modes616254 +Node: Jumping619364 +Node: Edebug Misc621707 +Node: Breakpoints623096 +Node: Global Break Condition625902 +Node: Embedded Breakpoints626857 +Node: Trapping Errors627812 +Node: Edebug Views629888 +Node: Edebug Eval631853 +Node: Eval List633030 +Node: Reading in Edebug636415 +Node: Printing in Edebug637214 +Node: Tracing638929 +Node: Coverage Testing640815 +Node: The Outside Context642856 +Node: Checking Whether to Stop643805 +Node: Edebug Display Update644452 +Node: Edebug Recursive Edit646475 +Node: Instrumenting Macro Calls648130 +Node: Specification List650612 +Node: Backtracking660023 +Node: Debugging Backquote661961 +Node: Specification Examples665667 +Node: Edebug Options667734 +Node: Read and Print673071 +Node: Streams Intro674048 +Node: Input Streams676066 +Node: Input Functions680967 +Node: Output Streams683027 +Node: Output Functions687078 +Node: Output Variables691378 +Node: Minibuffers696177 +Node: Intro to Minibuffers697262 +Node: Text from Minibuffer699588 +Node: Object from Minibuffer704250 +Node: Minibuffer History707467 +Node: Completion710377 +Node: Basic Completion712352 +Node: Minibuffer Completion717376 +Node: Completion Commands720621 +Node: High-Level Completion725268 +Node: Reading File Names729292 +Node: Programmed Completion732981 +Node: Yes-or-No Queries735191 +Node: Multiple Queries740928 +Node: Minibuffer Misc744992 +Node: Command Loop749858 +Node: Command Overview751202 +Node: Defining Commands754480 +Node: Using Interactive755228 +Node: Interactive Codes760001 +Node: Interactive Examples765793 +Node: Interactive Call767107 +Node: Command Loop Info772508 +Node: Events777487 +Node: Event Types778947 +Node: Event Contents780870 +Node: Event Predicates785346 +Node: Accessing Mouse Event Positions786671 +Node: Frame-Level Event Position Info787370 +Node: Window-Level Event Position Info788410 +Node: Event Text Position Info790174 +Node: Event Glyph Position Info792666 +Node: Event Toolbar Position Info793989 +Node: Other Event Position Info794660 +Node: Accessing Other Event Info795069 +Node: Working With Events796689 +Node: Converting Events802677 +Node: Reading Input805630 +Node: Key Sequence Input806632 +Node: Reading One Event808586 +Node: Dispatching an Event811347 +Node: Quoted Character Input811798 +Node: Peeking and Discarding813146 +Node: Waiting817050 +Node: Quitting819358 +Node: Prefix Command Arguments823766 +Node: Recursive Editing828853 +Node: Disabling Commands833649 +Node: Command History835717 +Node: Keyboard Macros837454 +Node: Keymaps839671 +Node: Keymap Terminology841248 +Node: Format of Keymaps844177 +Node: Creating Keymaps844588 +Node: Inheritance and Keymaps846667 +Node: Key Sequences849039 +Node: Prefix Keys853609 +Node: Active Keymaps857194 +Node: Key Lookup866409 +Node: Functions for Key Lookup871572 +Node: Changing Key Bindings877269 +Node: Key Binding Commands884166 +Node: Scanning Keymaps886231 +Node: Other Keymap Functions894743 +Node: Menus895365 +Node: Menu Format895907 +Node: Menubar Format904492 +Node: Menubar905117 +Node: Modifying Menus908230 +Node: Menu Filters913244 +Node: Pop-Up Menus915140 +Node: Menu Accelerators917345 +Node: Creating Menu Accelerators918067 +Node: Keyboard Menu Traversal919385 +Node: Menu Accelerator Functions920112 +Node: Buffers Menu923147 +Node: Dialog Boxes924441 +Node: Dialog Box Format924608 +Node: Dialog Box Functions925978 +Node: Toolbar926375 +Node: Toolbar Intro926700 +Node: Toolbar Descriptor Format929110 +Node: Specifying the Toolbar933604 +Node: Other Toolbar Variables937209 +Node: Scrollbars941636 +Node: Drag and Drop941772 +Node: Supported Protocols942848 +Node: OffiX DND943351 +Node: CDE dt944358 +Node: MSWindows OLE944949 +Node: Loose ends945120 +Node: Drop Interface945512 +Node: Drag Interface946534 +Node: Modes946708 +Node: Major Modes947659 +Node: Major Mode Conventions950574 +Node: Example Major Modes956529 +Node: Auto Major Mode964562 +Node: Mode Help972012 +Node: Derived Modes973113 +Node: Minor Modes975304 +Node: Minor Mode Conventions976606 +Node: Keymaps and Minor Modes979469 +Node: Modeline Format980304 +Node: Modeline Data982072 +Node: Modeline Variables986342 +Node: %-Constructs991058 +Node: Hooks993969 +Node: Documentation1000731 +Node: Documentation Basics1002154 +Node: Accessing Documentation1005205 +Node: Keys in Documentation1011484 +Node: Describing Characters1014963 +Node: Help Functions1017312 +Node: Obsoleteness1023763 +Node: Files1026757 +Node: Visiting Files1028682 +Node: Visiting Functions1030187 +Node: Subroutines of Visiting1035234 +Node: Saving Buffers1037307 +Node: Reading from Files1043400 +Node: Writing to Files1045557 +Node: File Locks1048274 +Node: Information about Files1051327 +Node: Testing Accessibility1052088 +Node: Kinds of Files1055828 +Node: Truenames1057509 +Node: File Attributes1058511 +Node: Changing File Attributes1063650 +Node: File Names1069056 +Node: File Name Components1070592 +Node: Directory Names1073693 +Node: Relative File Names1077146 +Node: File Name Expansion1078224 +Node: Unique File Names1082131 +Node: File Name Completion1083746 +Node: Contents of Directories1086378 +Node: Create/Delete Dirs1089691 +Node: Magic File Names1090797 +Node: Partial Files1096427 +Node: Intro to Partial Files1096655 +Node: Creating a Partial File1097895 +Node: Detached Partial Files1098830 +Node: Format Conversion1099952 +Node: Files and MS-DOS1106468 +Node: Backups and Auto-Saving1108532 +Node: Backup Files1109207 +Node: Making Backups1110604 +Node: Rename or Copy1113353 +Node: Numbered Backups1115846 +Node: Backup Names1118081 +Node: Auto-Saving1121373 +Node: Reverting1129516 +Node: Buffers1132675 +Node: Buffer Basics1134092 +Node: Current Buffer1136145 +Node: Buffer Names1140833 +Node: Buffer File Name1144038 +Node: Buffer Modification1148157 +Node: Modification Time1150350 +Node: Read Only Buffers1153725 +Node: The Buffer List1156143 +Node: Creating Buffers1160973 +Node: Killing Buffers1163119 +Node: Indirect Buffers1166850 +Node: Windows1168677 +Node: Basic Windows1170155 +Node: Splitting Windows1173253 +Node: Deleting Windows1180142 +Node: Selecting Windows1182822 +Node: Cyclic Window Ordering1185951 +Node: Buffers and Windows1190575 +Node: Displaying Buffers1192416 +Node: Choosing Window1197592 +Node: Window Point1205308 +Node: Window Start1207355 +Node: Vertical Scrolling1211845 +Node: Horizontal Scrolling1217982 +Node: Size of Window1221491 +Node: Position of Window1226209 +Node: Resizing Windows1228449 +Node: Window Configurations1233878 +Node: Frames1237303 +Node: Creating Frames1239072 +Node: Frame Properties1240413 +Node: Property Access1241229 +Node: Initial Properties1242078 +Node: X Frame Properties1244564 +Node: Size and Position1249198 +Node: Frame Name1251194 +Node: Frame Titles1252108 +Node: Deleting Frames1253932 +Node: Finding All Frames1254532 +Node: Frames and Windows1256526 +Node: Minibuffers and Frames1258231 +Node: Input Focus1259149 +Node: Visibility of Frames1262226 +Node: Raising and Lowering1264145 +Node: Frame Configurations1266521 +Node: Frame Hooks1267115 +Node: Consoles and Devices1268920 +Node: Basic Console Functions1271664 +Node: Basic Device Functions1272087 +Node: Console Types and Device Classes1272803 +Node: Connecting to a Console or Device1275004 +Node: The Selected Console and Device1277167 +Node: Console and Device I/O1278193 +Node: Positions1278957 +Node: Point1279926 +Node: Motion1283016 +Node: Character Motion1283783 +Node: Word Motion1286020 +Node: Buffer End Motion1287521 +Node: Text Lines1289018 +Node: Screen Lines1293613 +Node: List Motion1297676 +Node: Skipping Characters1301085 +Node: Excursions1303304 +Node: Narrowing1306336 +Node: Markers1311661 +Node: Overview of Markers1312567 +Node: Predicates on Markers1317259 +Node: Creating Markers1318505 +Node: Information from Markers1322542 +Node: Changing Markers1323640 +Node: The Mark1325018 +Node: The Region1333512 +Node: Text1339199 +Node: Near Point1341853 +Node: Buffer Contents1345575 +Node: Comparing Text1346981 +Node: Insertion1348389 +Node: Commands for Insertion1352231 +Node: Deletion1355187 +Node: User-Level Deletion1358782 +Node: The Kill Ring1362943 +Node: Kill Ring Concepts1365117 +Node: Kill Functions1366171 +Node: Yank Commands1368076 +Node: Low-Level Kill Ring1369947 +Node: Internals of Kill Ring1372733 +Node: Undo1375513 +Node: Maintaining Undo1379842 +Node: Filling1382462 +Node: Margins1388456 +Node: Auto Filling1392385 +Node: Sorting1393566 +Node: Columns1402866 +Node: Indentation1405382 +Node: Primitive Indent1406161 +Node: Mode-Specific Indent1407405 +Node: Region Indent1409916 +Node: Relative Indent1412864 +Node: Indent Tabs1415246 +Node: Motion by Indent1416567 +Node: Case Changes1417346 +Node: Text Properties1420597 +Node: Examining Properties1422410 +Node: Changing Properties1424277 +Node: Property Search1427868 +Node: Special Properties1432579 +Node: Saving Properties1432860 +Node: Substitution1436002 +Node: Registers1437871 +Node: Transposition1440414 +Node: Change Hooks1441308 +Node: Searching and Matching1443324 +Node: String Search1444455 +Node: Regular Expressions1449179 +Node: Syntax of Regexps1450589 +Node: Regexp Example1467494 +Node: Regexp Search1469664 +Node: POSIX Regexps1475758 +Node: Search and Replace1477593 +Node: Match Data1480958 +Node: Simple Match Data1482088 +Node: Replacing Match1486353 +Node: Entire Match Data1488687 +Node: Saving Match Data1490678 +Node: Searching and Case1492059 +Node: Standard Regexps1494093 +Node: Syntax Tables1496291 +Node: Syntax Basics1497405 +Node: Syntax Descriptors1500377 +Node: Syntax Class Table1502227 +Node: Syntax Flags1508265 +Node: Syntax Table Functions1511482 +Node: Motion and Syntax1515346 +Node: Parsing Expressions1516798 +Node: Standard Syntax Tables1522867 +Node: Syntax Table Internals1523711 +Node: Abbrevs1524737 +Node: Abbrev Mode1526541 +Node: Abbrev Tables1527261 +Node: Defining Abbrevs1528794 +Node: Abbrev Files1530699 +Node: Abbrev Expansion1532472 +Node: Standard Abbrev Tables1537103 +Node: Extents1538262 +Node: Intro to Extents1539505 +Node: Creating and Modifying Extents1543499 +Node: Extent Endpoints1545006 +Node: Finding Extents1548269 +Node: Mapping Over Extents1552018 +Node: Extent Properties1558135 +Node: Detached Extents1568279 +Node: Extent Parents1570138 +Node: Duplicable Extents1571833 +Node: Extents and Events1575054 +Node: Atomic Extents1576961 +Node: Specifiers1577408 +Node: Introduction to Specifiers1579215 +Node: Specifiers In-Depth1581525 +Node: Specifier Instancing1586439 +Node: Specifier Types1589701 +Node: Adding Specifications1594775 +Node: Retrieving Specifications1604137 +Node: Specifier Tag Functions1607872 +Node: Specifier Instancing Functions1611106 +Node: Specifier Example1614513 +Node: Creating Specifiers1617619 +Node: Specifier Validation Functions1619868 +Node: Other Specification Functions1622252 +Node: Faces and Window-System Objects1626071 +Node: Faces1626395 +Node: Merging Faces1628012 +Node: Basic Face Functions1629973 +Node: Face Properties1632071 +Node: Face Convenience Functions1641630 +Node: Other Face Display Functions1644760 +Node: Fonts1645573 +Node: Font Specifiers1646274 +Node: Font Instances1646515 +Node: Font Instance Names1647482 +Node: Font Instance Size1648323 +Node: Font Instance Characteristics1649609 +Node: Font Convenience Functions1650778 +Node: Colors1652068 +Node: Color Specifiers1652508 +Node: Color Instances1652735 +Node: Color Instance Properties1653479 +Node: Color Convenience Functions1654105 +Node: Glyphs1655158 +Node: Glyph Functions1656750 +Node: Creating Glyphs1657157 +Node: Glyph Properties1658744 +Node: Glyph Convenience Functions1667911 +Node: Glyph Dimensions1671858 +Node: Images1672938 +Node: Image Specifiers1673387 +Node: Image Instantiator Conversion1684809 +Node: Image Instances1686174 +Node: Image Instance Types1686925 +Node: Image Instance Functions1689580 +Node: Glyph Types1694149 +Node: Mouse Pointer1695921 +Node: Redisplay Glyphs1698924 +Node: Subwindows1699957 +Node: Annotations1700200 +Node: Annotation Basics1701216 +Node: Annotation Primitives1705154 +Node: Annotation Properties1706483 +Node: Locating Annotations1709523 +Node: Margin Primitives1710360 +Node: Annotation Hooks1712254 +Node: Display1712914 +Node: Refresh Screen1713892 +Node: Truncation1715803 +Node: The Echo Area1718328 +Node: Warnings1724764 +Node: Invisible Text1729200 +Node: Selective Display1731779 +Node: Overlay Arrow1735905 +Node: Temporary Displays1737258 +Node: Blinking1741379 +Node: Usual Display1743564 +Node: Display Tables1746113 +Node: Display Table Format1746917 +Node: Active Display Table1748359 +Node: Character Descriptors1749551 +Node: Beeping1750308 +Node: Hash Tables1755074 +Node: Introduction to Hash Tables1755674 +Node: Working With Hash Tables1758040 +Node: Weak Hash Tables1758868 +Node: Range Tables1761092 +Node: Introduction to Range Tables1761781 +Node: Working With Range Tables1762212 +Node: Databases1763097 +Node: Connecting to a Database1763396 +Node: Working With a Database1764488 +Node: Other Database Functions1765346 +Node: Processes1765920 +Node: Subprocess Creation1768144 +Node: Synchronous Processes1771433 +Node: MS-DOS Subprocesses1778151 +Node: Asynchronous Processes1779225 +Node: Deleting Processes1782938 +Node: Process Information1784809 +Node: Input to Processes1788735 +Node: Signals to Processes1791025 +Node: Output from Processes1795445 +Node: Process Buffers1796257 +Node: Filter Functions1799124 +Node: Accepting Output1804694 +Node: Sentinels1806221 +Node: Process Window Size1809711 +Node: Transaction Queues1810060 +Node: Network1811758 +Node: System Interface1813592 +Node: Starting Up1814862 +Node: Start-up Summary1815456 +Node: Init File1819010 +Node: Terminal-Specific1821391 +Node: Command Line Arguments1824550 +Node: Getting Out1828039 +Node: Killing XEmacs1828608 +Node: Suspending XEmacs1830277 +Node: System Environment1833619 +Node: User Identification1840286 +Node: Time of Day1843815 +Node: Time Conversion1846602 +Node: Timers1851642 +Node: Terminal Input1853815 +Node: Input Modes1854318 +Node: Translating Input1856731 +Node: Recording Input1860896 +Node: Terminal Output1862996 +Node: Flow Control1866619 +Node: Batch Mode1870411 +Node: X-Windows1871793 +Node: X Selections1872605 +Node: X Server1874815 +Node: Resources1875216 +Node: Server Data1880357 +Node: Grabs1881564 +Node: X Miscellaneous1883145 +Node: ToolTalk Support1885530 +Node: XEmacs ToolTalk API Summary1885747 +Node: Sending Messages1887047 +Node: Example of Sending Messages1887298 +Node: Elisp Interface for Sending Messages1888360 +Node: Receiving Messages1894753 +Node: Example of Receiving Messages1894976 +Node: Elisp Interface for Receiving Messages1895812 +Node: LDAP Support1899637 +Node: Building XEmacs with LDAP support1900133 +Node: XEmacs LDAP API1901061 +Node: LDAP Variables1901791 +Node: The High-Level LDAP API1904086 +Node: The Low-Level LDAP API1905191 +Node: The LDAP Lisp Object1905465 +Node: Opening and Closing a LDAP Connection1906018 +Node: Searching on a LDAP Server (Low-level)1907801 +Node: Syntax of Search Filters1909194 +Node: Internationalization1910492 +Node: I18N Levels 1 and 21910829 +Node: I18N Level 31911535 +Node: Level 3 Basics1911816 +Node: Level 3 Primitives1912649 +Node: Dynamic Messaging1914255 +Node: Domain Specification1914718 +Node: Documentation String Extraction1916621 +Node: I18N Level 41917539 +Node: MULE1917731 +Node: Internationalization Terminology1918842 +Node: Charsets1927381 +Node: Charset Properties1928077 +Node: Basic Charset Functions1932763 +Node: Charset Property Functions1934944 +Node: Predefined Charsets1936987 +Node: MULE Characters1939907 +Node: Composite Characters1940754 +Node: ISO 20221942008 +Node: Coding Systems1947730 +Node: Coding System Types1949652 +Node: EOL Conversion1951471 +Node: Coding System Properties1952654 +Node: Basic Coding System Functions1956506 +Node: Coding System Property Functions1958410 +Node: Encoding and Decoding Text1958968 +Node: Detection of Textual Encoding1960104 +Node: Big5 and Shift-JIS Functions1961640 +Node: CCL1962728 +Node: CCL Syntax1965832 +Node: CCL Statements1967420 +Node: CCL Expressions1972068 +Node: Calling CCL1974607 +Node: CCL Examples1977596 +Node: Category Tables1977733 +Node: Tips1980092 +Node: Style Tips1980733 +Node: Compilation Tips1990252 +Node: Documentation Tips1992166 +Node: Comment Tips1997675 +Node: Library Headers2000678 +Node: Building XEmacs and Object Allocation2004650 +Node: Building XEmacs2005533 +Node: Pure Storage2011868 +Node: Garbage Collection2014656 +Node: Standard Errors2025793 +Node: Standard Buffer-Local Variables2029923 +Node: Standard Keymaps2032558 +Node: Standard Hooks2036290 +Node: Index2043790  End Tag Table diff -r -u -N xemacs-21.1.12/info/lispref.info-1 xemacs-21.1.13/info/lispref.info-1 --- xemacs-21.1.12/info/lispref.info-1 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-1 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-10 xemacs-21.1.13/info/lispref.info-10 --- xemacs-21.1.12/info/lispref.info-10 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-10 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-11 xemacs-21.1.13/info/lispref.info-11 --- xemacs-21.1.12/info/lispref.info-11 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-11 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-12 xemacs-21.1.13/info/lispref.info-12 --- xemacs-21.1.12/info/lispref.info-12 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-12 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-13 xemacs-21.1.13/info/lispref.info-13 --- xemacs-21.1.12/info/lispref.info-13 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-13 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-14 xemacs-21.1.13/info/lispref.info-14 --- xemacs-21.1.12/info/lispref.info-14 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-14 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-15 xemacs-21.1.13/info/lispref.info-15 --- xemacs-21.1.12/info/lispref.info-15 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-15 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-16 xemacs-21.1.13/info/lispref.info-16 --- xemacs-21.1.12/info/lispref.info-16 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-16 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-17 xemacs-21.1.13/info/lispref.info-17 --- xemacs-21.1.12/info/lispref.info-17 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-17 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-18 xemacs-21.1.13/info/lispref.info-18 --- xemacs-21.1.12/info/lispref.info-18 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-18 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-19 xemacs-21.1.13/info/lispref.info-19 --- xemacs-21.1.12/info/lispref.info-19 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-19 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor @@ -665,7 +665,7 @@ indirect keymap bindings. This makes it possible to search for an indirect definition itself. - This function is used by `where-is' (*note Help: (emacs)Help.). + This function is used by `where-is' (*note Help: (xemacs)Help.). (where-is-internal 'describe-function) => ([(control h) d] [(control h) f] [f1 d] [f1 f]) diff -r -u -N xemacs-21.1.12/info/lispref.info-2 xemacs-21.1.13/info/lispref.info-2 --- xemacs-21.1.12/info/lispref.info-2 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-2 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor @@ -57,7 +57,6 @@ ************************** Version 2, June 1991 - Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA @@ -116,7 +115,6 @@ modification follow. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", diff -r -u -N xemacs-21.1.12/info/lispref.info-20 xemacs-21.1.13/info/lispref.info-20 --- xemacs-21.1.12/info/lispref.info-20 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-20 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-21 xemacs-21.1.13/info/lispref.info-21 --- xemacs-21.1.12/info/lispref.info-21 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-21 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor @@ -84,7 +84,7 @@ If you run `normal-mode' interactively, the argument FIND-FILE is normally `nil'. In this case, `normal-mode' unconditionally processes any local variables list. *Note Local Variables in - Files: (emacs)File variables, for the syntax of the local + Files: (xemacs)File variables, for the syntax of the local variables section of a file. `normal-mode' uses `condition-case' around the call to the major @@ -118,7 +118,7 @@ value of a local variable. However, this function does not look for the `mode:' local variable near the end of a file; the `hack-local-variables' function does that. *Note How Major Modes - are Chosen: (emacs)Choosing Modes. + are Chosen: (xemacs)Choosing Modes. - User Option: default-major-mode This variable holds the default major mode for new buffers. The @@ -1003,7 +1003,7 @@ this is transparent to the user. For information on the uses of documentation strings, see *Note -Help: (emacs)Help. +Help: (xemacs)Help. The `emacs/lib-src' directory contains two utilities that you can use to print nice-looking hardcopy for the file diff -r -u -N xemacs-21.1.12/info/lispref.info-22 xemacs-21.1.13/info/lispref.info-22 --- xemacs-21.1.12/info/lispref.info-22 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-22 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-23 xemacs-21.1.13/info/lispref.info-23 --- xemacs-21.1.12/info/lispref.info-23 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-23 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-24 xemacs-21.1.13/info/lispref.info-24 --- xemacs-21.1.12/info/lispref.info-24 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-24 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor @@ -415,7 +415,7 @@ called "auto-saving". Auto-saving prevents you from losing more than a limited amount of work if the system crashes. By default, auto-saves happen every 300 keystrokes, or after around 30 seconds of idle time. -*Note Auto-Save: (emacs)Auto-Save, for information on auto-save for +*Note Auto-Save: (xemacs)Auto-Save, for information on auto-save for users. Here we describe the functions used to implement auto-saving and the variables that control them. @@ -597,7 +597,7 @@ If you have made extensive changes to a file and then change your mind about them, you can get rid of them by reading in the previous version of the file with the `revert-buffer' command. *Note Reverting -a Buffer: (emacs)Reverting. +a Buffer: (xemacs)Reverting. - Command: revert-buffer &optional check-auto-save noconfirm This command replaces the buffer text with the text of the visited diff -r -u -N xemacs-21.1.12/info/lispref.info-25 xemacs-21.1.13/info/lispref.info-25 --- xemacs-21.1.12/info/lispref.info-25 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-25 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-26 xemacs-21.1.13/info/lispref.info-26 --- xemacs-21.1.12/info/lispref.info-26 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-26 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor @@ -83,7 +83,7 @@ - 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 + For a non-selected window, this is the value point would have (in that window's buffer) if that window were selected. When WINDOW is the selected window and its buffer is also the diff -r -u -N xemacs-21.1.12/info/lispref.info-27 xemacs-21.1.13/info/lispref.info-27 --- xemacs-21.1.12/info/lispref.info-27 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-27 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor @@ -551,11 +551,11 @@ - Function: valid-device-type-p device-type This function returns whether DEVICE-TYPE (which should be a - symbol) species a valid device type. + symbol) specifies a valid device type. - Function: valid-device-class-p device-class This function returns whether DEVICE-CLASS (which should be a - symbol) species a valid device class. + symbol) specifies a valid device class. - Variable: terminal-device This variable holds the initial terminal device object, which @@ -1094,7 +1094,7 @@ various characters; see *Note Syntax Tables::. *Note Parsing 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. +(xemacs)Lists and Sexps. - Command: forward-list &optional arg This function moves forward across ARG balanced groups of diff -r -u -N xemacs-21.1.12/info/lispref.info-28 xemacs-21.1.13/info/lispref.info-28 --- xemacs-21.1.12/info/lispref.info-28 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-28 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-29 xemacs-21.1.13/info/lispref.info-29 --- xemacs-21.1.12/info/lispref.info-29 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-29 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-3 xemacs-21.1.13/info/lispref.info-3 --- xemacs-21.1.12/info/lispref.info-3 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-3 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-30 xemacs-21.1.13/info/lispref.info-30 --- xemacs-21.1.12/info/lispref.info-30 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-30 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-31 xemacs-21.1.13/info/lispref.info-31 --- xemacs-21.1.12/info/lispref.info-31 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-31 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor @@ -652,8 +652,8 @@ In XEmacs, you can search for the next match for a regexp either incrementally or not. Incremental search commands are described in the -`The XEmacs Reference Manual'. *Note Regular Expression Search: -(emacs)Regexp Search. Here we describe only the search functions +`The XEmacs Lisp Reference Manual'. *Note Regular Expression Search: +(xemacs)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 diff -r -u -N xemacs-21.1.12/info/lispref.info-32 xemacs-21.1.13/info/lispref.info-32 --- xemacs-21.1.12/info/lispref.info-32 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-32 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor @@ -859,7 +859,7 @@ *Note Creating Symbols::. For the user-level commands for abbrevs, see *Note Abbrev Mode: -(emacs)Abbrevs. +(xemacs)Abbrevs. * Menu: diff -r -u -N xemacs-21.1.12/info/lispref.info-33 xemacs-21.1.13/info/lispref.info-33 --- xemacs-21.1.12/info/lispref.info-33 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-33 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-34 xemacs-21.1.13/info/lispref.info-34 --- xemacs-21.1.12/info/lispref.info-34 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-34 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-35 xemacs-21.1.13/info/lispref.info-35 --- xemacs-21.1.12/info/lispref.info-35 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-35 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-36 xemacs-21.1.13/info/lispref.info-36 --- xemacs-21.1.12/info/lispref.info-36 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-36 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-37 xemacs-21.1.13/info/lispref.info-37 --- xemacs-21.1.12/info/lispref.info-37 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-37 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor @@ -62,8 +62,8 @@ active) in the same place on the screen as the echo area. The `XEmacs Reference Manual' specifies the rules for resolving conflicts between the echo area and the minibuffer for use of that screen space (*note -The Minibuffer: (emacs)Minibuffer.). Error messages appear in the echo -area; see *Note Errors::. +The Minibuffer: (xemacs)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 @@ -1189,16 +1189,16 @@ can be any combination of `r' `w' and `+', for read, write, and creation flags. - TYPE can have the value `'dbm' or `'berkeley_db' to select the + TYPE can have the value `'dbm' or `'berkeley-db' to select the type of database file to use. (Note: XEmacs may not support both of these types.) For a TYPE of `'dbm', there are no subtypes, so SUBTYPE should by `nil'. - For a TYPE of `'berkeley_db', the following subtypes are + For a TYPE of `'berkeley-db', the following subtypes are available: `'hash', `'btree', and `'recno'. See the manpages for - the Berkeley DB functions to more information about these types. + the Berkeley DB functions for more information about these types. - Function: close-database obj This function closes database OBJ. diff -r -u -N xemacs-21.1.12/info/lispref.info-38 xemacs-21.1.13/info/lispref.info-38 --- xemacs-21.1.12/info/lispref.info-38 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-38 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-39 xemacs-21.1.13/info/lispref.info-39 --- xemacs-21.1.12/info/lispref.info-39 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-39 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-4 xemacs-21.1.13/info/lispref.info-4 --- xemacs-21.1.12/info/lispref.info-4 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-4 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-40 xemacs-21.1.13/info/lispref.info-40 --- xemacs-21.1.12/info/lispref.info-40 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-40 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-41 xemacs-21.1.13/info/lispref.info-41 --- xemacs-21.1.12/info/lispref.info-41 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-41 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-42 xemacs-21.1.13/info/lispref.info-42 --- xemacs-21.1.12/info/lispref.info-42 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-42 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor @@ -932,7 +932,7 @@ The indentation commands of the Lisp modes in XEmacs, such as `M-;' (`indent-for-comment') and (`lisp-indent-line') automatically indent comments according to these conventions, depending on the number -of semicolons. *Note Manipulating Comments: (emacs)Comments. +of semicolons. *Note Manipulating Comments: (xemacs)Comments.  File: lispref.info, Node: Library Headers, Prev: Comment Tips, Up: Tips diff -r -u -N xemacs-21.1.12/info/lispref.info-43 xemacs-21.1.13/info/lispref.info-43 --- xemacs-21.1.12/info/lispref.info-43 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-43 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor @@ -701,7 +701,7 @@ *note Usual Display:: `comment-column' - *note Comments: (emacs)Comments. + *note Comments: (xemacs)Comments. `default-directory' *note System Environment:: @@ -713,7 +713,7 @@ *note Auto Filling:: `goal-column' - *note Moving Point: (emacs)Moving Point. + *note Moving Point: (xemacs)Moving Point. `left-margin' *note Indentation:: diff -r -u -N xemacs-21.1.12/info/lispref.info-44 xemacs-21.1.13/info/lispref.info-44 --- xemacs-21.1.12/info/lispref.info-44 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-44 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-5 xemacs-21.1.13/info/lispref.info-5 --- xemacs-21.1.12/info/lispref.info-5 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-5 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-6 xemacs-21.1.13/info/lispref.info-6 --- xemacs-21.1.12/info/lispref.info-6 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-6 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-7 xemacs-21.1.13/info/lispref.info-7 --- xemacs-21.1.12/info/lispref.info-7 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-7 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor @@ -628,17 +628,17 @@ Because this symbol is the variable which holds the name of the file being visited in the current buffer, the value cell contents we see are -the name of the source file of this chapter of the XEmacs Lisp Manual. -The property list cell contains the list `(variable-documentation -29529)' which tells the documentation functions where to find the -documentation string for the variable `buffer-file-name' in the `DOC' -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. +the name of the source file of this chapter of the XEmacs Lisp Reference +Manual. The property list cell contains the list +`(variable-documentation 29529)' which tells the documentation +functions where to find the documentation string for the variable +`buffer-file-name' in the `DOC' 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.  File: lispref.info, Node: Definitions, Next: Creating Symbols, Prev: Symbol Components, Up: Symbols diff -r -u -N xemacs-21.1.12/info/lispref.info-8 xemacs-21.1.13/info/lispref.info-8 --- xemacs-21.1.12/info/lispref.info-8 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-8 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/lispref.info-9 xemacs-21.1.13/info/lispref.info-9 --- xemacs-21.1.12/info/lispref.info-9 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/lispref.info-9 Sun Jan 7 15:57:34 2001 @@ -1,4 +1,4 @@ -This is ../../info/lispref.info, produced by makeinfo version 4.0 from +This is ../../info/lispref.info, produced by makeinfo version 4.0a from lispref.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/new-users-guide.info xemacs-21.1.13/info/new-users-guide.info --- xemacs-21.1.12/info/new-users-guide.info Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/new-users-guide.info Sun Jan 7 15:57:34 2001 @@ -1,5 +1,5 @@ This is ../../info/new-users-guide.info, produced by makeinfo version -4.0 from new-users-guide.texi. +4.0a from new-users-guide.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY @@ -18,59 +18,59 @@  Indirect: -new-users-guide.info-1: 622 -new-users-guide.info-2: 50455 -new-users-guide.info-3: 99959 +new-users-guide.info-1: 623 +new-users-guide.info-2: 50456 +new-users-guide.info-3: 99960  Tag Table: (Indirect) -Node: Top622 -Node: Intro4599 -Node: Entering7182 -Node: Enter8696 -Node: Frame9378 -Node: Exiting11047 -Node: Mode Line12247 -Node: Echo Area14394 -Node: Windows and Menus15749 -Node: XEmacs Window16202 -Node: Pull-down Menus19823 -Node: File menu20702 -Node: Edit menu23961 -Node: Options Menu26487 -Node: Buffers Menu31269 -Node: Help menu31655 -Node: Edit32153 -Node: Insert33747 -Node: Cursor Position35075 -Node: Erase37146 -Node: Numeric Argument38300 -Node: Undo39484 -Node: Customization Basics40247 -Node: Customizing key Bindings41476 -Node: Customizing Menus44966 -Node: Help50455 -Node: The Help Menu51143 -Node: Modes56068 -Node: Major Modes56984 -Node: Minor Modes60933 -Node: Files65020 -Node: File Names65742 -Node: Visiting67545 -Node: Saving Files69669 -Node: Other Customizations73046 -Node: Setting Variables75514 -Node: Init File78723 -Node: Select and Move84193 -Node: Selecting Text85147 -Node: Mouse86660 -Node: Region Operation87985 -Node: Moving Text89245 -Node: Accumulating text90485 -Node: Search and Replace92806 -Node: Key Index96670 -Node: Command Index99959 -Node: Variable Index104061 -Node: Concept Index104638 +Node: Top623 +Node: Intro4600 +Node: Entering7183 +Node: Enter8697 +Node: Frame9379 +Node: Exiting11048 +Node: Mode Line12248 +Node: Echo Area14395 +Node: Windows and Menus15750 +Node: XEmacs Window16203 +Node: Pull-down Menus19824 +Node: File menu20703 +Node: Edit menu23962 +Node: Options Menu26488 +Node: Buffers Menu31270 +Node: Help menu31656 +Node: Edit32154 +Node: Insert33748 +Node: Cursor Position35076 +Node: Erase37147 +Node: Numeric Argument38301 +Node: Undo39485 +Node: Customization Basics40248 +Node: Customizing key Bindings41477 +Node: Customizing Menus44967 +Node: Help50456 +Node: The Help Menu51144 +Node: Modes56069 +Node: Major Modes56985 +Node: Minor Modes60934 +Node: Files65021 +Node: File Names65743 +Node: Visiting67546 +Node: Saving Files69670 +Node: Other Customizations73047 +Node: Setting Variables75515 +Node: Init File78724 +Node: Select and Move84194 +Node: Selecting Text85148 +Node: Mouse86661 +Node: Region Operation87986 +Node: Moving Text89246 +Node: Accumulating text90486 +Node: Search and Replace92807 +Node: Key Index96671 +Node: Command Index99960 +Node: Variable Index104062 +Node: Concept Index104639  End Tag Table diff -r -u -N xemacs-21.1.12/info/new-users-guide.info-1 xemacs-21.1.13/info/new-users-guide.info-1 --- xemacs-21.1.12/info/new-users-guide.info-1 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/new-users-guide.info-1 Sun Jan 7 15:57:34 2001 @@ -1,5 +1,5 @@ This is ../../info/new-users-guide.info, produced by makeinfo version -4.0 from new-users-guide.texi. +4.0a from new-users-guide.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY diff -r -u -N xemacs-21.1.12/info/new-users-guide.info-2 xemacs-21.1.13/info/new-users-guide.info-2 --- xemacs-21.1.12/info/new-users-guide.info-2 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/new-users-guide.info-2 Sun Jan 7 15:57:34 2001 @@ -1,5 +1,5 @@ This is ../../info/new-users-guide.info, produced by makeinfo version -4.0 from new-users-guide.texi. +4.0a from new-users-guide.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY diff -r -u -N xemacs-21.1.12/info/new-users-guide.info-3 xemacs-21.1.13/info/new-users-guide.info-3 --- xemacs-21.1.12/info/new-users-guide.info-3 Fri Aug 4 21:31:19 2000 +++ xemacs-21.1.13/info/new-users-guide.info-3 Sun Jan 7 15:57:34 2001 @@ -1,5 +1,5 @@ This is ../../info/new-users-guide.info, produced by makeinfo version -4.0 from new-users-guide.texi. +4.0a from new-users-guide.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY diff -r -u -N xemacs-21.1.12/info/standards.info xemacs-21.1.13/info/standards.info --- xemacs-21.1.12/info/standards.info Fri Aug 4 21:31:15 2000 +++ xemacs-21.1.13/info/standards.info Sun Jan 7 15:57:30 2001 @@ -1,4 +1,4 @@ -This is ../info/standards.info, produced by makeinfo version 4.0 from +This is ../info/standards.info, produced by makeinfo version 4.0a from standards.texi. START-INFO-DIR-ENTRY @@ -24,53 +24,53 @@  Indirect: -standards.info-1: 956 -standards.info-2: 49817 -standards.info-3: 95815 +standards.info-1: 957 +standards.info-2: 49818 +standards.info-3: 95816  Tag Table: (Indirect) -Node: Top956 -Node: Preface1465 -Node: Intellectual Property2503 -Node: Reading Non-Free Code2859 -Node: Contributions4591 -Node: Design Advice6189 -Node: Compatibility6672 -Node: Using Extensions8316 -Node: ANSI C9818 -Node: Source Language11054 -Node: Program Behavior12188 -Node: Semantics12780 -Node: Libraries16534 -Node: Errors17769 -Node: User Interfaces18992 -Node: Memory Usage36017 -Node: Writing C37014 -Node: Formatting37726 -Node: Comments40998 -Node: Syntactic Conventions43791 -Node: Names46729 -Node: System Portability48041 -Node: CPU Portability49817 -Node: System Functions51978 -Node: Internationalization56879 -Node: Documentation59080 -Node: GNU Manuals59624 -Node: Manual Structure Details61666 -Node: NEWS File63071 -Node: Change Logs63752 -Node: Man Pages67954 -Node: Reading other Manuals69573 -Node: Managing Releases70357 -Node: Configuration71063 -Node: Makefile Conventions78003 -Node: Makefile Basics78527 -Node: Utilities in Makefiles80998 -Node: Command Variables82872 -Node: Directory Variables85708 -Node: Standard Targets95815 -Ref: Standard Targets-Footnote-1105456 -Node: Releases105556 +Node: Top957 +Node: Preface1466 +Node: Intellectual Property2504 +Node: Reading Non-Free Code2860 +Node: Contributions4592 +Node: Design Advice6190 +Node: Compatibility6673 +Node: Using Extensions8317 +Node: ANSI C9819 +Node: Source Language11055 +Node: Program Behavior12189 +Node: Semantics12781 +Node: Libraries16535 +Node: Errors17770 +Node: User Interfaces18993 +Node: Memory Usage36018 +Node: Writing C37015 +Node: Formatting37727 +Node: Comments40999 +Node: Syntactic Conventions43792 +Node: Names46730 +Node: System Portability48042 +Node: CPU Portability49818 +Node: System Functions51979 +Node: Internationalization56880 +Node: Documentation59081 +Node: GNU Manuals59625 +Node: Manual Structure Details61667 +Node: NEWS File63072 +Node: Change Logs63753 +Node: Man Pages67955 +Node: Reading other Manuals69574 +Node: Managing Releases70358 +Node: Configuration71064 +Node: Makefile Conventions78004 +Node: Makefile Basics78528 +Node: Utilities in Makefiles80999 +Node: Command Variables82873 +Node: Directory Variables85709 +Node: Standard Targets95816 +Ref: Standard Targets-Footnote-1105457 +Node: Releases105557  End Tag Table diff -r -u -N xemacs-21.1.12/info/standards.info-1 xemacs-21.1.13/info/standards.info-1 --- xemacs-21.1.12/info/standards.info-1 Fri Aug 4 21:31:15 2000 +++ xemacs-21.1.13/info/standards.info-1 Sun Jan 7 15:57:30 2001 @@ -1,4 +1,4 @@ -This is ../info/standards.info, produced by makeinfo version 4.0 from +This is ../info/standards.info, produced by makeinfo version 4.0a from standards.texi. START-INFO-DIR-ENTRY diff -r -u -N xemacs-21.1.12/info/standards.info-2 xemacs-21.1.13/info/standards.info-2 --- xemacs-21.1.12/info/standards.info-2 Fri Aug 4 21:31:15 2000 +++ xemacs-21.1.13/info/standards.info-2 Sun Jan 7 15:57:30 2001 @@ -1,4 +1,4 @@ -This is ../info/standards.info, produced by makeinfo version 4.0 from +This is ../info/standards.info, produced by makeinfo version 4.0a from standards.texi. START-INFO-DIR-ENTRY diff -r -u -N xemacs-21.1.12/info/standards.info-3 xemacs-21.1.13/info/standards.info-3 --- xemacs-21.1.12/info/standards.info-3 Fri Aug 4 21:31:15 2000 +++ xemacs-21.1.13/info/standards.info-3 Sun Jan 7 15:57:30 2001 @@ -1,4 +1,4 @@ -This is ../info/standards.info, produced by makeinfo version 4.0 from +This is ../info/standards.info, produced by makeinfo version 4.0a from standards.texi. START-INFO-DIR-ENTRY diff -r -u -N xemacs-21.1.12/info/term.info xemacs-21.1.13/info/term.info --- xemacs-21.1.12/info/term.info Fri Aug 4 21:31:15 2000 +++ xemacs-21.1.13/info/term.info Sun Jan 7 15:57:30 2001 @@ -1,4 +1,4 @@ -This is ../info/term.info, produced by makeinfo version 4.0 from +This is ../info/term.info, produced by makeinfo version 4.0a from term.texi. INFO-DIR-SECTION XEmacs Editor @@ -421,21 +421,21 @@  Tag Table: -Node: Top201 -Node: term mode367 -Node: Overview1190 -Node: Output from the inferior1940 -Node: subbuffer3520 -Node: altsubbuffer4843 -Node: Input to the inferior5868 -Node: Connecting to remote computers7388 -Node: Paging9293 -Node: Terminal escapes9962 -Node: Cursor motion10830 -Node: Erasing11490 -Node: Inserting and deleting12285 -Node: Scrolling12675 -Node: Command hook13121 -Node: Miscellaneous escapes14157 +Node: Top202 +Node: term mode368 +Node: Overview1191 +Node: Output from the inferior1941 +Node: subbuffer3521 +Node: altsubbuffer4844 +Node: Input to the inferior5869 +Node: Connecting to remote computers7389 +Node: Paging9294 +Node: Terminal escapes9963 +Node: Cursor motion10831 +Node: Erasing11491 +Node: Inserting and deleting12286 +Node: Scrolling12676 +Node: Command hook13122 +Node: Miscellaneous escapes14158  End Tag Table diff -r -u -N xemacs-21.1.12/info/termcap.info xemacs-21.1.13/info/termcap.info --- xemacs-21.1.12/info/termcap.info Fri Aug 4 21:31:15 2000 +++ xemacs-21.1.13/info/termcap.info Sun Jan 7 15:57:31 2001 @@ -1,4 +1,4 @@ -This is ../info/termcap.info, produced by makeinfo version 4.0 from +This is ../info/termcap.info, produced by makeinfo version 4.0a from termcap.texi. START-INFO-DIR-ENTRY @@ -25,57 +25,57 @@  Indirect: -termcap.info-1: 959 -termcap.info-2: 49216 -termcap.info-3: 92525 +termcap.info-1: 960 +termcap.info-2: 49217 +termcap.info-3: 92526  Tag Table: (Indirect) -Node: Top959 -Node: Introduction1604 -Node: Library3331 -Node: Preparation4348 -Node: Find5547 -Node: Interrogate9094 -Node: Initialize14401 -Node: Padding16039 -Node: Why Pad16700 -Node: Describe Padding18344 -Node: Output Padding19819 -Node: Parameters23432 -Node: Encode Parameters25090 -Node: Using Parameters31195 -Node: tparam31784 -Node: tgoto33849 -Node: Data Base36404 -Node: Format37281 -Node: Capability Format39372 -Node: Naming42422 -Node: Inheriting46990 -Node: Capabilities49216 -Node: Basic52059 -Node: Screen Size55903 -Node: Cursor Motion57643 -Node: Wrapping67293 -Node: Scrolling70117 -Node: Windows75137 -Node: Clearing75871 -Node: Insdel Line77635 -Node: Insdel Char82541 -Node: Standout92525 -Node: Underlining101582 -Node: Cursor Visibility104001 -Node: Bell104749 -Node: Keypad105298 -Node: Meta Key110019 -Node: Initialization110973 -Node: Pad Specs113337 -Node: Status Line115390 -Node: Half-Line117274 -Node: Printer118076 -Node: Summary119755 -Node: Var Index129960 -Node: Cap Index130684 -Node: Index137875 +Node: Top960 +Node: Introduction1605 +Node: Library3332 +Node: Preparation4349 +Node: Find5548 +Node: Interrogate9095 +Node: Initialize14402 +Node: Padding16040 +Node: Why Pad16701 +Node: Describe Padding18345 +Node: Output Padding19820 +Node: Parameters23433 +Node: Encode Parameters25091 +Node: Using Parameters31196 +Node: tparam31785 +Node: tgoto33850 +Node: Data Base36405 +Node: Format37282 +Node: Capability Format39373 +Node: Naming42423 +Node: Inheriting46991 +Node: Capabilities49217 +Node: Basic52060 +Node: Screen Size55904 +Node: Cursor Motion57644 +Node: Wrapping67294 +Node: Scrolling70118 +Node: Windows75138 +Node: Clearing75872 +Node: Insdel Line77636 +Node: Insdel Char82542 +Node: Standout92526 +Node: Underlining101583 +Node: Cursor Visibility104002 +Node: Bell104750 +Node: Keypad105299 +Node: Meta Key110020 +Node: Initialization110974 +Node: Pad Specs113338 +Node: Status Line115391 +Node: Half-Line117275 +Node: Printer118077 +Node: Summary119756 +Node: Var Index129961 +Node: Cap Index130685 +Node: Index137876  End Tag Table diff -r -u -N xemacs-21.1.12/info/termcap.info-1 xemacs-21.1.13/info/termcap.info-1 --- xemacs-21.1.12/info/termcap.info-1 Fri Aug 4 21:31:15 2000 +++ xemacs-21.1.13/info/termcap.info-1 Sun Jan 7 15:57:31 2001 @@ -1,4 +1,4 @@ -This is ../info/termcap.info, produced by makeinfo version 4.0 from +This is ../info/termcap.info, produced by makeinfo version 4.0a from termcap.texi. START-INFO-DIR-ENTRY diff -r -u -N xemacs-21.1.12/info/termcap.info-2 xemacs-21.1.13/info/termcap.info-2 --- xemacs-21.1.12/info/termcap.info-2 Fri Aug 4 21:31:15 2000 +++ xemacs-21.1.13/info/termcap.info-2 Sun Jan 7 15:57:31 2001 @@ -1,4 +1,4 @@ -This is ../info/termcap.info, produced by makeinfo version 4.0 from +This is ../info/termcap.info, produced by makeinfo version 4.0a from termcap.texi. START-INFO-DIR-ENTRY diff -r -u -N xemacs-21.1.12/info/termcap.info-3 xemacs-21.1.13/info/termcap.info-3 --- xemacs-21.1.12/info/termcap.info-3 Fri Aug 4 21:31:15 2000 +++ xemacs-21.1.13/info/termcap.info-3 Sun Jan 7 15:57:31 2001 @@ -1,4 +1,4 @@ -This is ../info/termcap.info, produced by makeinfo version 4.0 from +This is ../info/termcap.info, produced by makeinfo version 4.0a from termcap.texi. START-INFO-DIR-ENTRY diff -r -u -N xemacs-21.1.12/info/texinfo.info xemacs-21.1.13/info/texinfo.info --- xemacs-21.1.12/info/texinfo.info Fri Aug 4 21:31:16 2000 +++ xemacs-21.1.13/info/texinfo.info Sun Jan 7 15:57:31 2001 @@ -1,4 +1,4 @@ -This is ../info/texinfo.info, produced by makeinfo version 4.0 from +This is ../info/texinfo.info, produced by makeinfo version 4.0a from texinfo.texi. INFO-DIR-SECTION Texinfo documentation system @@ -34,105 +34,105 @@  Indirect: -texinfo.info-1: 1484 -texinfo.info-2: 48703 -texinfo.info-3: 96677 -texinfo.info-4: 146069 -texinfo.info-5: 196042 -texinfo.info-6: 245134 -texinfo.info-7: 293729 -texinfo.info-8: 343544 -texinfo.info-9: 392857 -texinfo.info-10: 435235 -texinfo.info-11: 481351 -texinfo.info-12: 519511 +texinfo.info-1: 1485 +texinfo.info-2: 48708 +texinfo.info-3: 96682 +texinfo.info-4: 146074 +texinfo.info-5: 196054 +texinfo.info-6: 245146 +texinfo.info-7: 293745 +texinfo.info-8: 343560 +texinfo.info-9: 392873 +texinfo.info-10: 435251 +texinfo.info-11: 481367 +texinfo.info-12: 519527  Tag Table: (Indirect) -Node: Top1484 -Node: Copying23799 -Node: Overview25804 -Node: Overview-Footnotes27233 -Ref: Overview-Footnote-127297 -Node: Using Texinfo27769 -Node: Info Files30252 -Node: Info Files-Footnotes34288 -Ref: Info Files-Footnote-134356 -Node: Printed Books34535 -Node: Printed Books-Footnotes37207 -Ref: Printed Books-Footnote-137281 -Node: Formatting Commands37491 -Node: Formatting Commands-Footnotes40318 -Ref: Formatting Commands-Footnote-140404 -Node: Conventions41020 -Node: Comments43582 -Node: Minimum45005 -Node: Six Parts47191 -Node: Short Sample48703 -Node: Acknowledgements52839 -Node: Texinfo Mode53674 -Node: Texinfo Mode Overview55046 -Node: Emacs Editing55822 -Node: Inserting57952 -Node: Showing the Structure62233 -Node: Updating Nodes and Menus64760 -Node: Updating Commands65833 -Node: Updating Requirements71894 -Node: Other Updating Commands74191 -Node: Info Formatting77459 -Node: Printing78717 -Node: Texinfo Mode Summary81062 -Node: Beginning a File85816 -Node: Four Parts86707 -Node: Sample Beginning88177 -Node: Header89797 -Node: First Line91149 -Node: Start of Header92138 -Node: setfilename92851 -Node: settitle94787 -Node: setchapternewpage96677 -Node: paragraphindent99438 -Node: End of Header100920 -Node: Info Summary and Permissions101759 -Node: Titlepage & Copyright Page102778 -Node: titlepage104384 -Node: titlepage-Footnotes106666 -Ref: titlepage-Footnote-1106732 -Node: titlefont center sp107006 -Node: title subtitle author108232 -Node: Copyright & Permissions110504 -Node: end titlepage112505 -Node: headings on off114211 -Node: The Top Node116256 -Node: Title of Top Node117411 -Node: Master Menu Parts118664 -Node: Software Copying Permissions120901 -Node: Ending a File122069 -Node: Printing Indices & Menus122917 -Node: Contents125226 -Node: File End127566 -Node: Structuring128239 -Node: Tree Structuring129896 -Node: Structuring Command Types131339 -Node: makeinfo top133666 -Node: chapter134199 -Node: unnumbered & appendix135223 -Node: majorheading & chapheading136062 -Node: section136883 -Node: unnumberedsec appendixsec heading137647 -Node: subsection138636 -Node: unnumberedsubsec appendixsubsec subheading139208 -Node: subsubsection140161 -Node: Raise/lower sections141711 -Node: Nodes143846 -Node: Two Paths144783 -Node: Node Menu Illustration146069 -Node: node149764 -Node: Node Names152460 -Node: Writing a Node153536 -Node: Node Line Tips155554 -Node: Node Line Requirements156348 -Node: First Node157949 +Node: Top1485 +Node: Copying23800 +Node: Overview25805 +Node: Overview-Footnotes27234 +Ref: Overview-Footnote-127298 +Node: Using Texinfo27770 +Node: Info Files30257 +Node: Info Files-Footnotes34293 +Ref: Info Files-Footnote-134361 +Node: Printed Books34540 +Node: Printed Books-Footnotes37212 +Ref: Printed Books-Footnote-137286 +Node: Formatting Commands37496 +Node: Formatting Commands-Footnotes40323 +Ref: Formatting Commands-Footnote-140409 +Node: Conventions41025 +Node: Comments43587 +Node: Minimum45010 +Node: Six Parts47196 +Node: Short Sample48708 +Node: Acknowledgements52844 +Node: Texinfo Mode53679 +Node: Texinfo Mode Overview55051 +Node: Emacs Editing55827 +Node: Inserting57957 +Node: Showing the Structure62238 +Node: Updating Nodes and Menus64765 +Node: Updating Commands65838 +Node: Updating Requirements71899 +Node: Other Updating Commands74196 +Node: Info Formatting77464 +Node: Printing78722 +Node: Texinfo Mode Summary81067 +Node: Beginning a File85821 +Node: Four Parts86712 +Node: Sample Beginning88182 +Node: Header89802 +Node: First Line91154 +Node: Start of Header92143 +Node: setfilename92856 +Node: settitle94792 +Node: setchapternewpage96682 +Node: paragraphindent99443 +Node: End of Header100925 +Node: Info Summary and Permissions101764 +Node: Titlepage & Copyright Page102783 +Node: titlepage104389 +Node: titlepage-Footnotes106671 +Ref: titlepage-Footnote-1106737 +Node: titlefont center sp107011 +Node: title subtitle author108237 +Node: Copyright & Permissions110509 +Node: end titlepage112510 +Node: headings on off114216 +Node: The Top Node116261 +Node: Title of Top Node117416 +Node: Master Menu Parts118669 +Node: Software Copying Permissions120906 +Node: Ending a File122074 +Node: Printing Indices & Menus122922 +Node: Contents125231 +Node: File End127571 +Node: Structuring128244 +Node: Tree Structuring129901 +Node: Structuring Command Types131344 +Node: makeinfo top133671 +Node: chapter134204 +Node: unnumbered & appendix135228 +Node: majorheading & chapheading136067 +Node: section136888 +Node: unnumberedsec appendixsec heading137652 +Node: subsection138641 +Node: unnumberedsubsec appendixsubsec subheading139213 +Node: subsubsection140166 +Node: Raise/lower sections141716 +Node: Nodes143851 +Node: Two Paths144788 +Node: Node Menu Illustration146074 +Node: node149769 +Node: Node Names152465 +Node: Writing a Node153541 +Node: Node Line Tips155559 +Node: Node Line Requirements156353 +Node: First Node157954 Node: makeinfo top command159393 Node: Top Node Summary160572 Node: makeinfo Pointer Creation162022 @@ -145,206 +145,206 @@ Node: Less Cluttered Menu Entry168360 Node: Menu Example168985 Node: Other Info Files170506 -Node: Cross References172362 -Node: References173319 -Node: Cross Reference Commands175066 -Node: Cross Reference Parts176125 -Node: xref178961 -Node: Reference Syntax179760 -Node: One Argument181414 -Node: Two Arguments182426 -Node: Three Arguments183541 -Node: Four and Five Arguments185932 -Node: Top Node Naming188344 -Node: ref189354 -Node: pxref190744 -Node: inforef193126 -Node: uref194419 -Node: Marking Text195418 -Node: Indicating196042 -Node: Useful Highlighting197947 -Node: code199336 -Node: kbd202374 -Node: key204244 -Node: samp205577 -Node: var207164 -Node: file208957 -Node: dfn209564 -Node: cite210474 -Node: url210928 -Node: email211492 -Node: Emphasis212304 -Node: emph & strong213204 -Node: Smallcaps214190 -Node: Fonts215517 -Node: Customized Highlighting216605 -Node: Customized Highlighting-Footnotes219420 -Ref: Customized Highlighting-Footnote-1219514 -Node: Quotations and Examples219640 -Node: Block Enclosing Commands221262 -Node: quotation223287 -Node: example224377 -Node: noindent226432 -Node: Lisp Example227896 -Node: Lisp Example-Footnotes228598 -Ref: Lisp Example-Footnote-1228670 -Node: smallexample & smalllisp228788 -Node: display230813 -Node: format231445 -Node: exdent231906 -Node: flushleft & flushright232986 -Node: cartouche234252 -Node: Lists and Tables235019 -Node: Introducing Lists235695 -Node: itemize237360 -Node: enumerate239507 -Node: Two-column Tables242012 -Node: table242701 -Node: ftable vtable245134 -Node: itemx246235 -Node: Multi-column Tables247246 -Node: Multitable Column Widths247917 -Node: Multitable Rows249371 -Node: Indices251148 -Node: Index Entries252298 -Node: Predefined Indices253431 -Node: Indexing Commands254428 -Node: Combining Indices258968 -Node: syncodeindex260331 -Node: synindex261993 -Node: New Indices262518 -Node: Insertions264343 -Node: Braces Atsigns265527 -Node: Inserting An Atsign266079 -Node: Inserting Braces266353 -Node: Inserting Space266716 -Node: Not Ending a Sentence267220 -Node: Ending a Sentence268574 -Node: Multiple Spaces269703 -Node: dmn270922 -Node: Inserting Accents272129 -Node: Dots Bullets273886 -Node: dots274708 -Node: bullet275232 -Node: TeX and copyright275629 -Node: tex276196 -Node: copyright symbol276612 -Node: pounds276872 -Node: minus277236 -Node: math278158 -Node: Glyphs278886 -Node: Glyphs Summary279999 -Node: result280627 -Node: expansion281112 -Node: Print Glyph282068 -Node: Error Glyph282945 -Node: Equivalence283778 -Node: Point Glyph284466 -Node: Images286023 -Node: Breaks287690 -Node: Break Commands289121 -Node: Line Breaks289962 -Node: - and hyphenation290980 -Node: w292230 -Node: sp292943 -Node: page293352 -Node: group293729 -Node: need295472 -Node: Definition Commands296202 -Node: Def Cmd Template297773 -Node: Optional Arguments300770 -Node: deffnx302358 -Node: Def Cmds in Detail303313 -Node: Functions Commands304423 -Node: Variables Commands307428 -Node: Typed Functions309514 -Node: Typed Variables313056 -Node: Abstract Objects315039 -Node: Data Types320264 -Node: Def Cmd Conventions321519 -Node: Sample Function Definition322082 -Node: Footnotes324966 -Node: Footnotes-Footnotes325354 -Ref: Footnotes-Footnote-1325420 -Node: Footnote Commands325700 -Node: Footnote Commands-Footnotes327197 -Ref: Footnote Commands-Footnote-1327279 -Node: Footnote Styles327315 -Node: Conditionals329901 -Node: Conditional Commands330712 -Node: Conditional Not Commands332205 -Node: Raw Formatter Commands332950 -Node: set clear value334780 -Node: ifset ifclear335581 -Node: value338760 -Node: value Example340172 -Node: Macros341750 -Node: Defining Macros342455 -Node: Invoking Macros343544 -Node: Format/Print Hardcopy344650 -Node: Use TeX346487 -Node: Format with tex/texindex347115 -Node: Format with texi2dvi350756 -Node: Print with lpr351347 -Node: Within Emacs352201 -Node: Texinfo Mode Printing353120 -Node: Compile-Command356530 -Node: Requirements Summary357418 -Node: Preparing for TeX358731 -Node: Overfull hboxes361518 -Node: smallbook363077 -Node: A4 Paper364595 -Node: Cropmarks and Magnification365820 -Node: Create an Info File367761 -Node: makeinfo advantages369064 -Node: Invoking makeinfo369980 -Node: makeinfo options370668 -Node: Pointer Validation376152 -Node: makeinfo in Emacs377496 -Node: texinfo-format commands380054 -Node: Batch Formatting381325 -Node: Tag and Split Files382541 -Node: Install an Info File385895 -Node: Directory file386713 -Node: New Info File388581 -Node: Other Info Directories389642 -Node: Installing Dir Entries392857 -Node: Invoking install-info394850 -Node: Command List397265 -Node: Tips435235 -Node: Sample Texinfo File446645 -Node: Sample Permissions448764 -Node: Inserting Permissions449807 -Node: ifinfo Permissions452113 -Node: Titlepage Permissions453734 -Node: Include Files454996 -Node: Using Include Files456083 -Node: texinfo-multiple-files-update458038 -Node: Include File Requirements460399 -Node: Sample Include File461644 -Node: Include Files Evolution463163 -Node: Headings465134 -Node: Headings Introduced465771 -Node: Heading Format467659 -Node: Heading Choice470111 -Node: Custom Headings471483 -Node: Catching Mistakes475811 -Node: makeinfo Preferred477100 -Node: Debugging with Info478005 -Node: Debugging with TeX481351 -Node: Using texinfo-show-structure485631 -Node: Using occur488730 -Node: Running Info-Validate490267 -Node: Using Info-validate491328 -Node: Unsplit493170 -Node: Tagifying494216 -Node: Splitting495068 -Node: Refilling Paragraphs496684 -Node: Refilling Paragraphs-Footnotes498338 -Ref: Refilling Paragraphs-Footnote-1498426 -Node: Command Syntax498589 -Node: Obtaining TeX501546 -Node: Command and Variable Index503659 -Node: Concept Index519511 +Node: Cross References172374 +Node: References173331 +Node: Cross Reference Commands175078 +Node: Cross Reference Parts176137 +Node: xref178973 +Node: Reference Syntax179772 +Node: One Argument181426 +Node: Two Arguments182438 +Node: Three Arguments183553 +Node: Four and Five Arguments185944 +Node: Top Node Naming188356 +Node: ref189366 +Node: pxref190756 +Node: inforef193138 +Node: uref194431 +Node: Marking Text195430 +Node: Indicating196054 +Node: Useful Highlighting197959 +Node: code199348 +Node: kbd202386 +Node: key204256 +Node: samp205589 +Node: var207176 +Node: file208969 +Node: dfn209576 +Node: cite210486 +Node: url210940 +Node: email211504 +Node: Emphasis212316 +Node: emph & strong213216 +Node: Smallcaps214202 +Node: Fonts215529 +Node: Customized Highlighting216617 +Node: Customized Highlighting-Footnotes219432 +Ref: Customized Highlighting-Footnote-1219526 +Node: Quotations and Examples219652 +Node: Block Enclosing Commands221274 +Node: quotation223299 +Node: example224389 +Node: noindent226444 +Node: Lisp Example227908 +Node: Lisp Example-Footnotes228610 +Ref: Lisp Example-Footnote-1228682 +Node: smallexample & smalllisp228800 +Node: display230825 +Node: format231457 +Node: exdent231918 +Node: flushleft & flushright232998 +Node: cartouche234264 +Node: Lists and Tables235031 +Node: Introducing Lists235707 +Node: itemize237372 +Node: enumerate239519 +Node: Two-column Tables242024 +Node: table242713 +Node: ftable vtable245146 +Node: itemx246247 +Node: Multi-column Tables247258 +Node: Multitable Column Widths247929 +Node: Multitable Rows249383 +Node: Indices251164 +Node: Index Entries252314 +Node: Predefined Indices253447 +Node: Indexing Commands254444 +Node: Combining Indices258984 +Node: syncodeindex260347 +Node: synindex262009 +Node: New Indices262534 +Node: Insertions264359 +Node: Braces Atsigns265543 +Node: Inserting An Atsign266095 +Node: Inserting Braces266369 +Node: Inserting Space266732 +Node: Not Ending a Sentence267236 +Node: Ending a Sentence268590 +Node: Multiple Spaces269719 +Node: dmn270938 +Node: Inserting Accents272145 +Node: Dots Bullets273902 +Node: dots274724 +Node: bullet275248 +Node: TeX and copyright275645 +Node: tex276212 +Node: copyright symbol276628 +Node: pounds276888 +Node: minus277252 +Node: math278174 +Node: Glyphs278902 +Node: Glyphs Summary280015 +Node: result280643 +Node: expansion281128 +Node: Print Glyph282084 +Node: Error Glyph282961 +Node: Equivalence283794 +Node: Point Glyph284482 +Node: Images286039 +Node: Breaks287706 +Node: Break Commands289137 +Node: Line Breaks289978 +Node: - and hyphenation290996 +Node: w292246 +Node: sp292959 +Node: page293368 +Node: group293745 +Node: need295488 +Node: Definition Commands296218 +Node: Def Cmd Template297789 +Node: Optional Arguments300786 +Node: deffnx302374 +Node: Def Cmds in Detail303329 +Node: Functions Commands304439 +Node: Variables Commands307444 +Node: Typed Functions309530 +Node: Typed Variables313072 +Node: Abstract Objects315055 +Node: Data Types320280 +Node: Def Cmd Conventions321535 +Node: Sample Function Definition322098 +Node: Footnotes324982 +Node: Footnotes-Footnotes325370 +Ref: Footnotes-Footnote-1325436 +Node: Footnote Commands325716 +Node: Footnote Commands-Footnotes327213 +Ref: Footnote Commands-Footnote-1327295 +Node: Footnote Styles327331 +Node: Conditionals329917 +Node: Conditional Commands330728 +Node: Conditional Not Commands332221 +Node: Raw Formatter Commands332966 +Node: set clear value334796 +Node: ifset ifclear335597 +Node: value338776 +Node: value Example340188 +Node: Macros341766 +Node: Defining Macros342471 +Node: Invoking Macros343560 +Node: Format/Print Hardcopy344666 +Node: Use TeX346503 +Node: Format with tex/texindex347131 +Node: Format with texi2dvi350772 +Node: Print with lpr351363 +Node: Within Emacs352217 +Node: Texinfo Mode Printing353136 +Node: Compile-Command356546 +Node: Requirements Summary357434 +Node: Preparing for TeX358747 +Node: Overfull hboxes361534 +Node: smallbook363093 +Node: A4 Paper364611 +Node: Cropmarks and Magnification365836 +Node: Create an Info File367777 +Node: makeinfo advantages369080 +Node: Invoking makeinfo369996 +Node: makeinfo options370684 +Node: Pointer Validation376168 +Node: makeinfo in Emacs377512 +Node: texinfo-format commands380070 +Node: Batch Formatting381341 +Node: Tag and Split Files382557 +Node: Install an Info File385911 +Node: Directory file386729 +Node: New Info File388597 +Node: Other Info Directories389658 +Node: Installing Dir Entries392873 +Node: Invoking install-info394866 +Node: Command List397281 +Node: Tips435251 +Node: Sample Texinfo File446661 +Node: Sample Permissions448780 +Node: Inserting Permissions449823 +Node: ifinfo Permissions452129 +Node: Titlepage Permissions453750 +Node: Include Files455012 +Node: Using Include Files456099 +Node: texinfo-multiple-files-update458054 +Node: Include File Requirements460415 +Node: Sample Include File461660 +Node: Include Files Evolution463179 +Node: Headings465150 +Node: Headings Introduced465787 +Node: Heading Format467675 +Node: Heading Choice470127 +Node: Custom Headings471499 +Node: Catching Mistakes475827 +Node: makeinfo Preferred477116 +Node: Debugging with Info478021 +Node: Debugging with TeX481367 +Node: Using texinfo-show-structure485647 +Node: Using occur488746 +Node: Running Info-Validate490283 +Node: Using Info-validate491344 +Node: Unsplit493186 +Node: Tagifying494232 +Node: Splitting495084 +Node: Refilling Paragraphs496700 +Node: Refilling Paragraphs-Footnotes498354 +Ref: Refilling Paragraphs-Footnote-1498442 +Node: Command Syntax498605 +Node: Obtaining TeX501562 +Node: Command and Variable Index503675 +Node: Concept Index519527  End Tag Table diff -r -u -N xemacs-21.1.12/info/texinfo.info-1 xemacs-21.1.13/info/texinfo.info-1 --- xemacs-21.1.12/info/texinfo.info-1 Fri Aug 4 21:31:16 2000 +++ xemacs-21.1.13/info/texinfo.info-1 Sun Jan 7 15:57:31 2001 @@ -1,4 +1,4 @@ -This is ../info/texinfo.info, produced by makeinfo version 4.0 from +This is ../info/texinfo.info, produced by makeinfo version 4.0a from texinfo.texi. INFO-DIR-SECTION Texinfo documentation system @@ -604,8 +604,8 @@ indices. You can, if you wish, make the chapters and sections of the printed document correspond to the nodes of the on-line information; and you use the same cross references and indices for both the Info -file and the printed work. `The GNU Emacs Manual' is a good example of -a Texinfo file, as is this manual. +file and the printed work. `The XEmacs User's Manual' is a good +example of a Texinfo file, as is this manual. To make a printed document, you process a Texinfo source file with the TeX typesetting program. This creates a DVI file that you can typeset diff -r -u -N xemacs-21.1.12/info/texinfo.info-10 xemacs-21.1.13/info/texinfo.info-10 --- xemacs-21.1.12/info/texinfo.info-10 Fri Aug 4 21:31:16 2000 +++ xemacs-21.1.13/info/texinfo.info-10 Sun Jan 7 15:57:31 2001 @@ -1,4 +1,4 @@ -This is ../info/texinfo.info, produced by makeinfo version 4.0 from +This is ../info/texinfo.info, produced by makeinfo version 4.0a from texinfo.texi. INFO-DIR-SECTION Texinfo documentation system diff -r -u -N xemacs-21.1.12/info/texinfo.info-11 xemacs-21.1.13/info/texinfo.info-11 --- xemacs-21.1.12/info/texinfo.info-11 Fri Aug 4 21:31:16 2000 +++ xemacs-21.1.13/info/texinfo.info-11 Sun Jan 7 15:57:31 2001 @@ -1,4 +1,4 @@ -This is ../info/texinfo.info, produced by makeinfo version 4.0 from +This is ../info/texinfo.info, produced by makeinfo version 4.0a from texinfo.texi. INFO-DIR-SECTION Texinfo documentation system diff -r -u -N xemacs-21.1.12/info/texinfo.info-12 xemacs-21.1.13/info/texinfo.info-12 --- xemacs-21.1.12/info/texinfo.info-12 Fri Aug 4 21:31:16 2000 +++ xemacs-21.1.13/info/texinfo.info-12 Sun Jan 7 15:57:31 2001 @@ -1,4 +1,4 @@ -This is ../info/texinfo.info, produced by makeinfo version 4.0 from +This is ../info/texinfo.info, produced by makeinfo version 4.0a from texinfo.texi. INFO-DIR-SECTION Texinfo documentation system diff -r -u -N xemacs-21.1.12/info/texinfo.info-2 xemacs-21.1.13/info/texinfo.info-2 --- xemacs-21.1.12/info/texinfo.info-2 Fri Aug 4 21:31:16 2000 +++ xemacs-21.1.13/info/texinfo.info-2 Sun Jan 7 15:57:31 2001 @@ -1,4 +1,4 @@ -This is ../info/texinfo.info, produced by makeinfo version 4.0 from +This is ../info/texinfo.info, produced by makeinfo version 4.0a from texinfo.texi. INFO-DIR-SECTION Texinfo documentation system diff -r -u -N xemacs-21.1.12/info/texinfo.info-3 xemacs-21.1.13/info/texinfo.info-3 --- xemacs-21.1.12/info/texinfo.info-3 Fri Aug 4 21:31:16 2000 +++ xemacs-21.1.13/info/texinfo.info-3 Sun Jan 7 15:57:31 2001 @@ -1,4 +1,4 @@ -This is ../info/texinfo.info, produced by makeinfo version 4.0 from +This is ../info/texinfo.info, produced by makeinfo version 4.0a from texinfo.texi. INFO-DIR-SECTION Texinfo documentation system diff -r -u -N xemacs-21.1.12/info/texinfo.info-4 xemacs-21.1.13/info/texinfo.info-4 --- xemacs-21.1.12/info/texinfo.info-4 Fri Aug 4 21:31:16 2000 +++ xemacs-21.1.13/info/texinfo.info-4 Sun Jan 7 15:57:31 2001 @@ -1,4 +1,4 @@ -This is ../info/texinfo.info, produced by makeinfo version 4.0 from +This is ../info/texinfo.info, produced by makeinfo version 4.0a from texinfo.texi. INFO-DIR-SECTION Texinfo documentation system @@ -336,7 +336,7 @@ Do not define the `Previous' node of the Top node to be `(dir)', as it causes confusing behavior for users: if you are in the Top node and -hits to go backwards, you wind up in the middle of the some other +hit to go backwards, you wind up in the middle of some other entry in the `dir' file, which has nothing to do with what you were reading. @@ -649,13 +649,13 @@ @end menu For example, to refer directly to the `Outlining' and `Rebinding' -nodes in the `Emacs Manual', you would write a menu like this: +nodes in the `XEmacs User's Manual', you would write a menu like this: @menu - * Outlining: (emacs)Outline Mode. The major mode for - editing outlines. - * Rebinding: (emacs)Rebinding. How to redefine the - meaning of a key. + * Outlining: (xemacs)Outline Mode. The major mode for + editing outlines. + * Rebinding: (xemacs)Rebinding. How to redefine the + meaning of a key. @end menu If you do not list the node name, but only name the file, then Info diff -r -u -N xemacs-21.1.12/info/texinfo.info-5 xemacs-21.1.13/info/texinfo.info-5 --- xemacs-21.1.12/info/texinfo.info-5 Fri Aug 4 21:31:16 2000 +++ xemacs-21.1.13/info/texinfo.info-5 Sun Jan 7 15:57:31 2001 @@ -1,4 +1,4 @@ -This is ../info/texinfo.info, produced by makeinfo version 4.0 from +This is ../info/texinfo.info, produced by makeinfo version 4.0a from texinfo.texi. INFO-DIR-SECTION Texinfo documentation system diff -r -u -N xemacs-21.1.12/info/texinfo.info-6 xemacs-21.1.13/info/texinfo.info-6 --- xemacs-21.1.12/info/texinfo.info-6 Fri Aug 4 21:31:16 2000 +++ xemacs-21.1.13/info/texinfo.info-6 Sun Jan 7 15:57:31 2001 @@ -1,4 +1,4 @@ -This is ../info/texinfo.info, produced by makeinfo version 4.0 from +This is ../info/texinfo.info, produced by makeinfo version 4.0a from texinfo.texi. INFO-DIR-SECTION Texinfo documentation system @@ -159,7 +159,8 @@ your source file as necessary. Here is a complete example of a multi-column table (the text is from -`The GNU Emacs Manual', *note Splitting Windows: (xemacs)Split Window.): +`The XEmacs Users' Manual', *note Splitting Windows: (xemacs)Split +Window.): @multitable @columnfractions .15 .45 .4 @item Key @tab Command @tab Description diff -r -u -N xemacs-21.1.12/info/texinfo.info-7 xemacs-21.1.13/info/texinfo.info-7 --- xemacs-21.1.12/info/texinfo.info-7 Fri Aug 4 21:31:16 2000 +++ xemacs-21.1.13/info/texinfo.info-7 Sun Jan 7 15:57:31 2001 @@ -1,4 +1,4 @@ -This is ../info/texinfo.info, produced by makeinfo version 4.0 from +This is ../info/texinfo.info, produced by makeinfo version 4.0a from texinfo.texi. INFO-DIR-SECTION Texinfo documentation system diff -r -u -N xemacs-21.1.12/info/texinfo.info-8 xemacs-21.1.13/info/texinfo.info-8 --- xemacs-21.1.12/info/texinfo.info-8 Fri Aug 4 21:31:16 2000 +++ xemacs-21.1.13/info/texinfo.info-8 Sun Jan 7 15:57:31 2001 @@ -1,4 +1,4 @@ -This is ../info/texinfo.info, produced by makeinfo version 4.0 from +This is ../info/texinfo.info, produced by makeinfo version 4.0a from texinfo.texi. INFO-DIR-SECTION Texinfo documentation system diff -r -u -N xemacs-21.1.12/info/texinfo.info-9 xemacs-21.1.13/info/texinfo.info-9 --- xemacs-21.1.12/info/texinfo.info-9 Fri Aug 4 21:31:16 2000 +++ xemacs-21.1.13/info/texinfo.info-9 Sun Jan 7 15:57:31 2001 @@ -1,4 +1,4 @@ -This is ../info/texinfo.info, produced by makeinfo version 4.0 from +This is ../info/texinfo.info, produced by makeinfo version 4.0a from texinfo.texi. INFO-DIR-SECTION Texinfo documentation system diff -r -u -N xemacs-21.1.12/info/widget.info xemacs-21.1.13/info/widget.info --- xemacs-21.1.12/info/widget.info Fri Aug 4 21:31:16 2000 +++ xemacs-21.1.13/info/widget.info Sun Jan 7 15:57:31 2001 @@ -1,4 +1,4 @@ -This is ../info/widget.info, produced by makeinfo version 4.0 from +This is ../info/widget.info, produced by makeinfo version 4.0a from widget.texi. INFO-DIR-SECTION XEmacs Editor @@ -94,7 +94,7 @@ The advantages for a programmer of using the `widget' package to implement forms are: - 1. More complex field than just editable text are supported. + 1. More complex fields than just editable text are supported. 2. You can give the user immediate feedback if he enters invalid data in a text field, and sometimes prevent entering invalid data. @@ -416,7 +416,7 @@ NAME ::= (NAME [KEYWORD ARGUMENT]... ARGS) | NAME - Where, NAME is a widget name, KEYWORD is the name of a property, + where NAME is a widget name, KEYWORD is the name of a property, ARGUMENT is the value of the property, and ARGS are interpreted in a widget specific way. @@ -490,7 +490,8 @@ The value of the symbol is expanded according to this table. `:doc' - The string inserted by the `%d' escape in the format string. + The string inserted by the `%d' or `%h' escape in the format + string. `:tag' The string inserted by the `%t' escape in the format string. @@ -685,8 +686,10 @@ The following extra properties are recognized. `:size' - The width of the editable field. - By default the field will reach to the end of the line. + The minimum width of the editable field. + By default the field will reach to the end of the line. If the + content is too large, the displayed representation will expand to + contain it. The content is not truncated to size. `:value-face' Face used for highlighting the editable field. Default is @@ -705,7 +708,7 @@ `:keymap' Keymap used in the editable field. The default value is `widget-field-keymap', which allows you to use all the normal - editing commands, even if the buffers major mode suppress some of + editing commands, even if the buffer's major mode suppress some of them. Pressing return invokes the function specified by `:action'.  @@ -1517,37 +1520,37 @@  Tag Table: -Node: Top201 -Node: Introduction581 -Node: User Interface4064 -Node: Programming Example8959 -Node: Setting Up the Buffer12276 -Node: Basic Types13993 -Node: link20038 -Node: url-link20552 -Node: info-link20864 -Node: push-button21155 -Node: editable-field21728 -Node: text23067 -Node: menu-choice23365 -Node: radio-button-choice24230 -Node: item25809 -Node: choice-item26197 -Node: toggle26695 -Node: checkbox27420 -Node: checklist27726 -Node: editable-list29170 -Node: group30352 -Node: Sexp Types30639 -Node: constants30952 -Node: generic32031 -Node: atoms32564 -Node: composite34511 -Node: Widget Properties36977 -Node: Defining New Widgets40040 -Node: Widget Browser45340 -Node: Widget Minor Mode46198 -Node: Utilities46755 -Node: Widget Wishlist47236 +Node: Top202 +Node: Introduction582 +Node: User Interface4066 +Node: Programming Example8961 +Node: Setting Up the Buffer12278 +Node: Basic Types13995 +Node: link20052 +Node: url-link20566 +Node: info-link20878 +Node: push-button21169 +Node: editable-field21742 +Node: text23225 +Node: menu-choice23523 +Node: radio-button-choice24388 +Node: item25967 +Node: choice-item26355 +Node: toggle26853 +Node: checkbox27578 +Node: checklist27884 +Node: editable-list29328 +Node: group30510 +Node: Sexp Types30797 +Node: constants31110 +Node: generic32189 +Node: atoms32722 +Node: composite34669 +Node: Widget Properties37135 +Node: Defining New Widgets40198 +Node: Widget Browser45498 +Node: Widget Minor Mode46356 +Node: Utilities46913 +Node: Widget Wishlist47394  End Tag Table diff -r -u -N xemacs-21.1.12/info/xemacs-faq.info xemacs-21.1.13/info/xemacs-faq.info --- xemacs-21.1.12/info/xemacs-faq.info Fri Aug 4 21:31:16 2000 +++ xemacs-21.1.13/info/xemacs-faq.info Sun Jan 7 15:57:31 2001 @@ -1,4 +1,4 @@ -This is ../info/xemacs-faq.info, produced by makeinfo version 4.0 from +This is ../info/xemacs-faq.info, produced by makeinfo version 4.0a from xemacs-faq.texi. INFO-DIR-SECTION XEmacs Editor @@ -8,258 +8,261 @@  Indirect: -xemacs-faq.info-1: 205 -xemacs-faq.info-2: 50178 -xemacs-faq.info-3: 99771 -xemacs-faq.info-4: 149762 -xemacs-faq.info-5: 199319 +xemacs-faq.info-1: 206 +xemacs-faq.info-2: 49995 +xemacs-faq.info-3: 99393 +xemacs-faq.info-4: 149263 +xemacs-faq.info-5: 199125  Tag Table: (Indirect) -Node: Top205 -Node: Introduction16503 -Node: Q1.0.119945 -Node: Q1.0.220481 -Node: Q1.0.321026 -Node: Q1.0.421288 -Node: Q1.0.522738 -Node: Q1.0.623427 -Node: Q1.0.724433 -Node: Q1.0.824686 -Node: Q1.0.924901 -Node: Q1.0.1025179 -Node: Q1.0.1125422 -Node: Q1.0.1225811 -Node: Q1.0.1326179 -Node: Q1.0.1426428 -Node: Q1.1.126938 -Node: Q1.1.227980 -Node: Q1.1.328373 -Node: Q1.2.129324 -Node: Q1.2.230380 -Node: Q1.2.330814 -Node: Q1.3.131898 -Node: Q1.3.232549 -Node: Q1.3.333013 -Node: Q1.3.433254 -Node: Q1.3.534027 -Node: Q1.3.636432 -Node: Q1.3.737963 -Node: Q1.4.138898 -Node: Q1.4.239760 -Node: Q1.4.340101 -Node: Q1.4.440520 -Node: Q1.4.542060 -Node: Q1.4.642364 -Node: Installation43357 -Node: Q2.0.145720 -Node: Q2.0.246520 -Node: Q2.0.348288 -Node: Q2.0.449586 -Node: Q2.0.550178 -Node: Q2.0.650526 -Node: Q2.0.750907 -Node: Q2.0.851288 -Node: Q2.0.952865 -Node: Q2.0.1054303 -Node: Q2.0.1155147 -Node: Q2.0.1256088 -Node: Q2.1.157610 -Node: Q2.1.260352 -Node: Q2.1.361529 -Node: Q2.1.462822 -Node: Q2.1.563621 -Node: Q2.1.663983 -Node: Q2.1.764460 -Node: Q2.1.864813 -Node: Q2.1.966347 -Node: Q2.1.1066769 -Node: Q2.1.1167526 -Node: Q2.1.1268391 -Node: Q2.1.1369346 -Node: Q2.1.1470377 -Node: Q2.1.1571488 -Node: Q2.1.1678520 -Node: Q2.1.1779214 -Node: Q2.1.1879811 -Node: Q2.1.1979938 -Node: Q2.1.2080468 -Node: Q2.1.2180850 -Node: Q2.1.2281043 -Node: Q2.1.2382340 -Node: Q2.1.2483008 -Node: Customization83464 -Node: Q3.0.188302 -Node: Q3.0.289008 -Node: Q3.0.389572 -Node: Q3.0.489989 -Node: Q3.0.590822 -Node: Q3.0.691603 -Node: Q3.0.792183 -Node: Q3.0.892847 -Node: Q3.0.993805 -Node: Q3.1.194366 -Node: Q3.1.295103 -Node: Q3.1.395534 -Node: Q3.1.495723 -Node: Q3.1.595912 -Node: Q3.1.696296 -Node: Q3.1.797005 -Node: Q3.1.899229 -Node: Q3.2.199771 -Node: Q3.2.2101424 -Node: Q3.2.3102223 -Node: Q3.2.4102825 -Node: Q3.2.5103859 -Node: Q3.2.6104326 -Node: Q3.3.1105251 -Node: Q3.3.2105681 -Node: Q3.3.3106312 -Node: Q3.3.4106693 -Node: Q3.3.5107794 -Node: Q3.4.1109288 -Node: Q3.4.2109931 -Node: Q3.5.1110443 -Node: Q3.5.2111892 -Node: Q3.5.3112310 -Node: Q3.5.4113148 -Node: Q3.5.5113980 -Node: Q3.5.6115120 -Node: Q3.5.7116110 -Node: Q3.5.8117550 -Node: Q3.5.9118297 -Node: Q3.5.10119077 -Node: Q3.5.11119713 -Node: Q3.6.1120266 -Node: Q3.6.2121011 -Node: Q3.6.3121439 -Node: Q3.7.1121939 -Node: Q3.7.2122827 -Node: Q3.7.3123486 -Node: Q3.7.4123908 -Node: Q3.7.5124251 -Node: Q3.7.6124719 -Node: Q3.7.7125434 -Node: Q3.7.8126454 -Node: Q3.8.1126873 -Node: Q3.8.2127333 -Node: Q3.8.3127796 -Node: Q3.8.4128402 -Node: Q3.8.5129121 -Node: Q3.9.1129906 -Node: Q3.9.2130846 -Node: Q3.9.3131444 -Node: Q3.9.4132106 -Node: Q3.10.1132985 -Node: Q3.10.2133803 -Node: Q3.10.3134808 -Node: Q3.10.4135536 -Node: Q3.10.5135919 -Node: Subsystems136971 -Node: Q4.0.1139458 -Node: Q4.0.2139983 -Node: Q4.0.3140541 -Node: Q4.0.4140862 -Node: Q4.0.5141104 -Node: Q4.0.6141335 -Node: Q4.0.7141923 -Node: Q4.0.8142248 -Node: Q4.0.9143475 -Node: Q4.0.10145513 -Node: Q4.0.11146002 -Node: Q4.0.12146880 -Node: Q4.1.1147853 -Node: Q4.1.2148256 -Node: Q4.1.3148583 -Node: Q4.2.1148892 -Node: Q4.2.2149522 -Node: Q4.2.3149762 -Node: Q4.2.4150306 -Node: Q4.3.1150959 -Node: Q4.3.2151543 -Node: Q4.3.3153024 -Node: Q4.3.4153296 -Node: Q4.3.5153973 -Node: Q4.4.1154601 -Node: Q4.4.2156087 -Node: Q4.5.1157291 -Node: Q4.6.1158060 -Node: Q4.7.1163320 -Node: Q4.7.2164275 -Node: Q4.7.3164572 -Node: Q4.7.4164758 -Node: Q4.7.5165642 -Node: Q4.7.6167283 -Node: Miscellaneous167572 -Node: Q5.0.1170989 -Node: Q5.0.2171728 -Node: Q5.0.3172582 -Node: Q5.0.4173284 -Node: Q5.0.5174223 -Node: Q5.0.6176203 -Node: Q5.0.7176860 -Node: Q5.0.8177465 -Node: Q5.0.9177984 -Node: Q5.0.10178498 -Node: Q5.0.11178746 -Node: Q5.0.12179284 -Node: Q5.0.13180201 -Node: Q5.0.14180885 -Node: Q5.0.15181650 -Node: Q5.0.16181947 -Node: Q5.0.17182459 -Node: Q5.0.18182724 -Node: Q5.0.19182918 -Node: Q5.0.20183342 -Node: Q5.1.1184257 -Node: Q5.1.2186326 -Node: Q5.1.3187062 -Node: Q5.1.4190456 -Node: Q5.1.5190991 -Node: Q5.1.6193115 -Node: Q5.1.7194601 -Node: Q5.1.8196202 -Node: Q5.1.9196754 -Node: Q5.1.10197639 -Node: Q5.1.11198770 -Node: Q5.2.1199319 -Node: Q5.2.2199889 -Node: Q5.2.3200306 -Node: Q5.2.4200541 -Node: Q5.3.1201451 -Node: Q5.3.2202672 -Node: Q5.3.3203448 -Node: Q5.3.4203932 -Node: Q5.3.5204599 -Node: Q5.3.6205468 -Node: Q5.3.7205713 -Node: Q5.3.8207903 -Node: Q5.3.9208150 -Node: Q5.3.10209103 -Node: Q5.3.11211187 -Node: Q5.3.12212778 -Node: MS Windows214052 -Node: Q6.0.1215529 -Node: Q6.0.2216276 -Node: Q6.0.3216741 -Node: Q6.0.4217021 -Node: Q6.1.1219300 -Node: Q6.1.2220171 -Node: Q6.1.3220626 -Node: Q6.1.4220908 -Node: Q6.1.5221286 -Node: Q6.1.6222154 -Node: Q6.2.1224460 -Node: Q6.2.2225361 -Node: Q6.2.3225773 -Node: Q6.3.1226062 -Node: Q6.3.2227156 -Node: Q6.3.3230337 -Node: Q6.4.1230606 -Node: Current Events231941 -Node: Q7.0.1232595 -Node: Q7.0.2233234 -Node: Q7.0.3234307 -Node: Q7.0.4234535 +Node: Top206 +Node: Introduction16705 +Node: Q1.0.120147 +Node: Q1.0.220683 +Node: Q1.0.321228 +Node: Q1.0.421490 +Node: Q1.0.522940 +Node: Q1.0.623629 +Node: Q1.0.724635 +Node: Q1.0.824888 +Node: Q1.0.925103 +Node: Q1.0.1025381 +Node: Q1.0.1125624 +Node: Q1.0.1226013 +Node: Q1.0.1326381 +Node: Q1.0.1426630 +Node: Q1.1.127140 +Node: Q1.1.228182 +Node: Q1.1.328575 +Node: Q1.2.129526 +Node: Q1.2.230577 +Node: Q1.2.331011 +Node: Q1.3.132095 +Node: Q1.3.232746 +Node: Q1.3.333210 +Node: Q1.3.433451 +Node: Q1.3.534224 +Node: Q1.3.636629 +Node: Q1.3.738160 +Node: Q1.4.139095 +Node: Q1.4.239957 +Node: Q1.4.340298 +Node: Q1.4.440717 +Node: Q1.4.542257 +Node: Q1.4.642561 +Node: Installation43554 +Node: Q2.0.146129 +Node: Q2.0.246929 +Node: Q2.0.348697 +Node: Q2.0.449995 +Node: Q2.0.550587 +Node: Q2.0.650935 +Node: Q2.0.751316 +Node: Q2.0.851697 +Node: Q2.0.953274 +Node: Q2.0.1054712 +Node: Q2.0.1155556 +Node: Q2.0.1256497 +Node: Q2.0.1358020 +Node: Q2.0.1458509 +Node: Q2.1.159436 +Node: Q2.1.262178 +Node: Q2.1.363355 +Node: Q2.1.464648 +Node: Q2.1.565447 +Node: Q2.1.665809 +Node: Q2.1.766286 +Node: Q2.1.866639 +Node: Q2.1.968173 +Node: Q2.1.1068595 +Node: Q2.1.1169352 +Node: Q2.1.1270217 +Node: Q2.1.1371172 +Node: Q2.1.1472203 +Node: Q2.1.1573314 +Node: Q2.1.1680346 +Node: Q2.1.1781040 +Node: Q2.1.1881637 +Node: Q2.1.1981764 +Node: Q2.1.2082294 +Node: Q2.1.2182676 +Node: Q2.1.2282869 +Node: Q2.1.2384166 +Node: Q2.1.2484834 +Node: Q2.1.2585306 +Node: Customization85852 +Node: Q3.0.190690 +Node: Q3.0.291396 +Node: Q3.0.391960 +Node: Q3.0.492377 +Node: Q3.0.593210 +Node: Q3.0.693991 +Node: Q3.0.794571 +Node: Q3.0.895235 +Node: Q3.0.996193 +Node: Q3.1.196754 +Node: Q3.1.297491 +Node: Q3.1.397922 +Node: Q3.1.498111 +Node: Q3.1.598300 +Node: Q3.1.698684 +Node: Q3.1.799393 +Node: Q3.1.8101617 +Node: Q3.2.1102159 +Node: Q3.2.2103812 +Node: Q3.2.3104611 +Node: Q3.2.4105213 +Node: Q3.2.5106247 +Node: Q3.2.6106714 +Node: Q3.3.1107639 +Node: Q3.3.2108069 +Node: Q3.3.3108700 +Node: Q3.3.4109081 +Node: Q3.3.5110182 +Node: Q3.4.1111676 +Node: Q3.4.2112319 +Node: Q3.5.1112831 +Node: Q3.5.2114280 +Node: Q3.5.3114698 +Node: Q3.5.4115531 +Node: Q3.5.5116363 +Node: Q3.5.6117503 +Node: Q3.5.7118493 +Node: Q3.5.8119933 +Node: Q3.5.9120680 +Node: Q3.5.10121460 +Node: Q3.5.11122096 +Node: Q3.6.1122649 +Node: Q3.6.2123394 +Node: Q3.6.3123822 +Node: Q3.7.1124322 +Node: Q3.7.2125210 +Node: Q3.7.3125869 +Node: Q3.7.4126291 +Node: Q3.7.5126634 +Node: Q3.7.6127102 +Node: Q3.7.7127817 +Node: Q3.7.8128837 +Node: Q3.8.1129256 +Node: Q3.8.2129716 +Node: Q3.8.3130179 +Node: Q3.8.4130785 +Node: Q3.8.5131504 +Node: Q3.9.1132289 +Node: Q3.9.2133229 +Node: Q3.9.3133827 +Node: Q3.9.4134489 +Node: Q3.10.1135368 +Node: Q3.10.2136186 +Node: Q3.10.3137191 +Node: Q3.10.4137919 +Node: Q3.10.5138302 +Node: Subsystems139354 +Node: Q4.0.1141841 +Node: Q4.0.2142366 +Node: Q4.0.3142924 +Node: Q4.0.4143245 +Node: Q4.0.5143487 +Node: Q4.0.6143718 +Node: Q4.0.7144306 +Node: Q4.0.8144631 +Node: Q4.0.9145858 +Node: Q4.0.10147896 +Node: Q4.0.11148385 +Node: Q4.0.12149263 +Node: Q4.1.1150236 +Node: Q4.1.2150639 +Node: Q4.1.3150966 +Node: Q4.2.1151275 +Node: Q4.2.2151905 +Node: Q4.2.3152145 +Node: Q4.2.4152689 +Node: Q4.3.1153342 +Node: Q4.3.2153926 +Node: Q4.3.3155407 +Node: Q4.3.4155679 +Node: Q4.3.5156356 +Node: Q4.4.1156984 +Node: Q4.4.2158470 +Node: Q4.5.1159674 +Node: Q4.6.1160443 +Node: Q4.7.1165703 +Node: Q4.7.2166658 +Node: Q4.7.3166955 +Node: Q4.7.4167141 +Node: Q4.7.5168025 +Node: Q4.7.6169666 +Node: Miscellaneous169955 +Node: Q5.0.1173368 +Node: Q5.0.2174107 +Node: Q5.0.3174961 +Node: Q5.0.4175663 +Node: Q5.0.5176602 +Node: Q5.0.6178582 +Node: Q5.0.7179239 +Node: Q5.0.8179844 +Node: Q5.0.9180363 +Node: Q5.0.10180877 +Node: Q5.0.11181125 +Node: Q5.0.12181663 +Node: Q5.0.13182580 +Node: Q5.0.14183264 +Node: Q5.0.15184029 +Node: Q5.0.16184326 +Node: Q5.0.17184838 +Node: Q5.0.18185103 +Node: Q5.0.19185297 +Node: Q5.0.20185721 +Node: Q5.1.1186636 +Node: Q5.1.2188705 +Node: Q5.1.3189441 +Node: Q5.1.4192835 +Node: Q5.1.5193370 +Node: Q5.1.6195494 +Node: Q5.1.7196980 +Node: Q5.1.8198573 +Node: Q5.1.9199125 +Node: Q5.1.10200010 +Node: Q5.1.11201141 +Node: Q5.2.1201690 +Node: Q5.2.2202260 +Node: Q5.2.3202677 +Node: Q5.2.4202912 +Node: Q5.3.1203822 +Node: Q5.3.2205043 +Node: Q5.3.3205819 +Node: Q5.3.4206303 +Node: Q5.3.5206970 +Node: Q5.3.6207839 +Node: Q5.3.7208084 +Node: Q5.3.8210274 +Node: Q5.3.9210521 +Node: Q5.3.10211474 +Node: Q5.3.11213558 +Node: Q5.3.12215149 +Node: MS Windows216423 +Node: Q6.0.1217900 +Node: Q6.0.2218647 +Node: Q6.0.3219112 +Node: Q6.0.4219392 +Node: Q6.1.1221671 +Node: Q6.1.2222542 +Node: Q6.1.3222997 +Node: Q6.1.4223279 +Node: Q6.1.5223657 +Node: Q6.1.6224525 +Node: Q6.2.1226831 +Node: Q6.2.2227732 +Node: Q6.2.3228144 +Node: Q6.3.1228433 +Node: Q6.3.2229527 +Node: Q6.3.3232708 +Node: Q6.4.1232977 +Node: Current Events234312 +Node: Q7.0.1234966 +Node: Q7.0.2235605 +Node: Q7.0.3236678 +Node: Q7.0.4236906  End Tag Table diff -r -u -N xemacs-21.1.12/info/xemacs-faq.info-1 xemacs-21.1.13/info/xemacs-faq.info-1 --- xemacs-21.1.12/info/xemacs-faq.info-1 Fri Aug 4 21:31:16 2000 +++ xemacs-21.1.13/info/xemacs-faq.info-1 Sun Jan 7 15:57:31 2001 @@ -1,4 +1,4 @@ -This is ../info/xemacs-faq.info, produced by makeinfo version 4.0 from +This is ../info/xemacs-faq.info, produced by makeinfo version 4.0a from xemacs-faq.texi. INFO-DIR-SECTION XEmacs Editor @@ -97,6 +97,8 @@ * Q2.0.10:: After I run configure I find a coredump, is something wrong? * Q2.0.11:: XEmacs can't resolve host names. * Q2.0.12:: Why can't I strip XEmacs? +* Q2.0.13:: I don't need no steenkin' packages. Do I? (NEW) +* Q2.0.14:: How do I figure out which packages to install? (NEW) Trouble Shooting: * Q2.1.1:: XEmacs just crashed on me! @@ -123,6 +125,7 @@ * 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) +* Q2.1.25:: After upgrading, XEmacs won't do `foo' any more! (NEW) Customization and Options @@ -294,7 +297,7 @@ * Q5.1.4:: What is the performance hit of `let'? * Q5.1.5:: What is the recommended use of `setq'? * Q5.1.6:: What is the typical misuse of `setq' ? -* Q5.1.7:: I like the the `do' form of cl, does it slow things down? +* Q5.1.7:: I like the `do' form of cl, does it slow things down? * Q5.1.8:: I like recursion, does it slow things down? * Q5.1.9:: How do I put a glyph as annotation in a buffer? * Q5.1.10:: `map-extents' won't traverse all of my extents! @@ -738,7 +741,7 @@ last release actually named Lucid Emacs. Richard Mlynarik was crucial to most of those releases. - * Richard Mlynarik + * Richard Mlynarik Along with many other contributors, partially enumerated in the `About XEmacs' option in the Help menu. @@ -1115,6 +1118,8 @@ * Q2.0.10:: After I run configure I find a coredump, is something wrong? * Q2.0.11:: XEmacs can't resolve host names. * Q2.0.12:: Why can't I strip XEmacs? +* Q2.0.13:: I don't need no steenkin' packages. Do I? (NEW) +* Q2.0.14:: I don't want to install a million .els one at a time! (NEW) Trouble Shooting: * Q2.1.1:: XEmacs just crashed on me! @@ -1141,6 +1146,7 @@ * 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) +* Q2.1.25:: After upgrading, XEmacs won't do `foo' any more! (NEW)  File: xemacs-faq.info, Node: Q2.0.1, Next: Q2.0.2, Prev: Installation, Up: Installation @@ -1235,22 +1241,4 @@ else, so if you see references to NAS or Network Audio System, it's the same thing. It also might be found at `ftp://ftp.x.org/contrib/audio/nas/'. - - -File: xemacs-faq.info, Node: Q2.0.4, Next: Q2.0.5, Prev: Q2.0.3, Up: Installation - -Q2.0.4: Problems with Linux and ncurses. ----------------------------------------- - - On Linux 1.3.98 with termcap 2.0.8 and the ncurses that came with -libc 5.2.18, XEmacs 20.0b20 is unable to open a tty device: - - src/xemacs -nw -q - Initialization error: - Terminal type `xterm' undefined (or can't access database?) - - Ben Wing writes: - - Your ncurses configuration is messed up. Your /usr/lib/terminfo - is a bad pointer, perhaps to a CD-ROM that is not inserted. diff -r -u -N xemacs-21.1.12/info/xemacs-faq.info-2 xemacs-21.1.13/info/xemacs-faq.info-2 --- xemacs-21.1.12/info/xemacs-faq.info-2 Fri Aug 4 21:31:16 2000 +++ xemacs-21.1.13/info/xemacs-faq.info-2 Sun Jan 7 15:57:31 2001 @@ -1,4 +1,4 @@ -This is ../info/xemacs-faq.info, produced by makeinfo version 4.0 from +This is ../info/xemacs-faq.info, produced by makeinfo version 4.0a from xemacs-faq.texi. INFO-DIR-SECTION XEmacs Editor @@ -7,6 +7,24 @@ END-INFO-DIR-ENTRY  +File: xemacs-faq.info, Node: Q2.0.4, Next: Q2.0.5, Prev: Q2.0.3, Up: Installation + +Q2.0.4: Problems with Linux and ncurses. +---------------------------------------- + + On Linux 1.3.98 with termcap 2.0.8 and the ncurses that came with +libc 5.2.18, XEmacs 20.0b20 is unable to open a tty device: + + src/xemacs -nw -q + Initialization error: + Terminal type `xterm' undefined (or can't access database?) + + Ben Wing writes: + + Your ncurses configuration is messed up. Your /usr/lib/terminfo + is a bad pointer, perhaps to a CD-ROM that is not inserted. + + File: xemacs-faq.info, Node: Q2.0.5, Next: Q2.0.6, Prev: Q2.0.4, Up: Installation Q2.0.5: Do I need X11 to run XEmacs? @@ -169,7 +187,7 @@ then proceed to link against the DNS resolver library code.  -File: xemacs-faq.info, Node: Q2.0.12, Next: Q2.1.1, Prev: Q2.0.11, Up: Installation +File: xemacs-faq.info, Node: Q2.0.12, Next: Q2.0.13, Prev: Q2.0.11, Up: Installation Q2.0.12: Why can't I strip XEmacs? ---------------------------------- @@ -212,7 +230,46 @@ /usr/local/lib/xemacs-19.16/i586-unknown-linuxaout  -File: xemacs-faq.info, Node: Q2.1.1, Next: Q2.1.2, Prev: Q2.0.12, Up: Installation +File: xemacs-faq.info, Node: Q2.0.13, Next: Q2.0.14, Prev: Q2.0.12, Up: Installation + +Q2.0.13: I don't need no steenkin' packages. Do I? (NEW) +--------------------------------------------------------- + + Strictly speaking, no. XEmacs will build and install just fine +without any packages installed. However, only the most basic editing +functions will be available with no packages installed, so installing +packages is an essential part of making your installed XEmacs _useful_. + + +File: xemacs-faq.info, Node: Q2.0.14, Next: Q2.1.1, Prev: Q2.0.13, Up: Installation + +Q2.0.12: How do I figure out which packages to install? (NEW) +------------------------------------------------------------- + + Many people really liked the old way that packages were bundled and +do not want to mess with packages at all. You can grab all the +packages at once like you used to with old XEmacs versions. Download +the file + + `xemacs-sumo.tar.gz' + + For an XEmacs compiled with Mule you also need + + `xemacs-mule-sumo.tar.gz' + + N.B. They are called 'Sumo Tarballs' for good reason. They are +currently about 15MB and 2.3MB (gzipped) respectively. + + Install them by + + `cd $prefix/lib/xemacs ; gunzip -c | tar xf -' + + As the Sumo tarballs are not regenerated as often as the individual +packages, it is recommended that you use the automatic package tools +afterwards to pick up any recent updates. + + +File: xemacs-faq.info, Node: Q2.1.1, Next: Q2.1.2, Prev: Q2.0.14, Up: Installation 2.1: Trouble Shooting ===================== @@ -874,7 +931,7 @@ #define MAIL_USE_FLOCK  -File: xemacs-faq.info, Node: Q2.1.24, Prev: Q2.1.23, Up: Installation +File: xemacs-faq.info, Node: Q2.1.24, Next: Q2.1.25, Prev: Q2.1.23, Up: Installation Q2.1.24: XEmacs won't start without network. (NEW) --------------------------------------------------- @@ -888,6 +945,18 @@ Add that line, and XEmacs will be happy.  +File: xemacs-faq.info, Node: Q2.1.25, Prev: Q2.1.24, Up: Installation + +Q2.1.25:: After upgrading, XEmacs won't do `foo' any more! (NEW) +----------------------------------------------------------------- + + You have been used to doing `foo', but now when you invoke it (or +click the toolbar button or select the menu item), nothing (or an error) +happens. The simplest explanation is that you are missing a package +that is essential to you. You can either track it down and install it, +or install the `Sumo Tarball' (see *note Q2.0.14::). + + File: xemacs-faq.info, Node: Customization, Next: Subsystems, Prev: Installation, Up: Top 3 Customization and Options @@ -1241,66 +1310,4 @@ That is, use the file name, or the dired-directory, or the buffer name. - - -File: xemacs-faq.info, Node: Q3.1.7, Next: Q3.1.8, Prev: Q3.1.6, Up: Customization - -Q3.1.7: `xemacs -name junk' doesn't work? ------------------------------------------ - - When I run `xterm -name junk', I get an xterm whose class name -according to xprop, is `junk'. This is the way it's supposed to work, -I think. When I run `xemacs -name junk' the class name is not set to -`junk'. It's still `emacs'. What does `xemacs -name' really do? The -reason I ask is that my window manager (fvwm) will make a window sticky -and I use XEmacs to read my mail. I want that XEmacs window to be -sticky, without having to use the window manager's function to set the -window sticky. What gives? - - `xemacs -name' sets the application name for the program (that is, -the thing which normally comes from `argv[0]'). Using `-name' is the -same as making a copy of the executable with that new name. The -`WM_CLASS' property on each frame is set to the frame-name, and the -application-class. So, if you did `xemacs -name FOO' and then created -a frame named BAR, you'd get an X window with WM_CLASS = `( "BAR", -"Emacs")'. However, the resource hierarchy for this widget would be: - - Name: FOO .shell .container .BAR - Class: Emacs .TopLevelEmacsShell.EmacsManager.EmacsFrame - - instead of the default - - Name: xemacs.shell .container .emacs - Class: Emacs .TopLevelEmacsShell.EmacsManager.EmacsFrame - - It is arguable that the first element of WM_CLASS should be set to -the application-name instead of the frame-name, but I think that's less -flexible, since it does not give you the ability to have multiple frames -with different WM_CLASS properties. Another possibility would be for -the default frame name to come from the application name instead of -simply being `emacs'. However, at this point, making that change would -be troublesome: it would mean that many users would have to make yet -another change to their resource files (since the default frame name -would suddenly change from `emacs' to `xemacs', or whatever the -executable happened to be named), so we'd rather avoid it. - - To make a frame with a particular name use: - - (make-frame '((name . "the-name"))) - - -File: xemacs-faq.info, Node: Q3.1.8, Next: Q3.2.1, Prev: Q3.1.7, Up: Customization - -Q3.1.8: `-iconic' doesn't work. -------------------------------- - - When I start up XEmacs using `-iconic' it doesn't work right. Using -`-unmapped' on the command line, and setting the `initiallyUnmapped' X -Resource don't seem to help much either... - - Ben Wing writes: - - Ugh, this stuff is such an incredible mess that I've about given up - getting it to work. The principal problem is numerous - window-manager bugs... diff -r -u -N xemacs-21.1.12/info/xemacs-faq.info-3 xemacs-21.1.13/info/xemacs-faq.info-3 --- xemacs-21.1.12/info/xemacs-faq.info-3 Fri Aug 4 21:31:16 2000 +++ xemacs-21.1.13/info/xemacs-faq.info-3 Sun Jan 7 15:57:31 2001 @@ -1,4 +1,4 @@ -This is ../info/xemacs-faq.info, produced by makeinfo version 4.0 from +This is ../info/xemacs-faq.info, produced by makeinfo version 4.0a from xemacs-faq.texi. INFO-DIR-SECTION XEmacs Editor @@ -7,6 +7,68 @@ END-INFO-DIR-ENTRY  +File: xemacs-faq.info, Node: Q3.1.7, Next: Q3.1.8, Prev: Q3.1.6, Up: Customization + +Q3.1.7: `xemacs -name junk' doesn't work? +----------------------------------------- + + When I run `xterm -name junk', I get an xterm whose class name +according to xprop, is `junk'. This is the way it's supposed to work, +I think. When I run `xemacs -name junk' the class name is not set to +`junk'. It's still `emacs'. What does `xemacs -name' really do? The +reason I ask is that my window manager (fvwm) will make a window sticky +and I use XEmacs to read my mail. I want that XEmacs window to be +sticky, without having to use the window manager's function to set the +window sticky. What gives? + + `xemacs -name' sets the application name for the program (that is, +the thing which normally comes from `argv[0]'). Using `-name' is the +same as making a copy of the executable with that new name. The +`WM_CLASS' property on each frame is set to the frame-name, and the +application-class. So, if you did `xemacs -name FOO' and then created +a frame named BAR, you'd get an X window with WM_CLASS = `( "BAR", +"Emacs")'. However, the resource hierarchy for this widget would be: + + Name: FOO .shell .container .BAR + Class: Emacs .TopLevelEmacsShell.EmacsManager.EmacsFrame + + instead of the default + + Name: xemacs.shell .container .emacs + Class: Emacs .TopLevelEmacsShell.EmacsManager.EmacsFrame + + It is arguable that the first element of WM_CLASS should be set to +the application-name instead of the frame-name, but I think that's less +flexible, since it does not give you the ability to have multiple frames +with different WM_CLASS properties. Another possibility would be for +the default frame name to come from the application name instead of +simply being `emacs'. However, at this point, making that change would +be troublesome: it would mean that many users would have to make yet +another change to their resource files (since the default frame name +would suddenly change from `emacs' to `xemacs', or whatever the +executable happened to be named), so we'd rather avoid it. + + To make a frame with a particular name use: + + (make-frame '((name . "the-name"))) + + +File: xemacs-faq.info, Node: Q3.1.8, Next: Q3.2.1, Prev: Q3.1.7, Up: Customization + +Q3.1.8: `-iconic' doesn't work. +------------------------------- + + When I start up XEmacs using `-iconic' it doesn't work right. Using +`-unmapped' on the command line, and setting the `initiallyUnmapped' X +Resource don't seem to help much either... + + Ben Wing writes: + + Ugh, this stuff is such an incredible mess that I've about given up + getting it to work. The principal problem is numerous + window-manager bugs... + + File: xemacs-faq.info, Node: Q3.2.1, Next: Q3.2.2, Prev: Q3.1.8, Up: Customization 3.2: Textual Fonts & Colors @@ -346,8 +408,8 @@ Q3.5.3: How do I bind C-. and C-; to scroll one line up and down? ----------------------------------------------------------------- - Add the following (Thanks to Richard Mlynarik -and Wayne Newberry ) to `.emacs': + Add the following (Thanks to Richard Mlynarik and +Wayne Newberry ) to `.emacs': (defun scroll-up-one-line () (interactive) @@ -1330,87 +1392,4 @@ For tm use the following: (autoload 'smiley-buffer "smiley" nil t) (add-hook 'mime-viewer/plain-text-preview-hook 'smiley-buffer) - - -File: xemacs-faq.info, Node: Q4.0.12, Next: Q4.1.1, Prev: Q4.0.11, Up: Subsystems - -Q4.0.12: Customization of VM not covered in the manual, or here. ----------------------------------------------------------------- - - giacomo boffi writes: - - The meta-answer is to look into the file `vm-vars.el', in the vm - directory of the lisp library. - - `vm-vars.el' contains, initializes and carefully describes, with - examples of usage, the plethora of user options that _fully_ - control VM's behavior. - - Enter vm-vars, `forward-search' for toolbar, find the variables - that control the toolbar placement, appearance, existence, copy to - your `.emacs' or `.vm' and modify according to the detailed - instructions. - - The above also applies to all the various features of VM: search - for some keywords, maybe the first you conjure isn't appropriate, - find the appropriate variables, copy and experiment. - - -File: xemacs-faq.info, Node: Q4.1.1, Next: Q4.1.2, Prev: Q4.0.12, Up: Subsystems - -4.1: Web browsing with W3 -========================= - -Q4.1.1: What is W3? -------------------- - - W3 is an advanced graphical browser written in Emacs lisp that runs -on XEmacs. It has full support for cascaded style sheets, and more... - - It has a home web page at -`http://www.cs.indiana.edu/elisp/w3/docs.html'. - - -File: xemacs-faq.info, Node: Q4.1.2, Next: Q4.1.3, Prev: Q4.1.1, Up: Subsystems - -Q4.1.2: How do I run W3 from behind a firewall? ------------------------------------------------ - - There is a long, well-written, detailed section in the W3 manual that -describes how to do this. Look in the section entitled "Firewalls". - - -File: xemacs-faq.info, Node: Q4.1.3, Next: Q4.2.1, Prev: Q4.1.2, Up: Subsystems - -Q4.1.3: Is it true that W3 supports style sheets and tables? ------------------------------------------------------------- - - Yes, and much more. W3, as distributed with the latest XEmacs is a -full-featured web browser. - - -File: xemacs-faq.info, Node: Q4.2.1, Next: Q4.2.2, Prev: Q4.1.3, Up: Subsystems - -4.2: Reading Netnews and Mail with Gnus -======================================= - -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 -excellent FAQ, maintained by Justin Sheehy, at: - - `http://www.ccs.neu.edu/software/contrib/gnus/' - - See also Gnus home page - `http://www.gnus.org/' - - -File: xemacs-faq.info, Node: Q4.2.2, Next: Q4.2.3, Prev: Q4.2.1, Up: Subsystems - -Q4.2.2: This question intentionally left blank. ------------------------------------------------ - - Obsolete question, left blank to avoid renumbering. diff -r -u -N xemacs-21.1.12/info/xemacs-faq.info-4 xemacs-21.1.13/info/xemacs-faq.info-4 --- xemacs-21.1.12/info/xemacs-faq.info-4 Fri Aug 4 21:31:16 2000 +++ xemacs-21.1.13/info/xemacs-faq.info-4 Sun Jan 7 15:57:31 2001 @@ -1,4 +1,4 @@ -This is ../info/xemacs-faq.info, produced by makeinfo version 4.0 from +This is ../info/xemacs-faq.info, produced by makeinfo version 4.0a from xemacs-faq.texi. INFO-DIR-SECTION XEmacs Editor @@ -7,6 +7,89 @@ END-INFO-DIR-ENTRY  +File: xemacs-faq.info, Node: Q4.0.12, Next: Q4.1.1, Prev: Q4.0.11, Up: Subsystems + +Q4.0.12: Customization of VM not covered in the manual, or here. +---------------------------------------------------------------- + + giacomo boffi writes: + + The meta-answer is to look into the file `vm-vars.el', in the vm + directory of the lisp library. + + `vm-vars.el' contains, initializes and carefully describes, with + examples of usage, the plethora of user options that _fully_ + control VM's behavior. + + Enter vm-vars, `forward-search' for toolbar, find the variables + that control the toolbar placement, appearance, existence, copy to + your `.emacs' or `.vm' and modify according to the detailed + instructions. + + The above also applies to all the various features of VM: search + for some keywords, maybe the first you conjure isn't appropriate, + find the appropriate variables, copy and experiment. + + +File: xemacs-faq.info, Node: Q4.1.1, Next: Q4.1.2, Prev: Q4.0.12, Up: Subsystems + +4.1: Web browsing with W3 +========================= + +Q4.1.1: What is W3? +------------------- + + W3 is an advanced graphical browser written in Emacs lisp that runs +on XEmacs. It has full support for cascaded style sheets, and more... + + It has a home web page at +`http://www.cs.indiana.edu/elisp/w3/docs.html'. + + +File: xemacs-faq.info, Node: Q4.1.2, Next: Q4.1.3, Prev: Q4.1.1, Up: Subsystems + +Q4.1.2: How do I run W3 from behind a firewall? +----------------------------------------------- + + There is a long, well-written, detailed section in the W3 manual that +describes how to do this. Look in the section entitled "Firewalls". + + +File: xemacs-faq.info, Node: Q4.1.3, Next: Q4.2.1, Prev: Q4.1.2, Up: Subsystems + +Q4.1.3: Is it true that W3 supports style sheets and tables? +------------------------------------------------------------ + + Yes, and much more. W3, as distributed with the latest XEmacs is a +full-featured web browser. + + +File: xemacs-faq.info, Node: Q4.2.1, Next: Q4.2.2, Prev: Q4.1.3, Up: Subsystems + +4.2: Reading Netnews and Mail with Gnus +======================================= + +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 +excellent FAQ, maintained by Justin Sheehy, at: + + `http://www.ccs.neu.edu/software/contrib/gnus/' + + See also Gnus home page + `http://www.gnus.org/' + + +File: xemacs-faq.info, Node: Q4.2.2, Next: Q4.2.3, Prev: Q4.2.1, Up: Subsystems + +Q4.2.2: This question intentionally left blank. +----------------------------------------------- + + Obsolete question, left blank to avoid renumbering. + + File: xemacs-faq.info, Node: Q4.2.3, Next: Q4.2.4, Prev: Q4.2.2, Up: Subsystems Q4.2.3: How do I make Gnus stay within a single frame? @@ -544,7 +627,7 @@ * Q5.1.4:: What is the performance hit of `let'? * Q5.1.5:: What is the recommended use of `setq'? * Q5.1.6:: What is the typical misuse of `setq'? -* Q5.1.7:: I like the the `do' form of cl, does it slow things down? +* Q5.1.7:: I like the `do' form of cl, does it slow things down? * Q5.1.8:: I like recursion, does it slow things down? * Q5.1.9:: How do I put a glyph as annotation in a buffer? * Q5.1.10:: `map-extents' won't traverse all of my extents! @@ -1190,8 +1273,8 @@  File: xemacs-faq.info, Node: Q5.1.7, Next: Q5.1.8, Prev: Q5.1.6, Up: Miscellaneous -Q5.1.7: I like the the `do' form of cl, does it slow things down? ------------------------------------------------------------------ +Q5.1.7: I like the `do' form of cl, does it slow things down? +------------------------------------------------------------- It shouldn't. Here is what Dave Gillespie has to say about cl.el performance: @@ -1240,69 +1323,4 @@ Please try not to make your code much uglier to gain a very small speed gain. It's not usually worth it. - - -File: xemacs-faq.info, Node: Q5.1.9, Next: Q5.1.10, Prev: Q5.1.8, Up: Miscellaneous - -Q5.1.9: How do I put a glyph as annotation in a buffer? -------------------------------------------------------- - - Here is a solution that will insert the glyph annotation at the -beginning of buffer: - - (make-annotation (make-glyph '([FORMAT :file FILE] - [string :data "fallback-text"])) - (point-min) - 'text - (current-buffer)) - - Replace `FORMAT' with an unquoted symbol representing the format of -the image (e.g. `xpm', `xbm', `gif', `jpeg', etc.) Instead of `FILE', -use the image file name (e.g. -`/usr/local/lib/xemacs-20.2/etc/recycle.xpm'). - - You can turn this to a function (that optionally prompts you for a -file name), and inserts the glyph at `(point)' instead of `(point-min)'. - - -File: xemacs-faq.info, Node: Q5.1.10, Next: Q5.1.11, Prev: Q5.1.9, Up: Miscellaneous - -Q5.1.10: `map-extents' won't traverse all of my extents! --------------------------------------------------------- - - I tried to use `map-extents' to do an operation on all the extents -in a region. However, it seems to quit after processing a random number -of extents. Is it buggy? - - No. The documentation of `map-extents' states that it will iterate -across the extents as long as FUNCTION returns `nil'. Unexperienced -programmers often forget to return `nil' explicitly, which results in -buggy code. For instance, the following code is supposed to delete all -the extents in a buffer, and issue as many `fubar!' messages. - - (map-extents (lambda (ext ignore) - (delete-extent ext) - (message "fubar!"))) - - Instead, it will delete only the first extent, and stop right there - -because `message' will return a non-nil value. The correct code is: - - (map-extents (lambda (ext ignore) - (delete-extent ext) - (message "fubar!") - nil)) - - -File: xemacs-faq.info, Node: Q5.1.11, Next: Q5.2.1, Prev: Q5.1.10, Up: Miscellaneous - -Q5.1.11: My elisp program is horribly slow. Is there ------------------------------------------------------ - - an easy way to find out where it spends time? - - zHrvoje Niksic writes: - Under XEmacs 20.4 and later you can use `M-x - profile-key-sequence', press a key (say in the Gnus Group - buffer), and get the results using `M-x profile-results'. It - should give you an idea of where the time is being spent. diff -r -u -N xemacs-21.1.12/info/xemacs-faq.info-5 xemacs-21.1.13/info/xemacs-faq.info-5 --- xemacs-21.1.12/info/xemacs-faq.info-5 Fri Aug 4 21:31:16 2000 +++ xemacs-21.1.13/info/xemacs-faq.info-5 Sun Jan 7 15:57:31 2001 @@ -1,10 +1,75 @@ -This is ../info/xemacs-faq.info, produced by makeinfo version 4.0 from +This is ../info/xemacs-faq.info, produced by makeinfo version 4.0a from xemacs-faq.texi. INFO-DIR-SECTION XEmacs Editor START-INFO-DIR-ENTRY * FAQ: (xemacs-faq). XEmacs FAQ. END-INFO-DIR-ENTRY + + +File: xemacs-faq.info, Node: Q5.1.9, Next: Q5.1.10, Prev: Q5.1.8, Up: Miscellaneous + +Q5.1.9: How do I put a glyph as annotation in a buffer? +------------------------------------------------------- + + Here is a solution that will insert the glyph annotation at the +beginning of buffer: + + (make-annotation (make-glyph '([FORMAT :file FILE] + [string :data "fallback-text"])) + (point-min) + 'text + (current-buffer)) + + Replace `FORMAT' with an unquoted symbol representing the format of +the image (e.g. `xpm', `xbm', `gif', `jpeg', etc.) Instead of `FILE', +use the image file name (e.g. +`/usr/local/lib/xemacs-20.2/etc/recycle.xpm'). + + You can turn this to a function (that optionally prompts you for a +file name), and inserts the glyph at `(point)' instead of `(point-min)'. + + +File: xemacs-faq.info, Node: Q5.1.10, Next: Q5.1.11, Prev: Q5.1.9, Up: Miscellaneous + +Q5.1.10: `map-extents' won't traverse all of my extents! +-------------------------------------------------------- + + I tried to use `map-extents' to do an operation on all the extents +in a region. However, it seems to quit after processing a random number +of extents. Is it buggy? + + No. The documentation of `map-extents' states that it will iterate +across the extents as long as FUNCTION returns `nil'. Unexperienced +programmers often forget to return `nil' explicitly, which results in +buggy code. For instance, the following code is supposed to delete all +the extents in a buffer, and issue as many `fubar!' messages. + + (map-extents (lambda (ext ignore) + (delete-extent ext) + (message "fubar!"))) + + Instead, it will delete only the first extent, and stop right there - +because `message' will return a non-nil value. The correct code is: + + (map-extents (lambda (ext ignore) + (delete-extent ext) + (message "fubar!") + nil)) + + +File: xemacs-faq.info, Node: Q5.1.11, Next: Q5.2.1, Prev: Q5.1.10, Up: Miscellaneous + +Q5.1.11: My elisp program is horribly slow. Is there +----------------------------------------------------- + + an easy way to find out where it spends time? + + zHrvoje Niksic writes: + Under XEmacs 20.4 and later you can use `M-x + profile-key-sequence', press a key (say in the Gnus Group + buffer), and get the results using `M-x profile-results'. It + should give you an idea of where the time is being spent.  File: xemacs-faq.info, Node: Q5.2.1, Next: Q5.2.2, Prev: Q5.1.11, Up: Miscellaneous diff -r -u -N xemacs-21.1.12/info/xemacs.info xemacs-21.1.13/info/xemacs.info --- xemacs-21.1.12/info/xemacs.info Fri Aug 4 21:31:17 2000 +++ xemacs-21.1.13/info/xemacs.info Sun Jan 7 15:57:32 2001 @@ -1,4 +1,4 @@ -This is ../../info/xemacs.info, produced by makeinfo version 4.0 from +This is ../../info/xemacs.info, produced by makeinfo version 4.0a from xemacs.texi. INFO-DIR-SECTION XEmacs Editor @@ -31,367 +31,369 @@  Indirect: -xemacs.info-1: 1346 -xemacs.info-2: 47929 -xemacs.info-3: 95887 -xemacs.info-4: 143719 -xemacs.info-5: 191918 -xemacs.info-6: 241283 -xemacs.info-7: 290090 -xemacs.info-8: 339633 -xemacs.info-9: 384913 -xemacs.info-10: 432737 -xemacs.info-11: 481909 -xemacs.info-12: 527799 -xemacs.info-13: 576376 -xemacs.info-14: 624517 -xemacs.info-15: 673271 -xemacs.info-16: 722796 -xemacs.info-17: 771360 -xemacs.info-18: 816059 -xemacs.info-19: 857223 -xemacs.info-20: 905220 -xemacs.info-21: 945940 +xemacs.info-1: 1347 +xemacs.info-2: 47946 +xemacs.info-3: 95904 +xemacs.info-4: 143712 +xemacs.info-5: 191911 +xemacs.info-6: 241277 +xemacs.info-7: 290084 +xemacs.info-8: 339627 +xemacs.info-9: 384907 +xemacs.info-10: 432731 +xemacs.info-11: 481903 +xemacs.info-12: 527792 +xemacs.info-13: 576642 +xemacs.info-14: 626004 +xemacs.info-15: 675823 +xemacs.info-16: 724317 +xemacs.info-17: 772967 +xemacs.info-18: 822738 +xemacs.info-19: 867736 +xemacs.info-20: 915733 +xemacs.info-21: 956453  Tag Table: (Indirect) -Node: Top1346 -Node: License22500 -Node: Distrib35782 -Node: Intro37446 -Node: Frame40317 -Node: Point43585 -Node: Echo Area45552 -Node: Mode Line47929 -Node: XEmacs under X52360 -Node: Keystrokes55537 -Node: Intro to Keystrokes56381 -Node: Representing Keystrokes58484 -Node: Key Sequences59841 -Node: String Key Sequences63182 -Node: Meta Key63565 -Node: Super and Hyper Keys65038 -Node: Character Representation71262 -Node: Commands72282 -Node: Pull-down Menus75131 -Node: File Menu78480 -Node: Edit Menu82302 -Node: Apps Menu84685 -Node: Options Menu85175 -Node: Buffers Menu89155 -Node: Tools Menu89462 -Node: Help Menu89953 -Node: Menu Customization90354 -Node: Entering Emacs94584 -Node: Exiting95887 -Node: Command Switches98978 -Node: Startup Paths107897 -Node: Basic115473 -Node: Blank Lines124951 -Node: Continuation Lines126377 -Node: Position Info127809 -Node: Arguments130942 -Node: Undo134079 -Node: Minibuffer137026 -Node: Minibuffer File139510 -Node: Minibuffer Edit141146 -Node: Completion143719 -Node: Repetition150594 -Node: M-x153386 -Node: Help158480 -Node: Mark168399 -Node: Setting Mark170253 -Node: Using Region173375 -Node: Marking Objects174112 -Node: Mark Ring175950 -Node: Mouse Selection177666 -Node: Additional Mouse Operations179673 -Node: Killing183877 -Node: Yanking189513 -Node: Kill Ring190316 -Node: Appending Kills191918 -Node: Earlier Kills193955 -Node: Using X Selections196568 -Node: X Clipboard Selection197818 -Node: X Selection Commands199995 -Node: X Cut Buffers201081 -Node: Active Regions202440 -Node: Accumulating Text207020 -Node: Rectangles210093 -Node: Registers213612 -Node: RegPos214646 -Node: RegText215549 -Node: RegRect216633 -Node: Display217373 -Node: Scrolling218868 -Node: Horizontal Scrolling223011 -Node: Selective Display224206 -Node: Display Vars225425 -Node: Search228103 -Node: Incremental Search229296 -Node: Non-Incremental Search238223 -Node: Word Search239665 -Node: Regexp Search241283 -Node: Regexps242819 -Node: Search Case253120 -Node: Replace253901 -Node: Unconditional Replace254849 -Node: Regexp Replace255984 -Node: Replacement and Case256919 -Node: Query Replace257899 -Node: Other Repeating Search261126 -Node: Fixit262381 -Node: Kill Errors262961 -Node: Transpose264294 -Node: Fixing Case266698 -Node: Spelling267344 -Node: Files268805 -Node: File Names270115 -Node: Visiting274452 -Node: Saving281138 -Node: Backup286061 -Node: Backup Names287457 -Node: Backup Deletion288940 -Node: Backup Copying290090 -Node: Interlocking291796 -Node: Reverting295924 -Node: Auto Save297836 -Node: Auto Save Files298803 -Node: Auto Save Control300644 -Node: Recover302482 -Node: Version Control303637 -Node: Concepts of VC305675 -Node: Editing with VC307285 -Node: Variables for Check-in/out312541 -Node: Log Entries314440 -Node: Change Logs and VC315620 -Node: Old Versions318887 -Node: VC Status320890 -Node: Renaming and VC322604 -Node: Snapshots323283 -Node: Making Snapshots323784 -Node: Snapshot Caveats325077 -Node: Version Headers326886 -Node: ListDir329585 -Node: Comparing Files331634 -Node: Dired333167 -Node: Dired Enter333838 -Node: Dired Edit334663 -Node: Dired Deletion336410 -Node: Dired Immed339633 -Node: Misc File Ops340909 -Node: Buffers343397 -Node: Select Buffer345555 -Node: List Buffers347350 -Node: Misc Buffer349095 -Node: Kill Buffer350738 -Node: Several Buffers351868 -Node: Windows355735 -Node: Basic Window356446 -Node: Split Window358165 -Node: Other Window360298 -Node: Pop Up Window362727 -Node: Change Window364232 -Node: Mule367140 -Node: Mule Intro368403 -Node: Language Environments369419 -Node: Input Methods371526 -Node: Select Input Method375246 -Node: Coding Systems377401 -Node: Recognize Coding381587 -Node: Specify Coding384913 -Node: Major Modes389844 -Node: Choosing Modes392063 -Node: Indentation394453 -Node: Indentation Commands396548 -Node: Tab Stops399277 -Node: Just Spaces401126 -Node: Text401941 -Node: Text Mode403924 -Node: Nroff Mode406003 -Node: TeX Mode407646 -Node: TeX Editing409898 -Node: TeX Print413332 -Node: Outline Mode416551 -Node: Outline Format418032 -Node: Outline Motion420832 -Node: Outline Visibility422385 -Node: Words425306 -Node: Sentences428253 -Node: Paragraphs430449 -Node: Pages432737 -Node: Filling435337 -Node: Auto Fill435908 -Node: Fill Commands438055 -Node: Fill Prefix440220 -Node: Case442408 -Node: Programs444436 -Node: Program Modes446986 -Node: Lists449218 -Node: Defuns455058 -Node: Grinding457711 -Node: Basic Indent458339 -Node: Multi-line Indent460360 -Node: Lisp Indent461976 -Node: C Indent465426 -Node: Matching470666 -Node: Comments472188 -Node: Balanced Editing478640 -Node: Lisp Completion479655 -Node: Documentation480670 -Node: Change Log481909 -Node: Tags484487 -Node: Tag Syntax486064 -Node: Create Tags Table489437 -Node: Select Tags Table495535 -Node: Find Tag499277 -Node: Tags Search502241 -Node: List Tags505697 -Node: Fortran506726 -Node: Fortran Motion507802 -Node: Fortran Indent508622 -Node: ForIndent Commands509307 -Node: ForIndent Num510452 -Node: ForIndent Conv511726 -Node: ForIndent Vars512502 -Node: Fortran Comments513670 -Node: Fortran Columns517268 -Node: Fortran Abbrev518691 -Node: Asm Mode519600 -Node: Running520152 -Node: Compilation521122 -Node: Lisp Modes525972 -Node: Lisp Libraries527245 -Node: Loading527799 -Node: Compiling Libraries532259 -Node: Mocklisp535150 -Node: Lisp Eval535827 -Node: Lisp Debug539467 -Node: Lisp Interaction544894 -Node: External Lisp546249 -Node: Packages548323 -Node: Package Terminology549064 -Node: Using Packages550421 -Node: Building Packages558962 -Node: Abbrevs561484 -Node: Defining Abbrevs563684 -Node: Expanding Abbrevs566131 -Node: Editing Abbrevs568833 -Node: Saving Abbrevs570701 -Node: Dynamic Abbrevs572641 -Node: Picture573943 -Node: Basic Picture576376 -Node: Insert in Picture578661 -Node: Tabs in Picture580083 -Node: Rectangles in Picture581604 -Node: Sending Mail583512 -Node: Mail Format585223 -Node: Mail Headers586573 -Node: Mail Mode592983 -Node: Reading Mail596596 -Node: Calendar/Diary598171 -Node: Calendar Motion599843 -Node: Calendar Unit Motion600726 -Node: Move to Beginning or End603049 -Node: Specified Dates604182 -Node: Scroll Calendar605070 -Node: Mark and Region606861 -Node: General Calendar608767 -Node: LaTeX Calendar610375 -Node: Holidays612389 -Node: Sunrise/Sunset615491 -Node: Lunar Phases618534 -Node: Other Calendars619919 -Node: Calendar Systems621406 -Node: To Other Calendar624517 -Node: From Other Calendar626508 -Node: Mayan Calendar628813 -Node: Diary632008 -Node: Diary Commands633757 -Node: Format of Diary File637063 -Node: Date Formats639933 -Node: Adding to Diary642507 -Node: Special Diary Entries644138 -Node: Calendar Customization649477 -Node: Calendar Customizing650339 -Node: Holiday Customizing653558 -Node: Date Display Format660026 -Node: Time Display Format660984 -Node: Daylight Savings662122 -Node: Diary Customizing665310 -Node: Hebrew/Islamic Entries669931 -Node: Fancy Diary Display673271 -Node: Included Diary Files675168 -Node: Sexp Diary Entries676149 -Node: Appt Customizing681239 -Node: Sorting682285 -Node: Shell687091 -Node: Single Shell688384 -Node: Interactive Shell689983 -Node: Shell Mode693748 -Node: Terminal emulator696239 -Node: Term Mode698548 -Node: Paging in Term699462 -Node: Narrowing700260 -Node: Hardcopy702210 -Node: Recursive Edit703182 -Node: Dissociated Press706169 -Node: CONX708732 -Node: Amusements709756 -Node: Emulation710236 -Node: Customization712080 -Node: Minor Modes713804 -Node: Variables715436 -Node: Examining717392 -Node: Easy Customization718853 -Node: Customization Groups719867 -Node: Changing an Option722796 -Node: Face Customization729052 -Node: Specific Customization730816 -Node: Edit Options733423 -Node: Locals735007 -Node: File Variables738186 -Node: Keyboard Macros742712 -Node: Basic Kbd Macro744883 -Node: Save Kbd Macro746815 -Node: Kbd Macro Query748484 -Node: Key Bindings750426 -Node: Keymaps751300 -Node: Rebinding755150 -Node: Interactive Rebinding755849 -Node: Programmatic Rebinding758041 -Node: Key Bindings Using Strings760848 -Node: Disabling762454 -Node: Syntax764226 -Node: Syntax Entry765107 -Node: Syntax Change769191 -Node: Init File771360 -Node: Init Syntax773066 -Node: Init Examples775418 -Node: Terminal Init779608 -Node: Audible Bell781318 -Node: Faces784749 -Node: X Resources789586 -Node: Geometry Resources791207 -Node: Iconic Resources793655 -Node: Resource List794127 -Node: Face Resources800634 -Node: Widgets804311 -Node: Menubar Resources805250 -Node: Quitting806763 -Node: Lossage809741 -Node: Stuck Recursive810385 -Node: Screen Garbled811091 -Node: Text Garbled812225 -Node: Unasked-for Search812864 -Node: Emergency Escape813649 -Node: Total Frustration815428 -Node: Bugs816059 -Node: Glossary825593 -Node: Manifesto857223 -Node: Key Index880700 -Node: Command Index905220 -Node: Variable Index945940 -Node: Concept Index961943 +Node: Top1347 +Node: License22518 +Node: Distrib35799 +Node: Intro37463 +Node: Frame40334 +Node: Point43602 +Node: Echo Area45569 +Node: Mode Line47946 +Node: XEmacs under X52377 +Node: Keystrokes55554 +Node: Intro to Keystrokes56398 +Node: Representing Keystrokes58501 +Node: Key Sequences59858 +Node: String Key Sequences63199 +Node: Meta Key63582 +Node: Super and Hyper Keys65055 +Node: Character Representation71279 +Node: Commands72299 +Node: Pull-down Menus75148 +Node: File Menu78497 +Node: Edit Menu82319 +Node: Apps Menu84702 +Node: Options Menu85192 +Node: Buffers Menu89172 +Node: Tools Menu89479 +Node: Help Menu89970 +Node: Menu Customization90371 +Node: Entering Emacs94601 +Node: Exiting95904 +Node: Command Switches98995 +Node: Startup Paths107914 +Node: Basic115471 +Node: Blank Lines124944 +Node: Continuation Lines126370 +Node: Position Info127802 +Node: Arguments130935 +Node: Undo134072 +Node: Minibuffer137019 +Node: Minibuffer File139503 +Node: Minibuffer Edit141139 +Node: Completion143712 +Node: Repetition150587 +Node: M-x153379 +Node: Help158473 +Node: Mark168392 +Node: Setting Mark170246 +Node: Using Region173368 +Node: Marking Objects174105 +Node: Mark Ring175943 +Node: Mouse Selection177659 +Node: Additional Mouse Operations179666 +Node: Killing183870 +Node: Yanking189506 +Node: Kill Ring190309 +Node: Appending Kills191911 +Node: Earlier Kills193948 +Node: Using X Selections196561 +Node: X Clipboard Selection197811 +Node: X Selection Commands199988 +Node: X Cut Buffers201074 +Node: Active Regions202433 +Node: Accumulating Text207013 +Node: Rectangles210086 +Node: Registers213605 +Node: RegPos214639 +Node: RegText215542 +Node: RegRect216626 +Node: Display217366 +Node: Scrolling218861 +Node: Horizontal Scrolling223004 +Node: Selective Display224199 +Node: Display Vars225418 +Node: Search228096 +Node: Incremental Search229289 +Node: Non-Incremental Search238217 +Node: Word Search239659 +Node: Regexp Search241277 +Node: Regexps242813 +Node: Search Case253114 +Node: Replace253895 +Node: Unconditional Replace254843 +Node: Regexp Replace255978 +Node: Replacement and Case256913 +Node: Query Replace257893 +Node: Other Repeating Search261120 +Node: Fixit262375 +Node: Kill Errors262955 +Node: Transpose264288 +Node: Fixing Case266692 +Node: Spelling267338 +Node: Files268799 +Node: File Names270109 +Node: Visiting274446 +Node: Saving281132 +Node: Backup286055 +Node: Backup Names287451 +Node: Backup Deletion288934 +Node: Backup Copying290084 +Node: Interlocking291790 +Node: Reverting295918 +Node: Auto Save297830 +Node: Auto Save Files298797 +Node: Auto Save Control300638 +Node: Recover302476 +Node: Version Control303631 +Node: Concepts of VC305669 +Node: Editing with VC307279 +Node: Variables for Check-in/out312535 +Node: Log Entries314434 +Node: Change Logs and VC315614 +Node: Old Versions318881 +Node: VC Status320884 +Node: Renaming and VC322598 +Node: Snapshots323277 +Node: Making Snapshots323778 +Node: Snapshot Caveats325071 +Node: Version Headers326880 +Node: ListDir329579 +Node: Comparing Files331628 +Node: Dired333161 +Node: Dired Enter333832 +Node: Dired Edit334657 +Node: Dired Deletion336404 +Node: Dired Immed339627 +Node: Misc File Ops340903 +Node: Buffers343391 +Node: Select Buffer345549 +Node: List Buffers347344 +Node: Misc Buffer349089 +Node: Kill Buffer350732 +Node: Several Buffers351862 +Node: Windows355729 +Node: Basic Window356440 +Node: Split Window358159 +Node: Other Window360292 +Node: Pop Up Window362721 +Node: Change Window364226 +Node: Mule367134 +Node: Mule Intro368397 +Node: Language Environments369413 +Node: Input Methods371520 +Node: Select Input Method375240 +Node: Coding Systems377395 +Node: Recognize Coding381581 +Node: Specify Coding384907 +Node: Major Modes389838 +Node: Choosing Modes392057 +Node: Indentation394447 +Node: Indentation Commands396542 +Node: Tab Stops399271 +Node: Just Spaces401120 +Node: Text401935 +Node: Text Mode403918 +Node: Nroff Mode405997 +Node: TeX Mode407640 +Node: TeX Editing409892 +Node: TeX Print413326 +Node: Outline Mode416545 +Node: Outline Format418026 +Node: Outline Motion420826 +Node: Outline Visibility422379 +Node: Words425300 +Node: Sentences428247 +Node: Paragraphs430443 +Node: Pages432731 +Node: Filling435331 +Node: Auto Fill435902 +Node: Fill Commands438049 +Node: Fill Prefix440214 +Node: Case442402 +Node: Programs444430 +Node: Program Modes446980 +Node: Lists449212 +Node: Defuns455052 +Node: Grinding457705 +Node: Basic Indent458333 +Node: Multi-line Indent460354 +Node: Lisp Indent461970 +Node: C Indent465420 +Node: Matching470660 +Node: Comments472182 +Node: Balanced Editing478634 +Node: Lisp Completion479649 +Node: Documentation480664 +Node: Change Log481903 +Node: Tags484481 +Node: Tag Syntax486058 +Node: Create Tags Table489431 +Node: Select Tags Table495529 +Node: Find Tag499271 +Node: Tags Search502235 +Node: List Tags505691 +Node: Fortran506720 +Node: Fortran Motion507796 +Node: Fortran Indent508616 +Node: ForIndent Commands509301 +Node: ForIndent Num510446 +Node: ForIndent Conv511720 +Node: ForIndent Vars512496 +Node: Fortran Comments513664 +Node: Fortran Columns517262 +Node: Fortran Abbrev518685 +Node: Asm Mode519594 +Node: Running520146 +Node: Compilation521115 +Node: Lisp Modes525965 +Node: Lisp Libraries527238 +Node: Loading527792 +Node: Compiling Libraries532252 +Node: Mocklisp535143 +Node: Lisp Eval535820 +Node: Lisp Debug539460 +Node: Lisp Interaction544887 +Node: External Lisp546242 +Node: Packages548316 +Node: Package Terminology549171 +Node: Using Packages550528 +Node: Building Packages559069 +Node: Creating Packages561612 +Node: Available Packages566612 +Node: Abbrevs571996 +Node: Defining Abbrevs574195 +Node: Expanding Abbrevs576642 +Node: Editing Abbrevs579344 +Node: Saving Abbrevs581212 +Node: Dynamic Abbrevs583152 +Node: Picture584454 +Node: Basic Picture586887 +Node: Insert in Picture589172 +Node: Tabs in Picture590594 +Node: Rectangles in Picture592115 +Node: Sending Mail594023 +Node: Mail Format595734 +Node: Mail Headers597084 +Node: Mail Mode603494 +Node: Reading Mail607107 +Node: Calendar/Diary608682 +Node: Calendar Motion610356 +Node: Calendar Unit Motion611239 +Node: Move to Beginning or End613562 +Node: Specified Dates614695 +Node: Scroll Calendar615583 +Node: Mark and Region617374 +Node: General Calendar619280 +Node: LaTeX Calendar620888 +Node: Holidays622902 +Node: Sunrise/Sunset626004 +Node: Lunar Phases629047 +Node: Other Calendars630432 +Node: Calendar Systems631919 +Node: To Other Calendar635030 +Node: From Other Calendar637021 +Node: Mayan Calendar639326 +Node: Diary642521 +Node: Diary Commands644270 +Node: Format of Diary File647576 +Node: Date Formats650446 +Node: Adding to Diary653020 +Node: Special Diary Entries654651 +Node: Calendar Customization659990 +Node: Calendar Customizing660852 +Node: Holiday Customizing664071 +Node: Date Display Format670539 +Node: Time Display Format671497 +Node: Daylight Savings672635 +Node: Diary Customizing675823 +Node: Hebrew/Islamic Entries680444 +Node: Fancy Diary Display683784 +Node: Included Diary Files685681 +Node: Sexp Diary Entries686662 +Node: Appt Customizing691752 +Node: Sorting692798 +Node: Shell697604 +Node: Single Shell698897 +Node: Interactive Shell700496 +Node: Shell Mode704261 +Node: Terminal emulator706752 +Node: Term Mode709061 +Node: Paging in Term709975 +Node: Narrowing710773 +Node: Hardcopy712723 +Node: Recursive Edit713695 +Node: Dissociated Press716682 +Node: CONX719245 +Node: Amusements720269 +Node: Emulation720749 +Node: Customization722593 +Node: Minor Modes724317 +Node: Variables725949 +Node: Examining727905 +Node: Easy Customization729366 +Node: Customization Groups730380 +Node: Changing an Option733309 +Node: Face Customization739565 +Node: Specific Customization741329 +Node: Edit Options743936 +Node: Locals745520 +Node: File Variables748699 +Node: Keyboard Macros753225 +Node: Basic Kbd Macro755396 +Node: Save Kbd Macro757328 +Node: Kbd Macro Query758997 +Node: Key Bindings760939 +Node: Keymaps761813 +Node: Rebinding765663 +Node: Interactive Rebinding766362 +Node: Programmatic Rebinding768554 +Node: Key Bindings Using Strings771361 +Node: Disabling772967 +Node: Syntax774739 +Node: Syntax Entry775620 +Node: Syntax Change779704 +Node: Init File781873 +Node: Init Syntax783579 +Node: Init Examples785931 +Node: Terminal Init790121 +Node: Audible Bell791831 +Node: Faces795262 +Node: X Resources800099 +Node: Geometry Resources801720 +Node: Iconic Resources804168 +Node: Resource List804640 +Node: Face Resources811147 +Node: Widgets814824 +Node: Menubar Resources815763 +Node: Quitting817276 +Node: Lossage820254 +Node: Stuck Recursive820898 +Node: Screen Garbled821604 +Node: Text Garbled822738 +Node: Unasked-for Search823377 +Node: Emergency Escape824162 +Node: Total Frustration825941 +Node: Bugs826572 +Node: Glossary836106 +Node: Manifesto867736 +Node: Key Index891213 +Node: Command Index915733 +Node: Variable Index956453 +Node: Concept Index972456  End Tag Table diff -r -u -N xemacs-21.1.12/info/xemacs.info-1 xemacs-21.1.13/info/xemacs.info-1 --- xemacs-21.1.12/info/xemacs.info-1 Fri Aug 4 21:31:17 2000 +++ xemacs-21.1.13/info/xemacs.info-1 Sun Jan 7 15:57:32 2001 @@ -1,4 +1,4 @@ -This is ../../info/xemacs.info, produced by makeinfo version 4.0 from +This is ../../info/xemacs.info, produced by makeinfo version 4.0a from xemacs.texi. INFO-DIR-SECTION XEmacs Editor @@ -70,7 +70,8 @@ * Command Switches:: Hairy startup options. * Startup Paths:: - How XEmacs finds Directories and Files + How XEmacs finds Directories and Files. +* Packages:: How XEmacs organizes its high-level functionality. Fundamental Editing Commands * Basic:: The most basic editing commands. @@ -109,7 +110,6 @@ * Text:: Commands and modes for editing English. * Programs:: Commands and modes for editing programs. * Running:: Compiling, running and debugging programs. -* Packages:: How to add new packages to XEmacs. * Abbrevs:: How to define text abbreviations to reduce the number of characters you must type. * Picture:: Editing pictures made up of characters @@ -175,6 +175,13 @@ * Menu Customization:: Adding and removing menu items and related operations. +Packages + +* Packages:: Introduction to XEmacs Packages. +* Package Terminology:: Understanding different kinds of packages. +* Using Packages:: How to install and use packages. +* Building Packages:: Building packages from sources. + Basic Editing Commands * Blank Lines:: Commands to make or delete blank lines. @@ -440,13 +447,6 @@ * Compiling Libraries:: Compiling a library makes it load and run faster. * Mocklisp:: Converting Mocklisp to Lisp so XEmacs can run it. -Packages - -* Packages:: Introduction to XEmacs Packages. -* Package Terminology:: Understanding different kinds of packages. -* Using Packages:: How to install and use packages. -* Building Packages:: Building packages from sources. - Abbrevs * Defining Abbrevs:: Defining an abbrev, so it will expand when typed. @@ -596,7 +596,6 @@ modification follow. TERMS AND CONDITIONS - 1. This License Agreement applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The diff -r -u -N xemacs-21.1.12/info/xemacs.info-10 xemacs-21.1.13/info/xemacs.info-10 --- xemacs-21.1.12/info/xemacs.info-10 Fri Aug 4 21:31:17 2000 +++ xemacs-21.1.13/info/xemacs.info-10 Sun Jan 7 15:57:32 2001 @@ -1,4 +1,4 @@ -This is ../../info/xemacs.info, produced by makeinfo version 4.0 from +This is ../../info/xemacs.info, produced by makeinfo version 4.0a from xemacs.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/xemacs.info-11 xemacs-21.1.13/info/xemacs.info-11 --- xemacs-21.1.12/info/xemacs.info-11 Fri Aug 4 21:31:17 2000 +++ xemacs-21.1.13/info/xemacs.info-11 Sun Jan 7 15:57:32 2001 @@ -1,4 +1,4 @@ -This is ../../info/xemacs.info, produced by makeinfo version 4.0 from +This is ../../info/xemacs.info, produced by makeinfo version 4.0a from xemacs.texi. INFO-DIR-SECTION XEmacs Editor @@ -956,7 +956,7 @@ comments in assembler syntax.  -File: xemacs.info, Node: Running, Next: Packages, Prev: Programs, Up: Top +File: xemacs.info, Node: Running, Next: Abbrevs, Prev: Programs, Up: Top Compiling and Testing Programs ****************************** @@ -1028,7 +1028,7 @@ compilation is finished. You do not have to keep this buffer visible; compilation continues in any case. - To kill the compilation process, type `M-x-kill-compilation'. The + To kill the compilation process, type `M-x kill-compilation'. The mode line of the `*compilation*' buffer changes to say `signal' instead of `run'. Starting a new compilation also kills any running compilation, as only one can occur at any time. Starting a new diff -r -u -N xemacs-21.1.12/info/xemacs.info-12 xemacs-21.1.13/info/xemacs.info-12 --- xemacs-21.1.12/info/xemacs.info-12 Fri Aug 4 21:31:17 2000 +++ xemacs-21.1.13/info/xemacs.info-12 Sun Jan 7 15:57:32 2001 @@ -1,4 +1,4 @@ -This is ../../info/xemacs.info, produced by makeinfo version 4.0 from +This is ../../info/xemacs.info, produced by makeinfo version 4.0a from xemacs.texi. INFO-DIR-SECTION XEmacs Editor @@ -464,7 +464,7 @@ is found. *Note Lisp Modes::.  -File: xemacs.info, Node: Packages, Next: Abbrevs, Prev: Running, Up: Top +File: xemacs.info, Node: Packages, Next: Basic, Prev: Startup Paths, Up: Top Packages ======== @@ -482,6 +482,8 @@ * Package Terminology:: Understanding different kinds of packages. * Using Packages:: How to install and use packages. * Building Packages:: Building packages from sources. +* Creating Packages:: The basics. +* Available Packages:: A brief, out-of-date, directory of packaged LISP.  File: xemacs.info, Node: Package Terminology, Next: Using Packages, Up: Packages @@ -757,7 +759,7 @@  -File: xemacs.info, Node: Building Packages, Prev: Using Packages, Up: Packages +File: xemacs.info, Node: Building Packages, Next: Creating Packages, Prev: Using Packages, Up: Packages Source packages are available from the `packages/source-packages' subdirectory of your favorite XEmacs distribution site. Alternatively, @@ -800,9 +802,9 @@ TeXinfo documentation if present. `srckit' - Usually aliased to `make srckit-std'. This does a `make - distclean' and creates a package source tarball in the staging - directory. This is generally only of use for package maintainers. + Usually aliased to `srckit-std'. This does a `make distclean' and + creates a package source tarball in the staging directory. This + is generally only of use for package maintainers. `binkit' May be aliased to `binkit-sourceonly', `binkit-sourceinfo', @@ -820,7 +822,383 @@ of use by XEmacs maintainers producing files for distribution.  -File: xemacs.info, Node: Abbrevs, Next: Picture, Prev: Packages, Up: Top +File: xemacs.info, Node: Creating Packages, Next: Available Packages, Prev: Building Packages, Up: Packages + + Creating a package from an existing Lisp library is not very +difficult. + + In addition to the Lisp libraries themselves, you need a +`package-info.in' file and a simple `Makefile'. The rest is done by +`XEmacs.rules', part of the packaging system infrastructure. + + `package-info.in' contains a single Lisp form like this: + + (name ; your package's name + (standards-version 1.1 + version VERSION + author-version AUTHOR_VERSION + date DATE + build-date BUILD_DATE + maintainer MAINTAINER + distribution xemacs ; change to "mule" if MULE is needed + priority high + category CATEGORY + dump nil + description "description" ; a one-line description string + filename FILENAME + md5sum MD5SUM + size SIZE + provides (feature1 feature2) ; one for every `provides' form + requires (REQUIRES) + type regular + )) + + You must fill in the four commented lines. The value of `name' is +the name of your package as an unquoted symbol. Normally it is the name +of the main Lisp file or principal feature provided. The allowed values +for distribution are `xemacs' and `mule'. Write them as unquoted +symbols. The `description' is a quoted Lisp string; use the usual +conventions. The value for `provides' is a list of feature symbols +(written unquoted). All of the features provided by libraries in your +package should be elements of this list. Implementing an automatic +method for generating the `provides' line is desirable, but as yet +undone. + + The variables in upper-case are references to variables set in the +`Makefile' or automatically generated. Do not change them; they are +automatically filled in by the build process. + + The remaining lines refer to implementation constants +(`standards-version'), or features that are unimplemented or have been +removed (`priority' and `dump'). The `type' line is not normally +relevant to external maintainers; the alternate value is `single-file', +which refers to packages consed up out of a number of single-file +libraries that are more or less thematically related. An example is +`prog-modes'. Single-file packages are basically for administrative +convenience, and new packages should generally be created as regular +packages. + + The `Makefile' is quite stylized. The idea is similar to an +`Imakefile' or an `automake' file: the complexity is hidden in generic +rules files, in this case the `XEmacs.rules' include file in the top +directory of the packages hierarchy. Although a number of facilities +are available for complex libraries, most simple packages' `Makefile's +contain a copyright notice, a few variable definitions, an include for +`XEmacs.rules', and a couple of standard targets. + + The first few `make' variables defined are `VERSION', +`AUTHOR_VERSION', `MAINTAINER', `PACKAGE', `PKG_TYPE', `REQUIRES', and +`CATEGORY'. All but one were described in the description of +`package-info.in'. The last is an admistrative grouping. Current +categories include `comm', `games', `libs', `mule', `oa', `os', `prog', +and `wp'. *Note Available Packages::, for a list of categories. + + Next, define the variable `ELCS'. This contains the list of the +byte-compiled Lisp files used by the package. These files and their +`.el' versions will be included in the binary package. If there are +other files (such as extra Lisp sources or an upstream `Makefile') that +are normally placed in the installed Lisp directory, but not +byte-compiled, they can be listed as the value of `EXTRA_SOURCES'. + + The include is simply + include ../../XEmacs.rules + + The standard targets follow. These are + + all:: $(ELCS) auto-autoloads.elc + + srckit: srckit-alias + + binkit: binkit-alias + + Other targets (such as Texinfo sources) may need to be added as +dependencies for the `all' target. Dependencies for `srckit' and +`binkit' (that is, values for SRCKIT-ALIAS and BINKIT-ALIAS) are +defined in `XEmacs.rules'. The most useful of these values are given +in the following table. + +SRCKIT-ALIAS + Usually set to `srckit-std'. + +BINKIT-ALIAS + May be set to `binkit-sourceonly', `binkit-sourceinfo', + `binkit-sourcedata', or `binkit-sourcedatainfo'. `sourceonly' + indicates there is nothing to install in a data directory or info + directory. `sourceinfo' indicates that source and info files are + to be installed. `sourcedata' indicates that source and etc + (data) files are to be installed. `sourcedatainfo' indicates + source, etc (data), and info files are to be installed. + + Data files include things like pixmaps for a package-specific +toolbar, and are normally installed in `etc/PACKAGE_NAME'. A few +packages have needs beyond the basic templates. See `XEmacs.rules' or +a future revision of this manual for details. + + +File: xemacs.info, Node: Available Packages, Prev: Creating Packages, Up: Packages + + This section is surely out-of-date. If you're sure that XEmacs is +able to do something, but your installed XEmacs won't do it for you, +it's probably in a package. If you can't find it in this section, +that's a bug--please report it. It is very hard to keep this section +up-to-date; your reports, comments, and questions will help a lot. + + This data is up-to-date as of 10 February 1999. (Ouch! I told you!) + +Library Packages (libs) +----------------------- + + These packages are required to build and support most of the rest of +XEmacs. By design, xemacs-base is a `regular' package. Use restraint +when adding new files there as it is required by almost everything. + +`Sun' + Support for Sparcworks. + +`apel' + A Portable Emacs Library. Used by XEmacs MIME support. + +`edebug' + A Lisp debugger. + +`dired' + The DIRectory EDitor is for manipulating, and running commands on + files in a directory. + +`efs' + Treat files on remote systems the same as local files. + +`mail-lib' + Fundamental lisp files for providing email support. + +`tooltalk' + Support for building with Tooltalk. + +`xemacs-base' + Fundamental XEmacs support. Install this unless you wish a totally + naked XEmacs. + +`xemacs-devel' + XEmacs Lisp developer support. This package contains utilities for + supporting Lisp development. It is a single-file package so it + may be tailored. + +Communications Packages (comm) +------------------------------ + + These packages provide support for various communications, primarily +email and usenet. + +`footnote' + Footnoting in mail message editing modes. + +`gnats' + XEmacs bug reports. + +`gnus' + The Gnus Newsreader and Mailreader. + +`mailcrypt' + Support for messaging encryption with PGP. + +`mh-e' + Front end support for MH. + +`net-utils' + Miscellaneous Networking Utilities. This is a single-file package + and files may be deleted at will. + +`ph' + Emacs implementation of the ph client to CCSO/qi directory servers. + +`rmail' + An obsolete Emacs mailer. If you do not already use it, don't + start. + +`supercite' + An Emacs citation tool. Useful with all Emacs Mailers and + Newsreaders. + +`tm' + Emacs MIME support. + +`vm' + An Emacs mailer. + +`w3' + A Web browser. + +Games and Amusements (games) +---------------------------- + +`cookie' + Spook and Yow (Zippy quotes). + +`games' + Tetris, Sokoban, and Snake. + +`mine' + Minehunt. + +`misc-games' + Other amusements and diversions. + +Mule Support (mule) +------------------- + +`egg-its' + Wnn (4.2 and 6) support. SJ3 support. Must be installed prior to + XEmacs build. + +`leim' + Quail. Used for everything other than English and Japanese. + +`locale' + Used for localized menubars (French and Japanese) and localized + splash screens (Japanese). + +`mule-base' + Basic Mule support. Must be installed prior to building with Mule. + +`skk' + Another Japanese Language Input Method. Can be used without a + separate process running as a dictionary server. + +Productivity Packages (oa) +-------------------------- + +`calendar' + Calendar and diary support. + +`edit-utils' + Single file lisp packages for various XEmacs goodies. Load this + and weed out the junk you don't want. + +`forms' + Forms editing support (obsolete, use the builtin Widget instead). + +`frame-icon' + Provide a WM icon based on major mode. + +`hm--html-menus' + HTML editing. + +`ispell' + Spell-checking with ispell. + +`pc' + PC style interface emulation. + +`psgml' + Validated HTML/SGML editing. + +`sgml' + SGML/Linuxdoc-SGML editing. + +`slider' + User interface tool. + +`speedbar' + ??? Document me. + +`strokes' + Mouse enhancement utility. + +`text-modes' + Various single file lisp packages for editing text files. + +`time' + Display time & date on the modeline. + +Operating System Utilities (os) +------------------------------- + +`eterm' + Terminal emulator. + +`igrep' + Enhanced front-end for Grep. + +`ilisp' + Front-end for Inferior Lisp. + +`os-utils' + Miscellaneous single-file O/S utilities, for printing, archiving, + compression, remote shells, etc. + +`view-process' + A Unix process browsing tool. + +Program Editing Support (prog) +------------------------------ + +`ada' + Ada language support. + +`c-support' + Basic single-file add-ons for editing C code. + +`cc-mode' + C, C++ and Java language support. + +`debug' + GUD, gdb, dbx debugging support. + +`ediff' + Interface over patch. + +`emerge' + Another interface over patch. + +`pcl-cvs' + CVS frontend. + +`prog-modes' + Miscellaneous single-file lisp files for various programming + languages. + +`scheme' + Front-end support for Inferior Scheme. + +`sh-script' + Support for editing shell scripts. + +`vc' + Version Control for Free systems. + +`vc-cc' + Version Control for ClearCase. This package must be installed + prior to building XEmacs [broken as of XEmacs 20.5-beta19]. + +`vhdl' + Support for VHDL. + +Word Processing (wp) +-------------------- + +`auctex' + Basic TeX/LaTeX support. + +`crisp' + Crisp/Brief emulation. + +`edt' + DEC EDIT/EDT emulation. + +`texinfo' + XEmacs TeXinfo support. + +`textools' + Single-file TeX support. + +`tpu' + DEC EDIT/TPU support. + +`viper' + VI emulation support. + + +File: xemacs.info, Node: Abbrevs, Next: Picture, Prev: Running, Up: Top Abbrevs ******* @@ -924,243 +1302,4 @@ since those two definitions are independent for one abbrev. `M-x kill-all-abbrevs' removes all existing abbrev definitions. - - -File: xemacs.info, Node: Expanding Abbrevs, Next: Editing Abbrevs, Prev: Defining Abbrevs, Up: Abbrevs - -Controlling Abbrev Expansion -============================ - - An abbrev expands whenever it is in a buffer just before point and -you type a self-inserting punctuation character (, comma, etc.). -Most often an abbrev is used by inserting the abbrev followed by -punctuation. - - Abbrev expansion preserves case; thus, `foo' expands into `find -outer otter', `Foo' into `Find outer otter', and `FOO' into `FIND OUTER -OTTER' or `Find Outer Otter' according to the variable -`abbrev-all-caps' (a non-`nil' value chooses the first of the two -expansions). - - Two commands are available to control abbrev expansion: - -`M-'' - Separate a prefix from a following abbrev to be expanded - (`abbrev-prefix-mark'). - -`C-x a e' - Expand the abbrev before point (`expand-abbrev'). This is - effective even when Abbrev mode is not enabled. - -`M-x unexpand-abbrev' - Undo last abbrev expansion. - -`M-x expand-region-abbrevs' - Expand some or all abbrevs found in the region. - - You may wish to expand an abbrev with a prefix attached. For -example, if `cnst' expands into `construction', you may want to use it -to enter `reconstruction'. It does not work to type `recnst', because -that is not necessarily a defined abbrev. Instead, you can use the -command `M-'' (`abbrev-prefix-mark') between the prefix `re' and the -abbrev `cnst'. First, insert `re'. Then type `M-''; this inserts a -minus sign in the buffer to indicate that it has done its work. Then -insert the abbrev `cnst'. The buffer now contains `re-cnst'. Now -insert a punctuation character to expand the abbrev `cnst' into -`construction'. The minus sign is deleted at this point by `M-''. The -resulting text is the desired `reconstruction'. - - If you actually want the text of the abbrev in the buffer, rather -than its expansion, insert the following punctuation with `C-q'. Thus, -`foo C-q -' leaves `foo-' in the buffer. - - If you expand an abbrev by mistake, you can undo the expansion -(replace the expansion by the original abbrev text) with `M-x -unexpand-abbrev'. You can also use `C-_' (`undo') to undo the -expansion; but that will first undo the insertion of the punctuation -character. - - `M-x expand-region-abbrevs' searches through the region for defined -abbrevs, and offers to replace each one it finds with its expansion. -This command is useful if you have typed text using abbrevs but forgot -to turn on Abbrev mode first. It may also be useful together with a -special set of abbrev definitions for making several global -replacements at once. The command is effective even if Abbrev mode is -not enabled. - - -File: xemacs.info, Node: Editing Abbrevs, Next: Saving Abbrevs, Prev: Expanding Abbrevs, Up: Abbrevs - -Examining and Editing Abbrevs -============================= - -`M-x list-abbrevs' - Print a list of all abbrev definitions. - -`M-x edit-abbrevs' - Edit a list of abbrevs; you can add, alter, or remove definitions. - - The output from `M-x list-abbrevs' looks like this: - - (lisp-mode-abbrev-table) - "dk" 0 "define-key" - (global-abbrev-table) - "dfn" 0 "definition" - -(Some blank lines of no semantic significance, and some other abbrev -tables, have been omitted.) - - A line containing a name in parentheses is the header for abbrevs in -a particular abbrev table; `global-abbrev-table' contains all the global -abbrevs, and the other abbrev tables that are named after major modes -contain the mode-specific abbrevs. - - Within each abbrev table, each non-blank line defines one abbrev. -The word at the beginning is the abbrev. The number that appears is -the number of times the abbrev has been expanded. Emacs keeps track of -this to help you see which abbrevs you actually use, in case you want -to eliminate those that you don't use often. The string at the end of -the line is the expansion. - - `M-x edit-abbrevs' allows you to add, change or kill abbrev -definitions by editing a list of them in an Emacs buffer. The list has -the format described above. The buffer of abbrevs is called -`*Abbrevs*', and is in Edit-Abbrevs mode. This mode redefines the key -`C-c C-c' to install the abbrev definitions as specified in the buffer. -The `edit-abbrevs-redefine' command does this. Any abbrevs not -described in the buffer are eliminated when this is done. - - `edit-abbrevs' is actually the same as `list-abbrevs', except that -it selects the buffer `*Abbrevs*' whereas `list-abbrevs' merely -displays it in another window. - - -File: xemacs.info, Node: Saving Abbrevs, Next: Dynamic Abbrevs, Prev: Editing Abbrevs, Up: Abbrevs - -Saving Abbrevs -============== - - These commands allow you to keep abbrev definitions between editing -sessions. - -`M-x write-abbrev-file' - Write a file describing all defined abbrevs. - -`M-x read-abbrev-file' - Read such an abbrev file and define abbrevs as specified there. - -`M-x quietly-read-abbrev-file' - Similar, but do not display a message about what is going on. - -`M-x define-abbrevs' - Define abbrevs from buffer. - -`M-x insert-abbrevs' - Insert all abbrevs and their expansions into the buffer. - - Use `M-x write-abbrev-file' to save abbrev definitions for use in a -later session. The command reads a file name using the minibuffer and -writes a description of all current abbrev definitions into the -specified file. The text stored in the file looks like the output of -`M-x list-abbrevs'. - - `M-x read-abbrev-file' prompts for a file name using the minibuffer -and reads the specified file, defining abbrevs according to its -contents. `M-x quietly-read-abbrev-file' is the same but does not -display a message in the echo area; it is actually useful primarily in -the `.emacs' file. If you give an empty argument to either of these -functions, the file name Emacs uses is the value of the variable -`abbrev-file-name', which is by default `"~/.abbrev_defs"'. - - Emacs offers to save abbrevs automatically if you have changed any of -them, whenever it offers to save all files (for `C-x s' or `C-x C-c'). -Set the variable `save-abbrevs' to `nil' to inhibit this feature. - - The commands `M-x insert-abbrevs' and `M-x define-abbrevs' are -similar to the previous commands but work on text in an Emacs buffer. -`M-x insert-abbrevs' inserts text into the current buffer before point, -describing all current abbrev definitions; `M-x define-abbrevs' parses -the entire current buffer and defines abbrevs accordingly. - - -File: xemacs.info, Node: Dynamic Abbrevs, Prev: Saving Abbrevs, Up: Abbrevs - -Dynamic Abbrev Expansion -======================== - - The abbrev facility described above operates automatically as you -insert text, but all abbrevs must be defined explicitly. By contrast, -"dynamic abbrevs" allow the meanings of abbrevs to be determined -automatically from the contents of the buffer, but dynamic abbrev -expansion happens only when you request it explicitly. - -`M-/' - Expand the word in the buffer before point as a "dynamic abbrev", - by searching in the buffer for words starting with that - abbreviation (`dabbrev-expand'). - - For example, if the buffer contains `does this follow ' and you type -`f o M-/', the effect is to insert `follow' because that is the last -word in the buffer that starts with `fo'. A numeric argument to `M-/' -says to take the second, third, etc. distinct expansion found looking -backward from point. Repeating `M-/' searches for an alternative -expansion by looking farther back. After the entire buffer before -point has been considered, the buffer after point is searched. - - Dynamic abbrev expansion is completely independent of Abbrev mode; -the expansion of a word with `M-/' is completely independent of whether -it has a definition as an ordinary abbrev. - - -File: xemacs.info, Node: Picture, Next: Sending Mail, Prev: Abbrevs, Up: Top - -Editing Pictures -**************** - - If you want to create a picture made out of text characters (for -example, a picture of the division of a register into fields, as a -comment in a program), use the command `edit-picture' to enter Picture -mode. - - In Picture mode, editing is based on the "quarter-plane" model of -text. In this model, the text characters lie studded on an area that -stretches infinitely far to the right and downward. The concept of the -end of a line does not exist in this model; the most you can say is -where the last non-blank character on the line is found. - - Of course, Emacs really always considers text as a sequence of -characters, and lines really do have ends. But in Picture mode most -frequently-used keys are rebound to commands that simulate the -quarter-plane model of text. They do this by inserting spaces or by -converting tabs to spaces. - - Most of the basic editing commands of Emacs are redefined by Picture -mode to do essentially the same thing but in a quarter-plane way. In -addition, Picture mode defines various keys starting with the `C-c' -prefix to run special picture editing commands. - - One of these keys, `C-c C-c', is pretty important. Often a picture -is part of a larger file that is usually edited in some other major -mode. `M-x edit-picture' records the name of the previous major mode. -You can then use the `C-c C-c' command (`picture-mode-exit') to restore -that mode. `C-c C-c' also deletes spaces from the ends of lines, -unless you give it a numeric argument. - - The commands used in Picture mode all work in other modes (provided -the `picture' library is loaded), but are only bound to keys in -Picture mode. Note that the descriptions below talk of moving "one -column" and so on, but all the picture mode commands handle numeric -arguments as their normal equivalents do. - - Turning on Picture mode calls the value of the variable -`picture-mode-hook' as a function, with no arguments, if that value -exists and is non-`nil'. - -* Menu: - -* Basic Picture:: Basic concepts and simple commands of Picture Mode. -* Insert in Picture:: Controlling direction of cursor motion - after "self-inserting" characters. -* Tabs in Picture:: Various features for tab stops and indentation. -* Rectangles in Picture:: Clearing and superimposing rectangles. diff -r -u -N xemacs-21.1.12/info/xemacs.info-13 xemacs-21.1.13/info/xemacs.info-13 --- xemacs-21.1.12/info/xemacs.info-13 Fri Aug 4 21:31:17 2000 +++ xemacs-21.1.13/info/xemacs.info-13 Sun Jan 7 15:57:32 2001 @@ -1,4 +1,4 @@ -This is ../../info/xemacs.info, produced by makeinfo version 4.0 from +This is ../../info/xemacs.info, produced by makeinfo version 4.0a from xemacs.texi. INFO-DIR-SECTION XEmacs Editor @@ -30,6 +30,245 @@ translation approved by the author instead of in the original English.  +File: xemacs.info, Node: Expanding Abbrevs, Next: Editing Abbrevs, Prev: Defining Abbrevs, Up: Abbrevs + +Controlling Abbrev Expansion +============================ + + An abbrev expands whenever it is in a buffer just before point and +you type a self-inserting punctuation character (, comma, etc.). +Most often an abbrev is used by inserting the abbrev followed by +punctuation. + + Abbrev expansion preserves case; thus, `foo' expands into `find +outer otter', `Foo' into `Find outer otter', and `FOO' into `FIND OUTER +OTTER' or `Find Outer Otter' according to the variable +`abbrev-all-caps' (a non-`nil' value chooses the first of the two +expansions). + + Two commands are available to control abbrev expansion: + +`M-'' + Separate a prefix from a following abbrev to be expanded + (`abbrev-prefix-mark'). + +`C-x a e' + Expand the abbrev before point (`expand-abbrev'). This is + effective even when Abbrev mode is not enabled. + +`M-x unexpand-abbrev' + Undo last abbrev expansion. + +`M-x expand-region-abbrevs' + Expand some or all abbrevs found in the region. + + You may wish to expand an abbrev with a prefix attached. For +example, if `cnst' expands into `construction', you may want to use it +to enter `reconstruction'. It does not work to type `recnst', because +that is not necessarily a defined abbrev. Instead, you can use the +command `M-'' (`abbrev-prefix-mark') between the prefix `re' and the +abbrev `cnst'. First, insert `re'. Then type `M-''; this inserts a +minus sign in the buffer to indicate that it has done its work. Then +insert the abbrev `cnst'. The buffer now contains `re-cnst'. Now +insert a punctuation character to expand the abbrev `cnst' into +`construction'. The minus sign is deleted at this point by `M-''. The +resulting text is the desired `reconstruction'. + + If you actually want the text of the abbrev in the buffer, rather +than its expansion, insert the following punctuation with `C-q'. Thus, +`foo C-q -' leaves `foo-' in the buffer. + + If you expand an abbrev by mistake, you can undo the expansion +(replace the expansion by the original abbrev text) with `M-x +unexpand-abbrev'. You can also use `C-_' (`undo') to undo the +expansion; but that will first undo the insertion of the punctuation +character. + + `M-x expand-region-abbrevs' searches through the region for defined +abbrevs, and offers to replace each one it finds with its expansion. +This command is useful if you have typed text using abbrevs but forgot +to turn on Abbrev mode first. It may also be useful together with a +special set of abbrev definitions for making several global +replacements at once. The command is effective even if Abbrev mode is +not enabled. + + +File: xemacs.info, Node: Editing Abbrevs, Next: Saving Abbrevs, Prev: Expanding Abbrevs, Up: Abbrevs + +Examining and Editing Abbrevs +============================= + +`M-x list-abbrevs' + Print a list of all abbrev definitions. + +`M-x edit-abbrevs' + Edit a list of abbrevs; you can add, alter, or remove definitions. + + The output from `M-x list-abbrevs' looks like this: + + (lisp-mode-abbrev-table) + "dk" 0 "define-key" + (global-abbrev-table) + "dfn" 0 "definition" + +(Some blank lines of no semantic significance, and some other abbrev +tables, have been omitted.) + + A line containing a name in parentheses is the header for abbrevs in +a particular abbrev table; `global-abbrev-table' contains all the global +abbrevs, and the other abbrev tables that are named after major modes +contain the mode-specific abbrevs. + + Within each abbrev table, each non-blank line defines one abbrev. +The word at the beginning is the abbrev. The number that appears is +the number of times the abbrev has been expanded. Emacs keeps track of +this to help you see which abbrevs you actually use, in case you want +to eliminate those that you don't use often. The string at the end of +the line is the expansion. + + `M-x edit-abbrevs' allows you to add, change or kill abbrev +definitions by editing a list of them in an Emacs buffer. The list has +the format described above. The buffer of abbrevs is called +`*Abbrevs*', and is in Edit-Abbrevs mode. This mode redefines the key +`C-c C-c' to install the abbrev definitions as specified in the buffer. +The `edit-abbrevs-redefine' command does this. Any abbrevs not +described in the buffer are eliminated when this is done. + + `edit-abbrevs' is actually the same as `list-abbrevs', except that +it selects the buffer `*Abbrevs*' whereas `list-abbrevs' merely +displays it in another window. + + +File: xemacs.info, Node: Saving Abbrevs, Next: Dynamic Abbrevs, Prev: Editing Abbrevs, Up: Abbrevs + +Saving Abbrevs +============== + + These commands allow you to keep abbrev definitions between editing +sessions. + +`M-x write-abbrev-file' + Write a file describing all defined abbrevs. + +`M-x read-abbrev-file' + Read such an abbrev file and define abbrevs as specified there. + +`M-x quietly-read-abbrev-file' + Similar, but do not display a message about what is going on. + +`M-x define-abbrevs' + Define abbrevs from buffer. + +`M-x insert-abbrevs' + Insert all abbrevs and their expansions into the buffer. + + Use `M-x write-abbrev-file' to save abbrev definitions for use in a +later session. The command reads a file name using the minibuffer and +writes a description of all current abbrev definitions into the +specified file. The text stored in the file looks like the output of +`M-x list-abbrevs'. + + `M-x read-abbrev-file' prompts for a file name using the minibuffer +and reads the specified file, defining abbrevs according to its +contents. `M-x quietly-read-abbrev-file' is the same but does not +display a message in the echo area; it is actually useful primarily in +the `.emacs' file. If you give an empty argument to either of these +functions, the file name Emacs uses is the value of the variable +`abbrev-file-name', which is by default `"~/.abbrev_defs"'. + + Emacs offers to save abbrevs automatically if you have changed any of +them, whenever it offers to save all files (for `C-x s' or `C-x C-c'). +Set the variable `save-abbrevs' to `nil' to inhibit this feature. + + The commands `M-x insert-abbrevs' and `M-x define-abbrevs' are +similar to the previous commands but work on text in an Emacs buffer. +`M-x insert-abbrevs' inserts text into the current buffer before point, +describing all current abbrev definitions; `M-x define-abbrevs' parses +the entire current buffer and defines abbrevs accordingly. + + +File: xemacs.info, Node: Dynamic Abbrevs, Prev: Saving Abbrevs, Up: Abbrevs + +Dynamic Abbrev Expansion +======================== + + The abbrev facility described above operates automatically as you +insert text, but all abbrevs must be defined explicitly. By contrast, +"dynamic abbrevs" allow the meanings of abbrevs to be determined +automatically from the contents of the buffer, but dynamic abbrev +expansion happens only when you request it explicitly. + +`M-/' + Expand the word in the buffer before point as a "dynamic abbrev", + by searching in the buffer for words starting with that + abbreviation (`dabbrev-expand'). + + For example, if the buffer contains `does this follow ' and you type +`f o M-/', the effect is to insert `follow' because that is the last +word in the buffer that starts with `fo'. A numeric argument to `M-/' +says to take the second, third, etc. distinct expansion found looking +backward from point. Repeating `M-/' searches for an alternative +expansion by looking farther back. After the entire buffer before +point has been considered, the buffer after point is searched. + + Dynamic abbrev expansion is completely independent of Abbrev mode; +the expansion of a word with `M-/' is completely independent of whether +it has a definition as an ordinary abbrev. + + +File: xemacs.info, Node: Picture, Next: Sending Mail, Prev: Abbrevs, Up: Top + +Editing Pictures +**************** + + If you want to create a picture made out of text characters (for +example, a picture of the division of a register into fields, as a +comment in a program), use the command `edit-picture' to enter Picture +mode. + + In Picture mode, editing is based on the "quarter-plane" model of +text. In this model, the text characters lie studded on an area that +stretches infinitely far to the right and downward. The concept of the +end of a line does not exist in this model; the most you can say is +where the last non-blank character on the line is found. + + Of course, Emacs really always considers text as a sequence of +characters, and lines really do have ends. But in Picture mode most +frequently-used keys are rebound to commands that simulate the +quarter-plane model of text. They do this by inserting spaces or by +converting tabs to spaces. + + Most of the basic editing commands of Emacs are redefined by Picture +mode to do essentially the same thing but in a quarter-plane way. In +addition, Picture mode defines various keys starting with the `C-c' +prefix to run special picture editing commands. + + One of these keys, `C-c C-c', is pretty important. Often a picture +is part of a larger file that is usually edited in some other major +mode. `M-x edit-picture' records the name of the previous major mode. +You can then use the `C-c C-c' command (`picture-mode-exit') to restore +that mode. `C-c C-c' also deletes spaces from the ends of lines, +unless you give it a numeric argument. + + The commands used in Picture mode all work in other modes (provided +the `picture' library is loaded), but are only bound to keys in +Picture mode. Note that the descriptions below talk of moving "one +column" and so on, but all the picture mode commands handle numeric +arguments as their normal equivalents do. + + Turning on Picture mode calls the value of the variable +`picture-mode-hook' as a function, with no arguments, if that value +exists and is non-`nil'. + +* Menu: + +* Basic Picture:: Basic concepts and simple commands of Picture Mode. +* Insert in Picture:: Controlling direction of cursor motion + after "self-inserting" characters. +* Tabs in Picture:: Various features for tab stops and indentation. +* Rectangles in Picture:: Clearing and superimposing rectangles. + + File: xemacs.info, Node: Basic Picture, Next: Insert in Picture, Prev: Picture, Up: Picture Basic Editing in Picture Mode @@ -565,7 +804,7 @@ particular date; `Buttons3' brings up a menu of commonly used calendar features that are independent of any particular date. To exit the calendar, type `q'. *Note Customizing the Calendar and Diary: -(elisp)Calendar, for customization information about the calendar and +(lispref)Calendar, for customization information about the calendar and diary. * Menu: @@ -1005,202 +1244,4 @@ begins on the first Sunday in April. When the daylight savings rules are set up for the United States, Emacs always uses the present definition, even though it is wrong for some prior years. - - -File: xemacs.info, Node: Sunrise/Sunset, Next: Lunar Phases, Prev: Holidays, Up: Calendar/Diary - -Times of Sunrise and Sunset ---------------------------- - - Special calendar commands can tell you, to within a minute or two, -the times of sunrise and sunset for any date. - -`S' - Display times of sunrise and sunset for the selected date - (`calendar-sunrise-sunset'). - -`Button2 Sunrise/Sunset' - Display times of sunrise and sunset for the date you click on. - -`M-x sunrise-sunset' - Display times of sunrise and sunset for today's 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 -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 -sunrise-sunset' is available outside the calendar to display this -information for today's date or a specified date. To specify a date -other than today, use `C-u M-x sunrise-sunset', which prompts for the -year, month, and day. - - You can display the times of sunrise and sunset for any location and -any date with `C-u C-u M-x sunrise-sunset'. This asks you for a -longitude, latitude, number of minutes difference from Coordinated -Universal Time, and date, and then tells you the times of sunrise and -sunset for that location on that date. - - Because the times of sunrise and sunset depend on the location on -earth, you need to tell Emacs your latitude, longitude, and location -name before using these commands. Here is an example of what to set: - - (setq calendar-latitude 40.1) - (setq calendar-longitude -88.2) - (setq calendar-location-name "Urbana, IL") - -Use one decimal place in the values of `calendar-latitude' and -`calendar-longitude'. - - Your time zone also affects the local time of sunrise and sunset. -Emacs usually gets time zone information from the operating system, but -if these values are not what you want (or if the operating system does -not supply them), you must set them yourself. Here is an example: - - (setq calendar-time-zone -360) - (setq calendar-standard-time-zone-name "CST") - (setq calendar-daylight-time-zone-name "CDT") - -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 -savings time is determined. - - As a user, you might find it convenient to set the calendar location -variables for your usual physical location in your `.emacs' file. And -when you install Emacs on a machine, you can create a `default.el' file -which sets them properly for the typical location of most users of that -machine. *Note Init File::. - - -File: xemacs.info, Node: Lunar Phases, Next: Other Calendars, Prev: Sunrise/Sunset, Up: Calendar/Diary - -Phases of the Moon ------------------- - - These calendar commands display the dates and times of the phases of -the moon (new moon, first quarter, full moon, last quarter). This -feature is useful for debugging problems that "depend on the phase of -the moon." - -`M' - Display the dates and times for all the quarters of the moon for - the three-month period shown (`calendar-phases-of-moon'). - -`M-x phases-of-moon' - Display dates and times of the quarters of the moon for three - months around today's date. - - Within the calendar, use the `M' command to display a separate -buffer of the phases of the moon for the current three-month range. The -dates and times listed are accurate to within a few minutes. - - Outside the calendar, use the command `M-x phases-of-moon' to -display the list of the phases of the moon for the current month and the -preceding and succeeding months. For information about a different -month, use `C-u M-x phases-of-moon', which prompts for the month and -year. - - The dates and times given for the phases of the moon are given in -local time (corrected for daylight savings, when appropriate); but if -the variable `calendar-time-zone' is void, Coordinated Universal Time -(the Greenwich time zone) is used. *Note Daylight Savings::. - - -File: xemacs.info, Node: Other Calendars, Next: Calendar Systems, Prev: Lunar Phases, Up: Calendar/Diary - -Conversion To and From Other Calendars --------------------------------------- - - 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 -not fully displace the Julian calendar and gain universal acceptance -until the early twentieth century. The Emacs calendar can display any -month since January, year 1 of the current era, but the calendar -displayed is the Gregorian, even for a date at which the Gregorian -calendar did not exist. - - While Emacs cannot display other calendars, it can convert dates to -and from several other calendars. - -* Menu: - -* Calendar Systems:: The calendars Emacs understands - (aside from Gregorian). -* To Other Calendar:: Converting the selected date to various calendars. -* From Other Calendar:: Moving to a date specified in another calendar. -* Mayan Calendar:: Moving to a date specified in a Mayan calendar. - - If you are interested in these calendars, you can convert dates one -at a time. Put point on the desired date of the Gregorian calendar and -press the appropriate keys. The `p' is a mnemonic for "print" since -Emacs "prints' the equivalent date in the echo area. - - -File: xemacs.info, Node: Calendar Systems, Next: To Other Calendar, Prev: Other Calendars, Up: Other Calendars - -Supported Calendar Systems -========================== - - The ISO commercial calendar is used largely in Europe. - - The Julian calendar, named after Julius Caesar, was the one used in -Europe throughout medieval times, and in many countries up until the -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_. - - The Hebrew calendar is used by tradition in the Jewish religion. The -Emacs calendar program uses the Hebrew calendar to determine the dates -of Jewish holidays. Hebrew calendar dates begin and end at sunset. - - The Islamic calendar is used in many predominantly Islamic countries. -Emacs uses it to determine the dates of Islamic holidays. There is no -universal agreement in the Islamic world about the calendar; Emacs uses -a widely accepted version, but the precise dates of Islamic holidays -often depend on proclamation by religious authorities, not on -calculations. As a consequence, the actual dates of observance can vary -slightly from the dates computed by Emacs. Islamic calendar dates begin -and end at sunset. - - The French Revolutionary calendar was created by the Jacobins after -the 1789 revolution, to represent a more secular and nature-based view -of the annual cycle, and to install a 10-day week in a rationalization -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 -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. - - The Copts use a calendar based on the ancient Egyptian solar -calendar. Their calendar consists of twelve 30-day months followed by -an extra five-day period. Once every fourth year they add a leap day -to this extra period to make it six days. The Ethiopic calendar is -identical in structure, but has different year numbers and month names. - - The Persians use a solar calendar based on a design of Omar Khayyam. -Their calendar consists of twelve months of which the first six have 31 -days, the next five have 30 days, and the last has 29 in ordinary years -and 30 in leap years. Leap years occur in a complicated pattern every -four or five years. - - The Chinese calendar is a complicated system of lunar months arranged -into solar years. The years go in cycles of sixty, each year containing -either twelve months in an ordinary year or thirteen months in a leap -year; each month has either 29 or 30 days. Years, ordinary months, and -days are named by combining one of ten "celestial stems" with one of -twelve "terrestrial branches" for a total of sixty names that are -repeated in a cycle of sixty. diff -r -u -N xemacs-21.1.12/info/xemacs.info-14 xemacs-21.1.13/info/xemacs.info-14 --- xemacs-21.1.12/info/xemacs.info-14 Fri Aug 4 21:31:17 2000 +++ xemacs-21.1.13/info/xemacs.info-14 Sun Jan 7 15:57:32 2001 @@ -1,4 +1,4 @@ -This is ../../info/xemacs.info, produced by makeinfo version 4.0 from +This is ../../info/xemacs.info, produced by makeinfo version 4.0a from xemacs.texi. INFO-DIR-SECTION XEmacs Editor @@ -30,6 +30,204 @@ translation approved by the author instead of in the original English.  +File: xemacs.info, Node: Sunrise/Sunset, Next: Lunar Phases, Prev: Holidays, Up: Calendar/Diary + +Times of Sunrise and Sunset +--------------------------- + + Special calendar commands can tell you, to within a minute or two, +the times of sunrise and sunset for any date. + +`S' + Display times of sunrise and sunset for the selected date + (`calendar-sunrise-sunset'). + +`Button2 Sunrise/Sunset' + Display times of sunrise and sunset for the date you click on. + +`M-x sunrise-sunset' + Display times of sunrise and sunset for today's 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 +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 +sunrise-sunset' is available outside the calendar to display this +information for today's date or a specified date. To specify a date +other than today, use `C-u M-x sunrise-sunset', which prompts for the +year, month, and day. + + You can display the times of sunrise and sunset for any location and +any date with `C-u C-u M-x sunrise-sunset'. This asks you for a +longitude, latitude, number of minutes difference from Coordinated +Universal Time, and date, and then tells you the times of sunrise and +sunset for that location on that date. + + Because the times of sunrise and sunset depend on the location on +earth, you need to tell Emacs your latitude, longitude, and location +name before using these commands. Here is an example of what to set: + + (setq calendar-latitude 40.1) + (setq calendar-longitude -88.2) + (setq calendar-location-name "Urbana, IL") + +Use one decimal place in the values of `calendar-latitude' and +`calendar-longitude'. + + Your time zone also affects the local time of sunrise and sunset. +Emacs usually gets time zone information from the operating system, but +if these values are not what you want (or if the operating system does +not supply them), you must set them yourself. Here is an example: + + (setq calendar-time-zone -360) + (setq calendar-standard-time-zone-name "CST") + (setq calendar-daylight-time-zone-name "CDT") + +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 +savings time is determined. + + As a user, you might find it convenient to set the calendar location +variables for your usual physical location in your `.emacs' file. And +when you install Emacs on a machine, you can create a `default.el' file +which sets them properly for the typical location of most users of that +machine. *Note Init File::. + + +File: xemacs.info, Node: Lunar Phases, Next: Other Calendars, Prev: Sunrise/Sunset, Up: Calendar/Diary + +Phases of the Moon +------------------ + + These calendar commands display the dates and times of the phases of +the moon (new moon, first quarter, full moon, last quarter). This +feature is useful for debugging problems that "depend on the phase of +the moon." + +`M' + Display the dates and times for all the quarters of the moon for + the three-month period shown (`calendar-phases-of-moon'). + +`M-x phases-of-moon' + Display dates and times of the quarters of the moon for three + months around today's date. + + Within the calendar, use the `M' command to display a separate +buffer of the phases of the moon for the current three-month range. The +dates and times listed are accurate to within a few minutes. + + Outside the calendar, use the command `M-x phases-of-moon' to +display the list of the phases of the moon for the current month and the +preceding and succeeding months. For information about a different +month, use `C-u M-x phases-of-moon', which prompts for the month and +year. + + The dates and times given for the phases of the moon are given in +local time (corrected for daylight savings, when appropriate); but if +the variable `calendar-time-zone' is void, Coordinated Universal Time +(the Greenwich time zone) is used. *Note Daylight Savings::. + + +File: xemacs.info, Node: Other Calendars, Next: Calendar Systems, Prev: Lunar Phases, Up: Calendar/Diary + +Conversion To and From Other Calendars +-------------------------------------- + + 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 +not fully displace the Julian calendar and gain universal acceptance +until the early twentieth century. The Emacs calendar can display any +month since January, year 1 of the current era, but the calendar +displayed is the Gregorian, even for a date at which the Gregorian +calendar did not exist. + + While Emacs cannot display other calendars, it can convert dates to +and from several other calendars. + +* Menu: + +* Calendar Systems:: The calendars Emacs understands + (aside from Gregorian). +* To Other Calendar:: Converting the selected date to various calendars. +* From Other Calendar:: Moving to a date specified in another calendar. +* Mayan Calendar:: Moving to a date specified in a Mayan calendar. + + If you are interested in these calendars, you can convert dates one +at a time. Put point on the desired date of the Gregorian calendar and +press the appropriate keys. The `p' is a mnemonic for "print" since +Emacs "prints' the equivalent date in the echo area. + + +File: xemacs.info, Node: Calendar Systems, Next: To Other Calendar, Prev: Other Calendars, Up: Other Calendars + +Supported Calendar Systems +========================== + + The ISO commercial calendar is used largely in Europe. + + The Julian calendar, named after Julius Caesar, was the one used in +Europe throughout medieval times, and in many countries up until the +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_. + + The Hebrew calendar is used by tradition in the Jewish religion. The +Emacs calendar program uses the Hebrew calendar to determine the dates +of Jewish holidays. Hebrew calendar dates begin and end at sunset. + + The Islamic calendar is used in many predominantly Islamic countries. +Emacs uses it to determine the dates of Islamic holidays. There is no +universal agreement in the Islamic world about the calendar; Emacs uses +a widely accepted version, but the precise dates of Islamic holidays +often depend on proclamation by religious authorities, not on +calculations. As a consequence, the actual dates of observance can vary +slightly from the dates computed by Emacs. Islamic calendar dates begin +and end at sunset. + + The French Revolutionary calendar was created by the Jacobins after +the 1789 revolution, to represent a more secular and nature-based view +of the annual cycle, and to install a 10-day week in a rationalization +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 +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. + + The Copts use a calendar based on the ancient Egyptian solar +calendar. Their calendar consists of twelve 30-day months followed by +an extra five-day period. Once every fourth year they add a leap day +to this extra period to make it six days. The Ethiopic calendar is +identical in structure, but has different year numbers and month names. + + The Persians use a solar calendar based on a design of Omar Khayyam. +Their calendar consists of twelve months of which the first six have 31 +days, the next five have 30 days, and the last has 29 in ordinary years +and 30 in leap years. Leap years occur in a complicated pattern every +four or five years. + + The Chinese calendar is a complicated system of lunar months arranged +into solar years. The years go in cycles of sixty, each year containing +either twelve months in an ordinary year or thirteen months in a leap +year; each month has either 29 or 30 days. Years, ordinary months, and +days are named by combining one of ten "celestial stems" with one of +twelve "terrestrial branches" for a total of sixty names that are +repeated in a cycle of sixty. + + File: xemacs.info, Node: To Other Calendar, Next: From Other Calendar, Prev: Calendar Systems, Up: Other Calendars Converting To Other Calendars @@ -1009,177 +1207,4 @@ after midnight local time when the transition to and from daylight savings time should occur. For Cambridge, Massachusetts both variables' values are 120. - - -File: xemacs.info, Node: Diary Customizing, Next: Hebrew/Islamic Entries, Prev: Daylight Savings, Up: Calendar Customization - -Customizing the Diary -..................... - - Ordinarily, the mode line of the diary buffer window indicates any -holidays that fall on the date of the diary entries. The process of -checking for holidays can take several seconds, so including holiday -information delays the display of the diary buffer noticeably. If you'd -prefer to have a faster display of the diary buffer but without the -holiday information, set the variable `holidays-in-diary-buffer' to -`nil'. - - The variable `number-of-diary-entries' controls the number of days -of diary entries to be displayed at one time. It affects the initial -display when `view-diary-entries-initially' is `t', as well as the -command `M-x diary'. For example, the default value is 1, which says -to display only the current day's diary entries. If the value is 2, -both the current day's and the next day's entries are displayed. The -value can also be a vector of seven elements: for example, if the value -is `[0 2 2 2 2 4 1]' then no diary entries appear on Sunday, the -current date's and the next day's diary entries appear Monday through -Thursday, Friday through Monday's entries appear on Friday, while on -Saturday only that day's entries appear. - - The variable `print-diary-entries-hook' is a normal hook run after -preparation of a temporary buffer containing just the diary entries -currently visible in the diary buffer. (The other, irrelevant diary -entries are really absent from the temporary buffer; in the diary -buffer, they are merely hidden.) The default value of this hook does -the printing with the command `lpr-buffer'. If you want to use a -different command to do the printing, just change the value of this -hook. Other uses might include, for example, rearranging the lines into -order by day and time. - - You can customize the form of dates in your diary file, if neither -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 -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. - - A regular expression in a date pattern matches in its usual fashion, -using the standard syntax table altered so that `*' is a word -constituent. - - The symbols `month', `day', `year', `monthname', and `dayname' match -the month number, day number, year number, month name, and day name of -the date being considered. The symbols that match numbers allow -leading zeros; those that match names allow three-letter abbreviations -and capitalization. All the symbols can match `*'; since `*' in a -diary entry means "any day", "any month", and so on, it should match -regardless of the date being considered. - - The default value of `diary-date-forms' in the American style is -this: - - ((month "/" day "[^/0-9]") - (month "/" day "/" year "[^0-9]") - (monthname " *" day "[^,0-9]") - (monthname " *" day ", *" year "[^0-9]") - (dayname "\\W")) - -Emacs matches of the diary entries with the date forms is done with the -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 -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_ -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 -match more than a portion of the first word of the diary entry. The -default value of `diary-date-forms' in the European style is this list: - - ((day "/" month "[^/0-9]") - (day "/" month "/" year "[^0-9]") - (backup day " *" monthname "\\W+\\<[^*0-9]") - (day " *" monthname " *" year "[^0-9]") - (dayname "\\W")) - -Notice the use of `backup' in the third pattern, because it needs to -match part of a word beyond the date itself to distinguish it from the -fourth pattern. - - -File: xemacs.info, Node: Hebrew/Islamic Entries, Next: Fancy Diary Display, Prev: Diary Customizing, Up: Calendar Customization - -Hebrew- and Islamic-Date Diary Entries -...................................... - - Your diary file can have entries based on Hebrew or Islamic dates, as -well as entries based on the world-standard Gregorian calendar. -However, because recognition of such entries is time-consuming and most -people don't use them, you must explicitly enable their use. If you -want the diary to recognize Hebrew-date diary entries, for example, you -must do this: - - (add-hook 'nongregorian-diary-listing-hook 'list-hebrew-diary-entries) - (add-hook 'nongregorian-diary-marking-hook 'mark-hebrew-diary-entries) - -If you want Islamic-date entries, do this: - - (add-hook 'nongregorian-diary-listing-hook 'list-islamic-diary-entries) - (add-hook 'nongregorian-diary-marking-hook 'mark-islamic-diary-entries) - - Hebrew- and Islamic-date diary entries have the same formats as -Gregorian-date diary entries, except that `H' precedes a Hebrew date -and `I' precedes an Islamic date. Moreover, because the Hebrew and -Islamic month names are not uniquely specified by the first three -letters, you may not abbreviate them. For example, a diary entry for -the Hebrew date Heshvan 25 could look like this: - - HHeshvan 25 Happy Hebrew birthday! - -and would appear in the diary for any date that corresponds to Heshvan -25 on the Hebrew calendar. And here is Islamic-date diary entry that -matches Dhu al-Qada 25: - - IDhu al-Qada 25 Happy Islamic birthday! - -and would appear in the diary for any date that corresponds to Dhu -al-Qada 25 on the Islamic calendar. - - As with Gregorian-date diary entries, Hebrew- and Islamic-date -entries are nonmarking if they are preceded with an ampersand (`&'). - - Here is a table of commands used in the calendar to create diary -entries that match the selected date and other dates that are similar -in the Hebrew or Islamic calendar: - -`i h d' - Add a diary entry for the Hebrew date corresponding to the - selected date (`insert-hebrew-diary-entry'). - -`i h m' - Add a diary entry for the day of the Hebrew month corresponding to - the selected date (`insert-monthly-hebrew-diary-entry'). This - diary entry matches any date that has the same Hebrew - day-within-month as the selected date. - -`i h y' - Add a diary entry for the day of the Hebrew year corresponding to - the selected date (`insert-yearly-hebrew-diary-entry'). This diary - entry matches any date which has the same Hebrew month and - day-within-month as the selected date. - -`i i d' - Add a diary entry for the Islamic date corresponding to the - selected date (`insert-islamic-diary-entry'). - -`i i m' - Add a diary entry for the day of the Islamic month corresponding - to the selected date (`insert-monthly-islamic-diary-entry'). - -`i i y' - Add a diary entry for the day of the Islamic year corresponding to - the selected date (`insert-yearly-islamic-diary-entry'). - - These commands work much like the corresponding commands for ordinary -diary entries: they apply to the date that point is on in the calendar -window, and what they do is insert just the date portion of a diary -entry at the end of your diary file. You must then insert the rest of -the diary entry. diff -r -u -N xemacs-21.1.12/info/xemacs.info-15 xemacs-21.1.13/info/xemacs.info-15 --- xemacs-21.1.12/info/xemacs.info-15 Fri Aug 4 21:31:17 2000 +++ xemacs-21.1.13/info/xemacs.info-15 Sun Jan 7 15:57:32 2001 @@ -1,4 +1,4 @@ -This is ../../info/xemacs.info, produced by makeinfo version 4.0 from +This is ../../info/xemacs.info, produced by makeinfo version 4.0a from xemacs.texi. INFO-DIR-SECTION XEmacs Editor @@ -30,6 +30,179 @@ translation approved by the author instead of in the original English.  +File: xemacs.info, Node: Diary Customizing, Next: Hebrew/Islamic Entries, Prev: Daylight Savings, Up: Calendar Customization + +Customizing the Diary +..................... + + Ordinarily, the mode line of the diary buffer window indicates any +holidays that fall on the date of the diary entries. The process of +checking for holidays can take several seconds, so including holiday +information delays the display of the diary buffer noticeably. If you'd +prefer to have a faster display of the diary buffer but without the +holiday information, set the variable `holidays-in-diary-buffer' to +`nil'. + + The variable `number-of-diary-entries' controls the number of days +of diary entries to be displayed at one time. It affects the initial +display when `view-diary-entries-initially' is `t', as well as the +command `M-x diary'. For example, the default value is 1, which says +to display only the current day's diary entries. If the value is 2, +both the current day's and the next day's entries are displayed. The +value can also be a vector of seven elements: for example, if the value +is `[0 2 2 2 2 4 1]' then no diary entries appear on Sunday, the +current date's and the next day's diary entries appear Monday through +Thursday, Friday through Monday's entries appear on Friday, while on +Saturday only that day's entries appear. + + The variable `print-diary-entries-hook' is a normal hook run after +preparation of a temporary buffer containing just the diary entries +currently visible in the diary buffer. (The other, irrelevant diary +entries are really absent from the temporary buffer; in the diary +buffer, they are merely hidden.) The default value of this hook does +the printing with the command `lpr-buffer'. If you want to use a +different command to do the printing, just change the value of this +hook. Other uses might include, for example, rearranging the lines into +order by day and time. + + You can customize the form of dates in your diary file, if neither +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 +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. + + A regular expression in a date pattern matches in its usual fashion, +using the standard syntax table altered so that `*' is a word +constituent. + + The symbols `month', `day', `year', `monthname', and `dayname' match +the month number, day number, year number, month name, and day name of +the date being considered. The symbols that match numbers allow +leading zeros; those that match names allow three-letter abbreviations +and capitalization. All the symbols can match `*'; since `*' in a +diary entry means "any day", "any month", and so on, it should match +regardless of the date being considered. + + The default value of `diary-date-forms' in the American style is +this: + + ((month "/" day "[^/0-9]") + (month "/" day "/" year "[^0-9]") + (monthname " *" day "[^,0-9]") + (monthname " *" day ", *" year "[^0-9]") + (dayname "\\W")) + +Emacs matches of the diary entries with the date forms is done with the +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 +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_ +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 +match more than a portion of the first word of the diary entry. The +default value of `diary-date-forms' in the European style is this list: + + ((day "/" month "[^/0-9]") + (day "/" month "/" year "[^0-9]") + (backup day " *" monthname "\\W+\\<[^*0-9]") + (day " *" monthname " *" year "[^0-9]") + (dayname "\\W")) + +Notice the use of `backup' in the third pattern, because it needs to +match part of a word beyond the date itself to distinguish it from the +fourth pattern. + + +File: xemacs.info, Node: Hebrew/Islamic Entries, Next: Fancy Diary Display, Prev: Diary Customizing, Up: Calendar Customization + +Hebrew- and Islamic-Date Diary Entries +...................................... + + Your diary file can have entries based on Hebrew or Islamic dates, as +well as entries based on the world-standard Gregorian calendar. +However, because recognition of such entries is time-consuming and most +people don't use them, you must explicitly enable their use. If you +want the diary to recognize Hebrew-date diary entries, for example, you +must do this: + + (add-hook 'nongregorian-diary-listing-hook 'list-hebrew-diary-entries) + (add-hook 'nongregorian-diary-marking-hook 'mark-hebrew-diary-entries) + +If you want Islamic-date entries, do this: + + (add-hook 'nongregorian-diary-listing-hook 'list-islamic-diary-entries) + (add-hook 'nongregorian-diary-marking-hook 'mark-islamic-diary-entries) + + Hebrew- and Islamic-date diary entries have the same formats as +Gregorian-date diary entries, except that `H' precedes a Hebrew date +and `I' precedes an Islamic date. Moreover, because the Hebrew and +Islamic month names are not uniquely specified by the first three +letters, you may not abbreviate them. For example, a diary entry for +the Hebrew date Heshvan 25 could look like this: + + HHeshvan 25 Happy Hebrew birthday! + +and would appear in the diary for any date that corresponds to Heshvan +25 on the Hebrew calendar. And here is Islamic-date diary entry that +matches Dhu al-Qada 25: + + IDhu al-Qada 25 Happy Islamic birthday! + +and would appear in the diary for any date that corresponds to Dhu +al-Qada 25 on the Islamic calendar. + + As with Gregorian-date diary entries, Hebrew- and Islamic-date +entries are nonmarking if they are preceded with an ampersand (`&'). + + Here is a table of commands used in the calendar to create diary +entries that match the selected date and other dates that are similar +in the Hebrew or Islamic calendar: + +`i h d' + Add a diary entry for the Hebrew date corresponding to the + selected date (`insert-hebrew-diary-entry'). + +`i h m' + Add a diary entry for the day of the Hebrew month corresponding to + the selected date (`insert-monthly-hebrew-diary-entry'). This + diary entry matches any date that has the same Hebrew + day-within-month as the selected date. + +`i h y' + Add a diary entry for the day of the Hebrew year corresponding to + the selected date (`insert-yearly-hebrew-diary-entry'). This diary + entry matches any date which has the same Hebrew month and + day-within-month as the selected date. + +`i i d' + Add a diary entry for the Islamic date corresponding to the + selected date (`insert-islamic-diary-entry'). + +`i i m' + Add a diary entry for the day of the Islamic month corresponding + to the selected date (`insert-monthly-islamic-diary-entry'). + +`i i y' + Add a diary entry for the day of the Islamic year corresponding to + the selected date (`insert-yearly-islamic-diary-entry'). + + These commands work much like the corresponding commands for ordinary +diary entries: they apply to the date that point is on in the calendar +window, and what they do is insert just the date portion of a diary +entry at the end of your diary file. You must then insert the rest of +the diary entry. + + File: xemacs.info, Node: Fancy Diary Display, Next: Included Diary Files, Prev: Hebrew/Islamic Entries, Up: Calendar Customization Fancy Diary Display @@ -999,215 +1172,4 @@ * Faces:: Changing the fonts and colors of a region of text. * X Resources:: X resources controlling various aspects of the behavior of XEmacs. - - -File: xemacs.info, Node: Minor Modes, Next: Variables, Up: Customization - -Minor Modes -=========== - - Minor modes are options which you can use or not. For example, Auto -Fill mode is a minor mode in which breaks lines between words as -you type. All the minor modes are independent of each other and of the -selected major mode. Most minor modes inform you in the mode line when -they are on; for example, `Fill' in the mode line means that Auto Fill -mode is on. - - Append `-mode' to the name of a minor mode to get the name of a -command function that turns the mode on or off. Thus, the command to -enable or disable Auto Fill mode is called `M-x auto-fill-mode'. These -commands are usually invoked with `M-x', but you can bind keys to them -if you wish. With no argument, the function turns the mode on if it was -off and off if it was on. This is known as "toggling". A positive -argument always turns the mode on, and an explicit zero argument or a -negative argument always turns it off. - - Auto Fill mode allows you to enter filled text without breaking lines -explicitly. Emacs inserts newlines as necessary to prevent lines from -becoming too long. *Note Filling::. - - Overwrite mode causes ordinary printing characters to replace -existing text instead of moving it to the right. For example, if point -is in front of the `B' in `FOOBAR', and you type a `G' in Overwrite -mode, it changes to `FOOGAR', instead of `FOOGBAR'. - - Abbrev mode allows you to define abbreviations that automatically -expand as you type them. For example, `amd' might expand to `abbrev -mode'. *Note Abbrevs::, for full information. - - -File: xemacs.info, Node: Variables, Next: Keyboard Macros, Prev: Minor Modes, Up: Customization - -Variables -========= - - A "variable" is a Lisp symbol which has a value. Variable names can -contain any characters, but by convention they are words separated by -hyphens. A variable can also have a documentation string, which -describes what kind of value it should have and how the value will be -used. - - Lisp allows any variable to have any kind of value, but most -variables that Emacs uses require a value of a certain type. Often the -value has to be a string or a number. Sometimes we say that a certain -feature is turned on if a variable is "non-`nil'," meaning that if the -variable's value is `nil', the feature is off, but the feature is on -for any other value. The conventional value to turn on the -feature--since you have to pick one particular value when you set the -variable--is `t'. - - Emacs uses many Lisp variables for internal recordkeeping, as any -Lisp program must, but the most interesting variables for you are the -ones that exist for the sake of customization. Emacs does not -(usually) change the values of these variables; instead, you set the -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::). - - 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::). - -* Menu: - -* Examining:: Examining or setting one variable's value. -* Easy Customization:: Convenient and easy customization of variables. -* Edit Options:: Examining or editing list of all variables' values. -* Locals:: Per-buffer values of variables. -* File Variables:: How files can specify variable values. - - -File: xemacs.info, Node: Examining, Next: Easy Customization, Up: Variables - -Examining and Setting Variables -------------------------------- - -`C-h v' -`M-x describe-variable' - Print the value and documentation of a variable. - -`M-x set-variable' - Change the value of a variable. - - To examine the value of a single variable, use `C-h v' -(`describe-variable'), which reads a variable name using the -minibuffer, with completion. It prints both the value and the -documentation of the variable. - - C-h v fill-column - -prints something like: - - fill-column's value is 75 - - Documentation: - *Column beyond which automatic line-wrapping should happen. - Automatically becomes local when set in any fashion. - -The star at the beginning of the documentation indicates that this -variable is an option. `C-h v' is not restricted to options; it allows -any variable name. - - If you know which option you want to set, you can use `M-x -set-variable' to set it. This prompts for the variable name in the -minibuffer (with completion), and then prompts for a Lisp expression -for the new value using the minibuffer a second time. For example, - - M-x set-variable fill-column 75 - -sets `fill-column' to 75, as if you had executed the Lisp expression -`(setq fill-column 75)'. - - Setting variables in this way, like all means of customizing Emacs -except where explicitly stated, affects only the current Emacs session. - - -File: xemacs.info, Node: Easy Customization, Next: Edit Options, Prev: Examining, Up: Variables - -Easy Customization Interface ----------------------------- - - A convenient way to find the user option variables that you want to -change, and then change them, is with `M-x customize'. This command -creates a "customization buffer" with which you can browse through the -Emacs user options in a logically organized structure, then edit and -set their values. You can also use the customization buffer to save -settings permanently. (Not all Emacs user options are included in this -structure as of yet, but we are adding the rest.) - -* Menu: - -* Groups: Customization Groups. - How options are classified in a structure. -* Changing an Option:: How to edit a value and set an option. -* Face Customization:: How to edit the attributes of a face. -* Specific Customization:: Making a customization buffer for specific - options, faces, or groups. - - -File: xemacs.info, Node: Customization Groups, Next: Changing an Option, Up: Easy Customization - -Customization Groups -.................... - - For customization purposes, user options are organized into "groups" -to help you find them. Groups are collected into bigger groups, all -the way up to a master group called `Emacs'. - - `M-x customize' creates a customization buffer that shows the -top-level `Emacs' group and the second-level groups immediately under -it. It looks like this, in part: - - /- Emacs group: ---------------------------------------------------\ - [State]: visible group members are all at standard settings. - Customization of the One True Editor. - See also [Manual]. - - [Open] Editing group - Basic text editing facilities. - - [Open] External group - Interfacing to external utilities. - - MORE SECOND-LEVEL GROUPS - - \- Emacs group end ------------------------------------------------/ - -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_ -contents are not included. Each group has a single-line documentation -string; the `Emacs' group also has a `[State]' line. - - Most of the text in the customization buffer is read-only, but it -typically includes some "editable fields" that you can edit. There are -also "active fields"; this means a field that does something when you -"invoke" it. To invoke an active field, either click on it with -`Mouse-1', or move point to it and type . - - For example, the phrase `[Open]' that appears in a second-level -group is an active field. Invoking the `[Open]' field for a group -opens up a new customization buffer, which shows that group and its -contents. This field is a kind of hypertext link to another group. - - The `Emacs' group does not include any user options itself, but -other groups do. By examining various groups, you will eventually find -the options and faces that belong to the feature you are interested in -customizing. Then you can use the customization buffer to set them. - - You can view the structure of customization groups on a larger scale -with `M-x customize-browse'. This command creates a special kind of -customization buffer which shows only the names of the groups (and -options and faces), and their structure. - - In this buffer, you can show the contents of a group by invoking -`[+]'. When the group contents are visible, this button changes to -`[-]'; invoking that hides the group contents. - - Each group, option or face name in this buffer has an active field -which says `[Group]', `[Option]' or `[Face]'. Invoking that active -field creates an ordinary customization buffer showing just that group -and its contents, just that option, or just that face. This is the way -to set values in it. diff -r -u -N xemacs-21.1.12/info/xemacs.info-16 xemacs-21.1.13/info/xemacs.info-16 --- xemacs-21.1.12/info/xemacs.info-16 Fri Aug 4 21:31:17 2000 +++ xemacs-21.1.13/info/xemacs.info-16 Sun Jan 7 15:57:32 2001 @@ -1,4 +1,4 @@ -This is ../../info/xemacs.info, produced by makeinfo version 4.0 from +This is ../../info/xemacs.info, produced by makeinfo version 4.0a from xemacs.texi. INFO-DIR-SECTION XEmacs Editor @@ -30,6 +30,217 @@ translation approved by the author instead of in the original English.  +File: xemacs.info, Node: Minor Modes, Next: Variables, Up: Customization + +Minor Modes +=========== + + Minor modes are options which you can use or not. For example, Auto +Fill mode is a minor mode in which breaks lines between words as +you type. All the minor modes are independent of each other and of the +selected major mode. Most minor modes inform you in the mode line when +they are on; for example, `Fill' in the mode line means that Auto Fill +mode is on. + + Append `-mode' to the name of a minor mode to get the name of a +command function that turns the mode on or off. Thus, the command to +enable or disable Auto Fill mode is called `M-x auto-fill-mode'. These +commands are usually invoked with `M-x', but you can bind keys to them +if you wish. With no argument, the function turns the mode on if it was +off and off if it was on. This is known as "toggling". A positive +argument always turns the mode on, and an explicit zero argument or a +negative argument always turns it off. + + Auto Fill mode allows you to enter filled text without breaking lines +explicitly. Emacs inserts newlines as necessary to prevent lines from +becoming too long. *Note Filling::. + + Overwrite mode causes ordinary printing characters to replace +existing text instead of moving it to the right. For example, if point +is in front of the `B' in `FOOBAR', and you type a `G' in Overwrite +mode, it changes to `FOOGAR', instead of `FOOGBAR'. + + Abbrev mode allows you to define abbreviations that automatically +expand as you type them. For example, `amd' might expand to `abbrev +mode'. *Note Abbrevs::, for full information. + + +File: xemacs.info, Node: Variables, Next: Keyboard Macros, Prev: Minor Modes, Up: Customization + +Variables +========= + + A "variable" is a Lisp symbol which has a value. Variable names can +contain any characters, but by convention they are words separated by +hyphens. A variable can also have a documentation string, which +describes what kind of value it should have and how the value will be +used. + + Lisp allows any variable to have any kind of value, but most +variables that Emacs uses require a value of a certain type. Often the +value has to be a string or a number. Sometimes we say that a certain +feature is turned on if a variable is "non-`nil'," meaning that if the +variable's value is `nil', the feature is off, but the feature is on +for any other value. The conventional value to turn on the +feature--since you have to pick one particular value when you set the +variable--is `t'. + + Emacs uses many Lisp variables for internal recordkeeping, as any +Lisp program must, but the most interesting variables for you are the +ones that exist for the sake of customization. Emacs does not +(usually) change the values of these variables; instead, you set the +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::). + + 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::). + +* Menu: + +* Examining:: Examining or setting one variable's value. +* Easy Customization:: Convenient and easy customization of variables. +* Edit Options:: Examining or editing list of all variables' values. +* Locals:: Per-buffer values of variables. +* File Variables:: How files can specify variable values. + + +File: xemacs.info, Node: Examining, Next: Easy Customization, Up: Variables + +Examining and Setting Variables +------------------------------- + +`C-h v' +`M-x describe-variable' + Print the value and documentation of a variable. + +`M-x set-variable' + Change the value of a variable. + + To examine the value of a single variable, use `C-h v' +(`describe-variable'), which reads a variable name using the +minibuffer, with completion. It prints both the value and the +documentation of the variable. + + C-h v fill-column + +prints something like: + + fill-column's value is 75 + + Documentation: + *Column beyond which automatic line-wrapping should happen. + Automatically becomes local when set in any fashion. + +The star at the beginning of the documentation indicates that this +variable is an option. `C-h v' is not restricted to options; it allows +any variable name. + + If you know which option you want to set, you can use `M-x +set-variable' to set it. This prompts for the variable name in the +minibuffer (with completion), and then prompts for a Lisp expression +for the new value using the minibuffer a second time. For example, + + M-x set-variable fill-column 75 + +sets `fill-column' to 75, as if you had executed the Lisp expression +`(setq fill-column 75)'. + + Setting variables in this way, like all means of customizing Emacs +except where explicitly stated, affects only the current Emacs session. + + +File: xemacs.info, Node: Easy Customization, Next: Edit Options, Prev: Examining, Up: Variables + +Easy Customization Interface +---------------------------- + + A convenient way to find the user option variables that you want to +change, and then change them, is with `M-x customize'. This command +creates a "customization buffer" with which you can browse through the +Emacs user options in a logically organized structure, then edit and +set their values. You can also use the customization buffer to save +settings permanently. (Not all Emacs user options are included in this +structure as of yet, but we are adding the rest.) + +* Menu: + +* Groups: Customization Groups. + How options are classified in a structure. +* Changing an Option:: How to edit a value and set an option. +* Face Customization:: How to edit the attributes of a face. +* Specific Customization:: Making a customization buffer for specific + options, faces, or groups. + + +File: xemacs.info, Node: Customization Groups, Next: Changing an Option, Up: Easy Customization + +Customization Groups +.................... + + For customization purposes, user options are organized into "groups" +to help you find them. Groups are collected into bigger groups, all +the way up to a master group called `Emacs'. + + `M-x customize' creates a customization buffer that shows the +top-level `Emacs' group and the second-level groups immediately under +it. It looks like this, in part: + + /- Emacs group: ---------------------------------------------------\ + [State]: visible group members are all at standard settings. + Customization of the One True Editor. + See also [Manual]. + + [Open] Editing group + Basic text editing facilities. + + [Open] External group + Interfacing to external utilities. + + MORE SECOND-LEVEL GROUPS + + \- Emacs group end ------------------------------------------------/ + +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_ +contents are not included. Each group has a single-line documentation +string; the `Emacs' group also has a `[State]' line. + + Most of the text in the customization buffer is read-only, but it +typically includes some "editable fields" that you can edit. There are +also "active fields"; this means a field that does something when you +"invoke" it. To invoke an active field, either click on it with +`Mouse-1', or move point to it and type . + + For example, the phrase `[Open]' that appears in a second-level +group is an active field. Invoking the `[Open]' field for a group +opens up a new customization buffer, which shows that group and its +contents. This field is a kind of hypertext link to another group. + + The `Emacs' group does not include any user options itself, but +other groups do. By examining various groups, you will eventually find +the options and faces that belong to the feature you are interested in +customizing. Then you can use the customization buffer to set them. + + You can view the structure of customization groups on a larger scale +with `M-x customize-browse'. This command creates a special kind of +customization buffer which shows only the names of the groups (and +options and faces), and their structure. + + In this buffer, you can show the contents of a group by invoking +`[+]'. When the group contents are visible, this button changes to +`[-]'; invoking that hides the group contents. + + Each group, option or face name in this buffer has an active field +which says `[Group]', `[Option]' or `[Face]'. Invoking that active +field creates an ordinary customization buffer showing just that group +and its contents, just that option, or just that face. This is the way +to set values in it. + + File: xemacs.info, Node: Changing an Option, Next: Face Customization, Prev: Customization Groups, Up: Easy Customization Changing an Option @@ -967,227 +1178,4 @@ control j linefeed control [ escape control @ control space - - -File: xemacs.info, Node: Disabling, Prev: Rebinding, Up: Key Bindings - -Disabling Commands ------------------- - - Disabling a command marks it as requiring confirmation before it can -be executed. The purpose of disabling a command is to prevent -beginning users from executing it by accident and being confused. - - The direct mechanism for disabling a command is to have a non-`nil' -`disabled' property on the Lisp symbol for the command. These -properties are normally set by the user's `.emacs' file with Lisp -expressions such as: - - (put 'delete-region 'disabled t) - - If the value of the `disabled' property is a string, that string is -included in the message printed when the command is used: - - (put 'delete-region 'disabled - "Text deleted this way cannot be yanked back!\n") - - You can disable a command either by editing the `.emacs' file -directly or with the command `M-x disable-command', which edits the -`.emacs' file for you. *Note Init File::. - - When you attempt to invoke a disabled command interactively in Emacs, -a window is displayed containing the command's name, its documentation, -and some instructions on what to do next; then Emacs asks for input -saying whether to execute the command as requested, enable it and -execute, or cancel it. If you decide to enable the command, you are -asked whether to do this permanently or just for the current session. -Enabling permanently works by automatically editing your `.emacs' file. -You can use `M-x enable-command' at any time to enable any command -permanently. - - Whether a command is disabled is independent of what key is used to -invoke it; it also applies if the command is invoked using `M-x'. -Disabling a command has no effect on calling it as a function from Lisp -programs. - - -File: xemacs.info, Node: Syntax, Next: Init File, Prev: Key Bindings, Up: Customization - -The Syntax Table -================ - - All the Emacs commands which parse words or balance parentheses are -controlled by the "syntax table". The syntax table specifies which -characters are opening delimiters, which are parts of words, which are -string quotes, and so on. Actually, each major mode has its own syntax -table (though sometimes related major modes use the same one) which it -installs in each buffer that uses that major mode. The syntax table -installed in the current buffer is the one that all commands use, so we -call it "the" syntax table. A syntax table is a Lisp object, a vector -of length 256 whose elements are numbers. - -* Menu: - -* Entry: Syntax Entry. What the syntax table records for each character. -* Change: Syntax Change. How to change the information. - - -File: xemacs.info, Node: Syntax Entry, Next: Syntax Change, Up: Syntax - -Information About Each Character --------------------------------- - - The syntax table entry for a character is a number that encodes six -pieces of information: - - * The syntactic class of the character, represented as a small - integer - - * The matching delimiter, for delimiter characters only (the - matching delimiter of `(' is `)', and vice versa) - - * A flag saying whether the character is the first character of a - two-character comment starting sequence - - * A flag saying whether the character is the second character of a - two-character comment starting sequence - - * A flag saying whether the character is the first character of a - two-character comment ending sequence - - * A flag saying whether the character is the second character of a - two-character comment ending sequence - - The syntactic classes are stored internally as small integers, but -are usually described to or by the user with characters. For example, -`(' is used to specify the syntactic class of opening delimiters. Here -is a table of syntactic classes, with the characters that specify them. - -` ' - The class of whitespace characters. - -`w' - The class of word-constituent characters. - -`_' - The class of characters that are part of symbol names but not - words. This class is represented by `_' because the character `_' - has this class in both C and Lisp. - -`.' - The class of punctuation characters that do not fit into any other - special class. - -`(' - The class of opening delimiters. - -`)' - The class of closing delimiters. - -`'' - The class of expression-adhering characters. These characters are - part of a symbol if found within or adjacent to one, and are part - of a following expression if immediately preceding one, but are - like whitespace if surrounded by whitespace. - -`"' - The class of string-quote characters. They match each other in - pairs, and the characters within the pair all lose their syntactic - significance except for the `\' and `/' classes of escape - characters, which can be used to include a string-quote inside the - string. - -`$' - The class of self-matching delimiters. This is intended for TeX's - `$', which is used both to enter and leave math mode. Thus, a - pair of matching `$' characters surround each piece of math mode - TeX input. A pair of adjacent `$' characters act like a single - one for purposes of matching. - -`/' - The class of escape characters that always just deny the following - character its special syntactic significance. The character after - one of these escapes is always treated as alphabetic. - -`\' - The class of C-style escape characters. In practice, these are - treated just like `/'-class characters, because the extra - possibilities for C escapes (such as being followed by digits) - have no effect on where the containing expression ends. - -`<' - The class of comment-starting characters. Only single-character - comment starters (such as `;' in Lisp mode) are represented this - way. - -`>' - The class of comment-ending characters. Newline has this syntax in - Lisp mode. - - The characters flagged as part of two-character comment delimiters -can have other syntactic functions most of the time. For example, `/' -and `*' in C code, when found separately, have nothing to do with -comments. The comment-delimiter significance overrides when the pair of -characters occur together in the proper order. Only the list and sexp -commands use the syntax table to find comments; the commands -specifically for comments have other variables that tell them where to -find comments. Moreover, the list and sexp commands notice comments -only if `parse-sexp-ignore-comments' is non-`nil'. This variable is set -to `nil' in modes where comment-terminator sequences are liable to -appear where there is no comment, for example, in Lisp mode where the -comment terminator is a newline but not every newline ends a comment. - - -File: xemacs.info, Node: Syntax Change, Prev: Syntax Entry, Up: Syntax - -Altering Syntax Information ---------------------------- - - It is possible to alter a character's syntax table entry by storing -a new number in the appropriate element of the syntax table, but it -would be hard to determine what number to use. Emacs therefore -provides a command that allows you to specify the syntactic properties -of a character in a convenient way. - - `M-x modify-syntax-entry' is the command to change a character's -syntax. It can be used interactively and is also used by major modes -to initialize their own syntax tables. Its first argument is the -character to change. The second argument is a string that specifies the -new syntax. When called from Lisp code, there is a third, optional -argument, which specifies the syntax table in which to make the change. -If not supplied, or if this command is called interactively, the third -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::). - - 2. The second character is the matching delimiter. For a character - that is not an opening or closing delimiter, this should be a - space, and may be omitted if no following characters are needed. - - 3. The remaining characters are flags. The flag characters allowed - are: - - `1' - Flag this character as the first of a two-character comment - starting sequence. - - `2' - Flag this character as the second of a two-character comment - starting sequence. - - `3' - Flag this character as the first of a two-character comment - ending sequence. - - `4' - Flag this character as the second of a two-character comment - ending sequence. - - Use `C-h s' (`describe-syntax') to display a description of the -contents of the current syntax table. The description of each -character includes both the string you have to pass to -`modify-syntax-entry' to set up that character's current syntax, and -some English to explain that string if necessary. diff -r -u -N xemacs-21.1.12/info/xemacs.info-17 xemacs-21.1.13/info/xemacs.info-17 --- xemacs-21.1.12/info/xemacs.info-17 Fri Aug 4 21:31:17 2000 +++ xemacs-21.1.13/info/xemacs.info-17 Sun Jan 7 15:57:32 2001 @@ -1,4 +1,4 @@ -This is ../../info/xemacs.info, produced by makeinfo version 4.0 from +This is ../../info/xemacs.info, produced by makeinfo version 4.0a from xemacs.texi. INFO-DIR-SECTION XEmacs Editor @@ -30,6 +30,229 @@ translation approved by the author instead of in the original English.  +File: xemacs.info, Node: Disabling, Prev: Rebinding, Up: Key Bindings + +Disabling Commands +------------------ + + Disabling a command marks it as requiring confirmation before it can +be executed. The purpose of disabling a command is to prevent +beginning users from executing it by accident and being confused. + + The direct mechanism for disabling a command is to have a non-`nil' +`disabled' property on the Lisp symbol for the command. These +properties are normally set by the user's `.emacs' file with Lisp +expressions such as: + + (put 'delete-region 'disabled t) + + If the value of the `disabled' property is a string, that string is +included in the message printed when the command is used: + + (put 'delete-region 'disabled + "Text deleted this way cannot be yanked back!\n") + + You can disable a command either by editing the `.emacs' file +directly or with the command `M-x disable-command', which edits the +`.emacs' file for you. *Note Init File::. + + When you attempt to invoke a disabled command interactively in Emacs, +a window is displayed containing the command's name, its documentation, +and some instructions on what to do next; then Emacs asks for input +saying whether to execute the command as requested, enable it and +execute, or cancel it. If you decide to enable the command, you are +asked whether to do this permanently or just for the current session. +Enabling permanently works by automatically editing your `.emacs' file. +You can use `M-x enable-command' at any time to enable any command +permanently. + + Whether a command is disabled is independent of what key is used to +invoke it; it also applies if the command is invoked using `M-x'. +Disabling a command has no effect on calling it as a function from Lisp +programs. + + +File: xemacs.info, Node: Syntax, Next: Init File, Prev: Key Bindings, Up: Customization + +The Syntax Table +================ + + All the Emacs commands which parse words or balance parentheses are +controlled by the "syntax table". The syntax table specifies which +characters are opening delimiters, which are parts of words, which are +string quotes, and so on. Actually, each major mode has its own syntax +table (though sometimes related major modes use the same one) which it +installs in each buffer that uses that major mode. The syntax table +installed in the current buffer is the one that all commands use, so we +call it "the" syntax table. A syntax table is a Lisp object, a vector +of length 256 whose elements are numbers. + +* Menu: + +* Entry: Syntax Entry. What the syntax table records for each character. +* Change: Syntax Change. How to change the information. + + +File: xemacs.info, Node: Syntax Entry, Next: Syntax Change, Up: Syntax + +Information About Each Character +-------------------------------- + + The syntax table entry for a character is a number that encodes six +pieces of information: + + * The syntactic class of the character, represented as a small + integer + + * The matching delimiter, for delimiter characters only (the + matching delimiter of `(' is `)', and vice versa) + + * A flag saying whether the character is the first character of a + two-character comment starting sequence + + * A flag saying whether the character is the second character of a + two-character comment starting sequence + + * A flag saying whether the character is the first character of a + two-character comment ending sequence + + * A flag saying whether the character is the second character of a + two-character comment ending sequence + + The syntactic classes are stored internally as small integers, but +are usually described to or by the user with characters. For example, +`(' is used to specify the syntactic class of opening delimiters. Here +is a table of syntactic classes, with the characters that specify them. + +` ' + The class of whitespace characters. + +`w' + The class of word-constituent characters. + +`_' + The class of characters that are part of symbol names but not + words. This class is represented by `_' because the character `_' + has this class in both C and Lisp. + +`.' + The class of punctuation characters that do not fit into any other + special class. + +`(' + The class of opening delimiters. + +`)' + The class of closing delimiters. + +`'' + The class of expression-adhering characters. These characters are + part of a symbol if found within or adjacent to one, and are part + of a following expression if immediately preceding one, but are + like whitespace if surrounded by whitespace. + +`"' + The class of string-quote characters. They match each other in + pairs, and the characters within the pair all lose their syntactic + significance except for the `\' and `/' classes of escape + characters, which can be used to include a string-quote inside the + string. + +`$' + The class of self-matching delimiters. This is intended for TeX's + `$', which is used both to enter and leave math mode. Thus, a + pair of matching `$' characters surround each piece of math mode + TeX input. A pair of adjacent `$' characters act like a single + one for purposes of matching. + +`/' + The class of escape characters that always just deny the following + character its special syntactic significance. The character after + one of these escapes is always treated as alphabetic. + +`\' + The class of C-style escape characters. In practice, these are + treated just like `/'-class characters, because the extra + possibilities for C escapes (such as being followed by digits) + have no effect on where the containing expression ends. + +`<' + The class of comment-starting characters. Only single-character + comment starters (such as `;' in Lisp mode) are represented this + way. + +`>' + The class of comment-ending characters. Newline has this syntax in + Lisp mode. + + The characters flagged as part of two-character comment delimiters +can have other syntactic functions most of the time. For example, `/' +and `*' in C code, when found separately, have nothing to do with +comments. The comment-delimiter significance overrides when the pair of +characters occur together in the proper order. Only the list and sexp +commands use the syntax table to find comments; the commands +specifically for comments have other variables that tell them where to +find comments. Moreover, the list and sexp commands notice comments +only if `parse-sexp-ignore-comments' is non-`nil'. This variable is set +to `nil' in modes where comment-terminator sequences are liable to +appear where there is no comment, for example, in Lisp mode where the +comment terminator is a newline but not every newline ends a comment. + + +File: xemacs.info, Node: Syntax Change, Prev: Syntax Entry, Up: Syntax + +Altering Syntax Information +--------------------------- + + It is possible to alter a character's syntax table entry by storing +a new number in the appropriate element of the syntax table, but it +would be hard to determine what number to use. Emacs therefore +provides a command that allows you to specify the syntactic properties +of a character in a convenient way. + + `M-x modify-syntax-entry' is the command to change a character's +syntax. It can be used interactively and is also used by major modes +to initialize their own syntax tables. Its first argument is the +character to change. The second argument is a string that specifies the +new syntax. When called from Lisp code, there is a third, optional +argument, which specifies the syntax table in which to make the change. +If not supplied, or if this command is called interactively, the third +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::). + + 2. The second character is the matching delimiter. For a character + that is not an opening or closing delimiter, this should be a + space, and may be omitted if no following characters are needed. + + 3. The remaining characters are flags. The flag characters allowed + are: + + `1' + Flag this character as the first of a two-character comment + starting sequence. + + `2' + Flag this character as the second of a two-character comment + starting sequence. + + `3' + Flag this character as the first of a two-character comment + ending sequence. + + `4' + Flag this character as the second of a two-character comment + ending sequence. + + Use `C-h s' (`describe-syntax') to display a description of the +contents of the current syntax table. The description of each +character includes both the string you have to pass to +`modify-syntax-entry' to set up that character's current syntax, and +some English to explain that string if necessary. + + File: xemacs.info, Node: Init File, Next: Audible Bell, Prev: Syntax, Up: Customization The Init File, .emacs @@ -1059,96 +1282,4 @@ not another kind, the real problem is likely to be a bad termcap entry, though it could also be due to a bug in Emacs that appears for terminals that have or lack specific features. - - -File: xemacs.info, Node: Text Garbled, Next: Unasked-for Search, Prev: Screen Garbled, Up: Lossage - -Garbage in the Text -------------------- - - If `C-l' shows that the text is wrong, try undoing the changes to it -using `C-x u' until it gets back to a state you consider correct. Also -try `C-h l' to find out what command you typed to produce the observed -results. - - If a large portion of text appears to be missing at the beginning or -end of the buffer, check for the word `Narrow' in the mode line. If it -appears, the text is still present, but marked off-limits. To make it -visible again, type `C-x n w'. *Note Narrowing::. - - -File: xemacs.info, Node: Unasked-for Search, Next: Emergency Escape, Prev: Text Garbled, Up: Lossage - -Spontaneous Entry to Incremental Search ---------------------------------------- - - If Emacs spontaneously displays `I-search:' at the bottom of the -screen, it means that the terminal is sending `C-s' and `C-q' according -to the poorly designed xon/xoff "flow control" protocol. You should -try to prevent this by putting the terminal in a mode where it will not -use flow control, or by giving it enough padding that it will never -send a `C-s'. If that cannot be done, you must tell Emacs to expect -flow control to be used, until you can get a properly designed terminal. - - Information on how to do these things can be found in the file -`INSTALL' in the Emacs distribution. - - -File: xemacs.info, Node: Emergency Escape, Next: Total Frustration, Prev: Unasked-for Search, Up: Lossage - -Emergency Escape ----------------- - - Because at times there have been bugs causing Emacs to loop without -checking `quit-flag', a special feature causes Emacs to be suspended -immediately if you type a second `C-g' while the flag is already set, -so you can always get out of XEmacs. Normally Emacs recognizes and -clears `quit-flag' (and quits!) quickly enough to prevent this from -happening. - - When you resume Emacs after a suspension caused by multiple `C-g', it -asks two questions before going back to what it had been doing: - - Auto-save? (y or n) - Abort (and dump core)? (y or n) - -Answer each one with `y' or `n' followed by . - - Saying `y' to `Auto-save?' causes immediate auto-saving of all -modified buffers in which auto-saving is enabled. - - Saying `y' to `Abort (and dump core)?' causes an illegal instruction -to be executed, dumping core. This is to enable a wizard to figure out -why Emacs was failing to quit in the first place. Execution does not -continue after a core dump. If you answer `n', execution does -continue. With luck, Emacs will ultimately check `quit-flag' and quit -normally. If not, and you type another `C-g', it is suspended again. - - If Emacs is not really hung, but is just being slow, you may invoke -the double `C-g' feature without really meaning to. In that case, -simply resume and answer `n' to both questions, and you will arrive at -your former state. Presumably the quit you requested will happen soon. - - The double-`C-g' feature may be turned off when Emacs is running -under a window system, since the window system always enables you to -kill Emacs or to create another window and run another program. - - -File: xemacs.info, Node: Total Frustration, Prev: Emergency Escape, Up: Lossage - -Help for Total Frustration --------------------------- - - If using Emacs (or something else) becomes terribly frustrating and -none of the techniques described above solve the problem, Emacs can -still help you. - - First, if the Emacs you are using is not responding to commands, type -`C-g C-g' to get out of it and then start a new one. - - Second, type `M-x doctor '. - - The doctor will make you feel better. Each time you say something to -the doctor, you must end it by typing . This lets the -doctor know you are finished. diff -r -u -N xemacs-21.1.12/info/xemacs.info-18 xemacs-21.1.13/info/xemacs.info-18 --- xemacs-21.1.12/info/xemacs.info-18 Fri Aug 4 21:31:17 2000 +++ xemacs-21.1.13/info/xemacs.info-18 Sun Jan 7 15:57:32 2001 @@ -1,4 +1,4 @@ -This is ../../info/xemacs.info, produced by makeinfo version 4.0 from +This is ../../info/xemacs.info, produced by makeinfo version 4.0a from xemacs.texi. INFO-DIR-SECTION XEmacs Editor @@ -28,6 +28,98 @@ versions, except that the sections entitled "The GNU Manifesto", "Distribution" and "GNU General Public License" may be included in a translation approved by the author instead of in the original English. + + +File: xemacs.info, Node: Text Garbled, Next: Unasked-for Search, Prev: Screen Garbled, Up: Lossage + +Garbage in the Text +------------------- + + If `C-l' shows that the text is wrong, try undoing the changes to it +using `C-x u' until it gets back to a state you consider correct. Also +try `C-h l' to find out what command you typed to produce the observed +results. + + If a large portion of text appears to be missing at the beginning or +end of the buffer, check for the word `Narrow' in the mode line. If it +appears, the text is still present, but marked off-limits. To make it +visible again, type `C-x n w'. *Note Narrowing::. + + +File: xemacs.info, Node: Unasked-for Search, Next: Emergency Escape, Prev: Text Garbled, Up: Lossage + +Spontaneous Entry to Incremental Search +--------------------------------------- + + If Emacs spontaneously displays `I-search:' at the bottom of the +screen, it means that the terminal is sending `C-s' and `C-q' according +to the poorly designed xon/xoff "flow control" protocol. You should +try to prevent this by putting the terminal in a mode where it will not +use flow control, or by giving it enough padding that it will never +send a `C-s'. If that cannot be done, you must tell Emacs to expect +flow control to be used, until you can get a properly designed terminal. + + Information on how to do these things can be found in the file +`INSTALL' in the Emacs distribution. + + +File: xemacs.info, Node: Emergency Escape, Next: Total Frustration, Prev: Unasked-for Search, Up: Lossage + +Emergency Escape +---------------- + + Because at times there have been bugs causing Emacs to loop without +checking `quit-flag', a special feature causes Emacs to be suspended +immediately if you type a second `C-g' while the flag is already set, +so you can always get out of XEmacs. Normally Emacs recognizes and +clears `quit-flag' (and quits!) quickly enough to prevent this from +happening. + + When you resume Emacs after a suspension caused by multiple `C-g', it +asks two questions before going back to what it had been doing: + + Auto-save? (y or n) + Abort (and dump core)? (y or n) + +Answer each one with `y' or `n' followed by . + + Saying `y' to `Auto-save?' causes immediate auto-saving of all +modified buffers in which auto-saving is enabled. + + Saying `y' to `Abort (and dump core)?' causes an illegal instruction +to be executed, dumping core. This is to enable a wizard to figure out +why Emacs was failing to quit in the first place. Execution does not +continue after a core dump. If you answer `n', execution does +continue. With luck, Emacs will ultimately check `quit-flag' and quit +normally. If not, and you type another `C-g', it is suspended again. + + If Emacs is not really hung, but is just being slow, you may invoke +the double `C-g' feature without really meaning to. In that case, +simply resume and answer `n' to both questions, and you will arrive at +your former state. Presumably the quit you requested will happen soon. + + The double-`C-g' feature may be turned off when Emacs is running +under a window system, since the window system always enables you to +kill Emacs or to create another window and run another program. + + +File: xemacs.info, Node: Total Frustration, Prev: Emergency Escape, Up: Lossage + +Help for Total Frustration +-------------------------- + + If using Emacs (or something else) becomes terribly frustrating and +none of the techniques described above solve the problem, Emacs can +still help you. + + First, if the Emacs you are using is not responding to commands, type +`C-g C-g' to get out of it and then start a new one. + + Second, type `M-x doctor '. + + The doctor will make you feel better. Each time you say something to +the doctor, you must end it by typing . This lets the +doctor know you are finished.  File: xemacs.info, Node: Bugs, Prev: Lossage, Up: Top diff -r -u -N xemacs-21.1.12/info/xemacs.info-19 xemacs-21.1.13/info/xemacs.info-19 --- xemacs-21.1.12/info/xemacs.info-19 Fri Aug 4 21:31:17 2000 +++ xemacs-21.1.13/info/xemacs.info-19 Sun Jan 7 15:57:32 2001 @@ -1,4 +1,4 @@ -This is ../../info/xemacs.info, produced by makeinfo version 4.0 from +This is ../../info/xemacs.info, produced by makeinfo version 4.0a from xemacs.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/xemacs.info-2 xemacs-21.1.13/info/xemacs.info-2 --- xemacs-21.1.12/info/xemacs.info-2 Fri Aug 4 21:31:17 2000 +++ xemacs-21.1.13/info/xemacs.info-2 Sun Jan 7 15:57:32 2001 @@ -1,4 +1,4 @@ -This is ../../info/xemacs.info, produced by makeinfo version 4.0 from +This is ../../info/xemacs.info, produced by makeinfo version 4.0a from xemacs.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/xemacs.info-20 xemacs-21.1.13/info/xemacs.info-20 --- xemacs-21.1.12/info/xemacs.info-20 Fri Aug 4 21:31:17 2000 +++ xemacs-21.1.13/info/xemacs.info-20 Sun Jan 7 15:57:32 2001 @@ -1,4 +1,4 @@ -This is ../../info/xemacs.info, produced by makeinfo version 4.0 from +This is ../../info/xemacs.info, produced by makeinfo version 4.0a from xemacs.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/xemacs.info-21 xemacs-21.1.13/info/xemacs.info-21 --- xemacs-21.1.12/info/xemacs.info-21 Fri Aug 4 21:31:17 2000 +++ xemacs-21.1.13/info/xemacs.info-21 Sun Jan 7 15:57:32 2001 @@ -1,4 +1,4 @@ -This is ../../info/xemacs.info, produced by makeinfo version 4.0 from +This is ../../info/xemacs.info, produced by makeinfo version 4.0a from xemacs.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/xemacs.info-3 xemacs-21.1.13/info/xemacs.info-3 --- xemacs-21.1.12/info/xemacs.info-3 Fri Aug 4 21:31:17 2000 +++ xemacs-21.1.13/info/xemacs.info-3 Sun Jan 7 15:57:32 2001 @@ -1,4 +1,4 @@ -This is ../../info/xemacs.info, produced by makeinfo version 4.0 from +This is ../../info/xemacs.info, produced by makeinfo version 4.0a from xemacs.texi. INFO-DIR-SECTION XEmacs Editor @@ -355,7 +355,7 @@ Emacs only.  -File: xemacs.info, Node: Startup Paths, Next: Basic, Prev: Command Switches, Up: Top +File: xemacs.info, Node: Startup Paths, Next: Packages, Prev: Command Switches, Up: Top How XEmacs finds Directories and Files ====================================== @@ -390,9 +390,9 @@ the one where it is being built.) Such a directory containing a hierarchy is called a "root". Whenever this section refers to a directory using the shorthand `', it means that XEmacs searches -for it under all hierarchies under all hierarchies XEmacs was able to -scrounge up. In a running XEmacs, the hierarchy roots are stored in -the variable `emacs-roots'. +for it under all hierarchies XEmacs was able to scrounge up. In a +running XEmacs, the hierarchy roots are stored in the variable +`emacs-roots'. Package Hierarchies ------------------- @@ -430,8 +430,8 @@ It is possible to specify at configure-time the location of the various package hierarchies with the `--package-path' option to configure. The early, late, and last components of the package path -are separated by double instead of single colons. If three components -are present, they are locate the early, late, and last package +are separated by double instead of single colons. If all three +components are present, they locate the early, late, and last package hierarchies respectively. If two components are present, they locate the early and late hierarchies. If only one component is present, it locates the late hierarchy. At run time, the package path may also be @@ -523,7 +523,7 @@ package data directories as well as `data-directory'.  -File: xemacs.info, Node: Basic, Next: Undo, Prev: Startup Paths, Up: Top +File: xemacs.info, Node: Basic, Next: Undo, Prev: Packages, Up: Top Basic Editing Commands ********************** diff -r -u -N xemacs-21.1.12/info/xemacs.info-4 xemacs-21.1.13/info/xemacs.info-4 --- xemacs-21.1.12/info/xemacs.info-4 Fri Aug 4 21:31:17 2000 +++ xemacs-21.1.13/info/xemacs.info-4 Sun Jan 7 15:57:32 2001 @@ -1,4 +1,4 @@ -This is ../../info/xemacs.info, produced by makeinfo version 4.0 from +This is ../../info/xemacs.info, produced by makeinfo version 4.0a from xemacs.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/xemacs.info-5 xemacs-21.1.13/info/xemacs.info-5 --- xemacs-21.1.12/info/xemacs.info-5 Fri Aug 4 21:31:17 2000 +++ xemacs-21.1.13/info/xemacs.info-5 Sun Jan 7 15:57:32 2001 @@ -1,4 +1,4 @@ -This is ../../info/xemacs.info, produced by makeinfo version 4.0 from +This is ../../info/xemacs.info, produced by makeinfo version 4.0a from xemacs.texi. INFO-DIR-SECTION XEmacs Editor @@ -944,10 +944,10 @@ within searches (`C-q', `C-w', `C-r', `C-s', or `C-y'). Sometimes you search for `FOO' and find it, but were actually -looking for a different occurence of it. To move to the next occurrence -of the search string, type another `C-s'. Do this as often as -necessary. If you overshoot, you can cancel some `C-s' characters with -. +looking for a different occurrence of it. To move to the next +occurrence of the search string, type another `C-s'. Do this as often +as necessary. If you overshoot, you can cancel some `C-s' characters +with . After you exit a search, you can search for the same string again by typing just `C-s C-s': the first `C-s' is the key that invokes diff -r -u -N xemacs-21.1.12/info/xemacs.info-6 xemacs-21.1.13/info/xemacs.info-6 --- xemacs-21.1.12/info/xemacs.info-6 Fri Aug 4 21:31:17 2000 +++ xemacs-21.1.13/info/xemacs.info-6 Sun Jan 7 15:57:32 2001 @@ -1,4 +1,4 @@ -This is ../../info/xemacs.info, produced by makeinfo version 4.0 from +This is ../../info/xemacs.info, produced by makeinfo version 4.0a from xemacs.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/xemacs.info-7 xemacs-21.1.13/info/xemacs.info-7 --- xemacs-21.1.12/info/xemacs.info-7 Fri Aug 4 21:31:17 2000 +++ xemacs-21.1.13/info/xemacs.info-7 Sun Jan 7 15:57:32 2001 @@ -1,4 +1,4 @@ -This is ../../info/xemacs.info, produced by makeinfo version 4.0 from +This is ../../info/xemacs.info, produced by makeinfo version 4.0a from xemacs.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/xemacs.info-8 xemacs-21.1.13/info/xemacs.info-8 --- xemacs-21.1.12/info/xemacs.info-8 Fri Aug 4 21:31:17 2000 +++ xemacs-21.1.13/info/xemacs.info-8 Sun Jan 7 15:57:32 2001 @@ -1,4 +1,4 @@ -This is ../../info/xemacs.info, produced by makeinfo version 4.0 from +This is ../../info/xemacs.info, produced by makeinfo version 4.0a from xemacs.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/info/xemacs.info-9 xemacs-21.1.13/info/xemacs.info-9 --- xemacs-21.1.12/info/xemacs.info-9 Fri Aug 4 21:31:17 2000 +++ xemacs-21.1.13/info/xemacs.info-9 Sun Jan 7 15:57:32 2001 @@ -1,4 +1,4 @@ -This is ../../info/xemacs.info, produced by makeinfo version 4.0 from +This is ../../info/xemacs.info, produced by makeinfo version 4.0a from xemacs.texi. INFO-DIR-SECTION XEmacs Editor diff -r -u -N xemacs-21.1.12/lib-src/ChangeLog xemacs-21.1.13/lib-src/ChangeLog --- xemacs-21.1.12/lib-src/ChangeLog Fri Aug 4 21:31:41 2000 +++ xemacs-21.1.13/lib-src/ChangeLog Sun Jan 7 15:57:57 2001 @@ -1,3 +1,7 @@ +2001-01-07 XEmacs Build Bot + + * XEmacs 21.1.13 is released + 2000-08-04 XEmacs Build Bot * XEmacs 21.1.12 is released diff -r -u -N xemacs-21.1.12/lib-src/etags.c xemacs-21.1.13/lib-src/etags.c --- xemacs-21.1.12/lib-src/etags.c Sun May 24 01:40:19 1998 +++ xemacs-21.1.13/lib-src/etags.c Sun Nov 19 22:25:17 2000 @@ -3730,7 +3730,7 @@ /* * Postscript tag functions * Just look for lines where the first character is '/' - * Richard Mlynarik + * Richard Mlynarik */ void Postscript_functions (inf) diff -r -u -N xemacs-21.1.12/lib-src/ootags.c xemacs-21.1.13/lib-src/ootags.c --- xemacs-21.1.12/lib-src/ootags.c Mon May 18 01:42:06 1998 +++ xemacs-21.1.13/lib-src/ootags.c Sun Nov 19 22:25:17 2000 @@ -4076,7 +4076,7 @@ /* * Postscript tag functions * Just look for lines where the first character is '/' - * Richard Mlynarik + * Richard Mlynarik */ void Postscript_functions (inf) diff -r -u -N xemacs-21.1.12/lisp/ChangeLog xemacs-21.1.13/lisp/ChangeLog --- xemacs-21.1.12/lisp/ChangeLog Fri Aug 4 21:31:41 2000 +++ xemacs-21.1.13/lisp/ChangeLog Sun Jan 7 15:57:57 2001 @@ -1,3 +1,149 @@ +2001-01-07 XEmacs Build Bot + + * XEmacs 21.1.13 is released + +2000-12-08 Adrian Aichner + + * simple.el (indent-for-comment): Preserve indentation of comments + starting in column 0, as documented in (Info-goto-node + "(xemacs)Comments"). Update docstring accordingly. + * simple.el (kill-comment): Typo fix. + +2000-12-16 Stephen J. Turnbull + + * mule/mule-coding.el: Reorder coding priority list. Works around + crash in ISO-lock coding system reported by M. Fabian. + +2000-12-04 Didier Verna + + * mouse.el (default-mouse-track-set-point-in-window): remove + spurious '+' operation detected by Martin. + +2000-12-01 Martin Bucholz + + * cl-extra.el (coerce): + Implement char to integer coercion. + Remove extraneous (numberp) test. + +2000-11-02 Stephen J. Turnbull + + * cus-face.el: Typo fixes and tiny clarifications. + +2000-10-24 Didier Verna + + * info.el (Info-emacs-info-file-name): defconst it. + * info.el (Info-footnote-tag): defcustom it. + * info.el (Info-no-description-string): ditto. + * info.el (Info-find-node): adapt to new semantics of + 'Info-suffixed-file (don't do the case variants stuff). + * info.el (Info-insert-dir): rewrite the dir file variants code. + * info.el (Info-directory-files): New. Return the list of info + files in a directory. + * info.el (Info-dir-outdated-p): use it. + * info.el (Info-parse-dir-entries): ditto. + * info.el (Info-build-dir-anew): don't restrict to files ending + with a ".info.*" extension. + * info.el (Info-set-mode-line): ditto. + * info.el (Info-read-subfile): adapt to new semantics of + 'Info-suffixed-file (append 'exact argument). + * info.el (Info-all-case-regexp): New. Return a regexp matching a + string independently of the case. + * info.el (Info-suffixed-file): use it (match all possible case + for the file name). + * info.el (Info-insert-file-contents): code cleanup. + * info.el (Info-rebuild-dir): cosmetics only. Fit code in 80 + columns. + * info.el (Info-batch-rebuild-dir): ditto. + * info.el (Info-search): ditto. + * info.el (Info-fontify-node): ditto. + +2000-12-03 Jorma Laaksonen + + * package-admin.el: Allow package removal from + early-package-load-path. + +2000-10-16 Yoshiki Hayashi + + * byte-optimize.el (byte-after-unbind-pos): Remove byte-equal. + +2000-10-26 Yoshiki Hayashi + + * startup.el (normal-top-level): Set up auto-save-list-file-name + iff auto-save-list-prefix is non-nil. + +2000-04-18 Hrvoje Niksic + + * code-files.el (convert-mbox-coding-system): Deleted. + (file-coding-system-alist): Removed reference to + convert-mbox-coding-system. + +1999-10-29 Hrvoje Niksic + + * font-lock.el (font-lock-lisp-like): New function. + (font-lock-fontify-syntactically-region): Use it. + +2000-10-11 Martin Buchholz + + * simple.el (turn-on-auto-fill): Add (interactive). + * mwheel.el (mwheel-install): Add (interactive). + * font-lock.el (turn-on-font-lock): Add (interactive). + (turn-off-font-lock): Add (interactive). + +2000-10-08 Adrian Aichner + + * wid-edit.el (widget-specify-active): map over extents in current + buffer like `widget-specify-inactive' does. Mapping over the + inactive extent object does not work since the current extent is + ignored by `map-extents'. + +1999-06-02 Oscar Figueiredo + + * subr.el (split-string): Avoid infinite looping + +2000-10-12 Daniel Pittman + + * simple.el (do-auto-fill): Use the function pointer to by + `comment-line-break-function', not `indent-new-comment-line'. This + fixes an issue with cc-mode comment continuation. + +2000-11-18 Stephen Carney + + * etags.el: Prevent tag-search from going compute-bound. + +2000-09-19 Martin Buchholz + + * easymenu.el: doc fixes. + (easy-menu-do-define): Use backquote. + (easy-menu-change): + (easy-menu-add): + `when' seems much clearer than `if' here. + (easy-menu-remove): + (easy-menu-add-item): + (easy-menu-item-present-p): + (easy-menu-remove-item): + Wrap using (when (featurep 'menubar) ...) + +2000-09-12 Martin Buchholz + + * bytecomp.el (byte-compile-file-form-defvar-or-defconst): + Renamed from `byte-compile-file-form-defvar'. + * bytecomp.el (byte-compile-defvar-or-defconst): + Only cons onto current-load-list in top-level forms. + Else this leaks a cons cell every time a defun is called. + Renamed from `byte-compile-defvar', for clarity. + Warn when docstring of defvar is not a string. + Use consistent error messages. + Better comments. + +2000-09-11 Martin Buchholz + + * cl-macs.el (cl-do-proclaim): + Fix (declare (special ...)) warning suppression syntax. + +2000-08-22 Stephen J. Turnbull + + * mule/mule-init.el (auto-language-alist): Distinguish zh_CN, zh_TW. + 2000-08-04 XEmacs Build Bot * XEmacs 21.1.12 is released @@ -1154,7 +1300,7 @@ in addition for .tar.gz files. Tries to reload auto-autoloads, as a convenience when loading new packages, and also tries to add any new package paths to `load-path'. - Changed all occurences of `concat' to use `expand-file-name'. + Changed all occurrences of `concat' to use `expand-file-name'. * package-ui.el: New file which implements the main visual package browser/installer, which is started via a menu pick or @@ -1400,7 +1546,7 @@ * find-paths.el (paths-emacs-root-p): Relaxed emacs-root checking of an in-place installation to - also accomodate the flat layout used on MS Windows. + also accommodate the flat layout used on MS Windows. 1998-06-29 John Jones @@ -2729,7 +2875,7 @@ 1998-04-19 Oscar Figueiredo - * info.el (Info-maybe-update-dir): Bug fix in `conservative' behaviour + * info.el (Info-maybe-update-dir): Bug fix in `conservative' behavior (Info-build-dir-anew): Add a final newline. (Info-build-dir-anew): Do not issue warning when rebuilding policy is `always' @@ -4110,7 +4256,7 @@ * dumped-lisp.el: x-menubar.el dumped along with mswindows native GUI XEmacs. Rename? x-menubar is rather window system - independant, except for a couple of items. + independent, except for a couple of items. 1997-12-26 SL Baur diff -r -u -N xemacs-21.1.12/lisp/ChangeLog.1 xemacs-21.1.13/lisp/ChangeLog.1 --- xemacs-21.1.12/lisp/ChangeLog.1 Sun Dec 14 01:27:14 1997 +++ xemacs-21.1.13/lisp/ChangeLog.1 Sun Nov 19 22:25:19 2000 @@ -101,7 +101,7 @@ instead of 1000. (find-tag-internal): Use `letf'. (tags-delete): Removed -- was unused. - (set-buffer-tag-table): Use `expland-file-name'. + (set-buffer-tag-table): Use `expand-file-name'. (get-tag-table-buffer): Use `ecase'. (add-to-tag-completion-table): Mark the filename messages with progress. @@ -1022,7 +1022,7 @@ 1997-11-04 Jens-Ulrik Holger Petersen - * packages/time.el: Change all occurences of ballon to balloon. + * packages/time.el: Change all occurrences of ballon to balloon. 1997-11-04 Jens-Ulrik Holger Petersen @@ -6538,7 +6538,7 @@ (smtpmail-via-smtp): Ditto. * packages/add-log.el (add-log-mailing-address): Use new function - to obtaion email address. + to obtain email address. (add-change-log-entry): Ditto. * prim/device.el (device-pixel-depth): New alias for @@ -7078,7 +7078,7 @@ * sunpro/sunpro-load.el: Do not dump mime-setup under any circumstances. -Thu Feb 13 17:58:09 1997 Richard Mlynarik +Thu Feb 13 17:58:09 1997 Richard Mlynarik * prim/obsolete.el (insert-before-markers-and-inherit): Correct typo. @@ -7578,7 +7578,7 @@ * x11/x-font-menu.el (font-menu-this-frame-only-p): Default to nil, because everyone was confused by it defaulting to t. -Fri Dec 27 12:30:37 1996 Richard Mlynarik +Fri Dec 27 12:30:37 1996 Richard Mlynarik * prim/sort.el (sort-subr): Document use of `sort-fold-case'. (sort-lines): Ditto. diff -r -u -N xemacs-21.1.12/lisp/about.el xemacs-21.1.13/lisp/about.el --- xemacs-21.1.12/lisp/about.el Tue Feb 8 20:40:57 2000 +++ xemacs-21.1.13/lisp/about.el Sun Nov 19 22:25:20 2000 @@ -76,7 +76,7 @@ (larsi "Lars Magne Ingebrigtsen" "larsi@gnus.org") (marcpa "Marc Paquette" "marcpa@CAM.ORG") (mcook "Michael R. Cook" "mcook@cognex.com") - (mly "Richard Mlynarik" "mly@adoc.xerox.com") + (mly "Richard Mlynarik" "Mly@POBox.COM") (morioka "MORIOKA Tomohiko" "morioka@jaist.ac.jp") (martin "Martin Buchholz" "martin@xemacs.org") (ograf "Oliver Graf" "ograf@fga.de") diff -r -u -N xemacs-21.1.12/lisp/byte-optimize.el xemacs-21.1.13/lisp/byte-optimize.el --- xemacs-21.1.12/lisp/byte-optimize.el Sat May 2 20:24:06 1998 +++ xemacs-21.1.13/lisp/byte-optimize.el Sun Nov 19 22:25:20 2000 @@ -1344,7 +1344,7 @@ (defconst byte-after-unbind-ops '(byte-constant byte-dup byte-symbolp byte-consp byte-stringp byte-listp byte-numberp byte-integerp - byte-eq byte-equal byte-not + byte-eq byte-not byte-cons byte-list1 byte-list2 ; byte-list3 byte-list4 byte-interactive-p) ;; How about other side-effect-free-ops? Is it safe to move an diff -r -u -N xemacs-21.1.12/lisp/bytecomp.el xemacs-21.1.13/lisp/bytecomp.el --- xemacs-21.1.12/lisp/bytecomp.el Sat Aug 28 16:24:16 1999 +++ xemacs-21.1.13/lisp/bytecomp.el Thu Nov 16 22:21:22 2000 @@ -3,13 +3,14 @@ ;;; Copyright (C) 1985-1987, 1991-1994 Free Software Foundation, Inc. ;;; Copyright (C) 1996 Ben Wing. -;; Author: Jamie Zawinski -;; Hallvard Furuseth -;; Keywords: internal - -;; Subsequently modified by RMS and others. - -(defconst byte-compile-version (purecopy "2.25 XEmacs; 22-Mar-96.")) +;; Authors: Jamie Zawinski +;; Hallvard Furuseth +;; Ben Wing +;; Martin Buchholz +;; Richard Stallman +;; Keywords: internal lisp + +(defconst byte-compile-version (purecopy "2.27 XEmacs; 2000-09-12.")) ;; This file is part of XEmacs. @@ -33,8 +34,15 @@ ;;; Commentary: ;; The Emacs Lisp byte compiler. This crunches lisp source into a -;; sort of p-code which takes up less space and can be interpreted -;; faster. The user entry points are byte-compile-file, +;; sort of p-code (`bytecode') which takes up less space and can be +;; interpreted faster. First, the source code forms are converted to +;; an intermediate form, `lapcode' [`LAP' == `Lisp Assembly Program'] +;; which is much easier to manipulate than bytecode. Then the lapcode +;; is converted to bytecode, which can be considered to be actual +;; machine language. Optimizations can occur at either the source +;; level or the lapcode level. + +;; The user entry points are byte-compile-file, ;; byte-recompile-directory and byte-compile-buffer. ;;; Code: @@ -2006,12 +2014,14 @@ ;; No doc string, so we can compile this as a normal form. (byte-compile-keep-pending form 'byte-compile-normal-call))) -(put 'defvar 'byte-hunk-handler 'byte-compile-file-form-defvar) -(put 'defconst 'byte-hunk-handler 'byte-compile-file-form-defvar) -(defun byte-compile-file-form-defvar (form) +(put 'defvar 'byte-hunk-handler 'byte-compile-file-form-defvar-or-defconst) +(put 'defconst 'byte-hunk-handler 'byte-compile-file-form-defvar-or-defconst) +(defun byte-compile-file-form-defvar-or-defconst (form) + ;; (defvar|defconst VAR [VALUE [DOCSTRING]]) (if (> (length form) 4) - (byte-compile-warn "%s used with too many args (%s)" - (car form) (nth 1 form))) + (byte-compile-warn + "%s %s called with %d arguments, but accepts only %s" + (car form) (nth 1 form) (length (cdr form)) 3)) (if (and (> (length form) 3) (not (stringp (nth 3 form)))) (byte-compile-warn "Third arg to %s %s is not a string: %s" (car form) (nth 1 form) (nth 3 form))) @@ -3704,7 +3714,8 @@ (byte-defop-compiler-1 defun) (byte-defop-compiler-1 defmacro) (byte-defop-compiler-1 defvar) -(byte-defop-compiler-1 defconst byte-compile-defvar) +(byte-defop-compiler-1 defvar byte-compile-defvar-or-defconst) +(byte-defop-compiler-1 defconst byte-compile-defvar-or-defconst) (byte-defop-compiler-1 autoload) ;; According to Mly this can go now that lambda is a macro ;(byte-defop-compiler-1 lambda byte-compile-lambda-form) @@ -3732,32 +3743,38 @@ (list 'quote (cons 'macro (eval code)))))) (list 'quote (nth 1 form))))) -(defun byte-compile-defvar (form) - ;; This is not used for file-level defvar/consts with doc strings: - ;; byte-compile-file-form-defvar will be used in that case. - (let ((var (nth 1 form)) +(defun byte-compile-defvar-or-defconst (form) + ;; This is not used for file-level defvar/defconsts with doc strings: + ;; byte-compile-file-form-defvar-or-defconst will be used in that case. + ;; (defvar|defconst VAR [VALUE [DOCSTRING]]) + (let ((fun (nth 0 form)) + (var (nth 1 form)) (value (nth 2 form)) (string (nth 3 form))) - (if (> (length form) 4) - (byte-compile-warn "%s used with too many args" (car form))) - (if (memq 'free-vars byte-compile-warnings) - (setq byte-compile-bound-variables - (cons (cons var byte-compile-global-bit) - byte-compile-bound-variables))) + (when (> (length form) 4) + (byte-compile-warn + "%s %s called with %d arguments, but accepts only %s" + fun var (length (cdr form)) 3)) + (when (memq 'free-vars byte-compile-warnings) + (push (cons var byte-compile-global-bit) byte-compile-bound-variables)) (byte-compile-body-do-effect - (list (if (cdr (cdr form)) - (if (eq (car form) 'defconst) - (list 'setq var value) - (list 'or (list 'boundp (list 'quote var)) - (list 'setq var value)))) + (list ;; Put the defined variable in this library's load-history entry - ;; just as a real defvar would. - (list 'setq 'current-load-list - (list 'cons (list 'quote var) - 'current-load-list)) - (if string - (list 'put (list 'quote var) ''variable-documentation string)) - (list 'quote var))))) + ;; just as a real defvar would, but only in top-level forms. + (when (null byte-compile-current-form) + `(push ',var current-load-list)) + (when (> (length form) 3) + (when (and string (not (stringp string))) + (byte-compile-warn "Third arg to %s %s is not a string: %s" + fun var string)) + `(put ',var 'variable-documentation ,string)) + (if (cdr (cdr form)) ; `value' provided + (if (eq fun 'defconst) + ;; `defconst' sets `var' unconditionally. + `(setq ,var ,value) + ;; `defvar' sets `var' only when unbound. + `(if (not (boundp ',var)) (setq ,var ,value)))) + `',var)))) (defun byte-compile-autoload (form) (and (byte-compile-constp (nth 1 form)) diff -r -u -N xemacs-21.1.12/lisp/cl-extra.el xemacs-21.1.13/lisp/cl-extra.el --- xemacs-21.1.12/lisp/cl-extra.el Wed May 12 10:29:08 1999 +++ xemacs-21.1.13/lisp/cl-extra.el Sun Dec 17 22:03:36 2000 @@ -74,8 +74,8 @@ ((eq type 'array) (if (arrayp x) x (vconcat x))) ((and (eq type 'character) (stringp x) (= (length x) 1)) (aref x 0)) ((and (eq type 'character) (symbolp x)) (coerce (symbol-name x) type)) - ((and (eq type 'character) (numberp x) (char-or-char-int-p x) - (int-char x))) + ((and (eq type 'character) (char-int-p x)) (int-char x)) + ((and (eq type 'integer) (characterp x)) (char-int x)) ((eq type 'float) (float x)) ((eq type 'bit-vector) (if (bit-vector-p x) x (apply 'bit-vector (append x nil)))) diff -r -u -N xemacs-21.1.12/lisp/cl-macs.el xemacs-21.1.13/lisp/cl-macs.el --- xemacs-21.1.12/lisp/cl-macs.el Fri Jul 14 20:44:49 2000 +++ xemacs-21.1.13/lisp/cl-macs.el Thu Nov 16 22:21:23 2000 @@ -1451,10 +1451,10 @@ (cond ((eq (car-safe spec) 'special) (if (boundp 'byte-compile-bound-variables) (setq byte-compile-bound-variables - ;; todo: this should compute correct binding bits vs. 0 - (append (mapcar #'(lambda (v) (cons v 0)) - (cdr spec)) - byte-compile-bound-variables)))) + (append + (mapcar #'(lambda (v) (cons v byte-compile-global-bit)) + (cdr spec)) + byte-compile-bound-variables)))) ((eq (car-safe spec) 'inline) (while (setq spec (cdr spec)) diff -r -u -N xemacs-21.1.12/lisp/cl-seq.el xemacs-21.1.13/lisp/cl-seq.el --- xemacs-21.1.12/lisp/cl-seq.el Tue Mar 31 15:11:02 1998 +++ xemacs-21.1.13/lisp/cl-seq.el Thu Nov 16 22:21:23 2000 @@ -338,7 +338,7 @@ (remove* cl-item cl-seq ':test 'equal)) (defun remq (cl-elt cl-list) - "Remove all occurances of ELT in LIST, comparing with `eq'. + "Remove all occurrences of ELT in LIST, comparing with `eq'. This is a non-destructive function; it makes a copy of LIST to avoid corrupting the original LIST. Also see: `delq', `delete', `delete*', `remove', `remove*'." diff -r -u -N xemacs-21.1.12/lisp/cl.el xemacs-21.1.13/lisp/cl.el --- xemacs-21.1.12/lisp/cl.el Mon May 11 21:06:08 1998 +++ xemacs-21.1.13/lisp/cl.el Thu Nov 16 22:21:23 2000 @@ -280,7 +280,7 @@ Otherwise, the macro is expanded and the expansion is considered in place of FORM. When a non-macro-call results, it is returned. -The second optional arg ENVIRONMENT species an environment of macro +The second optional arg ENVIRONMENT specifies an environment of macro definitions to shadow the loaded ones for use in file byte-compilation." (let ((cl-macro-environment cl-env)) (while (progn (setq cl-macro (funcall cl-old-macroexpand cl-macro cl-env)) diff -r -u -N xemacs-21.1.12/lisp/code-files.el xemacs-21.1.13/lisp/code-files.el --- xemacs-21.1.12/lisp/code-files.el Sat Aug 14 21:29:51 1999 +++ xemacs-21.1.13/lisp/code-files.el Sun Nov 19 22:25:21 2000 @@ -71,7 +71,13 @@ ;; ("\\.\\(el\\|emacs\\|info\\(-[0-9]+\\)?\\|texi\\)$" . iso-2022-8) ;; ("\\(ChangeLog\\|CHANGES-beta\\)$" . iso-2022-8) ("\\.\\(gz\\|Z\\)$" . binary) - ("/spool/mail/.*$" . convert-mbox-coding-system)) + + ;; This idea is totally broken, and the code didn't work anyway. + ;; Mailboxes should be decoded by mail clients, who actually know + ;; how to deal with them. Otherwise, their contents should be + ;; treated as `binary'. + ;("/spool/mail/.*$" . convert-mbox-coding-system) + ) "Alist to decide a coding system to use for a file I/O operation. The format is ((PATTERN . VAL) ...), where PATTERN is a regular expression matching a file name, @@ -194,22 +200,12 @@ ((find-coding-system codesys)) )))) -(defun convert-mbox-coding-system (filename visit start end) - "Decoding function for Unix mailboxes. -Does separate detection and decoding on each message, since each -message might be in a different encoding." - (let ((buffer-read-only nil)) - (save-restriction - (narrow-to-region start end) - (goto-char (point-min)) - (while (not (eobp)) - (let ((start (point)) - end) - (forward-char 1) - (if (re-search-forward "^From" nil 'move) - (beginning-of-line)) - (setq end (point)) - (decode-coding-region start end 'undecided)))))) +;; This is completely broken, not only in implementation (does not +;; understand MIME), but in concept -- such high-level decoding should +;; be done by mail readers, not by IO code! + +;(defun convert-mbox-coding-system (filename visit start end) +;... (defun find-coding-system-magic-cookie () "Look for the coding-system magic cookie in the current buffer.\n" diff -r -u -N xemacs-21.1.12/lisp/cus-face.el xemacs-21.1.13/lisp/cus-face.el --- xemacs-21.1.12/lisp/cus-face.el Thu Nov 26 06:36:29 1998 +++ xemacs-21.1.13/lisp/cus-face.el Sat Dec 16 21:08:25 2000 @@ -54,6 +54,7 @@ ;;; Font Attributes. +;; Consider adding the stuff in the XML font model here. (defconst custom-face-attributes '((:foreground (color :tag "Foreground" :value "" @@ -98,14 +99,15 @@ The elements are of the form (KEY TYPE SET GET) where KEY is a symbol identifying the attribute, TYPE is a widget type for editing the -attibute, SET is a function for setting the attribute value, and GET is a function for getiing the attribute value. +attribute, SET is a function for setting the attribute value, and GET is +a function for getting the attribute value. The SET function should take three arguments, the face to modify, the value of the attribute, and optionally the frame where the face should be changed. The GET function should take two arguments, the face to examine, and -optonally the frame where the face should be examined.") +optionally the frame where the face should be examined.") (defun face-custom-attributes-set (face frame &rest atts) "For FACE on FRAME set the attributes [KEYWORD VALUE].... diff -r -u -N xemacs-21.1.12/lisp/custom.el xemacs-21.1.13/lisp/custom.el --- xemacs-21.1.12/lisp/custom.el Sun Dec 21 01:28:56 1997 +++ xemacs-21.1.13/lisp/custom.el Sun Nov 19 17:08:12 2000 @@ -179,7 +179,7 @@ the current value for that symbol. The default is `default-value'. :require VALUE should be a feature symbol. Each feature will be - required after initialization, of the the user have saved this + required after initialization, of the user have saved this option. Read the section about customization in the Emacs Lisp manual for more diff -r -u -N xemacs-21.1.12/lisp/easymenu.el xemacs-21.1.13/lisp/easymenu.el --- xemacs-21.1.12/lisp/easymenu.el Mon Nov 30 21:42:13 1998 +++ xemacs-21.1.13/lisp/easymenu.el Sun Nov 19 17:08:12 2000 @@ -24,7 +24,7 @@ ;; 02111-1307, USA. ;;; Synched up with: Not synched with FSF but coordinated with the FSF -;;; easymenu maintor for compatability with FSF 20.4. +;;; easymenu maintainer for compatability with FSF 20.4. ;;; Please: Coordinate changes with Inge Frick ;; Commentary: @@ -45,7 +45,7 @@ ;; - Function: easy-menu-define SYMBOL MAPS DOC MENU ;; SYMBOL is both the name of the variable that holds the menu and -;; the name of a function that will present a the menu. +;; the name of a function that will present the menu. ;; MAPS is a list of keymaps where the menu should appear in the menubar. ;; DOC is the documentation string for the variable. ;; MENU is an XEmacs style menu description. @@ -153,15 +153,14 @@ (easy-menu-do-define (quote (, symbol)) (, maps) (, doc) (, menu))))) (defun easy-menu-do-define (symbol maps doc menu) - (if (featurep 'menubar) - (progn + (when (featurep 'menubar) (set symbol menu) - (fset symbol (list 'lambda '(e) - doc - '(interactive "@e") - '(run-hooks 'activate-menubar-hook) - '(setq zmacs-region-stays 't) - (list 'popup-menu symbol)))))) + (fset symbol `(lambda (e) + ,doc + (interactive "@e") + (run-hooks 'activate-menubar-hook) + (setq zmacs-region-stays 't) + (popup-menu ,symbol))))) (defun easy-menu-change (&rest args) (when (featurep 'menubar) @@ -174,8 +173,7 @@ (defun easy-menu-add (menu &optional map) "Add MENU to the current menu bar." - (if (featurep 'menubar) - (progn + (when (featurep 'menubar) (unless (member menu easy-menu-all-popups) (push menu easy-menu-all-popups)) (setq mode-popup-menu (if (> (length easy-menu-all-popups) 1) @@ -195,12 +193,11 @@ (t ;; Add at right. (set-buffer-menubar (copy-sequence current-menubar)) - (add-menu nil (car menu) (cdr menu))))))) + (add-menu nil (car menu) (cdr menu)))))) (defun easy-menu-remove (menu) "Remove MENU from the current menu bar." - (if (featurep 'menubar) - (progn + (when (featurep 'menubar) (setq easy-menu-all-popups (delq menu easy-menu-all-popups) mode-popup-menu (if (< (length easy-menu-all-popups) 1) (cons (easy-menu-title) @@ -209,7 +206,7 @@ (and current-menubar (assoc (car menu) current-menubar) - (delete-menu-item (list (car menu))))))) + (delete-menu-item (list (car menu)))))) (defsubst easy-menu-normalize (menu) (if (symbolp menu) @@ -217,14 +214,14 @@ menu)) (defun easy-menu-add-item (menu path item &optional before) - "At the end of the submenu of MENU with path PATH add ITEM. + "At the end of the submenu of MENU with path PATH, add ITEM. If ITEM is already present in this submenu, then this item will be changed. otherwise ITEM will be added at the end of the submenu, unless the optional argument BEFORE is present, in which case ITEM will instead be added before the item named BEFORE. MENU is either a symbol, which have earlier been used as the first argument in a call to `easy-menu-define', or the value of such a symbol -i.e. a menu, or nil which stands for the current menubar. +i.e. a menu, or nil, which stands for the current menubar. PATH is a list of strings for locating the submenu where ITEM is to be added. If PATH is nil, MENU itself is used. Otherwise, the first element should be the name of a submenu directly under MENU. This @@ -232,25 +229,29 @@ ITEM is either defined as in `easy-menu-define', a menu defined earlier by `easy-menu-define' or `easy-menu-create-menu' or an item returned from `easy-menu-item-present-p' or `easy-menu-remove-item'." - (add-menu-button path item before (easy-menu-normalize menu))) + (when (featurep 'menubar) + (add-menu-button path item before (easy-menu-normalize menu)))) (defun easy-menu-item-present-p (menu path name) "In submenu of MENU with path PATH, return true iff item NAME is present. MENU and PATH are defined as in `easy-menu-add-item'. NAME should be a string, the name of the element to be looked for. -The return value can be used as as an argument to `easy-menu-add-item'." +The return value can be used as an argument to `easy-menu-add-item'." + (if (featurep 'menubar) (car (find-menu-item (or (easy-menu-normalize menu) current-menubar) - (append path (list name))))) + (append path (list name)))) + nil)) (defun easy-menu-remove-item (menu path name) - "From submenu of MENU with path PATH remove item NAME. + "From submenu of MENU with path PATH, remove item NAME. MENU and PATH are defined as in `easy-menu-add-item'. NAME should be a string, the name of the element to be removed. -The return value can be used as as an argument to `easy-menu-add-item'." +The return value can be used as an argument to `easy-menu-add-item'." + (when (featurep 'menubar) (delete-menu-item (append path (list name)) - (easy-menu-normalize menu))) + (easy-menu-normalize menu)))) diff -r -u -N xemacs-21.1.12/lisp/etags.el xemacs-21.1.13/lisp/etags.el --- xemacs-21.1.12/lisp/etags.el Mon Feb 15 10:37:52 1999 +++ xemacs-21.1.13/lisp/etags.el Sun Nov 19 17:08:12 2000 @@ -405,7 +405,7 @@ (defun buffer-tag-table-files () "Returns a list of all files referenced by all TAGS tables that this buffer uses." - (apply #'nconc + (apply #'append (mapcar #'tag-table-files (buffer-tag-table-list)))) @@ -1064,7 +1064,7 @@ ;; Sample uses of find-tag-hook and find-tag-default-hook -;; This is wrong. We should either make this behaviour default and +;; This is wrong. We should either make this behavior default and ;; back it up, or not use it at all. For now, I've commented it out. ;; --hniksic diff -r -u -N xemacs-21.1.12/lisp/faces.el xemacs-21.1.13/lisp/faces.el --- xemacs-21.1.12/lisp/faces.el Fri Dec 11 05:04:10 1998 +++ xemacs-21.1.13/lisp/faces.el Thu Nov 16 22:21:24 2000 @@ -1235,7 +1235,7 @@ (defvar default-custom-frame-properties nil "The frame properties used for the global faces. -Frames not matching these propertiess should have frame local faces. +Frames not matching these properties should have frame local faces. The value should be nil, if uninitialized, or a plist otherwise. See `defface' for a list of valid keys and values for the plist.") diff -r -u -N xemacs-21.1.12/lisp/find-paths.el xemacs-21.1.13/lisp/find-paths.el --- xemacs-21.1.12/lisp/find-paths.el Sun Sep 19 22:20:52 1999 +++ xemacs-21.1.13/lisp/find-paths.el Thu Nov 16 22:21:24 2000 @@ -263,7 +263,7 @@ (defun paths-decode-directory-path (string &optional drop-empties) "Split STRING at path separators into a directory list. -Non-\"\" comonents are converted into directory form. +Non-\"\" components are converted into directory form. If DROP-EMPTIES is non-NIL, \"\" components are dropped from the output. Otherwise, they are left alone." (let* ((components (split-path string)) diff -r -u -N xemacs-21.1.12/lisp/font-lock.el xemacs-21.1.13/lisp/font-lock.el --- xemacs-21.1.12/lisp/font-lock.el Tue Feb 8 20:40:57 2000 +++ xemacs-21.1.13/lisp/font-lock.el Sun Nov 19 22:25:21 2000 @@ -849,11 +849,13 @@ ;;;###autoload (defun turn-on-font-lock () "Unconditionally turn on Font Lock mode." + (interactive) (font-lock-mode 1)) ;;;###autoload (defun turn-off-font-lock () "Unconditionally turn off Font Lock mode." + (interactive) (font-lock-mode 0)) ;;; FSF has here: @@ -1285,6 +1287,16 @@ ; ;; Clean up. ; (and prev (remove-text-properties prev end '(face nil))))) +(defun font-lock-lisp-like (mode) + ;; Note: (or (get mode 'font-lock-lisp-like) (string-match ...)) is + ;; not enough because the property needs to be able to specify a nil + ;; value. + (if (plist-member (symbol-plist mode) 'font-lock-lisp-like) + (get mode 'font-lock-lisp-like) + ;; If the property is not specified, guess. Similar logic exists + ;; in add-log, but I think this encompasses more modes. + (string-match "lisp\\|scheme" (symbol-name mode)))) + (defun font-lock-fontify-syntactically-region (start end &optional loudly) "Put proper face on each string and comment between START and END. START should be at the beginning of a line." @@ -1297,21 +1309,24 @@ (font-lock-unfontify-region start end loudly) (goto-char start) (if (> end (point-max)) (setq end (point-max))) - (syntactically-sectionize - #'(lambda (s e context depth) - (let (face) - (cond ((eq context 'string) - ;;#### Should only do this is Lisp-like modes! - (setq face - (if (= depth 1) - ;; really we should only use this if - ;; in position 3 depth 1, but that's - ;; too expensive to compute. - 'font-lock-doc-string-face - 'font-lock-string-face))) - ((or (eq context 'comment) - (eq context 'block-comment)) - (setq face 'font-lock-comment-face) + (let ((lisp-like (font-lock-lisp-like major-mode))) + (syntactically-sectionize + #'(lambda (s e context depth) + (let (face) + (cond ((eq context 'string) + (setq face + ;; #### It would be nice if we handled + ;; Python and other non-Lisp languages with + ;; docstrings correctly. + (if (and lisp-like (= depth 1)) + ;; really we should only use this if + ;; in position 3 depth 1, but that's + ;; too expensive to compute. + 'font-lock-doc-string-face + 'font-lock-string-face))) + ((or (eq context 'comment) + (eq context 'block-comment)) + (setq face 'font-lock-comment-face) ; ;; Don't fontify whitespace at the beginning of lines; ; ;; otherwise comment blocks may not line up with code. ; ;; (This is sometimes a good idea, sometimes not; in any @@ -1324,9 +1339,9 @@ ; (skip-chars-forward " \t\n") ; (setq s (point))) )) - (font-lock-set-face s e face))) - start end) - )) + (font-lock-set-face s e face))) + start end) + ))) ;;; Additional text property functions. diff -r -u -N xemacs-21.1.12/lisp/gnuserv.el xemacs-21.1.13/lisp/gnuserv.el --- xemacs-21.1.12/lisp/gnuserv.el Mon Feb 7 21:54:42 2000 +++ xemacs-21.1.13/lisp/gnuserv.el Thu Nov 16 22:21:24 2000 @@ -68,7 +68,7 @@ ;; ported the server-temp-file-regexp feature from server.el ;; ported server hooks from server.el ;; ported kill-*-query functions from server.el (and made it optional) -;; synced other behaviour with server.el +;; synced other behavior with server.el ;; ;; Jan Vroonhof ;; Customized. diff -r -u -N xemacs-21.1.12/lisp/info.el xemacs-21.1.13/lisp/info.el --- xemacs-21.1.12/lisp/info.el Mon Feb 7 21:54:42 2000 +++ xemacs-21.1.13/lisp/info.el Sat Dec 16 21:08:25 2000 @@ -22,7 +22,7 @@ ;; 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 +;; 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. @@ -396,10 +396,10 @@ `always' auto-generate a directory listing ignoring existing `dir' and `localdir' files `if-missing', the default, auto-generates a directory listing - if no `dir' or `localdir' file is present. Otherwise the + if no `dir' or `localdir' file is present. Otherwise the contents of any of these files is used instead. `if-outdated' auto-generates a directory listing if the `dir' - and `localdir' are either inexistent or outdated (touched + and `localdir' are either inexistent or outdated (touched less recently than an info file in the same directory)." :type '(choice (const :tag "never" never) (const :tag "always" always) @@ -410,21 +410,21 @@ (defcustom Info-save-auto-generated-dir nil "*Whether an auto-generated info directory listing should be saved. Possible values are: -nil or `never', the default, auto-generated info directory +nil or `never', the default, auto-generated info directory information will never be saved. `always', auto-generated info directory information will be saved to a `dir' file in the same directory overwriting it if it exists `conservative', auto-generated info directory information will be saved - to a `dir' file in the same directory but the user is asked before + to a `dir' file in the same directory but the user is asked before overwriting any existing file." :type '(choice (const :tag "never" never) (const :tag "always" always) (const :tag "conservative" conservative)) :group 'info) -(defvar Info-emacs-info-file-name "xemacs.info" - "The filename of the XEmacs info for -`Info-goto-emacs-command-node' (`\\\\[Info-goto-emacs-command-node]')") +(defconst Info-emacs-info-file-name "xemacs.info" + "The filename of the XEmacs info for `Info-goto-emacs-command-node' +(`\\\\[Info-goto-emacs-command-node]')") ;;;###autoload (defvar Info-directory-list nil @@ -441,12 +441,10 @@ (setq Info-directory-list (cons \"~/info\" Info-directory-list))") -(defcustom Info-localdir-heading-regexp - "^Locally installed XEmacs Packages:?" +;; This could as well be hard-coded since ${srcdir}/info/dir is in CVS --dv +(defconst Info-localdir-heading-regexp "^Local Packages:$" "The menu part of localdir files will be inserted below this topic -heading." - :type 'regexp - :group 'info) +heading.") (defface info-node '((t (:bold t :italic t))) "Face used for node links in info." @@ -456,23 +454,41 @@ "Face used for cross-references in info." :group 'info-faces) -;; Is this right for NT? .zip, with -c for to stdout, right? -(defvar Info-suffix-list '( ("" . nil) - (".info" . nil) - (".info.gz" . "gzip -dc %s") - (".info-z" . "gzip -dc %s") - (".info.Z" . "uncompress -c %s") - (".gz" . "gzip -dc %s") - (".Z" . "uncompress -c %s") - (".zip" . "unzip -c %s") ) - "List of file name suffixes and associated decoding commands. +;; This list is based on Karl Berry-s advice about extensions `info' itself +;; might encounter. --dv +(defcustom Info-suffix-list '(("" . nil) + (".info" . nil) + (".gz" . "gzip -dc %s") + (".info.gz" . "gzip -dc %s") + (".z" . "gzip -dc %s") + (".info.z" . "gzip -dc %s") + (".bz2" . "bzip2 -dc %s") + (".info.bz2" . "bzip2 -dc %s") + (".Z" . "uncompress -c %s") + (".info.Z" . "uncompress -c %s") + (".zip" . "unzip -c %s") + (".info.zip" . "unzip -c %s") + (".y" . "cat %s | unyabba") + ("info.y" . "cat %s | unyabba") + ;; These ones are for MS-DOS filenames. + (".inf" . nil) + (".igz" . "gzip -dc %s") + (".inz" . "gzip -c %s")) + "*List of file name suffixes and associated decoding commands. Each entry should be (SUFFIX . STRING); if STRING contains %s, that is changed to name of the file to decode, otherwise the file is given to -the command as standard input. If STRING is nil, no decoding is done.") +the command as standard input. If STRING is nil, no decoding is done." + :type '(repeat (cons (string :tag "suffix") + (choice :tag "command" + (const :tag "none" :value nil) + (string :tag "")))) + :group 'info) -(defvar Info-footnote-tag "Note" +(defcustom Info-footnote-tag "Note" "*Symbol that identifies a footnote or cross-reference. -All \"*Note\" references will be changed to use this word instead.") +All \"*Note\" references will be changed to use this word instead." + :type 'string + :group 'info) (defvar Info-current-file nil "Info file that Info is now looking at, or nil. @@ -498,6 +514,7 @@ (defvar Info-index-alternatives nil "List of possible matches for last Info-index command.") + (defvar Info-index-first-alternative nil) (defcustom Info-annotations-path '("~/.xemacs/info.notes" @@ -526,14 +543,16 @@ looking at that node, which is (dir)Top.  File: dir Node: Top This is the top of the INFO tree - This (the Directory node) gives a menu of major topics. + This (the Directory node) gives a menu of major topics. * Menu: The list of major topics begins on the next line. ") -(defvar Info-no-description-string "[No description available]" - "Description string for info files that have none") +(defcustom Info-no-description-string "[No description available]" + "*Description string for info files that have none" + :type 'string + :group 'info) ;;;###autoload (defun info (&optional file) @@ -596,13 +615,16 @@ (Info-find-file-node nil nodename no-going-back tryfile line)) ;; Convert filename to lower case if not found as specified. ;; Expand it, look harder... - ((let (temp temp-downcase found - (fname (substitute-in-file-name filename))) + ((let ((fname (substitute-in-file-name filename)) + temp found) (let ((dirs (cond - ((string-match "^\\./" fname) ; If specified name starts with `./' - (list default-directory)) ; then just try current directory. + ;; If specified name starts with `./', then just try + ;; current directory. No point in searching for an absolute + ;; file name + ((string-match "^\\./" fname) + (list default-directory)) ((file-name-absolute-p fname) - '(nil)) ; No point in searching for an absolute file name + '(nil)) (Info-additional-search-directory-list (append Info-directory-list Info-additional-search-directory-list)) @@ -610,14 +632,9 @@ ;; Search the directory list for file FNAME. (while (and dirs (not found)) (setq temp (expand-file-name fname (car dirs))) - (setq temp-downcase - (expand-file-name (downcase fname) (car dirs))) - (if (equal temp-downcase temp) (setq temp-downcase nil)) - ;; Try several variants of specified name. - ;; Try downcasing, appending a suffix, or both. - (setq found (Info-suffixed-file temp temp-downcase)) + (setq found (Info-suffixed-file temp)) (setq dirs (cdr dirs))) - (if found + (if found (progn (setq filename (expand-file-name found)) t)))) (Info-find-file-node filename nodename no-going-back tryfile line)) @@ -798,7 +815,7 @@ (defun Info-insert-dir () "Construct the Info directory node by merging the files named -\"dir\" or \"localdir\" from the directories in `Info-directory-list' +\"dir\" or \"localdir\" from the directories in `Info-directory-list'. The \"dir\" files will take precedence in cases where both exist. It sets the *info* buffer's `default-directory' to the first directory we actually get any text from." @@ -824,25 +841,26 @@ (let ((truename (file-truename (expand-file-name (car dirs))))) (or (member truename dirs-done) (member (directory-file-name truename) dirs-done) - ;; Try several variants of specified name. - ;; Try upcasing, appending `.info', or both. - (let* (buf - file - (attrs - (or - (progn (setq file (expand-file-name "dir" truename)) - (file-attributes file)) - (progn (setq file (expand-file-name "DIR" truename)) - (file-attributes file)) - (progn (setq file (expand-file-name "dir.info" truename)) - (file-attributes file)) - (progn (setq file (expand-file-name "DIR.INFO" truename)) - (file-attributes file)) - (progn (setq file (expand-file-name "localdir" truename)) - (file-attributes file)) - (progn (setq file (expand-file-name "dir" truename)) - nil) - ))) + ;; Karl Berry recently added the ability all possibilities for + ;; extension as for normal info files. This code however is + ;; still unsatisfactory: if one day, we find a compressed dir + ;; file (which looks possible), we should be able to handle it + ;; (which means decompress and read it, update it, save and + ;; recompress it). --dv + (let ((trials '("dir" "DIR" + "dir.info" "DIR.INFO" + "dir.inf" "DIR.INF" + "localdir" "LOCALDIR" + "localdir.info" "LOCALDIR.INFO" + "localdir.inf" "LOCALDIR.INF")) + buf file attrs) + (catch 'found + (while (setq file (pop trials)) + (setq file (expand-file-name file truename)) + (and (setq attrs (file-attributes file)) + (throw 'found t)))) + (unless file + (setq file (expand-file-name "dir" truename))) (setq dirs-done (cons truename (cons (directory-file-name truename) @@ -859,7 +877,7 @@ (if (string-match "localdir" file) "localdir" "info dir")))) - (if (not buf) + (if (not buf) (insert-file-contents file)) (if (string-match "localdir" (buffer-name)) (setq lbuffers (cons (current-buffer) lbuffers)) @@ -870,13 +888,13 @@ Info-dir-file-attributes))))))) (or (cdr dirs) (setq Info-dir-contents-directory (car dirs))) (setq dirs (cdr dirs)))) - + ;; ensure that the localdir files are inserted last, and reverse ;; the list of them so that when they get pushed in, they appear ;; in the same order they got specified in the path, from top to ;; bottom. (nconc buffers (reverse lbuffers)) - + (or buffers (error "Can't find the Info directory node")) ;; Distinguish the dir file that comes with Emacs from all the @@ -945,7 +963,7 @@ (setq end (point)) (setq nodes (cons (list nodename other beg end) nodes)))))) (setq others (cdr others)))) - + ;; Add to the main menu a menu item for each other node. (re-search-forward "^\\* Menu:" nil t) (forward-line 1) @@ -998,14 +1016,59 @@ (setq default-directory Info-dir-contents-directory) (setq buffer-file-name (caar Info-dir-file-attributes))) +(defmacro Info-directory-files (dir-file &optional all full nosort files-only) + "Return a list of Info files living in the same directory as DIR-FILE. +This list actually contains the files living in this directory, except for +the dir file itself and the secondary info files (foo-1 foo-2 etc). + +If the optional argument ALL is non nil, the secondary info files are also +included in the list. + +Please refer to the function `directory-files' for the meaning of the other +optional arguments." + `(let* ((dir (file-name-directory ,dir-file)) + (all-files (remove ,dir-file (directory-files dir ',full nil ',nosort + ',files-only)))) + (setq all-files + (if ,full + (remove (concat dir ".") + (remove (concat dir "..") all-files)) + (remove "." + (remove ".." all-files)))) + (if ,all + all-files + (let ((suff-match + (concat "-[0-9]+\\(" + ;; Extract all known compression suffixes from + ;; Info-suffix-list. These suffixes can typically be + ;; found in entries of the form `.info.something'. + (let ((suff-list Info-suffix-list) + suff regexp) + (while (setq suff (pop suff-list)) + (and (string-match "^\\.info" (car suff)) + (setq regexp (concat regexp + (regexp-quote + (substring + (car suff) 5)) + (and suff-list "\\|"))))) + regexp) + "\\)?$")) + info-files file) + (while (setq file (pop all-files)) + (or (string-match suff-match file) + (push file info-files))) + (reverse info-files) + )) + )) + (defun Info-maybe-update-dir (file) "Rebuild dir or localdir according to `Info-auto-generate-directory'." (unless (or (not (file-exists-p (file-name-directory file))) - (null (directory-files (file-name-directory file) nil "\\.info"))) + (null (Info-directory-files file 'all))) (if (not (find-buffer-visiting file)) (if (not (file-exists-p file)) (if (or (eq Info-auto-generate-directory 'always) - (eq Info-auto-generate-directory 'if-missing)) + (eq Info-auto-generate-directory 'if-missing)) (Info-build-dir-anew (file-name-directory file))) (if (or (eq Info-auto-generate-directory 'always) (and (eq Info-auto-generate-directory 'if-outdated) @@ -1020,25 +1083,20 @@ dir or localdir are outdated when an info file in the same directory has been modified more recently." (let ((dir-mod-time (nth 5 (file-attributes file))) - f-mod-time - newer) + f-mod-time newer) (setq Info-dir-newer-info-files nil) - (mapcar + (mapcar '(lambda (f) (prog2 (setq f-mod-time (nth 5 (file-attributes f))) (setq newer (or (> (car f-mod-time) (car dir-mod-time)) (and (= (car f-mod-time) (car dir-mod-time)) - (> (car (cdr f-mod-time)) (car (cdr dir-mod-time)))))) - (if (and (file-readable-p f) - newer) - (setq Info-dir-newer-info-files + (> (car (cdr f-mod-time)) + (car (cdr dir-mod-time)))))) + (if (and (file-readable-p f) newer) + (setq Info-dir-newer-info-files (cons f Info-dir-newer-info-files))))) - (directory-files (file-name-directory file) - 'fullname - ".*\\.info\\(.gz\\|.Z\\|-z\\|.zip\\)?$" - 'nosort - t)) + (Info-directory-files file nil 'fullname 'nosort t)) Info-dir-newer-info-files)) (defun Info-extract-dir-entry-from (file) @@ -1066,17 +1124,18 @@ (save-restriction (narrow-to-region beg end) (goto-char beg) - (while (re-search-forward "^\\* \\([^:]+\\):\\([ \t]*(\\([^)]*\\))\\w*\\.\\|:\\)" nil t) + (while (re-search-forward + "^\\* \\([^:]+\\):\\([ \t]*(\\([^)]*\\))\\w*\\.\\|:\\)" nil t) (setq entry (list (match-string 2) (match-string 1) (downcase (or (match-string 3) (match-string 1))))) - (setq entry - (cons (nreverse - (cdr - (nreverse - (split-string - (buffer-substring + (setq entry + (cons (nreverse + (cdr + (nreverse + (split-string + (buffer-substring (re-search-forward "[ \t]*" nil t) (or (and (re-search-forward "^[^ \t]" nil t) (goto-char (match-beginning 0))) @@ -1097,7 +1156,7 @@ (if (> len description-col) (setq description-col len))) entries) - (setq description-col (+ 5 description-col)) + (setq description-col (+ 5 description-col)) (mapcar '(lambda (e) (setq e (cdr e)) ; Drop filename (insert "* " (car e) ":" (car (cdr e))) @@ -1112,37 +1171,32 @@ (defun Info-build-dir-anew (directory) "Build info directory information for DIRECTORY. -The generated directory listing may be saved to a `dir' according +The generated directory listing may be saved to a `dir' according to the value of `Info-save-auto-generated-dir'" (save-excursion (let* ((dirfile (expand-file-name "dir" directory)) (to-temp (or (null Info-save-auto-generated-dir) (eq Info-save-auto-generated-dir 'never) (and (not (file-writable-p dirfile)) - (message "File not writable %s. Using temporary." dirfile)))) - (info-files - (directory-files directory - 'fullname - ".*\\.info\\(.gz\\|.Z\\|-z\\|.zip\\)?$" - nil - t))) + (message "File not writable %s. Using temporary." + dirfile)))) + (info-files (Info-directory-files dirfile nil 'fullname nil t))) (if to-temp (message "Creating temporary dir in %s..." directory) (message "Creating %s..." dirfile)) (set-buffer (find-file-noselect dirfile t)) (setq buffer-read-only nil) (erase-buffer) - (insert Info-dir-prologue - "Info files in " directory ":\n\n") - (Info-dump-dir-entries - (mapcar + (insert Info-dir-prologue "Info files in " directory ":\n\n") + (Info-dump-dir-entries + (mapcar '(lambda (f) (or (Info-extract-dir-entry-from f) (list 'dummy - (progn - (string-match "\\(.*\\)\\.info\\(.gz\\|.Z\\|-z\\|.zip\\)?$" - (file-name-nondirectory f)) - (capitalize (match-string 1 (file-name-nondirectory f)))) + (progn (string-match "\\([^.]*\\)\\(\\..*\\)?$" + (file-name-nondirectory f)) + (capitalize + (match-string 1 (file-name-nondirectory f)))) ":" (list Info-no-description-string)))) info-files)) @@ -1156,10 +1210,10 @@ (defun Info-rebuild-dir (file) "Build info directory information in the directory of dir FILE. -Description of info files are merged from the info files in the +Description of info files are merged from the info files in the directory and the contents of FILE with the description in info files -taking precedence over descriptions in FILE. -The generated directory listing may be saved to a `dir' according to +taking precedence over descriptions in FILE. +The generated directory listing may be saved to a `dir' according to the value of `Info-save-auto-generated-dir' " (save-excursion (save-restriction @@ -1168,7 +1222,7 @@ file-dir-entry mark next-section not-first-section - (to-temp + (to-temp (or (null Info-save-auto-generated-dir) (eq Info-save-auto-generated-dir 'never) (and (eq Info-save-auto-generated-dir 'always) @@ -1176,9 +1230,10 @@ (message "File not writable %s. Using temporary." file)) (and (eq Info-save-auto-generated-dir 'conservative) (or (and (not (file-writable-p file)) - (message "File not writable %s. Using temporary." file)) - (not (y-or-n-p - (message "%s is outdated. Overwrite ? " + (message + "File not writable %s. Using temporary." file)) + (not (y-or-n-p + (message "%s is outdated. Overwrite ? " file)))))))) (set-buffer (find-file-noselect file t)) (setq buffer-read-only nil) @@ -1194,40 +1249,43 @@ (match-beginning 0)))) (throw 'done nil)) (setq dir-full-contents (Info-parse-dir-entries mark (point-max))) - (setq next-section (or (and (re-search-forward "^[^* \t].*:[ \t]*$" nil t) + (setq next-section (or (and (re-search-forward + "^[^* \t].*:[ \t]*$" nil t) (match-beginning 0)) (point-max))) (while next-section (narrow-to-region mark next-section) - (setq dir-section-contents (nreverse (Info-parse-dir-entries (point-min) - (point-max)))) - (mapcar '(lambda (file) - (setq dir-entry (assoc (downcase - (file-name-sans-extension - (file-name-nondirectory file))) - dir-section-contents) - file-dir-entry (Info-extract-dir-entry-from file)) - (if dir-entry - (if file-dir-entry - ;; A dir entry in the info file takes precedence over an - ;; existing entry in the dir file - (setcdr dir-entry (cdr file-dir-entry))) - (unless (or not-first-section - (assoc (downcase - (file-name-sans-extension - (file-name-nondirectory file))) - dir-full-contents)) - (if file-dir-entry - (setq dir-section-contents (cons file-dir-entry - dir-section-contents)) - (setq dir-section-contents - (cons (list 'dummy - (capitalize (file-name-sans-extension - (file-name-nondirectory file))) - ":" - (list Info-no-description-string)) - dir-section-contents)))))) - Info-dir-newer-info-files) + (setq dir-section-contents (nreverse (Info-parse-dir-entries + (point-min) (point-max)))) + (mapcar + '(lambda (file) + (setq dir-entry (assoc (downcase + (file-name-sans-extension + (file-name-nondirectory file))) + dir-section-contents) + file-dir-entry (Info-extract-dir-entry-from file)) + (if dir-entry + (if file-dir-entry + ;; A dir entry in the info file takes precedence over + ;; an existing entry in the dir file + (setcdr dir-entry (cdr file-dir-entry))) + (unless (or not-first-section + (assoc (downcase + (file-name-sans-extension + (file-name-nondirectory file))) + dir-full-contents)) + (if file-dir-entry + (setq dir-section-contents + (cons file-dir-entry dir-section-contents)) + (setq dir-section-contents + (cons (list 'dummy + (capitalize (file-name-sans-extension + (file-name-nondirectory + file))) + ":" + (list Info-no-description-string)) + dir-section-contents)))))) + Info-dir-newer-info-files) (delete-region (point-min) (point-max)) (Info-dump-dir-entries (nreverse dir-section-contents)) (widen) @@ -1236,7 +1294,8 @@ (or (setq mark (and (re-search-forward "^\\* " nil t) (match-beginning 0))) (throw 'done nil)) - (setq next-section (or (and (re-search-forward "^[^* \t].*:[ \t]*$" nil t) + (setq next-section (or (and (re-search-forward + "^[^* \t].*:[ \t]*$" nil t) (match-beginning 0)) (point-max)))) (setq not-first-section t))) @@ -1247,13 +1306,14 @@ (save-buffer) (message "Rebuilding %s...done" file)))))) -;;;###autoload +;;;###autoload (defun Info-batch-rebuild-dir () - "(Re)build info `dir' files in the directories remaining on the command line. -Use this from the command line, with `-batch'; -it won't work in an interactive Emacs. -Each file is processed even if an error occurred previously. -For example, invoke \"xemacs -batch -f Info-batch-rebuild-dir /usr/local/info\"" + "(Re)build `dir' files in the directories remaining on the command line. +Use this from the command line, with `-batch', it won't work in an +interactive XEmacs. + +Each file is processed even if an error occurred previously. For example, +invoke \"xemacs -batch -f Info-batch-rebuild-dir /usr/local/info\"" ;; command-line-args-left is what is left of the command line (from ;; startup.el) (defvar command-line-args-left) ; Avoid 'free variable' warning @@ -1266,8 +1326,9 @@ (message "Warning: Skipped %s. Not a directory." (car command-line-args-left)) (setq dir (expand-file-name "dir" (car command-line-args-left))) - (setq localdir (expand-file-name "localdir" (car command-line-args-left))) - (cond + (setq localdir (expand-file-name "localdir" + (car command-line-args-left))) + (cond ((file-exists-p dir) (Info-rebuild-dir dir)) ((file-exists-p localdir) @@ -1330,7 +1391,8 @@ (Info-insert-file-contents (Info-suffixed-file (expand-file-name lastfilename (file-name-directory - Info-current-file))) + Info-current-file)) + 'exact) t) (set-buffer-modified-p nil) (setq Info-current-subfile lastfilename))) @@ -1338,36 +1400,90 @@ (search-forward "\n\^_") (+ (- nodepos lastfilepos) (point)))) -(defun Info-suffixed-file (name &optional name2) - "Look for NAME with each of the `Info-suffix-list' extensions in -turn. Optional NAME2 is the name of a fallback info file to check -for; usually a downcased version of NAME." - (let ((suff Info-suffix-list) - (found nil) - file file2) - (while (and suff (not found)) - (setq file (concat name (caar suff)) - file2 (and name2 (concat name2 (caar suff)))) - (cond - ((file-regular-p file) - (setq found file)) - ((and file2 (file-regular-p file2)) - (setq found file2)) +(defun Info-all-case-regexp (str) + (let ((regexp "") + (len (length str)) + (i 0) + c) + (while (< i len) + (setq c (aref str i)) + (cond ((or (and (>= c ?A) (<= c ?Z)) + (and (>= c ?a) (<= c ?z))) + (setq regexp (concat regexp + "[" + (char-to-string (downcase c)) + "\\|" + (char-to-string (upcase c)) + "]"))) (t - (setq suff (cdr suff))))) - (or found - (and name (when (file-regular-p name) - name)) - (and name2 (when (file-regular-p name2) - name2))))) + (setq regexp (concat regexp (char-to-string c))))) + (setq i (1+ i))) + regexp)) + +(defun Info-suffixed-file (name &optional exact) + "Look for an info file named NAME. This function tries to be smart in +finding the file corresponding to NAME: if it doesn't exist, several +variants are looked for, notably by appending suffixes from +`Info-suffix-list' and by trying to change the characters case in NAME. + +The optional argument EXACT prevents this function from trying different case +versions of NAME. Only the suffixes are tried." + (catch 'found + ;; First, try NAME alone: + (and (file-regular-p name) (throw 'found name)) + ;; Then, try different variants + (let ((suff-match (concat "\\(" + (let ((suff-list Info-suffix-list) + suff regexp) + (while (setq suff (pop suff-list)) + (setq regexp + (concat regexp + (regexp-quote (car suff)) + (and suff-list "\\|")))) + regexp) + "\\)?$")) + (dir (file-name-directory name)) + file files) + (setq name (file-name-nondirectory name)) + (setq files + (condition-case data ;; protect against invalid directory + ;; First, try NAME[.] + (append + (directory-files dir 'fullname + (concat "^" (regexp-quote name) suff-match) + nil t) + (if exact + nil + ;; Then, try to match the name independantly of the + ;; characters case. + (directory-files dir 'fullname + (Info-all-case-regexp + (concat "^" + (regexp-quote name) + suff-match)) + nil t))) + (t + (display-warning 'info + (format "directory `%s' error: %s" dir data)) + nil))) + (while (setq file (pop files)) + (and (file-regular-p file) + (throw 'found file))) + ))) (defun Info-insert-file-contents (file &optional visit) (setq file (expand-file-name file default-directory)) - (let ((suff Info-suffix-list)) - (while (and suff (or (<= (length file) (length (car (car suff)))) - (not (equal (substring file - (- (length (car (car suff))))) - (car (car suff)))))) + (let ((suff Info-suffix-list) + len) + (while (and suff + (setq len (length (car (car suff)))) + (or (<= (length file) len) + (not (or + (equal (substring file (- len)) + (car (car suff))) + (equal (substring file (- len)) + (upcase (car (car suff))))) + ))) (setq suff (cdr suff))) (if (stringp (cdr (car suff))) (let ((command (if (string-match "%s" (cdr (car suff))) @@ -1437,9 +1553,10 @@ (concat "(" (if Info-current-file - (let ((name (file-name-nondirectory Info-current-file))) - (if (string-match "\\.info$" name) - (substring name 0 -5) + (let ((name (file-name-nondirectory + Info-current-file))) + (if (string-match "^\\([^.]*\\)\\..*$" name) + (match-string 1 name) name)) "") ")" @@ -1560,7 +1677,7 @@ (forward-line 1) (if (re-search-backward "Node: *\\([^,\n]*\\) *[,\n\t]" beg t) - (setq compl + (setq compl (cons (list (buffer-substring (match-beginning 1) (match-end 1))) compl)))))))) @@ -1591,7 +1708,8 @@ (condition-case nil (progn (re-search-forward regexp) (setq found (point))) (search-failed nil))))) - (if (not found) ;can only happen in subfile case -- else would have erred + (if (not found) + ;; can only happen in subfile case -- else would have erred (unwind-protect (let ((list ())) (set-buffer (marker-buffer Info-tag-table-marker)) @@ -1608,8 +1726,9 @@ (re-search-forward "\\(^.*\\): [0-9]+$") (goto-char (+ (match-end 1) 2)) (setq list (cons (cons (read (current-buffer)) - (buffer-substring (match-beginning 1) - (match-end 1))) + (buffer-substring + (match-beginning 1) + (match-end 1))) list)) (goto-char (1+ (match-end 0)))) (setq list (nreverse list) @@ -1636,7 +1755,7 @@ (Info-history-add ofile onode opoint))))) ;; Extract the value of the node-pointer named NAME. -;; If there is none, use ERRORNAME in the error message; +;; If there is none, use ERRORNAME in the error message; ;; if ERRORNAME is nil, just return nil. (defun Info-extract-pointer (name &optional errorname) (save-excursion @@ -1898,7 +2017,7 @@ ;; there is a problem here in that if several menu items have the same ;; name you can only go to the node of the first with this command. (Info-goto-node (Info-extract-menu-item menu-item) nil t)) - + (defun Info-extract-menu-item (menu-item &optional noerror) (save-excursion (goto-char (point-min)) @@ -2247,7 +2366,7 @@ "Look up an Emacs Lisp function in the Elisp manual in the Info system. This command is designed to be used whether you are already in Info or not." (interactive (let ((fn (function-at-point)) - (enable-recursive-minibuffers t) + (enable-recursive-minibuffers t) val) (setq val (completing-read (format "Look up Emacs Lisp function%s: " @@ -2320,6 +2439,7 @@ (defvar Info-annotate-map nil "Local keymap used within `a' command of Info.") + (if Info-annotate-map nil ;; (setq Info-annotate-map (nconc (make-sparse-keymap) text-mode-map)) @@ -2635,6 +2755,7 @@ (defvar Info-mode-map nil "Keymap containing Info commands.") + (if Info-mode-map nil (setq Info-mode-map (make-sparse-keymap)) @@ -2793,6 +2914,7 @@ (defvar Info-edit-map nil "Local keymap used within `e' command of Info.") + (if Info-edit-map nil ;; XEmacs: remove FSF stuff @@ -2932,19 +3054,22 @@ (while (looking-at "[ \t]*[^:, \t\n]+:[ \t]+\\([^:,\t\n]+\\),?\n?") (goto-char (match-end 0)) - (Info-highlight-region (match-beginning 1) (match-end 1) 'info-xref)))) + (Info-highlight-region (match-beginning 1) (match-end 1) + 'info-xref)))) ;; Now get the xrefs in the body (goto-char (point-min)) (while (re-search-forward xref-regexp nil t) (if (= (char-after (1- (match-beginning 0))) ?\") ; hack nil - (Info-highlight-region (match-beginning 1) (match-end 1) 'info-xref))) + (Info-highlight-region (match-beginning 1) (match-end 1) + 'info-xref))) ;; then highlight the nodes in the menu. (goto-char (point-min)) (if (and (search-forward "\n* menu:" nil t)) (while (re-search-forward "^\\* \\([^:\t\n]*\\):?:[ \t\n]" nil t) - (Info-highlight-region (match-beginning 1) (match-end 1) 'info-node))) + (Info-highlight-region (match-beginning 1) (match-end 1) + 'info-node))) (set-buffer-modified-p nil)))) (defun Info-construct-menu (&optional event) @@ -2953,7 +3078,7 @@ Used to construct the menubar submenu and popup menu." (or event (setq event (point))) (let ((case-fold-search t) - (xref-regexp (concat "\\*" + (xref-regexp (concat "\\*" (regexp-quote Info-footnote-tag) "[ \n\t]*\\([^:]*\\):")) up-p prev-p next-p menu xrefs subnodes in) diff -r -u -N xemacs-21.1.12/lisp/minibuf.el xemacs-21.1.13/lisp/minibuf.el --- xemacs-21.1.12/lisp/minibuf.el Mon Feb 7 21:54:43 2000 +++ xemacs-21.1.13/lisp/minibuf.el Thu Nov 16 22:21:25 2000 @@ -41,7 +41,7 @@ ;;; Code: (defgroup minibuffer nil - "Controling the behaviour of the minibuffer." + "Controling the behavior of the minibuffer." :group 'environment) @@ -52,7 +52,7 @@ (defcustom minibuffer-history-uniquify t "*Non-nil means when adding an item to a minibuffer history, remove -previous occurances of the same item from the history list first, +previous occurrences of the same item from the history list first, rather than just consing the new element onto the front of the list." :type 'boolean :group 'minibuffer) diff -r -u -N xemacs-21.1.12/lisp/mouse.el xemacs-21.1.13/lisp/mouse.el --- xemacs-21.1.12/lisp/mouse.el Tue Jun 30 02:35:24 1998 +++ xemacs-21.1.13/lisp/mouse.el Sun Dec 17 22:03:36 2000 @@ -68,13 +68,13 @@ :group 'mouse) (defcustom mouse-highlight-text 'context - "*Choose the default double-click highlighting behaviour. + "*Choose the default double-click highlighting behavior. If set to `context', double-click will highlight words when the mouse is at a word character, or a symbol if the mouse is at a symbol character. If set to `word', double-click will always attempt to highlight a word. If set to `symbol', double-click will always attempt to highlight a - symbol (the default behaviour in previous XEmacs versions)." + symbol (the default behavior in previous XEmacs versions)." :type '(choice (const context) (const word) (const symbol)) @@ -676,7 +676,7 @@ (let* ((edges (window-pixel-edges window)) (row (event-y-pixel event)) (text-start (nth 1 edges)) - (text-end (+ (nth 3 edges)))) + (text-end (nth 3 edges))) (if (or (< row text-start) (> row text-end)) nil ;; Scroll @@ -1414,7 +1414,7 @@ ;; (defun drag-window-divider (event) "Handle resizing windows by dragging window dividers. -This is an intenal function, normally bound to button1 event in +This is an internal function, normally bound to button1 event in window-divider-map. You would not call it, but you may bind it to other mouse buttons." (interactive "e") diff -r -u -N xemacs-21.1.12/lisp/mule/mule-cmds.el xemacs-21.1.13/lisp/mule/mule-cmds.el --- xemacs-21.1.12/lisp/mule/mule-cmds.el Sun Mar 5 23:26:08 2000 +++ xemacs-21.1.13/lisp/mule/mule-cmds.el Thu Nov 16 22:21:27 2000 @@ -551,7 +551,7 @@ "Normal hook run just after an input method insert some chunk of text.") (defvar input-method-exit-on-invalid-key nil - "This flag controls the behaviour of an input method on invalid key input. + "This flag controls the behavior of an input method on invalid key input. Usually, when a user types a key which doesn't start any character handled by the input method, the key is handled by turning off the input method temporalily. After the key is handled, the input method is @@ -613,7 +613,7 @@ (interactive (list (read-language-name 'documentation - "Describe language environment (default, current choise): "))) + "Describe language environment (default, current choice): "))) (if (null language-name) (setq language-name current-language-environment)) (if (or (null language-name) diff -r -u -N xemacs-21.1.12/lisp/mule/mule-coding.el xemacs-21.1.13/lisp/mule/mule-coding.el --- xemacs-21.1.12/lisp/mule/mule-coding.el Wed Feb 17 08:59:34 1999 +++ xemacs-21.1.13/lisp/mule/mule-coding.el Sat Jan 6 22:21:57 2001 @@ -176,8 +176,14 @@ ;; so that the remaining Lisp files can contain extended characters. ;; (They will be in ISO-7 format) -(set-coding-priority-list '(iso-8-2 iso-8-designate iso-8-1 - iso-7 iso-lock-shift no-conversion)) +(set-coding-priority-list '(iso-8-2 + iso-8-1 + iso-7 + no-conversion + ;; these two can cause core dump in some + ;; circumstances + iso-lock-shift + iso-8-designate)) (set-coding-category-system 'iso-7 'iso-2022-7) (set-coding-category-system 'iso-8-designate 'ctext) diff -r -u -N xemacs-21.1.12/lisp/mule/mule-init.el xemacs-21.1.13/lisp/mule/mule-init.el --- xemacs-21.1.12/lisp/mule/mule-init.el Wed Feb 17 08:59:34 1999 +++ xemacs-21.1.13/lisp/mule/mule-init.el Thu Nov 16 22:21:27 2000 @@ -76,7 +76,8 @@ (defvar auto-language-alist '(("^ja" . "Japanese") - ("^zh" . "Chinese") + ("^zh_CN" . "Chinese-GB") + ("^zh_TW" . "Chinese-BIG5") ("^ko" . "Korean")) "Alist of LANG patterns vs. corresponding language environment. Each element looks like (REGEXP . LANGUAGE-ENVIRONMENT). diff -r -u -N xemacs-21.1.12/lisp/mwheel.el xemacs-21.1.13/lisp/mwheel.el --- xemacs-21.1.12/lisp/mwheel.el Mon Mar 9 23:11:56 1998 +++ xemacs-21.1.13/lisp/mwheel.el Sun Nov 19 22:25:21 2000 @@ -100,6 +100,7 @@ ;;;###autoload (defun mwheel-install () "Enable mouse wheel support." + (interactive) (let ((keys '([(mouse-4)] [(shift mouse-4)] [(mouse-5)] [(shift mouse-5)]))) ;; This condition-case is here because Emacs 19 will throw an error ;; if you try to define a key that it does not know about. I for one diff -r -u -N xemacs-21.1.12/lisp/obsolete.el xemacs-21.1.13/lisp/obsolete.el --- xemacs-21.1.12/lisp/obsolete.el Thu May 14 00:46:09 1998 +++ xemacs-21.1.13/lisp/obsolete.el Thu Nov 16 22:21:25 2000 @@ -673,7 +673,7 @@ ;; ### This function is not compatible with FSF in some cases. Hard ;; to fix, because it is hard to trace the logic of the FSF function. -;; In case we need the exact behaviour, we can always copy the FSF +;; In case we need the exact behavior, we can always copy the FSF ;; version, which is very long and does lots of unnecessary stuff. (defun truncate-string-to-width (str end-column &optional start-column padding) "Truncate string STR to end at column END-COLUMN. diff -r -u -N xemacs-21.1.12/lisp/package-admin.el xemacs-21.1.13/lisp/package-admin.el --- xemacs-21.1.12/lisp/package-admin.el Mon Feb 15 11:41:29 1999 +++ xemacs-21.1.13/lisp/package-admin.el Sat Dec 16 21:08:25 2000 @@ -165,13 +165,13 @@ (featurep package-feature) (setq autoload-dir (feature-file package-feature)) (setq autoload-dir (file-name-directory autoload-dir)) - (member autoload-dir late-package-load-path)) + (member autoload-dir (append early-package-load-path late-package-load-path))) ;; Find the corresonding entry in late-package (setq pkg-dir (car-safe (member-if (lambda (h) (string-match (concat "^" (regexp-quote h)) autoload-dir)) - late-packages)))) + (append (cdr early-packages) late-packages))))) (if pkg-dir pkg-dir ;; Ok we need to guess diff -r -u -N xemacs-21.1.12/lisp/paragraphs.el xemacs-21.1.13/lisp/paragraphs.el --- xemacs-21.1.12/lisp/paragraphs.el Fri Nov 21 00:27:35 1997 +++ xemacs-21.1.13/lisp/paragraphs.el Sun Dec 17 22:03:36 2000 @@ -126,7 +126,9 @@ ;; XEmacs -- use purecopy (defconst paragraph-separate (purecopy "[ \t\f]*$") "\ *Regexp for beginning of a line that separates paragraphs. -If you change this, you may have to change paragraph-start also. +If you change this, you may have to change `paragraph-start' also. + +A line matching this is not part of any paragraph. This is matched against the text at the left margin, which is not necessarily the beginning of the line, so it should not use \"^\" as an anchor. This @@ -351,7 +353,7 @@ With negative argument, move backward repeatedly to `sentence-beginning'. The variable `sentence-end' is a regular expression that matches ends of -sentences. Also, every paragraph boundary terminates sentences as well." +sentences. A paragraph boundary also terminates a sentence." (interactive "_p") ; XEmacs (or arg (setq arg 1)) (while (< arg 0) diff -r -u -N xemacs-21.1.12/lisp/simple.el xemacs-21.1.13/lisp/simple.el --- xemacs-21.1.12/lisp/simple.el Sun Sep 19 22:20:52 1999 +++ xemacs-21.1.13/lisp/simple.el Sat Jan 6 22:21:55 2001 @@ -2253,7 +2253,8 @@ :group 'fill-comments) (defun indent-for-comment () - "Indent this line's comment to comment column, or insert an empty comment." + "Indent this line's comment to comment column, or insert an empty +comment. Comments starting in column 0 are not moved." (interactive "*") (let* ((empty (save-excursion (beginning-of-line) (looking-at "[ \t]*$"))) @@ -2280,13 +2281,19 @@ (skip-syntax-backward "^ " (match-beginning 0))))) (setq begpos (point)) ;; Compute desired indent. - (if (= (current-column) - (setq indent (funcall comment-indent-function))) - (goto-char begpos) + ;; XEmacs change: Preserve indentation of comments starting in + ;; column 0, as documented. + (cond + ((= (current-column) 0) + (goto-char begpos)) + ((= (current-column) + (setq indent (funcall comment-indent-function))) + (goto-char begpos)) + (t ;; If that's different from current, change it. (skip-chars-backward " \t") (delete-region (point) begpos) - (indent-to indent)) + (indent-to indent))) ;; An existing comment? (if cpos (progn (goto-char cpos) @@ -2322,7 +2329,7 @@ (defun kill-comment (arg) "Kill the comment on this line, if any. With argument, kill comments on that many lines starting with this one." - ;; this function loses in a lot of situations. it incorrectly recognises + ;; this function loses in a lot of situations. it incorrectly recognizes ;; comment delimiters sometimes (ergo, inside a string), doesn't work ;; with multi-line comments, can kill extra whitespace if comment wasn't ;; through end-of-line, et cetera. @@ -2610,7 +2617,7 @@ (= (point) fill-point)) ;; 1999-09-17 hniksic: turn off Kinsoku until ;; it's debugged. - (indent-new-comment-line) + (funcall comment-line-break-function) ;; 97/3/14 jhod: Kinsoku processing ; ;(indent-new-comment-line) ; (let ((spacep (memq (char-before (point)) '(?\ ?\t)))) @@ -2760,6 +2767,7 @@ (defun turn-on-auto-fill () "Unconditionally turn on Auto Fill mode." + (interactive) (auto-fill-mode 1)) (defun set-fill-column (arg) @@ -3898,7 +3906,7 @@ "List of classes of warnings that shouldn't be displayed. If any of the CLASS symbols associated with a warning is the same as any of the symbols listed here, the warning will not be displayed. -The warning will still logged in the *Warnings* buffer (unless also +The warning will still be logged in the *Warnings* buffer (unless also contained in `log-warning-suppressed-classes'), but the buffer will not be automatically popped up. diff -r -u -N xemacs-21.1.12/lisp/startup.el xemacs-21.1.13/lisp/startup.el --- xemacs-21.1.12/lisp/startup.el Sun Jun 13 01:16:45 1999 +++ xemacs-21.1.13/lisp/startup.el Sun Nov 19 22:25:22 2000 @@ -419,12 +419,13 @@ (setq default-directory (abbreviate-file-name default-directory)) ;; Specify the file for recording all the auto save files of ;; this session. This is used by recover-session. - (setq auto-save-list-file-name - (expand-file-name - (format "%s%d-%s" - auto-save-list-file-prefix - (emacs-pid) - (system-name)))) + (if auto-save-list-file-prefix + (setq auto-save-list-file-name + (expand-file-name + (format "%s%d-%s" + auto-save-list-file-prefix + (emacs-pid) + (system-name))))) (run-hooks 'emacs-startup-hook) (and term-setup-hook (run-hooks 'term-setup-hook)) diff -r -u -N xemacs-21.1.12/lisp/subr.el xemacs-21.1.13/lisp/subr.el --- xemacs-21.1.12/lisp/subr.el Sat Mar 4 12:13:09 2000 +++ xemacs-21.1.13/lisp/subr.el Sun Nov 19 22:25:22 2000 @@ -297,10 +297,14 @@ If PATTERN is omitted, it defaults to \"[ \\f\\t\\n\\r\\v]+\"." (or pattern (setq pattern "[ \f\t\n\r\v]+")) - ;; The FSF version of this function takes care not to cons in case - ;; of infloop. Maybe we should synch? - (let (parts (start 0)) - (while (string-match pattern string start) + (let (parts (start 0) (len (length string))) + (if (string-match pattern string) + (setq parts (cons (substring string 0 (match-beginning 0)) parts) + start (match-end 0))) + (while (and (< start len) + (string-match pattern string (if (> start (match-beginning 0)) + start + (1+ start)))) (setq parts (cons (substring string start (match-beginning 0)) parts) start (match-end 0))) (nreverse (cons (substring string start) parts)))) diff -r -u -N xemacs-21.1.12/lisp/term/internal.el xemacs-21.1.13/lisp/term/internal.el --- xemacs-21.1.12/lisp/term/internal.el Wed Dec 18 17:42:59 1996 +++ xemacs-21.1.13/lisp/term/internal.el Thu Nov 16 22:21:28 2000 @@ -26,7 +26,7 @@ ;; --------------------------------------------------------------------------- ;; keyboard setup -- that's simple! (set-input-mode nil nil 0) -(define-key function-key-map [backspace] "\177") ; Normal behaviour for BS +(define-key function-key-map [backspace] "\177") ; Normal behavior for BS (define-key function-key-map [delete] "\C-d") ; ... and Delete (define-key function-key-map [tab] [?\t]) (define-key function-key-map [linefeed] [?\n]) diff -r -u -N xemacs-21.1.12/lisp/term/sun-mouse.el xemacs-21.1.13/lisp/term/sun-mouse.el --- xemacs-21.1.12/lisp/term/sun-mouse.el Wed Jun 25 22:31:35 1997 +++ xemacs-21.1.13/lisp/term/sun-mouse.el Sun Nov 19 22:25:24 2000 @@ -538,7 +538,7 @@ (defun describe-mouse-briefly (mouse-list) "Print a short description of the function bound to MOUSE-LIST." - (interactive "xDescibe mouse list briefly: ") + (interactive "xDescribe mouse list briefly: ") (let ((function (mouse-lookup (mouse-list-to-mouse-code mouse-list)))) (if function (message "%s runs the command %s" mouse-list function) diff -r -u -N xemacs-21.1.12/lisp/toolbar-items.el xemacs-21.1.13/lisp/toolbar-items.el --- xemacs-21.1.12/lisp/toolbar-items.el Mon Jul 17 10:23:42 2000 +++ xemacs-21.1.13/lisp/toolbar-items.el Thu Nov 16 22:21:26 2000 @@ -33,7 +33,7 @@ ;; is compiled in). ;; Miscellaneous toolbar functions, useful for users to redefine, in -;; order to get different behaviour. +;; order to get different behavior. ;;; Code: diff -r -u -N xemacs-21.1.12/lisp/wid-edit.el xemacs-21.1.13/lisp/wid-edit.el --- xemacs-21.1.12/lisp/wid-edit.el Tue Jul 6 23:10:31 1999 +++ xemacs-21.1.13/lisp/wid-edit.el Sun Dec 17 22:03:37 2000 @@ -439,7 +439,7 @@ ;; For inactiveness to work on complex structures, it is not ;; sufficient to keep track of whether a button/field/glyph is -;; inactive or not -- we must know how many time it was deactivated +;; inactive or not -- we must know how many times it was deactivated ;; (inactiveness level). Successive deactivations of the same button ;; increment its inactive-count, and activations decrement it. When ;; inactive-count reaches 0, the button/field/glyph is reactivated. @@ -512,14 +512,16 @@ (defun widget-specify-active (widget) "Make WIDGET active for user modifications." - (let ((inactive (widget-get widget :inactive))) + (let ((inactive (widget-get widget :inactive)) + (from (widget-get widget :from)) + (to (widget-get widget :to))) (when (and inactive (not (extent-detached-p inactive))) ;; Reactivate the buttons and fields covered by the extent. (map-extents 'widget-activation-widget-mapper - inactive nil nil :activate nil 'button-or-field) + nil from to :activate nil 'button-or-field) ;; Reactivate the glyphs. (map-extents 'widget-activation-glyph-mapper - inactive nil nil :activate nil 'end-glyph) + nil from to :activate nil 'end-glyph) (delete-extent inactive) (widget-put widget :inactive nil)))) diff -r -u -N xemacs-21.1.12/lisp/winnt.el xemacs-21.1.13/lisp/winnt.el --- xemacs-21.1.12/lisp/winnt.el Fri Jul 14 20:44:51 2000 +++ xemacs-21.1.13/lisp/winnt.el Thu Nov 16 22:21:26 2000 @@ -70,7 +70,7 @@ See also `auto-save-file-name-p'." (let ((name (original-make-auto-save-file-name)) (start 0)) - ;; destructively replace occurences of * or ? with $ + ;; destructively replace occurrences of * or ? with $ (while (string-match "[?*]" name start) (aset name (match-beginning 0) ?$) (setq start (1+ (match-end 0)))) diff -r -u -N xemacs-21.1.12/lisp/xpm-button.el xemacs-21.1.13/lisp/xpm-button.el --- xemacs-21.1.12/lisp/xpm-button.el Sun Sep 26 09:56:51 1999 +++ xemacs-21.1.13/lisp/xpm-button.el Wed Dec 31 19:00:00 1969 @@ -1,415 +0,0 @@ -;;; xpm-button.el --- create XPM buttons - -;; Copyright (C) 1997 Free Software Foundation, Inc. -;; Copyright (C) 1995 Kyle E. Jones - -;; Author: Kyle Jones -;; Maintainer: XEmacs Development Team -;; Keywords: frames, internal - -;; 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 1, 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 GNU Emacs; 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: - -;; Create XPM text buttons under XEmacs (requires 19.12 or beyond) - -;; Send bug reports to kyle@wonderworks.com - -;; Sample use of this package. -;;(progn -;; (setq b (xpm-button-create "Test button" 2 "yellow" "#a0a0d0")) -;; (setq e (make-extent (point-max) (point-max))) -;; (setq g (make-glyph (nth 0 b))) -;; (set-extent-begin-glyph e g) -;; (setq g2 (make-glyph (nth 1 b))) -;; (setq k (make-sparse-keymap)) -;; (define-key k 'button1 '(lambda (ev) -;; (interactive "e") -;; (set-extent-begin-glyph e g2))) -;; (define-key k 'button1up '(lambda (ev) -;; (interactive "e") -;; (set-extent-begin-glyph e g))) -;; (set-extent-property e 'keymap k)) - -;; The sole interface function is xpm-button-create. - -;;; Code: - -(provide 'xpm-button) - -(defvar xpm-button-version "1.02" - "Version string for xpm-button.") - -(defvar xpm-button-vertical-padding 3 - "Number of pixels between the text and the top/bottom of the button.") - -(defvar xpm-button-horizontal-padding 3 - "Number of pixels between the text and the left/right edges of the button.") - -(defvar xpm-button-font-pixel-lines - '( -" xx xxxxxx xxxx x xxxxxxx xxxxxxxx xxxxxxxx xxxx x xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxx xxx xxxxx xxxxxxx xxxxx xxxxxxx xxxx x xxxxxxxx xxxx xxx xxxx xxx xxxx xxxx xxx xxxx xxxx xxxx xxx xxxxxxxx xxx xxx xxx xxx xx xx xxx xxx x xx x xxxx xxxx xxx xxxxx xxx xxxxxx xxxx xxxx x xx xxxx x x xxxx xx x x xxx x x x xxxx xx xxxx xx xx x x x xxxx x x " -" xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx x xx xxx xxx xxx x xx xx xx xx xx xx xx xx xx xx xx xx xx xx x xx x xx xx x xx x xx x xx xxx xx xx xx x xx xx xx xx xx xx x x xxx xx xx xx xx xxx xxxx x xx xxxxxx xx xx xx xx x xx xx x x x xx xxx xx xxxx x xx x x x x x x xx xx xx xx xx x x x xx xx xx x " -" x xx xx xx xx x xx xx xx x xx x xx x xx xx xx xx xx x xx xxx xxx xxxx x xx xx xx xx xx xx xx xx xx x x xx x xx x xx x xx xx x xxx x xx x x xxx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx x xx x xx xx x x xx x xx xx xx xx x xxxx x xxxxxx x x xx x x xxx xx x xxx xx xx x xx xx xx xx x x x x xx xx x x " -" x xx xx xx xx x xx xx xx x xx x x xx x xx xx xx xx xx x xx x xx x xx x xxx x xx xx xx xx xx xx xx xx xxxx x xx x xx x xx x xx x xx x xxxx xx x xxx xxxx xx xx xxx xx xx xxx xxxxx xxxx xx xx xxx xxx xx xxx xx xxx xx xx xxx xx xxx xxx xx xx xx xxx xx xxxx xxxxx xxx xxx xxxx xxx xxx xxxx xxx xxx xxx xxxx xxx xxxxxx xx xx xx xx xx x xx xxxx xx xx xx x xx xx xx xx x x xx x x x xx x xx x x xx x x xx xxx x x x x x x xx xx xx xx xx xx x xx xx xx xx xx x " -" x xx xxxxx xx xx xx xxxxx xxxxx xx xxxxxxxx xx xx xxxxx xx x xx x xx x xxx x xx xx xx xx xx xx xxxxx xxxxx xx xx x xx x xx x xx x xxx xx x xx x xx xxx xxx xxx xx xxx xxx xxx xx xx xx xx xxx xx xx xx xx xx xx xxx xxx xx xxx xx xxx xxx xxx xxx xxx xxx xxxxx x x xx xx xx xx x xx xx x xx x xx x x xxx xx xx xx xx xx x xx x xx xxxxx xx xxxx xxxxx xx x xx x xx xx x x x xxxx xx x x xx x xx xx xxxx x x xx xx xxxxxx x xx x xx x xx xx xxx xxx x xx x x " -" xxxxxx xx xx xx xx xx xx x xx x xx xxxx xx xx xx xx xx xxx xx x xx x xx x xxxx xx xx xxxxx xx xx xx xx xx xxxx xx xx x xx x xx x xx x x xxx xx xxx xxxx xx xx xx xx xx xxxxxx xx xx xx xx xx xx xx xxxx xx xx xx xx xx xx xx xx xx xx xx xx xx xxxx xx xx xx xx x xx xxx x xxx xx x xxx xx xx xx xx xx x xx xx xx xx xx x xxx xx xxxxxx xx x xx xx x xxxxxx xxx xx x xx x x x x xxxx xx xx xxxxxx xxxxxxx xx x xx x xxx xxx xx x xx x " -" x xx xx xx xx x xx xx xx x xx xx xx xx xx xx xx xx xx xx xx x x xx xx x xxx xx xx xx xxx x xx xx xx x xx xx xx x xx x xx xx x xxx xx xxx x xx xx xx xx xx xx xx xx xx xxxx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xxxx xx xx xx xx x xx xxx x xxx xx x xxx xx xx xx x x xx xx xxxxxx xx xx xx xx xx x xx xx xx x xx x xx xx x x xx x x x xx x xx xxx xx xx xxxxxx x xx x xx x xxx xxx x x x " -" x xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xxx xx xx x xx xx x xx xx xx xx xx xxx xx xxx xx xx xx xxx xx xx xx xx x xx xx xxx xx xx xxx xx xxx xxx xx xxx xxx xxx xx xx x xx xx xx xx xx xx xx xx xx xx xx xx xxx xxx xxx xxx xxx xxx xx x x xx xx xxx xx xx xx x xx xx xxx x x x xx xxxxxx xx xx xx xx xx xx xx xx xx xx xx x xx x x x x xx x x x xx x xxx xxxxx x x x xx xx xx xx xx xx xx xx xx xx x xx xx x " -"xxx xxxx xxxxxxx xxxxx xxxxxxx xxxxxxxx xxxx xxxx x xxxx xxxx xxxx xxx xxxx xxx xxxxxxxx xxx xx xxxx xxx x xxxxx xxxx xxxxx xxxx xx x xxxx xxxx xxxxx xx xx xx xxx xxxx xxxx xxxxxxxx xx xxx x xxx xxx xx xxx xxx xxxx xxxxxx xxxx xxx xxxx xx xxxx xxx xxxx xxxx xxx xxx xxxx xxx xxx xx xx xx xx xxxx xxxx xx xx xxx xx xx xx xxx xxx xx xxxxxx xx xxxx xxxxxx xxxx xxxx xxxx xxxx xx xxxx xxx xx xxxxxx x x xxxx x xx xxxx xx xx xx x xx xx xx xx xx xx xx xx x xx x x " -" xxxx xxxxxx xx xx xx x x x x xx xx xx xx x x " -" xx x xx xx xx xx xxx x x xxxxxxx xxxx xx xxxx xx x x " -" xxxxx xx xxxx xxxx xx " - ) - "List of strings representing pixel lines for the button font.") - -(defvar xpm-button-font-line-indices - '(("A" 0 10) - ("B" 11 19) - ("C" 20 28) - ("D" 29 38) - ("E" 39 47) - ("F" 48 56) - ("G" 57 66) - ("H" 67 77) - ("I" 78 82) - ("J" 83 90) - ("K" 91 100) - ("L" 101 109) - ("M" 110 121) - ("N" 122 132) - ("O" 133 142) - ("P" 143 151) - ("Q" 152 162) - ("R" 163 172) - ("S" 173 180) - ("T" 181 189) - ("U" 190 199) - ("V" 200 210) - ("W" 211 224) - ("X" 225 234) - ("Y" 235 243) - ("Z" 244 252) - ("a" 253 260) - ("b" 261 269) - ("c" 270 276) - ("d" 277 285) - ("e" 286 292) - ("f" 293 298) - ("g" 299 306) - ("h" 307 315) - ("i" 316 320) - ("j" 321 324) - ("k" 325 333) - ("l" 334 338) - ("m" 339 351) - ("n" 352 360) - ("o" 361 368) - ("p" 369 377) - ("q" 378 386) - ("r" 387 393) - ("s" 394 399) - ("t" 400 405) - ("u" 406 414) - ("v" 415 423) - ("w" 424 436) - ("x" 437 444) - ("y" 445 453) - ("z" 454 460) - ("0" 461 467) - ("1" 468 472) - ("2" 473 479) - ("3" 480 486) - ("4" 487 493) - ("5" 494 500) - ("6" 501 507) - ("7" 508 514) - ("8" 515 521) - ("9" 522 528) - ("`" 529 531) - ("~" 532 538) - ("!" 539 541) - ("@" 542 552) - ("#" 553 560) - ("$" 561 567) - ("%" 568 580) - ("^" 581 586) - ("&" 587 597) - ("*" 598 603) - ("(" 604 608) - (")" 609 613) - ("-" 614 620) - ("_" 621 628) - ("=" 629 635) - ("+" 636 643) - ("[" 644 648) - ("{" 649 653) - ("]" 654 658) - ("}" 659 663) - (";" 664 666) - (":" 667 669) - ("'" 670 672) - ("\"" 673 676) - ("," 677 679) - ("<" 680 686) - ("." 687 689) - (">" 690 696) - ("/" 697 700) - ("?" 701 707) - ("\\" 708 713) - ("|" 714 715) - (" " 716 719)) - "Indices into the xpm-button-font-pixel-lines strings for each character. -Format is - (STR START END) -STR contains the character. -START is where the character's pixels start in each string of - xpm-button-font-pixel-lines (0 is the index of the first pixel). -END is the index of the position after the last pixel of the character.") - -(defun xpm-button-color-rgb-components (color) - "Return the RGB components of COLOR as a list of integers (R G B). -16-bit values are always returned. -#FEFEFE and rgb:fe/fe/fe style color specifications are parsed directly -into their components." - (color-instance-rgb-components (make-color-instance color))) - -(defun xpm-button-compute-contrast-color (color) - "Compute a contrasting color for COLOR. -The new color is created by xor-ing the RGB values of COLOR with all ones." - (let* ((rgb (xpm-button-color-rgb-components color)) - (r (logxor (nth 0 rgb) 65535)) - (g (logxor (nth 1 rgb) 65535)) - (b (logxor (nth 2 rgb) 65535))) - (format "rgb:%04x/%04x/%04x" r g b))) - -(defun xpm-button-compute-shadow-colors (color) - "Compute shadow colors for COLOR. -COLOR should be a string naming a color. -Returns (COLOR1 . COLOR2) where COLOR1 is the brighter shadow color -and COLOR2 is the dimmer color." - (let* ((rgb (xpm-button-color-rgb-components color)) - (r (nth 0 rgb)) - (g (nth 1 rgb)) - (b (nth 2 rgb)) - (bright-r (/ (* r 12) 10)) - (bright-g (/ (* g 12) 10)) - (bright-b (/ (* b 12) 10)) - (dim-r (/ (* r 8) 10)) - (dim-g (/ (* g 8) 10)) - (dim-b (/ (* b 8) 10))) - (if (> bright-r 65535) - (setq bright-r 65535)) - (if (> bright-g 65535) - (setq bright-g 65535)) - (if (> bright-b 65535) - (setq bright-b 65535)) - (cons (format "rgb:%04x/%04x/%04x" bright-r bright-g bright-b) - (format "rgb:%04x/%04x/%04x" dim-r dim-g dim-b)))) - -;;;###autoload -(defun xpm-button-create (text shadow-thickness fg-color bg-color) - "Returns a list of XPM image instantiators for a button displaying TEXT. -The list is of the form - (UP DOWN DISABLED) -where UP, DOWN, and DISABLED are the up, down and disabled image -instantiators for the button. - -SHADOW-THICKNESS specifies how many pixels should be used for the -shadows on the edges of the buttons. It should be a positive integer, -or 0 to mean no shadows on the edges. -FG-COLOR is the color used to display the text. It should be a string. -BG-COLOR is the background color the text will be displayed upon. -It should be a string." - (save-excursion - (set-buffer (get-buffer-create " xpm-button")) - (erase-buffer) - ;; create the correct number of lines for the pixels for the - ;; characters. - (insert-char ?\n (length xpm-button-font-pixel-lines)) - (let ((i 0) - (str (make-string 1 0)) - (lim (length text)) - (bg-char ? ) - font-pixel-lines q) - ;; loop through text, adding the character pixels - (while (< i lim) - (aset str 0 (aref text i)) - (if (null (setq q (assoc str xpm-button-font-line-indices))) - nil ; no pixel data for this character - (goto-char (point-min)) - (setq font-pixel-lines xpm-button-font-pixel-lines) - (while font-pixel-lines - (end-of-line) - (if (not (bolp)) - ;; Insert space before some of the characters. - ;; This isn't really correct for this font - ;; but doing it right is too hard. - ;; This isn't TeX after all. - (if (memq (aref str 0) '(?, ?. ?\" ?! ?| ?\' ?\`)) - (insert-char bg-char 1)) - ;; offset the start a bit from the left edge of the button - (insert-char bg-char xpm-button-horizontal-padding)) - ;; insert the character pixels. - (insert (substring (car font-pixel-lines) (nth 1 q) (nth 2 q))) - (forward-line) - (setq font-pixel-lines (cdr font-pixel-lines)))) - (setq i (1+ i))) - ;; now offset the text from the right edge of the button. - (goto-char (point-min)) - (while (not (eobp)) - (end-of-line) - (insert-char bg-char xpm-button-horizontal-padding) - (forward-line))) - (let ((bright-char ?b) - (dim-char ?d) - (fg-char ?x) - (bg-char ? ) - (shadow-colors (xpm-button-compute-shadow-colors bg-color)) - i len up-string down-string disabled-string) - ;; find the length of a pixel line. - (goto-char (point-min)) - (end-of-line) - (setq len (- (point) (point-min))) - ;; offset text from the top of the button - (goto-char (point-min)) - (setq i xpm-button-vertical-padding) - (while (> i 0) - (insert-char bg-char len) - (insert ?\n) - (setq i (1- i))) - ;; offset text from the bottom of the button - (goto-char (point-max)) - (setq i xpm-button-vertical-padding) - (while (> i 0) - (insert-char bg-char len) - (insert ?\n) - (setq i (1- i))) - ;; add shadows to the pixel lines - (goto-char (point-min)) - (while (not (eobp)) - (insert-char bright-char shadow-thickness) - (end-of-line) - (insert-char dim-char shadow-thickness) - (forward-line)) - ;; add top and bottom shadow lines - (setq i shadow-thickness) - (goto-char (point-min)) - (while (> i 0) - (insert-char bright-char (+ len shadow-thickness i)) - (insert-char dim-char (- shadow-thickness i)) - (insert ?\n) - (setq i (1- i))) - (setq i shadow-thickness) - (goto-char (point-max)) - (while (> i 0) - (insert-char bright-char i) - (insert-char dim-char (+ len (* 2 shadow-thickness) (- i))) - (insert ?\n) - (setq i (1- i))) - ;; add doublequotes, commas and XPM header goop. - (goto-char (point-min)) - (while (not (eobp)) - (insert "\"") - (end-of-line) - (insert "\",") - (forward-line)) - (insert "};\n") - (goto-char (point-min)) - ;; color map for the UP button - (insert (format - "/* XPM */ -static char * button_xpm[] = { -\"%d %d 4 1\", -\"%c c %s\", -\"%c c %s\", -\"%c c %s\", -\"%c c %s\", -" - (+ len (* shadow-thickness 2)) - (+ (* xpm-button-vertical-padding 2) - (* shadow-thickness 2) - (length xpm-button-font-pixel-lines)) - fg-char fg-color - bg-char bg-color - bright-char (car shadow-colors) - dim-char (cdr shadow-colors))) - (setq up-string (buffer-string)) - (delete-region (point-min) (point)) - ;; color map for the DOWN button - (insert (format - "/* XPM */ -static char * button_xpm[] = { -\"%d %d 4 1\", -\"%c c %s\", -\"%c c %s\", -\"%c c %s\", -\"%c c %s\", -" - (+ len (* shadow-thickness 2)) - (+ (* xpm-button-vertical-padding 2) - (* shadow-thickness 2) - (length xpm-button-font-pixel-lines)) - fg-char (xpm-button-compute-contrast-color fg-color) - bg-char bg-color - bright-char (cdr shadow-colors) - dim-char (car shadow-colors))) - (setq down-string (buffer-string)) - (delete-region (point-min) (point)) - ;; color map for the DISABLED button - (insert (format - "/* XPM */ -static char * button_xpm[] = { -\"%d %d 4 1\", -\"%c c %s\", -\"%c c %s\", -\"%c c %s\", -\"%c c %s\", -" - (+ len (* shadow-thickness 2)) - (+ (* xpm-button-vertical-padding 2) - (* shadow-thickness 2) - (length xpm-button-font-pixel-lines)) - fg-char fg-color - bg-char bg-color - bright-char (car shadow-colors) - dim-char (cdr shadow-colors))) - ;; stipple the foreground pixels - (let ((str (make-string 1 0)) - (bit 0) - lim line-start) - (aset str 0 fg-char) - (while (not (eobp)) - (setq lim (save-excursion (end-of-line) (point)) - line-start (point)) - (while (search-forward str lim t) - (if (= (% (- (point) line-start) 2) bit) - (subst-char-in-region (1- (point)) (point) fg-char bg-char t))) - (if (zerop bit) - (setq bit 1) - (setq bit 0)) - (forward-line))) - (setq disabled-string (buffer-string)) - - (list (vector 'xpm ':data up-string) - (vector 'xpm ':data down-string) - (vector 'xpm ':data disabled-string)) ))) - -;;; xpm-button.el ends here diff -r -u -N xemacs-21.1.12/lwlib/ChangeLog xemacs-21.1.13/lwlib/ChangeLog --- xemacs-21.1.12/lwlib/ChangeLog Fri Aug 4 21:31:41 2000 +++ xemacs-21.1.13/lwlib/ChangeLog Sun Jan 7 15:57:57 2001 @@ -1,3 +1,7 @@ +2001-01-07 XEmacs Build Bot + + * XEmacs 21.1.13 is released + 2000-08-04 XEmacs Build Bot * XEmacs 21.1.12 is released diff -r -u -N xemacs-21.1.12/lwlib/lwlib.h xemacs-21.1.13/lwlib/lwlib.h --- xemacs-21.1.12/lwlib/lwlib.h Mon Feb 15 11:41:30 1999 +++ xemacs-21.1.13/lwlib/lwlib.h Sat Dec 16 21:08:26 2000 @@ -113,7 +113,7 @@ /* name of widget */ char* name; - /* value (meaning BOGUSLY depend on widget type) */ + /* value (meaning BOGUSLY depends on widget type) */ char* value; /* keyboard equivalent. no implications for XtTranslations */ char* key; @@ -132,11 +132,11 @@ Boolean edited; /* true if has changed (maintained by lw library) */ change_type change; - /* Contents of the sub-widgets, also selected slot for checkbox */ + /* Contents of sub-widgets, also selected slot for checkbox */ struct _widget_value* contents; /* data passed to callback */ XtPointer call_data; - /* next one in the list */ + /* next in the list of siblings */ struct _widget_value* next; /* slot for the toolkit dependent part. Always initialize to NULL. */ void* toolkit_data; diff -r -u -N xemacs-21.1.12/man/ChangeLog xemacs-21.1.13/man/ChangeLog --- xemacs-21.1.12/man/ChangeLog Fri Aug 4 21:31:41 2000 +++ xemacs-21.1.13/man/ChangeLog Sun Jan 7 15:57:57 2001 @@ -1,3 +1,91 @@ +2001-01-07 XEmacs Build Bot + + * XEmacs 21.1.13 is released + +2001-01-03 Adrian Aichner + + * texinfo.texi (First Node): fixing grammar. + * texinfo.texi (Other Info Files): changing reference from (emacs) + to (xemacs). + +2000-11-02 Stephen J. Turnbull + + * xemacs/menus.texi: + * widget.texi: + Typo fixes and tiny clarifications. + +2000-11-13 Adrian Aichner + + * xemacs/building.texi (Compilation): Correct INFO-FILE-NAME to + lispref and xemacs in broken (elisp, emacs) p?xefs, use + PRINTED-MANUAL-TITLE "XEmacs Lisp Reference Manual" and "XEmacs + User's Manual" respectively for all these. + * xemacs/calendar.texi (Calendar/Diary): Ditto. + +2000-11-13 Adrian Aichner + + * lispref/abbrevs.texi (Abbrevs): Ditto. + * lispref/backups.texi (Auto-Saving): Ditto. + * lispref/backups.texi (Reverting): Ditto. + * lispref/display.texi (The Echo Area): Ditto. + * lispref/help.texi (Documentation Basics): Ditto. + * lispref/keymaps.texi (Scanning Keymaps): Ditto. + * lispref/locals.texi (Standard Buffer-Local Variables): Ditto. + * lispref/modes.texi (Auto Major Mode): Ditto. + * lispref/positions.texi (List Motion): Ditto. + * lispref/searching.texi (Regexp Search): Ditto. + * lispref/symbols.texi (Symbol Components): Ditto. + * lispref/tips.texi (Comment Tips): Ditto. + * lispref/tips.texi (Library Headers): Ditto. + +2000-11-13 Adrian Aichner + + * info-stnd.texi: Ditto. + * info-stnd.texi (Top): Ditto. + * info-stnd.texi (Cursor Commands): Ditto. + * info-stnd.texi (The Echo Area): Ditto. + * info.texi (Getting Started): Ditto. + * info.texi (Help-^L): Ditto. + * info.texi (Advanced Info): Ditto. + * info.texi (Expert): Ditto. + * info.texi (Tags): Ditto. + * info.texi (Checking): Ditto. + * info.texi (XEmacs Info Variables): Ditto. + * info.texi (Create an Info File): Ditto. + * texinfo.texi (Using Texinfo): Ditto. + * texinfo.texi (Other Info Files): Ditto. + * texinfo.texi (Multitable Rows): Ditto. + * xemacs-faq.texi (Q1.2.1): Ditto. + +2000-10-28 Adrian Aichner + + * xemacs-faq.texi (Q1.2.1): Use @html instead of @ifhtml to + incorporate raw HTML in the HTML version. + +2000-10-19 Stephen J. Turnbull + + * xemacs-faq.texi: Added Q2.0.13, Q2.0.14 - packages why and how. + Added Q2.1.25 - function not found due to package not installed. + + * xemacs/xemacs.texi: + * xemacs/abbrevs.texi: + * xemacs/basic.texi: + * xemacs/building.texi: + * xemacs/packages.texi: + * xemacs/running.texi: + Moved "Packages" node to "Important General Concepts" section. + + * xemacs/packages.texi: Added package list from etc/PACKAGES. + +2000-09-20 Martin Buchholz + + * xemacs/startup.texi (Startup Paths): Minor fixes. + +2000-08-24 Martin Buchholz + + * lispref/databases.texi (Connecting to a Database): + s/berkeley_db/berkeley-db/. Too much C programming. + 2000-08-04 XEmacs Build Bot * XEmacs 21.1.12 is released @@ -342,7 +430,7 @@ * info.texi: Fixed @setfilename and a typo. * standards.texi: Added NEXT to @node Preface. See ALL. * texinfo.texi: Fixed section names, quoted usage of @TeX{}, - changed some occurences of `:' to `colon'. + changed some occurrences of `:' to `colon'. * xemacs-faq.texi: See ALL. * internals/internals.texi: See ALL. * lispref/back.texi: Fixed @setfilename. diff -r -u -N xemacs-21.1.12/man/info-stnd.texi xemacs-21.1.13/man/info-stnd.texi --- xemacs-21.1.12/man/info-stnd.texi Tue Jun 30 02:35:28 1998 +++ xemacs-21.1.13/man/info-stnd.texi Sat Dec 16 21:08:28 2000 @@ -19,7 +19,7 @@ @ifinfo This file documents GNU Info, a program for viewing the on-line formatted versions of Texinfo files. This documentation is different from the -documentation for the Info reader that is part of GNU Emacs. If you do +documentation for the Info reader that is part of XEmacs. If you do not know how to use Info, but have a working Info reader, you should read that documentation first. @@ -81,7 +81,7 @@ This file documents GNU Info, a program for viewing the on-line formatted versions of Texinfo files, version @value{InfoProgVer}. This documentation is different from the documentation for the Info reader -that is part of GNU Emacs. +that is part of XEmacs. @end ifinfo @menu @@ -229,14 +229,14 @@ move the cursor about the screen. The notation used in this manual to describe keystrokes is identical to the notation used within the Emacs manual, and the GNU Readline manual. @xref{Characters, , Character -Conventions, emacs, the GNU Emacs Manual}, if you are unfamiliar with the +Conventions, xemacs, the XEmacs User's Manual}, if you are unfamiliar with the notation. The following table lists the basic cursor movement commands in Info. Each entry consists of the key sequence you should type to execute the cursor movement, the @code{M-x}@footnote{@code{M-x} is also a command; it invokes @code{execute-extended-command}. @xref{M-x, , Executing an -extended command, emacs, the GNU Emacs Manual}, for more detailed +extended command, xemacs, the XEmacs User's Manual}, for more detailed information.} command name (displayed in parentheses), and a short description of what the command does. All of the cursor motion commands can take an @dfn{numeric} argument (@pxref{Miscellaneous Commands, @@ -935,7 +935,7 @@ The next group of commands deal with @dfn{killing}, and @dfn{yanking} text. For an in depth discussion of killing and yanking, -@pxref{Killing, , Killing and Deleting, emacs, the GNU Emacs Manual} +@pxref{Killing, , Killing and Deleting, xemacs, the XEmacs User's Manual} @table @asis @item @code{M-d} (@code{echo-area-kill-word}) diff -r -u -N xemacs-21.1.12/man/info.texi xemacs-21.1.13/man/info.texi --- xemacs-21.1.12/man/info.texi Fri Jul 14 20:44:53 2000 +++ xemacs-21.1.13/man/info.texi Sat Dec 16 21:08:28 2000 @@ -122,7 +122,7 @@ @item Type @code{emacs} at the command line; then type @kbd{C-h i} (Control @kbd{h}, followed by @kbd{i}). This approach uses the Info mode of the -Emacs program, an editor with many other capabilities. +XEmacs program, an editor with many other capabilities. @end enumerate In either case, then type @kbd{mInfo} (just the letters), followed by @@ -304,7 +304,7 @@ a lot of Deletes. You can also type simply @kbd{b} for beginning. >> Try that now. (We have put in enough verbiage to push this past the first screenful, but screens are so big nowadays that perhaps it -isn't enough. You may need to shrink your Emacs or Info window.) +isn't enough. You may need to shrink your XEmacs or Info window.) Then come back, with Spaces. If your screen is very tall, all of this node might fit at once. @@ -608,7 +608,7 @@ * Cross-refs:: How to add cross-references to Info nodes. * Tags:: How to make tag tables for Info files. * Checking:: Checking an Info File -* Emacs Info Variables:: Variables modifying the behavior of Emacs Info. +* XEmacs Info Variables:: Variables modifying the behavior of XEmacs Info. @end menu @node Expert, Add, , Advanced Info @@ -652,7 +652,7 @@ argument. @kbd{1} goes through the first item in the current node's menu; @kbd{2} goes through the second item, etc. -If you display supports multiple fonts, and you are using Emacs' Info +If you display supports multiple fonts, and you are using XEmacs' Info mode to read Info files, the @samp{*} for the fifth menu item is underlines, and so is the @samp{*} for the ninth item; these underlines make it easy to see at a glance which number to use for an item. @@ -662,7 +662,7 @@ the name. The Info command @kbd{e} changes from Info mode to an ordinary -Emacs editing mode, so that you can edit the text of the current node. +XEmacs editing mode, so that you can edit the text of the current node. Type @kbd{C-c C-c} to switch back to Info. The @kbd{e} command is allowed only if the variable @code{Info-enable-edit} is non-@code{nil}. @@ -819,7 +819,7 @@ an Info file lives inside the file itself and is used automatically whenever Info reads in the file. - To make a tag table, go to a node in the file using Emacs Info mode and type + To make a tag table, go to a node in the file using XEmacs Info mode and type @kbd{M-x Info-tagify}. Then you must use @kbd{C-x C-s} to save the file. @@ -847,7 +847,7 @@ a Delete character, and the character position in the file of the beginning of the node. -@node Checking, Emacs Info Variables, Tags, Advanced Info +@node Checking, XEmacs Info Variables, Tags, Advanced Info @comment node-name, next, previous, up @section Checking an Info File @@ -864,15 +864,15 @@ few. To check an Info file, do @kbd{M-x Info-validate} while looking at -any node of the file with Emacs Info mode. - -@node Emacs Info Variables, , Checking, Advanced Info -@section Emacs Info-mode Variables - -The following variables may modify the behaviour of Info-mode in Emacs; +any node of the file with XEmacs Info mode. + +@node XEmacs Info Variables, , Checking, Advanced Info +@section XEmacs Info-mode Variables + +The following variables may modify the behaviour of Info-mode in XEmacs; you may wish to set one or several of these variables interactively, or in your @file{~/.emacs} init file. @xref{Examining, Examining and Setting -Variables, Examining and Setting Variables, emacs, The GNU Emacs +Variables, Examining and Setting Variables, xemacs, The XEmacs Manual}. @vtable @code @@ -900,7 +900,7 @@ @code{makeinfo} is a utility that converts a Texinfo file into an Info file; @code{texinfo-format-region} and @code{texinfo-format-buffer} are -GNU Emacs functions that do the same. +XEmacs functions that do the same. @xref{Create an Info File, , Creating an Info File, texinfo, the Texinfo Manual}, to learn how to create an Info file from a Texinfo file. diff -r -u -N xemacs-21.1.12/man/internals/internals.texi xemacs-21.1.13/man/internals/internals.texi --- xemacs-21.1.12/man/internals/internals.texi Fri Jul 14 20:44:59 2000 +++ xemacs-21.1.13/man/internals/internals.texi Sat Dec 16 21:08:33 2000 @@ -4602,7 +4602,7 @@ miscellaneous @code{gui_item_...} functions, everything related to @code{eval} (@code{Feval_buffer}, @code{call0}, ...) and inside @code{Fsignal}. The latter is used to handle signals, as for example the -ones raised by every @code{QUITE}-macro triggered after pressing Ctrl-g. +ones raised by every @code{QUIT}-macro triggered after pressing Ctrl-g. @node garbage_collect_1 @subsection @code{garbage_collect_1} @@ -6560,19 +6560,19 @@ @table @code @item name The buffer name is a string that names the buffer. It is guaranteed to -be unique. @xref{Buffer Names,,, lispref, XEmacs Lisp Programmer's +be unique. @xref{Buffer Names,,, lispref, XEmacs Lisp Reference Manual}. @item save_modified This field contains the time when the buffer was last saved, as an -integer. @xref{Buffer Modification,,, lispref, XEmacs Lisp Programmer's +integer. @xref{Buffer Modification,,, lispref, XEmacs Lisp Reference Manual}. @item modtime This field contains the modification time of the visited file. It is set when the file is written or read. Every time the buffer is written to the file, this field is compared to the modification time of the -file. @xref{Buffer Modification,,, lispref, XEmacs Lisp Programmer's +file. @xref{Buffer Modification,,, lispref, XEmacs Lisp Reference Manual}. @item auto_save_modified @@ -6584,39 +6584,39 @@ @item undo_list This field points to the buffer's undo list. @xref{Undo,,, lispref, -XEmacs Lisp Programmer's Manual}. +XEmacs Lisp Reference Manual}. @item syntax_table_v This field contains the syntax table for the buffer. @xref{Syntax -Tables,,, lispref, XEmacs Lisp Programmer's Manual}. +Tables,,, lispref, XEmacs Lisp Reference Manual}. @item downcase_table This field contains the conversion table for converting text to lower -case. @xref{Case Tables,,, lispref, XEmacs Lisp Programmer's Manual}. +case. @xref{Case Tables,,, lispref, XEmacs Lisp Reference Manual}. @item upcase_table This field contains the conversion table for converting text to upper -case. @xref{Case Tables,,, lispref, XEmacs Lisp Programmer's Manual}. +case. @xref{Case Tables,,, lispref, XEmacs Lisp Reference Manual}. @item case_canon_table This field contains the conversion table for canonicalizing text for case-folding search. @xref{Case Tables,,, lispref, XEmacs Lisp -Programmer's Manual}. +Reference Manual}. @item case_eqv_table This field contains the equivalence table for case-folding search. -@xref{Case Tables,,, lispref, XEmacs Lisp Programmer's Manual}. +@xref{Case Tables,,, lispref, XEmacs Lisp Reference Manual}. @item display_table This field contains the buffer's display table, or @code{nil} if it doesn't have one. @xref{Display Tables,,, lispref, XEmacs Lisp -Programmer's Manual}. +Reference Manual}. @item markers This field contains the chain of all markers that currently point into the buffer. Deletion of text in the buffer, and motion of the buffer's gap, must check each of these markers and perhaps update it. -@xref{Markers,,, lispref, XEmacs Lisp Programmer's Manual}. +@xref{Markers,,, lispref, XEmacs Lisp Reference Manual}. @item backed_up This field is a flag that tells whether a backup file has been made for @@ -6625,7 +6625,7 @@ @item mark This field contains the mark for the buffer. The mark is a marker, hence it is also included on the list @code{markers}. @xref{The Mark,,, -lispref, XEmacs Lisp Programmer's Manual}. +lispref, XEmacs Lisp Reference Manual}. @item mark_active This field is non-@code{nil} if the buffer's mark is active. @@ -6635,12 +6635,12 @@ in this buffer, and their values, with the exception of local variables that have special slots in the buffer object. (Those slots are omitted from this table.) @xref{Buffer-Local Variables,,, lispref, XEmacs Lisp -Programmer's Manual}. +Reference Manual}. @item modeline_format This field contains a Lisp object which controls how to display the mode line for this buffer. @xref{Modeline Format,,, lispref, XEmacs Lisp -Programmer's Manual}. +Reference Manual}. @item base_buffer This field holds the buffer's base buffer (if it is an indirect buffer), diff -r -u -N xemacs-21.1.12/man/lispref/abbrevs.texi xemacs-21.1.13/man/lispref/abbrevs.texi --- xemacs-21.1.12/man/lispref/abbrevs.texi Wed Dec 18 17:43:47 1996 +++ xemacs-21.1.13/man/lispref/abbrevs.texi Sat Dec 16 21:08:35 2000 @@ -30,7 +30,7 @@ @xref{Creating Symbols}. For the user-level commands for abbrevs, see @ref{Abbrevs,, Abbrev -Mode, emacs, The XEmacs Reference Manual}. +Mode, xemacs, The XEmacs Reference Manual}. @menu * Abbrev Mode:: Setting up XEmacs for abbreviation. diff -r -u -N xemacs-21.1.12/man/lispref/backups.texi xemacs-21.1.13/man/lispref/backups.texi --- xemacs-21.1.12/man/lispref/backups.texi Mon Feb 7 21:54:48 2000 +++ xemacs-21.1.13/man/lispref/backups.texi Sat Dec 16 21:08:36 2000 @@ -358,7 +358,7 @@ than a limited amount of work if the system crashes. By default, auto-saves happen every 300 keystrokes, or after around 30 seconds of idle time. @xref{Auto-Save, Auto-Save, Auto-Saving: Protection Against -Disasters, emacs, The XEmacs Reference Manual}, for information on auto-save +Disasters, xemacs, The XEmacs Reference Manual}, for information on auto-save for users. Here we describe the functions used to implement auto-saving and the variables that control them. @@ -579,7 +579,7 @@ If you have made extensive changes to a file and then change your mind about them, you can get rid of them by reading in the previous version of the file with the @code{revert-buffer} command. @xref{Reverting, , -Reverting a Buffer, emacs, The XEmacs Reference Manual}. +Reverting a Buffer, xemacs, The XEmacs Reference Manual}. @deffn Command revert-buffer &optional check-auto-save noconfirm This command replaces the buffer text with the text of the visited diff -r -u -N xemacs-21.1.12/man/lispref/consoles-devices.texi xemacs-21.1.13/man/lispref/consoles-devices.texi --- xemacs-21.1.12/man/lispref/consoles-devices.texi Thu May 29 19:50:35 1997 +++ xemacs-21.1.13/man/lispref/consoles-devices.texi Thu Nov 16 22:21:33 2000 @@ -152,12 +152,12 @@ @defun valid-device-type-p device-type This function returns whether @var{device-type} (which should be a symbol) -species a valid device type. +specifies a valid device type. @end defun @defun valid-device-class-p device-class This function returns whether @var{device-class} (which should be a symbol) -species a valid device class. +specifies a valid device class. @end defun @defvar terminal-device diff -r -u -N xemacs-21.1.12/man/lispref/databases.texi xemacs-21.1.13/man/lispref/databases.texi --- xemacs-21.1.12/man/lispref/databases.texi Sat Oct 11 21:39:58 1997 +++ xemacs-21.1.13/man/lispref/databases.texi Thu Nov 16 22:21:33 2000 @@ -26,16 +26,16 @@ permissions @var{mode}. @var{access} can be any combination of @code{r} @code{w} and @code{+}, for read, write, and creation flags. -@var{type} can have the value @code{'dbm} or @code{'berkeley_db} to +@var{type} can have the value @code{'dbm} or @code{'berkeley-db} to select the type of database file to use. (Note: XEmacs may not support both of these types.) For a @var{type} of @code{'dbm}, there are no subtypes, so @var{subtype} should by @code{nil}. -For a @var{type} of @code{'berkeley_db}, the following subtypes are +For a @var{type} of @code{'berkeley-db}, the following subtypes are available: @code{'hash}, @code{'btree}, and @code{'recno}. See the -manpages for the Berkeley DB functions to more information about these +manpages for the Berkeley DB functions for more information about these types. @end defun diff -r -u -N xemacs-21.1.12/man/lispref/display.texi xemacs-21.1.13/man/lispref/display.texi --- xemacs-21.1.12/man/lispref/display.texi Sat Sep 5 23:11:14 1998 +++ xemacs-21.1.13/man/lispref/display.texi Sat Dec 16 21:08:36 2000 @@ -164,7 +164,7 @@ (when active) in the same place on the screen as the echo area. The @cite{XEmacs Reference Manual} specifies the rules for resolving conflicts between the echo area and the minibuffer for use of that screen space -(@pxref{Minibuffer,, The Minibuffer, emacs, The XEmacs Reference Manual}). +(@pxref{Minibuffer,, The Minibuffer, xemacs, The XEmacs Reference Manual}). Error messages appear in the echo area; see @ref{Errors}. You can write output in the echo area by using the Lisp printing diff -r -u -N xemacs-21.1.12/man/lispref/help.texi xemacs-21.1.13/man/lispref/help.texi --- xemacs-21.1.12/man/lispref/help.texi Tue Mar 31 15:11:18 1998 +++ xemacs-21.1.13/man/lispref/help.texi Sat Dec 16 21:08:37 2000 @@ -94,7 +94,7 @@ transparent to the user. For information on the uses of documentation strings, see @ref{Help, , -Help, emacs, The XEmacs Reference Manual}. +Help, xemacs, The XEmacs Reference Manual}. @c Wordy to prevent overfull hbox. --rjc 15mar92 The @file{emacs/lib-src} directory contains two utilities that you can diff -r -u -N xemacs-21.1.12/man/lispref/keymaps.texi xemacs-21.1.13/man/lispref/keymaps.texi --- xemacs-21.1.12/man/lispref/keymaps.texi Thu Oct 2 20:11:14 1997 +++ xemacs-21.1.13/man/lispref/keymaps.texi Sat Dec 16 21:08:38 2000 @@ -1511,7 +1511,7 @@ follow indirect keymap bindings. This makes it possible to search for an indirect definition itself. -This function is used by @code{where-is} (@pxref{Help, , Help, emacs, +This function is used by @code{where-is} (@pxref{Help, , Help, xemacs, The XEmacs Reference Manual}). @smallexample diff -r -u -N xemacs-21.1.12/man/lispref/locals.texi xemacs-21.1.13/man/lispref/locals.texi --- xemacs-21.1.12/man/lispref/locals.texi Wed Dec 18 17:43:48 1996 +++ xemacs-21.1.13/man/lispref/locals.texi Sat Dec 16 21:08:39 2000 @@ -68,7 +68,7 @@ @pxref{Usual Display} @item comment-column -@pxref{Comments,,, emacs, The XEmacs User's Manual} +@pxref{Comments,,, xemacs, The XEmacs User's Manual} @item default-directory @pxref{System Environment} @@ -80,7 +80,7 @@ @pxref{Auto Filling} @item goal-column -@pxref{Moving Point,,, emacs, The XEmacs User's Manual} +@pxref{Moving Point,,, xemacs, The XEmacs User's Manual} @item left-margin @pxref{Indentation} diff -r -u -N xemacs-21.1.12/man/lispref/modes.texi xemacs-21.1.13/man/lispref/modes.texi --- xemacs-21.1.12/man/lispref/modes.texi Sat Sep 5 23:11:15 1998 +++ xemacs-21.1.13/man/lispref/modes.texi Sat Dec 16 21:08:39 2000 @@ -502,8 +502,9 @@ If you run @code{normal-mode} interactively, the argument @var{find-file} is normally @code{nil}. In this case, @code{normal-mode} unconditionally processes any local variables list. -@xref{File variables, , Local Variables in Files, emacs, The XEmacs -Reference Manual}, for the syntax of the local variables section of a file. +@xref{File variables, , Local Variables in Files, xemacs, The XEmacs +Lisp Reference Manual}, for the syntax of the local variables section of +a file. @cindex file mode specification error @code{normal-mode} uses @code{condition-case} around the call to the @@ -542,7 +543,7 @@ value of a local variable. However, this function does not look for the @samp{mode:} local variable near the end of a file; the @code{hack-local-variables} function does that. @xref{Choosing Modes, , -How Major Modes are Chosen, emacs, The XEmacs Reference Manual}. +How Major Modes are Chosen, xemacs, The XEmacs Lisp Reference Manual}. @end defun @defopt default-major-mode diff -r -u -N xemacs-21.1.12/man/lispref/positions.texi xemacs-21.1.13/man/lispref/positions.texi --- xemacs-21.1.12/man/lispref/positions.texi Thu Mar 4 10:44:49 1999 +++ xemacs-21.1.13/man/lispref/positions.texi Sat Dec 16 21:08:40 2000 @@ -602,7 +602,7 @@ them in XEmacs). The syntax table controls how these functions interpret various characters; see @ref{Syntax Tables}. @xref{Parsing Expressions}, for lower-level primitives for scanning sexps or parts of -sexps. For user-level commands, see @ref{Lists and Sexps,,, emacs, XEmacs +sexps. For user-level commands, see @ref{Lists and Sexps,,, xemacs, XEmacs Reference Manual}. @deffn Command forward-list &optional arg diff -r -u -N xemacs-21.1.12/man/lispref/searching.texi xemacs-21.1.13/man/lispref/searching.texi --- xemacs-21.1.12/man/lispref/searching.texi Wed Sep 9 20:06:57 1998 +++ xemacs-21.1.13/man/lispref/searching.texi Sat Dec 16 21:08:40 2000 @@ -699,10 +699,10 @@ In XEmacs, you can search for the next match for a regexp either incrementally or not. Incremental search commands are described in the -@cite{The XEmacs Reference Manual}. @xref{Regexp Search, , Regular Expression -Search, emacs, The XEmacs Reference Manual}. Here we describe only the search -functions useful in programs. The principal one is -@code{re-search-forward}. +@cite{The XEmacs Lisp Reference Manual}. @xref{Regexp Search, , Regular +Expression Search, xemacs, The XEmacs Lisp Reference Manual}. Here we +describe only the search functions useful in programs. The principal +one is @code{re-search-forward}. @deffn Command re-search-forward regexp &optional limit noerror repeat This function searches forward in the current buffer for a string of diff -r -u -N xemacs-21.1.12/man/lispref/symbols.texi xemacs-21.1.13/man/lispref/symbols.texi --- xemacs-21.1.12/man/lispref/symbols.texi Sat Jan 4 18:05:27 1997 +++ xemacs-21.1.13/man/lispref/symbols.texi Sat Dec 16 21:08:41 2000 @@ -115,7 +115,8 @@ @noindent Because this symbol is the variable which holds the name of the file being visited in the current buffer, the value cell contents we see are -the name of the source file of this chapter of the XEmacs Lisp Manual. +the name of the source file of this chapter of the XEmacs Lisp Reference +Manual. The property list cell contains the list @code{(variable-documentation 29529)} which tells the documentation functions where to find the documentation string for the variable @code{buffer-file-name} in the diff -r -u -N xemacs-21.1.12/man/lispref/tips.texi xemacs-21.1.13/man/lispref/tips.texi --- xemacs-21.1.12/man/lispref/tips.texi Wed Dec 18 17:43:49 1996 +++ xemacs-21.1.13/man/lispref/tips.texi Sat Dec 16 21:08:41 2000 @@ -534,7 +534,7 @@ (@code{indent-for-comment}) and @key{TAB} (@code{lisp-indent-line}) automatically indent comments according to these conventions, depending on the number of semicolons. @xref{Comments,, -Manipulating Comments, emacs, The XEmacs Reference Manual}. +Manipulating Comments, xemacs, The XEmacs Lisp Reference Manual}. @node Library Headers @section Conventional Headers for XEmacs Libraries diff -r -u -N xemacs-21.1.12/man/lispref/windows.texi xemacs-21.1.13/man/lispref/windows.texi --- xemacs-21.1.12/man/lispref/windows.texi Sun Jun 14 19:12:37 1998 +++ xemacs-21.1.13/man/lispref/windows.texi Thu Nov 16 22:21:34 2000 @@ -1041,7 +1041,7 @@ @defun window-point window This function returns the current position of point in @var{window}. -For a nonselected window, this is the value point would have (in that +For a non-selected window, this is the value point would have (in that window's buffer) if that window were selected. When @var{window} is the selected window and its buffer is also the diff -r -u -N xemacs-21.1.12/man/texinfo.texi xemacs-21.1.13/man/texinfo.texi --- xemacs-21.1.12/man/texinfo.texi Sun Dec 5 23:31:14 1999 +++ xemacs-21.1.13/man/texinfo.texi Sat Jan 6 22:21:58 2001 @@ -743,8 +743,8 @@ and indices. You can, if you wish, make the chapters and sections of the printed document correspond to the nodes of the on-line information; and you use the same cross references and indices for -both the Info file and the printed work. @cite{The GNU -Emacs Manual} is a good example of a Texinfo file, as is this manual.@refill +both the Info file and the printed work. @cite{The XEmacs User's +Manual} is a good example of a Texinfo file, as is this manual.@refill To make a printed document, you process a Texinfo source file with the @TeX{} typesetting program. This creates a DVI file that you can @@ -4768,9 +4768,9 @@ @cindex Previous node of Top node Do not define the `Previous' node of the Top node to be @samp{(dir)}, as it causes confusing behavior for users: if you are in the Top node and -hits @key{DEL} to go backwards, you wind up in the middle of the -some other entry in the @file{dir} file, which has nothing to do with -what you were reading. +hit @key{DEL} to go backwards, you wind up in the middle of some other +entry in the @file{dir} file, which has nothing to do with what you were +reading. @xref{Install an Info File}, for more information about installing an Info file in the @file{info} directory. @@ -5158,16 +5158,16 @@ @end example For example, to refer directly to the @samp{Outlining} and -@samp{Rebinding} nodes in the @cite{Emacs Manual}, you would write a -menu like this:@refill +@samp{Rebinding} nodes in the @cite{XEmacs User's Manual}, you would +write a menu like this:@refill @example @group @@menu -* Outlining: (emacs)Outline Mode. The major mode for - editing outlines. -* Rebinding: (emacs)Rebinding. How to redefine the - meaning of a key. +* Outlining: (xemacs)Outline Mode. The major mode for + editing outlines. +* Rebinding: (xemacs)Rebinding. How to redefine the + meaning of a key. @@end menu @end group @end example @@ -8226,7 +8226,7 @@ input lines in your source file as necessary. Here is a complete example of a multi-column table (the text is from -@cite{The GNU Emacs Manual}, @pxref{Split Window,, Splitting Windows, +@cite{The XEmacs Users' Manual}, @pxref{Split Window,, Splitting Windows, xemacs, XEmacs User's Manual}): @example diff -r -u -N xemacs-21.1.12/man/widget.texi xemacs-21.1.13/man/widget.texi --- xemacs-21.1.12/man/widget.texi Sat Aug 28 16:24:19 1999 +++ xemacs-21.1.13/man/widget.texi Sat Dec 16 21:08:30 2000 @@ -94,7 +94,7 @@ @enumerate @item -More complex field than just editable text are supported. +More complex fields than just editable text are supported. @item You can give the user immediate feedback if he enters invalid data in a text field, and sometimes prevent entering invalid data. @@ -430,7 +430,7 @@ | NAME @end example -Where, @var{name} is a widget name, @var{keyword} is the name of a +where @var{name} is a widget name, @var{keyword} is the name of a property, @var{argument} is the value of the property, and @var{args} are interpreted in a widget specific way. @@ -510,7 +510,7 @@ @end table @item :doc -The string inserted by the @samp{%d} escape in the format +The string inserted by the @samp{%d} or @samp{%h} escape in the format string. @item :tag @@ -722,8 +722,10 @@ @table @code @item :size -The width of the editable field.@* -By default the field will reach to the end of the line. +The minimum width of the editable field.@* +By default the field will reach to the end of the line. If the +content is too large, the displayed representation will expand to +contain it. The content is not truncated to size. @item :value-face Face used for highlighting the editable field. Default is @@ -742,7 +744,7 @@ @item :keymap Keymap used in the editable field. The default value is @code{widget-field-keymap}, which allows you to use all the normal -editing commands, even if the buffers major mode suppress some of them. +editing commands, even if the buffer's major mode suppress some of them. Pressing return invokes the function specified by @code{:action}. @end table diff -r -u -N xemacs-21.1.12/man/xemacs/abbrevs.texi xemacs-21.1.13/man/xemacs/abbrevs.texi --- xemacs-21.1.12/man/xemacs/abbrevs.texi Sat Jun 20 22:46:53 1998 +++ xemacs-21.1.13/man/xemacs/abbrevs.texi Sun Nov 19 22:25:27 2000 @@ -1,5 +1,5 @@ -@node Abbrevs, Picture, Packages, Top +@node Abbrevs, Picture, Running, Top @chapter Abbrevs @cindex abbrevs @cindex expansion (of abbrevs) diff -r -u -N xemacs-21.1.12/man/xemacs/basic.texi xemacs-21.1.13/man/xemacs/basic.texi --- xemacs-21.1.12/man/xemacs/basic.texi Sat Jun 20 22:46:54 1998 +++ xemacs-21.1.13/man/xemacs/basic.texi Sun Nov 19 22:25:27 2000 @@ -1,5 +1,7 @@ - -@node Basic, Undo, Startup Paths, Top +@c This is part of the XEmacs manual. +@c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997 Free Software Foundation, Inc. +@c See file xemacs.texi for copying conditions. +@node Basic, Undo, Packages, Top @chapter Basic Editing Commands @kindex C-h t diff -r -u -N xemacs-21.1.12/man/xemacs/building.texi xemacs-21.1.13/man/xemacs/building.texi --- xemacs-21.1.12/man/xemacs/building.texi Fri Jul 14 20:45:05 2000 +++ xemacs-21.1.13/man/xemacs/building.texi Sun Nov 19 22:25:27 2000 @@ -1,5 +1,5 @@ -@node Running, Packages, Programs, Top +@node Running, Abbrevs, Programs, Top @chapter Compiling and Testing Programs The previous chapter discusses the Emacs commands that are useful for @@ -71,7 +71,7 @@ compilation continues in any case. @findex kill-compilation - To kill the compilation process, type @kbd{M-x-kill-compilation}. The mode + To kill the compilation process, type @kbd{M-x kill-compilation}. The mode line of the @samp{*compilation*} buffer changes to say @samp{signal} instead of @samp{run}. Starting a new compilation also kills any running compilation, as only one can occur at any time. Starting a new diff -r -u -N xemacs-21.1.12/man/xemacs/calendar.texi xemacs-21.1.13/man/xemacs/calendar.texi --- xemacs-21.1.12/man/xemacs/calendar.texi Tue Sep 29 17:19:36 1998 +++ xemacs-21.1.13/man/xemacs/calendar.texi Sat Dec 16 21:08:43 2000 @@ -15,7 +15,7 @@ particular date; @kbd{Buttons3} brings up a menu of commonly used calendar features that are independent of any particular date. To exit the calendar, type @kbd{q}. @xref{Calendar, Customizing the Calendar -and Diary,, elisp, The Emacs Lisp Reference Manual}, for customization +and Diary,, lispref, The XEmacs Lisp Reference Manual}, for customization information about the calendar and diary. @menu diff -r -u -N xemacs-21.1.12/man/xemacs/menus.texi xemacs-21.1.13/man/xemacs/menus.texi --- xemacs-21.1.12/man/xemacs/menus.texi Thu Mar 4 10:44:51 1999 +++ xemacs-21.1.13/man/xemacs/menus.texi Sat Dec 16 21:08:44 2000 @@ -21,6 +21,9 @@ cutting, copying, pasting, and killing selected text. @cindex Edit menu +@c #### The Mule menu needs to be documented, but this is not the place +@c for it since Ben just moved it. + @item Apps Access to sub-applications implemented within XEmacs, such as the mail reader, the World Wide Web browser, the spell-checker, and the calendar diff -r -u -N xemacs-21.1.12/man/xemacs/packages.texi xemacs-21.1.13/man/xemacs/packages.texi --- xemacs-21.1.12/man/xemacs/packages.texi Fri Sep 3 20:38:40 1999 +++ xemacs-21.1.13/man/xemacs/packages.texi Sun Dec 17 22:03:40 2000 @@ -1,4 +1,7 @@ -@node Packages, Abbrevs, Running, Top +@c This is part of the XEmacs manual. +@c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997 Free Software Foundation, Inc. +@c See file xemacs.texi for copying conditions. +@node Packages, Basic, Startup Paths, Top @comment node-name, next, previous, up @section Packages @@ -16,6 +19,8 @@ * Package Terminology:: Understanding different kinds of packages. * Using Packages:: How to install and use packages. * Building Packages:: Building packages from sources. +* Creating Packages:: The basics. +* Available Packages:: A brief, out-of-date, directory of packaged LISP. @end menu @node Package Terminology, Using Packages, , Packages @@ -326,7 +331,7 @@ @end enumerate -@node Building Packages, , Using Packages, Packages +@node Building Packages, Creating Packages, Using Packages, Packages @comment node-name, next, previous, up Source packages are available from the @file{packages/source-packages} @@ -368,7 +373,7 @@ of TeXinfo documentation if present. @item srckit -Usually aliased to @code{make srckit-std}. This does a @code{make +Usually aliased to @code{srckit-std}. This does a @code{make distclean} and creates a package source tarball in the staging directory. This is generally only of use for package maintainers. @@ -388,3 +393,397 @@ primarily of use by XEmacs maintainers producing files for distribution. @end table + +@node Creating Packages, Available Packages, Building Packages, Packages +@comment node-name, next, previous, up + +Creating a package from an existing Lisp library is not very difficult. + +In addition to the Lisp libraries themselves, you need a +@file{package-info.in} file and a simple @file{Makefile}. The rest is +done by @file{XEmacs.rules}, part of the packaging system +infrastructure. + +@file{package-info.in} contains a single Lisp form like this: + +@example +(name ; your package's name + (standards-version 1.1 + version VERSION + author-version AUTHOR_VERSION + date DATE + build-date BUILD_DATE + maintainer MAINTAINER + distribution xemacs ; change to "mule" if MULE is needed + priority high + category CATEGORY + dump nil + description "description" ; a one-line description string + filename FILENAME + md5sum MD5SUM + size SIZE + provides (feature1 feature2) ; one for every `provides' form + requires (REQUIRES) + type regular +)) +@end example + +You must fill in the four commented lines. The value of @code{name} is +the name of your package as an unquoted symbol. Normally it is the name +of the main Lisp file or principal feature provided. The allowed values +for distribution are @code{xemacs} and @code{mule}. Write them as +unquoted symbols. The @code{description} is a quoted Lisp string; use +the usual conventions. The value for @code{provides} is a list of +feature symbols (written unquoted). All of the features provided by +libraries in your package should be elements of this list. Implementing +an automatic method for generating the @file{provides} line is +desirable, but as yet undone. + +The variables in upper-case are references to variables set in the +@file{Makefile} or automatically generated. Do not change them; they +are automatically filled in by the build process. + +The remaining lines refer to implementation constants +(@code{standards-version}), or features that are unimplemented or have +been removed (@code{priority} and @code{dump}). The @code{type} line is +not normally relevant to external maintainers; the alternate value is +@code{single-file}, which refers to packages consed up out of a number +of single-file libraries that are more or less thematically related. An +example is @code{prog-modes}. Single-file packages are basically for +administrative convenience, and new packages should generally be created +as regular packages. + +The @file{Makefile} is quite stylized. The idea is similar to an +@file{Imakefile} or an @code{automake} file: the complexity is hidden in +generic rules files, in this case the @file{XEmacs.rules} include file +in the top directory of the packages hierarchy. Although a number of +facilities are available for complex libraries, most simple packages' +@file{Makefile}s contain a copyright notice, a few variable definitions, +an include for @file{XEmacs.rules}, and a couple of standard targets. + +The first few @code{make} variables defined are @code{VERSION}, +@code{AUTHOR_VERSION}, @code{MAINTAINER}, @code{PACKAGE}, +@code{PKG_TYPE}, @code{REQUIRES}, and @code{CATEGORY}. All but one were +described in the description of @file{package-info.in}. The last is an +admistrative grouping. Current categories include @code{comm}, +@code{games}, @code{libs}, @code{mule}, @code{oa}, @code{os}, +@code{prog}, and @code{wp}. @ref{Available Packages}, for a list of +categories. + +Next, define the variable @code{ELCS}. This contains the list of the +byte-compiled Lisp files used by the package. These files and their +@file{.el} versions will be included in the binary package. If there +are other files (such as extra Lisp sources or an upstream +@file{Makefile}) that are normally placed in the installed Lisp +directory, but not byte-compiled, they can be listed as the value of +@code{EXTRA_SOURCES}. + +The include is simply +@example +include ../../XEmacs.rules +@end example + +The standard targets follow. These are + +@example +all:: $(ELCS) auto-autoloads.elc + +srckit: srckit-alias + +binkit: binkit-alias +@end example + +Other targets (such as Texinfo sources) may need to be added as +dependencies for the @code{all} target. Dependencies for @code{srckit} +and @code{binkit} (that is, values for @var{srckit-alias} and +@var{binkit-alias}) are defined in @file{XEmacs.rules}. The most useful +of these values are given in the following table. + +@table @var +@item srckit-alias +Usually set to @code{srckit-std}. + +@item binkit-alias +May be set to @code{binkit-sourceonly}, @code{binkit-sourceinfo}, +@code{binkit-sourcedata}, or +@code{binkit-sourcedatainfo}. @code{sourceonly} indicates there is +nothing to install in a data directory or info directory. +@code{sourceinfo} indicates that source and info files are to be +installed. @code{sourcedata} indicates that source and etc (data) files +are to be installed. @code{sourcedatainfo} indicates source, etc +(data), and info files are to be installed. +@end table + +Data files include things like pixmaps for a package-specific toolbar, +and are normally installed in @file{etc/@var{PACKAGE_NAME}}. A few +packages have needs beyond the basic templates. See @file{XEmacs.rules} +or a future revision of this manual for details. + +@node Available Packages, , Creating Packages, Packages +@comment node-name, next, previous, up + +This section is surely out-of-date. If you're sure that XEmacs is +able to do something, but your installed XEmacs won't do it for you, +it's probably in a package. If you can't find it in this section, +that's a bug---please report it. It is very hard to keep this section +up-to-date; your reports, comments, and questions will help a lot. + +This data is up-to-date as of 10 February 1999. (Ouch! I told you!) + +@subsection Library Packages (libs) + +These packages are required to build and support most of the rest of +XEmacs. By design, xemacs-base is a `regular' package. Use restraint +when adding new files there as it is required by almost everything. + +@table @file +@item Sun +Support for Sparcworks. + +@item apel +A Portable Emacs Library. Used by XEmacs MIME support. + +@item edebug +A Lisp debugger. + +@item dired +The DIRectory EDitor is for manipulating, and running commands on +files in a directory. + +@item efs +Treat files on remote systems the same as local files. + +@item mail-lib +Fundamental lisp files for providing email support. + +@item tooltalk +Support for building with Tooltalk. + +@item xemacs-base +Fundamental XEmacs support. Install this unless you wish a totally +naked XEmacs. + +@item xemacs-devel +XEmacs Lisp developer support. This package contains utilities for +supporting Lisp development. It is a single-file package so it may be +tailored. +@end table + +@subsection Communications Packages (comm) + +These packages provide support for various communications, primarily +email and usenet. + +@table @file +@item footnote +Footnoting in mail message editing modes. + +@item gnats +XEmacs bug reports. + +@item gnus +The Gnus Newsreader and Mailreader. + +@item mailcrypt +Support for messaging encryption with PGP. + +@item mh-e +Front end support for MH. + +@item net-utils +Miscellaneous Networking Utilities. This is a single-file package and +files may be deleted at will. + +@item ph +Emacs implementation of the ph client to CCSO/qi directory servers. + +@item rmail +An obsolete Emacs mailer. If you do not already use it, don't start. + +@item supercite +An Emacs citation tool. Useful with all Emacs Mailers and Newsreaders. + +@item tm +Emacs MIME support. + +@item vm +An Emacs mailer. + +@item w3 +A Web browser. +@end table + +@subsection Games and Amusements (games) + +@table @file +@item cookie +Spook and Yow (Zippy quotes). + +@item games +Tetris, Sokoban, and Snake. + +@item mine +Minehunt. + +@item misc-games +Other amusements and diversions. +@end table + +@subsection Mule Support (mule) + +@table @file +@item egg-its +Wnn (4.2 and 6) support. SJ3 support. Must be installed prior to +XEmacs build. + +@item leim +Quail. Used for everything other than English and Japanese. + +@item locale +Used for localized menubars (French and Japanese) and localized splash +screens (Japanese). + +@item mule-base +Basic Mule support. Must be installed prior to building with Mule. + +@item skk +Another Japanese Language Input Method. Can be used without a +separate process running as a dictionary server. +@end table + +@subsection Productivity Packages (oa) + +@table @file +@item calendar +Calendar and diary support. + +@item edit-utils +Single file lisp packages for various XEmacs goodies. Load this and +weed out the junk you don't want. + +@item forms +Forms editing support (obsolete, use the builtin Widget instead). + +@item frame-icon +Provide a WM icon based on major mode. + +@item hm--html-menus +HTML editing. + +@item ispell +Spell-checking with ispell. + +@item pc +PC style interface emulation. + +@item psgml +Validated HTML/SGML editing. + +@item sgml +SGML/Linuxdoc-SGML editing. + +@item slider +User interface tool. + +@item speedbar +??? Document me. + +@item strokes +Mouse enhancement utility. + +@item text-modes +Various single file lisp packages for editing text files. + +@item time +Display time & date on the modeline. +@end table + +@subsection Operating System Utilities (os) + +@table @file +@item eterm +Terminal emulator. + +@item igrep +Enhanced front-end for Grep. + +@item ilisp +Front-end for Inferior Lisp. + +@item os-utils +Miscellaneous single-file O/S utilities, for printing, archiving, +compression, remote shells, etc. + +@item view-process +A Unix process browsing tool. +@end table + +@subsection Program Editing Support (prog) + +@table @file +@item ada +Ada language support. + +@item c-support +Basic single-file add-ons for editing C code. + +@item cc-mode +C, C++ and Java language support. + +@item debug +GUD, gdb, dbx debugging support. + +@item ediff +Interface over patch. + +@item emerge +Another interface over patch. + +@item pcl-cvs +CVS frontend. + +@item prog-modes +Miscellaneous single-file lisp files for various programming languages. + +@item scheme +Front-end support for Inferior Scheme. + +@item sh-script +Support for editing shell scripts. + +@item vc +Version Control for Free systems. + +@item vc-cc +Version Control for ClearCase. This package must be installed prior +to building XEmacs [broken as of XEmacs 20.5-beta19]. + +@item vhdl +Support for VHDL. +@end table + +@subsection Word Processing (wp) + +@table @file +@item auctex +Basic TeX/LaTeX support. + +@item crisp +Crisp/Brief emulation. + +@item edt +DEC EDIT/EDT emulation. + +@item texinfo +XEmacs TeXinfo support. + +@item textools +Single-file TeX support. + +@item tpu +DEC EDIT/TPU support. + +@item viper +VI emulation support. +@end table + diff -r -u -N xemacs-21.1.12/man/xemacs/search.texi xemacs-21.1.13/man/xemacs/search.texi --- xemacs-21.1.12/man/xemacs/search.texi Fri Jul 14 20:45:09 2000 +++ xemacs-21.1.13/man/xemacs/search.texi Thu Nov 16 22:21:34 2000 @@ -77,7 +77,7 @@ within searches (@kbd{C-q}, @kbd{C-w}, @kbd{C-r}, @kbd{C-s}, or @kbd{C-y}). Sometimes you search for @samp{FOO} and find it, but were actually -looking for a different occurence of it. To move to the next occurrence +looking for a different occurrence of it. To move to the next occurrence of the search string, type another @kbd{C-s}. Do this as often as necessary. If you overshoot, you can cancel some @kbd{C-s} characters with @key{DEL}. diff -r -u -N xemacs-21.1.12/man/xemacs/startup.texi xemacs-21.1.13/man/xemacs/startup.texi --- xemacs-21.1.12/man/xemacs/startup.texi Mon Feb 7 21:54:50 2000 +++ xemacs-21.1.13/man/xemacs/startup.texi Sun Nov 19 22:25:28 2000 @@ -1,4 +1,4 @@ -@node Startup Paths, Basic, Command Switches, Top +@node Startup Paths, Packages, Command Switches, Top @comment node-name, next, previous, up @section How XEmacs finds Directories and Files @@ -39,7 +39,7 @@ @cindex root of a hierarchy Whenever this section refers to a directory using the shorthand @code{}, it means that XEmacs searches for it under all -hierarchies under all hierarchies XEmacs was able to scrounge up. In a +hierarchies XEmacs was able to scrounge up. In a running XEmacs, the hierarchy roots are stored in the variable @code{emacs-roots}. @vindex emacs-roots @@ -84,12 +84,12 @@ package hierarchies with the @code{--package-path} option to configure. @cindex package path The early, late, and last components of the package path are separated -by double instead of single colons. If three components are present, -they are locate the early, late, and last package hierarchies +by double instead of single colons. If all three components are +present, they locate the early, late, and last package hierarchies respectively. If two components are present, they locate the early and -late hierarchies. If only one component is present, it locates the late -hierarchy. At run time, the package path may also be specified via the -@code{EMACSPACKAGEPATH} environment variable. +late hierarchies. If only one component is present, it locates the +late hierarchy. At run time, the package path may also be specified via +the @code{EMACSPACKAGEPATH} environment variable. An XEmacs package is laid out just like a normal installed XEmacs lisp directory. It may have @file{lisp}, @file{etc}, @file{info}, and diff -r -u -N xemacs-21.1.12/man/xemacs/xemacs.texi xemacs-21.1.13/man/xemacs/xemacs.texi --- xemacs-21.1.12/man/xemacs/xemacs.texi Mon Feb 7 21:54:50 2000 +++ xemacs-21.1.13/man/xemacs/xemacs.texi Sun Nov 19 22:25:28 2000 @@ -130,7 +130,8 @@ * Command Switches:: Hairy startup options. * Startup Paths:: - How XEmacs finds Directories and Files + How XEmacs finds Directories and Files. +* Packages:: How XEmacs organizes its high-level functionality. Fundamental Editing Commands * Basic:: The most basic editing commands. @@ -169,7 +170,6 @@ * Text:: Commands and modes for editing English. * Programs:: Commands and modes for editing programs. * Running:: Compiling, running and debugging programs. -* Packages:: How to add new packages to XEmacs. * Abbrevs:: How to define text abbreviations to reduce the number of characters you must type. * Picture:: Editing pictures made up of characters @@ -235,6 +235,13 @@ * Menu Customization:: Adding and removing menu items and related operations. +Packages + +* Packages:: Introduction to XEmacs Packages. +* Package Terminology:: Understanding different kinds of packages. +* Using Packages:: How to install and use packages. +* Building Packages:: Building packages from sources. + Basic Editing Commands * Blank Lines:: Commands to make or delete blank lines. @@ -499,13 +506,6 @@ * Loading:: Loading libraries of Lisp code into XEmacs for use. * Compiling Libraries:: Compiling a library makes it load and run faster. * Mocklisp:: Converting Mocklisp to Lisp so XEmacs can run it. - -Packages - -* Packages:: Introduction to XEmacs Packages. -* Package Terminology:: Understanding different kinds of packages. -* Using Packages:: How to install and use packages. -* Building Packages:: Building packages from sources. Abbrevs diff -r -u -N xemacs-21.1.12/man/xemacs-faq.texi xemacs-21.1.13/man/xemacs-faq.texi --- xemacs-21.1.12/man/xemacs-faq.texi Tue Aug 1 21:33:39 2000 +++ xemacs-21.1.13/man/xemacs-faq.texi Sat Dec 16 21:08:31 2000 @@ -148,6 +148,8 @@ * Q2.0.10:: After I run configure I find a coredump, is something wrong? * Q2.0.11:: XEmacs can't resolve host names. * Q2.0.12:: Why can't I strip XEmacs? +* Q2.0.13:: I don't need no steenkin' packages. Do I? (NEW) +* Q2.0.14:: How do I figure out which packages to install? (NEW) Trouble Shooting: * Q2.1.1:: XEmacs just crashed on me! @@ -174,6 +176,7 @@ * 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) +* Q2.1.25:: After upgrading, XEmacs won't do `foo' any more! (NEW) Customization and Options @@ -345,7 +348,7 @@ * Q5.1.4:: What is the performance hit of @code{let}? * Q5.1.5:: What is the recommended use of @code{setq}? * Q5.1.6:: What is the typical misuse of @code{setq} ? -* Q5.1.7:: I like the the @code{do} form of cl, does it slow things down? +* Q5.1.7:: I like the @code{do} form of cl, does it slow things down? * Q5.1.8:: I like recursion, does it slow things down? * Q5.1.9:: How do I put a glyph as annotation in a buffer? * Q5.1.10:: @code{map-extents} won't traverse all of my extents! @@ -787,23 +790,23 @@ @itemize @bullet @item @email{martin@@xemacs.org, Martin Buchholz} -@ifhtml +@html
Portrait of Martin Buchholz
-@end ifhtml +@end html @item @email{steve@@xemacs.org, Steve Baur} -@ifhtml +@html
Portrait of Steve Baur
-@end ifhtml +@end html @item @email{hniksic@@xemacs.org, Hrvoje Niksic} -@ifhtml +@html
Portrait of Hrvoje Niksic
-@end ifhtml +@end html @end itemize @@ -811,32 +814,32 @@ @itemize @bullet @item @email{cthomp@@xemacs.org, Chuck Thompson} -@ifhtml +@html
Portrait of Chuck Thompson
-@end ifhtml +@end html Chuck was Mr. XEmacs from 19.11 through 19.14, and is responsible for XEmacs becoming a widely distributed program over the Internet. @item @email{ben@@xemacs.org, Ben Wing} -@ifhtml +@html
Portrait of Ben Wing
-@end ifhtml +@end html @end itemize @itemize @bullet @item @email{jwz@@jwz.org, Jamie Zawinski} -@ifhtml +@html
Portrait of Jamie Zawinski
-@end ifhtml +@end html Jamie Zawinski was Mr. Lucid Emacs from 19.0 through 19.10, the last release actually named Lucid Emacs. Richard Mlynarik was crucial to most of those releases. -@item @email{mly@@adoc.xerox.com, Richard Mlynarik} +@item @email{Mly@@POBox.COM, Richard Mlynarik} @end itemize Along with many other contributors, partially enumerated in the @@ -1212,6 +1215,8 @@ * Q2.0.10:: After I run configure I find a coredump, is something wrong? * Q2.0.11:: XEmacs can't resolve host names. * Q2.0.12:: Why can't I strip XEmacs? +* Q2.0.13:: I don't need no steenkin' packages. Do I? (NEW) +* Q2.0.14:: I don't want to install a million .els one at a time! (NEW) Trouble Shooting: * Q2.1.1:: XEmacs just crashed on me! @@ -1238,6 +1243,7 @@ * 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) +* Q2.1.25:: After upgrading, XEmacs won't do `foo' any more! (NEW) @end menu @node Q2.0.1, Q2.0.2, Installation, Installation @@ -1520,7 +1526,7 @@ to link against the DNS resolver library code. @end quotation -@node Q2.0.12, Q2.1.1, Q2.0.11, Installation +@node Q2.0.12, Q2.0.13, Q2.0.11, Installation @unnumberedsubsec Q2.0.12: Why can't I strip XEmacs? @email{cognot@@fronsac.ensg.u-nancy.fr, Richard Cognot} writes: @@ -1575,7 +1581,39 @@ @end enumerate @end quotation -@node Q2.1.1, Q2.1.2, Q2.0.12, Installation +@node Q2.0.13, Q2.0.14, Q2.0.12, Installation +@unnumberedsubsec Q2.0.13: I don't need no steenkin' packages. Do I? (NEW) + +Strictly speaking, no. XEmacs will build and install just fine without +any packages installed. However, only the most basic editing functions +will be available with no packages installed, so installing packages is +an essential part of making your installed XEmacs _useful_. + +@node Q2.0.14, Q2.1.1, Q2.0.13, Installation +@unnumberedsubsec Q2.0.12: How do I figure out which packages to install? (NEW) + +Many people really liked the old way that packages were bundled and do +not want to mess with packages at all. You can grab all the packages at +once like you used to with old XEmacs versions. Download the file + +@file{xemacs-sumo.tar.gz} + +For an XEmacs compiled with Mule you also need + +@file{xemacs-mule-sumo.tar.gz} + +N.B. They are called 'Sumo Tarballs' for good reason. They are +currently about 15MB and 2.3MB (gzipped) respectively. + +Install them by + +@code{cd $prefix/lib/xemacs ; gunzip -c | tar xf -} + +As the Sumo tarballs are not regenerated as often as the individual +packages, it is recommended that you use the automatic package tools +afterwards to pick up any recent updates. + +@node Q2.1.1, Q2.1.2, Q2.0.14, Installation @unnumberedsec 2.1: Trouble Shooting @unnumberedsubsec Q2.1.1: Help! XEmacs just crashed on me! @@ -2274,7 +2312,7 @@ @end example @end quotation -@node Q2.1.24, , Q2.1.23, Installation +@node Q2.1.24, Q2.1.25, Q2.1.23, Installation @unnumberedsubsec Q2.1.24: XEmacs won't start without network. (NEW) If XEmacs starts when you're on the network, but fails when you're not @@ -2287,6 +2325,15 @@ Add that line, and XEmacs will be happy. +@node Q2.1.25, , Q2.1.24, Installation +@unnumberedsubsec Q2.1.25:: After upgrading, XEmacs won't do `foo' any more! (NEW) + +You have been used to doing `foo', but now when you invoke it (or click +the toolbar button or select the menu item), nothing (or an error) +happens. The simplest explanation is that you are missing a package +that is essential to you. You can either track it down and install it, +or install the `Sumo Tarball' (see @pxref{Q2.0.14}). + @node Customization, Subsystems, Installation, Top @unnumbered 3 Customization and Options @@ -3029,7 +3076,7 @@ @node Q3.5.3, Q3.5.4, Q3.5.2, Customization @unnumberedsubsec Q3.5.3: How do I bind C-. and C-; to scroll one line up and down? -Add the following (Thanks to @email{mly@@adoc.xerox.com, Richard Mlynarik} and +Add the following (Thanks to @email{Mly@@POBox.COM, Richard Mlynarik} and @email{wayne@@zen.cac.stratus.com, Wayne Newberry}) to @file{.emacs}: @lisp @@ -4656,7 +4703,7 @@ * Q5.1.4:: What is the performance hit of @code{let}? * Q5.1.5:: What is the recommended use of @code{setq}? * Q5.1.6:: What is the typical misuse of @code{setq}? -* Q5.1.7:: I like the the @code{do} form of cl, does it slow things down? +* Q5.1.7:: I like the @code{do} form of cl, does it slow things down? * Q5.1.8:: I like recursion, does it slow things down? * Q5.1.9:: How do I put a glyph as annotation in a buffer? * Q5.1.10:: @code{map-extents} won't traverse all of my extents! @@ -5306,7 +5353,7 @@ @end lisp @node Q5.1.7, Q5.1.8, Q5.1.6, Miscellaneous -@unnumberedsubsec Q5.1.7: I like the the @code{do} form of cl, does it slow things down? +@unnumberedsubsec Q5.1.7: I like the @code{do} form of cl, does it slow things down? It shouldn't. Here is what Dave Gillespie has to say about cl.el performance: diff -r -u -N xemacs-21.1.12/nt/ChangeLog xemacs-21.1.13/nt/ChangeLog --- xemacs-21.1.12/nt/ChangeLog Fri Aug 4 21:31:41 2000 +++ xemacs-21.1.13/nt/ChangeLog Sun Jan 7 15:57:57 2001 @@ -1,3 +1,16 @@ +2001-01-07 XEmacs Build Bot + + * XEmacs 21.1.13 is released + +2000-12-18 Andy Piper + + * runemacs.c (WinMain): force a trailing 0 on the filename. + +2000-10-07 Adrian Aichner + + * xemacs.mak (default): Enforce running nmake from xemacs.mak's + directory to avoid problems with relative paths. + 2000-08-04 XEmacs Build Bot * XEmacs 21.1.12 is released diff -r -u -N xemacs-21.1.12/nt/PROBLEMS xemacs-21.1.13/nt/PROBLEMS --- xemacs-21.1.12/nt/PROBLEMS Sat Mar 11 14:41:21 2000 +++ xemacs-21.1.13/nt/PROBLEMS Thu Nov 16 22:21:35 2000 @@ -89,11 +89,11 @@ Rebindind C-x and C-c is trickier because by default these are prefix keys in XEmacs. See the "Key Bindings" node in the XEmacs manual. -** Behaviour of selected regions +** Behavior of selected regions Selected regions behave differently in XEmacs from typical Windows programs. The pc-select package provides various functions to enable -the standard Windows behaviour for selected regions (eg mark via +the standard Windows behavior for selected regions (eg mark via shift-arrow, self-inserting deletes region, etc). ** Limitations on the use of the AltGr key. diff -r -u -N xemacs-21.1.12/nt/README xemacs-21.1.13/nt/README --- xemacs-21.1.12/nt/README Thu Mar 4 08:14:27 1999 +++ xemacs-21.1.13/nt/README Sun Nov 19 22:25:29 2000 @@ -52,7 +52,7 @@ xemacs sources to the contrib\winnt subdirectory of the tiff sources, cd to that directory and build libtiff with 'nmake -f tiff.mak'. Note: tiff.mak has only been verified to work under WinNT, not Win95 or 98. - However, the lastest distribution of libtiff includes a + However, the latest distribution of libtiff includes a contrib\win95\makefile.w95; that might work. 4. If you want JPEG support grab the latest version of jpegsrc (jpeg-6b at diff -r -u -N xemacs-21.1.12/nt/runemacs.c xemacs-21.1.13/nt/runemacs.c --- xemacs-21.1.12/nt/runemacs.c Fri Oct 16 02:25:29 1998 +++ xemacs-21.1.13/nt/runemacs.c Tue Dec 19 01:00:44 2000 @@ -114,6 +114,12 @@ else { strcat(new_cmdline, "\\"); + /* #### Horrible kludge to get round 1.1.6 bug in readlink. */ + p = strrchr (real_name, '.'); + if (p[1] == 'e' || p[1] == 'E' + && p[2] == 'x' || p[2] == 'X' + && p[3] == 'e' || p[3] == 'E') + p[4] = 0; strcat(new_cmdline, real_name); strcat(new_cmdline, " "); } diff -r -u -N xemacs-21.1.12/nt/xemacs.mak xemacs-21.1.13/nt/xemacs.mak --- xemacs-21.1.12/nt/xemacs.mak Mon Feb 7 21:54:52 2000 +++ xemacs-21.1.13/nt/xemacs.mak Sun Nov 19 22:25:29 2000 @@ -24,7 +24,14 @@ # Synched up with: Not in FSF. # -XEMACS=.. +# APA: Since there seems to be no way to determine the directory where +# xemacs.mak is located (from within nmake) we just insist on the user +# to invoke nmake in the directory where xemacs.mak is. +!if !exist("$(MAKEDIR)\xemacs.mak") +!error Please run nmake from the directory of this makefile (xemacs\nt). +!endif + +XEMACS=$(MAKEDIR)\.. LISP=$(XEMACS)\lisp NT=$(XEMACS)\nt diff -r -u -N xemacs-21.1.12/src/ChangeLog xemacs-21.1.13/src/ChangeLog --- xemacs-21.1.12/src/ChangeLog Fri Aug 4 21:31:41 2000 +++ xemacs-21.1.13/src/ChangeLog Sun Jan 7 15:57:57 2001 @@ -1,3 +1,184 @@ +2001-01-07 XEmacs Build Bot + + * XEmacs 21.1.13 is released + +2000-12-16 Stephen J. Turnbull + + * file-coding.h (enum coding_category_type): Reorder coding + priority list. Works around crash in ISO-lock coding system + reported by M. Fabian. + +2000-12-18 Yoshiki Hayashi + + * callproc.c (Fcall_process_internal): + * event-stream.c (command_builder_find_menu_accelerator): + * fileio.c (Fset_visited_file_modtime): + * keymap.c (event_matches_key_specifier_p): Fix + GCPROing uninitialized variables. + +2000-11-02 Stephen J. Turnbull + + * lwlib.h: Typo fixes and tiny clarifications. + +2000-11-22 Stephen J. Turnbull + + * mule-charset.c (Fcharset_property): improve type checking. + +2000-11-14 Yoshiki Hayashi + + * event-Xt.c: + * event-stream.c: + * fileio.c: + * menubar-msw.c: UNGCPRO before return. + +2000-11-01 Martin Buchholz + + * config.h.in: Handle alloca with Compaq C on Alpha Linux. + + * m/alpha.h: Let configure handle SYSTEM_MALLOC on Linux. + +2000-12-13 Martin Buchholz + + * unexelfsgi.c: Sync from 21.2. + +2000-11-19 Golubev I. N. + + * doprnt.c: fix minwidth bug in format + +2000-10-03 Yoshiki Hayashi + + * search.c (Freplace_match): Set newtext to an empty string. + +2000-10-02 Stephen J. Turnbull + + * file-coding.c (decode_coding_iso2022): + mule-coding.c (decode_coding_iso2022): + - Prevent crash when decoding ISO7/Lock detected files + (mule-coding.c is obsolete but synching just in case). + +2000-09-20 Martin Buchholz + + * Makefile.in.in: Recent purify's require absolute paths for cache-dir. + +2000-09-14 Martin Buchholz + + * make-src-depend: Fix typo. + +2000-09-14 Martin Buchholz + + * s/gnu.h: + * s/linux.h: + * s/hpux.h: + Use EMACS_BLOCK_SIGNAL instead of sigblock. + From "Golubev I. N." . + +2000-08-23 Yoshiki Hayashi + + * syntax.c (regex_emacs_buffer_p): New variable. + * syntax.h (regex_emacs_buffer_p): extern. + * search.c (looking_at_1): + (string_match_1): + (fast_string_match): + (search_buffer): Set regex_emacs_buffer_p. + * regex.c (re_match_2_internal): Reference regex_emacs_buffer_p + when before_dot, at_dot, after_dot. + +2000-09-10 Jonathan Harris + + * event-msw.c (mswindows_key_to_emacs_keysym): + Add "pause" key, fix "menu" key. + +2000-05-09 Ben Wing + + * ntheap.c (recreate_heap): Changed unknown (VC6 only?) SIZE_T to + DWORD. + +2000-09-09 Martin Buchholz + + * eval.c (reinit_vars_of_eval): + Increase max_lisp_eval_depth to 1000, + required for thai-xtis.el to byte-compile under some circumstances. + +2000-09-04 Martin Buchholz + + * event-Xt.c (x_to_emacs_keysym): Increase size of `buffer' to 513. + From Kenichi Handa. + +2000-11-14 Golubev I. N. + + * faces.c (get_extent_fragment_face_cache_index): + Fix cachel.merged_faces memory leak. + +2000-11-14 "Alec Wolman" + + * emacs.c (kill-emacs): Kill auto-save list on normal exit. + +2000-10-27 Martin Buchholz + + * sgiplay.c: #include + +2000-09-14 Martin Buchholz + + * frame.c (device_matches_console_spec): no longer takes a `frame' arg + (next_frame_internal): Removed. We now just have next_frame. + (next_frame): + Write a simpler and cleaner one-pass algorithm. + Remove called_from_delete_device arg and #ifdefed-out code. + Fixes this crash: + (gdb) run -eval '(progn (make-device (quote x) "polgar:0") (next-window (minibuffer-window) t (quote visible) (second (device-list))))' + Fixes this crash: + (gdb) run -eval '(progn (make-frame nil (make-device (quote x) "polgar:0")) (next-window (minibuffer-window) t (quote visible) (second (device-list))))' +Fatal error: assertion failed, file /project/xemacs/ws/dev/src/frame.h, line 245, RECORD_TYPEP (obj, lrecord_type_frame) + (previous_frame): + Renamed from prev_frame. Update callers. + Cleaned up to have an analogous implementation to next_frame. + (other_visible_frames_internal): Remove the + called_from_delete_device bogus arg, and hence, remove this + function. Just use other_visible_frames(). + + * frame.h: Rename prev_frame to previous_frame. + device_matches_console_spec no longer takes a `frame' arg. + + * window.c (Fnext_window): + Prettify docstring. + Since next_frame() is guaranteed to return a frame, remove check + for nil inserted in previous patch. + (Fprevious_window): + Prettify docstring. + Make code look more like Fnext_window. + (window_loop): + Respect the `console' arg when iterating through windows. + Fixes bug: (get-buffer-window buffer t device) not respecting + the `device' arg. + This function needs more work, as others have pointed out. + +2000-09-01 Martin Buchholz + + * sysdep.c (get_pty_max_bytes): + Support pty input lines longer than 512 bytes on HP-UX 10.20. + +2000-08-12 Alexandre Oliva + + * s/hpux.h: Don't use undefined function sigunblock(). + +2000-08-31 Martin Buchholz + + * config.h.in: Add HAVE_BALLOON_HELP. + * emacs.c: Use HAVE_BALLOON_HELP. + * Makefile.in.in (x_objs): + Make Balloon Help conditional on finding shape.h. + +2000-08-07 Gunnar Evermann + + * eval.c (Ffunction_min_args): + (Ffunction_max_args): GCPRO function. + +2000-08-06 Gunnar Evermann + + * eval.c (Ffunction_min_args): + (Ffunction_max_args): If function needs to be autoloaded actually + use the loaded definition. + 2000-08-04 XEmacs Build Bot * XEmacs 21.1.12 is released @@ -1503,7 +1684,7 @@ 1998-07-17 Olivier Galibert * glyphs-x.c (convert_EImage_to_XImage): Fix previous patch (conv - byte order is dependant of the local byte order). + byte order is dependent of the local byte order). From Takeshi Hagiwara 1998-07-18 SL Baur diff -r -u -N xemacs-21.1.12/src/ChangeLog.1 xemacs-21.1.13/src/ChangeLog.1 --- xemacs-21.1.12/src/ChangeLog.1 Mon May 11 21:06:26 1998 +++ xemacs-21.1.13/src/ChangeLog.1 Thu Nov 16 22:21:38 2000 @@ -3547,7 +3547,7 @@ * redisplay.c: (generate_formatted_string_db): new flag to distinguish a modeline string from a title or icon one, plus use a negative first pos to - indicate the modeline hscroll ammount. + indicate the modeline hscroll amount. (add_string_to_fstring_db_runes): completely rewrote this function to handle the case of scrolled modelines. (add_glyph_to_fstring_db_runes): handle the case of scrolled @@ -3555,7 +3555,7 @@ * window.c: (Fmodeline_hscroll): new function to return the modeline current - horizontal scroll ammount. + horizontal scroll amount. (Fset_modeline_hscroll): new function to scroll the modeline horizontaly. Plus some updates related to this new functionality (windows @@ -5183,7 +5183,7 @@ 1997-11-19 Jonathan Harris - * redisplay-msw.c: Calls GdiFlush() in _ouput_end, _clear_frame and + * redisplay-msw.c: Calls GdiFlush() in _output_end, _clear_frame and _redraw_exposed_area * frame-msw.c: mswindows_init_frame_2 diff -r -u -N xemacs-21.1.12/src/Makefile.in.in xemacs-21.1.13/src/Makefile.in.in --- xemacs-21.1.12/src/Makefile.in.in Fri Jun 19 20:58:42 1998 +++ xemacs-21.1.13/src/Makefile.in.in Sun Nov 19 17:08:18 2000 @@ -110,7 +110,7 @@ $(lwlib_libs) : cd ../lwlib && $(RECURSIVE_MAKE) -x_objs=balloon_help.o balloon-x.o console-x.o device-x.o event-Xt.o frame-x.o\ +x_objs=console-x.o device-x.o event-Xt.o frame-x.o\ glyphs-x.o objects-x.o redisplay-x.o xgccache.o xselect.o #ifdef AIX4 @@ -477,7 +477,7 @@ ## Purify PURIFY_PROG=purify PURIFY_FLAGS=-chain-length=32 -ignore-signals=SIGPOLL -threads=yes \ - -cache-dir=./purecache -always-use-cache-dir=yes -pointer-mask=0x0fffffff + -cache-dir=${srcdir}/purecache -always-use-cache-dir=yes -pointer-mask=0x0fffffff puremacs: $(temacs_deps) $(PURIFY_PROG) $(PURIFY_FLAGS) $(LD) $(temacs_link_args) -lpthread diff -r -u -N xemacs-21.1.12/src/callproc.c xemacs-21.1.13/src/callproc.c --- xemacs-21.1.12/src/callproc.c Thu Aug 3 22:50:04 2000 +++ xemacs-21.1.13/src/callproc.c Tue Dec 19 01:00:48 2000 @@ -224,8 +224,8 @@ buffer's current directory. We can't just have the child check for an error when it does the chdir, since it's in a vfork. */ - NGCPRO2 (current_dir, path); /* Caller gcprotects args[] */ current_dir = current_buffer->directory; + NGCPRO2 (current_dir, path); /* Caller gcprotects args[] */ current_dir = Funhandled_file_name_directory (current_dir); current_dir = expand_and_dir_to_file (current_dir, Qnil); #if 0 diff -r -u -N xemacs-21.1.12/src/config.h.in xemacs-21.1.13/src/config.h.in --- xemacs-21.1.12/src/config.h.in Wed Aug 2 21:59:13 2000 +++ xemacs-21.1.13/src/config.h.in Sat Dec 16 21:08:48 2000 @@ -33,7 +33,10 @@ #ifndef NOT_C_CODE #ifdef __GNUC__ #define alloca __builtin_alloca -#elif HAVE_ALLOCA_H +#elif defined __DECC +#include +#pragma intrinsic(alloca) +#elif defined HAVE_ALLOCA_H #include #elif defined(_AIX) #pragma alloca @@ -160,6 +163,8 @@ #undef THIS_IS_X11R4 #undef THIS_IS_X11R5 #undef THIS_IS_X11R6 + +#undef HAVE_BALLOON_HELP /* Where do we find bitmaps? */ #undef BITMAPDIR diff -r -u -N xemacs-21.1.12/src/depend xemacs-21.1.13/src/depend --- xemacs-21.1.12/src/depend Sun Jul 9 01:34:55 2000 +++ xemacs-21.1.13/src/depend Thu Aug 31 04:37:43 2000 @@ -142,7 +142,7 @@ md5.o: $(LISP_H) buffer.h bufslots.h file-coding.h lisp-disunion.h lisp-union.h lrecord.h lstream.h mule-charset.h symeval.h symsinit.h menubar.o: $(LISP_H) buffer.h bufslots.h conslots.h console.h device.h frame.h frameslots.h gui.h lisp-disunion.h lisp-union.h lrecord.h menubar.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h toolbar.h window.h winslots.h minibuf.o: $(LISP_H) buffer.h bufslots.h commands.h conslots.h console-stream.h console.h device.h events.h frame.h frameslots.h insdel.h lisp-disunion.h lisp-union.h lrecord.h mule-charset.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h toolbar.h window.h winslots.h -nas.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h syssignal.h +nas.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h sysdep.h syssignal.h nt.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h nt.h ntheap.h symeval.h symsinit.h sysproc.h syssignal.h systime.h ntheap.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h ntheap.h symeval.h symsinit.h ntplay.o: $(LISP_H) lisp-disunion.h lisp-union.h lrecord.h symeval.h symsinit.h sysfile.h diff -r -u -N xemacs-21.1.12/src/dialog-msw.c xemacs-21.1.13/src/dialog-msw.c --- xemacs-21.1.12/src/dialog-msw.c Sat Jun 13 00:28:40 1998 +++ xemacs-21.1.13/src/dialog-msw.c Thu Nov 16 22:21:39 2000 @@ -46,7 +46,7 @@ Button metrics -------------- All buttons have height of 15 DLU. The minimum width for a button is 32 DLU, - but it can be expanded to accomodate its text, so the width is calculated as + but it can be expanded to accommodate its text, so the width is calculated as 8 DLU per button plus 4 DLU per character. max (32, 6 * text_lenght). The factor of six is rather empirical, but it works better than 8 which comes from the definition of a DLU. Buttons are diff -r -u -N xemacs-21.1.12/src/doprnt.c xemacs-21.1.13/src/doprnt.c --- xemacs-21.1.12/src/doprnt.c Wed Oct 20 22:53:30 1999 +++ xemacs-21.1.13/src/doprnt.c Sun Nov 19 22:25:32 2000 @@ -652,13 +652,14 @@ strcat (constructed_spec, " "); if (spec->number_flag) strcat (constructed_spec, "#"); + tem = strlen (constructed_spec); if (spec->precision >= 0) { strcat (constructed_spec, "."); long_to_string (constructed_spec + strlen (constructed_spec), spec->precision); } - sprintf (constructed_spec + (tem = strlen (constructed_spec)), "%c", ch); + sprintf (constructed_spec + strlen (constructed_spec), "%c", ch); /* sprintf the mofo */ /* we have to use separate calls to sprintf(), rather than diff -r -u -N xemacs-21.1.12/src/editfns.c xemacs-21.1.13/src/editfns.c --- xemacs-21.1.12/src/editfns.c Thu Aug 3 22:50:04 2000 +++ xemacs-21.1.13/src/editfns.c Thu Nov 16 22:21:39 2000 @@ -369,7 +369,7 @@ and cleaner never to alter the window/buffer connections. */ /* I'm certain some code somewhere depends on this behavior. --jwz */ /* Even if it did, it certainly doesn't matter anymore, because - this has been the behaviour for countless XEmacs releases + this has been the behavior for countless XEmacs releases now. --hniksic */ if (visible && (current_buffer != XBUFFER (XWINDOW (selected_window)->buffer))) diff -r -u -N xemacs-21.1.12/src/emacs.c xemacs-21.1.13/src/emacs.c --- xemacs-21.1.12/src/emacs.c Thu Jul 13 07:53:08 2000 +++ xemacs-21.1.13/src/emacs.c Thu Nov 16 22:21:40 2000 @@ -218,6 +218,7 @@ Lisp_Object Qkill_emacs_hook; Lisp_Object Qsave_buffers_kill_emacs; +extern Lisp_Object Vauto_save_list_file_name; /* Signal code for the fatal signal that was received */ static int fatal_error_code; @@ -867,8 +868,10 @@ syms_of_abbrev (); syms_of_alloc (); #ifdef HAVE_X_WINDOWS +#ifdef HAVE_BALLOON_HELP syms_of_balloon_x (); #endif +#endif syms_of_buffer (); syms_of_bytecode (); syms_of_callint (); @@ -1259,8 +1262,10 @@ vars_of_abbrev (); vars_of_alloc (); #ifdef HAVE_X_WINDOWS +#ifdef HAVE_BALLOON_HELP vars_of_balloon_x (); #endif +#endif vars_of_buffer (); vars_of_bytecode (); vars_of_callint (); @@ -2206,6 +2211,12 @@ UNGCPRO; shut_down_emacs (0, ((STRINGP (arg)) ? arg : Qnil)); + + /* If we have an auto-save list file, + kill it because we are exiting Emacs deliberately (not crashing). + Do it after shut_down_emacs, which does an auto-save. */ + if (STRINGP (Vauto_save_list_file_name)) + unlink ((char *) XSTRING_DATA (Vauto_save_list_file_name)); #if defined(GNU_MALLOC) __free_hook = voodoo_free_hook; diff -r -u -N xemacs-21.1.12/src/eval.c xemacs-21.1.13/src/eval.c --- xemacs-21.1.12/src/eval.c Fri Jul 14 20:45:14 2000 +++ xemacs-21.1.13/src/eval.c Sat Dec 16 21:08:49 2000 @@ -1193,10 +1193,10 @@ Otherwise, the macro is expanded and the expansion is considered in place of FORM. When a non-macro-call results, it is returned. -The second optional arg ENVIRONMENT species an environment of macro +The second optional arg ENVIRONMENT specifies an environment of macro definitions to shadow the loaded ones for use in file byte-compilation. */ - (form, env)) + (form, environment)) { /* This function can GC */ /* With cleanups from Hallvard Furuseth. */ @@ -1217,7 +1217,7 @@ { QUIT; sym = def; - tem = Fassq (sym, env); + tem = Fassq (sym, environment); if (NILP (tem)) { def = XSYMBOL (sym)->function; @@ -1226,11 +1226,11 @@ } break; } - /* Right now TEM is the result from SYM in ENV, + /* Right now TEM is the result from SYM in ENVIRONMENT, and if TEM is nil then DEF is SYM's function definition. */ if (NILP (tem)) { - /* SYM is not mentioned in ENV. + /* SYM is not mentioned in ENVIRONMENT. Look at its function definition. */ if (UNBOUNDP (def) || !CONSP (def)) @@ -3275,7 +3275,12 @@ } if (EQ (funcar, Qautoload)) { + struct gcpro gcpro1; + + GCPRO1 (function); do_autoload (function, orig_function); + UNGCPRO; + function = orig_function; goto retry; } if (EQ (funcar, Qlambda)) @@ -3338,7 +3343,12 @@ } if (EQ (funcar, Qautoload)) { + struct gcpro gcpro1; + + GCPRO1 (function); do_autoload (function, orig_function); + UNGCPRO; + function = orig_function; goto retry; } if (EQ (funcar, Qlambda)) @@ -3635,7 +3645,7 @@ the given arguments and its return value is returned. If it is a list of functions, those functions are called, in order, with the given arguments ARGS. -It is best not to depend on the value return by `run-hook-with-args', +It is best not to depend on the value returned by `run-hook-with-args', as that may change. To make a hook variable buffer-local, use `make-local-hook', @@ -5249,7 +5259,7 @@ specpdl = xnew_array (struct specbinding, specpdl_size); /* XEmacs change: increase these values. */ max_specpdl_size = 3000; - max_lisp_eval_depth = 500; + max_lisp_eval_depth = 1000; throw_level = 0; reinit_eval (); diff -r -u -N xemacs-21.1.12/src/event-Xt.c xemacs-21.1.13/src/event-Xt.c --- xemacs-21.1.12/src/event-Xt.c Wed Aug 2 21:59:13 2000 +++ xemacs-21.1.13/src/event-Xt.c Sat Dec 16 21:08:49 2000 @@ -772,7 +772,11 @@ #ifdef HAVE_XIM int len; - char buffer[64]; + /* Some implementations of XmbLookupString don't return + XBufferOverflow correctly, so increase the size of the xim input + buffer from 64 to the more reasonable size 513, as Emacs has done. + From Kenichi Handa. */ + char buffer[513]; char *bufptr = buffer; int bufsiz = sizeof (buffer); Status status; @@ -1119,10 +1123,11 @@ Lisp_Object l_dndlist = Qnil, l_item = Qnil; struct gcpro gcpro1, gcpro2, gcpro3, gcpro4; - GCPRO4 (l_type, l_data, l_dndlist, l_item); - if (! frame) return 0; /* not for us */ + + GCPRO4 (l_type, l_data, l_dndlist, l_item); + XSETFRAME (emacs_event->channel, frame); emacs_event->event_type = misc_user_event; diff -r -u -N xemacs-21.1.12/src/event-msw.c xemacs-21.1.13/src/event-msw.c --- xemacs-21.1.12/src/event-msw.c Sat Jul 15 12:03:28 2000 +++ xemacs-21.1.13/src/event-msw.c Thu Nov 16 22:21:41 2000 @@ -2330,7 +2330,6 @@ * Translate a mswindows virtual key to a keysym. * Only returns non-Qnil for keys that don't generate WM_CHAR messages * or whose ASCII codes (like space) xemacs doesn't like. - * Virtual key values are defined in winresrc.h */ Lisp_Object mswindows_key_to_emacs_keysym (int mswindows_key, int mods, int extendedp) @@ -2339,6 +2338,7 @@ { switch (mswindows_key) { + case VK_CANCEL: return KEYSYM ("pause"); case VK_RETURN: return KEYSYM ("kp-enter"); case VK_PRIOR: return KEYSYM ("prior"); case VK_NEXT: return KEYSYM ("next"); @@ -2350,6 +2350,11 @@ case VK_DOWN: return KEYSYM ("down"); case VK_INSERT: return KEYSYM ("insert"); case VK_DELETE: return QKdelete; +#if 0 /* FSF Emacs allows these to return configurable syms/mods */ + case VK_LWIN return KEYSYM (""); + case VK_RWIN return KEYSYM (""); +#endif + case VK_APPS: return KEYSYM ("menu"); } } else @@ -2361,6 +2366,7 @@ case '\n': return QKlinefeed; case VK_CLEAR: return KEYSYM ("clear"); case VK_RETURN: return QKreturn; + case VK_PAUSE: return KEYSYM ("pause"); case VK_ESCAPE: return QKescape; case VK_SPACE: return QKspace; case VK_PRIOR: return KEYSYM ("kp-prior"); @@ -2378,11 +2384,6 @@ case VK_INSERT: return KEYSYM ("kp-insert"); case VK_DELETE: return KEYSYM ("kp-delete"); case VK_HELP: return KEYSYM ("help"); -#if 0 /* FSF Emacs allows these to return configurable syms/mods */ - case VK_LWIN return KEYSYM (""); - case VK_RWIN return KEYSYM (""); -#endif - case VK_APPS: return KEYSYM ("menu"); case VK_NUMPAD0: return KEYSYM ("kp-0"); case VK_NUMPAD1: return KEYSYM ("kp-1"); case VK_NUMPAD2: return KEYSYM ("kp-2"); diff -r -u -N xemacs-21.1.12/src/event-stream.c xemacs-21.1.13/src/event-stream.c --- xemacs-21.1.12/src/event-stream.c Sat Jun 13 00:28:43 1998 +++ xemacs-21.1.13/src/event-stream.c Tue Dec 19 01:00:48 2000 @@ -2510,7 +2510,7 @@ All of these routines install timeouts, so we clear the installed timeout as well. - Note: It's very easy to break the desired behaviours of these + Note: It's very easy to break the desired behaviors of these 3 routines. If you make any changes to anything in this area, run the regression tests at the bottom of the file. -- dmoore */ @@ -3497,7 +3497,7 @@ if (menubar_widget && CONSP (Vmenu_accelerator_modifiers)) { - Lisp_Object fake; + Lisp_Object fake = Qnil; Lisp_Object last = Qnil; struct gcpro gcpro1; Lisp_Object matchp; @@ -3878,7 +3878,6 @@ Lisp_Object val = Qnil; int nwanted; int start, nkeys, i, j; - GCPRO1 (val); if (NILP (number)) nwanted = recent_keys_ring_size; @@ -3918,6 +3917,7 @@ else nwanted = nkeys; + GCPRO1 (val); val = make_vector (nwanted, Qnil); for (i = 0, j = start; i < nkeys; i++) @@ -3951,7 +3951,6 @@ Lisp_Object new_vector = Qnil; int i, j, nkeys, start, min; struct gcpro gcpro1; - GCPRO1 (new_vector); CHECK_INT (size); if (XINT (size) <= 0) @@ -3959,11 +3958,13 @@ if (XINT (size) == recent_keys_ring_size) return size; + GCPRO1 (new_vector); new_vector = make_vector (XINT (size), Qnil); if (NILP (Vrecent_keys_ring)) { Vrecent_keys_ring = new_vector; + UNGCPRO; return size; } diff -r -u -N xemacs-21.1.12/src/events.h xemacs-21.1.13/src/events.h --- xemacs-21.1.12/src/events.h Sat Jun 13 00:28:44 1998 +++ xemacs-21.1.13/src/events.h Thu Nov 16 22:21:41 2000 @@ -273,7 +273,7 @@ implementation does not care about that implementation. The Create stream pair function is passed two void* values, which identify - process-dependant 'handles'. The process implementation uses these handles + process-dependent 'handles'. The process implementation uses these handles to communicate with child processes. The function must be prepared to receive handle types of any process implementation. Since there only one process implementation exists in a particular XEmacs configuration, preprocessing @@ -293,7 +293,7 @@ corresponding lstream should not be created. The return value of the function is a unique stream identifier. It is used - by processes implementation, in its platform-independant part. There is + by processes implementation, in its platform-independent part. There is the get_process_from_usid function, which returns process object given its USID. The event stream is responsible for converting its internal handle type into USID. diff -r -u -N xemacs-21.1.12/src/faces.c xemacs-21.1.13/src/faces.c --- xemacs-21.1.12/src/faces.c Sun Sep 27 03:59:17 1998 +++ xemacs-21.1.13/src/faces.c Thu Nov 16 22:21:42 2000 @@ -1568,7 +1568,16 @@ findex = get_builtin_face_cache_index (w, Vdefault_face); merge_face_cachel_data (w, findex, &cachel); - return get_merged_face_cache_index (w, &cachel); + findex = get_merged_face_cache_index (w, &cachel); + if (cachel.merged_faces && + /* merged_faces did not get stored and available via return value */ + Dynarr_at (w->face_cachels, findex).merged_faces != + cachel.merged_faces) + { + Dynarr_free (cachel.merged_faces); + cachel.merged_faces = 0; + } + return findex; } } diff -r -u -N xemacs-21.1.12/src/file-coding.c xemacs-21.1.13/src/file-coding.c --- xemacs-21.1.12/src/file-coding.c Fri Aug 4 21:04:10 2000 +++ xemacs-21.1.13/src/file-coding.c Sun Nov 19 17:08:18 2000 @@ -3932,7 +3932,8 @@ charset = str->iso2022.charset[reg]; /* Error checking: */ - if (NILP (charset) || str->iso2022.invalid_designated[reg] + if (! CHARSETP (charset) + || str->iso2022.invalid_designated[reg] || (((c & 0x7F) == ' ' || (c & 0x7F) == ISO_CODE_DEL) && XCHARSET_CHARS (charset) == 94)) /* Mrmph. We are trying to invoke a register that has no diff -r -u -N xemacs-21.1.12/src/file-coding.h xemacs-21.1.13/src/file-coding.h --- xemacs-21.1.12/src/file-coding.h Wed Mar 10 07:48:19 1999 +++ xemacs-21.1.13/src/file-coding.h Sat Jan 6 22:22:02 2001 @@ -417,28 +417,36 @@ /* For detecting the encoding of text */ +/* The order is chosen so that by default only ISO 2022 7-bit encodings + are auto-detected. These are needed for Mule files. */ enum coding_category_type { #ifdef MULE - CODING_CATEGORY_SHIFT_JIS, CODING_CATEGORY_ISO_7, /* ISO2022 system using only seven-bit bytes, no locking shift */ - CODING_CATEGORY_ISO_8_DESIGNATE, /* ISO2022 system using eight-bit bytes, - no locking shift, no single shift, - using designation to switch charsets */ + CODING_CATEGORY_NO_CONVERSION, CODING_CATEGORY_ISO_8_1, /* ISO2022 system using eight-bit bytes, no locking shift, no designation sequences, one-dimension characters in the upper half. */ CODING_CATEGORY_ISO_8_2, /* ISO2022 system using eight-bit bytes, no locking shift, no designation sequences, two-dimension characters in the upper half. */ + CODING_CATEGORY_ISO_8_DESIGNATE, /* ISO2022 system using eight-bit bytes, + no locking shift, no single shift, + using designation to switch charsets */ CODING_CATEGORY_ISO_LOCK_SHIFT, /* ISO2022 system using locking shift */ CODING_CATEGORY_BIG5, -#endif /* MULE */ + CODING_CATEGORY_SHIFT_JIS +#else /* MULE */ CODING_CATEGORY_NO_CONVERSION +#endif /* not MULE */ }; +#ifdef MULE +#define CODING_CATEGORY_LAST CODING_CATEGORY_SHIFT_JIS +#else #define CODING_CATEGORY_LAST CODING_CATEGORY_NO_CONVERSION +#endif #ifdef MULE #define CODING_CATEGORY_SHIFT_JIS_MASK \ diff -r -u -N xemacs-21.1.12/src/fileio.c xemacs-21.1.13/src/fileio.c --- xemacs-21.1.12/src/fileio.c Sat Jul 15 12:03:30 2000 +++ xemacs-21.1.13/src/fileio.c Tue Dec 19 01:00:48 2000 @@ -2054,7 +2054,7 @@ on NT here. --marcpa */ /* But FSF #defines link as sys_link which is supplied in nt.c. We can't do that because sysfile.h defines sys_link depending on ENCAPSULATE_LINK. - Reverted to previous behaviour pending a working fix. (jhar) */ + Reverted to previous behavior pending a working fix. (jhar) */ #if defined(WINDOWSNT) /* Windows does not support this operation. */ report_file_error ("Adding new name", Flist (2, &filename)); @@ -2779,9 +2779,9 @@ { end_multiple_change (buf, mc_count); - return Fsignal (Qfile_error, - list2 (build_translated_string("not a regular file"), - filename)); + RETURN_UNGCPRO (Fsignal (Qfile_error, + list2 (build_translated_string("not a regular file"), + filename))); } } #endif /* S_IFREG */ @@ -3422,7 +3422,7 @@ message ("Wrote %s", XSTRING_DATA (visit_file)); else { - Lisp_Object fsp; + Lisp_Object fsp = Qnil; struct gcpro nngcpro1; NNGCPRO1 (fsp); @@ -3757,7 +3757,7 @@ } else { - Lisp_Object filename; + Lisp_Object filename = Qnil; struct stat st; Lisp_Object handler; struct gcpro gcpro1, gcpro2, gcpro3; diff -r -u -N xemacs-21.1.12/src/frame.c xemacs-21.1.13/src/frame.c --- xemacs-21.1.12/src/frame.c Mon Jun 14 02:32:05 1999 +++ xemacs-21.1.13/src/frame.c Thu Nov 16 02:47:10 2000 @@ -1006,13 +1006,10 @@ } int -device_matches_console_spec (Lisp_Object frame, Lisp_Object device, - Lisp_Object console) +device_matches_console_spec (Lisp_Object device, Lisp_Object console) { if (EQ (console, Qwindow_system)) return DEVICE_WIN_P (XDEVICE (device)); - if (NILP (console)) - console = (DEVICE_CONSOLE (XDEVICE (FRAME_DEVICE (XFRAME (frame))))); if (DEVICEP (console)) return EQ (device, console); if (CONSOLEP (console)) @@ -1026,78 +1023,60 @@ FRAMETYPE and CONSOLE control which frames and devices are considered; see `next-frame'. */ -static Lisp_Object -next_frame_internal (Lisp_Object frame, Lisp_Object frametype, - Lisp_Object console, int called_from_delete_device) +Lisp_Object +next_frame (Lisp_Object frame, Lisp_Object frametype, Lisp_Object console) { + Lisp_Object first = Qnil; + Lisp_Object devcons, concons; int passed = 0; - int started_over = 0; - /* If this frame is dead, it won't be in frame_list, and we'll loop - forever. Forestall that. */ CHECK_LIVE_FRAME (frame); - while (1) - { - Lisp_Object devcons, concons; - DEVICE_LOOP_NO_BREAK (devcons, concons) { Lisp_Object device = XCAR (devcons); Lisp_Object frmcons; - if (!device_matches_console_spec (frame, device, console)) + if (!device_matches_console_spec (device, console)) + { + if (EQ (device, FRAME_DEVICE (XFRAME (frame)))) + passed = 1; continue; + } DEVICE_FRAME_LOOP (frmcons, XDEVICE (device)) { Lisp_Object f = XCAR (frmcons); + if (passed) { - /* #### Doing this here is bad and is now - unnecessary. The real bug was that f->iconified - was never, ever updated unless a user explicitly - called frame-iconified-p. That has now been - fixed. With this change removed all of the other - changes made to support this routine having the - called_from_delete_device arg could be removed. - But it is too close to release to do that now. */ -#if 0 - /* Make sure the visibility and iconified flags are - up-to-date unless we're being deleted. */ - if (!called_from_delete_device) - { - Fframe_iconified_p (f); - Fframe_visible_p (f); - } -#endif - - /* Decide whether this frame is eligible to be returned. */ - - /* If we've looped all the way around without finding any - eligible frames, return the original frame. */ - if (EQ (f, frame)) - return f; - if (frame_matches_frametype (f, frametype)) return f; } - + else + { if (EQ (frame, f)) - passed++; + { + passed = 1; } + else + { + if (NILP (first) && frame_matches_frametype (f, frametype)) + first = f; + } } - /* We hit the end of the list, and need to start over again. */ - if (started_over) - return Qnil; - started_over++; } } -Lisp_Object -next_frame (Lisp_Object frame, Lisp_Object frametype, Lisp_Object console) -{ - return next_frame_internal (frame, frametype, console, 0); + if (NILP (first)) + /* We went through the whole frame list without finding a single + acceptable frame. Return the original frame. */ + return frame; + else + /* There were no acceptable frames in the list after FRAME; otherwise, + we would have returned directly from the loop. Since FIRST is the last + acceptable frame in the list, return it. */ + return first; } /* Return the previous frame in the frame list before FRAME. @@ -1105,50 +1084,52 @@ are considered; see `next-frame'. */ Lisp_Object -prev_frame (Lisp_Object frame, Lisp_Object frametype, Lisp_Object console) +previous_frame (Lisp_Object frame, Lisp_Object frametype, Lisp_Object console) { Lisp_Object devcons, concons; - Lisp_Object prev; + Lisp_Object last = Qnil; - /* If this frame is dead, it won't be in frame_list, and we'll loop - forever. Forestall that. */ CHECK_LIVE_FRAME (frame); - prev = Qnil; DEVICE_LOOP_NO_BREAK (devcons, concons) { Lisp_Object device = XCAR (devcons); Lisp_Object frmcons; - if (!device_matches_console_spec (frame, device, console)) + if (!device_matches_console_spec (device, console)) + { + if (EQ (device, FRAME_DEVICE (XFRAME (frame))) + && !NILP (last)) + return last; continue; + } DEVICE_FRAME_LOOP (frmcons, XDEVICE (device)) { Lisp_Object f = XCAR (frmcons); - if (EQ (frame, f) && !NILP (prev)) - return prev; - - /* Decide whether this frame is eligible to be returned, - according to frametype. */ - + if (EQ (frame, f)) + { + if (!NILP (last)) + return last; + } + else + { if (frame_matches_frametype (f, frametype)) - prev = f; - + last = f; } } + } - /* We've scanned the entire list. */ - if (NILP (prev)) + if (NILP (last)) /* We went through the whole frame list without finding a single acceptable frame. Return the original frame. */ return frame; else /* There were no acceptable frames in the list before FRAME; otherwise, - we would have returned directly from the loop. Since PREV is the last + we would have returned directly from the loop. Since LAST is the last acceptable frame in the list, return it. */ - return prev; + return last; } DEFUN ("next-frame", Fnext_frame, 0, 3, 0, /* @@ -1213,7 +1194,7 @@ { XSETFRAME (frame, decode_frame (frame)); - return prev_frame (frame, frametype, console); + return previous_frame (frame, frametype, console); } /* Return any frame for which PREDICATE is non-zero, or return Qnil @@ -1245,23 +1226,15 @@ (Exception: if F is a stream frame, it's OK to delete if any other frames exist.) */ -static int -other_visible_frames_internal (struct frame *f, int called_from_delete_device) +int +other_visible_frames (struct frame *f) { Lisp_Object frame; XSETFRAME (frame, f); if (FRAME_STREAM_P (f)) - return !EQ (frame, next_frame_internal (frame, Qt, Qt, - called_from_delete_device)); - return !EQ (frame, next_frame_internal (frame, Qvisible_iconic_nomini, Qt, - called_from_delete_device)); -} - -int -other_visible_frames (struct frame *f) -{ - return other_visible_frames_internal (f, 0); + return !EQ (frame, next_frame (frame, Qt, Qt)); + return !EQ (frame, next_frame (frame, Qvisible_iconic_nomini, Qt)); } /* Delete frame F. @@ -1322,7 +1295,7 @@ losing any way of communicating with the still running XEmacs process. So we put it back. */ if (!force && !allow_deletion_of_last_visible_frame && - !other_visible_frames_internal (f, called_from_delete_device)) + !other_visible_frames (f)) error ("Attempt to delete the sole visible or iconified frame"); /* Does this frame have a minibuffer, and is it the surrogate @@ -1448,22 +1421,17 @@ next = DEVMETH_OR_GIVEN (d, get_frame_parent, (f), Qnil); if (NILP (next) || EQ (next, frame) || ! FRAME_LIVE_P (XFRAME (next))) - next = next_frame_internal (frame, Qvisible, device, - called_from_delete_device); + next = next_frame (frame, Qvisible, device); if (NILP (next) || EQ (next, frame)) - next = next_frame_internal (frame, Qvisible, console, - called_from_delete_device); + next = next_frame (frame, Qvisible, console); if (NILP (next) || EQ (next, frame)) - next = next_frame_internal (frame, Qvisible, Qt, - called_from_delete_device); + next = next_frame (frame, Qvisible, Qt); if (NILP (next) || EQ (next, frame)) - next = next_frame_internal (frame, Qt, device, - called_from_delete_device); + next = next_frame (frame, Qt, device); if (NILP (next) || EQ (next, frame)) - next = next_frame_internal (frame, Qt, console, - called_from_delete_device); + next = next_frame (frame, Qt, console); if (NILP (next) || EQ (next, frame)) - next = next_frame_internal (frame, Qt, Qt, called_from_delete_device); + next = next_frame (frame, Qt, Qt); /* if we haven't found another frame at this point then there aren't any. */ @@ -1485,9 +1453,7 @@ */ if (!EQ (device, FRAME_DEVICE(XFRAME(next)))) { - Lisp_Object next_f = - next_frame_internal (frame, Qt, device, - called_from_delete_device); + Lisp_Object next_f = next_frame (frame, Qt, device); if (NILP (next_f) || EQ (next_f, frame)) ; else diff -r -u -N xemacs-21.1.12/src/frame.h xemacs-21.1.13/src/frame.h --- xemacs-21.1.12/src/frame.h Sun May 24 01:40:43 1998 +++ xemacs-21.1.13/src/frame.h Thu Nov 16 02:47:10 2000 @@ -658,7 +658,7 @@ void update_frame_title (struct frame *f); Lisp_Object next_frame (Lisp_Object f, Lisp_Object frametype, Lisp_Object console); -Lisp_Object prev_frame (Lisp_Object f, Lisp_Object frametype, +Lisp_Object previous_frame (Lisp_Object f, Lisp_Object frametype, Lisp_Object console); void store_in_alist (Lisp_Object *alistptr, CONST char *propname, @@ -698,8 +698,7 @@ void io_error_delete_frame (Lisp_Object frame); Lisp_Object find_some_frame (int (*predicate) (Lisp_Object, void *), void *closure); -int device_matches_console_spec (Lisp_Object frame, Lisp_Object device, - Lisp_Object console); +int device_matches_console_spec (Lisp_Object device, Lisp_Object console); Lisp_Object frame_first_window (struct frame *f); int show_gc_cursor (struct frame *f, Lisp_Object cursor); void set_frame_selected_window (struct frame *f, Lisp_Object window); diff -r -u -N xemacs-21.1.12/src/keymap.c xemacs-21.1.13/src/keymap.c --- xemacs-21.1.12/src/keymap.c Tue Jul 28 02:25:21 1998 +++ xemacs-21.1.13/src/keymap.c Tue Dec 19 01:00:49 2000 @@ -1549,7 +1549,7 @@ event_matches_key_specifier_p (struct Lisp_Event *event, Lisp_Object key_specifier) { - Lisp_Object event2; + Lisp_Object event2 = Qnil; int retval; struct gcpro gcpro1; @@ -2226,7 +2226,7 @@ map of the buffer in which the mouse was clicked in event0 is a click. It would be kind of nice if this were in Lisp so that this semi-hairy - semi-heuristic command-lookup behaviour could be readily understood and + semi-heuristic command-lookup behavior could be readily understood and customised. However, this needs to be pretty fast, or performance of keyboard macros goes to shit; putting this in lisp slows macros down 2-3x. And they're already slower than v18 by 5-6x. diff -r -u -N xemacs-21.1.12/src/lisp.h xemacs-21.1.13/src/lisp.h --- xemacs-21.1.12/src/lisp.h Mon Feb 7 21:54:56 2000 +++ xemacs-21.1.13/src/lisp.h Thu Nov 16 22:21:43 2000 @@ -528,7 +528,7 @@ Lisp_Type_Int, /* XRECORD_LHEADER (object) points to a struct lrecord_header - lheader->implementation determines the type (and GC behaviour) + lheader->implementation determines the type (and GC behavior) of the object. */ Lisp_Type_Record, diff -r -u -N xemacs-21.1.12/src/m/alpha.h xemacs-21.1.13/src/m/alpha.h --- xemacs-21.1.12/src/m/alpha.h Mon Jun 14 02:32:08 1999 +++ xemacs-21.1.13/src/m/alpha.h Sat Dec 16 21:08:55 2000 @@ -19,10 +19,6 @@ Boston, MA 02111-1307, USA. */ -#ifdef LINUX -# define SYSTEM_MALLOC -#endif - #ifdef OSF1 # define ORDINARY_LINK #endif diff -r -u -N xemacs-21.1.12/src/make-src-depend xemacs-21.1.13/src/make-src-depend --- xemacs-21.1.12/src/make-src-depend Tue May 26 17:50:19 1998 +++ xemacs-21.1.13/src/make-src-depend Sun Nov 19 17:08:19 2000 @@ -80,7 +80,7 @@ # Print file header print -"## This file automatically generated by $myName. Do not modify. +"## This file is automatically generated by \`$myName'. Do not modify. #ifdef USE_UNION_TYPE LISP_UNION_H=lisp-union.h diff -r -u -N xemacs-21.1.12/src/menubar-msw.c xemacs-21.1.13/src/menubar-msw.c --- xemacs-21.1.12/src/menubar-msw.c Mon Jul 17 10:23:47 2000 +++ xemacs-21.1.13/src/menubar-msw.c Sat Dec 16 21:08:52 2000 @@ -341,7 +341,10 @@ gui_parse_item_keywords (item, &gui_item); if (!gui_item_included_p (&gui_item, Vmenubar_configuration)) - return; + { + UNGCPRO; + return; + } if (!gui_item_active_p (&gui_item)) item_info.fState = MFS_GRAYED; diff -r -u -N xemacs-21.1.12/src/mule-charset.c xemacs-21.1.13/src/mule-charset.c --- xemacs-21.1.12/src/mule-charset.c Sun Nov 14 21:20:58 1999 +++ xemacs-21.1.13/src/mule-charset.c Sun Dec 17 22:03:43 2000 @@ -947,10 +947,8 @@ if (EQ (prop, Qreverse_direction_charset)) { Lisp_Object obj = CHARSET_REVERSE_DIRECTION_CHARSET (cs); - if (NILP (obj)) - return Qnil; - else - return XCHARSET_NAME (obj); + /* #### Is this translation OK? If so, error checking sufficient? */ + return CHARSETP (obj) ? XCHARSET_NAME (obj) : obj; } signal_simple_error ("Unrecognized charset property name", prop); return Qnil; /* not reached */ diff -r -u -N xemacs-21.1.12/src/mule-coding.c xemacs-21.1.13/src/mule-coding.c --- xemacs-21.1.12/src/mule-coding.c Tue Jun 30 02:35:55 1998 +++ xemacs-21.1.13/src/mule-coding.c Sun Nov 19 17:08:19 2000 @@ -3855,7 +3855,8 @@ charset = str->iso2022.charset[reg]; /* Error checking: */ - if (NILP (charset) || str->iso2022.invalid_designated[reg] + if (! CHARSETP (charset) + || str->iso2022.invalid_designated[reg] || (((c & 0x7F) == ' ' || (c & 0x7F) == ISO_CODE_DEL) && XCHARSET_CHARS (charset) == 94)) /* Mrmph. We are trying to invoke a register that has no diff -r -u -N xemacs-21.1.12/src/nt.c xemacs-21.1.13/src/nt.c --- xemacs-21.1.12/src/nt.c Mon Feb 7 21:54:57 2000 +++ xemacs-21.1.13/src/nt.c Thu Nov 16 22:21:43 2000 @@ -1169,7 +1169,7 @@ return -1; } - /* Emulate Unix behaviour - newname is deleted if it already exists + /* Emulate Unix behavior - newname is deleted if it already exists (at least if it is a file; don't do this for directories). However, don't do this if we are just changing the case of the file name - we will end up deleting the file we are trying to rename! */ diff -r -u -N xemacs-21.1.12/src/ntheap.c xemacs-21.1.13/src/ntheap.c --- xemacs-21.1.12/src/ntheap.c Sun Jul 30 20:33:16 2000 +++ xemacs-21.1.13/src/ntheap.c Thu Nov 16 22:21:43 2000 @@ -276,7 +276,7 @@ /* Query the region at the end of the committed heap */ void *tmp; MEMORY_BASIC_INFORMATION info; - SIZE_T size; + DWORD size; unsigned char* base = get_heap_end (); unsigned char* end = base + get_reserved_heap_size () - get_committed_heap_size (); VirtualQuery (base, &info, sizeof info); diff -r -u -N xemacs-21.1.12/src/ntproc.c xemacs-21.1.13/src/ntproc.c --- xemacs-21.1.12/src/ntproc.c Mon Nov 1 23:17:16 1999 +++ xemacs-21.1.13/src/ntproc.c Thu Nov 16 22:21:44 2000 @@ -59,7 +59,7 @@ /* Control whether spawnve quotes arguments as necessary to ensure correct parsing by child process. Because not all uses of spawnve - are careful about constructing argv arrays, we make this behaviour + are careful about constructing argv arrays, we make this behavior conditional (off by default). */ Lisp_Object Vwin32_quote_process_args; @@ -719,7 +719,7 @@ #if 0 /* This version does not escape quotes if they occur at the beginning or end of the arg - this could lead to incorrect - behaviour when the arg itself represents a command line + behavior when the arg itself represents a command line containing quoted args. I believe this was originally done as a hack to make some things work, before `win32-quote-process-args' was added. */ diff -r -u -N xemacs-21.1.12/src/redisplay.c xemacs-21.1.13/src/redisplay.c --- xemacs-21.1.12/src/redisplay.c Tue May 2 00:12:07 2000 +++ xemacs-21.1.13/src/redisplay.c Thu Nov 16 22:21:44 2000 @@ -6616,7 +6616,7 @@ displayed. The end of the last line is also know as the window end position. - WARNING: Under some circumstances it is possible that rediplay failed + WARNING: Under some circumstances it is possible that redisplay failed to layout any lines for the windows. In that case this function returns 0 as an error condition when may_error is non-zero and a normalized value of startp otherwise. diff -r -u -N xemacs-21.1.12/src/regex.c xemacs-21.1.13/src/regex.c --- xemacs-21.1.12/src/regex.c Tue Sep 29 17:19:51 1998 +++ xemacs-21.1.13/src/regex.c Thu Nov 16 22:21:44 2000 @@ -5499,22 +5499,25 @@ #ifdef emacs case before_dot: DEBUG_PRINT1 ("EXECUTING before_dot.\n"); - if (BUF_PTR_BYTE_POS (regex_emacs_buffer, (unsigned char *) d) >= - BUF_PT (regex_emacs_buffer)) + if (!regex_emacs_buffer_p + || (BUF_PTR_BYTE_POS (regex_emacs_buffer, (unsigned char *) d) + >= BUF_PT (regex_emacs_buffer))) goto fail; break; case at_dot: DEBUG_PRINT1 ("EXECUTING at_dot.\n"); - if (BUF_PTR_BYTE_POS (regex_emacs_buffer, (unsigned char *) d) - != BUF_PT (regex_emacs_buffer)) + if (!regex_emacs_buffer_p + || (BUF_PTR_BYTE_POS (regex_emacs_buffer, (unsigned char *) d) + != BUF_PT (regex_emacs_buffer))) goto fail; break; case after_dot: DEBUG_PRINT1 ("EXECUTING after_dot.\n"); - if (BUF_PTR_BYTE_POS (regex_emacs_buffer, (unsigned char *) d) - <= BUF_PT (regex_emacs_buffer)) + if (!regex_emacs_buffer_p + || (BUF_PTR_BYTE_POS (regex_emacs_buffer, (unsigned char *) d) + <= BUF_PT (regex_emacs_buffer))) goto fail; break; #if 0 /* not emacs19 */ diff -r -u -N xemacs-21.1.12/src/s/gnu.h xemacs-21.1.13/src/s/gnu.h --- xemacs-21.1.12/src/s/gnu.h Sun Jul 30 20:33:17 2000 +++ xemacs-21.1.13/src/s/gnu.h Sun Nov 19 17:08:20 2000 @@ -83,7 +83,7 @@ { \ char *ptsname(), *ptyname; \ \ - sigblock(sigmask(SIGCHLD)); \ + EMACS_BLOCK_SIGNAL (SIGCHLD); \ if (grantpt(fd) == -1) \ fatal("could not grant slave pty"); \ if (unlockpt(fd) == -1) \ @@ -92,7 +92,7 @@ fatal ("could not enable slave pty"); \ strncpy(pty_name, ptyname, sizeof(pty_name)); \ pty_name[sizeof(pty_name) - 1] = 0; \ - sigsetmask(siggetmask() & ~sigmask(SIGCHLD)); \ + EMACS_UNBLOCK_SIGNAL (SIGCHLD); \ } #endif diff -r -u -N xemacs-21.1.12/src/s/hpux.h xemacs-21.1.13/src/s/hpux.h --- xemacs-21.1.12/src/s/hpux.h Sun Jul 30 20:33:17 2000 +++ xemacs-21.1.13/src/s/hpux.h Sun Nov 19 17:08:21 2000 @@ -186,7 +186,7 @@ if (tty_group == NULL) \ fatal ("group tty not found"); \ \ - sigblock(sigmask(SIGCHLD)); \ + EMACS_BLOCK_SIGNAL (SIGCHLD); \ if (grantpt(fd) == -1) \ fatal("could not grant slave pty"); \ if (!(ptyname = ptsname(fd))) \ @@ -197,7 +197,7 @@ fatal ("could not chown slave pty"); \ if (unlockpt(fd) == -1) \ fatal("could not unlock slave pty"); \ - sigunblock(sigmask(SIGCHLD)); \ + EMACS_UNBLOCK_SIGNAL (SIGCHLD); \ } /* Push various streams modules onto a PTY channel. */ diff -r -u -N xemacs-21.1.12/src/s/linux.h xemacs-21.1.13/src/s/linux.h --- xemacs-21.1.12/src/s/linux.h Sun Jul 30 20:33:17 2000 +++ xemacs-21.1.13/src/s/linux.h Sun Nov 19 17:08:21 2000 @@ -227,7 +227,7 @@ { \ char *ptsname(), *ptyname; \ \ - sigblock(sigmask(SIGCHLD)); \ + EMACS_BLOCK_SIGNAL (SIGCHLD); \ if (grantpt(fd) == -1) \ fatal("could not grant slave pty"); \ if (unlockpt(fd) == -1) \ @@ -236,7 +236,7 @@ fatal ("could not enable slave pty"); \ strncpy(pty_name, ptyname, sizeof(pty_name)); \ pty_name[sizeof(pty_name) - 1] = 0; \ - sigsetmask(siggetmask() & ~sigmask(SIGCHLD)); \ + EMACS_UNBLOCK_SIGNAL (SIGCHLD); \ } #endif diff -r -u -N xemacs-21.1.12/src/scrollbar.c xemacs-21.1.13/src/scrollbar.c --- xemacs-21.1.12/src/scrollbar.c Tue Jun 30 02:36:01 1998 +++ xemacs-21.1.13/src/scrollbar.c Thu Nov 16 22:21:45 2000 @@ -872,7 +872,7 @@ /* Can't allow this out of set-window-hscroll's acceptable range. */ /* #### What hell on the earth this code limits scroll size to the - machine-dependant SHORT size? -- kkm */ + machine-dependent SHORT size? -- kkm */ if (hscroll < 0) hscroll = 0; else if (hscroll >= (1 << (SHORTBITS - 1)) - 1) diff -r -u -N xemacs-21.1.12/src/search.c xemacs-21.1.13/src/search.c --- xemacs-21.1.12/src/search.c Sun May 24 01:40:50 1998 +++ xemacs-21.1.13/src/search.c Sun Nov 19 22:25:32 2000 @@ -302,6 +302,7 @@ s2 = BI_BUF_ZV (buf) - p2; regex_emacs_buffer = buf; + regex_emacs_buffer_p = 1; i = re_match_2 (bufp, (char *) BI_BUF_BYTE_ADDRESS (buf, p1), s1, (char *) BI_BUF_BYTE_ADDRESS (buf, p2), s2, BI_BUF_PT (buf) - BI_BUF_BEGV (buf), &search_regs, @@ -392,6 +393,7 @@ { Bytecount bis = charcount_to_bytecount (XSTRING_DATA (string), s); regex_emacs_buffer = buf; + regex_emacs_buffer_p = 0; val = re_search (bufp, (char *) XSTRING_DATA (string), XSTRING_LENGTH (string), bis, XSTRING_LENGTH (string) - bis, @@ -485,6 +487,7 @@ /* #### evil current-buffer dependency */ regex_emacs_buffer = current_buffer; + regex_emacs_buffer_p = 0; val = re_search (bufp, (char *) newnonreloc + offset, length, 0, length, 0); @@ -1121,6 +1124,7 @@ Bytecount val; QUIT; regex_emacs_buffer = buf; + regex_emacs_buffer_p = 1; val = re_search_2 (bufp, (char *) BI_BUF_BYTE_ADDRESS (buf, p1), s1, (char *) BI_BUF_BYTE_ADDRESS (buf, p2), s2, @@ -1159,6 +1163,7 @@ Bytecount val; QUIT; regex_emacs_buffer = buf; + regex_emacs_buffer_p = 1; val = re_search_2 (bufp, (char *) BI_BUF_BYTE_ADDRESS (buf, p1), s1, (char *) BI_BUF_BYTE_ADDRESS (buf, p2), s2, @@ -2035,6 +2040,10 @@ else newtext = accum; } + + /* newtext can be nil. */ + if (NILP (newtext)) + newtext = build_string (""); if (case_action == all_caps) newtext = Fupcase (newtext, buffer); diff -r -u -N xemacs-21.1.12/src/sgiplay.c xemacs-21.1.13/src/sgiplay.c --- xemacs-21.1.12/src/sgiplay.c Tue Sep 2 23:39:50 1997 +++ xemacs-21.1.13/src/sgiplay.c Thu Nov 16 02:47:10 2000 @@ -29,6 +29,7 @@ #include #include #include +#include #include #include /* for ntohl() etc. */ diff -r -u -N xemacs-21.1.12/src/sound.c xemacs-21.1.13/src/sound.c --- xemacs-21.1.12/src/sound.c Sun Jan 3 20:34:44 1999 +++ xemacs-21.1.13/src/sound.c Sun Nov 19 17:08:19 2000 @@ -594,7 +594,7 @@ DEFVAR_LISP ("native-sound-only-on-console", &Vnative_sound_only_on_console /* Non-nil value means play sounds only if XEmacs is running on the system console. -Nil means always always play sounds, even if running on a non-console tty +Nil means always play sounds, even if running on a non-console tty or a secondary X display. This variable only applies to native sound support. diff -r -u -N xemacs-21.1.12/src/syntax.c xemacs-21.1.13/src/syntax.c --- xemacs-21.1.12/src/syntax.c Tue Mar 31 15:12:16 1998 +++ xemacs-21.1.13/src/syntax.c Thu Nov 16 22:21:45 2000 @@ -75,6 +75,9 @@ and the like. */ struct buffer *regex_emacs_buffer; +/* Tell the regex routines whether buffer is used or not. */ +int regex_emacs_buffer_p; + Lisp_Object Vstandard_syntax_table; Lisp_Object Vsyntax_designator_chars_string; diff -r -u -N xemacs-21.1.12/src/syntax.h xemacs-21.1.13/src/syntax.h --- xemacs-21.1.12/src/syntax.h Mon Feb 7 21:54:58 2000 +++ xemacs-21.1.13/src/syntax.h Thu Nov 16 22:21:46 2000 @@ -255,6 +255,7 @@ extern int no_quit_in_re_search; extern struct buffer *regex_emacs_buffer; +extern int regex_emacs_buffer_p; void update_syntax_table (struct Lisp_Char_Table *ct); diff -r -u -N xemacs-21.1.12/src/sysdep.c xemacs-21.1.13/src/sysdep.c --- xemacs-21.1.12/src/sysdep.c Thu Apr 20 02:10:36 2000 +++ xemacs-21.1.13/src/sysdep.c Fri Sep 1 05:29:18 2000 @@ -389,7 +389,7 @@ pHandle); } } - if (pHandle != NULL && !CloseHandle(pHandle)) + if (pHandle != NULL && !CloseHandle(pHandle)) { warn_when_safe (Qprocess, Qerror, "CloseHandle fails for process handle %p.", pHandle); @@ -778,6 +778,11 @@ #if defined (HAVE_FPATHCONF) && defined (_PC_MAX_CANON) { int max_canon = fpathconf (fd, _PC_MAX_CANON); +#ifdef __hpux__ + /* HP-UX 10.20 fpathconf returns 768, but this results in + truncated input lines, while 255 works. */ + if (max_canon > 255) max_canon = 255; +#endif return (max_canon < 0 ? SAFE_MAX_CANON : max_canon > SAFE_MAX_CANON ? max_canon - MAX_CANON_SLACK : max_canon); diff -r -u -N xemacs-21.1.12/src/unexelfsgi.c xemacs-21.1.13/src/unexelfsgi.c --- xemacs-21.1.12/src/unexelfsgi.c Tue Jan 25 14:00:29 2000 +++ xemacs-21.1.13/src/unexelfsgi.c Wed Dec 13 04:43:38 2000 @@ -1,24 +1,26 @@ -/* Copyright (C) 1985, 1986, 1987, 1988, 1990, 1992 +/* Copyright (C) 1985, 1986, 1987, 1988, 1990, 1992, 1999, 2000 Free Software Foundation, Inc. -This file is part of XEmacs. + 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: FSF 19.31. */ + 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. + + GNU Emacs 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 GNU Emacs; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + + In other words, you are welcome to use, share and improve this + program. You are forbidden to forbid anyone else to use, share and + improve what you give them. Help stamp out software-hoarding! */ /* @@ -31,519 +33,114 @@ * Modified heavily since then. * * Synopsis: - * unexec (new_name, a_name, data_start, bss_start, entry_address) - * char *new_name, *a_name; - * unsigned data_start, bss_start, entry_address; - * - * Takes a snapshot of the program and makes an a.out format file in the - * file named by the string argument new_name. - * If a_name is non-NULL, the symbol table will be taken from the given file. - * On some machines, an existing a_name file is required. - * - * The boundaries within the a.out file may be adjusted with the data_start - * and bss_start arguments. Either or both may be given as 0 for defaults. - * - * Data_start gives the boundary between the text segment and the data - * segment of the program. The text segment can contain shared, read-only - * program code and literal data, while the data segment is always unshared - * and unprotected. Data_start gives the lowest unprotected address. - * The value you specify may be rounded down to a suitable boundary - * as required by the machine you are using. - * - * Specifying zero for data_start means the boundary between text and data - * should not be the same as when the program was loaded. - * If NO_REMAP is defined, the argument data_start is ignored and the - * segment boundaries are never changed. - * - * Bss_start indicates how much of the data segment is to be saved in the - * a.out file and restored when the program is executed. It gives the lowest - * unsaved address, and is rounded up to a page boundary. The default when 0 - * is given assumes that the entire data segment is to be stored, including - * the previous data and bss as well as any additional storage allocated with - * break (2). - * - * The new file is set up to start at entry_address. - * - * If you make improvements I'd like to get them too. - * harpo!utah-cs!thomas, thomas@Utah-20 - * - */ - -/* Even more heavily modified by james@bigtex.cactus.org of Dell Computer Co. - * ELF support added. - * - * Basic theory: the data space of the running process needs to be - * dumped to the output file. Normally we would just enlarge the size - * of .data, scooting everything down. But we can't do that in ELF, - * because there is often something between the .data space and the - * .bss space. - * - * In the temacs dump below, notice that the Global Offset Table - * (.got) and the Dynamic link data (.dynamic) come between .data1 and - * .bss. It does not work to overlap .data with these fields. - * - * The solution is to create a new .data segment. This segment is - * filled with data from the current process. Since the contents of - * various sections refer to sections by index, the new .data segment - * is made the last in the table to avoid changing any existing index. - - * This is an example of how the section headers are changed. "Addr" - * is a process virtual address. "Offset" is a file offset. - -raid:/nfs/raid/src/dist-18.56/src> dump -h temacs - -temacs: - - **** SECTION HEADER TABLE **** -[No] Type Flags Addr Offset Size Name - Link Info Adralgn Entsize - -[1] 1 2 0x80480d4 0xd4 0x13 .interp - 0 0 0x1 0 - -[2] 5 2 0x80480e8 0xe8 0x388 .hash - 3 0 0x4 0x4 - -[3] 11 2 0x8048470 0x470 0x7f0 .dynsym - 4 1 0x4 0x10 - -[4] 3 2 0x8048c60 0xc60 0x3ad .dynstr - 0 0 0x1 0 - -[5] 9 2 0x8049010 0x1010 0x338 .rel.plt - 3 7 0x4 0x8 - -[6] 1 6 0x8049348 0x1348 0x3 .init - 0 0 0x4 0 - -[7] 1 6 0x804934c 0x134c 0x680 .plt - 0 0 0x4 0x4 - -[8] 1 6 0x80499cc 0x19cc 0x3c56f .text - 0 0 0x4 0 - -[9] 1 6 0x8085f3c 0x3df3c 0x3 .fini - 0 0 0x4 0 - -[10] 1 2 0x8085f40 0x3df40 0x69c .rodata - 0 0 0x4 0 - -[11] 1 2 0x80865dc 0x3e5dc 0xd51 .rodata1 - 0 0 0x4 0 - -[12] 1 3 0x8088330 0x3f330 0x20afc .data - 0 0 0x4 0 - -[13] 1 3 0x80a8e2c 0x5fe2c 0x89d .data1 - 0 0 0x4 0 - -[14] 1 3 0x80a96cc 0x606cc 0x1a8 .got - 0 0 0x4 0x4 - -[15] 6 3 0x80a9874 0x60874 0x80 .dynamic - 4 0 0x4 0x8 - -[16] 8 3 0x80a98f4 0x608f4 0x449c .bss - 0 0 0x4 0 - -[17] 2 0 0 0x608f4 0x9b90 .symtab - 18 371 0x4 0x10 - -[18] 3 0 0 0x6a484 0x8526 .strtab - 0 0 0x1 0 - -[19] 3 0 0 0x729aa 0x93 .shstrtab - 0 0 0x1 0 - -[20] 1 0 0 0x72a3d 0x68b7 .comment - 0 0 0x1 0 - -raid:/nfs/raid/src/dist-18.56/src> dump -h xemacs - -xemacs: - - **** SECTION HEADER TABLE **** -[No] Type Flags Addr Offset Size Name - Link Info Adralgn Entsize - -[1] 1 2 0x80480d4 0xd4 0x13 .interp - 0 0 0x1 0 - -[2] 5 2 0x80480e8 0xe8 0x388 .hash - 3 0 0x4 0x4 - -[3] 11 2 0x8048470 0x470 0x7f0 .dynsym - 4 1 0x4 0x10 - -[4] 3 2 0x8048c60 0xc60 0x3ad .dynstr - 0 0 0x1 0 - -[5] 9 2 0x8049010 0x1010 0x338 .rel.plt - 3 7 0x4 0x8 - -[6] 1 6 0x8049348 0x1348 0x3 .init - 0 0 0x4 0 - -[7] 1 6 0x804934c 0x134c 0x680 .plt - 0 0 0x4 0x4 - -[8] 1 6 0x80499cc 0x19cc 0x3c56f .text - 0 0 0x4 0 - -[9] 1 6 0x8085f3c 0x3df3c 0x3 .fini - 0 0 0x4 0 - -[10] 1 2 0x8085f40 0x3df40 0x69c .rodata - 0 0 0x4 0 - -[11] 1 2 0x80865dc 0x3e5dc 0xd51 .rodata1 - 0 0 0x4 0 - -[12] 1 3 0x8088330 0x3f330 0x20afc .data - 0 0 0x4 0 - -[13] 1 3 0x80a8e2c 0x5fe2c 0x89d .data1 - 0 0 0x4 0 - -[14] 1 3 0x80a96cc 0x606cc 0x1a8 .got - 0 0 0x4 0x4 - -[15] 6 3 0x80a9874 0x60874 0x80 .dynamic - 4 0 0x4 0x8 - -[16] 8 3 0x80c6800 0x7d800 0 .bss - 0 0 0x4 0 - -[17] 2 0 0 0x7d800 0x9b90 .symtab - 18 371 0x4 0x10 - -[18] 3 0 0 0x87390 0x8526 .strtab - 0 0 0x1 0 - -[19] 3 0 0 0x8f8b6 0x93 .shstrtab - 0 0 0x1 0 - -[20] 1 0 0 0x8f949 0x68b7 .comment - 0 0 0x1 0 - -[21] 1 3 0x80a98f4 0x608f4 0x1cf0c .data - 0 0 0x4 0 - - * This is an example of how the file header is changed. "Shoff" is - * the section header offset within the file. Since that table is - * after the new .data section, it is moved. "Shnum" is the number of - * sections, which we increment. - * - * "Phoff" is the file offset to the program header. "Phentsize" and - * "Shentsz" are the program and section header entries sizes respectively. - * These can be larger than the apparent struct sizes. - -raid:/nfs/raid/src/dist-18.56/src> dump -f temacs - -temacs: - - **** ELF HEADER **** -Class Data Type Machine Version -Entry Phoff Shoff Flags Ehsize -Phentsize Phnum Shentsz Shnum Shstrndx - -1 1 2 3 1 -0x80499cc 0x34 0x792f4 0 0x34 -0x20 5 0x28 21 19 - -raid:/nfs/raid/src/dist-18.56/src> dump -f xemacs - -xemacs: - - **** ELF HEADER **** -Class Data Type Machine Version -Entry Phoff Shoff Flags Ehsize -Phentsize Phnum Shentsz Shnum Shstrndx - -1 1 2 3 1 -0x80499cc 0x34 0x96200 0 0x34 -0x20 5 0x28 22 19 - - * These are the program headers. "Offset" is the file offset to the - * segment. "Vaddr" is the memory load address. "Filesz" is the - * segment size as it appears in the file, and "Memsz" is the size in - * memory. Below, the third segment is the code and the fourth is the - * data: the difference between Filesz and Memsz is .bss - -raid:/nfs/raid/src/dist-18.56/src> dump -o temacs - -temacs: - ***** PROGRAM EXECUTION HEADER ***** -Type Offset Vaddr Paddr -Filesz Memsz Flags Align - -6 0x34 0x8048034 0 -0xa0 0xa0 5 0 - -3 0xd4 0 0 -0x13 0 4 0 - -1 0x34 0x8048034 0 -0x3f2f9 0x3f2f9 5 0x1000 - -1 0x3f330 0x8088330 0 -0x215c4 0x25a60 7 0x1000 - -2 0x60874 0x80a9874 0 -0x80 0 7 0 - -raid:/nfs/raid/src/dist-18.56/src> dump -o xemacs - -xemacs: - ***** PROGRAM EXECUTION HEADER ***** -Type Offset Vaddr Paddr -Filesz Memsz Flags Align - -6 0x34 0x8048034 0 -0xa0 0xa0 5 0 - -3 0xd4 0 0 -0x13 0 4 0 - -1 0x34 0x8048034 0 -0x3f2f9 0x3f2f9 5 0x1000 - -1 0x3f330 0x8088330 0 -0x3e4d0 0x3e4d0 7 0x1000 - -2 0x60874 0x80a9874 0 -0x80 0 7 0 - - + * void + * unexec (char *new_name, + * char *old_name, + * uintptr_t data_start, + * uintptr_t bss_start, + * uintptr_t entry_address) + * + * The basic idea is that we start with an ELF file which contains + * .bss (uninitialized global data) section which is normally not in + * the file. As we load lisp the variables, which were first set to 0, + * will change their values. We want to save those changed values into + * another ELF file, which will become a new xemacs image. To do this, + * we need to change several structures in the ELF file. + * + * First of all, we need to change the programm header which tells + * the linker how to load stuff into memory so that data will come + * from the file and not from the /dev/zero. To do this, we find the + * segment, which is marked as loadable (type PT_LOAD) and which + * covers the old .bss section. We will next change the filesz and + * memsz for that segment to extend over the new data section. + * + * Next we have to make sure that section header for the stuff which + * used to be uninitialized is changed to be initialized and to come + * from the file. To do this, we change the size and the type of the old + * .bss section (and all other section of the type SHT_NOBITS) to cover the + * new section and to be of type SHT_PROCBITS. + * + * We also insert a new SHT_NOBITS section to keep some tools, which expect + * .bss happy. + * + * Finally we need to patch up some references to the section + * indexes since we change the order and undo the relocation info to + * be the same as it was "before" because we actually used the data + * from the memory which were changed by the run-time linker. */ -/* Modified by wtien@urbana.mcd.mot.com of Motorola Inc. - * - * The above mechanism does not work if the unexeced ELF file is being - * re-layout by other applications (such as `strip'). All the applications - * that re-layout the internal of ELF will layout all sections in ascending - * order of their file offsets. After the re-layout, the data2 section will - * still be the LAST section in the section header vector, but its file offset - * is now being pushed far away down, and causes part of it not to be mapped - * in (ie. not covered by the load segment entry in PHDR vector), therefore - * causes the new binary to fail. - * - * The solution is to modify the unexec algorithm to insert the new data2 - * section header right before the new bss section header, so their file - * offsets will be in the ascending order. Since some of the section's (all - * sections AFTER the bss section) indexes are now changed, we also need to - * modify some fields to make them point to the right sections. This is done - * by macro PATCH_INDEX. All the fields that need to be patched are: - * - * 1. ELF header e_shstrndx field. - * 2. section header sh_link and sh_info field. - * 3. symbol table entry st_shndx field. - * - * The above example now should look like: - - **** SECTION HEADER TABLE **** -[No] Type Flags Addr Offset Size Name - Link Info Adralgn Entsize - -[1] 1 2 0x80480d4 0xd4 0x13 .interp - 0 0 0x1 0 - -[2] 5 2 0x80480e8 0xe8 0x388 .hash - 3 0 0x4 0x4 - -[3] 11 2 0x8048470 0x470 0x7f0 .dynsym - 4 1 0x4 0x10 - -[4] 3 2 0x8048c60 0xc60 0x3ad .dynstr - 0 0 0x1 0 - -[5] 9 2 0x8049010 0x1010 0x338 .rel.plt - 3 7 0x4 0x8 - -[6] 1 6 0x8049348 0x1348 0x3 .init - 0 0 0x4 0 - -[7] 1 6 0x804934c 0x134c 0x680 .plt - 0 0 0x4 0x4 - -[8] 1 6 0x80499cc 0x19cc 0x3c56f .text - 0 0 0x4 0 - -[9] 1 6 0x8085f3c 0x3df3c 0x3 .fini - 0 0 0x4 0 - -[10] 1 2 0x8085f40 0x3df40 0x69c .rodata - 0 0 0x4 0 - -[11] 1 2 0x80865dc 0x3e5dc 0xd51 .rodata1 - 0 0 0x4 0 - -[12] 1 3 0x8088330 0x3f330 0x20afc .data - 0 0 0x4 0 - -[13] 1 3 0x80a8e2c 0x5fe2c 0x89d .data1 - 0 0 0x4 0 - -[14] 1 3 0x80a96cc 0x606cc 0x1a8 .got - 0 0 0x4 0x4 - -[15] 6 3 0x80a9874 0x60874 0x80 .dynamic - 4 0 0x4 0x8 - -[16] 1 3 0x80a98f4 0x608f4 0x1cf0c .data - 0 0 0x4 0 - -[17] 8 3 0x80c6800 0x7d800 0 .bss - 0 0 0x4 0 - -[18] 2 0 0 0x7d800 0x9b90 .symtab - 19 371 0x4 0x10 - -[19] 3 0 0 0x87390 0x8526 .strtab - 0 0 0x1 0 - -[20] 3 0 0 0x8f8b6 0x93 .shstrtab - 0 0 0x1 0 - -[21] 1 0 0 0x8f949 0x68b7 .comment - 0 0 0x1 0 - - */ - - /* More mods, by Jack Repenning , Fri Aug 11 15:45:52 1995 +#ifndef emacs +#define fatal(a, b, c) fprintf (stderr, a, b, c), exit (1) +#include +#else +#include +extern void fatal (const char *, ...); +#endif - Same algorithm as immediately above. However, the detailed - calculations of the various locations needed significant - overhaul. - - At the point of the old .bss, the file offsets and the memory - addresses do distinct, slightly snaky things: - - offset of .bss is meaningless and unpredictable - addr of .bss is meaningful - alignment of .bss is important to addr, so there may be a small - gap in address range before start of bss - offset of next section is rounded up modulo 0x1000 - the hole so-introduced is zero-filled, so it can be mapped in as - the first partial-page of bss (the rest of the bss is mapped from - /dev/zero) - I suppose you could view this not as a hole, but as the beginning - of the bss, actually present in the file. But you should not - push that worldview too far, as the linker still knows that the - "offset" claimed for the bss is unused, and seems not always - careful about setting it. - - We are doing all our tricks at this same rather complicated - location (isn't life fun?): - - insert a new data section to contain now-initialized old bss and - heap - define a zero-length bss just so there is one - - The offset of the new data section is dictated by its current - address (which, of course, we want also to be its addr): the - loader maps in the whole file region containing old data, rodata, - got, and new data as a single mapped segment, starting at the - address of the first chunk; the rest have to be laid out in the - file such that the map into the right spots. That is: - - offset(newdata) == - addrInRunningMemory(newdata)-aIRM(olddata) - + offset(oldData) - - This would not necessarily match the oldbss offset, even if it - were carefully calculated! We must compute this. - - The linker that built temacs has also already arranged that - olddata is properly page-aligned (not necessarily beginning on a - page, but rather that a page's worth of the low bits of addr and - offset match). We preserve this. - - addr(bss) is alignment-constrained from the end of the new data. - Since we base endof(newdata) on sbrk(), we have a page boundary - (in both offset and addr) and meet any alignment constraint, - needing no alignment adjustment of this location and no - mini-hole. Or, if you like, we've allowed sbrk() to "compute" - the mini-hole size for us. - - That puts newbss beginning on a page boundary, both in offset and - addr. (offset(bss) is still meaningless, but what the heck, - we'll fix it up.) - - Since newbss has zero length, and its offset (however - meaningless) is page aligned, we place the next section exactly - there, with no hole needed to restore page alignment. - - So, the shift for all sections beyond the playing field is: - - new_bss_addr - roundup(old_bss_addr,0x1000) - - */ - /* Still more mods... Olivier Galibert 19971705 - - support for .sbss section (automagically changed to data without - name change) - - support for 64bits ABI (will need a bunch of fixes in the rest - of the code before it works - */ - #include #include #include #include -#include #include #include #include #include -#include /* for HDRR declaration */ #include -#include -#include "lisp.h" +#if defined (__sony_news) && defined (_SYSTYPE_SYSV) +#include +#include +#endif /* __sony_news && _SYSTYPE_SYSV */ +#if __sgi +#include /* for HDRR declaration */ +#endif /* __sgi */ -/* in 64bits mode, use 64bits elf */ -#ifdef _ABI64 -typedef Elf64_Shdr l_Elf_Shdr; -typedef Elf64_Phdr l_Elf_Phdr; -typedef Elf64_Ehdr l_Elf_Ehdr; -typedef Elf64_Addr l_Elf_Addr; -typedef Elf64_Word l_Elf_Word; -typedef Elf64_Off l_Elf_Off; -typedef Elf64_Sym l_Elf_Sym; -#else -typedef Elf32_Shdr l_Elf_Shdr; -typedef Elf32_Phdr l_Elf_Phdr; -typedef Elf32_Ehdr l_Elf_Ehdr; -typedef Elf32_Addr l_Elf_Addr; -typedef Elf32_Word l_Elf_Word; -typedef Elf32_Off l_Elf_Off; -typedef Elf32_Sym l_Elf_Sym; +#if __GNU_LIBRARY__ - 0 >= 6 +# include /* get ElfW etc */ +#endif + +#ifndef ElfW +# ifdef __STDC__ +# define ElfBitsW(bits, type) Elf##bits##_##type +# else +# define ElfBitsW(bits, type) Elf/**/bits/**/_/**/type +# endif +# ifdef _LP64 +# define ELFSIZE 64 +# else +# define ELFSIZE 32 +# endif + /* This macro expands `bits' before invoking ElfBitsW. */ +# define ElfExpandBitsW(bits, type) ElfBitsW (bits, type) +# define ElfW(type) ElfExpandBitsW (ELFSIZE, type) #endif +#ifndef ELF_BSS_SECTION_NAME +#define ELF_BSS_SECTION_NAME ".bss" +#endif /* Get the address of a particular section or program header entry, - * accounting for the size of the entries. - */ + * accounting for the size of the entries. */ #define OLD_SECTION_H(n) \ - (*(l_Elf_Shdr *) ((byte *) old_section_h + old_file_h->e_shentsize * (n))) + (*(ElfW(Shdr) *) ((byte *) old_section_h + old_file_h->e_shentsize * (n))) #define NEW_SECTION_H(n) \ - (*(l_Elf_Shdr *) ((byte *) new_section_h + new_file_h->e_shentsize * (n))) + (*(ElfW(Shdr) *) ((byte *) new_section_h + new_file_h->e_shentsize * (n))) #define OLD_PROGRAM_H(n) \ - (*(l_Elf_Phdr *) ((byte *) old_program_h + old_file_h->e_phentsize * (n))) + (*(ElfW(Phdr) *) ((byte *) old_program_h + old_file_h->e_phentsize * (n))) #define NEW_PROGRAM_H(n) \ - (*(l_Elf_Phdr *) ((byte *) new_program_h + new_file_h->e_phentsize * (n))) + (*(ElfW(Phdr) *) ((byte *) new_program_h + new_file_h->e_phentsize * (n))) #define PATCH_INDEX(n) \ do { \ - if ((n) >= old_bss_index) \ + if ((int) (n) >= growme_index) \ (n)++; } while (0) + typedef unsigned char byte; /* Round X up to a multiple of Y. */ -int -round_up (x, y) - int x, y; +static ElfW(Addr) +round_up (ElfW(Addr) x, ElfW(Addr) y) { int rem = x % y; if (rem == 0) @@ -559,13 +156,12 @@ if NOERROR is 0; we return -1 if NOERROR is nonzero. */ static int -find_section (name, section_names, file_name, old_file_h, old_section_h, noerror) - char *name; - char *section_names; - char *file_name; - l_Elf_Ehdr *old_file_h; - l_Elf_Shdr *old_section_h; - int noerror; +find_section (char *name, + const char *section_names, + char *file_name, + ElfW(Ehdr) *old_file_h, + ElfW(Shdr) *old_section_h, + int noerror) { int idx; @@ -577,17 +173,14 @@ #endif if (!strcmp (section_names + OLD_SECTION_H (idx).sh_name, name)) - break; - } - if (idx == old_file_h->e_shnum) - { - if (noerror) - return -1; - else - fatal ("Can't find .bss in %s.\n", file_name); + return idx; } - return idx; + /* If we're here, we found nothing or return did not work */ + if ( ! noerror) + fatal ("Can't find %s in %s.\n", name, file_name); + + return -1; } /* **************************************************************** @@ -599,153 +192,105 @@ * .data section, and inserting an empty .bss immediately afterwards. * */ -int -unexec (new_name, old_name, data_start, bss_start, entry_address) - char *new_name, *old_name; - uintptr_t data_start, bss_start, entry_address; +void +unexec (char *new_name, + char *old_name, + uintptr_t data_start, + uintptr_t bss_start, + uintptr_t entry_address) { - extern uintptr_t bss_end; - int new_file, old_file, new_file_size; - - /* Pointers to the base of the image of the two files. */ - caddr_t old_base, new_base; - - /* Pointers to the file, program and section headers for the old and new - files. */ - l_Elf_Ehdr *old_file_h, *new_file_h; - l_Elf_Phdr *old_program_h, *new_program_h; - l_Elf_Shdr *old_section_h, *new_section_h; - l_Elf_Shdr *oldbss; - - /* Point to the section name table in the old file. */ - char *old_section_names; - - l_Elf_Addr old_bss_addr, new_bss_addr; - l_Elf_Addr old_base_addr; - l_Elf_Word old_bss_size, new_data2_size; - l_Elf_Off new_data2_offset, new_base_offset; - l_Elf_Addr new_data2_addr; - l_Elf_Addr new_offsets_shift; + int old_file; - int n, nn, old_bss_index, old_data_index; - int old_mdebug_index, old_sbss_index; struct stat stat_buf; + caddr_t old_base, new_base; - /* Open the old file & map it into the address space. */ - - old_file = open (old_name, O_RDONLY); - - if (old_file < 0) - fatal ("Can't open %s for reading: errno %d\n", old_name, errno); + ElfW(Ehdr) *old_file_h, * new_file_h; + ElfW(Phdr) *old_program_h, * new_program_h; + ElfW(Shdr) *old_section_h, * new_section_h; + ElfW(Shdr) * growme = NULL, * grown = NULL; + ElfW(Addr) old_bss_addr = 0, new_data2_addr = 0; + + int growme_index = -1; + int n, nn; + const char *old_section_names; + int old_mdebug_index, old_data_index; + int new_bss_addr, new_data2_size, new_data2_offset, new_file, new_file_size; + + /* Open the old file */ + if ( (old_file = open (old_name, O_RDONLY)) < 0 ) + fatal ("Can't open %s for reading: errno %d\n", old_name, errno); if (fstat (old_file, &stat_buf) == -1) - fatal ("Can't fstat(%s): errno %d\n", old_name, errno); + fatal ("Can't fstat (%s): errno %d\n", old_name, errno); - old_base = mmap (0, stat_buf.st_size, PROT_READ, MAP_SHARED, old_file, 0); - - if (old_base == (caddr_t) -1) - fatal ("Can't mmap(%s): errno %d\n", old_name, errno); - -#ifdef DEBUG - fprintf (stderr, "mmap(%s, %x) -> %x\n", old_name, stat_buf.st_size, - old_base); -#endif - - /* Get pointers to headers & section names. */ - - old_file_h = (l_Elf_Ehdr *) old_base; - old_program_h = (l_Elf_Phdr *) ((byte *) old_base + old_file_h->e_phoff); - old_section_h = (l_Elf_Shdr *) ((byte *) old_base + old_file_h->e_shoff); - old_section_names - = (char *) old_base + OLD_SECTION_H (old_file_h->e_shstrndx).sh_offset; - - /* Find the mdebug section, if any. */ - - old_mdebug_index = find_section (".mdebug", old_section_names, - old_name, old_file_h, old_section_h, 1); - - /* Find the .sbss section, if any. */ - - old_sbss_index = find_section (".sbss", old_section_names, - old_name, old_file_h, old_section_h, 1); - - if (old_sbss_index != -1 && (OLD_SECTION_H (old_sbss_index).sh_type == SHT_PROGBITS)) - old_sbss_index = -1; - - /* Find the old .bss section. */ - - old_bss_index = find_section (".bss", old_section_names, - old_name, old_file_h, old_section_h, 0); + /* map old file into the address space. */ + old_base = (caddr_t) mmap ((caddr_t) 0, stat_buf.st_size, + PROT_READ, MAP_SHARED, old_file, 0); + if (old_base == (caddr_t) MAP_FAILED) + fatal ("Can't mmap (%s): errno %d\n", old_name, errno); + + old_file_h = (ElfW(Ehdr) *) old_base; + old_program_h = (ElfW(Phdr) *) ((byte *) old_base + old_file_h->e_phoff); + old_section_h = (ElfW(Shdr) *) ((byte *) old_base + old_file_h->e_shoff); + old_section_names = (const char *) old_base + + OLD_SECTION_H (old_file_h->e_shstrndx).sh_offset; + + /* Find a section which we will grow by looking for the SHT_NOBITS + * section with ALLOCATE flag and with the biggest address. */ + for (n = 1; n < old_file_h->e_shnum; n++) { + ElfW(Shdr) * sh = & OLD_SECTION_H(n); + + if ((sh->sh_type == SHT_NOBITS) && (sh->sh_flags & SHF_ALLOC)) { + if ( old_bss_addr < sh->sh_addr ) { + growme = sh; + growme_index = n; + new_data2_addr = old_bss_addr = sh->sh_addr; + } + } + } - /* Find the old .data section. Figure out parameters of - the new data2 and bss sections. */ + if (growme == NULL ) + fatal ("Can't find a section to grow\n", 0, 0); old_data_index = find_section (".data", old_section_names, old_name, old_file_h, old_section_h, 0); - old_bss_addr = OLD_SECTION_H (old_bss_index).sh_addr; - old_bss_size = OLD_SECTION_H (old_bss_index).sh_size; - old_base_addr = old_sbss_index == -1 ? old_bss_addr : OLD_SECTION_H (old_sbss_index).sh_addr; -#if defined(emacs) || !defined(DEBUG) - bss_end = (uintptr_t) sbrk (0); - new_bss_addr = (l_Elf_Addr) bss_end; -#else - new_bss_addr = old_bss_addr + old_bss_size + 0x1234; -#endif - new_data2_addr = old_bss_addr; - new_data2_size = new_bss_addr - old_bss_addr; + new_bss_addr = (ElfW(Addr)) sbrk (0); + new_data2_size = new_bss_addr - old_bss_addr; new_data2_offset = OLD_SECTION_H (old_data_index).sh_offset + - (new_data2_addr - OLD_SECTION_H (old_data_index).sh_addr); - new_base_offset = OLD_SECTION_H (old_data_index).sh_offset + - (old_base_addr - OLD_SECTION_H (old_data_index).sh_addr); - new_offsets_shift = new_bss_addr - (old_base_addr & ~0xfff) + - ((old_base_addr & 0xfff) ? 0x1000 : 0); + (new_data2_addr - OLD_SECTION_H (old_data_index).sh_addr); -#ifdef DEBUG - fprintf (stderr, "old_bss_index %d\n", old_bss_index); - fprintf (stderr, "old_bss_addr %x\n", old_bss_addr); - fprintf (stderr, "old_bss_size %x\n", old_bss_size); - fprintf (stderr, "old_base_addr %x\n", old_base_addr); - fprintf (stderr, "new_bss_addr %x\n", new_bss_addr); - fprintf (stderr, "new_data2_addr %x\n", new_data2_addr); - fprintf (stderr, "new_data2_size %x\n", new_data2_size); - fprintf (stderr, "new_data2_offset %x\n", new_data2_offset); - fprintf (stderr, "new_offsets_shift %x\n", new_offsets_shift); -#endif - - if ((unsigned) new_bss_addr < (unsigned) old_bss_addr + old_bss_size) - fatal (".bss shrank when undumping???\n"); - - /* Set the output file to the right size and mmap it. Set - pointers to various interesting objects. stat_buf still has - old_file data. */ - - new_file = open (new_name, O_RDWR | O_CREAT, 0666); - if (new_file < 0) - fatal ("Can't creat (%s): errno %d\n", new_name, errno); - - new_file_size = stat_buf.st_size /* old file size */ - + old_file_h->e_shentsize /* one new section header */ - + new_offsets_shift; /* trailing section shift */ + if ( new_bss_addr < old_bss_addr + growme->sh_size ) + fatal (".bss shrank when undumping???\n", 0, 0); + + /* Set the output file to the right size and mmap it. */ + if ( (new_file = open (new_name, O_RDWR | O_CREAT, 0666)) < 0 ) + fatal ("Can't create (%s): errno %d\n", new_name, errno); + + new_file_size = stat_buf.st_size + old_file_h->e_shentsize + new_data2_size; if (ftruncate (new_file, new_file_size)) - fatal ("Can't ftruncate (%s): errno %d\n", new_name, errno); + fatal ("Can't ftruncate (%s): errno %d\n", new_name, errno); - new_base = mmap (0, new_file_size, PROT_READ | PROT_WRITE, MAP_SHARED, - new_file, 0); + new_base = (caddr_t) mmap ((caddr_t) 0, new_file_size, + PROT_READ | PROT_WRITE, +#ifdef UNEXEC_USE_MAP_PRIVATE + MAP_PRIVATE, +#else + MAP_SHARED, +#endif + new_file, 0); if (new_base == (caddr_t) -1) - fatal ("Can't mmap (%s): errno %d\n", new_name, errno); + fatal ("Can't mmap (%s): errno %d\n", new_name, errno); - new_file_h = (l_Elf_Ehdr *) new_base; - new_program_h = (l_Elf_Phdr *) ((byte *) new_base + old_file_h->e_phoff); - new_section_h - = (l_Elf_Shdr *) ((byte *) new_base + old_file_h->e_shoff - + new_offsets_shift); + new_file_h = (ElfW(Ehdr) *) new_base; + new_program_h = (ElfW(Phdr) *) ((byte *) new_base + old_file_h->e_phoff); + new_section_h = (ElfW(Shdr) *) ((byte *) new_base + old_file_h->e_shoff + + new_data2_size); /* Make our new file, program and section headers as copies of the - originals. */ - + * originals. */ memcpy (new_file_h, old_file_h, old_file_h->e_ehsize); memcpy (new_program_h, old_program_h, old_file_h->e_phnum * old_file_h->e_phentsize); @@ -754,196 +299,183 @@ PATCH_INDEX (new_file_h->e_shstrndx); /* Fix up file header. We'll add one section. Section header is - further away now. */ - - new_file_h->e_shoff += new_offsets_shift; + * further away now. */ + new_file_h->e_shoff += new_data2_size; new_file_h->e_shnum += 1; - -#ifdef DEBUG - fprintf (stderr, "Old section offset %x\n", old_file_h->e_shoff); - fprintf (stderr, "Old section count %d\n", old_file_h->e_shnum); - fprintf (stderr, "New section offset %x\n", new_file_h->e_shoff); - fprintf (stderr, "New section count %d\n", new_file_h->e_shnum); -#endif - - /* Fix up a new program header. Extend the writable data segment so - that the bss area is covered too. Find that segment by looking - for one that starts before and ends after the .bss and it PT_LOADable. - Put a loop at the end to adjust the offset and address of any segment - that is above data2, just in case we decide to allow this later. */ - - oldbss = &OLD_SECTION_H(old_bss_index); - for (n = new_file_h->e_phnum - 1; n >= 0; n--) - { - /* Compute maximum of all requirements for alignment of section. */ - l_Elf_Phdr * ph = (l_Elf_Phdr *)((byte *) new_program_h + - new_file_h->e_phentsize*(n)); + /* Fix up a new program header by extending the writable data + * segment so that the bss area is covered too. Find that segment by + * looking for one that starts before and ends after the .bss and is + * PT_LOADable. */ + for (n = new_file_h->e_phnum - 1; n >= 0; n--) { + ElfW(Phdr) * ph = & NEW_PROGRAM_H(n); #ifdef DEBUG printf ("%d @ %0x + %0x against %0x + %0x", - n, ph->p_vaddr, ph->p_memsz, - oldbss->sh_addr, oldbss->sh_size); + n, ph->p_vaddr, ph->p_memsz,growme->sh_addr, growme->sh_size); #endif - if ((ph->p_type == PT_LOAD) && - (ph->p_vaddr <= oldbss->sh_addr) && - ((ph->p_vaddr + ph->p_memsz)>=(oldbss->sh_addr + oldbss->sh_size))) { - ph->p_filesz += new_offsets_shift; - ph->p_memsz = ph->p_filesz; + if ((ph->p_type == PT_LOAD) && + (ph->p_vaddr <= growme->sh_addr) && + ((ph->p_vaddr+ph->p_memsz) >= (growme->sh_addr + growme->sh_size))) { + /* Make sure that the size includes any padding before the + * old .bss section. */ + ph->p_memsz = ph->p_filesz = new_bss_addr - ph->p_vaddr; #ifdef DEBUG - puts (" That's the one!"); - fflush (stdout); + puts (" That's the one!"); #endif - break; + break; } #ifdef DEBUG putchar ('\n'); - fflush (stdout); #endif - } + } + if (n < 0) - fatal ("Couldn't find segment next to %s in %s\n", - old_sbss_index == -1 ? ".sbss" : ".bss", old_name); + fatal ("Couldn't find segment which covers %s", + old_section_names + growme->sh_name); + /* Walk through all section headers, insert the new data2 section + * right before the new bss section. */ + for (n = 1, nn = 1; n < (int) old_file_h->e_shnum; n++, nn++) { + ElfW(Shdr) * nsec = & NEW_SECTION_H(nn); + ElfW(Shdr) * osec = & OLD_SECTION_H(n); + + /* If this is the section we want to grow, insert the new data + * section before it. */ + if ( osec == growme ) { + /* Steal the data section header for this data2 section but + * use the * 'grow' section's alignment. This * will assure + * that the new section * always be placed in the same spot + * * as the old section by any other * application. */ + ElfW(Shdr) * od = &OLD_SECTION_H(old_data_index); + + memcpy (nsec, od, new_file_h->e_shentsize); + + nsec->sh_addr = new_data2_addr; + nsec->sh_offset = new_data2_offset; + nsec->sh_size = new_data2_size; + nsec->sh_addralign = osec->sh_addralign; -#if 1 /* Maybe allow section after data2 - does this ever happen? */ - for (n = new_file_h->e_phnum - 1; n >= 0; n--) - { - if (NEW_PROGRAM_H (n).p_vaddr - && NEW_PROGRAM_H (n).p_vaddr >= new_data2_addr) - NEW_PROGRAM_H (n).p_vaddr += new_offsets_shift - old_bss_size; + /* Copy over what we have in memory now. */ + memcpy (nsec->sh_offset + new_base, (caddr_t) osec->sh_addr, + new_data2_size); + nn++; + grown = nsec++; + } - if (NEW_PROGRAM_H (n).p_offset >= new_data2_offset) - NEW_PROGRAM_H (n).p_offset += new_offsets_shift; - } -#endif + memcpy (nsec, osec, old_file_h->e_shentsize); + + if ( osec == growme ) { + /* The new bss section's size is zero, and its file offset + * and virtual address should be off by NEW_DATA2_SIZE. */ + nsec->sh_offset = grown->sh_offset + new_data2_size; + nsec->sh_addr = grown->sh_addr + new_data2_size; + + /* Let the new bss section address alignment be the same as + * the section address alignment followed the old bss + * section, so this section will be placed in exactly the + * same place. */ + nsec->sh_addralign = osec->sh_addralign; + nsec->sh_size = 0; + } else { + /* Any section that was originally placed AFTER the bss + * section should now be off by NEW_DATA2_SIZE. */ + if ( round_up (nsec->sh_offset, growme->sh_addralign) >= + new_data2_offset) + nsec->sh_offset += new_data2_size; + } + + /* Any section that was originally placed after the section * + * header table should now be off by the size of one section + * header table entry. */ + if (nsec->sh_offset > new_file_h->e_shoff) + nsec->sh_offset += new_file_h->e_shentsize; - /* Fix up section headers based on new .data2 section. Any section - whose offset or virtual address is after the new .data2 section - gets its value adjusted. .bss size becomes zero and new address - is set. data2 section header gets added by copying the existing - .data header and modifying the offset, address and size. */ - for (old_data_index = 1; old_data_index < old_file_h->e_shnum; - old_data_index++) - if (!strcmp (old_section_names + OLD_SECTION_H (old_data_index).sh_name, - ".data")) - break; - if (old_data_index == old_file_h->e_shnum) - fatal ("Can't find .data in %s.\n", old_name); - - /* Walk through all section headers, insert the new data2 section right - before the new bss section. */ - for (n = 1, nn = 1; n < old_file_h->e_shnum; n++, nn++) - { - caddr_t src; - /* XEmacs change: */ - if (n < old_bss_index) - { - memcpy (&NEW_SECTION_H (nn), &OLD_SECTION_H (n), - old_file_h->e_shentsize); - - } - else if (n == old_bss_index) - { - - /* If it is bss section, insert the new data2 section before it. */ - /* Steal the data section header for this data2 section. */ - memcpy (&NEW_SECTION_H (nn), &OLD_SECTION_H (old_data_index), - new_file_h->e_shentsize); - - NEW_SECTION_H (nn).sh_addr = new_data2_addr; - NEW_SECTION_H (nn).sh_offset = new_data2_offset; - NEW_SECTION_H (nn).sh_size = new_data2_size; - /* Use the bss section's alignment. This will assure that the - new data2 section always be placed in the same spot as the old - bss section by any other application. */ - NEW_SECTION_H (nn).sh_addralign = OLD_SECTION_H (n).sh_addralign; - - /* Now copy over what we have in the memory now. */ - memcpy (NEW_SECTION_H (nn).sh_offset + new_base, - (caddr_t) OLD_SECTION_H (n).sh_addr, - new_data2_size); - nn++; - memcpy (&NEW_SECTION_H (nn), &OLD_SECTION_H (n), - old_file_h->e_shentsize); - - /* The new bss section's size is zero, and its file offset and virtual - address should be off by NEW_OFFSETS_SHIFT. */ - NEW_SECTION_H (nn).sh_offset += new_offsets_shift; - NEW_SECTION_H (nn).sh_addr = new_bss_addr; - /* Let the new bss section address alignment be the same as the - section address alignment followed the old bss section, so - this section will be placed in exactly the same place. */ - NEW_SECTION_H (nn).sh_addralign = OLD_SECTION_H (n).sh_addralign; - NEW_SECTION_H (nn).sh_size = 0; - } - else /* n > old_bss_index */ - memcpy (&NEW_SECTION_H (nn), &OLD_SECTION_H (n), - old_file_h->e_shentsize); - - /* Any section that was original placed AFTER the bss - section must now be adjusted by NEW_OFFSETS_SHIFT. */ - - if (NEW_SECTION_H (nn).sh_offset >= new_base_offset) - NEW_SECTION_H (nn).sh_offset += new_offsets_shift; - /* If any section hdr refers to the section after the new .data - section, make it refer to next one because we have inserted - a new section in between. */ - - PATCH_INDEX (NEW_SECTION_H (nn).sh_link); - /* For symbol tables, info is a symbol table index, - so don't change it. */ - if (NEW_SECTION_H (nn).sh_type != SHT_SYMTAB - && NEW_SECTION_H (nn).sh_type != SHT_DYNSYM) - PATCH_INDEX (NEW_SECTION_H (nn).sh_info); - - /* Fix the type and alignment for the .sbss section */ - if ((old_sbss_index != -1) && !strcmp (old_section_names + NEW_SECTION_H (nn).sh_name, ".sbss")) - { - NEW_SECTION_H (nn).sh_type = SHT_PROGBITS; - NEW_SECTION_H (nn).sh_offset = round_up (NEW_SECTION_H (nn).sh_offset, - NEW_SECTION_H (nn).sh_addralign); - } - - /* Now, start to copy the content of sections. */ - if (NEW_SECTION_H (nn).sh_type == SHT_NULL - || NEW_SECTION_H (nn).sh_type == SHT_NOBITS) - continue; - - /* Write out the sections. .data, .data1 and .sbss (and data2, called - ".data" in the strings table) get copied from the current process - instead of the old file. */ - if (!strcmp (old_section_names + NEW_SECTION_H (nn).sh_name, ".data") - || !strcmp (old_section_names + NEW_SECTION_H (nn).sh_name, ".data1") - || !strcmp (old_section_names + NEW_SECTION_H (nn).sh_name, ".got") - || !strcmp (old_section_names + NEW_SECTION_H (nn).sh_name, ".sbss")) - src = (caddr_t) OLD_SECTION_H (n).sh_addr; - else - src = old_base + OLD_SECTION_H (n).sh_offset; - - memcpy (NEW_SECTION_H (nn).sh_offset + new_base, src, - NEW_SECTION_H (nn).sh_size); - - /* Adjust the HDRR offsets in .mdebug and copy the - line data if it's in its usual 'hole' in the object. - Makes the new file debuggable with dbx. - patches up two problems: the absolute file offsets - in the HDRR record of .mdebug (see /usr/include/syms.h), and - the ld bug that gets the line table in a hole in the - elf file rather than in the .mdebug section proper. - David Anderson. davea@sgi.com Jan 16,1994. */ - if (n == old_mdebug_index) - { + * section, make it refer to next one because we have inserted a + * new section in between. */ + PATCH_INDEX (nsec->sh_link); + + /* For symbol tables, info is a symbol table index, so don't + * change it. */ + if (nsec->sh_type != SHT_SYMTAB && nsec->sh_type != SHT_DYNSYM) + PATCH_INDEX (nsec->sh_info); + + /* Any section which used to be NOBITS will now becomes PROGBITS + * if it's ALLOC-atable, unless, of cause, it's not the one we + * decided to grow */ + if ( (osec->sh_type == SHT_NOBITS) && (osec->sh_flags & SHF_ALLOC) && + (osec != growme ) ) { + nsec->sh_type = SHT_PROGBITS; + } + + /* Now, start to copy the content of sections */ + if ( nsec->sh_type != SHT_NULL || nsec->sh_type != SHT_NOBITS ) { + + /* Write out the sections. .data and .data1 (and data2, + * called ".data" in the strings table) get copied from the + * current process instead of the old file. */ + caddr_t src = old_base + osec->sh_offset; + const char * secname = old_section_names + nsec->sh_name; + const char * names[] = { + ".data",".sdata", ".lit4", ".lit8", ".sdata1", ".data1", + ".sbss", NULL}; + int i; + + for ( i=0; names[i] != NULL; i++ ) { + if ( ! strcmp (secname, names[i]) ) { + src = (caddr_t) osec->sh_addr; + break; + } + } + + memcpy (nsec->sh_offset + new_base, src, nsec->sh_size); + } + + old_mdebug_index = find_section (".mdebug", old_section_names, + old_name, old_file_h, old_section_h, 1); + +#if defined (__sony_news) && defined (_SYSTYPE_SYSV) + if (nsec->sh_type == SHT_MIPS_DEBUG && old_mdebug_index != -1) { + int diff = nsec->sh_offset-OLD_SECTION_H(old_mdebug_index).sh_offset; + HDRR *phdr = (HDRR *)(nsec->sh_offset + new_base); + + if (diff) { + phdr->cbLineOffset += diff; + phdr->cbDnOffset += diff; + phdr->cbPdOffset += diff; + phdr->cbSymOffset += diff; + phdr->cbOptOffset += diff; + phdr->cbAuxOffset += diff; + phdr->cbSsOffset += diff; + phdr->cbSsExtOffset += diff; + phdr->cbFdOffset += diff; + phdr->cbRfdOffset += diff; + phdr->cbExtOffset += diff; + } + } +#endif /* __sony_news && _SYSTYPE_SYSV */ + +#if __sgi + /* Adjust the HDRR offsets in .mdebug and copy the line data if + * it's in its usual 'hole' in the object. Makes the new file + * debuggable with dbx. patches up two problems: the absolute + * file offsets in the HDRR record of .mdebug (see + * /usr/include/syms.h), and the ld bug that gets the line table + * in a hole in the elf file rather than in the .mdebug section + * proper. + * + * David Anderson. davea@sgi.com Jan 16,1994 */ #define MDEBUGADJUST(__ct,__fileaddr) \ if (n_phdrr->__ct > 0) \ { \ n_phdrr->__fileaddr += movement; \ } - HDRR * o_phdrr = (HDRR *)((byte *)old_base + OLD_SECTION_H (n).sh_offset); - HDRR * n_phdrr = (HDRR *)((byte *)new_base + NEW_SECTION_H (nn).sh_offset); - unsigned movement = new_offsets_shift; + if (n == old_mdebug_index) { + HDRR * o_phdrr = (HDRR *)((byte *)old_base + osec->sh_offset); + HDRR * n_phdrr = (HDRR *)((byte *)new_base + nsec->sh_offset); + unsigned movement = new_data2_size; MDEBUGADJUST (idnMax, cbDnOffset); MDEBUGADJUST (ipdMax, cbPdOffset); @@ -955,65 +487,112 @@ MDEBUGADJUST (ifdMax, cbFdOffset); MDEBUGADJUST (crfd, cbRfdOffset); MDEBUGADJUST (iextMax, cbExtOffset); - /* The Line Section, being possible off in a hole of the object, - requires special handling. */ - if (n_phdrr->cbLine > 0) - { - if (o_phdrr->cbLineOffset > (OLD_SECTION_H (n).sh_offset - + OLD_SECTION_H (n).sh_size)) - { - /* line data is in a hole in elf. do special copy and adjust - for this ld mistake. - */ + + /* The Line Section, being possible off in a hole of the + * object, requires special handling. */ + if (n_phdrr->cbLine > 0) { + if (o_phdrr->cbLineOffset > + osec->sh_offset+ osec->sh_size){ + /* line data is in a hole in elf. do special copy + * and adjust for this ld mistake. */ n_phdrr->cbLineOffset += movement; memcpy (n_phdrr->cbLineOffset + new_base, o_phdrr->cbLineOffset + old_base, n_phdrr->cbLine); - } - else - { - /* somehow line data is in .mdebug as it is supposed to be. */ + } else { + /* somehow line data is in .mdebug as it is supposed + * to be. */ MDEBUGADJUST (cbLine, cbLineOffset); - } - } - } - - /* If it is the symbol table, its st_shndx field needs to be patched. */ - if (NEW_SECTION_H (nn).sh_type == SHT_SYMTAB - || NEW_SECTION_H (nn).sh_type == SHT_DYNSYM) - { - l_Elf_Shdr *spt = &NEW_SECTION_H (nn); - unsigned int num = spt->sh_size / spt->sh_entsize; - l_Elf_Sym * sym = (l_Elf_Sym *) (NEW_SECTION_H (nn).sh_offset - + new_base); - for (; num--; sym++) - { - if (sym->st_shndx == SHN_UNDEF - || sym->st_shndx == SHN_ABS - || sym->st_shndx == SHN_COMMON) - continue; - + } + } + } +#endif /* __sgi */ + /* If it is the symbol table, its st_shndx field needs to be + * patched. */ + if (nsec->sh_type == SHT_SYMTAB || nsec->sh_type == SHT_DYNSYM) { + unsigned int num = nsec->sh_size / nsec->sh_entsize; + ElfW(Sym) * sym = (ElfW(Sym) *)(nsec->sh_offset + new_base); + byte *symnames = ((byte *) new_base + + NEW_SECTION_H (nsec->sh_link).sh_offset); + + for (; num--; sym++) { + const char * symnam = (char *) (symnames + sym->st_name); + + /* Update the symbol values of _edata and _end. */ + if (strcmp (symnam, "_end") == 0 + || strcmp (symnam, "end") == 0 + || strcmp (symnam, "_edata") == 0 + || strcmp (symnam, "edata") == 0) + memcpy (&sym->st_value, &new_bss_addr,sizeof (new_bss_addr)); + + + if ((sym->st_shndx == SHN_UNDEF) || (sym->st_shndx == SHN_ABS) + || (sym->st_shndx == SHN_COMMON) + || (sym->st_shndx >= SHN_LOPROC && + sym->st_shndx <= SHN_HIPROC)) + continue; + PATCH_INDEX (sym->st_shndx); - } - } - } + } + } + } - /* Close the files and make the new file executable. */ + /* This loop seeks out relocation sections for the data section, so + * that it can undo relocations performed by the runtime linker. */ + for (n = new_file_h->e_shnum - 1; n; n--) { + ElfW(Shdr) section = NEW_SECTION_H (n); + + if ( section.sh_type == SHT_REL || section.sh_type == SHT_RELA ) { + /* This code handles two different size structs, but there + * should be no harm in that provided that r_offset is + * always the first member. */ + ElfW(Shdr) * info = & NEW_SECTION_H(section.sh_info); + const char * nm = old_section_names + info->sh_name; + + if (!strcmp (nm, ".data") || !strcmp (nm, ".sdata") + || !strcmp (nm, ".lit4") || !strcmp (nm, ".lit8") + || !strcmp (nm, ".sdata1") || !strcmp (nm, ".data1")) { + ElfW(Addr) offset = info->sh_addr - info->sh_offset; + caddr_t end, reloc = old_base + section.sh_offset; + + for (end = reloc + section.sh_size; reloc < end; + reloc += section.sh_entsize) { + ElfW(Addr) addr = ((ElfW(Rel) *) reloc)->r_offset - offset; +#ifdef __alpha__ + /* The Alpha ELF binutils currently have a bug that + * sometimes results in relocs that contain all + * zeroes. Work around this for now... */ + if (((ElfW(Rel) *) reloc)->r_offset == 0) + continue; +#endif + memcpy (new_base + addr, old_base + addr, + sizeof(ElfW(Addr))); + } + } + } + } + +#ifdef UNEXEC_USE_MAP_PRIVATE + if (lseek (new_file, 0, SEEK_SET) == -1) + fatal ("Can't rewind (%s): errno %d\n", new_name, errno); + + if (write (new_file, new_base, new_file_size) != new_file_size) + fatal ("Can't write (%s): errno %d\n", new_name, errno); +#endif + /* Close the files and make the new file executable. */ if (close (old_file)) - fatal ("Can't close (%s): errno %d\n", old_name, errno); + fatal ("Can't close (%s): errno %d\n", old_name, errno); if (close (new_file)) - fatal ("Can't close (%s): errno %d\n", new_name, errno); + fatal ("Can't close (%s): errno %d\n", new_name, errno); if (stat (new_name, &stat_buf) == -1) - fatal ("Can't stat (%s): errno %d\n", new_name, errno); + fatal ("Can't stat (%s): errno %d\n", new_name, errno); n = umask (777); umask (n); stat_buf.st_mode |= 0111 & ~n; if (chmod (new_name, stat_buf.st_mode) == -1) - fatal ("Can't chmod (%s): errno %d\n", new_name, errno); - - return 0; + fatal ("Can't chmod (%s): errno %d\n", new_name, errno); } diff -r -u -N xemacs-21.1.12/src/window.c xemacs-21.1.13/src/window.c --- xemacs-21.1.12/src/window.c Wed Aug 2 21:59:14 2000 +++ xemacs-21.1.13/src/window.c Thu Nov 16 22:21:46 2000 @@ -80,7 +80,7 @@ /* Divider surface width (not counting 3-d borders) */ Lisp_Object Vvertical_divider_line_width; -/* Spacing between outer egde of divider border and window edge */ +/* Spacing between outer edge of divider border and window edge */ Lisp_Object Vvertical_divider_spacing; /* Scroll if point lands on the bottom line and that line is partially @@ -1562,7 +1562,7 @@ DEFUN ("window-point", Fwindow_point, 0, 1, 0, /* Return current value of point in WINDOW. -For a nonselected window, this is the value point would have +For a non-selected window, this is the value point would have if that window were selected. Note that, when WINDOW is the selected window and its buffer @@ -1980,7 +1980,7 @@ DEFUN ("next-window", Fnext_window, 0, 4, 0, /* -Return next window after WINDOW in canonical ordering of windows. +Return the next window after WINDOW in the canonical ordering of windows. If omitted, WINDOW defaults to the selected window. Optional second arg MINIBUF t means count the minibuffer window even @@ -2001,7 +2001,7 @@ If ALL-FRAMES is a frame, restrict search to windows on that frame. Anything else means restrict to WINDOW's frame. -Optional fourth argument CONSOLE controls which consoles or devices the +Optional fourth arg CONSOLE controls which consoles or devices the returned window may be on. If CONSOLE is a console, return windows only on that console. If CONSOLE is a device, return windows only on that device. If CONSOLE is a console type, return windows only on consoles @@ -2032,8 +2032,9 @@ minibuf = (minibuf_level ? minibuf_window : Qlambda); else if (! EQ (minibuf, Qt)) minibuf = Qlambda; - /* Now minibuf can be t => count all minibuffer windows, - lambda => count none of them, + /* Now `minibuf' is one of: + t => count all minibuffer windows + lambda => count none of them or a specific minibuffer window (the active one) to count. */ /* all_frames == nil doesn't specify which frames to include. */ @@ -2054,11 +2055,12 @@ return frame_first_window (XFRAME (all_frames)); else if (! EQ (all_frames, Qt)) all_frames = Qnil; - /* Now all_frames is t meaning search all frames, - nil meaning search just current frame, - visible meaning search just visible frames, - 0 meaning search visible and iconified frames, - or a window, meaning search the frame that window belongs to. */ + /* Now `all_frames' is one of: + t => search all frames + nil => search just the current frame + visible => search just visible frames + 0 => search visible and iconified frames + a window => search the frame that window belongs to. */ /* Do this loop at least once, to get the next window, and perhaps again, if we hit the minibuffer and that is not acceptable. */ @@ -2077,10 +2079,9 @@ if (! NILP (all_frames)) { - Lisp_Object tem1; - - tem1 = tem; + Lisp_Object tem1 = tem; tem = next_frame (tem, all_frames, console); + /* In the case where the minibuffer is active, and we include its frame as well as the selected one, next_frame may get stuck in that frame. @@ -2107,7 +2108,6 @@ else break; } } - /* "acceptable" is the correct spelling. */ /* Which windows are acceptable? Exit the loop and accept this window if this isn't a minibuffer window, @@ -2123,7 +2123,7 @@ } DEFUN ("previous-window", Fprevious_window, 0, 4, 0, /* -Return the window preceding WINDOW in canonical ordering of windows. +Return the window preceding WINDOW in the canonical ordering of windows. If omitted, WINDOW defaults to the selected window. Optional second arg MINIBUF t means count the minibuffer window even @@ -2135,16 +2135,16 @@ counts, all windows on all frames that share that minibuffer count too. Therefore, `previous-window' can be used to iterate through the set of windows even when the minibuffer is on another frame. If -the minibuffer does not count, only windows from WINDOW's frame count +the minibuffer does not count, only windows from WINDOW's frame count. -If optional third arg ALL-FRAMES t means include windows on all frames. +Optional third arg ALL-FRAMES t means include windows on all frames. ALL-FRAMES nil or omitted means cycle within the frames as specified above. ALL-FRAMES = `visible' means include windows on all visible frames. ALL-FRAMES = 0 means include windows on all visible and iconified frames. If ALL-FRAMES is a frame, restrict search to windows on that frame. Anything else means restrict to WINDOW's frame. -Optional fourth argument CONSOLE controls which consoles or devices the +Optional fourth arg CONSOLE controls which consoles or devices the returned window may be on. If CONSOLE is a console, return windows only on that console. If CONSOLE is a device, return windows only on that device. If CONSOLE is a console type, return windows only on consoles @@ -2175,8 +2175,9 @@ minibuf = (minibuf_level ? minibuf_window : Qlambda); else if (! EQ (minibuf, Qt)) minibuf = Qlambda; - /* Now minibuf can be t => count all minibuffer windows, - lambda => count none of them, + /* Now `minibuf' is one of: + t => count all minibuffer windows + lambda => count none of them or a specific minibuffer window (the active one) to count. */ /* all_frames == nil doesn't specify which frames to include. @@ -2198,11 +2199,12 @@ return frame_first_window (XFRAME (all_frames)); else if (! EQ (all_frames, Qt)) all_frames = Qnil; - /* Now all_frames is t meaning search all frames, - nil meaning search just current frame, - visible meaning search just visible frames, - 0 meaning search visible and iconified frames, - or a window, meaning search the frame that window belongs to. */ + /* Now `all_frames' is one of: + t => search all frames + nil => search just the current frame + visible => search just visible frames + 0 => search visible and iconified frames + a window => search the frame that window belongs to. */ /* Do this loop at least once, to get the next window, and perhaps again, if we hit the minibuffer and that is not acceptable. */ @@ -2220,7 +2222,7 @@ tem = WINDOW_FRAME (XWINDOW (window)); if (! NILP (all_frames)) - /* It's actually important that we use prev_frame here, + /* It's actually important that we use previous_frame here, rather than next_frame. All the windows acceptable according to the given parameters should form a ring; Fnext_window and Fprevious_window should go back and @@ -2230,10 +2232,8 @@ window_loop assumes that these `ring' requirement are met. */ { - Lisp_Object tem1; - - tem1 = tem; - tem = prev_frame (tem, all_frames, console); + Lisp_Object tem1 = tem; + tem = previous_frame (tem, all_frames, console); /* In the case where the minibuffer is active, and we include its frame as well as the selected one, next_frame may get stuck in that frame. @@ -2419,20 +2419,19 @@ int lose_lose = 0; Lisp_Object devcons, concons; - /* FRAME_ARG is Qlambda to stick to one frame, - Qvisible to consider all visible frames, - or Qt otherwise. */ - /* If we're only looping through windows on a particular frame, FRAME points to that frame. If we're looping through windows on all frames, FRAME is 0. */ - if (FRAMEP (frames)) frame = XFRAME (frames); else if (NILP (frames)) frame = selected_frame (); else frame = 0; + + /* FRAME_ARG is Qlambda to stick to one frame, + Qvisible to consider all visible frames, + or Qt otherwise. */ if (frame) frame_arg = Qlambda; else if (ZEROP (frames)) @@ -2453,7 +2452,10 @@ if (NILP (the_frame)) continue; - if (!device_matches_console_spec (the_frame, device, console)) + if (!device_matches_console_spec (device, + NILP (console) ? + FRAME_CONSOLE (XFRAME (the_frame)) : + console)) continue; /* Pick a window to start with. */ @@ -2479,7 +2481,7 @@ /* Pick the next window now, since some operations will delete the current window. */ - next_window = Fnext_window (w, mini ? Qt : Qnil, frame_arg, Qt); + next_window = Fnext_window (w, mini ? Qt : Qnil, frame_arg, device); /* #### Still needed ?? */ /* Given the outstanding quality of the rest of this code, @@ -3202,7 +3204,7 @@ The main editor command loop selects the buffer of the selected window before each command. -With non-nil optional argument `norecord', do not modify the +With non-nil optional argument NORECORD, do not modify the global or per-frame buffer ordering. */ (window, norecord)) @@ -3364,7 +3366,7 @@ DEFUN ("split-window", Fsplit_window, 0, 3, "", /* Split WINDOW, putting SIZE lines in the first of the pair. WINDOW defaults to selected one and SIZE to half its size. -If optional third arg HOR-FLAG is non-nil, split side by side +If optional third arg HORFLAG is non-nil, split side by side and put SIZE columns in the first of the pair. */ (window, chsize, horflag)) @@ -4447,7 +4449,7 @@ non-zero, the mapping is halted. Otherwise, map_windows() maps over all windows in F. - If MAPFUN creates or deletes windows, the behaviour is undefined. */ + If MAPFUN creates or deletes windows, the behavior is undefined. */ int map_windows (struct frame *f, int (*mapfun) (struct window *w, void *closure), diff -r -u -N xemacs-21.1.12/src/winslots.h xemacs-21.1.13/src/winslots.h --- xemacs-21.1.12/src/winslots.h Tue Jun 30 02:36:06 1998 +++ xemacs-21.1.13/src/winslots.h Thu Nov 16 22:21:47 2000 @@ -57,7 +57,7 @@ WINDOW_SLOT (vertical_divider_shadow_thickness, EQ); /* Divider surface width (not counting 3-d borders) */ WINDOW_SLOT (vertical_divider_line_width, EQ); - /* Spacing between outer egde of divider border and window edge */ + /* Spacing between outer edge of divider border and window edge */ WINDOW_SLOT (vertical_divider_spacing, EQ); /* Whether vertical dividers are always displayed */ WINDOW_SLOT (vertical_divider_always_visible_p, EQ); diff -r -u -N xemacs-21.1.12/version.sh xemacs-21.1.13/version.sh --- xemacs-21.1.12/version.sh Fri Aug 4 21:26:18 2000 +++ xemacs-21.1.13/version.sh Sun Jan 7 15:52:56 2001 @@ -1,8 +1,8 @@ #!/bin/sh emacs_major_version=21 emacs_minor_version=1 -emacs_beta_version=12 -xemacs_codename="Channel Islands" +emacs_beta_version=13 +xemacs_codename="Crater Lake" infodock_major_version=4 infodock_minor_version=0 infodock_build_version=7